The INCLUDE statement specifies sequential data sets, library members,
or z/OS UNIX files
that are to be sources of additional input for the binder. INCLUDE
statements are processed in the order in which they appear in the
input. However, the sequence of control sections within the output
program object or load module does not necessarily follow the order
of the INCLUDE statements. If the order of the CSECTs within the module
is significant, you must specify the desired sequence by using ORDER
statements. The syntax of the INCLUDE statement is:
INCLUDE [{-ATTR, | -IMPORTS, | -ALIASES,
|-NOATTR, | -NOIMPORTS,
|-NOALIASES}...]
{ddname[(membername |
relative-path[,...])] | pathname}[,...]
Note: If options that contradict one another are specified, the last
valid option specified will be used. For example, if both -ATTR and -NOATTR are
specified in that order, the binder will honor the -NOATTR option.
- -ATTR
- Specifies that module attributes should be copied from the input
module and be applied to the module being built by the binder. The
attributes which are copied are: AC, AMODE, DC, OL, REUS, RMODE, SSI,
TEST, entry point, DYNAM, and MIGRATABLE.
Note: - Attributes cannot be included if the input is an object module,
or if there is no member name on the INCLUDE control statement and
the INCLUDE designates a load module.
- Attributes brought in for a given module specified with INCLUDE
override attributes copied in for previous modules.
- Attributes override attributes requested by the Binder invocation
parameters, but not those set by control statements such as SETOPT
or MODE.
- -IMPORTS
- Specifies that dynamic resolution information (if any) will be
copied from the input module. This option is not required,
as the INCLUDE statement will always bring in any available dynamic
resolution information unless it is suppressed by -NOIMPORTS. This
option is still supported for compatibility reasons.
Such dynamic
resolution information may exist for PO4 or above format program objects.
The dynamic resolution information for a symbol consists of the symbol
name, the CODE, CODE64, DATA, or DATA64 designation, and the name
of the DLL from which the symbol is to be dynamically resolved. This
is the same information as that provided on the IMPORT statement for
the symbol. If this information is available via INCLUDE, the IMPORT
control statement need not be input on a re-bind. If there is more
than one entry for a particular symbol being imported, no message
will be issued and the first occurrence will be retained.
- -ALIASES
- Specifies that the aliases of the input module be copied in and
used as aliases for the output module. Aliases can be included only
if:
- the input is a program object in either a UNIX file or a PDSE (and regardless of where
the PDSE member name is)
- the input is a load module with the member name in the INCLUDE.
- -NOATTR
- Specifies that module attributes will not be copied from the input
module. This is the default.
- -NOIMPORTS
- Specifies that dynamic resolution information (if any) will not
be copied from the input module.
- -NOALIASES
- Specifies that the aliases of the input will not be copied from
the input module. This is the default.
- ddname
- The name of a DD statement that describes a sequential data
set, a PDS, a PDSE, or a z/OS UNIX file to be
used as additional input to the binder. A DD statement must be
supplied for every ddname specified in an INCLUDE statement. For a
sequential data set, only ddname should be specified. For a PDS
or PDSE without a member qualification in the JCL, at least one
member name must also be specified. If only a single member is included,
its member name can be specified in the JCL rather than on the control
statement.
When the source is a z/OS® UNIX file, the DD statement must
contain the full or partial pathname of the file to be included. If
a partial pathname is provided it must be completed using a relative-path
expression following the ddname.
- membername
- The name of or an alias for a member of the PDS or PDSE library
defined in the specified DD statement.
- pathname
- The absolute or relative pathname for a z/OS UNIX file that
can be up to 1023 bytes. Note that this is a direct specification
for z/OS UNIX files. z/OS UNIX files can
also be specified indirectly with a DD statement (see above). Example 2 uses pathname. See Binder syntax conventions for a discussion of continuations and
lower case letters.
- relative-path
- If the referenced DDNAME specifies a path, then relative-path
will be appended to that path name.
Placement: An INCLUDE statement can be placed before, between,
or after object modules or other control statements.
Note: - A NAME statement in any data set specified in an INCLUDE statement
is invalid; the NAME statement is ignored. All other control statements
are processed.
- The INCLUDE statement is not allowed in a data set that is included
from an automatic call library.
- When invoking the binder using the TSO link command, an INCLUDE
statement specifying a ddname of SYSLMOD will be allocated
to the output library, unless SYSLMOD has been specifically allocated
to another library.