Passthrough Control Parameters

Control cards can be read with one of the following options:

Option

Description

C

Control statements.

D

Dependency INCLUDE statements.

I

INCLUDE statements.

X

Executable OBJ code (or LOAD/NCAL) data.

These options control what is written to the output file MDHFLAT. The use of this output file is optional and you can pass the original input into the linker.

Option I- INCLUDES

INCLUDES for non-dependency files are always copied to MDHFLAT as they are essential for link processing. For example:

Option D- DEPENDENCY INCLUDES

INCLUDES for dependency files are not generally needed by the linker once all the real INCLUDES that they contain have been flattened out. However, you can request them as follows:

For example:

The nature of the include is decided by the data that the member contains. A member that has no executable code, but does have other INCLUDE statements, is considered to be a dependency file.

Option C - Control Cards

Other control cards may be encountered and you can optionally include them in the output:

Example:

NAME FOOBAR(R)

Option X - Executable Code

There are three methods that you can use to handle modules that mix executable (OBJ) records with control statements:

Order of Output Lines

You can optionally output the INCLUDE line before or after the data that the included file contains. If the control statements refer to particular modules, ordering is important, and -po1 (the default) is recommended. For example, some control statements refer to the CSECT that comes next in the data stream.

Examples:

Content of the file MODA:

A-START

INCLUDE OBJ(MODB)

A-END

Content of the file MODB:

B-START

INCLUDE OBJ(MODC)

B-END

Content of the file MODC:

C-START

C-END

Content of MDHFLAT using -po0:

A-START

B-START

C-START

C-END

INCLUDE OBJ(MODC)

B-END

INCLUDE OBJ(MODB)

A-END

INCLUDE OBJ(MODA)

Content of MDHFLAT using -po1:

INCLUDE OBJ(MODA)

A-START

INCLUDE OBJ(MODB)

B-START

INCLUDE OBJ(MODC)

C-START

C-END

B-END

A-END