Article View: mod.os
Article #110Re: Shared Libraries
From: darrell
Date: Fri, 17 Apr 1987 00:42
Date: Fri, 17 Apr 1987 00:42
24 lines
1704 bytes
1704 bytes
A combination of fixed addresses and binding at load time is possible,
by associating a version number with the library. At link time, the
version number of the library is stored in the load module. At load
time, that version number is compared with the version number of the
library that is being shared. If they match (which we assume they will
usually do), all is fine. On a mismatch, more work is needed. Two
solutions come to mind:
- Load the version of the library needed by the load module. This
assumes that old versions of the library are kept around. It also means
that we waste space for multiple versions of the library, but no more
than that needed for non-shared libraries.
- Patch the references in the load module. The linker must save in the
load module a list of the places where library references have been
inserted. Then the loader can fix these up with the real references.
This assumes that the semantics of the library have not changed. It
also requires a more complex loader, and extra crud in the load
module.
--Per Bothner
bothner@pescadero.stanford.edu ...!decwrl!labrea!navajo!bothner
Computer Science Dept., Stanford University, Stanford CA 94305
Technical Details
Message-ID:
<3003@sdcsvax.UCSD.EDU>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!rutgers!ames!ucbcad!ucbvax!sdcsvax!darrellShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!rutgers!ames!ucbcad!ucbvax!sdcsvax!darrell From: darrell@sdcsvax.UUCP Newsgroups: mod.os,comp.os.research Subject: Re: Shared Libraries Message-ID: <3003@sdcsvax.UCSD.EDU> Date: Thu, 16-Apr-87 19:42:00 EST Article-I.D.: sdcsvax.3003 Posted: Thu Apr 16 19:42:00 1987 Date-Received: Sat, 18-Apr-87 04:33:22 EST Sender: darrell@sdcsvax.UCSD.EDU Lines: 24 Approved: mod-os@sdcsvax.uucp