gtpm2m0rMigration Guide: Program Update Tapes

ISO-C E-Type Loader Support (APAR PJ19966)

The following section discusses the migration considerations for ISO-C E-type loader support.

Prerequisite APARs

See the APEDIT for APAR PJ19966 for information about prerequisite APARs.

Functional Overview

ISO-C E-type loader support is an enhancement of the ISO-C support described in ISO-C Support (APAR PJ17852).

Architecture

The format of the C load module is one of the basic architectural foundations of ISO-C E-type loader support. Another is the array of library addresses (AOLA) for different activation levels and for ECBs that were selectively activated. Each ECB activation table (EAT) slot has a pointer to an AOLA that ECBs at that activation level need to use. As with the original ISO-C support provided for PUT 2, the ECB task communications area has a pointer to the AOLA. For ECBs that were selectively activated, the AOLA is not shared between ECBs. Each ECB has its own copy of the AOLA built from stack heap storage, which is released when the ECB exits.

See Architecture for more information about ISO-C architecture.

Operating Environment Requirements and Planning Information

There are none. See ISO-C Support (APAR PJ17852) for more information about ISO-C operating environment requirements and planning information.

Interface Changes

The following section summarizes interface changes.

C/C++ Language

The following section summarizes C/C++ language changes. This information is presented in alphabetic order by the type of C/C++ language information. See the TPF C/C++ Language Support User's Guide and TPF Application Programming for more information about the C/C++ language.

Build Scripts

There are no changes.

Dynamic Load Module (DLM) Stubs

There are no changes.

General Use C Language Header Files

Table 64 summarizes the general use C language header file changes. This information is presented in alphabetic order by the name of the general use C language header file.

General use means these header files are available for your use.

Table 64. Changes to General Use C Language Header Files for ISO-C E-Type Loader Support

General Use C Language Header File TARGET (TPF) ISO-C New, Changed, or No Longer Supported? Do You Need to Recompile Segments?
c$eb0eb.h X X Changed No
c$icili.h     Changed Yes
c$icolr.h     Changed Yes
c$idseat.h X X Changed No
c$idseld.h X X Changed Yes
c$idselv.h X X Changed No
c$idsicd.h X X New Not Applicable
c$idsldr.h X X Changed Yes
c$idslst.h X X New Not Applicable
c$idsmxp.h X X Changed No
c$idsold.h     Changed Yes
c$idsprg.h X X Changed No
tpfapi.h X X Changed No
ztpld.h X X Changed No

Implementation-Specific C/C++ Language Header Files (IBM Use Only)

There are no changes.

Library Interface Scripts

There are no changes.

Library Members (Object Files)

Table 65 summarizes the library member (object file) changes. This information is presented in alphabetic order by the name of the library member (object file).

Table 65. Changes to Library Members (Object Files) for ISO-C E-Type Loader Support

Library Member (Object File) Library Module Name New, Changed, or No Longer Supported? Type Description of Change
CGETCC CTAL Changed Assembler The GETCC_PROTECTED parameter was added for obtaining a storage block.

Link-Edited Modules

There are no changes.

Members (Object Files)

There are no changes.

Object Code Only (OCO) Stubs

There are no changes.

Configuration Constant (CONKC) Tags

There are no changes.

Control Program Interface (CINFC) Tags

There are no changes.

Copy Members

Table 66 summarizes copy member changes. This information is presented in alphabetic order by the name of the copy member.

Table 66. Changes to Copy Members for ISO-C E-Type Loader Support

Copy Member Type CSECT Where Copy Member Is Located New, Changed, or No Longer Supported? Description of Change
CCED Control Program. CCENBK Changed Selective activate support.
CCEF Control Program CCENBK Changed Add I/O throttle.
CCEG Control Program CCENBK Changed Add I/O throttle.
CICR Control Program CCNUCL Changed Add COMMON=PROTECTED parameter to GETCC.

