expat + ntpl = sigsev

Jakub Bogusz qboosh w pld-linux.org
Śro, 21 Sty 2004, 13:20:14 CET


On Wed, Jan 21, 2004 at 12:07:41PM +0100, Paweł Sikora wrote:
> 
> [~/rpm/BUILD/qt-x11-free-3.2.3/bin] # strace ./uic
> 
> (...)
> open("/usr/lib/libexpat.so.0", O_RDONLY) = 6
> read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\"\0\000"..., 512) = 512
> fstat64(6, {st_mode=S_IFREG|0755, st_size=148164, ...}) = 0
> mmap2(NULL, 151168, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0x41274000
> mmap2(0x41296000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x21) = 0x41296000
> close(6)                                = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x41299000
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4129a000
> mprotect(0x40dc9000, 4800512, PROT_READ|PROT_WRITE) = 0
> mprotect(0x40dc9000, 4800512, PROT_READ|PROT_EXEC) = 0
> mprotect(0x4081b000, 307200, PROT_READ|PROT_WRITE) = 0
> mprotect(0x4081b000, 307200, PROT_READ|PROT_EXEC) = 0
> set_thread_area({entry_number:-1 -> 6, base_addr:0x41299dc0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_
> pages:1, seg_not_present:0, useable:1}) = 0
> munmap(0x4074b000, 55768)               = 0
> set_tid_address(0x41299e08)             = 25317
> rt_sigaction(SIGRTMIN, {0x40ab0530, [], SA_SIGINFO}, NULL, 8) = 0
> rt_sigprocmask(SIG_UNBLOCK, [RTMIN], NULL, 8) = 0
> getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
> futex(0x40aaa38c, FUTEX_WAKE, 2147483647) = 0
> brk(0)                                  = 0x8098000
> brk(0x80b9000)                          = 0x80b9000
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++
> 
> [~/rpm/BUILD/qt-x11-free-3.2.3/bin] # ./uic
> Naruszenie ochrony pamięci
> 
> [~/rpm/BUILD/qt-x11-free-3.2.3/bin] # ldd /usr/lib/libexpat.so.0
>         linux-gate.so.1 =>  (0xffffe000)
>         libc.so.6 => /lib/libc.so.6 (0x40034000)
>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
> 
> mam:
> glibc-2.3.3-0.20040101.10+nptl
> oraz przebudowane juz glib,glib2,binutils
> qt tez sie chyba zbuduje ;) jak zniknie ten sigsev.
> tylko jak go usunac?
> przebudowa expata nic nie dala.

A skąd pomysł, że to expat?
Między wczytaniem libexpat.so.0 a SEGV są jakieś wywołania związane
z wątkami, a expat z wątków nie korzysta.


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl