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