Date: Thu, 27 Sep 2007 14:17:32 -0400 (EDT) From: "Tuc at T-B-O-H.NET" <ml@t-b-o-h.net> To: rdivacky@freebsd.org (Roman Divacky) Cc: emulation@freebsd.org Subject: Re: Signal 12 on simple ldd / Linux Message-ID: <200709271817.l8RIHWK9020208@himinbjorg.tucs-beachin-obx-house.com> In-Reply-To: <20070927173022.GA39854@freebsd.org>
index | next in thread | previous in thread | raw e-mail
>
> On Thu, Sep 27, 2007 at 01:00:42PM -0400, Tuc at T-B-O-H.NET wrote:
> > Hi,
> >
> > FreeBSD 5.3-RELEASE-p10 (Yea, I know, there are reasons)
> > /proc and /linprocfs are mounted onto a point under an NFS mount point
> > (This shouldn't matter since the fs is local still, no?)
> >
> > When trying to ldd a binary, I get a signal 12. When I truss
> > it, the last bits I get are :
> >
> > 82825: linux_mmap(0xbfbfe82c) = 675115008 (0x283d7000)
> > 82825: #243() ERR#78 'Function not implemente
> > d'
> > SIGNAL 12 (SIGSYS)
> > SIGNAL 12 (SIGSYS)
> > Process stopped because of: 16
> > process exit, rval = 140
> > Bad system call
>
> syscall 243 is set_thread_area.. TLS stuff. It was implemented in 7-current.
>
(BTW: By now everyone I hope realizes I ended up trying to run the program,
not ldd it.... Sorry... I figured maybe running the program would be more accurate)
Ok, but I wonder if thats the problem. I try running on another system
and it DOES run, DOES give the same #243, but the next step its doing a
linux_modify_ldt as such :
19038: linux_open("/lib/libgcc_s.so.1",0x0,027757762100) = 3 (0x3)^M
19038: read(0x3,0xbfbfe3a0,0x200) = 512 (0x200)^M
19038: linux_fstat64(0x3,0xbfbfe2d0,0x28153fc4) = 0 (0x0)^M
19038: linux_mmap(0xbfbfe1a0) = 675074048 (0x283cd000)^M
19038: linux_mmap(0xbfbfe1a0) = 675110912 (0x283d6000)^M
19038: close(3) = 0 (0x0)^M
19038: linux_mmap(0xbfbfe78c) = 675115008 (0x283d7000)^M
19038: linux_mmap(0xbfbfe82c) = 675119104 (0x283d8000)^M
19038: #243() ERR#78 'Function not implemente
d'^M
19038: linux_modify_ldt(0x1,0xbfbfe8ac,0x10) = 0 (0x0)^M
19038: mprotect(0x283c7000,8192,(0x1)PROT_READ) = 0 (0x0)^M
19038: mprotect(0x2826a000,4096,(0x1)PROT_READ) = 0 (0x0)^M
19038: mprotect(0x28259000,4096,(0x1)PROT_READ) = 0 (0x0)^M
19038: mprotect(0x28153000,4096,(0x1)PROT_READ) = 0 (0x0)^M
19038: munmap(0x28155000,0x2c9b) = 0 (0x0)^M
I'm finding out that this also ISN'T happening on systems where
the Linux install is local, and used local. I'm finding 100% so far that
it only happens where /compat is NFS mounted. Is this something someone
has ever done, and are there any gotchas that I am running into because
of it, or is it just "One of those things you figure out that leads you
down the completely wrong path".
Thanks, Tuc
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200709271817.l8RIHWK9020208>
