The binder can directly process XOBJ modules in the format accepted by the IBM® Language Environment® for MVS™ & VM prelinker, a utility used as an interim step in the binding of many Language Environment-enabled programs. See z/OS Language Environment Programming Guide for additional information.
Added capability in the binder allows for direct processing of XOBJ object modules, obviating the need for the prelinker and simplifying the process for binding such programs. This provides for the creation of rebindable modules, since the binder preserves sufficient information in the saved module to allow the replacement of one or more compilation units.
The binder supports control statements that are functionally equivalent to those offered by the prelinker. The following table shows the relationships between binder and prelinker control statements.
Binder | Prelinker |
---|---|
AUTOCALL | LIBRARY with OE options |
LIBRARY* | LIBRARY with NOOE option |
IMPORT | IMPORT |
RENAME | RENAME |
*The binder LIBRARY statement also accepts the same syntax used with the binder AUTOCALL statement (that is, specification of only a library name). The difference is that AUTOCALL is for incremental (immediate) autocall, while LIBRARY adds to the libraries used for final autocall. This latter LIBRARY capability is unique to the binder, it is not available with the Prelinker.
Each XOBJ module will be converted to one or more named or unnamed sections in the program object. The input XOBJ text will be moved to specific binder text classes. The recipe cards in the XOBJ that provide instructions for initializing writable static will be converted into actual initialized text. The following table shows the major classes generated during XOBJ conversion.
Input XOBJ | Class in output program object |
---|---|
reentrant code | C_CODE |
writeable static | C_WSA |
text in csect STINIT | C_@@STINIT |
text in csect DLLI | C_@@DLLI |
text in csect PPA2 | C_@@PPA2 |
The binder also creates a table for use by Language Environment runtime routines in class B_LIT. If they are generated, these classes can be seen in the binder map output for section IEWBLIT.