www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/11/04/07:31:40

From: ao950 AT FreeNet DOT Carleton DOT CA (Paul Derbyshire)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: ELF-binary format object file?
Date: 3 Nov 1997 06:20:01 GMT
Organization: The National Capital FreeNet
Lines: 44
Message-ID: <63jqeh$nu2@freenet-news.carleton.ca>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 971102141416 DOT 11098D-100000 AT is>
Reply-To: ao950 AT FreeNet DOT Carleton DOT CA (Paul Derbyshire)
NNTP-Posting-Host: freenet2.carleton.ca
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Eli Zaretskii (eliz AT is DOT elta DOT co DOT il) writes:
> On Thu, 30 Oct 1997, Salvador Eduardo Tropea (SET) wrote:
> 
>> Yes, gcc (ld to be more exact) can generated dynamically linked
>> libraries, they are much more powerful than the (dead brain) M$ DLL
>> idea.
>> This helps in too aspects: saves disk space and saves memory.
> 
> This was also discussed a lot.  To put the advantages in perspective,
> I'd like to point out that shared libraries have two DISadvantages:
> 
>        - The shared library includes ALL of libc, so if the loader
>          loads it in its entirety, you actually *waste* memory (since
>          it's a rare program that uses all of the libc).

Not if each .o of libc is dynamically-linked independently the way they
are now statically linked independently.

>        - There's a problem with old/incompatible shared libraries,
>          especially in DJGPP where different modules/programs are
>          donated/built by different people.  For example, recall that
>          many people patch their libraries to fix bugs and add
>          features, then distribute programs they build with these
>          patched libraries.  This requires in practice that every
>          executable is distributed with its own shared library,
>          otherwise you risk that it will not work on somebody's
>          machine.  Pretty soon your disk is full with different
>          versions of the library, and you end up *wasting* disk
>          storage.

That is a potential problem. The solution is to let older programs
continue to use the static library version built in, and to ensure that
any and all shared libraries:
a) are distributed as bug free as possible
b) are always backward compatible when new versions come out, so new
   versions can be written over old ones without breaking anything, and users
   need only keep a single copy on their disks.

--
    .*.  Where feelings are concerned, answers are rarely simple [GeneDeWeese]
 -()  <  When I go to the theater, I always go straight to the "bag and mix"
    `*'  bulk candy section...because variety is the spice of life... [me]
Paul Derbyshire ao950 AT freenet DOT carleton DOT ca, http://chat.carleton.ca/~pderbysh

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019