The following information describes the components of an IPA link step listing.
The first page of the listing is identified by the product number, the compiler version and release numbers, the central title area, the date and time compilation began (formatted according to the current locale), and the page number.
The Prolog section of the listing provides information about the compile-time library, file identifiers, compiler options, and other items in effect when the IPA link step was invoked.
The listing displays all compiler options except those with no default (for example, DEFINE). If you specify IPA suboptions that are irrelevant to the IPA link step, the Prolog does not display them. Any problems with compiler options appear after the body of the Prolog section and before the End of Prolog section.
Other listing sections, such as the Source File Map, use the File ID numbers that appear in this listing section.
z/OS® UNIX file names that are too long to fit into a single listing record continue on subsequent listing records.
The IPA link step formats the compilation date and time according to the locale you specify with the LOCALE option in the IPA link step. If you do not specify the LOCALE option, it uses the default locale.
This section appears near the end of the IPA link step listing. If the IPA link step terminates early due to errors, it does not generate this section.
The Compiler Options Map listing section identifies the compiler options that were specified during the IPA compile step for each compilation unit that is encountered when the object file is processed. For each compilation unit, it displays the final options that are relevant to IPA link step processing. You may have specified these options through a compiler option or #pragma directive, or you may have picked them up as defaults.
The IPA link step generates this listing section if you specify the IPA(MAP) option.
The Global Symbols Map listing section shows how global symbols are mapped into members of global data structures by the global variable coalescing optimization process.
Each global data structure is limited to 16 MB by the z/OS object architecture. If an application has more than 16 MB of data, IPA Link must generate multiple global data structures for the application. Each global data structure is assigned a unique name.
The IPA link step generates this listing section if you specify the IPA(MAP) option and the IPA link step causes global symbols to be coalesced. The Global Symbols Map is only added to the IPA link step listing if the IPA Link phase optimization changes the structure and/or layout of the global symbols used by the final module. If no changes are made, then the Global Symbols Map is not included in the listing.
The Inline Report describes the actions that are performed by the IPA Inliner. The IPA link step generates this listing section if you specify the INLINE(,REPORT,,), NOINLINE(,REPORT,,), or INLRPT option.
Static functions whose names are not unique within the application as a whole will have names prefixed with nnnn:, where nnnn is the source file number.
Inlining may result in additional messages. For example, if inlining a subprogram with automatic storage increases the automatic storage of the subprogram it is being inlined into by more than 4K, the IPA link step issues a message.
This report may display information about inlining specific subprograms, at the point at which IPA determines that inlining is impossible.
The counts in this report do not include calls from non-IPA to IPA programs.
The Pseudo Assembly, External Symbol Dictionary, External Symbol Cross-Reference, and Storage Offset listing sections follow the Partition Map listing section for the partition, if you have specified the appropriate compiler options.
The LIST compiler option generates a listing of the machine instructions in the current partition of the object module, in a form similar to assembler language.
This Pseudo Assembly listing displays the source statement line numbers and the line number of inlined code to aid you in debugging inlined code. Refer to GONUMBER | NOGONUMBER, IPA | NOIPA, and LIST | NOLIST for information about source and line numbers in the listing section.
The External Symbol Dictionary lists the names that the IPA link step generates for the current partition of the object module. It includes address information and size information about each symbol.
The IPA link step generates this section if you specify the ATTR or XREF compiler option. It shows how the IPA link step maps internal and ESD names for external symbols that are defined or referenced in the current partition of the object module.
The Storage Offset listing section displays the offsets for the data in the current partition of the object module.
If you specify the ATTR or XREF option on the IPA link step, and any of the compilation units that contributed variables to a particular partition had storage offset information encoded in the IPA object file, the IPA link step generates a Storage Offset listing section for that partition.
The Storage Offset listing displays the variables that IPA did not coalesce. The symbol definition information appears as file#:line#.
If you specify the ATTR or XREF option, the listing file includes offset information for file scope read/write static variables.
If the IPA link step detects an error, or the possibility of an error, it issues one or more diagnostic messages, and generates the Messages listing section. This listing section contains a summary of the messages that are issued during IPA link step processing.
The IPA link step listing sorts the messages by severity. The Messages listing section displays the listing page number where each message was originally shown. It also displays the message text, and optionally, information relating the error to a file name, line (if known), and column (if known).
For more information on compiler messages, see FLAG | NOFLAG, and z/OS XL C/C++ Messages.
This listing section displays the total number of messages and the number of messages for each severity level.
The following tables show the components that are included in the listing depending on which option is specified:
Listing Component | -Wl, |
-Wl, |
-Wl, |
-Wl, |
-Wl, |
-Wl, |
-V | Phase |
---|---|---|---|---|---|---|---|---|
Compiler Options Map | ✓ | ✓ | IPA Link | |||||
Cross-Reference Table | ✓ | Binder | ||||||
Entry Point and Alias Summary | ✓ | Binder | ||||||
External Symbol Cross-Reference | ✓ | ✓ | ✓ | Backend | ||||
External Symbol Dictionary | ✓ | ✓ | Backend | |||||
Global Symbols Map ** | ✓ | ✓ | IPA Link | |||||
Imported and Exported Symbols | ✓ | Binder | ||||||
Inline Report | ✓ | ✓ | IPA Link | |||||
Input List | ✓ | Binder | ||||||
Message Summary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | IPA Link |
Message Summary Report | ✓ | Binder | ||||||
Messages * | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | IPA Link |
Module Map | ✓ | Binder | ||||||
Object File Map | ✓ | ✓ | IPA Link | |||||
Partition Map | ✓ | ✓ | IPA Link | |||||
Processing Options | ✓ | Binder | ||||||
Prolog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | IPA Link |
Pseudo Assembly Listing | ✓ | ✓ | Backend | |||||
Save Module Attributes | ✓ | Binder | ||||||
Save Operation Summary | ✓ | Binder | ||||||
Source File Map | ✓ | ✓ | IPA Link | |||||
Storage Offset Listing | ✓ | Backend |
* This section is only generated if diagnostic messages are issued.
** This section is only generated if the IPA Link phase coalesces global variables.