[comp.soft-sys.andrew] Transitive closure

jhh+@ANDREW.CMU.EDU (John Howard) (10/05/90)

Fred Hansen's succinct statement is correct:

> we start from the given list L of entry points and add to the list any
> entry points that are loaded because of loading items already in L.

To amplify, L is the list of library entry points called from within
runapp.  If you include any entry point from a library module L, then
you should include all other entry points from that module and all entry
points from other modules the first one calls, etc.  Transitive closure
means tracking through the chain of calls.  All the modules found get
loaded in runapp; all other modules are placed in libcx.a to be loaded
with individual .do files as needed.

Since the detailed contents of library modules vary from platform to
platform, the transitive closure process must be automated.  The
geteplist awk script generates a table of entry points in the transitive
closure of L so that the dynamic loader can bind them to to references
in .do files.

John Howard