LP

Use the LP compiler option to indicate whether a AMODE 31 (31-bit) or AMODE 64 (64-bit) program should be generated with the related language features enabled.

LP option syntax

Read syntax diagramSkip visual syntax diagramLP(3264)

Default is: LP(32)

Abbreviations are: None

LP(32)
Indicates that an AMODE 31 (31-bit) program should be generated with the related language features enabled.
LP(64)
Indicates that an AMODE 64 (64-bit) program should be generated with the related language features enabled.

Start of changeOption specification: You can specify the LP option in the ways that you specify other compiler options. However, if you specify the option in a CBL or PROCESS statement, you can only specify the LP option for the first program in a sequence of programs (batch compilation). You cannot change the value of the option for subsequent programs in the batch.End of change

Runtime consideration: Currently, Language Environment® does not support mixing AMODE 64 and AMODE 31 programs in the same application. If one program is compiled with LP(64), all programs within the application should also be compiled with LP(64). For static CALLs, the binder will issue a message if it encounters mixing addressing modes during external name resolution. For dynamic CALLs, you would receive a run time error for a CALL between programs if one is AMODE 64 and one is AMODE 31 or 24.

When using the LP(64) compiler option, the compilation process includes a component that runs in POSIX(ON) mode. This implies that there must be an OMVS Segment established in RACF® (or equivalent in RACF alternatives) for each user executing the compiler with this option.

Restrictions for programs with LP(64):
  • Programs compiled with LP(64) cannot contain XML GENERATE or XML PARSE statements, JSON GENERATE or JSON PARSE statements, object-oriented COBOL statements, ALTER statements, GO TO. statements, and DISPLAY ... UPON SYSPUNCH statements.
  • AMODE 64 programs cannot run in CICS® or IMS.
  • Start of changeCompiler exits (using the EXIT compiler option) must NOT be compiled with the LP(64) compiler option.End of change
  • Start of changeWhen LP(64) is in effect, both the DLL and NODLL options are ignored without warning, and NODLL will always appear in the listing.End of change
Note: With LP(64), some compiler options are not applicable. For more information, see Using compiler options to compile AMODE 64 programs.