gtpm2m1fMigration Guide: Program Update Tapes

Link Map Support for C Load Modules (APAR PJ24845)

The following section discusses the migration considerations for link map support for C load modules, referred to as link map support in the remainder of this section.

Prerequisite APARs

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

Functional Overview

Link map support gives you the ZDMAP command to display the link maps for C load modules to help you debug C load modules online. The link map consists of a list of object files included in the C load module, a list of C function names in the object files, and the addresses of the object files and C functions.

Because the link map is part of the C load module itself (see "Architecture"), you can look at the link map in several ways:

Modifications for link map support have been made in both the C load module build tool (CBLD) and the offline loader (TPFLDR) to build the link map and make it part of the C load module. After you have link-edited a C load module with the modified output from the updated C load module build tool and have loaded it with the updated TPFLDR, you can easily display its object files and functions with the ZDMAP command.

Architecture

Link map support expands the format of the C load module by appending the link map data to the end of the link-edited C load module. The link map is now part of the C load module itself. This format has key advantages:

Operating Environment Requirements and Planning Information

There are none.

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

Table 306 summarizes changes to the build scripts used by the build tool. This information is presented in alphabetic order by the name of the build script.

Table 306. Changes to Build Scripts for Link Map Support

Build Script Type New, Changed, or No Longer Supported? Description of Change
CDM0BS DLM New Build script containing routines that make up the root C load module for the ZDMAP command.
CDM1BS DLM New Build script containing the retrieve C load module routine for the ZDMAP command.
CDM2BS DLM New Build script containing the process ZDMAP request routine for the ZDMAP command.
CDM3BS DLM New Build script containing the release C load module routine for the ZDMAP command.

Dynamic Load Module (DLM) Stubs

Table 307 summarizes changes to the dynamic load module (DLM) stubs. This information is presented in alphabetic order by the name of the DLM stub. See TPF Application Programming for more information about the DLM stubs.

Table 307. Changes to Dynamic Load Module (DLM) Stubs for Link Map Support

DLM Stub New, Changed, or No Longer Supported?
CDM1 New
CDM2 New
CDM3 New

General Use C/C++ Language Header Files

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

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

Table 308. Changes to General Use C/C++ Language Header Files for Link Map Support

C/C++ Language Header File New, Changed, or No Longer Supported? Do You Need to Recompile Segments?
bldtol.h Changed Yes
c$dmap.h New No
c$icili.h Changed Yes
c$idslst.h Changed No
c$idsprg.h Changed No
c$lmap.h New No
nldtci.h Changed Yes
nldtif.h Changed Yes
reusable.h Changed No

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

Table 309 summarizes the general use C/C++ language header file changes that are for IBM use only. This information is presented in alphabetic order by the name of the general use C/C++ language header file.

Table 309. Changes to Implementation-Specific C/C++ Language Header Files (IBM Use Only) for Link Map Support

C/C++ Language Header File (IBM Use Only) New, Changed, or No Longer Supported? Do You Need to Recompile Segments?
i$cdm0.h New No
i$lmap.h New No

Library Interface Scripts

There are no changes.

Library Members (Object Files)

There are no changes.

Link-Edited Modules

There are no changes.

Members (Object Files)

Table 310 summarizes changes to members (object files). This information is presented in alphabetic order by the name of the member (object file).

Notes:

  1. You must recompile or reassemble a member (object file) if it has changed.

  2. You must prelink and link a dynamic load module (DLM) if it has changed.

Table 310. Changes to Members (Object Files) for Link Map Support

Member (Object File) DLM/DLL New, Changed, or No Longer Supported? Type Description of Change
CDMAIN CDM0 New C Language Mainline routine for the ZDMAP command.
CDMDSP CDM0 New C Language Display routine for the ZDMAP command.
CDMER1 CDM0 New C Language Display error messages in the 1000 range for the ZDMAP command.
CDMER2 CDM0 New C Language Display error messages in the 2000 range for the ZDMAP command.
CDMER3 CDM0 New C Language Display error messages in the 3000 range for the ZDMAP command.
CDMHLP CDM0 New C Language Display help information for the ZDMAP command.
CDMPRC CDM2 New C Language Process the ZDMAP request for the ZDMAP command.
CDMPRS CDM0 New C Language Parsing routine for the ZDMAP command.
CDMREL CDM3 New C Language Release C load module routine for the ZDMAP command.
CDMRTR CDM1 New C Language Retrieve C load module routine for the ZDMAP command.

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 311 summarizes copy member changes. This information is presented in alphabetic order by the name of the copy member.

