Table of Contents (exploded view)
Abstract for MVS Program Management User's Guide and Reference
Summary of changes
Summary of changes for z/OS Version 2 Release 1
Introduction
z/OS Program Management components
The binder
Binding program modules
Enhancements to the binder
Program objects
Object module support
Fewer restrictions
Application Programming Interface
Usability improvements
The Program Management loader
The linkage editor
The batch loader
Using utilities for Program Management
IEBCOPY
IEHPROGM
IEHLIST
The Program Management transport utility
Using service aids for Program Management
AMBLIST
AMASPZAP
Program objects: Features and processing characteristics
Program object structure
Program objects on DASD storage
Residence for and access to program objects
Extensions to the PM loader to support program objects
Page mode loading
Move mode loading
LLA and checkpoint/restart support for program objects
Creating programs from source modules
Combining modules
Symbols
Sections
Classes
Common areas
Parts
Pseudoregisters
Entry points
External symbols
Object and program module structure
External symbol dictionary
Relocation dictionary
Text
Identification data
Module attributes
Binder batch processing
Input and output
Creating a program module
Creating a load module
Creating a program object
Multipart program objects
Creating a program object in a z/OS UNIX file
Restrictions
Program object formats
Binding
Assigning addresses
Resolving external references
Creation of an executable program in virtual storage
Addressing and residence modes
Addressing mode
Residence mode
AMODE and RMODE hierarchy
AMODE and RMODE combinations
AMODE and RMODE validation
AMODE and RMODE for overlay programs
Module reusability
Binder extensions supporting the Language Environment
Compatibility with prelinker functions
Binder support for DLLs
Starting the binder
Invoking the binder with JCL
Binder JCL example
EXEC statement
EXEC statement—PGM parameter
EXEC statement—PARM field
Preparing the PARM field to invoke the loader
EXEC statement—REGION parameter
DD statements
Binder DD statements
SYSLIN DD statement
Options data set
IEWPARMS DD statement
SYSLIB DD statement
SYSPRINT and SYSLOUT DD statements
SYSLMOD DD statement
SYSTERM DD statement
SYSDEFSD DD statement
Additional DD statements
Binder cataloged procedures
LKED procedure
Statement description
Invoking the LKED procedure
LKEDG procedure
Invoking the LKEDG procedure
Invoking the binder under TSO
Invoking the binder from the z/OS UNIX Shell
Invoking the Binder from a program
Defining input to the binder
Defining the primary input
Object modules, load modules and program objects
As a member of a partitioned data set or PDSE
Passed from a previous job step
Created in a separate job
Control statements
Modules and control statements
Control statements in the input stream
Control statements in a separate data set
Secondary (included) input
Including sequential data sets
Including UNIX Files
Example A: Putting the whole path in the DD statement
Example B: Putting a directory path in the DD statement and filename in the INCLUDE statement
Example C: Putting a directory path in the DD statement and a subdirectory path in the INCLUDE statement
Example D: Putting a directory path in the DD statement and using dot notation in the INCLUDE statement
Including library members
Including concatenated data sets
Sequential concatenation
Library concatenation
Resolving external references
Incremental autocall
Autocall with C370lib data sets
Autocall with archive libraries
Autocall matching for C370LIB and archive libraries
Searching the link pack area
Dynamic symbol resolution
Specifying automatic call libraries
Call libraries
Concatenation of call libraries
Directing external references to a specific library
Additional call libraries
Preventing external references from being resolved
Never-call option
NCAL option: Negating the automatic library call
Renaming
Editing data within a program module
Editing conventions
Entry points
Placement of control statements
Identical old and new symbols
Changing external symbols
Using the CHANGE statement
Example of changing external symbols
Replacing sections
Automatic replacement
Example 1: Object module with two sections
Example 2: Large program module with many sections
Using the REPLACE statement to replace sections and named common areas
Deleting external symbols
Ordering sections or named common areas
Aligning sections or named common areas on page boundaries
Binder options reference
Specifying binder options
Special rules for JCL EXEC statements
Special rules for options files
Binder options
AC: Authorization code option
ALIASES: ALIASES option
ALIGN2: 2KB page alignment option
AMODE: Addressing mode option
CALL: Automatic library call option
CASE: Case control option
COMPAT: Binder level option
COMPRESS: Compression option
DC: Downward compatible option
DCBS option
DYNAM: DYNAM option
EDIT: Edit option
EP: Entry point option
EXITS: Specify exits to be taken option
EXTATTR: Specify extended attributes
FETCHOPT: Fetching mode option
FILL: Fill character option
GID: Specify group ID
HOBSET: Set high order bit option
INFO: Info option
LET: Let execute option
LINECT: Line count option
LIST: Listing option
LONGPARM: Long parameter option
LISTPRIV: List unnamed sections option
MAP: Program module map option
MAXBLK: Maximum block size option
MODMAP: Module map option
MSGLEVEL: Message level option
NAME: NAME option
OL: Only-loadable option
OPTIONS: Options option
OVLY: Overlay option
PATHMODE: Set z/OS UNIX file access attributes for SYSLMOD
PRINT: Diagnostic messages option
RES: Search link pack area option
REUS: Reusability options
RMODE: Residence mode option
SCTR: Scatter load option
SIGN: SIGN option
SIZE: Space specification option
SSI: System status index option
STORENX: Store not-executable module
STRIPCL: Remove class option
STRIPSEC: Remove section option
SYMTRACE: Symbol resolution tracing
TERM: Alternate output option
TEST: Test option
TRAP: Error recovery
UID: Specify user ID
UPCASE: UPCASE option
WKSPACE: Working space specification option
XCAL: Exclusive call option
XREF: Cross reference table option
Binder control statement reference
Binder syntax conventions
Syntax errors
Rules for comments
Placement information
ALIAS statement
Example
ALIGNT statement
Example
AUTOCALL statement
Example
CHANGE statement
Examples
ENTRY statement
Example
EXPAND statement
Example
IDENTIFY statement
Example
IMPORT statement
Example
INCLUDE statement
Example 1
Example 2
INSERT statement
Example
LIBRARY statement
Examples
MODE statement
Example
NAME statement
Example
ORDER statement
Example
OVERLAY statement
Example
PAGE statement
Example
RENAME statement
Example
REPLACE statement
Example
SETCODE statement
Example
SETOPT statement
SETSSI statement
Interpreting binder listings
Header
Input event log
Private section list
Program module map
Simple module
The removed classes and sections report
Renamed-symbol cross-reference table
Cross-reference table
Imported and exported symbol table
Operation summary
The Long-symbol abbreviation table
Short mangled name report
Abbreviation/Demangled name report
DDname versus Pathname cross reference report
Binder service level report
The message summary report
Binder serviceability aids
Binder output data sets
Binder output data sets and their contents
The IEWDIAG data set
Allocating IEWDIAG
The IEWTRACE data set
TRACE option
Interpreting the contents of IEWTRACE
Interpreting binder ecodes
Allocating the IEWTRACE data set
The IEWDUMP data set
Generating a dump in the binder
Interpreting the contents of IEWDUMP
Workmod data elements
Finding the data in the dump
Allocating the IEWDUMP data set
The IEWGOFF data set
Interpreting the contents of IEWGOFF
Allocating the IEWGOFF data set
The AMBLIST service aid
The IDCAMS printing utility
c89 and ld diagnosis
Step for obtaining diagnosis information when the binder is invoked from c89:
Step for obtaining diagnosis information when the binder is invoked from ld:
Serviceability aids for the Binder API interface
Using the linkage editor and batch loader
Creating programs from source modules
AMODE and RMODE differences
Unsupported input module formats and contents
Invoking the linkage editor and batch loader
Invoking the linkage editor and batch loader with JCL
SYSLIN data sets
SYSPRINT and SYSLOUT data sets
SYSUT1 data set
Included data sets
Concatenated data sets
Invoking the linkage editor from a program
Invoking the batch loader from a program
Invoking the linkage editor and batch loader under TSO
Editing a control section
Replacing control sections
Deleting an external symbol
Control statement reference
Continuing a statement
ALIAS statement
CHANGE statement
ENTRY statement
EXPAND statement
IDENTIFY statement
INCLUDE statement
LIBRARY statement
NAME statement
ORDER statement
REPLACE statement
Unsupported binder control statements
Processing and attribute options reference
Supported binder options
LIST: Listing control
MAP and XREF
Reusability
SIZE: Space specification
Not-Executable attribute
Incompatible processing and attribute options
Linkage editor requirements
Virtual storage requirements
Batch loader requirements
Interpreting linkage editor output
Diagnostic output
Output listing header
Module disposition messages
Error/Warning messages
Sample diagnostic output
Optional output
Control statement listing
Module map
Cross-reference table
Linkage editor return codes
Interpreting batch loader output
Batch loader return codes
Loader serviceability aids
Summary of Program Management user considerations
Migrating from the linkage editor to the binder
SMP/E precautions
Storage considerations using the binder
Error handling in the binder
Changes and extensions in output using the binder
Binder control statements and options
Binder processing differences from the linkage editor
Other binder processing differences
Migrating from load modules to program objects
What should be converted to program objects?
Converting load modules to program objects
Compatibility of program object formats
Utilities, components and products that support program objects
PDSE program library directory access of program objects
Migrating from the prelinker
The binder incorporates Language Environment/370 prelinker functions
Processing with the prelinker
Processing without the prelinker
Support for DLL modules in dynamic link libraries
Migrating from the prelinker and to DLLs
Migrating from the prelinker to Binder
Restrictions and incompatibilities migrating from the prelinker
Migration of applications to DLL support
Binder return codes
IEWBLINK return and reason codes
IEWBLDGO return codes
Designing and specifying overlay programs
Design of an overlay program
Single region overlay program
Control section dependency
Segment dependency
Length of an overlay program
Segment origin
References between segments
Inclusive references
Exclusive references
Overlay process
Segment table
Entry table
Multiple region overlay program
Specification of an overlay program
Region origin
Control section positioning
Using object decks
Using INCLUDE statements
Using INSERT statements
Following all input
Preceding all input
Repositioning automatically called control sections
Special options
OVLY option
LET option
XCAL option
AMODE and RMODE options
Special considerations
Common areas
Automatic replacement
Storage requirements
Overlay communication
CALL statement or CALL macro instruction
Branch instruction
Segment load (SEGLD) macro instruction
Segment wait (SEGWT) macro instruction