Skip to main content

     
  TPF : Library : Newsletters

Important Shipment and SIP Changes for PUT 11

Paul Austin, IBM TPF Test Team, Colette Manoni, IBM TPF Development, and Ellen Smyth, IBM TPF ID Core Team

During our testing of the OS/390 Version 2 Release 6 compiler, we experienced a problem when using two different compiler versions within one load module. Sometimes the code linked cleanly, but caused CTL-3 system errors at run time. The problem is introduced during the prelink stage while building the load module. The prelinker is shipped as part of the compiler and is backward compatible, but not forward compatible. This means you need to use the prelinker associated with the highest level compiler that was used to create your object code. For example, if a load module contains two objects (one compiled with V2.4 and one compiled with V2.6), the V2.6 prelinker must be used to link the load module.

To accommodate this problem, we are shipping additional files on the TPF PUT tapes, and we have made the following changes to the TPF system initialization program (SIP) with APAR PJ26578:

  • TPF 4.1 PUT 11 is compiled with the OS/390 Version 2 Release 6 compiler; you must use this level of the compiler if you change segments that are linked to object code that is shipped by IBM. To allow you to install PUT 11 without the V2.6 compiler, all C load modules are shipped in partitioned data set (PDS) ACP.LINK.OCO40.
  • The SIP macro (GENSIP) has a new parameter, LINKALL=YES|NO. If you want to relink every load module in SIP, you must code LINKALL=YES. If you only want to relink selected modules in SPPGML, code LINKALL=NO. LINKALL=NO is the default because we now provide all C load modules in ACP.LINK.OCO40.
  • The SPPBLD macro, which is used in SPPGML, has a new parameter, LINK=YES|NO, for C load modules. If you code LINK=YES, there is no need for SIP to link-edit the C load module. If you code LINK=NO, it tells SIP to create the load module anyway. LINK=YES is the default because we now provide all C load modules in ACP.LINK.OCO40.

    The following shows the combined effect of the LINK=YES|NO parameter on SPPBLD and the LINKALL=YES|NO parameter on GENSIP:

    GENSIP LINKALL=YES GENSIP LINKALL=YES
    SPPBLD LINK=YES SIP creates stage II JCL to link-edit all load modules, no matter how LINK= is coded on SPPBLD, when LINKALL=YES. SIP does not create stage II JCL for C load modules coded as LINK=YES in SPPBLD when LINKALL=NO on the GENSIP macro.
    SPPBLD LINK=NO SIP creates stage II JCL to link-edit all load modules, no matter how LINK= is coded on SPPBLD, when LINKALL=YES. SIP creates stage II JCL for C load modules coded as LINK=NO in SPPBLD when LINKALL=NO on the GENSIP macro.
  • Additionally, you can now specify the optimization level at which you want to compile C or C++ programs with new SPPBLD macro parameter OPT=0|1|2. The default for all programs is OPT=2. All C or C++ programs that are shipped as object code only (OCO) are also compiled OPT=2.

For more information about these changes, see the following documents:

  • TPF Memo to Licensees, GI10-06876
  • TPF System Generation, SH31-0171
  • TPF System Installation Support Reference, SH31-0149
  • TPF Migration Guide: Program Update Tapes, GH31-0187
  • The APEDIT for APAR PJ26578.