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