ET and HOMAM3 broken with Linux 2.6 emulation [WAS: Moving to a more recent linux base, when?]

Roman Divacky rdivacky at freebsd.org
Fri Aug 24 15:32:42 PDT 2007


> Heroes of Might And Magic 3 breaks with:
>   6578 heroes3  CALL  linux_getppid                                                                         
>   6578 heroes3  RET   linux_getppid 6577/0x19b1                                                             
>   6578 heroes3  CALL  read(0x6,0x84784a0,0x94)                                                              
>   6578 heroes3  GIO   fd 6 read 148 bytes                                                                   
>        " D@\b\0\0\0\0????????$???%\b\0006G\b\0\0\0\M^@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\  
>         \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 
>         \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 2G\b\0\0\0\0H???G\b???\M^]@\b\^X\0\0\0???\0\0\0??@\b"                 
>   6578 heroes3  RET   read 148/0x94                                                                         
>   6578 heroes3  CALL  linux_mmap(0x84783ec)                                                                 
>   6578 heroes3  RET   linux_mmap -1090519040/0xbf000000                                                     
>   6578 heroes3  PSIG  SIGSEGV SIG_DFL  
 
does not look 2.6 related but.. what machine is that? (there's a known TLS bug
on i386) also.. does it work with 2.4? (mmap is 2.x independant)

> Enemy Territory breaks with:
>   5538 et.x86   CALL  gettimeofday(0xbfbfdcb0,0)
>   5538 et.x86   RET   gettimeofday 0
>   5538 et.x86   CALL  linux_open(0x2ed330fc,0x2,0x400)
>   5538 et.x86   NAMI  "/compat/linux/dev/zero"
>   5538 et.x86   NAMI  "/dev/zero"
>   5538 et.x86   RET   linux_open 7
>   5538 et.x86   CALL  linux_mmap2(0,0x2000,0x7,0x2,0x7,0)
>   5538 et.x86   RET   linux_mmap2 759926784/0x2d4b9000
>   5538 et.x86   CALL  close(0x7)
>   5538 et.x86   RET   close 0
>   5538 et.x86   CALL  linux_mmap2(0,0x5b000,0x3,0x22,0xffffffff,0)
>   5538 et.x86   RET   linux_mmap2 795836416/0x2f6f8000
>   5538 et.x86   CALL  linux_getpid
>   5538 et.x86   RET   linux_getpid 5538/0x15a2
>   5538 et.x86   CALL  linux_getpid
>   5538 et.x86   RET   linux_getpid 5538/0x15a2
>   5538 et.x86   CALL  linux_modify_ldt(0x11,0xbfbfdc64,0x10)
>   5538 et.x86   RET   linux_modify_ldt 666/0x29a
>   5538 et.x86   PSIG  SIGSEGV caught handler=0x808c720 mask=0x0 code=0x0

uh? this looks strange... are you sure the app uses 2.6 libc? the modify_ldt
should be used only with 2.4. it might be the case that the app is trying to use
statically linked old libc or something.. 


More information about the freebsd-emulation mailing list