[uClibc]nanotop segfaults if built with uclibc (was: busybox init and login)
Cristian Ionescu-Idbohrn
cii at semera.se
Sat Dec 7 15:20:38 UTC 2002
On 5 Dec 2002, Thomas Lundquist wrote:
[snip]
> > some usage display (nanotop),
>
> Cristian?
I had a go at this (uclibc build).
No problem to build it statically linked and run it too, but defeats the
purpose :(
I have problems with building it dynamically linked.
Looks fine on the outside (build and ldd stuff).
Segfaults when at startup.
(Works fine when built with gcc-2.95, gcc-3.0, gcc-3.2 and glibc 2.3.1-5
on a debian sid box.)
,----
| # /usr/i386-linux-uclibc/bin/gcc -O2 nanotop.c -o nanotop
| # /usr/i386-linux-uclibc/bin/i386-uclibc-ldd nanotop
| libc.so.0 => /usr/i386-linux-uclibc/lib/libc.so.0
| /lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0
| # ./nanotop
| zsh: segmentation fault ./nanotop
|
| # strace -f ./nanotop
| execve("./nanotop", ["./nanotop"], [/* 54 vars */]) = 0
| old_mmap(NULL,
| 4096,
| PROT_READ|PROT_WRITE,
| MAP_PRIVATE|MAP_ANONYMOUS,
| 0,
| 0) = 0x40005000
| mprotect(0x40000000, 14727, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
| mprotect(0x8048000, 4384, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
| readlink("/lib/ld-uClibc.so.0",
| "/usr/i386-linux-uclibc/lib/ld-uClibc-0.9.16.so", 1024) = 46
| open("/usr/i386-linux-uclibc/lib/libc.so.0", O_RDONLY) = 3
| read(3,
| "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\247\0"...,
| 4096) = 4096
| old_mmap(NULL,
| 196608,
| PROT_NONE,
| MAP_PRIVATE|MAP_ANONYMOUS,
| -1,
| 0) = 0x40006000
| old_mmap(0x40006000,
| 178280,
| PROT_READ|PROT_EXEC,
| MAP_PRIVATE|MAP_FIXED,
| 3,
| 0) = 0x40006000
| old_mmap(0x40032000,
| 6372,
| PROT_READ|PROT_WRITE,
| MAP_PRIVATE|MAP_FIXED,
| 3,
| 0x2b000) = 0x40032000
| old_mmap(0x40034000,
| 7708,
| PROT_READ|PROT_WRITE,
| MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
| -1,
| 0) = 0x40034000
| close(3) = 0
| mprotect(0x40006000, 178280, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
| mprotect(0x8048000, 4384, PROT_READ|PROT_EXEC) = 0
| mprotect(0x40006000, 178280, PROT_READ|PROT_EXEC) = 0
| mprotect(0x40000000, 14727, PROT_READ|PROT_EXEC) = 0
| ioctl(0, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
| ioctl(1, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
| --- SIGSEGV (Segmentation fault) ---
| +++ killed by SIGSEGV +++
`----
Anyone seen anything similar?
Example code here:
http://ftp.axis.se/pub/users/cii/uclibc/nanotop-1.4.5c-uclibc.tar.gz
Cheers,
Cristian
More information about the uClibc
mailing list