Migrating to an OpenVMS AXP System

Recompiling and Relinking Applications

Order Number: AA-PV63A-TE

This manual, published in May 1993, guides experienced software engineers in migrating OpenVMS VAX applications to an OpenVMS AXP (Alpha AXP) system, specifically focusing on recompiling and relinking source files.

The document highlights several key areas of architectural differences and potential dependencies:

  1. Page Size Differences: VAX systems use 512-byte pages, while AXP systems can use 8K, 16K, 32K, or 64K pages. This necessitates examining and potentially modifying memory management routines (allocation, mapping, locking) that rely on page-count arguments, as these are often interpreted in 512-byte "pagelets" on AXP and then converted to CPU-specific pages. Explicitly aligning addresses to CPU-specific page boundaries is crucial.
  2. Shared Data Integrity (Atomicity): VAX architecture often provides implicit synchronization for operations (e.g., incrementing variables, byte/word data manipulation) within a single processor. AXP architecture does not offer the same guarantees, requiring explicit synchronization mechanisms such as Load-locked/Store-conditional instructions, memory barriers, compiler-provided atomicity built-ins, or system services to protect shared data from concurrent access, especially in multiprocessor environments. Data alignment is also critical, as unaligned access can cause performance-degrading faults.
  3. Data Declarations: Developers must check for assumptions about VAX data types (e.g., D_float precision) and their underlying bit representations or sizes, as these may differ on AXP. Data alignment significantly impacts performance on AXP, where unaligned data incurs substantial overhead. Recommendations include using larger data types (longwords, quadwords) for frequently referenced items or utilizing compiler qualifiers for explicit alignment.
  4. Condition Handling: While functionally similar, the format of the mechanism array and specific condition codes have changed. VAX arithmetic exceptions are replaced by a single SS$HPARITH code on AXP, and arithmetic exceptions are reported asynchronously, which can impact restart operations. AXP also introduces data alignment traps (SS$ALIGN).
  5. Interoperability: The manual describes how to create native AXP images that can interoperate with translated VAX images, covering compiler qualifiers (e.g., /TIE for procedure signature blocks) and linker options for managing universal symbols and symbol vector layouts.

Appendix A provides detailed compatibility information for DEC Ada, C, COBOL, FORTRAN, and Pascal compilers on OpenVMS AXP systems. The document emphasizes that while high-level languages abstract much of the architecture, subtle dependencies require careful review and potential modification for correct and efficient migration.

AA-PV63A-TE
May 1993
124 pages
Quality

Original
0.3MB

Site structure and layout ©2025 Majenko Technologies