Fixed File Records

There are no changes.

Macros

The following section summarizes the macro changes. This information is presented in alphabetic order by the type of macro.

Advanced Program-to-Program Communications (APPC) Macros

There are no changes.

Communication Macros and Statements

There are no changes.

Data Macros

Table 67 summarizes the data macro changes. This information is presented in alphabetic order by the name of the data macro.

Table 67. Changes to Data Macros for ISO-C E-Type Loader Support

Data Macro New, Changed, or No Longer Supported? Do You Need to Reassemble Programs Using This Data Macro?
IDSLST Changed No
IDSPRG Changed No

General Macros

Table 68 summarizes general macro changes. This information is presented in alphabetic order by the name of the general macro. See TPF General Macros for a complete description of all general macros.

Table 68. Changes to General Macros for ISO-C E-Type Loader Support

General Macro New, Changed, or No Longer Supported? Do You Need to Reassemble Programs?
GETCC Changed No

Selected Equate Macros

There are no changes.

Structured Programming Macros (SPMs)

There are no changes.

System Initialization Program (SIP) Skeleton and Internal Macros (Inner Macros)

Table 69 summarizes the system initialization program (SIP) skeleton and internal macro changes. This information is presented in alphabetic order by the name of the SIP skeleton and internal macro. See TPF System Generation for a complete description of the SIP skeleton and internal macros. If the SIP skeleton and internal macro (inner macro) is changed, you must reassemble the SIP Stage I deck and run the appropriate job control language (JCL) jobs from the SIP Stage II deck.

Table 69. Changes to SIP Skeleton and Internal Macros for ISO-C E-Type Loader Support

SIP Skeleton and Internal Macro New, Changed, or No Longer Supported?
SPPGML Changed

System Initialization Program (SIP) Stage I Macros and Statements

Table 70 summarizes system initialization program (SIP) Stage I macro and statement changes. See TPF System Generation for a complete description of the SIP Stage I macros. This information is presented in alphabetic order by the name of the SIP Stage I macro. If the SIP Stage I macro is changed, you must run the appropriate job control language (JCL) jobs from the SIP Stgae II deck.

See System Initialization Program (SIP) and System Generation Changes for a description of other system generation changes you must make for ISO-C E-type loader support.

Table 70. Changes to SIP Stage I Macros and Statements for ISO-C E-Type Loader Support

SIP Stage I Macro New, Changed, or No Longer Supported?
GENSIP Changed

System Initialization Program (SIP) Stage II Macros

Table 71 summarizes system initialization program (SIP) Stage II macro changes. This information is presented in alphabetic order by the name of the SIP Stage II macro. See TPF System Generation for a complete description of the SIP Stage II macros. If IBMPAL is changed, you must run the system allocator (SALO) and load the new program allocation table (PAT) to the TPF 4.1 system.

Table 71. Changes to SIP Stage II Macros for ISO-C E-Type Loader Support

SIP Stage II Macro New, Changed, or No Longer Supported?
IBMPAL Changed

System Communication Keypoint (SCK) Generation Macros

There are no changes.

System Macros

There are no changes.

System Macros (IBM Use Only)

There are no changes.

Segments

Table 72 summarizes segment changes. This information is presented in alphabetic order by the name of the segment.

Table 72. Changes to Segments for ISO-C E-Type Loader Support

