[Buildroot] Bug in target/linux/Makefile

H Hartley Sweeten hartleys at visionengravers.com
Tue Oct 6 00:17:26 UTC 2009


Hello all,

I just noticed what may be a bug in the buildroot Makefile that builds
the linux kernel.

Both Makefile.in and Makefile.in.advanced do this when first configuring
the kernel:

$(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.patched $(LINUX26_KCONFIG)
	cp -dpf $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config
	$(SED) '/CONFIG_AEABI=y/d' $(LINUX26_DIR)/.config
ifeq ($(BR2_ARM_EABI),y)
	echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config
	$(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config
	echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config
else
	echo "# CONFIG_AEABI is not set" >> $(LINUX26_DIR)/.config
endif

If I understand this correctly this is what happens:
1) CONFIG_AEABI=y is deleted if it exists
2) If BR2_ARM_EABI is set
2a) CONFIG_AEABI=y is added back
2b) CONFIG_OABI_COMPAT is deleted if it exists
2c) # CONFIG_OABI_COMPAT is not set is added

The problem I see is with ARM platforms aarch/arm/Kconfig says:

menu "Floating point emulation"

comment "At least one emulation must be selected"

But both FPE_NWFPE and FPE_FASTFPE have this depends:

	depends on !AEABI || OABI_COMPAT

Without a Floating point emulation select the kernel hangs after
uncompressing.  If I then reconfigure my kernel and select OABI_COMPAT
and FPE_NWFPE the kernel boots fine.

I have noticed this problem ever since I switched to an EABI toolchain
but just now tracked down where OABI_COMPAT was getting disabled.

Regards,
Hartley



More information about the buildroot mailing list