Building and running an XPLINK application

The detailed procedures for building and running non-XPLINK Language Environment-conforming applications can be found in other topics in this information.

The procedures for building XPLINK Language Environment-conforming applications can be summarized as:

  1. Compile the application with an XPLINK compiler (the z/OS® XL C/C++ compiler) using the XPLINK compiler option.
  2. Link edit, with the DFSMS binder, the application (specifying a PDSE or HFS file as the output data set) with the object files and the following Language Environment input:
    • Where SYSLIB for non-XPLINK applications usually lists the SCEELKED, SCEELKEX, SCEEOBJ and SCEECPP data sets, the SYSLIB for link-editing an XPLINK application replaces these with the SCEEBND2 data set. SCEEBND2 contains all object files necessary for building Language Environment-conforming XPLINK applications. If you attempt to link edit an XPLINK application using the non-XPLINK static libraries, or vice versa, you will receive the binder error message IEW2469E indicating a mismatch in linkage type between function reference and definition.
    • If the XPLINK application calls C runtime library (RTL) functions, it must include the XPLINK C RTL side-deck CELHS003 that is in the SCEELIB data set. This is included automatically by c89 when the -Wl,xplink option is specified. See z/OS UNIX System Services Command Reference or z/OS XL C/C++ User's Guide for information about building XPLINK applications in batch, TSO/E, and z/OS UNIX.
    • If the XPLINK application calls Language Environment AWIs or CWIs, it must include the XPLINK Language Environment side-deck CELHS001 that is in the SCEELIB data set.
    • If the XPLINK application is written in C++, it picks up Language Environment C++ RTL definitions from the XPLINK C++ side-deck CELHSCPP that is in the SCEELIB data set. This side-deck is used instead of the SCEECPP data set (the SCEECPP data set is used by non-XPLINK applications).
  3. Run the application by providing both SCEERUN and SCEERUN2 data sets in the MVS™ program search order, for example STEPLIB or LNKLST.

    SCEERUN and SCEERUN2 can be specified in any search order. The XPLINK(ON) runtime option is required if the initial program in the application is non-XPLINK and XPLINK programs may be called (via DLL).