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.

Default is: LP(32)
Abbreviations are: None
- LP(32)
- Indicates that a AMODE 31 (31-bit) program should be generated with the related language features enabled.
- LP(64)
- Indicates that a AMODE 64 (64-bit) program should be generated with the related language features enabled.
Option 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 (PROCESS) statement, you can only specify the LP option for the first program.
You cannot change the value of the option for subsequent programs in the batch.
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 under LP(64): Programs compiled under 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.
In addition, AMODE 64 programs cannot run in CICS® or IMS.
Note: Under LP(64), some compiler options are not applicable.
© Copyright IBM Corp.