Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Mar 1999 11:52:37 -0500 (EST)
From:      Robert Watson <robert@cyrus.watson.org>
To:        Eivind Eklund <eivind@yes.no>
Cc:        HighWind Software Information <info@highwind.com>, current@FreeBSD.ORG
Subject:   Re: Killed Myself
Message-ID:  <Pine.BSF.3.96.990308114720.11582C-100000@fledge.watson.org>
In-Reply-To: <19990308163137.Q41771@bitbox.follo.net>

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

So actually, I have a question about this.  How is the syscall glue
generated, and when.  Pretty much all the userland libraries call syscalls
using symbols of the same name rather than the syscall() wrapper,
presumably for performance and feasiability reasons (especially with
pipe()).  When is this glue generated?  Two possibilities come to mind:

a) When a buildworld is done, the compiler includes the
/usr/include/sys/syscall* files, and as such has access to the necessary
arguments to compile the glue straight into the libraries/applications
when they require the symbol to be available, or at link time.

b) When gcc compiles an application, it dynamically reads in the syscall
data in /usr/include/sys

And an unlikely third:
c) It munges the kernel

Which of these is the case, or what other event is happening?  Previously
when adding syscalls, I've always rebuilt the kernel and the world.  As a
result, I've never run into the problem I ran into today where my test
machine whines that it cannot link against my shared libraries making use
of new syscalls in its kernel, even though the include files are available
and correct.  I assume this is because my compiler needs to be updated,
but as I'm not actually familiar with the glue making process, I figured I
would ask.

Thanks in advance,



On Mon, 8 Mar 1999, Eivind Eklund wrote:

> On Tue, Nov 17, 1998 at 09:49:31PM -0500, HighWind Software Information wrote:
> > 
> > After installing the recent libc_r and libc, I'm getting:
> > 
> > ld.so failed: Undefined symbol "SYS_kldsym" in make:/usr/lib/aout/libc.so.3.1 
> > 
> > I also get it sometimes when I link against libc_r.
> > 
> > "SYS_kldsym" is always the thing I don't seem to have a definition for.
> > 
> > This just started happening. UGH!
> 
> If you do not know how FreeBSD works to a detailed enough level to NOT
> HAVE TO ASK THIS, then you should MAKE WORLD.  You should NOT try to
> do incremental recompiles.  That is reserved for those people that
> know exactly what they are doing.
> 
> Sorry, but this is like taking a nail-gun and shooting from the hip
> towards the floor instead of actually bedning your knees, and then
> coming shouting 'My foot hurts!  My foot hurts!  What should I do?'
> 
> Eivind.
> 
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
> 


  Robert N Watson 

robert@fledge.watson.org              http://www.watson.org/~robert/
PGP key fingerprint: 03 01 DD 8E 15 67 48 73  25 6D 10 FC EC 68 C1 1C

Carnegie Mellon University            http://www.cmu.edu/
TIS Labs at Network Associates, Inc.  http://www.tis.com/
Safeport Network Services             http://www.safeport.com/



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.990308114720.11582C-100000>