Table 311. Changes to Copy Members for Link Map Support

Copy Member Type CSECT Where Copy Member Is Located New, Changed, or No Longer Supported? Description of Change
CEDI Control Program CCNUCL Changed Call CP translation user exit UCCWTOP if it is active to allow you to translate characters in the output message text. Whether the user exit is active or not, unconditionally translate specific characters in the message text to periods (X'4B') (.).
CPSL Control Program CCCPSE Changed Create link map dump records.
CUSR Control Program CCUEXT Changed Create CP translation user exit entry point UCCWTOP, which allows you to translate lowercase and special characters in output message text before CEDI (in CCNUCL) performs its own translation.

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 312 summarizes the data macro changes. This information is presented in alphabetic order by the name of the data macro.

Table 312. Changes to Data Macros for Link Map Support

Data Macro New, Changed, or No Longer Supported? Do You Need to Reassemble Programs Using This Data Macro?
CZOCP Changed No
DCTUCL Changed No
IDSPRG Changed No
IFUNC New No
ILMAP New No
IOBJF New No

General Macros

There are no changes.

Selected Equate Macros

There are no changes.

Structured Programming Macros (SPMs)

There are no changes.

System Communication Keypoint (SCK) Generation Macros

There are no changes.

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

Table 313 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 313. Changes to SIP Skeleton and Internal Macros for Link Map Support

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

System Initialization Program (SIP) Stage I Macros and Statements

There are no changes.

System Initialization Program (SIP) Stage II Macros

Table 314 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 314. Changes to SIP Stage II Macros for Link Map Support

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

System Macros

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

Table 315. Changes to System Macros for Link Map Support

System Macro New, Changed, or No Longer Supported? Do You Need to Reassemble Programs?
UXITC Changed No

System Macros (IBM Use Only)

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

Table 316. Changes to System Macros (IBM Use Only) for Link Map Support

System Macro (IBM Use Only) New, Changed, or No Longer Supported? Do You Need to Reassemble Programs?
CFMCC Changed Yes
CFMDC Changed Yes

Segments

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

Table 317. Changes to Segments for Link Map Support

Segment Type Link-Edit Module (Where Offline Segment Is Linked) New, Changed, or No Longer Supported? Description of Change
CBLD Offline C Language CBLD Changed Added ESD, TXT, and END cards for each included object file.
CVAB Real-Time Assembler Not Applicable Changed Added code to define and recognize the ZDMAP command.
NLDT Offline C Language TPFLDR Changed Added support to create C load module link map data.
NLDTRL Offline C Language TPFLDR Changed Added support to create C load module link map data.
REATXT Offline C Language REATXT New Rearrange CSECTs (TXTs) for C source files compiled with the NORENT option and link-edited with the VM linkage editor (VM LKED).
Note:
This is sample code only.
TLDR Offline Assembler TPFLDR Changed Added support to create C load module link map data.
TLDRMN Offline C Language TPFLDR Changed Added support to create C load module link map data.

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 318. Changes to Control Program (CP) User Exits for Link Map Support

Control Program (CP) User Exit Activated In User Routine Label New, Changed, or No Longer Supported? Description of Change
CEDI UCCWTOP New Added the WTOPC translation user exit to allow you to translate characters in the message output text to whatever you want before CEDI (in CCNUCL) does its own translation. Commentary in the prolog describes an approach for doing the translation. This user exit is particularly useful for translating special characters or lowercase characters in function names if you have display terminals that do not support these characters.

ECB User Exits

There are no changes.

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

Table 319 summarizes command changes. This information is presented in alphabetic order by the name of the command. See TPF Operations for a complete description of all commands.

