RE: segfaults
"Howell, David P" <[email protected]> Mon, 13 Jan 2003 06:16:49 -0800
| Newsgroups | gmane.linux.ngpt.user |
|---|---|
| Message-ID | <[email protected]> |
From the 'ldd v67' output, libpthread.so.0 was resolved to /lib/libpthread.so.0 (Linuxthreads). As /usr/lib/libpthread.so.22 is also included this will SEGFAULT (both NGPT and Linuxthreads in same image). With the LD_LIBRARY_PATH and LD_PRELOAD this should have been /usr/lib/libpthread.so.0 (NGPT), is there not a link in /usr/lib as libpthread.so.0 to libpthread.so.22.0.20? This is what I would have expected and would have resulted in a fully NGPT image. Dave Howell These are my opinions and not official opinions of Intel Corp. David Howell Intel Corporation Telco Server Development Server Products Division Voice: (803) 461-6112 Fax: (803) 461-6292 Intel Corporation Columbia Design Center, CBA-2 250 Berryhill Road, Suite 100 Columbia, SC 29210 [email protected] -----Original Message----- From: Mark Hounschell [mailto:[email protected]] Sent: Saturday, January 11, 2003 2:10 PM To: [email protected] Subject: [pthreads-users] segfaults I'm running a 2.4.20 kernel on a SuSE 8.1 box. The futex-2.4.19 patch applied but had to make a couple changes by hand. No biggie. Built, installed, then rebooted the new kernel after adding the ngptinit command to my /etc/init.d/boot.local file and doing Then I did the following: rpm -Uvh ngpt-2.2.0-1.src.rpm rpm -ba /usr/src/packages/SPEC/ngpt.spec rpm -Uvh --replacefiles /usr/src/packages/RPMS/i386/ngpt-2.2.0-1.i386.rpm rpm -Uvh --replacefiles /usr/src/packages/RPMS/i386/ngpt-devel-2.2.0-1.i386.rpm I rebuilt the rpms because I wasn't sure what gcc rev was used. I wanted to make sure it was with gcc-3.2.. I tried the original rpms first with the same results as below. Reboot....... Then I recompiled my app. It compiled and linked ok.. Then I did.. export LD_LIBARARY_PATH="/usr/lib:/lib:$LD_LIBARARY_PATH" export LD_PRELOAD=libpthread.so.0 Then I ldd v67 harley:/home/markh/work/lcrs # ldd v67 libpthread.so.0 => /lib/libpthread.so.0 (0x4002b000) libdl.so.2 => /lib/libdl.so.2 (0x40040000) libpthread.so.22 => /usr/lib/libpthread.so.22 (0x40043000) librt.so.1 => /lib/librt.so.1 (0x400f9000) libm.so.6 => /lib/libm.so.6 (0x4010a000) libc.so.6 => /lib/libc.so.6 (0x4012d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) My app segfaults ... harley:/home/markh/work/lcrs # ./v67 Segmentation fault Here is a short strace... harley:/home/markh/work/lcrs # strace ./v67 execve("./v67", ["./v67"], [/* 60 vars */]) = 0 uname({sys="Linux", node="harley", ...}) = 0 brk(0) = 0x8148860 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=90309, ...}) = 0 mmap2(NULL, 90309, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/lib/libpthread.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\300B\0"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=106013, ...}) = 0 mmap2(NULL, 85328, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002b000 mprotect(0x40039000, 27984, PROT_NONE) = 0 mmap2(0x40039000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe) = 0x40039000 close(3) = 0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib/libdl.so.2", 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`\31\0\000"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=11832, ...}) = 0 mmap2(NULL, 11544, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40040000 mprotect(0x40042000, 3352, PROT_NONE) = 0 mmap2(0x40042000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1) = 0x40042000 close(3) = 0 open("/usr/lib/libpthread.so.22", 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@\207\0"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=270889, ...}) = 0 mmap2(NULL, 745416, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40043000 mprotect(0x40073000, 548808, PROT_NONE) = 0 mmap2(0x40073000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2f) = 0x40073000 mmap2(0x4007f000, 499656, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4007f000 close(3) = 0 open("/lib/librt.so.1", 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\0P\32\0\000"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=33743, ...}) = 0 mmap2(NULL, 68020, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400f9000 mprotect(0x400ff000, 43444, PROT_NONE) = 0 mmap2(0x400ff000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6) = 0x400ff000 mmap2(0x40100000, 39348, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40100000 close(3) = 0 open("/lib/libm.so.6", 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@7\0\000"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=176463, ...}) = 0 mmap2(NULL, 140960, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4010a000 mprotect(0x4012c000, 1696, PROT_NONE) = 0 mmap2(0x4012c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x21) = 0x4012c000 close(3) = 0 open("/lib/libc.so.6", 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\300\205"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1312470, ...}) = 0 mmap2(NULL, 1169856, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4012d000 mprotect(0x40241000, 39360, PROT_NONE) = 0 mmap2(0x40241000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x113) = 0x40241000 mmap2(0x40247000, 14784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40247000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4024b000 munmap(0x40014000, 90309) = 0 getrlimit(0x3, 0xbffff36c) = 0 setrlimit(RLIMIT_STACK, {rlim_cur=2044*1024, rlim_max=RLIM_INFINITY}) = 0 getpid() = 25357 rt_sigaction(SIGRTMIN, {0x400338b0, [], 0x4000000}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0x40033950, [], 0x4000000}, NULL, 8) = 0 rt_sigaction(SIGRT_2, {0x40033a80, [], 0x4000000}, NULL, 8) = 0 --- SIGSEGV (Segmentation fault) --- +++ killed by SIGSEGV +++ ?????? Thanks Mark _______________________________________________ pthreads-users mailing list [email protected] http://www-124.ibm.com/developerworks/oss/mailman/listinfo/pthreads-user s