*BSD News Article 24043


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!news.uoknor.edu!ns1.nodak.edu!netnews.nwnet.net!news.clark.edu!spool.mu.edu!sol.ctr.columbia.edu!hamblin.math.byu.edu!news.byu.edu!cwis.isu.edu!u.cc.utah.edu!cs.weber.edu!terry
From: terry@cs.weber.edu (A Wizard of Earth C)
Newsgroups: comp.os.386bsd.misc
Subject: Shared library architecture
Date: 16 Nov 1993 05:08:30 GMT
Organization: Weber State University, Ogden, UT
Lines: 39
Message-ID: <2c9n8e$fg0@u.cc.utah.edu>
References: <CGHs3y.Au2@kithrup.com> <DERAADT.93Nov14110240@pain.agate> <CGIB9E.7z9@aib.com>
NNTP-Posting-Host: cs.weber.edu

In article <CGIB9E.7z9@aib.com> dwex@aib.com (David E. Wexelblat) writes:
>I wasn't aware that SunOS libraries were the ideal.  Personally, I prefer
>the SVR4 libraries.  How much work is it to make an SVR4 library? 
>First compile with PIC, next link with '-G'.  That's it.  There are no
>.sa files with SVR4 shared libraries.

Actually, they aren't -- the SunOS shared library code was made available
back on ref.tfs.com; unfortunately, it had come by way of the BSD4.4
sources, and was never officially donated to the 386BSD project by Sun
seperately from their donation to UCB.  Since the lawsuit had made the
BSD4.4 sources unusable without a seperate donation, the shared library
code I had working (I made the finishing touches to some other peoples
work with PIC code in the GCC compiler and handled the a.out and the
linker and symbol space changes) back in February became unusable by
virtue of being legally suspect.  My May version (a total "clean room"
rewrite) was too late to make the cutoff on potential conflict of
interest.

The main differences in the SVR4 code from the Sun code is the file
format; the lack of seperate ".so/.sa" files in SVR4 is attributable
to the fact that the SVR4 object file format allows for the storage
of multiple named objects in the executable, and Sun's object format
did not.

Actually, using symbol tagging, it is possible to put SunOS style
shared libraries into a single file, as long as it is possible to
distinguish between externally accessable and local (static) data;
I believe this is a work in progress with the current implementation.

Shared libraries are another example of a result of moderated discussion
(again, Julian was the moderator), although I am unsure of how much of
this influenced Paul, if it influenced him.


					Terry Lambert
					terry@cs.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.