Date: Sun, 20 Sep 1998 13:55:43 -0400 From: David Holland <dholland@cs.toronto.edu> To: peter@netplex.com.au (Peter Wemm) Cc: jabley@clear.co.nz, dholland@cs.toronto.edu, freebsd@xaa.iae.nl, freebsd-current@FreeBSD.ORG Subject: Re: ELF ldconfig Message-ID: <98Sep20.135545edt.37911-17305@qew.cs.toronto.edu> In-Reply-To: <199809200750.PAA17687@spinner.netplex.com.au> from "Peter Wemm" at Sep 20, 98 03:50:28 am
next in thread | previous in thread | raw e-mail | index | archive | help
> > > Standard ELF doesn't allow this, or support minor version numbers.
>
> a.out doesn't allow this either. If you have libc.so.3.0 and libc.so.3.1
> on the system, *everything* will use libc.so.3.1, regardless of which one
> it was linked against originally.
>
> ELF doesn't loose anthing important there.
Well, not quite - because ELF doesn't have minor versions at all, if
you come across a binary, you can't tell if it was built with
libc.so.3.1 or 3.0, which under some circumstances can be significant.
> However, once we blow away a.out support in the libs, we can do nice
> things like symbol versioning. This is *really* nice because you do
> versioning on a symbol-by-symbol basis rather than at the entire library
> level.
I'm glad all those years of flaming on linux-gcc paid off. I didn't
code it, or even design any of the details of it, but I instigated it.
:-)
> > > Even worse things happen when you have two builds of (say)
> > > libslang.so.1 that were compiled against different libcs and are thus
> > > not interchangeable...
> >
> > So remind me why ELF is a good idea? :)
>
> a.out can't do this either. We would have to bump all major library
> numbers in a.out because things like the errno -> __error() change in libc
> and libtermcap calling issetugid() etc.
Well, true, but the ultimate shared library format would address this...
--
- David A. Holland | (please continue to send non-list mail to
dholland@cs.utoronto.ca | dholland@hcs.harvard.edu. yes, I moved.)
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?98Sep20.135545edt.37911-17305>
