|Dynamic compilation/linking email@example.com (Steve Boswell) (1991-12-05)|
|Re: Dynamic compilation/linking oliver@madrone.CS.Berkeley.EDU (1991-12-07)|
|Re: Dynamic compilation/linking firstname.lastname@example.org (1991-12-10)|
|Re: Dynamic compilation/linking email@example.com (Marc Sabatella) (1991-12-11)|
|Re: Dynamic compilation/linking firstname.lastname@example.org (1991-12-12)|
|Re: Dynamic compilation/linking email@example.com (1991-12-13)|
|Re: Dynamic compilation/linking firstname.lastname@example.org (1991-12-17)|
|From:||Marc Sabatella <email@example.com>|
|Date:||Wed, 11 Dec 91 11:57:37 mst|
>[What support does System V provide for dynamic linking?]
Most non-BSD (and even many BSD) flavors of Unix provide support for dynamic
linking via the same mechanisms they use for shared libraries. While the
syntax varies, the basic idea is
create object file
use linker to turn it into a shared library
call a "load" routine to load the shared library
use a "lookup" routine to locate symbols within the library
reference those symbols indirectly using pointer returned above.
Domain (any flavor), SunOS 4.1, HP-UX 8.0, SVR4, and OSF/1 all map pretty
straightforwardly into this model. BSD's "-A" option gives you some of the raw
material you would need to implement something like this, but still forces you
to worry about such things as cache consistency, zeroing out bss,
non-write-protected code, certain details of the a.out and symbol table format,
etc, as I'm sure you've discovered. I've always wished someone would abstract
all that. Gnu's dynamic linker is another alternative, but it follows a
somewhat different model.
To answer your answer question, I don't think pure System V (at least prior to
release 4) had a "-A" option, but some System V derived systems have added it.
Marc Sabatella (firstname.lastname@example.org)
Return to the
Search the comp.compilers archives again.