Attention: Changes to commands can impact any automation programs you are using in your complex.

Table 319. Changes to Commands for Link Map Support

Command New, Changed, or No Longer Supported? Description of Change
ZDMAP New Add the ability to display link map data for C load modules.

Messages and System Errors

Table 320 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 320. Changes to Messages and System Errors for Link Map Support

Message ID or System Error Number Message Type New, Changed, or No Longer Supported?
ALDR0910W Offline New
ATTENTION - CONTAINS NO LINK MAP DATA Offline New
CBLD0411W Offline New
CBLD0412W Offline New
CBLD0802E Offline No Longer Supported
CBLD0803E Offline New
CBLD0804E Offline New
CBLD1201T Offline No Longer Supported
CBLD1202T Offline New
DMAP0001I Online New
DMAP0002I Online New
DMAP1000E Online New
DMAP1001E Online New
DMAP2000E Online New
DMAP2001E Online New
DMAP2002E Online New
DMAP2003E Online New
DMAP2004E Online New
DMAP2005E Online New
DMAP2006E Online New
DMAP2007E Online New
DMAP2008E Online New
DMAP2009E Online New
DMAP2010E Online New
DMAP2011E Online New
DMAP2012E Online New
DMAP2013E Online New
DMAP2014E Online New
DMAP2015E Online New
DMAP3000E Online New
DMAP3001E Online New
DMAP3002E Online New
DMAP3003E Online New
DMAP3004E Online New
DMAP3005E Online New
OLDR0090W Offline New
TPFL0005W Offline New
TPFL0010E Offline New

Performance or Tuning Changes

There are no changes.

Storage Considerations and Changes

C load modules with link maps will be slightly larger than C load modules without link maps both in main storage and on file. Testing showed the increase to be approximately 1% for a sample of 210 C load modules. The actual increase that you can expect will vary and will depend on the makeup of each C load module. You can still use the current formulas to calculate the required number of #XPRGn and #OLDn records. See TPF System Generation for more information about the formulas for calculating the number of system utilized record types.

System Initialization Program (SIP) and System Generation Changes

There are no changes.

Loading Process Changes

There are no changes.

Online System Load Changes

There are no changes.

Publication Changes

Table 321 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 321. Changes to TPF Publications for Link Map Support

Publication Title Softcopy File Name Description of Change
TPF Application Programming GTPAPP07 Updated with information about using link map support, changes to the offline C load module build tool (CBLD), and a description of an offline tool (sample code only), REATXT, for link map support.
TPF Library Guide GTPDOC07 Updated with definitions for new terminology in the master glossary.
TPF Main Supervisor Reference GTPMSR05 Updated with information about displaying link map data for link map support.
Messages (System Error and Offline) and Messages (Online) Not Applicable Updated with information about messages that were added, changed, and no longer supported for link map support.
TPF Migration Guide: Program Update Tapes GTPMIG07 Updated with migration considerations for link map support.
TPF Operations GTPOPR07 Updated with information about the command that was added for link map support.
TPF Program Development Support Reference GTPPDR07 Updated with information showing formatted link map data appended at the end of a C load module in a dump for link map support.
TPF Programming Standards GTPPSM07 Updated with information about the changed standard to the allowed character set for output messages for link map support. Also, added information about names that are reserved for link map support.
TPF System Installation Support Reference GTPINR07 Updated with information about the user exit UCCWTOP that was added for link map support and information about the TRACE parameter for the offline loader (TPFLDR).

Host System Changes

There are no changes.

Application Programming Interface (API) Changes

There are no changes.

Database Changes

There are no changes.

Feature Changes

There are no changes.

Installation Validation

There are no changes.

Migration Scenarios

You must consider the following if you want to use link map support:

You can apply all of link map support or parts of the support without impacting your offline system and your online TPF 4.1 system. The following examples show you how you can apply parts of link map support:

No compatibility or coexistence concerns have been identified. C load modules that have been built either with or without link maps can be loaded to systems that have link map support online as well as to those that do not. No modifications are required to any of the online loaders, so there are no compatibility issues between online and offline loaders.