PreInit XPLINK considerations
Language Environment preinitialization services (PreInit) support programs that have been compiled XPLINK. Specifically, it allows programs and subroutines that have been compiled XPLINK to be defined in the PreInit table. The following guidelines are provided for this new option:
- XPLINK CEEPIPI subroutines must be fetchable. For C programs, this is done using the #pragma linkage (fetchable) statement. For more details on fetchable subroutines, refer to the documentation on fetch() in z/OS XL C/C++ Runtime Library Reference.
- Non-XPLINK PreInit programs can run in an XPLINK PreInit environment, but there may be performance degradation since non-XPLINK programs will be required to execute linkage-switching glue code. If possible, consider having separate PreInit environments for running XPLINK and non-XPLINK programs.
- If a PreInit environment has been initialized as a non-XPLINK environment and either the main() function is XPLINK or the XPLINK(ON) runtime option has been specified, then the PreInit environment will be rebuilt as an XPLINK environment. This is a one-time occurrence that can not be undone.