I have had this problem in the last few days, and I canβt understand what is really happening here, or what the problem is.
I have a make file with these flags:
CC = arm-linux-gnueabihf-gcc-4.6 FLAGS = -O3 -march=armv7-a -mtune=cortex-a9 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -std=gnu99
I have a library in a .a file that has some object files, all I have to do is link them to my executable. I know the prototypes and all that, the only thing complaining is the following:
/usr/bin/ld: error: *EXECUTABLE* uses VFP register arguments, *OBJECTFILE* does not /usr/bin/ld: failed to merge target specific data of file *OBJECTFILE*
When I do not use -mfloat-abi = softfp, I get one more error regarding the floating point case.
Does anyone know what causes this, and what can I do to fix it, for example, to make sure that my executable does not use virtual floating point register arguments?
x@x:~/Desktop/perf_test$ make arm-linux-gnueabihf-gcc-4.6 -c -O3 -march=armv7-a -mtune=cortex-a9 -mfpu=neon -ftree-vectorize -std=gnu99 -mfloat-abi=softfp perf_test.c ../baseline/util.c arm-linux-gnueabihf-gcc-4.6 -o perf_test perf_test.o util.o ../baseline/lib.a /usr/bin/ld: error: perf_test uses VFP register arguments, perf_test.o does not /usr/bin/ld: failed to merge target specific data of file perf_test.o /usr/bin/ld: error: perf_test uses VFP register arguments, util.o does not /usr/bin/ld: failed to merge target specific data of file util.o /usr/bin/ld: error: perf_test uses VFP register arguments, ../baseline/lib.a(ao) does not /usr/bin/ld: failed to merge target specific data of file ../baseline/lib.a(ao) /usr/bin/ld: error: perf_test uses VFP register arguments, ../baseline/lib.a(bo) does not /usr/bin/ld: failed to merge target specific data of file ../baseline/lib.a(bo) /usr/bin/ld: error: perf_test uses VFP register arguments, ../baseline/lib.a(co) does not /usr/bin/ld: failed to merge target specific data of file ../baseline/lib.a(co) /usr/bin/ld: error: perf_test uses VFP register arguments, ../baseline/lib.a(do) does not /usr/bin/ld: failed to merge target specific data of file ../baseline/lib.a(do) /usr/bin/ld: error: perf_test uses VFP register arguments, ../baseline/lib.a(eo) does not /usr/bin/ld: failed to merge target specific data of file ../baseline/lib.a(eo) /usr/bin/ld: error: perf_test uses VFP register arguments, ../baseline/lib.a(fo) does not /usr/bin/ld: failed to merge target specific data of file ../baseline/lib.a(fo) collect2: ld returned 1 exit status make: *** [perf_test] Error 1
gcc arm compilation
Jim Mar 17 2018-12-12T00: 00Z
source share