[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