From: | Jerry Leichter <leichter@smarts.com> |
Newsgroups: | comp.compilers |
Date: | 30 Jan 1997 22:20:55 -0500 |
Organization: | System Management ARTS |
References: | 97-01-196 97-01-230 |
Keywords: | linker |
The VMS linker has had this capability as part of its support for
shareable images - shared libraries, in Unix terms - literally since
day 1.
For the VMS linker, there are three levels of scoping: Local, global,
and universal. Local symbols are what you'd expect, and are there
only for use in code linked for debugging. Global symbols are the
usual things, visible across a single link. When a shareable image is
being built, a global symbol can be promoted to be a universal symbol.
(There is more than one mechanism for doing this for symbols used in
different ways, and the details were changed - simplified - in the
Alpha port of VMS.) When you link against a shareable image, the only
symbols that you can see are the ones that were promoted to universal
status. (The remaining globals and locals may still be there for
debugging.) Any references to universal symbols from within the
shareable image itself will have been resolved during the link.
While not fully general - a shareable image is not an object file, so
you can't do another pass, selecting out only *some* of the universal
symbols - it's still very useful. And it's been available - but
unknown to most of the community - for close to 20 years.
-- Jerry
[Looks like there's been a lot of specialized versions over the years.
I want it in regular link-time libraries. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.