RE: segfaults
"Howell, David P" <[email protected]> Mon, 13 Jan 2003 06:23:38 -0800
| Newsgroups | gmane.linux.ngpt.user |
|---|---|
| Message-ID | <[email protected]> |
One additional comment, if there is no /usr/lib/libpthread.so.0 symbolic link to libpthread.so.22 you should be able to build it link and retry your APP with the same script and it should work. As for why this wasn't in the builds as is, a quick look shows that it's in the Makefile after config but is missing from ngpt.spec, so building and installing from the source tarball should work but building/installing the binary packages will have this bug. I'll post a patch for this ASAP and get it in for the next release. 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: Howell, David P Sent: Monday, January 13, 2003 9:17 AM To: [email protected]; [email protected] Subject: RE: [pthreads-users] segfaults 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 _______________________________________________ pthreads-users mailing list [email protected] http://www-124.ibm.com/developerworks/oss/mailman/listinfo/pthreads-user s