Some uclibc based Programs Terminate with Illegal Instruction

Darcy Watkins DWatkins at tranzeo.com
Wed Jan 9 18:05:09 UTC 2008


Hello,

I have a system as follows:

Kernel 2.6.23.11-rt14
Uclibc 0.9.29
Busybox 1.7.2

AMCC 405EP PowerPC CPU (no FPU)

All programs are built using uclibc 0.9.29.  I have two copies of bash,
one is built using uclibc and the other is a binary that was built using
glibc.

Kernel board support is built under the arch/powerpc tree (NOT the
deprecated arch/ppc tree) so this it pretty bleeding edge - at least for
PPC 40x series family.

Symptoms I see are:

1.  Kernel boots Ok and can be pinged even when unable to get a shell
prompt up
2.  Busybox shells launched under init process immediately terminate
3.  Bash (uclibc) shell launched under init process immediately
terminates
4.  Bash (glibc) shell launched under init process works properly
5.  Busybox shells or bash (uclibc) launched from the bash (glibc)
prompt immediately terminate with "Illegal instruction" error message
6.  Certain busybox commands such as mkdir, ls, df, ps, find, sleep,
uptime and cat work OK
7.  Other busybox commands such as awk, sed, which and grep immediately
terminate with "Illegal instruction" error message
8.  Some non busybox commands (built with uclibc) such as ldd works
9.  Some non busybox commands (built with uclibc) such as gdb
immediately terminate with "Illegal instruction" error message

The programs that fail work OK under kernel 2.6.19.2 and 2.6.21 but fail
under 2.6.23.11 (with or without the RT preemption patch rt14).

The other difference is that the kernels they worked OK with are built
under the deprecated arch/ppc tree whereas the newer kernel is built
under arch/powerpc.

Any suggestions as to what may cause this?



Regards,

Darcy






More information about the uClibc mailing list