Hello again,
And sorry to insist, but I need this to work. Can anyone help me?
Thanks in advance
Post by Alberich de megresHello again,
I was looking on how the kernel build works.
All error happened when building the kernel at: oldconfig prepare
scripts, and modules. The first one is defined into the include/
kernel-defaults.mk, which is called in this line (inside
Post by Alberich de megres$(MAKE) $(KERNEL_MAKEOPTS) oldconfig prepare scripts
I can edit the KERNEL_MAKEOPTS variable to pass KBUILD_CFLAGS="" (for
example), but I'm will be overwriting an internal kernel Makefile variable.
How openwrt passes the CFLAGS to the kernel?
Post by Alberich de megresI tried the KBUILD_CFLAGS way (I also tried to include a CFLAGS="" into
KERNEL_MAKEOPTS, with no result), but I got a new different error (I think
due to I overwrote the flags). Is there some export? are the flags stored
at some place?
Post by Alberich de megresThanks in advance
I'm including the output
export MAKEFLAGS= ;make -C
/home/projects/con/delme/openwrt/build_dir/linux-hardfp/linux-3.6
CROSS_COMPILE="arm-hardfp-linux-gnueabi-" ARCH="arm" KBUILD_HAVE_NLS=no
CONFIG_SHELL="/usr/local/bin/bash" KBUILD_CFLAGS="-O2 -pipe -mfpu=vfp
-mtune=arm1176jzf-s -march=armv6zk" CC="arm-hardfp-linux-gnueabi-gcc"
oldconfig prepare scripts
Post by Alberich de megresmake[5]: Entering directory `/home/projects/con/rp-kernel'
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[7]: `include/generated/mach-types.h' is up to date.
CC arch/arm/kernel/asm-offsets.s
In file included from include/linux/time.h:9:0,
from include/linux/timex.h:56,
from include/linux/sched.h:57,
include/linux/math64.h:55:15: error: '__LINUX_ARM_ARCH__' undeclared
(first use in this function)
Post by Alberich de megresinclude/linux/math64.h:55:15: note: each undeclared identifier is
reported only once for each function it appears in
Post by Alberich de megresmake[7]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make[6]: *** [prepare0] Error 2
make[5]: *** [prepare] Error 2
make[5]: Leaving directory `/home/projects/con/rp-kernel'
[/home/projects/con/delme/openwrt/build_dir/linux-harfp/linux-3.6/.configured]
Error 2 (ignored)
Post by Alberich de megresAlberich
On Mon, Feb 18, 2013 at 10:59 AM, Alberich de megres <
Hello,
Thanks for the quick reply :)
Hello,
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.
Post by Alberich de megresin my target/linux/arm-hardfp/Makefile I'm using CLFAGS which contains
-mhard-soft and vfp.
Post by Alberich de megresWhere this should be filtered? If you want I can give a try.
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.
Post by Alberich de megresNow 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
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