Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 1998 13:49:06 +0100
From:      Eivind Eklund <eivind@yes.no>
To:        joelh@gnu.org, freebsd-current@FreeBSD.ORG
Cc:        Charles Mott <cmott@srv.net>, Ari Suutari <suutari@iki.fi>, Brian Somers <brian@awfulhak.org>
Subject:   Re: Odd libalias problem - resolved
Message-ID:  <19980316134906.22804@follo.net>
In-Reply-To: <19980315195841.18574@scsn.net>; from Donald J.Maddox on Sun, Mar 15, 1998 at 07:58:41PM %2B0000
References:  <199803152249.QAA01531@detlev.UUCP> <19980315195841.18574@scsn.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 15, 1998 at 07:58:41PM +0000, Donald J.Maddox wrote:
> On Sun, Mar 15, 1998 at 04:49:33PM -0600, Joel Ray Holveck wrote:
> > Mar 15 13:54:14 detlev ppp[223]: Warning: _PATH_ALIAS_PREFIX
> > (/usr/lib/libalias.so.2.*): Invalid lib: Undefined symbol "_err" in
> > ppp:/usr/lib/libalias.so.2.5
> > 
> > ppp went ahead and loaded, and didn't enable aliasing.  Later, I
> > pppctl'd aliasing on, and discovered that whenever aliasing was
> > enabled, no connection over ppp worked, whether or not it originated
> > from the machine ppp was running on.
> > 
> > I verified the mtime on libalias, and that the file size was the same
> > as the one in /usr/obj.  (I forgot to check ppp.)  I cleaned and
> > rebuilt libalias and ppp, and now everything works fine.
> > 
> > I'm scratching it up to the full moon that hit during the 'make
> > world', but am documenting it (by writing this message) in case
> > somebody else has similar problems.
> 
> Well, for what it's worth, I've had exactly the same experience over
> the last two 'make world's I've done...  The 'ppp' built during the make
> world doesn't like libalias, but rebuild it alone and it works fine :-/
> 
> Maybe something got screwed around in the build order?

Sounds like ppp got built with a shared libalias or using err() at one
point, and without it at another point.  I'm slightly uncertain at how
to handle the problems here.

The err() in libalias is for the case where libalias get an error when
calling ipfw.  There is no error path out of libalias at that point,
so there are basically three options:

* Ignore the error
* Throw an error message somewhere and exit (through err(), in this case)
* Throw an abort() party (it's probably best to do this by directly
  sending the abort() signal to the current process through the
  syscall).
* Change the return values for libalias (this require the cooperation
  of Charles Mott, the architect for libalias).

As the err() solution seems to be causing regular problems, I'd be
happy to change it - it was probably a bad choice from my side from
the start.  I'd like to change the return values, but that mean that
they suddenly gain significance - which should really cause a major
number bump.  This again is bad for -stable...

Eivind.

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?19980316134906.22804>