Hi guys
I'm starting kernel compilation and other things for i.MX6Q and I am wondering if I should be compiling for hard float or soft float, i.e. should I be compiling with the arm-linux-gnueabihf- or arm-linux-gnueabi- compiler ?
Kind regards
Einar M. Bjorgvinsson
Embedded Software Engineer
Marel ehf
Iceland
Linux kernel does not use floating points, or if some drivers do then that's a grave bug, so hard vs. soft float only matters for user space. Debian wheezy/unstable have both so rootfs images for testing can easily be generated with debootstrap. The only remaining problem is the userspace binaries for Vivante GPU and possibly other blobs as well.
Hi Yuri, thank you for your response.
Could maybe explain for me why I should not use the hard float compiler, i.e. arm-linux-gnueabihf- compiler.
I assumed you used such compiler for a hardware with hard float support.
regards
Einar
Applications, which are built under “hardfp” option, cannot work under Linux, that was
compiled under “softfp” – because different ABI conventions; function parameters transfer
are different : the soft float conventions assume passing floats through general purpose
(integer) registers, but “hardfp” uses the floating point register.
Ubuntu 12.04 for ARM has hard floating support, but we do not have Ubuntu 12.04 rootfs yet.
But, basically it is possible to rebuild "all the apps and everything around Linux to use hard float" :
https://community.freescale.com/docs/DOC-1628
In Yocto it'd be very easy to rebuild everything to use hard-float however I am wondering if the GPU and codecs will work in this case. I think Freescale supports only softfp.
Can you correct me if I am wrong?
You're right Otavio.
The closed-source libraries won't run with a hard-float userspace, so both the GPU and gstreamer plugins are essentially unavailable.
We've had multiple queries about that for those using Linaro builds.
EricNelson, thanks by let me know.
When I was preparing the first machines for Yocto I checked and didn't find a hardfp set of binaries so I went with softfp. It'd be good if Freescale could make it available so we could use full SoC power :smileyhappy:
Hi Yuri
Thanks a lot for this explanation.
We are working on extending our board image support to i.MX6q to be used in future machines at Marel. For the last 5 years we have been focusing on Powerpc and i386 but now we want to join the ARM wagon :smileyhappy:
We have maintained the board image ourselves, i.e. Uboot, kernel, rootfs and 3rd party components so I think the best cause of action now is to compile this for ARM with hard float support.
Regards
Einar