Using Yocto(https://community.nxp.com/message/654043#comment-654043), I have built images for IMX6 Sabersd board and flashed images on sdcard to boot the Sabersd board - IMX6Q-SDB.
I am compiling a 3rd party source for IMX6 Sabersd board using the tool chain built with Yocto, the source is having few pre-built libraries. During linking stage I got following error for pre-built libraries.
ld: error: *Executable* uses VFP register arguments, *Library* does not
ld: failed to merge target specific data of file *Library*
Following is the one occurrence of the error.
/home/user/fsl-release-bsp/build/tmp/sysroots/x86_64-linux/usr/libexec/cortexa9hf-vfp-neon-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.8.2/ld: error: build/imx6/system/staging/bin/fwDaemon uses VFP register arguments, /home/user/fsl-release-bsp/build/tmp/sysroots/imx6qsabresd/usr/lib/lib_tapi.a(lib_tapi_common.o) does not
/home/user/fsl-release-bsp/build/tmp/sysroots/x86_64-linux/usr/libexec/cortexa9hf-vfp-neon-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.8.2/ld: failed to merge target specific data of file /home/user/fsl-release-bsp/build/tmp/sysroots/imx6qsabresd/usr/lib/lib_tapi.a(lib_tapi_common.o)
After searching about the error in Google, I was understood that the pre-built libraries are not using VFP registers for floating point handling but the IMX6 tool chain expects to use VFP registers.
It seems by passing -mfloat-abi=softfp to gcc we can avoid this error, but gcc has to be configured with multilib to support this. When I checked gcc configured options using -v, it is showing "--disable-multilib".
While building images for IMX6 sabersd using yocto, the toolchain source was downloaded and compiled for the target. So I am looking for the following options.
Option 1: Changing the tool chain configuration in yocto to enable multilib option. I have greped with multilib in sources folder, it appeared in many .bb, .inc, .conf, .bbclass, .py, .json files. I started looking from bblayers.conf file, but I could see the files in multiple layers. Can you help to identify the .bb or .inc or .conf file to enable multilib.
Option 2: Changing the tool chain configuration in yocto to use softfp, so that the whole system will use softfp.
Option 3: Is it possible to get already build toolchain for IMX6 which supports multilib or softfp.
Can you help on any of the above options.
I have used following commands to get Yocto source.
#curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
#repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.53-1.1.0_ga
#repo sync
Hello,
please refer to the following how to use the toolchain for NXP Linux BSP :
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------