Date: Thu, 24 Jul 2008 13:06:49 +0400 (MSD) From: Chagin Dmitry <chagin.dmitry@gmail.com> To: Roman Divacky <rdivacky@freebsd.org> Cc: freebsd-emulation@freebsd.org, Chagin Dmitry <chagin.dmitry@gmail.com> Subject: Re: linuxulator64 status Message-ID: <alpine.BSF.1.10.0807241249310.1754@ora.chd.net> In-Reply-To: <20080724084705.GA92703@freebsd.org> References: <alpine.BSF.1.10.0807241015130.1086@ora.chd.net> <20080724084705.GA92703@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 24 Jul 2008, Roman Divacky wrote: > On Thu, Jul 24, 2008 at 10:30:41AM +0400, Chagin Dmitry wrote: >> >> hi! >> I'm not subscribed on fbsd-current@, therefore I shall answer here... >> >> It is possible to tell that it works, now I investigate LTP results and >> search that does not work. >> >> ps. signals, dynamic loading of libs works. >> 100% know that there are problems with getdents syscall, at least at >> x86_64. > > I recall you telling me about glibc using getdents as readdir or something > like that.. have you progressed on this front? > Yesterday I tried to compile glibc-2.7 in x86_64 emulation, look that happens: *** glibc detected *** gmake: double free or corruption (!prev): 0x0000000000693 d20 *** ======= Backtrace: ========= /lib64/libc.so.6[0x8008b4832] /lib64/libc.so.6(cfree+0x8c)[0x8008b7f2c] gmake[0x41d463] gmake[0x4045d9] gmake[0x404e3f] gmake[0x4082b7] Below a piece of ktrace dump: 29143 make CALL linux_open(0x7fffffffc9d0,O_NONBLOCK|O_DIRECTORY|O_CLOEXEC ,<unused>0x62fd70) 29143 make NAMI "string" 29143 make RET linux_open 5 29143 make CALL linux_newfstat(0x5,0x7fffffffc7d0) 29143 make STRU struct stat {dev=98, ino=3203960, mode=drwxrwxr-x , nlink= 3, uid=500, gid=500, rdev=12856072, atime=1216839073, stime=1192706475, ctime=12 16833980, birthtime=1192706475, size=3072, blksize=4096, blocks=8, flags=0x0 } 29143 make RET linux_newfstat 0 29143 make CALL linux_fcntl(0x5,F_SETFD,FD_CLOEXEC) 29143 make RET linux_fcntl 0 29143 make CALL linux_getdents(0x5,0x692e78,0x1000) !29143 make RET linux_getdents 4096/0x1000 29143 make CALL linux_open(0x80096312c,O_RDWR|O_NOCTTY|O_NONBLOCK,<unused>0x12) 29143 make NAMI "/compat/linux/dev/tty" 29143 make NAMI "/dev/tty" 29143 make RET linux_open 6 29143 make CALL writev(0x6,0x7fffffffbf60,0x7) 29143 make GIO fd 6 wrote 109 bytes "*** glibc detected *** /compat/linux/usr/bin/make: double free or corr\ uption (!prev): 0x0000000000693e80 *** getdents must be called at least twice, the last getdents call must return 0. You can try this on i386 :) > I am more than willing to join you in trying to see whats going on if this > is the main obstacle on getting linuxulator64 commited... > > I hope we can prepare a set of patches to commit to -current so it gets > integrated. I propose to make another branch devoted to integrating your > work to -current > -- Have fun! chd
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.1.10.0807241249310.1754>