Subject: Re: RFC: migration to a fully dynamically linked system
To: Martin Husemann <martin@duskware.de>
From: Todd Vierling <tv@wasabisystems.com>
List: tech-userlevel
Date: 12/23/2001 11:54:36
On Sun, 23 Dec 2001, Martin Husemann wrote:

: > As Noriyuki Soda <soda@sra.co.jp> points out the problem isn't limited
: > to libc. Any library with global state that is linked into an
: > application both statically and dynamically can lose ... libc is the
: > most obvious and common though I'm sure.
:
: Call me insane, but I've been in situations where I actively exploited the
: multiple state issue that you all seem to consider a loosing situation.

: In the situations where it worked for me, all libraries (shared or statically
: linked) have been thread safe - which might have helped a bit ;-)

The reentrancy was probably the deciding factor.  Most reentrant libraries
avoid global mutexes by using context variables and no globals.

The multiple-state problem comes in when a library has so much as one global
variable, or any internal function, having an exposed global name, that
changes its ABI (think "shared library ends up relocating to statically
linked copy").

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  Wasabi & NetBSD:  Run with it.
-- CDs, Integration, Embedding, Support -- http://www.wasabisystems.com/