Z/OS XL C/C++ Compiler and Runtime Migration Guide for the Application Programmer
Total Page:16
File Type:pdf, Size:1020Kb
z/OS Version 2 Release 4 XL C/C++ Compiler and Runtime Migration Guide for the Application Programmer IBM GC14-7306-40 Note Before using this information and the product it supports, read the information in “Notices” on page 127. This edition applies to Version 2 Release 4 of z/OS (5650-ZOS) and to all subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2020-12-14 © Copyright International Business Machines Corporation 1996, 2019. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents About this document.............................................................................................xi z/OS XL C/C++ on the World Wide Web.................................................................................................... xix Where to find more information...........................................................................................................xix Technical support...................................................................................................................................... xix How to send your comments to IBM.........................................................................................................xix If you have a technical problem........................................................................................................... xx Part 1. Introduction............................................................................................... 1 Chapter 1. New migration issues for z/OS V2R4 XL C/C++.........................................................................3 Chapter 2. Program migration checklists.................................................................................................... 5 Before you start your migration............................................................................................................. 5 When you are compiling code................................................................................................................ 6 When you are binding program objects or load modules......................................................................7 When you are running an application ....................................................................................................7 Tools that facilitate your migration........................................................................................................ 9 The Edge Portfolio Analyzer..............................................................................................................9 Applicability of product information...................................................................................................... 9 Part 2. Migration of pre-OS/390 C/C++ applications to z/OS V2R4 XL C/C++.......... 11 Chapter 3. Source code compatibility issues with pre-OS/390 C/C++ programs................................... 13 Removal of IBM Open Class Library support.......................................................................................13 Source code modifications necessitated by changes in runtime library............................................ 13 The #pragma runopts directive......................................................................................................13 Resource allocation and memory management issues...................................................................... 13 The sizeof operator applied to a function return type................................................................... 14 A user-defined global new operator and array new...................................................................... 14 Addressing incompatibilities................................................................................................................14 C/370 V2 main program and main entry point.............................................................................. 14 Pointer incompatibilities.................................................................................................................14 Data type incompatibilities.................................................................................................................. 15 Assignment restrictions for packed structures and unions...........................................................15 DSECT header files and packed structures....................................................................................15 Changes required by programs with interlanguage calls....................................................................15 Explicit program mask manipulations............................................................................................15 Assembler source code changes in System Programming C (SPC) applications built with EDCXSTRX..................................................................................................................................16 Internationalization incompatibilities..................................................................................................16 Support of alternate code points....................................................................................................16 Chapter 4. Compile-time issues with pre-OS/390 C/C++ programs........................................................17 Changes in compiler listings, messages, and return codes................................................................ 17 Macro redefinitions might result in severe errors..........................................................................17 Changes in compiler options................................................................................................................17 Compiler options that are no longer supported.............................................................................17 Compiler options that were introduced in OS/390 C/C++ or later................................................18 Changes in compiler option functionality.......................................................................................18 Changes that affect compiler invocations........................................................................................... 21 iii IPA compiler option and very large applications........................................................................... 21 Customized JCL and the CXX format..............................................................................................21 CBCI and CBCXI procedures in JCL............................................................................................... 21 Changes that affect SYSLIB DD cards..................................................................................................21 Change in SCLBH logical record length ......................................................................................... 21 Chapter 5. Bind-time migration issues with pre-OS/390 C/C++ programs............................................. 23 Library release level in use...................................................................................................................23 Binder invocation changes................................................................................................................... 25 Impact of changes to CC EXEC invocation syntax......................................................................... 25 Changes due to customizations of the runtime environment............................................................. 25 User-developed exit routines......................................................................................................... 25 Incompatibilities in external references..............................................................................................26 Requirements for relinking C/370 modules that invoke Debug Tool..................................................26 C/370 modules with interlanguage calls (ILC).................................................................................... 26 Interlanguage calls between assembler and PL/I language modules..........................................26 Function calls between C and Fortran modules............................................................................ 26 Function calls to and from COBOL modules.................................................................................. 27 Chapter 6. Runtime migration issues with pre-OS/390 C/C++ applications........................................... 31 Retention of pre-OS/390 runtime behavior.........................................................................................31 Runtime library messages....................................................................................................................31 Return codes and messages...........................................................................................................31 Error conditions that cause runtime messages............................................................................. 32 Prefixes of perror() and strerror() messages..................................................................................32 Language specification for messages............................................................................................ 32 User-developed exit routines......................................................................................................... 32 Changes that affect customized JCL procedures...............................................................................