[TUHS] shared objects in Unix

Warner Losh imp at bsdimp.com
Fri Mar 30 13:04:34 AEST 2018


On Thu, Mar 29, 2018 at 8:34 PM, Charles H. Sauer <sauer at technologists.com>
wrote:

>
>
> On Mar 29, 2018, at 9:10 PM, Larry McVoy <lm at mcvoy.com> wrote:
>
> On Thu, Mar 29, 2018 at 08:35:50PM -0500, Charles H. Sauer wrote:
>
>
>
> On Mar 29, 2018, at 7:40 PM, Clem Cole <clemc at ccc.com> wrote:
>
>
>
> On Thu, Mar 29, 2018 at 5:37 PM, Paul Winalski <paul.winalski at gmail.com <
> mailto:paul.winalski at gmail.com <paul.winalski at gmail.com>>> wrote:
> Also, when was symbol preemption invented?  Traditional shared library
> designs such as in IBM System/370, VMS, and Windows NT doesn't have
> it.  As one who worked on optimizations in compilers, I came to hate
> symbol preemption because it prohibits many useful optimizations.  ELF
> does provide a way to turn it off, but it's on by default--you have to
> explicitly declare symbols as protected or hidden via source language
> pragmas to get rid of it.
>
> ???Unless it came from a place like Sun or Sun where Larry or Charlie
> might remember, I suspect that Steve Johnson is probably best to answer
> this part of your question -- assuming that it was created during his time
> in the compiler team in Summit.
>
> But, I don't remember when it came on to the scene frankly because it did
> not effect me.   I think it might have been in the original COFF which came
> from those days, but its possible its from one of the many bastardization
> of COFF that occurred after its birth.    I don't remember it being in any
> of the a.out flavors and I don't think macho has it.
>
> As an OS guy, all I remember about it frankly is you and some the compiler
> folks b*tching about it as a misfeature of UNIX at lunch ;-)
>
> ???
> ???
>
>
>
> I???m not sure if Clem meant to type ???Sun or IBM where Larry or
> Charlie??? ???
>
> I don???t readily find any documentation or history older than AIX 4.2,
> well beyond my tenure, but I believe we had shared libraries from the very
> beginning with AIX on the RT, presumably based on a.out. My recollection is
> that this was driven by (late) Larry Loucks, with assistance from Jack
> O???Quin and several of the ISC folks.
>
>
> What was the underlying technology that enabled them in AIX?
>
>
> I didn’t pay much attention to this at the time, and don’t remember
> specifics.
>
> Given the change in focus from RT to RS/6000 in the transition from AIX 2
> to AIX 3, and all of the other changes that occurred in AIX 3, I assume we
> started with something very primitive in AIX 1 and re-implemented for AIX
> 3.
>

Wikipedia says AIX v3 did shared libraries in 1990. SunOS 4.0 had them in
1988, also from wikipedia (though I can confirm 4.0 had shared libraries
now). I recall vaguely working with them in 1991 when porting OI from SunOS
to AIX 3.mumble, iirc. xlC was the weirdest C++ compiler at the time (which
effectively means it wasn't cfront based). But I can't say with absolute
certainty....

I’ve sent Jack a note about this discussion. Unless he or ISC folks chime
> in, or I find someone else to comment or provide documentation, I probably
> can’t add more. Rick Simpson wrote an article for Byte that might have
> something about this. He probably contributed to the initial design and
> (presumed) re-design.
>

I'd love to see something more definitive than my memory at the time +
vague backup from Wikipedia...
http://ps-2.kev009.com/rs6000/aix_ps_pdf/programming/using_shared_libraries.pdf
is a primary source, but talks of AIX 4.1

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180329/cfd3fbdc/attachment.html>


More information about the TUHS mailing list