How to initialize target backends properly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

the GHDL compiler for VHDL uses gcc as a backend for compiling, providing its own frontend. The compiled binaries fail to link on ARMv7 (armhf), and fail to compile on RISC-V, because the backend does not generate the correct ABI information:

ARMv7:

/usr/bin/ld: error: hello uses VFP register arguments, e~hello.o does not
    /usr/bin/ld: failed to merge target specific data of file e~hello.o
/usr/bin/ld: error: hello uses VFP register arguments, /<<PKGBUILDDIR>>/testrundir/gcc/usr/lib/ghdl/gcc/vhdl/std/v87/std_standard.o does not /usr/bin/ld: failed to merge target specific data of file /<<PKGBUILDDIR>>/testrundir/gcc/usr/lib/ghdl/gcc/vhdl/std/v87/std_standard.o
    /usr/bin/ld: error: hello uses VFP register arguments, hello.o does not
    /usr/bin/ld: failed to merge target specific data of file hello.o
    collect2: error: ld returned 1 exit status
/<<PKGBUILDDIR>>/testrundir/gcc/usr/bin/ghdl-gcc:error: compilation error

RISC-V:

    textio.s: Assembler messages:
textio.s:3: Error: the architecture string of -march and elf architecture attributes cannot be empty

I suspect these two problems are related, and the backend is simply not initialized correctly.

Is there a function that needs to be called as part of initialization to get a set of default parameters into the backend, or is this a matter of using a frontend (and specs file) that makes sure to always pass the required flags?

Full build logs are on the Debian autobuilders:

    https://buildd.debian.org/status/package.php?p=ghdl&suite=experimental

   Simon



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux