Skip site navigation (1)Skip section navigation (2)
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>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> 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



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