[ELDK] Ubuntu 804 ELDK 4.0 kernel rebuild issues

bwr bwr64x at calcentral.com
Wed Jul 2 12:43:42 CEST 2008

I've run into a couple of obscure issues using the ELDK under Ubuntu 8.04. They 
probably aren't really ELDK issues, but they appear to be, and I spent a lot of 
time looking for ELDK issues until I resolved it. Suggestions on where else to 
post this information would be useful.

The task is cross compiling a Linux kernel

Ubuntu 8.04 host system
ELDK v4.0
ppc_8540 based target board
Linux kernel 2.6.18
U-Boot 1.2.0 modified

By default, Ubuntu does not have:
/usr/include/sys/types.h   (you need to install package libc6-dev)
/usr/include/curses.h      (install libncurses5-dev)

Once these were there, attempting to "$ make" returns a permission violation. 
Trying "$ sudo make" (the recommended Ubuntu way) will run for awhile, then 
result in an error message saying
*** 2.6 kernels no longer build correctly with old versions of binutils.
*** Please upgrade your binutils to 2.12.1 or newer
This is from ..Linux/arch/ppc/Makefile

Which seems to indicate the ELDK has an old version of binutils. This is not the 
case. What has happened is that the make process has lost the value of 
CROSS_COMPILE (although it still has ARCH, unless it get reset somewhere). 
Without CROSS_COMPILE, the makefile uses the native gcc assembler instead of the 
ELDK version, gets confused and returns the above error message.

If instead of "$ sudo make" you run "$ sudo -s" to switch to root, then "$ make" 
it works fine, CROSS_COMPILE is not lost, and the kernel rebuilds.

More information about the eldk mailing list