On Thu, Mar 29, 2018 at 8:34 PM, Charles H. Sauer <sauer(a)technologists.com>
wrote:
On Mar 29, 2018, at 9:10 PM, Larry McVoy <lm(a)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(a)ccc.com> wrote:
On Thu, Mar 29, 2018 at 5:37 PM, Paul Winalski <paul.winalski(a)gmail.com <
mailto:paul.winalski@gmail.com <paul.winalski(a)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…
is a primary source, but talks of AIX 4.1
Warner