SYSPRINT DD and LIST option

Use the SYSPRINT DD or LIST options to specify the locations of the generated listing transforms.

The target of SYSPRINT or LIST can be one of the following items:
  • A sequential data set or member of a PDSE (not PDS). The output of multiple CSECT optimizations are added to this sequential data set in optimization order.
  • A PDS or PDSE. When a CSECT is optimized, the listing transform particular to that CSECT is placed in a member of the PDS or PDSE where the member name is based on the CSECT name (upper cased and truncated to 8 characters). The contents of the member, if any, are overwritten even if the former contents are produced by ABO in previous invocations.
  • An HFS path. The output of multiple CSECT optimizations are added to this HFS file.

The LIST option takes precedence over the SYSPRINT DD. If you specify the LIST option, it will override the SYSPRINT DD. When the LIST option is specified, you can omit the SYSPRINT DDname.

Note:

The ABO listing contains detailed transformation information and can therefore become very large. Specifying SYSPRINT DD target as SYSOUT might cause the JES2 spools to reach a system specified line limit. When the spool line limit is reached, the JES2 passes control to an installation exit routine but the ABO job may or may not be terminated. Although the spool line limit can be increased using the JOBPARM L option, the maximum L setting of 999999 might still not be large enough for the ABO listing.

To avoid this problem, it is recommended that SYSPRINT specify a PDS, PDSE or HFS location as documented in this section.

Example

The following JCL example uses a PDSE in the SYSPRINT DD so that listing transforms are written to the members of the PDSE.
//SYSIN DD *
  BOPT IN=HLQ.IN.LOAD(MOD*) OUT=HLQ.OUT.LOAD
  …
//SYSPRINT DD DSN=HLQ.LIST.PDSE,DISP=SHR

In this example, the input program modules are specified as HLQ.IN.LOAD(MOD*), which means, optimize all eligible members in HLQ.IN.LOAD with names beginning with "MOD".

There are two members in the input data set, MOD1 and MOD2. Within these two program modules, are various CSECTs:
Table 1. Input modules and their containing CSECTs
HLQ.IN.LOAD CSECTs
MOD1 PROG1A
PROG1B
PROG1C
MOD2 PROG2A
PROG2B
ABO will optimize each of these CSECTs, one at a time, and produce two outputs for each CSECT:
  1. The optimized CSECT
  2. The listing transform for the CSECT
The optimized CSECT has the same name as the input CSECT, and the optimized CSECT will be placed in a program module that has the same member name as the input program module. However, the new program modules will be placed into a new PDSE called 'HLQ.OUT.LOAD'
Table 2. Output 1: Optimized modules and their CSECTs
HLQ.OUT.LOAD CSECTs
MOD1 PROG1A
  PROG1B
  PROG1C
MOD2 PROG2A
  PROG2B

The listings, generated for each of the optimized CSECT, are placed into the PDSE 'HLQ.LIST.PDSE', as separate members. Each such PDSE member will have the same name as the input CSECT name. The results is that HLQ.LIST.PDSE will have 5 members, PROG1A, PROG1B, PROG1C, PROG2A and PROG2B.

Table 3. Output 2: Listing transforms
HLQ.LIST.PDSE
PROG1A
PROG1B
PROG1C
PROG2A
PROG2B