Segment Type Link-Edit Module (Where Offline Segment Is Linked) New, Changed, or No Longer Supported? Description of Change
ALDR Offline Assembler TPFLDR Changed Obtain link date of C load modules.
CCUEXT Assembler Not Applicable Changed Support selective activation of libraries.
CELE Real-Time C Language Not Applicable Changed Support activating a library load module.
CELG Assembler Not Applicable Changed Support activating a library load module.
CELK Real-Time C Language Not Applicable Changed Support activating a library load module.
CELL Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CELU Real-Time C Language Not Applicable Changed Support activating a library load module.
CEL2 Real-Time C Language Not Applicable Changed Support activating a library load module.
CEL4 Real-Time C Language Not Applicable Changed Support activating a library load module.
CEL8 Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CILD Real-Time C Language Not Applicable Changed Support loading and accepting a C load module greater than 4 KB.
CILE Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CILF Real-Time C Language Not Applicable Changed Support loading and accepting a C load module greater than 4 KB.
CILG Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CILH Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CILI Offline C Language TPFLDR Changed Support loading a C load module greater than 4 KB.
CIL6 Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CIL7 Real-Time C Language Not Applicable Changed Fix problem where a single PARS list causes TLDR to delete program versions.
CLDJ Real-Time C Language Not Applicable Changed Support activating a library load module.
CLDL Real-Time C Language Not Applicable Changed Support activating a library load module.
CLDM Real-Time C Language Not Applicable Changed Support activating a library load module.
CLDX Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CLDZ Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CLD0 Real-Time C Language Not Applicable Changed Support loading a C load module greater than 4 KB.
CLEF Real-Time C Language Not Applicable Changed Support activating a library load module.
CLEQ Real-Time C Language Not Applicable Changed Support deactivating a library load module.
CLEW Real-Time C Language Not Applicable Changed Support deleting a C load module greater than 4 KB.
CLIB Real-Time Assembler Language Not Applicable Changed Support activating a library load module.
COLC Real-Time C Language Not Applicable Changed Support deactivating a library load module.
COLG Real-Time C Language Not Applicable Changed Add additional checking to the ZOLDR REINCLUDE command.
COLJ Real-Time C Language Not Applicable Changed Add additional checking to the ZOLDR EXCLUDE command.
COLK Real-Time C Language Not Applicable Changed Support excluding a library load module.
COLM Real-Time C Language Not Applicable Changed Support accepting a C load module greater than 4 KB.
COLO Real-Time C Language Not Applicable Changed Support accepting a C load module greater than 4 KB.
COLP Real-Time C Language Not Applicable Changed Support accepting a C load module greater than 4 KB.
COLR Offline C Language TPFLDR Changed Support loading a C load module greater than 4 KB.
COLT Real-Time C Language Not Applicable Changed Support activating a library load module.
COL0 Real-Time C Language Not Applicable Changed Support reclaiming of C load modules greater than 4 KB.
COL2 Real-Time C Language Not Applicable Changed Support reclaiming of C load modules greater than 4 KB.
COL6 Real-Time C Language Not Applicable Changed Add commentary changes.
CRLB Real-Time C Language Not Applicable Changed Support accepting a C load module greater than 4 KB.
CRLC Real-Time C Language Not Applicable Changed Add additional checking to the ZOLDR EXCLUDE and REINCLUDE commands.
CRLQ Real-Time C Language Not Applicable New Support deactivating and excluding library load modules.
CRLX Real-Time C Language Not Applicable New Support accepting C load modules greater than 4 KB.
CRLY Real-Time C Language Not Applicable New Support accepting C load modules greater than 4 KB.
C177 Assembler Not Applicable New Add the GETCC_PROTECTED parameter for obtaining a storage block.
OLDR Offline C Language TPFLDR Changed Support loading a C load module greater than 4 KB.
TLDR Offline Assembler TPFLDR Changed Obtain link date of C load modules.
TLDRMN Offline C Language TPFLDR Changed Support loading a C load module greater than 4 KB.

System Equates

There are no changes.

User Exits

Control Program (CP) User Exits and ECB User Exits summarize the control program (CP) and ECB user exit changes. See TPF System Installation Support Reference for a complete description of all user exits.

Control Program (CP) User Exits

This information is presented in alphabetic order by the name of the control program (CP) user exit.

Table 73. Changes to Control Program (CP) User Exits for ISO-C E-Type Loader Support

