Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jan 2012 02:37:41 -0800
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Henri Hennebert <hlh@restart.be>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: FreeBSD 9 & recompile ports
Message-ID:  <20120114103741.GA1936@icarus.home.lan>
In-Reply-To: <4F1158EC.8070803@restart.be>
References:  <CA%2BdUSyrV_j8GtxS4=yN-DsFCprQ7N%2BEmuRoraDwBLZN1EFFR9w@mail.gmail.com> <CA%2BdUSyqZVVyVkVWTPJXJe921NcZ3RaEN9QojH55NhRNP8xDinA@mail.gmail.com> <4F10009A.7000307@FreeBSD.org> <4F100D9E.80807@FreeBSD.org> <CA%2BdUSyrFVn0skisgeJ1pYjHN3wCXC2tqDPoMoqWNqkjAk8DVmA@mail.gmail.com> <4F10B1AD.9000400@FreeBSD.org> <4F10B6C9.8010607@FreeBSD.org> <4F1140DD.4040300@infracaninophile.co.uk> <4F1158EC.8070803@restart.be>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jan 14, 2012 at 11:29:00AM +0100, Henri Hennebert wrote:
> On 01/14/2012 09:46, Matthew Seaman wrote:
> > On 13/01/2012 22:57, Andriy Gapon wrote:
> >> But if the appropriate misc/compatX port is installed, then
> >> those libraries do actually exist and the system should be fully 
> >> usable... Modulo the compat libraries not working with the new 
> >> kernel as Kostik has pointed out.
> > 
> > As soon as you update or install an application after this point, 
> > you are likely to end up with an application that tries to 
> > dynamically link two different versions of the same shlib, and
> > that is a recipe for tears-before-bedtime.
> 
> This /etc/libmap.conf help me greatly when I reinstall all my ports
> after 9.0-BETA2 and make delete-old-libs:
> 
> libsbuf.so.5	libsbuf.so.6
> libz.so.5	libz.so.6
> libutil.so.8	libutil.so.9
> libcam.so.5	libcam.so.6
> libpcap.so.7	libpcap.so.8
> libufs.so.5	libufs.so.6
> libbsnmp.so.5	libbsnmp.so.6
> libdwarf.so.2	libdwarf.so.3
> libopie.so.6	libopie.so.7
> librtld_db.so.1	librtld_db.so.2
> libtacplus.so.4	libtacplus.so.5

This is very, VERY, ***VERY*** dangerous.  Apparently nobody has
explained why, so I will:

When a linked library version number (N of libfoo.so.N) increases or
changes, it indicates there are API/ABI changes to the library.  There
is absolutely ZERO guarantee that calling semantics are the same, that
function arguments (thus stack order) are the same, or that structures
used internally by the library are the same.  The effects of this can be
devastating -- if you're lucky it'll consist of just "missing symbol",
but it can be a lot worse.  The TL;DR version is: there is absolutely
ZERO guarantee that the internal operations and calling semantics of the
libraries are identical.

Folks reading this thread, PLEASE do not follow the above advice and
leave your system running in that kind of state.  Instead of being lazy,
rebuild all your ports from scratch or pull down new binary copies
(pkg_add -r ...) for the version of the OS you're running.  Doug and I
have the same opinion when it comes to this situation, and it's based
purely on experience.  Schedule downtime, spend an afternoon rebuilding
things, whatever -- just do it the Right Way(tm) please.  Otherwise
you're creating a lot of support hassle when it comes to trying to
diagnose why some program on your system "behaves oddly" -- weeks go by,
"oh, libmap.conf..."

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                   Mountain View, CA, US |
| Making life hard for others since 1977.               PGP 4BD6C0CB |




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