Binder Manual (G06.24+, H06.03+)
Binder Input and Output
Binder Manual—528613-003
5-7
How Binder Uses the Input Control Lists
2. Binder searches the omit list; if it finds the name in the omit list, it does not resolve
the entry point name. No further action takes place for that reference and the entry
point name remains in the unresolved reference list.
3. If the reference is internal to the file that contained it, Binder searches that file. If
the reference is external to the file that contained it, Binder searches the object
files named in the search list for an entry point that satisfies the reference; Binder
searches object files in the order of the file names in the search list. If Binder finds
the entry point, it adds the code block that defines the entry point to the end of the
include code block list and deletes the entry point name from the unresolved
reference list.
4. If adding a code block to the include code block list introduces further unresolved
references, Binder checks the refer list for redirection of those entry points and
notes whether the reference came from the same file as the block that was just
included. If an entry point is redirected and can be resolved by the include entry
point list, no further action takes place; otherwise, Binder adds the entry point
name to the unresolved reference list.
For data block names, Binder tries to resolve each reference by searching the file
containing the code block that referenced the common block. Binder performs this step
regardless of the setting of SELECT SATISFY command.
For RTDUs, if the reference is internal to the file that contained it, Binder searches that
file. If the reference is external to the file that contained it, Binder searches the object
files named in the search list for an RTDU that satisfies the reference; Binder searches
object files in the order of the file names in the search list. If Binder finds the RTDU, it
adds the code block that defines the RTDU to the end of the include code block list and
deletes the RTDU name from the unresolved reference list.
Once Binder has built the target file, entry points, RTDUs, and data blocks are handled
differently. For entry points and RTDUs, any unresolved reference becomes an
external reference that must be satisfied either by a subsequent Binder operation or at
run time. For the languages currently supported by Binder, no data block names should
appear in the unresolved reference list after binding.
The following example illustrates how Binder resolves unsatisfied references when
building the target file. This example assumes that:
•
The unresolved entry list specifies A, B, C, and D (in that order).
•
Procedure A calls procedure B and procedure B calls procedures C and D.
•
File OBJ1 contains procedures A and C and file OBJ2 contains procedures B, C,
and D.
The following commands produce the results specified in the subsequent paragraphs.
@ADD CODE A FROM OBJ1
@SELECT SEARCH OBJ1
@SELECT SEARCH OBJ2