Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Output of modules

The compiler translates the source data input into machine language and generates one or more object modules (OM format) or link-and-load modules (LLM format) in the process. Each such module can be assigned a List for Symbolic Debugging (LSD) containing the symbolic addresses of the compilation unit.

By default, the compiler places the object modules in the temporary EAM file of the current task. The object modules are simply added to the library, i.e. stored without defining any relationship between them.
The EAM file belongs to the task under which the compilation is performed. It is created for this task during the first compilation run and is automatically deleted at task end (LOGOFF). If the results of the compilation are to be used later, it is up to the user to store the contents of the EAM file in a backup file for further processing. The LMS utility routine (see “LMS” manual [11]) is available to the user for backup of object modules from the EAM file in PLAM libraries.

If the compiled object modules are no longer needed in the EAM file, e.g. because the compilation unit still contains errors that need to be corrected, it is advisable to delete the EAM file - at the latest, before the next compiler run - by using the command:

/DELETE-SYSTEM-FILE [SYSTEM-FILE=] OMF

Link-and-load modules (LLMs) are always written to a PLAM library by the compiler as elements of type L.

If the POSIX subsystem is available, modules can be written to the POSIX file system. This option is described in section "MODULE-OUTPUT option".

Formation of element names when modules are output to libraries


Compilation unit

Module format OM

Module format LLM

Standard name derived from

Code that is not shareable 1)

not segmented

segmented


ID-name2) ..83)

PROGRAM-ID-name 1..6
+ segment number
(for each segment)


ID-name2) 1..304)

PROGRAM-ID-name 1..30 4)
(segmentation ignored)

Shareable code 5)

ID-name 2) 1..7@
(code module)
ID-name 2) 1..7
(data module)

ID-name 2) 1..30 3)

Table 2: Formation of element names at module generation and output

1)

Module generated with 
COMPILER-ACTION=MODULE-GENERATION(SHAREABLE-CODE=NO) or
COMOPT GENERATE-SHARED-CODE=NO

2)

ID-name is the PROGRAM-ID-name, CLASS-ID-name or INTERFACE-ID-name.

3)

The name should be unique in the first 7 characters.

4)

A separate element name may be selected instead of the standard name by specifying
MODULE-OUTPUT=*LIBRARY-ELEMENT(LIBRARY=<filename>, ELEMENT=<composed-name>) or
COMOPT MODULE-ELEMENT=element-name.
It should be noted, however, that this option has no effect on the name of the entry point, i.e. the name that is specified in the CALL statement.
(not allowed for program sequences).

5)

Module generated with 
COMPILER-ACTION=MODULE-GENERATION(SHAREABLE-CODE=YES) or
COMOPT GENERATE-SHARED-CODE=YES