Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 May 2008 23:31:34 +0200
From:      Roman Divacky <rdivacky@freebsd.org>
To:        Chagin Dmitry <chagin.dmitry@gmail.com>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: [patch] linux-x86-64 (for comments)
Message-ID:  <20080510213134.GA31988@freebsd.org>
In-Reply-To: <20080510211951.GA31390@freebsd.org>
References:  <alpine.BSF.1.10.0805082210000.6489@ora.chd.net> <20080508195310.GA74606@freebsd.org> <alpine.BSF.1.10.0805090003520.8334@ora.chd.net> <20080508210641.GA81647@freebsd.org> <alpine.BSF.1.10.0805091835080.3602@ora.chd.net> <20080510105008.GA71225@freebsd.org> <alpine.BSF.1.10.0805100321540.887@ora.chd.net> <20080510154605.GA83247@freebsd.org> <alpine.BSF.1.10.0805110057330.24758@ora.chd.net> <20080510211951.GA31390@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080510213134.GA31988>