i am using the airprime development kit with MC7304 included for developing an shared library as an jni interface to a java application. on a x86 system everything works fine, but for a raspberry system based on a armhf system it is not working. i was able to create a static linked binary with the crosscompiler arm-bcm2708-linux-gnueabi-gcc, but not with the gcc-linaro-arm-linux-gnueabihf-raspbian as configured in the SLQS03.03.07/pkgs/slqscompile.mak. this fails with an error:
…libMUQmi.so uses VFP register arguments, …/…/projects/sierra/software/SLQS03.03.07/build/lib/arm/libslqscore.a(slucs2.o) does not
my invistigation was,that the existing static libraries are soft-float based and not comapatible with hard-float based armhf raspberry os. is this correct? why is there a raspberry part in the SLQS03.03.07/pkgs/slqscompile.mak but no static libraries compiled for this system?
thanks and regards
I also meet the same problem on TI AM335x platform.
something like this: /ti-processor-sdk-linux-am335x-evm-01.00.00.03/linux-devkit/sysroots/i686-arago-linux/usr/bin/…/lib/gcc/arm-linux-gnueabihf/4.7.3/…/…/…/…/arm-linux-gnueabihf/bin/ld: error: bin/slqstutorialarm uses VFP register arguments, …/…/build/lib/arm//libslqsqmi.a(qaDcsQCWWAN2kConnect.o) does not
I think my libgcc.a uses VFP register arguments, but build/lib/arm//*.a not to support VFP.
So, I got this problem in linking time.
I cannot rebuild my libgcc.a, so have any suggestion for this case?
Finally, I got to build libqmi into rootfs, and that is working with kernel 3.14.3, cdc-wdm device.
It is because libraries are not compiled with the same options:
Sierra toolchain used to compile libraries is with soft floating point logic( -mfloat-abi=soft) wich is not compatible with hard floating point logic ( -mfloat-abi=hard): they use different procedure calling conventions: one passes float values in VFP registers and the other passes them in core registers
Unfortunately at the present time none of sierra SDK are precompiled with -mfloat-abi=hard
Please contact sierra provider to get libraries with good option