Subject: Re: i386 elf and libc
To: Michael Richardson <mcr@sandelman.ottawa.on.ca>
From: Bill Studenmund <wrstuden@nas.nasa.gov>
List: current-users
Date: 12/10/1999 16:56:43
On Fri, 10 Dec 1999, Michael Richardson wrote:

>   I'm busy rebuilding all my pkgsrc stuff because I can't link new things
> against it (I just finished X11), just as if someone had bumped the major
> versions. 

No, it's different in that while you are recompiling to change the output
format, you AREN'T changing most of the code. Except for things which load
libraries dynamically (like plug-ins, etc), you're code is still linking
against the exact same functions. stat is still linking against the same
syscall (which as you know isn't stat()). _That's_ why we don't bump the
version number.

Also you can force your build system to build i386 today using a.out, and
I think some folks probably are still doing that. If we got into bumping
the version number when we go to elf, then either the library source
becomes quite convoluted (version # becomes output forma tdependent), or
people loos that ability to stay with AOUT.

The upgrade path you describe is the one Linux took, and there are enough
horror stories to make it an unpalletable choice. Like I heard of one
person who got a binary which was simultaneously linked against libc 6
(the Elf one) and libc 5 (the a.out one). This wonderful trick happened
because some of the subsidiary libraries in turn depended on libc 5.

>   I think that we should consider bumping all major versions of libraries
> for a port which switches from a.out to elf. Does ELF make major versioning
> of shared libraries easier? Will we ever get rid of the renames?

You realize that that would force all ports to re-compile libraries just
because one port moved to ELF? So alpha, mips, powerpc, i386, etc. all
have to change for one port? Say not all of the m68k ports change at once.
We'd then end up rolling version numbers for no compelling reason.

The renames will go away when we do bump the major number. If ever, though
around the 2.0 transition might make sense.

I think a lot of us agree with you that the current upgrade path is
problematic, and we need to do something else. But bumping version numbers
like this isn't it.

Take care,

Bill