Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Oct 2002 09:36:42 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        Hellmuth Michaelis <hm@kts.org>, FreeBSD-current Mailinglist <freebsd-current@FreeBSD.ORG>
Subject:   Re: HEADS UP: Old port recompiles needed (Re: Unknown symbol "__sF") 
Message-ID:  <20021013163642.A01A22A894@canning.wemm.org>
In-Reply-To: <20021013093802.GA9872@xor.obsecurity.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway wrote:

> On Sun, Oct 13, 2002 at 01:38:12AM -0700, Kris Kennaway wrote:
> > On Sun, Oct 13, 2002 at 10:22:48AM +0200, Hellmuth Michaelis wrote:
> > >=20
> > > Had a very bad night after upgrading my main machine from a September-b=
> ased
> > > current to a -current as of yesterday, for many, many of the programs
> > > running on that machine i got an error message like
> >=20
> > Peter removed the stdio transitional aid for older -current systems.
> > This means that older 5.0 libraries are no longer compatible with the
> > new 5.0 libc, and you will need to recompile everything that depends
> > on them.  4.x applications (i.e. things that link with libc.so.4)
> > should be unaffected.
> >=20
> > This is a required change for 5.0-RELEASE.
> >=20
> > Doing a 'make world' followed by 'portupgrade -a -f' should be
> > sufficient to rebuild everything correctly.  Alternatively, I'll have
> > new packages built in a few days, and you could just reinstall your
> > packages with those.
> 
> Actually, this should only be required for old ports (older than some
> date which I don't know off-hand).  It might be easier to just rebuild
> everything though.

Anything older than August 13th, 2001.  It also appears that gcc has been
miscompiling some binaries if you have got /usr/lib/libgcc.so* present.  I've
seen one report where an ancient 3.x libgcc.so was hanging around and was
being used by the -current gcc compiler with -current binaries.  Not Good.

Here's what I do personally:

make buildworld
rm -rf /usr/include.old
mv /usr/include /usr/include.old
chflags -R noschg /usr/lib
[mkdir /usr/lib/old]
mv /usr/lib/lib*.so.* /usr/lib/compat
mv /usr/lib/*.o /usr/lib/lib*.a /usr/lib/lib*.so /usr/lib/old
make installworld

This guarantees a clean /usr/include and /usr/lib after finishing.  Dynamic
binaries keep running because they find their libraries in /usr/lib/compat.
But ld(1) will not find them there for *new* binaries.

Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


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?20021013163642.A01A22A894>