Control Program (CP) User Exit Activated In User Routine Label New, Changed, or No Longer Supported? Description of Change
CLE UCCCLE Changed User exit status is propagated across all versions of a library.
CLX UCCCLX Changed User exit status is propagated across all versions of a library.

ECB User Exits

This information is presented in alphabetic order by the name of the function.

Table 74. Changes to ECB User Exits for ISO-C E-Type Loader Support

Function User Exit Activated In User Exit Program New, Changed, or No Longer Supported? Description of Change
Loaders ENTRC UELI Changed An additional caller was added.

Functional and Operational Changes

The following section summarizes functional and operational changes. This information is presented in alphabetic order by the functional or operational change.

See Appendix A, "PUT 2-15 Interface Changes by Authorized Program Analysis Report (APAR)" for a summary of functional and operational changes by APAR.

Commands

There are no changes.

Messages and System Errors

Table 75 summarizes message (offline and online messages) and system error changes.

The message IDs or system error numbers are listed in numeric order preceded by their alphabetic prefix. Some offline and online messages do not have a standard message ID. For these, the messages are presented in alphabetic order based on the initial message text; or for those messages that begin with variable information, the initial message text that follows that variable information. See Messages (System Error and Offline) and Messages (Online) for a complete description of all messages and system errors.

Attention: Changes to offline messages, online messages, and system errors may impact any automation programs you are using in your complex.

Table 75. Changes to Messages and System Errors for ISO-C E-Type Loader Support

Message ID or System Error Number Message Type New, Changed, or No Longer Supported?
ALDR0905E Offline Changed
CILE0103W Online Changed
CILF0107E Online Changed
CILF0108E Online Changed
CILF0110E Online Changed
CILF0112E Online New
CILH011E Online New
CILH0112E Online New
CIL60111E Online New
OLDR0013T Offline No Longer Supported
OLDR0077I Offline New
OLDR0078E Offline New
OLDR0079E Offline New
OLDR0080E Offline New
OLDR0081T Offline New
OLDR0082E Offline New
OLDR0083E Offline New
OLDR0084E Offline New
OLDR0085E Offline New
OLDR0086E Offline New
OLDR0087W Offline New
OLDR0088E Offline New
OLDR0089E Offline New
OLDR0211E Online Changed
OLDR0212E Online No Longer Supported
OLDR0214E Online New
OLDR2026T Online New
OLDR2028T Online New
OLDR2029T Online New
OLDR2030T Online New
OLDR2031T Online New
OLDR2032W Online New
OLDR3015T Online New
OLDR3016T Online New
OLDR3200T Online Changed
OLDR3212E Online Changed
OLDR3225T Online New
OLDR5822T Online New
TPFL0002W Offline Changed
TPFL0003W Offline Changed
TPFL0004W Offline New
000079 System Error Changed

Performance or Tuning Changes

The best performance is obtained when there is no static in the library, the library user exits are not turned on, and the library is not in a selectively activated loadset. The performance of a library function in a library that is contained in a selectively activated loadset is not as good because LIBVEC2 processing is always used.

Storage Considerations and Changes

There are no changes.

System Initialization Program (SIP) and System Generation Changes

You may need to increase the number of common blocks that are allocated for ISO-C support. Common blocks are used in ISO-C support to hold new versions of arrays of library addresses (AOLAs) when a loadset that contains a library is activated by entering the ZOLDR ACTIVATE command. See TPF System Generation for more information about common blocks, including how to estimate the number of additional common blocks required.

You need to change the allocator by giving common block authorization (CMB) to program CLEF.

Loading Process Changes

