linuxolator problem on i386
Roman Divacky
rdivacky at freebsd.org
Mon Sep 17 09:34:26 PDT 2007
On Mon, Sep 17, 2007 at 08:16:56PM +0400, Boris Samorodov wrote:
> On Mon, 17 Sep 2007 20:12:00 +0400 Boris Samorodov wrote:
>
> > > what about this? www.vlakno.cz/~rdivacky/linux_bsam.patch (it incorporates
> > > the previous patch, you might want to revert the _hlds.patch if this complete
> > > patch does not work)
>
> > Way, that seems to help!
>
> Hm, I was too quick to respond. Sorry.
>
> Actually it does not core only because getdents() does not work:
> -----
> 16857 hlds_i686 NAMI "/compat/linux/usr/home/bsam/hlds_l/./cstrike/sound/weapons/reload1.wav"
> 16857 hlds_i686 NAMI "/usr/home/bsam/hlds_l/./cstrike/sound/weapons/reload1.wav"
> 16857 hlds_i686 RET linux_stat64 JUSTRETURN
> 16857 hlds_i686 CALL linux_open(0xbfbece08,0x18800,0xbfbecd34)
> 16857 hlds_i686 NAMI "/compat/linux/usr/home/bsam/hlds_l/./cstrike/sound/weapons"
> 16857 hlds_i686 NAMI "/usr/home/bsam/hlds_l/./cstrike/sound/weapons"
> 16857 hlds_i686 RET linux_open 6
> 16857 hlds_i686 CALL linux_fstat64(0x6,0xbfbecd34,0x281f0ff4)
> 16857 hlds_i686 RET linux_fstat64 0
> 16857 hlds_i686 CALL linux_fcntl64(0x6,0x2,0x1)
> 16857 hlds_i686 RET linux_fcntl64 0
> 16857 hlds_i686 CALL linux_getdents(0x6,0x8da532c,0x1000)
> 16857 hlds_i686 RET linux_getdents -1 errno 14 Bad address
> 16857 hlds_i686 CALL close(0x6)
> 16857 hlds_i686 RET close 0
> 16857 hlds_i686 CALL linux_stat64(0xbfbecec4,0xbfbecdc4,0x281f0ff4)
> 16857 hlds_i686 NAMI "/compat/linux/usr/home/bsam/hlds_l/./valve/sound/weapons/reload1.wav"
> 16857 hlds_i686 NAMI "/usr/home/bsam/hlds_l/./valve/sound/weapons/reload1.wav"
> 16857 hlds_i686 RET linux_stat64 JUSTRETURN
> 16857 hlds_i686 CALL linux_open(0xbfbece08,0x18800,0xbfbecd34)
> 16857 hlds_i686 NAMI "/compat/linux/usr/home/bsam/hlds_l/./valve/sound/weapons"
> 16857 hlds_i686 NAMI "/usr/home/bsam/hlds_l/./valve/sound/weapons"
> 16857 hlds_i686 RET linux_open 6
> 16857 hlds_i686 CALL linux_fstat64(0x6,0xbfbecd34,0x281f0ff4)
> 16857 hlds_i686 RET linux_fstat64 0
> 16857 hlds_i686 CALL linux_fcntl64(0x6,0x2,0x1)
> 16857 hlds_i686 RET linux_fcntl64 0
> 16857 hlds_i686 CALL linux_getdents(0x6,0x8da532c,0x1000)
> 16857 hlds_i686 RET linux_getdents -1 errno 14 Bad address
show me the args->dirent... easily done by adding
printf("XXX: %p\n", args->dirent);
to the getdents_common() code (in the if (args->dirent) block)
More information about the freebsd-emulation
mailing list