2 Selecting a Migration Method 2.1 Taking Inventory

Total Page:16

File Type:pdf, Size:1020Kb

2 Selecting a Migration Method 2.1 Taking Inventory HP OpenVMS Migrating an Application from OpenVMS VAX to OpenVMS I64 May 2006 This manual describes how to create an HP OpenVMS Industry Standard 64 for Integrity Servers (I64) version of an OpenVMS VAX application. Revision/Update Information: This is a new manual. Software Version: OpenVMS I64 Version 8.2 and higher OpenVMS VAX Version 6.1 and higher Hewlett-Packard Company Palo Alto, California © Copyright 2006 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor’s standard commercial license. The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein. Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group. This document was prepared using DECdocument, Version 3.3-1b. Contents Preface ............................................................ ix 1 Overview of the Migration Process 1.1 Compatibility of VAX and I64 Systems ........................... 1–1 1.2 User-Written Device Drivers . ................................ 1–3 1.3 Migration Process . ........................................ 1–4 1.4 Migration Paths ............................................. 1–4 1.5 Migration Support from HP .................................... 1–5 1.5.1 Migration Assessment Service ............................... 1–6 1.5.2 Application Migration Detailed Analysis and Design Service . ....... 1–6 1.5.3 System Migration Detailed Analysis and Design Service ........... 1–6 1.5.4 Application Migration Service ............................... 1–6 1.5.5 System Migration Service . ................................ 1–6 2 Selecting a Migration Method 2.1 Taking Inventory ............................................ 2–1 2.2 How to Select a Migration Method ............................... 2–2 2.3 Which Migration Methods are Possible? . ....................... 2–3 2.4 Deciding Whether to Recompile or Translate ....................... 2–5 2.4.1 Translating Your Application ................................ 2–8 2.4.2 Combining Native and Translated Images ...................... 2–8 2.5 Coding Practices That Affect Recompilation . ....................... 2–9 2.5.1 VAX MACRO Assembly Language ............................ 2–10 2.5.2 Privileged Code . ........................................ 2–10 2.5.3 Features Specific to the VAX Architecture ...................... 2–11 2.6 Identifying Dependencies on the VAX Architecture in Your Application . 2–11 2.6.1 Data Alignment . ........................................ 2–11 2.6.2 Floating-Point Arithmetic . ................................ 2–12 2.6.3 Data Types .............................................. 2–13 2.6.4 Shared Access to Data ..................................... 2–14 2.6.5 Page Size Considerations . ................................ 2–15 2.6.6 Order of Read/Write Operations on Multiprocessor Systems . ....... 2–16 2.6.7 Explicit Reliance on the VAX Procedure Calling Standard . ....... 2–16 2.6.8 Explicit Reliance on VAX Exception-Handling Mechanisms . ....... 2–17 2.6.8.1 Establishing a Dynamic Condition Handler . ............... 2–17 2.6.8.2 Accessing Data in the Signal and Mechanism Arrays . ....... 2–18 2.6.9 Modification of the VAX AST Parameter List .................... 2–18 2.6.10 Explicit Dependency on the Form and Behavior of VAX Instructions ............................................. 2–18 2.6.11 Generation of VAX Instructions at Run Time .................... 2–19 2.7 Identifying Incompatibilities Between VAX and I64 Systems ........... 2–19 iii 3 Migrating Your Application 3.1 Setting Up the Migration Environment ........................... 3–1 3.1.1 Hardware . ............................................ 3–1 3.1.2 Software ................................................ 3–2 3.2 Converting Your Application ................................... 3–3 3.2.1 Recompiling and Relinking ................................. 3–3 3.2.1.1 Native I64 Compilers ................................... 3–3 3.2.1.2 VAX MACRO–32 Compiler for OpenVMS I64 ................ 3–4 3.2.1.3 I64 Development Tools .................................. 3–5 3.2.2 Translating . ............................................ 3–6 3.3 Analyzing System Crashes . .................................... 3–6 3.3.1 System Dump Analyzer ................................... 3–6 3.3.2 Crash Log Utility Extractor ................................. 3–7 3.4 Testing Applications on VAX for Baseline Information ................ 3–7 3.5 Testing the Migrated Application ................................ 3–8 3.5.1 VAX Tests Ported to I64 .................................... 3–8 3.5.2 New I64 Tests ........................................... 3–8 3.5.3 Uncovering Latent Bugs ................................... 3–8 3.6 Integrating the Migrated Application into a Software System .......... 3–9 3.7 Modifying Certain Types of Code ................................ 3–9 3.7.1 Conditionalized Code . .................................... 3–9 3.7.1.1 MACRO Sources . .................................... 3–9 3.7.1.2 BLISS Sources ........................................ 3–10 3.7.1.3 C Sources ............................................ 3–10 3.7.1.4 Existing Conditionalized Code ............................ 3–11 3.7.2 System Services with VAX Architecture Dependencies . ........... 3–11 3.7.2.1 SYS$GOTO_UNWIND .................................. 3–12 3.7.2.2 SYS$LKWSET and SYS$LKWSET_64 . ................... 3–12 3.7.3 Code with Other Dependencies on the VAX Architecture ........... 3–12 3.7.3.1 Initialized Overlaid Program Sections . ................... 3–12 3.7.3.2 Condition Handler Use of SS$_HPARITH ................... 3–12 3.7.3.3 Mechanism Array Data Structure ......................... 3–12 3.7.3.4 Reliance on VAX Object File Format ....................... 3–12 3.7.4 Code That Uses Floating-Point Data Types . ................... 3–13 3.7.4.1 LIB$WAIT Problem and Solution .......................... 3–14 3.7.5 Incorrect Command Table Declaration ......................... 3–15 3.7.6 Code That Uses Threads ................................... 3–15 3.7.6.1 Thread Routines cma_delay and cma_time_get_expiration . 3–16 3.7.7 Code with Unaligned Data .................................. 3–17 3.7.8 Code That Relies on the OpenVMS VAX Calling Standard ......... 3–18 3.7.9 Privileged Code .......................................... 3–18 3.7.9.1 Use of SYS$LKWSET and SYS$LKWSET_64 ................ 3–18 3.7.9.2 Use of SYS$LCKPAG and SYS$LCKPAG_64 ................. 3–19 3.7.9.3 Terminal Drivers . .................................... 3–19 3.7.9.4 Protected Image Sections ................................ 3–19 4 Overview of Recompiling and Relinking 4.1 Compiling Applications on VAX With Current Compiler Version ........ 4–1 4.2 Recompiling Your Application with Native I64 Compilers . ........... 4–2 4.3 Relinking Your Application on an I64 System . ................... 4–2 4.4 Compatibility Between the Mathematics Libraries Available on VAX and I64 Systems ................................................ 4–6 4.5 Determining the Host Architecture . ............................ 4–6 iv 5 Adapting Applications to a Larger Page Size 5.1 Overview . ................................................ 5–1 5.1.1 Compatibility Features .................................... 5–1 5.1.2 Summary of Memory Management Routines with Potential Page-Size Dependencies ............................................ 5–2 5.2 Examining Memory Allocation Routines . ....................... 5–6 5.2.1 Allocating Memory in Expanded Virtual Address Space ........... 5–6 5.2.2 Allocating Memory in Existing Virtual Address Space ............. 5–8 5.2.3 Deleting Virtual Memory . ................................ 5–9 5.3 Examining Memory Mapping Routines ........................... 5–10 5.3.1 Mapping into Expanded Virtual Address Space . ............... 5–10 5.3.2 Mapping a Single Page to a Specific Location ................... 5–12 5.3.3 Mapping into a Defined Address Range . ....................... 5–13 5.3.4 Mapping from an Offset into a Section File ..................... 5–19 5.4 Obtaining the Page Size at Run Time ............................ 5–20 5.5 Locking Memory in the Working Set ............................. 5–21 6 Preserving the Integrity of Shared Data 6.1 Overview . ................................................ 6–1 6.1.1 VAX Architectural Features That Guarantee Atomicity ............ 6–1 6.1.2 Intel Itanium Compatibility Features . ....................... 6–2 6.2 Uncovering Atomicity Assumptions in Your Application .............. 6–3 6.2.1 Protecting Explicitly Shared Data ............................ 6–4 6.2.2 Protecting Unintentionally Shared Data ....................... 6–8 6.3 Synchronizing Read/Write Operations ............................ 6–9 6.4 Ensuring Atomicity in Translated Images . ....................... 6–10 7 Checking the Portability of Application Data Declarations 7.1 Overview . ...............................................
Recommended publications
  • VAX VMS at 20
    1977–1997... and beyond Nothing Stops It! Of all the winning attributes of the OpenVMS operating system, perhaps its key success factor is its evolutionary spirit. Some would say OpenVMS was revolutionary. But I would prefer to call it evolutionary because its transition has been peaceful and constructive. Over a 20-year period, OpenVMS has experienced evolution in five arenas. First, it evolved from a system running on some 20 printed circuit boards to a single chip. Second, it evolved from being proprietary to open. Third, it evolved from running on CISC-based VAX to RISC-based Alpha systems. Fourth, VMS evolved from being primarily a technical oper- ating system, to a commercial operat- ing system, to a high availability mission-critical commercial operating system. And fifth, VMS evolved from time-sharing to a workstation environment, to a client/server computing style environment. The hardware has experienced a similar evolution. Just as the 16-bit PDP systems laid the groundwork for the VAX platform, VAX laid the groundwork for Alpha—the industry’s leading 64-bit systems. While the platforms have grown and changed, the success continues. Today, OpenVMS is the most flexible and adaptable operating system on the planet. What start- ed out as the concept of ‘Starlet’ in 1975 is moving into ‘Galaxy’ for the 21st century. And like the universe, there is no end in sight. —Jesse Lipcon Vice President of UNIX and OpenVMS Systems Business Unit TABLE OF CONTENTS CHAPTER I Changing the Face of Computing 4 CHAPTER II Setting the Stage 6 CHAPTER
    [Show full text]
  • Guide to Openvms File Applications
    Guide to OpenVMS File Applications Order Number: AA-PV6PD-TK April 2001 This document is intended for application programmers and designers who write programs that use OpenVMS RMS files. Revision/Update Information: This manual supersedes the Guide to OpenVMS File Applications, OpenVMS Alpha Version 7.2 and OpenVMS VAX Version 7.2 Software Version: OpenVMS Alpha Version 7.3 OpenVMS VAX Version 7.3 Compaq Computer Corporation Houston, Texas © 2001 Compaq Computer Corporation Compaq, AlphaServer, VAX, VMS, the Compaq logo Registered in U.S. and Patent and Trademark Office. Alpha, OpenVMS, PATHWORKS, DECnet, and DEC are trademarks of Compaq Information Technologies Group, L.P. in the United States and other countries. UNIX and X/Open are trademarks of The Open Group in the United States and other countries. All other product names mentioned herein may be the trademarks of their respective companies. Confidential computer software. Valid license from Compaq required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor’s standard commercial license. Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for Compaq products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty. ZK4506 The Compaq OpenVMS documentation set is available on CD-ROM.
    [Show full text]
  • The Computer History Simulation Project
    The Computer History Simulation Project The Computer History Simulation Project The Computer History Simulation Project is a loose Internet-based collective of people interested in restoring historically significant computer hardware and software systems by simulation. The goal of the project is to create highly portable system simulators and to publish them as freeware on the Internet, with freely available copies of significant or representative software. Simulators SIMH is a highly portable, multi-system simulator. ● Download the latest sources for SIMH (V3.5-1 updated 15-Oct-2005 - see change log). ● Download a zip file containing Windows executables for all the SIMH simulators. The VAX and PDP-11 are compiled without Ethernet support. Versions with Ethernet support are available here. If you download the executables, you should download the source archive as well, as it contains the documentation and other supporting files. ● If your host system is Alpha/VMS, and you want Ethernet support, you need to download the VMS Pcap library and execlet here. SIMH implements simulators for: ● Data General Nova, Eclipse ● Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, PDP-11, PDP- 15, VAX ● GRI Corporation GRI-909 ● IBM 1401, 1620, 1130, System 3 ● Interdata (Perkin-Elmer) 16b and 32b systems ● Hewlett-Packard 2116, 2100, 21MX ● Honeywell H316/H516 ● MITS Altair 8800, with both 8080 and Z80 ● Royal-Mcbee LGP-30, LGP-21 ● Scientific Data Systems SDS 940 Also available is a collection of tools for manipulating simulator file formats and for cross- assembling code for the PDP-1, PDP-7, PDP-8, and PDP-11.
    [Show full text]
  • VSI Openvms VAX MACRO and Instruction Set Reference Manual
    VSI OpenVMS VAX MACRO and Instruction Set Reference Manual Document Number: DO-VMACRM-01A Publication Date: April 2019 This document describes the features of the VAX MACRO instruction set and assembler. It includes a detailed description of MACRO directives and instructions, as well as information about MACRO source program syntax. Revision Update Information: This is a new manual. Operating System and Version: OpenVMS VAX Version 7.3 VMS Software, Inc., (VSI) Bolton, Massachusetts, USA VAX MACRO and Instruction Set Reference Manual Copyright © 2019 VMS Software, Inc. (VSI), Bolton, Massachusetts, USA Legal Notice Confidential computer software. Valid license from VSI required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for VSI products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. VSI shall not be liable for technical or editorial errors or omissions contained herein. HPE, HPE Integrity, HPE Alpha, and HPE Proliant are trademarks or registered trademarks of Hewlett Packard Enterprise. Intel, Itanium, and IA-64 are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. The VSI OpenVMS documentation set is available on CD. ii VAX MACRO and Instruction Set Reference Manual Preface .................................................................................................................................... xi 1. About VSI ..................................................................................................................... xi 2. Intended Audience ......................................................................................................... xi 3.
    [Show full text]
  • Strategies for Migrating from Alpha and VAX Systems to HP Integrity Server Systems on Openvms
    OpenVMS Technical Journal V10 Strategies for migrating from Alpha and VAX systems to HP Integrity server systems on OpenVMS Robert Gezelter, CDP, CSA, CSE, Software Consultant Strategies for migrating from Alpha and VAX systems to HP Integrity server systems on OpenVMS ................ 1 Overview ........................................................................................................................................ 3 Introduction ..................................................................................................................................... 3 The nature of transition risk ............................................................................................................... 4 Different risks for different organizations ............................................................................................. 4 Software qualification and operational commitments ............................................................................ 7 Engineering the details of conversion.................................................................................................. 7 The hardware.................................................................................................................................. 8 VAX architecture .............................................................................................................................. 8 Alpha architecture...........................................................................................................................
    [Show full text]
  • Digital Technical Journal, Volume 4, Number 4, Special Edition, 1992: Alpha AXP Architecture and Systems
    Editorial Jane C. Blake, Editor Helen L. Patterson, Associate Editor Kathleen M. Stetson, Associate Editor Circulation Catherine M. Phillips, Administrator Sherry L. Gonzalez Production Terri Autieri, Production Editor Anne S. Katzeff, Typographer Peter R. Woodbury, Illustrator Advisory Board Samuel H. Fuller, Chairman Richard W Beane Donald 2.Harbert Richard J. Hollingsworth Alan G. Nemeth Jeffrey H. Rudy Stan Smits Michael C. Thurk Gayn B. Winters The Digital TecbnicalJoutnnl is published quarterly by Digital Equipment Corporation, 146 Main Street ML01-3/B68, Maynard, Massachusetts 01754-2571. Subscriptions to the Journal are $40.00 for four issues and must be prepaid in U.S. funds. University and col- lege professors and Ph.D. students in the electrical engineering and computer science fields receive complimentary subscriptions upon request. Orders, inquiries, and address changes should be sent to the Digital Technical./ournalat the published-by address. lnquirks can also be sent electro~icallyto DTJ~CRL.DEC.COM.S~~~I~copies and back issues are available for $16.00 each from Digital Press of Digital Equipment Corporation, 1 Burlington Woods Drive. Burlington, ,MA 01830-4597 Digital employeesmay send subscription orders on the ENET to RDVAX:,JOURNAL or by interoffice mall to mallstop ML01-3/B68. Orders should include badge number, site location code, and address. All employees must adv~seof changes of address. Comments on the content of any paper are welcomed and may be sent to the editor at the published-by or network address. Copyright O 1993 Digital Equipment Corporation. Copying without fee is permitted provided that such copies are made for use in educational institutions by faculty members and are not distributed for commercial advantage.
    [Show full text]
  • Porting Rdb to Itanium
    Porting Rdb to Itanium Ian Smith Relational Technology Group Oracle New England Development Center Copyright 2002 Oracle Corporation Announcement Oracle and Compaq have a long and successful history of delivering enterprise solutions to our OpenVMS customers. In July 2001, Oracle released Rdb 7.1 for OpenVMS. In September 2001, Oracle9i for OpenVMS was released. Compaq has announced plans to consolidate its 64-bit servers on Itanium ™ based systems. Oracle is committed to working with Compaq on its enterprise platform offerings, which includes working to deliver Oracle Database and Oracle Rdb on OpenVMS for Itanium™ based platforms. Doug Kennedy Vice President, Global Platform Partnerships Oracle Corporation 2 Agenda • Show Rdb porting history • Discuss basic framework • Look at phased development and release • Look at products to be ported • Please ask questions 3 History • Ported Rdb from VAX to Alpha – Delivered Rdb V5.0 • Ported Rdb to Digital UNIX on Alpha – Delivered Rdb V6.1 • Ported Rdb to Windows NT (Alpha and Intel) – Delivered Rdb V8.0 – available for download from Oracle OTN 4 What we learned In the beginning • Released in 1984 as VAX-11 Rdb/VMS • Many dependencies on VMS – system services and run time library – logical names, etc • Generate query specific code at runtime using VAX instruction set • Precompilers generated VAX MACRO as well as host language code 5 What we learned VAX to Alpha • Single code base • The Alpha compilers are more rigorous – We corrected coding errors never before detected • Alignment of data structures
    [Show full text]
  • HP Openvms Programming Concepts Manual, Volume II
    HP OpenVMS Programming Concepts Manual, Volume II Order Number: AA–PV67H–TK January 2005 This manual is Volume II of two volumes. It describes the features that the HP OpenVMS operating system provides to programmers. Revision/Update Information: This manual supersedes the HP OpenVMS Programming Concepts Manual, Version 7.3-1. Software Version: OpenVMS I64 Version 8.2 OpenVMS Alpha Version 8.2 Hewlett Packard Company Palo Alto, California © 2005 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor’s standard commercial license. The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein. Microsoft, Windows, and Windows NT are U.S. registered trademarks of Microsoft Corporation. UNIX is a registered trademark of The Open Group. X/Open is a registered trademark, and the X device is a trademark of X/Open Company Ltd. in the UK and other countries. Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Printed in the U.S. ZK6641 The HP OpenVMS documentation set is available on CD-ROM.
    [Show full text]