Re: Smart linking under UNIX

davidsen@crdos1.crd.ge.com (bill davidsen)
26 Aug 91 21:38:36 GMT

          From comp.compilers

Related articles
[8 earlier articles]
Re: Smart linking under UNIX henrik@tazdevil.llnl.gov (1991-08-22)
Re: Smart linking under UNIX weitek!ars@Sun.COM (1991-08-22)
Re: Smart linking under UNIX dalamb@umiacs.umd.edu (1991-08-23)
Re: Smart linking under UNIX pardo@gar.cs.washington.edu (1991-08-23)
Re: Smart linking under UNIX thorinn@diku.dk (1991-08-25)
Re: Smart linking under UNIX przemek@rrdstrad.nist.gov (1991-08-26)
Re: Smart linking under UNIX davidsen@crdos1.crd.ge.com (1991-08-26)
Re: Smart linking under UNIX liam@dcs.qmw.ac.uk (William Roberts) (1991-08-27)
Re: Smart linking under UNIX mjs@hpfcso.fc.hp.com (Marc Sabatella) (1991-08-27)
| List of all articles for this month |

Newsgroups: comp.compilers
From: davidsen@crdos1.crd.ge.com (bill davidsen)
Summary: More reasons why not
Keywords: linker
Organization: GE Corp R&D Center, Schenectady NY
References: 91-08-085 91-08-094
Date: 26 Aug 91 21:38:36 GMT

[From comp.arch -John]




In article 91-08-094 schwartz@groucho.cs.psu.edu (Scott Schwartz) writes:
| In article 91-08-085 umh@vax5.cit.cornell.edu writes:
| This brings up something I've wondered about. Why do "Standard Unix" linkers
| only include entire object files-
|
| Because of the Daemon of Eternal Compatability with the Evils of the Past, in
| conjunction with the Daemon of Premature Standardization on the Evils of the
| Future.


    That's really an ellegant way of expressing it. Unfortunately it's
only part of the answer. Limited languages have only two scopes: local
(or procedure) and global. C adds "compilation unit" scope for both
variables and procedures, and this makes it very hard to separate part
of those unit, since even though the name of a static element is not
visible, the visible procedures may provide the address of the items.


    The full answer is what you said, "that's the way we always did it,"
but also "because it's quite hard to do right and we wanted it to work
correctly."


    Honestly, unless someone has been very careless with their library,
the penalty is pretty samll in terms of current memory sizes, and on
many systems the library is shared and it make no difference since it is
all in memory anyway.


    I am very much in favor of tight code and good practices, but not at
the cost of reliability, and not at the price of diverting resources
which could solve problems which are more pressing than this one.
--
bill davidsen (davidsen@crdos1.crd.GE.COM -or- uunet!crdgw1!crdos1!davidsen)
    GE Corp R&D Center, Information Systems Operation, tech support group
    Moderator comp.binaries.ibm.pc and 386-users digest.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.