[patch] linux-x86-64 (for comments)

Roman Divacky rdivacky at freebsd.org
Sat May 10 21:32:19 UTC 2008


On Sat, May 10, 2008 at 11:19:51PM +0200, Roman Divacky wrote:
> On Sun, May 11, 2008 at 01:12:25AM +0400, Chagin Dmitry wrote:
> > On Sat, 10 May 2008, Roman Divacky wrote:
> > 
> > >>now /compat/linux/bin/pwd exited without SIGSEGV, but on former can't 
> > >>load libc
> > >
> > >please... post more technical details if you want us to help you. if you
> > >mean this as "blog" entry only it's fine as it is :) but I suggest to 
> > >establish an official blog (ask flz@ about one) for this announcements :)
> > >
> > 
> > ooo, no blog )
> > about technical details:
> > now problem in getdents syscall's family
> > trace of ldconfig look like this
> > 
> > kernel: linux(26702): open(/lib, 0x90800, 0x6bdae0)
> > kernel: linux(26702): open returns error 0
> > kernel: retval[0]: 0x3   /   3
> > kernel: linux(26702): newfstat(3, *)
> > kernel: retval[0]: 0x0   /   0
> > kernel: linux(26702): fcntl(3, 00000001, *)
> > kernel: retval[0]: 0x0   /   0
> > kernel: linux(26702): fcntl(3, 00000002, *)
> > kernel: retval[0]: 0x0   /   0
> > kernel: linux(26702): getdents(3, *, 8192)
> > kernel: retval[0]: 0x88   /   136
> > 
> > kernel: trap!
> > kernel: frame->tf_trapno: 0x12
> 
> +       0,                      /* 18 T_DIVIDE */
> 
> how can integer divide trap happen in "movzwl"? Are trap numbers
> the same on i386 and on amd64? is this machine-dependant or os-dependant?

nevermind the previous. I slept only 3 hours last night ;)

take a look at arch/x86_64/kernel/traps.c around line  541 (linux 2.6.16)
it defines trap 18 to be "reserved" and intstructs the kernel to send
a SIGSEGV signal to the process...

no idea why :) please fix all the issues we have found a fix for and
report back what's going on

thnx!

roman


More information about the freebsd-emulation mailing list