From mboxrd@z Thu Jan 1 00:00:00 1970 From: imp@bsdimp.com (Warner Losh) Date: Thu, 29 Mar 2018 21:04:34 -0600 Subject: [TUHS] shared objects in Unix In-Reply-To: <1D00C2FE-B36F-4CC3-8548-6FB677443C39@technologists.com> References: <65E0C49A-2115-47F9-89C1-AEAF2633FD98@technologists.com> <20180330021016.GK8921@mcvoy.com> <1D00C2FE-B36F-4CC3-8548-6FB677443C39@technologists.com> Message-ID: On Thu, Mar 29, 2018 at 8:34 PM, Charles H. Sauer wrote: > > > On Mar 29, 2018, at 9:10 PM, Larry McVoy 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 wrote: > > > > On Thu, Mar 29, 2018 at 5:37 PM, Paul Winalski mailto: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: