Hello,

Thanks for the quick reply :)


On Mon, Feb 18, 2013 at 10:46 AM, Florian Fainelli <flor...@openwrt.org>wrote:

> Hello,
>
>
> On 02/18/2013 10:21 AM, Alberich de megres wrote:
>
>> Hello Again,
>>
>> And sorry to insist.
>> Editing the KBUILD_CFLAGS and KBUILD_AFLAGS from the
>> build_dir/linux-arm/linux/**arch/arm/Makefile and removing the
>> -msoft-float I can bypass the error.
>>
>
> This does not sound right, the kernel must be compiled with software
> floating point, I assume this is because we do not want the kernel to trap
> itself by making it use hardware floating point and attempt to emulate
> this. The real fix would be to filter out the floating-point related CFLAGS
> that are being passed to the Linux kernel build system by OpenWrt, I will
> reproduce your issue and fix this.



in my target/linux/arm-hardfp/Makefile I'm using CLFAGS which contains
-mhard-soft and vfp.
Where this should be filtered? If you want I can give a try.



>
>> My I happiness did not last any longer.. as I'm getting this next error:
>> arm-hardfp-linux-gnueabi-ld: unrecognised emulation mode: uclibc
>> Supported emulations: armelf_linux_eabi armelfb_linux_eabi
>>
>> If I try to compile the same kernel tree (which is in a local git repo),
>> with the toolchain (based on glibc) I can do it with no problems (also
>> without the -mfloat-abi=soft and -mfloat-abi=hard error). Also using a
>> demo .c and manually passing the -muclibc to the gcc compiler I'm able
>> to compile it with any complains from the compiler.
>>
>
> An user-space application can select the floating point implementation at
> will, this is not the case for the kernel so your example here just works
> because your toolchain is properly configured and will not attempt to
> override the kernel floating-point CFLAGS.
>

Now I understand, thanks :)


>
>
>> When using an external toolchain, openwrt asked me for a file in
>> include/site/arm-hardfp-linux-**gnueabi. I created one as a clone of the
>> arm-openwrt-linux-gnueabi.
>>
>> I think I'm missing something. Can anyone helpme?
>>
>> thanks!
>>
>>
>> On Sun, Feb 17, 2013 at 3:16 PM, Alberich de megres
>> <alberich...@gmail.com <mailto:alberich...@gmail.com>**> wrote:
>>
>>     Hello Florian,
>>
>>     Thanks for your quick reply.
>>
>>     I had the fpu feature for my target Makefile, and Also I disabled
>>     the SOFT_FLOAT.
>>     Also, I did a quick hack into rules.mk <http://rules.mk> to ensure
>>
>>     msoft-float is never activated,
>>
>>     ifeq ($(CONFIG_SOFT_FLOAT),y)
>>     #  SOFT_FLOAT_CONFIG_OPTION:=--**with-float=soft
>>     #  TARGET_CFLAGS+= -msoft-float
>>        SOFT_FLOAT_CONFIG_OPTION:=
>>     else
>>        SOFT_FLOAT_CONFIG_OPTION:=
>>     endif
>>
>>     But i'm still getting the same error.
>>     Maybe am I looking at the wrong place?
>>
>>     Thanks once again,
>>     Alberich
>>
>>
>>
>>
>>
>>
>>
>>     On Sun, Feb 17, 2013 at 2:32 PM, Florian Fainelli
>>     <flor...@openwrt.org <mailto:flor...@openwrt.org>> wrote:
>>
>>         Hello Alberich,
>>
>>         Le 17/02/2013 14:26, Alberich de megres a écrit :
>>
>>             Hello,
>>
>>             I'm trying to compile openwrt for an ARM using an external
>>             toolchain
>>             with hardfp.
>>
>>             When openwrt buildroot is compiling the kernel, at the
>>             oldconfig prepare
>>             scripts i'm getting this error:
>>
>>             arm-hardfp-linux-gnueabi-gcc: error: -mfloat-abi=soft and
>>             -mfloat-abi=hard may not be used together
>>
>>             In the openwrt menuconfig,
>>             In advanced (developers ) -> target options -> use softhp is
>>             disabled
>>             with this flags (for both: TARGET_OPTIMIZATION,
>>             DEFAULT_TARGET_OPTIMIZATION):
>>             -O2 -pipe -mfloat-abi=hard -mfpu=vfp
>>
>>             Also I checked the kernel_menuconfig for FPU, which is
>> enabled.
>>
>>             At some point the -mfloat-abi=soft compiler flags is added
>>             to the flags,
>>             but I could not find where is it added. fgrep for
>>             mfloat-abi=soft or
>>             msoft-float didn't show anything relevant.
>>
>>             Can anyone help me?
>>
>>
>>         This is specifically passed to the GCC configure script here:
>>         https://dev.openwrt.org/__**browser/trunk/toolchain/gcc/__**
>> common.mk#L125<https://dev.openwrt.org/__browser/trunk/toolchain/gcc/__common.mk#L125>
>>
>>         <https://dev.openwrt.org/**browser/trunk/toolchain/gcc/**
>> common.mk#L125<https://dev.openwrt.org/browser/trunk/toolchain/gcc/common.mk#L125>
>> >
>>
>>         you can disable the use of software floating point for your
>>         binaries from here:
>>         
>> https://dev.openwrt.org/__**browser/trunk/Config.in#L670<https://dev.openwrt.org/__browser/trunk/Config.in#L670>
>>
>>         
>> <https://dev.openwrt.org/**browser/trunk/Config.in#L670<https://dev.openwrt.org/browser/trunk/Config.in#L670>
>> >
>>
>>         software floating point is enabled by default for ARM little and
>>         big endian toolchains. Alternatively you can set the "fpu"
>>         feature flag in your target Makefile in
>>         target/linux/<target>/Makefile if you want to disable software
>>         floating point for your specific target/platform.
>>         --
>>         Florian
>>
>>
>>
>>
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to