Linker Error while Compiling Zynq Software for VFP Use

Gabriel Brusq gabriel.brusq at
Thu Jun 8 14:31:19 UTC 2017


I would like to use VFP hardware floating point for a new Software.
I get the following error while compiling for my Zynq:
.../binutils-cross-2.24/bin/arm-rtems4.11-ld: error: ../Bin/demeter.exe uses VFP register arguments,
.../gcc-cross-c-cpp-ada-4.8.2/lib/gcc/arm-rtems4.11/4.8.2/adalib/libgnat.a(a-except.o) does not

It sounds like libgnat was built for software floating point operations
while the executable was compiled assuming hardware support for floating point.

The executable uses VFP as expected, I use the following flags in my makefile:
ARCH_FLAGS      = -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9

I don't understand why my toolchain does not.
When using command: arm-rtems4.11-gcc -print-multi-lib

I get:
thumb/armv6-m;@mthumb at march=armv6-m
thumb/armv7-a;@mthumb at march=armv7-a
thumb/armv7-r;@mthumb at march=armv7-r
thumb/armv7-m;@mthumb at march=armv7-m
thumb/armv7-a/neon/hard;@mthumb at march=armv7-a at mfpu=neon at mfloat-abi=hard

A strange thing is that I compiled (and ran) other c and ada codes with no error!

Also in my gcc config.log I have:
$ ../gcc-4.8.2/configure --enable-threads=rtems --with-gnu-as --with-gnu-ld --with-newlib --verbose --with-system-zlib --disable-nls --enable-version-specific-runtime-libs --enable-languages=c,c++,ada --target=arm-rtems4.11 --prefix=/users/ext3/opt_ARM/tools/prerequisites/gcc-cross-c-cpp-ada-4.8.2 --with-gmp=/users/ext3/opt_ARM/tools/prerequisites --with-mpfr=/users/ext3/opt_ARM/tools/prerequisites --with-mpc=/users/ext3/opt_ARM/tools/prerequisites --with-isl=/users/ext3/opt_ARM/tools/prerequisites

Can anybody help me with this issue ?

Thank you for your help
Gabriel Brusq

More information about the users mailing list