XPLINK compatibility support

XPLINK Compatibility Support is defined as the ability for routines (functions) compiled with NOXPLINK (these may be non-XPLINK C or C++, COBOL, PL/I, or OS Linkage Assembler) to "transparently" call routines that are compiled with XPLINK, and vice versa.

This transparent compatibility is provided at the Program Object (or Load Module, for compatibility with prelinker-built executables) boundary. That is, a Program Object (or Load Module) containing a caller of one linkage type (XPLINK or NOXPLINK) may call a routine compiled with the opposite linkage type as long as the called routine resides in a different Program Object (or Load Module). Program Objects can reside in either a PDSE or the HFS, while Load Modules must reside in a PDS.

The main "call linkage" supporting XPLINK Compatibility is the DLL call mechanism, but C's fetch() and Language Environment's CEEFETCH assembler macro are also supported.

The following are not supported for XPLINK in z/OS®:
  • COBOL dynamic call of an XPLINK function
  • PL/I fetch
  • Language Environment's CEELOAD assembler macro (traditional LOAD/BALR)
There are other environments that are not supported in an XPLINK environment (the XPLINK(ON) runtime option is in effect), such as AMODE-24 applications. Full details of supported environments are in z/OS Language Environment Programming Guide.