The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] shared objects in Unix
@ 2018-03-29 21:37 Paul Winalski
  2018-03-29 22:01 ` Henry Bent
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Paul Winalski @ 2018-03-29 21:37 UTC (permalink / raw)


The recent discussion of long-lived applications, and backwards
compatibility in Unix, got me thinking about the history of shared
objects.  My own experience with Linux and MacOS is that
statically-linked applications tend to continue working from release
to release, but shared objects provided by the OS tend not to be
backwards compatible, and one often has to carry around with your
application the exact C runtime and other shared objects your program
was linked against.  This is in big contrast to shared libraries on
VMS, where great care is taken to maintain strict backward
compatibility release to release.

What is the history of shared objects on Unix?  When did they first
appear, and with what object/executable file format?  The a.out ZMAGIC
format doesn't seem to support them.  I don't recall if COFF does.
MACH-O, at least the MacOS dialect of it, supports dynamic libraries.
ELF supports them.

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.

-Paul W.


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2018-04-03 15:49 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-29 21:37 [TUHS] shared objects in Unix Paul Winalski
2018-03-29 22:01 ` Henry Bent
2018-03-29 22:26 ` Warner Losh
2018-03-29 23:11 ` Dave Horsfall
2018-03-29 23:22   ` Warner Losh
2018-03-29 23:24   ` Larry McVoy
2018-03-30  0:22     ` Clem Cole
2018-03-30  1:46       ` Larry McVoy
2018-03-30  4:28         ` Clem cole
2018-03-30 20:52           ` Jon Forrest
2018-03-30 22:42             ` Clem Cole
2018-03-30 23:29               ` Paul Winalski
2018-04-03 15:49               ` Derek Fawcus
2018-03-30  1:20   ` Lyndon Nerenberg
2018-03-30  0:40 ` Clem Cole
2018-03-30  1:35   ` Charles H. Sauer
2018-03-30  2:10     ` Larry McVoy
2018-03-30  2:34       ` Charles H. Sauer
2018-03-30  3:04         ` Warner Losh
2018-03-30 20:33         ` Charles H Sauer
2018-03-30  3:00   ` Ron Natalie
2018-03-30 21:53   ` Steve Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).