Preface |
Preface
|
Preface
|
Chapter 1 |
1
|
Introduction
|
1.1
|
OpenVMS Industry Standard 64 for Integrity Servers
|
1.2
|
Overview of the Porting Process
|
1.2.1
|
Evaluating the Application
|
Chapter 2 |
2
|
Fundamental Differences to Consider
|
2.1
|
Calling Standard
|
2.1.1
|
Changes to the OpenVMS Calling Standard
|
2.1.2
|
Extensions to the OpenVMS Calling Standard
|
2.2
|
Floating-Point Arithmetic
|
2.2.1
|
Overview
|
2.2.2
|
Impact on OpenVMS Applications
|
2.3
|
Object File Format
|
Chapter 3 |
3
|
Assessing Needs for Porting Your Application
|
3.1
|
Overview
|
3.2
|
Evaluating the Application
|
3.2.1
|
Selecting the Porting Method
|
3.2.2
|
Identifying Applications to Be Ported
|
3.2.3
|
Assessing Dependencies
|
3.2.3.1
|
Software Dependencies
|
3.2.3.2
|
Development Environment
|
3.2.3.3
|
Operating Environment
|
3.2.4
|
Operational Tasks
|
3.3
|
HP Porting Resources
|
3.4
|
Additional Considerations
|
Chapter 4 |
4
|
Migrating Source Modules
|
4.1
|
Setting Up the Migration Environment
|
4.1.1
|
Hardware
|
4.1.2
|
Software
|
4.1.2.1
|
HP OpenVMS Migration Software for Alpha to Integrity Servers and Translated Image Environment (TIE)
|
4.1.3
|
Coexistence with Translated Images
|
4.2
|
Compiling Applications on Alpha With Current Compiler Version
|
4.3
|
Testing Applications on Alpha for Baseline Information
|
4.4
|
Recompiling and Relinking on an I64 System
|
4.5
|
Debugging the Migrated Application
|
4.5.1
|
Debugging
|
4.5.2
|
Analyzing System Crashes
|
4.5.2.1
|
System Dump Analyzer
|
4.5.2.2
|
Crash Log Utility Extractor
|
4.6
|
Testing the Migrated Application
|
4.6.1
|
Alpha Tests Ported to I64
|
4.6.2
|
New I64 Tests
|
4.6.3
|
Uncovering Latent Bugs
|
4.7
|
Integrating the Migrated Application into a Software System
|
4.8
|
Modifying Certain Types of Code
|
4.8.1
|
Conditionalized Code
|
4.8.1.1
|
MACRO Sources
|
4.8.1.2
|
BLISS Sources
|
4.8.1.3
|
C Sources
|
4.8.1.4
|
Existing Conditionalized Code
|
4.8.2
|
System Services With Alpha Architecture Dependencies
|
4.8.2.1
|
SYS$GOTO_UNWIND
|
4.8.2.2
|
SYS$LKWSET and SYS$LKWSET_64
|
4.8.3
|
Code With Other Dependencies on the Alpha Architecture
|
4.8.3.1
|
Initialized Overlaid Program Sections
|
4.8.3.2
|
Condition Handlers Use of SS$_HPARITH
|
4.8.3.3
|
Mechanism Array Data Structure
|
4.8.3.4
|
Reliance on Alpha Object File Format
|
4.8.4
|
Code that Uses Floating-Point Data Types
|
4.8.4.1
|
LIB$WAIT Problem and Solution
|
4.8.5
|
Incorrect Command Table Declaration
|
4.8.6
|
Code that Uses Threads
|
4.8.6.1
|
Thread Routines cma_delay and cma_time_get_expiration
|
4.8.7
|
Code With Unaligned Data
|
4.8.8
|
Code that Relies on the OpenVMS Alpha Calling Standard
|
4.8.9
|
Privileged Code
|
4.8.9.1
|
Use of SYS$LKWSET and SYS$LKWSET_64
|
4.8.9.2
|
Use of SYS$LCKPAG and SYS$LCKPAG_64
|
4.8.9.3
|
Terminal Drivers
|
4.8.9.4
|
Protected Image Sections
|
Chapter 5 |
5
|
OpenVMS I64 Development Environment
|
5.1
|
Native I64 Compilers
|
5.1.1
|
VAX MACRO--32 Compiler for OpenVMS I64
|
5.2
|
Other Development Tools
|
5.2.1
|
Translating Alpha Code
|
5.3
|
Linking Modules
|
5.3.1
|
Differences When Linking on OpenVMS I64 Systems
|
5.3.1.1
|
No Based Clusters
|
5.3.1.2
|
Handling of Initialized Overlaid Program Sections on OpenVMS I64
|
5.3.1.3
|
Behavior Difference When Linking ELF Common Symbols
|
5.3.2
|
Expanded Map File Information
|
5.3.3
|
New Linker Qualifiers and Options for OpenVMS I64
|
5.3.3.1
|
New /BASE_ADDRESS Qualifier
|
5.3.3.2
|
New /SEGMENT_ATTRIBUTE Qualifier
|
5.3.3.3
|
New /FP_MODE Qualifier
|
5.3.3.4
|
New /EXPORT_SYMBOL_VECTOR and /PUBLISH_GLOBAL_SYMBOLS Qualifiers
|
5.3.3.5
|
New Alignments for the PSECT_ATTRIBUTE Option
|
5.3.3.6
|
New GROUP_SECTIONS and SECTION_DETAILS keywords for the /FULL Qualifier
|
5.3.4
|
Mixed-Case Arguments in Linker Options, Revisited
|
5.4
|
Debugging Capabilities on OpenVMS I64 Systems
|
5.4.1
|
OpenVMS Debugger
|
5.4.1.1
|
Architecture Support
|
5.4.1.2
|
Language Support
|
5.4.1.3
|
Functional Areas and Commands
|
5.4.1.4
|
Functionality Not Yet Ported
|
5.4.2
|
XDelta Debugger
|
5.4.2.1
|
XDelta Capabilities on OpenVMS I64
|
5.4.2.2
|
Differences Between XDelta on OpenVMS I64 and OpenVMS Alpha Systems
|
5.5
|
OpenVMS I64 Librarian Utility
|
5.5.1
|
Considerations When Using the I64 Librarian
|
5.5.2
|
Changes to the LBR$ Routines
|
5.5.3
|
I64 Library Format Handles UNIX-Style Weak Symbols
|
5.5.3.1
|
New ELF Type for Weak Symbols
|
5.5.3.2
|
Version 6.0 Library Index Format
|
5.5.3.3
|
New Group-Section Symbols
|
5.5.3.4
|
Current Library Limitation with Regard to Weak and Group Symbols
|