The data sets that contain C load modules are specified with the new DD name card (//LOADMOD).

To share common code, the offline programs for the E-type loader are now linked into the common offline loader program (TPFLDR). The JCL used to run the E-type loader must be changed to specify TPFLDR. A parameter in the OLDR JCL is used to specify that the E-type loader is to be run.

When you enter the ZOLDR LOAD command to load the input device, a compatibility check is made between the offline allocator used to build the input and the allocator currently in use online to see if any shifts have occurred in the ordinal numbers of the programs in the program allocation table (PAT). If the 2 allocators are compatible, the loadsets specified in the ZOLDR LOAD command are read from the input device.

A new parameter (PATVERS=TIME) checks the time stamps of the offline SALTBL and the online PAT instead of the allocator information for each of the programs.

REP cards are not supported for C load modules.

Online System Load Changes

There are no procedural changes.

Publication Changes

Table 76 summarizes changes to the publications in the TPF library. This information is presented in alphabetic order by the publication title. See the TPF Library Guide for more information about the TPF library.

Table 76. Changes to TPF Publications for ISO-C E-Type Loader Support

Publication Title Softcopy File Name Description of Change
TPF Application Programming GTPAPP03 Updated by ISO-C E-type loader support.
TPF C Language Support User's Guide GTPCLU03 Updated by ISO-C E-type loader support.
TPF General Macros GTPGEN03 Updated by ISO-C E-type loader support.
TPF Library Guide GTPDOC03 Updated with definitions for new terminology in the master glossary.
Messages (System Error and Offline) and Messages (Online) Not Applicable Updated with information about the messages and system errors that were added, changed, and no longer supported for ISO-C E-type loader support.
TPF Migration Guide: Program Update Tapes GTPMIG03 Updated with migration considerations for ISO-C E-type loader support.
TPF System Generation GTPSYG03 Updated by ISO-C E-type loader support.
TPF System Installation Support Reference GTPINR03 Updated by ISO-C E-type loader support.

Host System Changes

There are no changes.

Application Programming Interface (API) Changes

The GETCC_PROTECTED parameter was added to the getcc function and the GETCC macro. See the TPF C/C++ Language Support User's Guide for more information about the getcc function; see TPF General Macros for more information about the GETCC macro.

Database Changes

You may need to define additional #OLDx records because C load modules use a minimum of 2 #OLDx records each and can be larger than 4 KB. See TPF System Generation for more information about how to estimate the number of additional #OLDx records that you will need.

Feature Changes

There are no changes.

Installation Validation

There are no changes.

Migration Scenarios

Repeat the following procedure for all subsystems in a multiple database function (MDBF) environment. See TPF Operations for more information about the ZIMAG command.

  1. Enter ZIMAG to define a new image using a new program base.
  2. Initialize the new image by doing one of the following:
    • Copy the old image to the new image using the ZIMAG COPY command.
    • Perform a full load to the new image.
  3. Reassemble and recompile all required programs. (Required programs refers to the programs affected by changes discussed earlier in the description of ISO-C E-type loader support.)

    Notes:

    1. CELL must be compiled optimized to ensure that it is less than 4 KB.

    2. CILF must be compiled unoptimized until you have applied APAR PN75488.
  4. Create a new system allocator (SALO) that includes the newly created CRLQ, CRLX, and CRLY segments.

    Give common block authorization to program CLEF.

  5. Recompile and run SALO to create an updated IPAT and TABLE.
  6. Link all applicable programs again.
  7. Define a load deck for TPFLDR/TLDR that includes the following:
    • Updated programs
    • Control program
    • All existing C load modules
    • LOADER PROG-MOD-BASE CLEAR statement
    • Updated IPAT.

    Note:
    The requirements for the LOADER PROG-MOD-BASE CLEAR statement, and including all existing C load modules, are to ensure that base versions of C load modules can be overlaid during the E-type loader accept process.
  8. Run TPFLDR/TLDR.
  9. Perform a load to the new image.
  10. Enable the new image.
  11. IPL the TPF 4.1 system and choose the new image as the active image.
  12. IPL any other TPF 4.1 systems that are defined in your complex using the new image as the active image.

    Migration is completed.