On Wed, 02 Mar 2005 12:52:38 +0000, Mike Hearn mike@navi.cx wrote:
I guess you meant the problems refered to in WWN250 (http://www.winehq.com/?issue=250). I checked and the patch there is only for i386. I ported those to the x86_64 files (see attachments) and tried again to no avail.
Anyway, the problem I had was that the cpu trap flag was being set during kernel operations when it wasn't supposed to. The way I finally discovered the exact spot was to make trap setting and clearing verbose in logs under a working kernel and the broken kernel and compare the logs. You need to make sure that 2.6.8 works and 2.6.9-rc1 or 2 breaks it, for this to be the same case. I know the initial two patches did touch amd64, and the later fixes have not been migrated to amd64.
I also tried the test app as posted by Linus Torvalds here: http://www.winehq.com/hypermail/wine-devel/2004/11/0551.html When trying that on amd64 with the ptrace patches it does not even want to compile (not completely surprising). In the chroot it segfaults. A strace showed the following:
x5556c000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=32850, ...}) = 0 old_mmap(NULL, 32850, PROT_READ, MAP_PRIVATE, 3, 0) = 0x5556d000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/tls/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\360Y\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=1253924, ...}) = 0 old_mmap(NULL, 1260140, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x55576000 old_mmap(0x5569f000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x129000) = 0x5569f000 old_mmap(0x556a7000, 10860, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| MAP_ANONYMOUS, -1, 0) = 0x556a7000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x556aa000 set_thread_area({entry_number:-1 -> 11, base_addr:0x556aa2a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 munmap(0x5556d000, 32850) = 0 rt_sigaction(SIGTRAP, {0x8048438, [TRAP], SA_RESTART}, {SIG_DFL}, 8) = 0 mprotect(0x8048000, 4096, PROT_READ|PROT_WRITE) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++
This is from the test program?
Jesse