[ELDK] Ubuntu 12.04 and ELDK 4.1

Niclas Lindgren niclas.lindgren at gmail.com
Fri Aug 17 01:36:34 CEST 2012

>Dear Kautzmann,
>In message < <http://lists.denx.de/mailman/listinfo/eldk>
loom.20120517T133508-807 at post.gmane.org> you wrote:
>> eldk 4.2 doesn't work with Ubuntu 12.04 as well.
>ELDK 4.2 is also more than 4 years old.  It supports Linux releases
>starting with something as RedHat Linux 7.3 of May 2002; covering a
>whole decade of Linux distributions is actually pretty good, I think.
>If it now brakes with the most recent releases, so be it.
>> It would be better for me if eldk-4.x could work in Ubuntu 12.04 rather
>> setting up a compilation server or downgrading my Ubuntu host.
>ELDK is Free Software.  You have all options with it: if you like, you
>can analyze the issue and eventually fix it (note that for rebuilding
>ELDk 4.2 you will need an old (virtual) system running RedHat Linux
>7.3).  Alternatively you can hire somebody else to do this for you.
>DENX is offering such services, so please feel free to contact me for
>a quotation.
>But please understand that with the free support we focus on
>maintaining only less geriatric code.
>Best regards,
>Wolfgang Denk
I had the same issue with ELDK 4.2. Oddly enough it works on a Ubuntu that
is upgraded from 10.04 all the way up to 12.04, but not a freshly installed
installed 12.04.
I get problem with how the path/links are resolved somehow, so there is some
compatibility issue in some lib somewhere..
My "fix" for now is to update the spec file to include the correct
directories for the compiler
%{posix: -D_POSIX_SOURCE} -I /opt/eldk-4.2/usr/../ppc_82xx/usr/include
%{mads         : %(cpp_os_ads)         ;   myellowknife :
%(cpp_os_yellowknife) ;   mmvme        : %(c$
Without the "fix" it yields this
niclas.lindgren at ubuntu:~$ /opt/eldk-4.2/usr/bin/ppc-linux-gcc -v test.c 
Reading specs from
Target: powerpc-linux
Configured with:
--target=powerpc-linux --host=i686-host_pc-linux-gnu
dk/powerpc-linux --disable-hosted-libstdcxx
515T2025-eldk/powerpc-linux/powerpc-linux --disable-nls
--enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-languages=c,c++,java --enable-shared --enable-c99
--enable-long-long --without-x
Thread model: posix
gcc version 4.2.2
 /opt/eldk-4.2/usr/bin/../libexec/gcc/powerpc-linux/4.2.2/cc1 -quiet -v
-imultilib m603 -iprefix
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/ -D__unix__
-D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux
-Asystem=unix -Asystem=posix test.c -quiet -dumpbase test.c -mcpu=603
-auxbase test -version -o /tmp/ccZkOuwj.s
ignoring nonexistent directory
ignoring nonexistent directory
ignoring nonexistent directory
ignoring nonexistent directory
ignoring nonexistent directory
ignoring nonexistent directory
ignoring nonexistent directory "/opt/eldk-4.2/powerpc-linux/sys-include"
ignoring nonexistent directory "/opt/eldk-4.2/powerpc-linux/include"
ignoring nonexistent directory "/opt/eldk-4.2/../ppc_82xx/usr/include"
#include "..." search starts here:
#include <...> search starts here:
End of search list.
GNU C version 4.2.2 (powerpc-linux)
        compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 1aec0482efbebeb41ccfcf839ce71331
test.c:1:20: error: assert.h: No such file or directory
As you can see, it kind of gets it right
ignoring nonexistent directory "/opt/eldk-4.2/../ppc_82xx/usr/include"
It is just missing a "/usr" after eldk-4.2/
What is even weirder is that running ppc-82xx-cpp will yield an error, but
running it with "-v" will make it work...
And now for the real killer, change the root of eldk from /opt/eldk-4.2 to
/opt/eldk-4.2.new makes it work (just an mv, I know some files or not
correct and it should be installed, it was just for testing).
Making it even weired, if I instead just link /opt/eldk-4.2 to
/opt/eldk-4.2.new it won't work. But doing the opposite, that is mv
/opt/eldk-4.2 to /opt/eldk-4.2.fix and then link /opt/eldk-4.2 to
/opt/eldk-4.2.fix makes it work too (all this without the spec patch).
Readlink, dirname and basename or my guesses, somewhere in the compiler, and
thus in libc. I would guess it wouldn't had been a problem had the compilers
been built statically.
The difference between my working Ubuntu and 12.04 is that
/lib/i386-linux-gnu/libc.so.6 has changed versions from 2.13 to 2.15. I will
try to bring 2.13 to my non working Ubuntu instead and see what happens.
I understand that this isn't supported and this ELDK 4.2 is old. But our
HW/kernel supplier is on ELDK 4.2 and building locally on your dev machine
is nice while not having to stay behind the releases and I hope this helps

More information about the eldk mailing list