SPLITLIST | NOSPLITLIST

Category

Listings, messages, and compiler information

Pragma equivalent

None.

Purpose

Enables the z/OS® XL C/C++ compiler to write the IPA Link phase listing to multiple PDS members, PDSE members, or z/OS UNIX files. The SPLITLIST compiler option has no effect unless the LIST or INLRPT compiler options are also specified.

Syntax

Read syntax diagramSkip visual syntax diagramNOSPLSPL

Defaults

NOSPLITLIST

Usage

Normally, the default listing location is stdout or SYSCPRT. You can instruct the compiler to output listing contents into a file by using the LIST or INLRPT options. This method can be useful when the source file is large and there is a large amount of detail in the listing. Writing the listing contents to a file, allows you to use an editor or a search utility to browse through the file. However, for the IPA Link phase, which processes the whole application instead of just one source file, there are situations when the listing file itself becomes too large, which can cause difficulties for an editor or search utility. The SPLITLIST option is designed to split a listing into multiple files so that it will be easier for you to browse and edit large listings.

The SPLITLIST option is used only in the IPA Link phase, and the location of the files, which must be a PDS, PDSE, or z/OS UNIX file system directory, must be specified by the LIST or INLRPT option. If the LIST or INLRPT option is not used to specify a location, you will receive an error message.

Table 1 shows the names given to the generated listing sections if a z/OS UNIX file system directory name is specified. In the table, we assume the location is a directory called listing, and there are three partitions generated by the IPA Link phase.

Table 1. Listing section names comparison for a specified z/OS UNIX file system directory
Listing section names generated with SPLITLIST Listing section names generated with NOSPLITLIST
listing/part0 Partition 0 listing
listing/part1 Partition 1 listing
listing/part2 Partition 2 listing
listing/objmap Object File Map
listing/srcmap Source File Map
listing/inlrpt Inline Report
listing/options IPA Link Options
listing/cuopts Compiler Options Map
listing/globsym Global Symbols Map
listing/messages Messages and Summary

Table 2 shows the names given to the generated listing sections if a PDS or PDSE name is specified. In the table, we assume the PDS or PDSE name is ACCNTING.LISTING, and that three partitions are generated by the IPA Link phase.

Table 2. Listing section names comparison for a specified PDS name
Listing section names generated with SPLITLIST Listing section names generated with NOSPLITLIST
ACCNTING.LISTING(PART0) Partition 0 listing
ACCNTING.LISTING(PART1) Partition 1 listing
ACCNTING.LISTING(PART2) Partition 2 listing
ACCNTING.LISTING(OBJMAP) Object File Map
ACCNTING.LISTING(SRCMAP) Source File Map
ACCNTING.LISTING(INLRPT) Inline Report
ACCNTING.LISTING(OPTIONS) IPA Link Options
ACCNTING.LISTING(CUOPTS) Compiler Options Map
ACCNTING.LISTING(GLOBSYM) Global Symbols Map
ACCNTING.LISTING(MESSAGES) Messages and Summary
Notes:
  1. The SPLITLIST option can only be specified in the IPA Link phase.
  2. Repeating a SPLITLIST option is equivalent to specifying it once. The last one specified is the effective setting.
  3. If the SPLITLIST option is specified but the effective location of the listing is not a z/OS UNIX file system directory, PDS data set, or PDSE data set, then a diagnostic message will be issued and the IPA Link phase return code will be at least 8.
  4. A z/OS UNIX file system directory name must denote a z/OS UNIX directory which exists and is accessible by the user prior to the IPA Link. Otherwise, a diagnostic message will be issued and the minimum return code will be raised to 16.
  5. The PDS name must denote a PDS or PDSE data set which exists and is accessible by the user prior to the IPA Link. Otherwise, a diagnostic message will be generated and the minimum return code will be raised to 16.

IPA effects

The SPLITLIST option will be ignored by the IPA Compile phase (since it does not generate a listing). If -Wc,SPLITLIST is used, the IPA compile step will ignore it.

Predefined macros

None.

Examples

The following examples show how to use SPLITLIST.

Example 1
# list must exist prior to executing the IPA link
#
mkdir list

# Generate listing sections corresponding to XREF and LIST
#
c89 -Wl,I,"XREF,LIST(./list)" -Wl,I,SPLITLIST -o a.out hello.o
Example 2
# list must exist prior to executing the IPA link
#
mkdir list

# Since NOLIST is specified, only IPA(MAP)  sections are generated
#  However, the destination directory is the one specified in the NOLIST option
#
c89 -Wl,I,SPLITLIST -Wl,I,'NOLIST(./list)' -WI,MAP -o a.out hello.o
Example 3
# list must exist prior to executing the IPA link
#
mkdir list

# Generate sections corresponding to INLRPT
#
c89 -Wl,I,"INLR(./list)" -Wl,I,SPLITLIST -o a.out hello.o
The following provides a JCL example for SPLITLIST:
//USRID1A  JOB (359B,2326),'USRID1',
//          MSGLEVEL=(1,1),MSGCLASS=S,CLASS=A,NOTIFY=USRID1
/*JOBPARM   T=1,L=300                                      
//ORDER     JCLLIB ORDER=(CBC.SCCNPRC)
//*--------------------------------------------------------------------
//* Compile                                                            
//*--------------------------------------------------------------------
//C0011L01  EXEC EDCC,                                                 
//          OUTFILE='USRID1.PASS1.OBJECT(SPLLIST),DISP=SHR',
// PARM.COMPILE=('IPA(NOLINK,NOOBJECT) OPT',                
//   'RENT LO ')                            
//SYSIN    DD *,DLM='/>'
int main()              
{         
    return 0;
}            
/>                       
//*--------------------------------------------------------------------
//* IPA LINK                                                           
//*--------------------------------------------------------------------
//C0011L02  EXEC EDCI,                                                 
//          OUTFILE='USRID1.PASS2.OBJECT(SPLLIST),DISP=SHR',
// PARM.COMPILE=('LIST(USRID1.LISTPDS) IPA(LINK,MAP) OPT',  
//   'RENT LO SPLITLIST')                                 
//OBJECT  DD  DSN=USRID1.PASS1.OBJECT,DISP=SHR
//SYSIN    DD *,DLM='/>'
  INCLUDE OBJECT(SPLLIST)
/>
//                             

Related information

For more information on related compiler options, see: