Subject: Re: stdio FILE extension
To: Urban Boquist <urban@boquist.net>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-userlevel
Date: 10/16/2001 12:54:47
On Mon, Oct 15, 2001 at 11:51:15AM +0200, Urban Boquist wrote:

 > What would help, I think, is if someone could actually give a couple
 > of concrete examples of these so called "third party libraries". I've
 > seen this mentioned so many times, but have never seen anyone actually
 > say what libraries they are talking about.

ANY library which references ANY function in libc.  That is to say,
almost ALL libraries provided by ANYONE.

Consider:

	Program linked against libc.so.13 and libfoo.so.1

	libfoo.so.1 is an older version that has a dependency
	on libc.so.12

"Boom."

In order to avoid this problem, you must bump libfoo.so.1 when any
library that it depends on is bumped.  In the case of libc, since
nearly EVERYTHING depends on it, this has far-reaching consequences
(it doesn't stop at the first level -- now you have to bump anything
that depends on libfoo.so ... and so on).

 > I also think this problem needs to be put in comparison with the
 > trouble of having a libc that is an increasing maze of renamings and
 > the like. E.g., it is becoming more and more hard to compile NetBSD
 > without GCC.

The symbol renaming stuff is done in such a way as to work with other
compilers (i.e. you just have to add a case for that compiler -- the
Sun compiler does it, as well).

Of course, symbol renaming is just one example of the several GCC
dependencies we have in our tree, so that's not a particularly good
argument :-)

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>