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>

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>