I figured out the best way to get this work after going through the build base make files. The clean way is to add the compiler flags for hardware fp to the CC_MARCH build variable and that will cause LIBGCC to be defined correctly and pick up the version that uses hardware register-based parameters in the fp calls. Putting the additions to the CC_MARCH variable in the spec file for the base-hw platform being used, allows hardware fp support to be compiled in where needed. The base-linux mk spec file for ARM uses this approach.
Bob
Sent from my android device.
-----Original Message----- From: robjsstewart@...196... To: genode-main@lists.sourceforge.net Sent: Fri, 02 Oct 2015 4:24 PM Subject: Re: Using ARM/Neon fp hardware with libc
It's a bit more complicated than just setting the correct compiler options in libm.mk. Compiling the various math functions for hardfp works ok as you would expect. The issue comes when building the .so library. The linker call is set to merge the software fp version of libgcc.a. I'm having trouble following the library build process to determine where I can change to using .../fpu/libgcc.a.
Any hints would be appreciated.
Bob
Sent from my android device.
-----Original Message----- From: Christian Helmuth <christian.helmuth@...1...> To: genode-main@lists.sourceforge.net Sent: Thu, 01 Oct 2015 5:10 AM Subject: Re: Using ARM/Neon fp hardware with libc
Hello Bob,
On Wed, Sep 30, 2015 at 03:14:26PM -0400, robjsstewart@...9... wrote:
I'm exploring compiling a couple of targets in my Genode, base-hw system to use the hardware fp in the Neon coprocessor on an ARM Cortex A8 SOC, to get some performance improvement. I can add the CC_OPT line containing -mfloat-abi=hard and -mfu=neon-vfpv4 to appropreate target.mk. That should result in the Neon fp unit being called to perform the calculations. If I want use libc math functions I assume I must recompile libc with the same compile options added. Are there build variables that allow me to do that to the libc library?
With 15.02, you may try to patch repos/libports/lib/mk/arm/libm.mk accordingly. There is not way to just "configure" compilation options for libc that I know of.
Regards