Silent-Tears
IPPF-Promi
- Mitglied seit
- 3 Aug 2007
- Beiträge
- 7,456
- Punkte für Reaktionen
- 1
- Punkte
- 0
I use this with my native Ubuntu-Linux on a core2duo, and an AMD phenonX4, with a native openSuSE, too.
Are you sure that you are using only 1 thread? The last lines of strace2.ttx suggest otherwise:
It seems that the program receives SIGABRT while it is in the futex() syscall.Code:futex(0xade1f0, FUTEX_WAKE_PRIVATE, 1 <unfinished ...> +++ killed by SIGABRT +++
Can you repeat it with "strace -f"? And I think ltrace also has the option -f.
Could it be related to my local build environment, say my gcc version? What gcc versions are you guys using? Anybody interested in trying to use my unsquashfs3-lzma in a vmware known to be able to build freetz? Anything left I could try?
I switched back to squashfs-3.3 in stable-1.1 because of this issue. In squashfs-3.4 a new, multithreaded version of unsquashfs was implemented.32/64bit, single/multicore, trunk/stable, etc is not the point.
I've attached the output of strace and ltrace both invoked with -f.
[pid 28672] [B]tgkill(28670, 28672, SIGABRT[/B] <unfinished ...>
[pid 28673] <... futex resumed> ) = 0
[pid 28672] <... tgkill resumed> ) = 0
[pid 28673] futex(0x753ee4, FUTEX_WAIT_PRIVATE, 3, {0, 249911359} <unfinished ...>
[pid 28672] --- SIGABRT (Aborted) @ 0 (0) ---
Process 28672 detached
[pid 28670] <... futex resumed> ) = 1
[pid 28673] +++ killed by SIGABRT +++
[pid 28671] +++ killed by SIGABRT +++
[pid 28674] +++ killed by SIGABRT +++
+++ killed by SIGABRT +++
$ gdb /home/make/projects/freetz-trunk/tools/unsquashfs3-lzma
# gdb starts
(gdb) run -n -f -p 1 -dest build/original/filesystem build/original/kernel/kernelsquashfs.raw
# program should run and stop with SIGABRT
(gdb) where
# should show the call list
Find new ltrace and strace outputs attached.The ltrace doesn't seem to recognize the option -f, it shows nothing of multiple threads. The option -S to display the syscalls would also be interesting, but less so if it doesn't show the threads.
I ran unsquashfs3-lzma in the debugger as you have had suggested. The output is also attached. It seems that there is a code path where free(...) is called with an invalid pointer. gdb output is attached in gdb.zipCan you try gdb:
Statically linked version with -g and SQUASHFS_TRACE, without -O is attached. Behaviour has not changed, uncompressing still fails.Could you also (if you haven't already) create a statically linked unsquash3 program with -g and without -O, just in case it is a problem with your libraries. Of course you should verify that an error occurs also with this version.
[make@mini freetz-trunk]$ ldd tools/unsquashfs3-lzma
linux-vdso.so.1 => (0x00007fffecffe000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003625000000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003626c00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003624c00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003626000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003624400000)
/lib64/ld-linux-x86-64.so.2 (0x0000003624000000)
[make@mini freetz-trunk]$ ls -l /lib64/libpthread.so.0 /usr/lib64/libstdc++.so.6 /lib64/libm.so.6 /lib64/libgcc_s.so.1 /lib64/libc.so.6 /lib64/ld-linux-x86-64.so.2
lrwxrwxrwx 1 root root 9 2008-12-26 19:50 /lib64/ld-linux-x86-64.so.2 -> ld-2.9.so
lrwxrwxrwx 1 root root 11 2008-12-26 19:50 /lib64/libc.so.6 -> libc-2.9.so
lrwxrwxrwx 1 root root 28 2008-11-19 22:29 /lib64/libgcc_s.so.1 -> libgcc_s-4.3.2-20081105.so.1
lrwxrwxrwx 1 root root 11 2008-12-26 19:50 /lib64/libm.so.6 -> libm-2.9.so
lrwxrwxrwx 1 root root 17 2008-12-26 19:50 /lib64/libpthread.so.0 -> libpthread-2.9.so
lrwxrwxrwx 1 root root 19 2008-11-19 22:29 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.10
...
unsquashfs: create_inode: pathname build/original/filesystem//var.tar
unsquashfs: create_inode: regular file, file_size 20480, blocks 0
unsquashfs: write_file: regular file, blocks 0
unsquashfs: read_fragment: reading fragment 142
unsquashfs: read_bytes: reading from position 0x7d427e, bytes 763
unsquashfs: writer: regular file, blocks 1
unsquashfs: writer: regular file, blocks 1
created 1769 files
created 122 directories
created 257 symlinks
created 0 devices
created 0 fifos
[root@fedora trunk]# ./unsquashfs3-lzma-g -n -d build/original/filesystem build/original/kernel/kernelsquashfs.raw
2190 inodes (2430 blocks) to write
created 1769 files
created 122 directories
created 257 symlinks
created 164 devices
created 0 fifos
[root@fedora trunk]#
uname -a
Linux fedora 2.6.27.15-170.2.24.fc10.x86_64 #1 SMP Wed Feb 11 23:14:31 EST 2009 x86_64 x86_64 x86_64 GNU/Linux