[an error occurred while processing this directive]
![]() |
![]() HP OpenVMS Systems Documentation |
![]() |
HP OpenVMS Version 8.2--1
|
Previous | Contents | Index |
This chapter contains an introduction to the HP OpenVMS Version 8.2--1 for Integrity servers product and information that you need to know before installing or upgrading to Version 8.2--1.
HP recommends that you read all of the following documents before installing or upgrading to OpenVMS Version 8.2--1:
OpenVMS Version 8.2--1 for Integrity servers (also known as OpenVMS I64) is a follow-on release that replaces OpenVMS Version 8.2 for Integrity servers. OpenVMS Version 8.2--1 includes all the capabilities of its predecessor and introduces new features and hardware support.
Major new features include:
Unless otherwise agreed to by Hewlett-Packard Company (HP), HP provides HP Services support only for the current and immediately preceding versions of HP software, and only when the software is used with hardware that is included in HP-specified configurations. A version is defined as a release of a software product that contains new features, enhancements, or maintenance updates.
Current version-level support (Standard Support, or SS) and Prior Version Support (PVS) for OpenVMS operating system software are provided for OpenVMS versions in accordance with these guidelines. The current level of support for recent versions of OpenVMS I64, as well as Alpha and OpenVMS VAX, is kept up to date on this Web site:
The following OpenVMS core products are supported at the same level (SS or PVS) and duration as the operating system version on which they ship:
These products require their own individual support contracts and are
not included in the operating system support contract.
1.3 General Application Compatibility Statement
OpenVMS has consistently held the policy that published APIs are
supported on all subsequent releases. It is unlikely that applications
that use published APIs will require changes to support a new release
of OpenVMS. APIs may be "retired" and thus be removed from
the documentation; however, the API continues to be available on
OpenVMS as an undocumented interface.
1.4 Obtaining Patch Kits
Patch kits, also known as remedial kits, for HP products are available on line at the HP IT Resource Center (ITRC). Use of the ITRC patch download site requires user registration and login. Registration is open to all users and no service contract is required. You can register and log in from the following URL:
You can also use FTP to access patches from the following location:
OpenVMS provides customers with the flexibility to choose their own network protocol. Whether you require DECnet or TCP/IP, OpenVMS allows you to choose the protocol or combination of protocols that work best for your network. OpenVMS can operate with both HP and third-party networking products.
During the main installation procedure for OpenVMS Version 8.2--1, you have the option of installing the following supported HP networking software:
Alternatively, after you install OpenVMS, you can install your choice of another third-party networking product that runs on OpenVMS Version 8.2--1.
For information about how to configure and manage your HP networking software after installation, refer to the TCP/IP, DECnet-Plus, or DECnet documentation. The manuals are available in online format on the OpenVMS Documentation CD-ROM, the Online Documentation Library CD, and the OpenVMS Documentation Web site:
To order printed manuals from HP, call 800-282-6672.
1.6 Disk Incompatibility with Older Versions of OpenVMS
The OpenVMS Version 8.2--1 installation procedure initializes the target disk with volume expansion (INITIALIZE/LIMIT). This renders the disk incompatible with versions of OpenVMS prior to Version 7.2. If you intend to mount this new disk on a version of OpenVMS prior to Version 7.2, you must first take steps to make the disk compatible for that operating system version. Refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual for detailed instructions.
Note that by taking these steps, your new system disk might include a relatively large minimum allocation size (as defined by /CLUSTER_SIZE). As a result, small files will use more space than necessary. Therefore, you should perform these steps only for system disks that must be mounted on versions of OpenVMS prior to Version 7.2.
ODS-5 disks are also incompatible with versions of OpenVMS prior to Version 7.2. |
HP Integrity servers maintain a System Event Log (SEL) within system
console storage, and OpenVMS I64 automatically transfers the contents
of the SEL into the OpenVMS error log. If you are operating from the
console during a successful boot operation, you might see a message
indicating that the Baseboard Management Controller (BMC) SEL is full.
You can safely continue when the BMC SEL is full by following the
prompts; OpenVMS automatically processes and clears the contents of the
SEL.
1.8 Firmware for Integrity Servers
OpenVMS I64 Version 8.2--1 was tested with the latest firmware for each of the supported Integrity servers.
For the entry-class Integrity servers, HP recommends that use the most current system firmware. For information about updating the system firmware for entry-class Integrity servers, refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual. For rx7620, rx8620, and Superdome servers, call HP Customer Support to update your firmware.
The following table lists the recommended firmware versions for entry-class Integrity servers:
System | System Firmware |
BMC Firmware |
MP Firmware |
DHCP Firmware |
---|---|---|---|---|
rx1600 | 2.18 | 3.48 | E.03.15 | N/A |
rx1620 | 2.18 | 3.48 | E.03.15 | N/A |
rx2600 | 2.31 | 1.53 | E.03.15 | N/A |
rx2620 | 3.17 | 3.47 | E.03.15 | N/A |
rx4640 | 3.17 | 3.49 | E.03.15 | 1.10 |
For cell-based servers, you must access the MP Command Menu and issue the sysrev command to list the MP firmware revision level. The sysrev command is available on all HP Integrity servers that have an MP. Note the EFI info fw command does not display the Management Processor (MP) firmware version on cell-based Integrity servers.
To check firmware version information on an entry-class Integrity server that does not have the MP, use the info fw command at the EFI prompt. Note the following example:
Shell> info fw FIRMWARE INFORMATION Firmware Revision: 2.13 [4412] (1) PAL_A Revision: 7.31/5.37 PAL_B Revision: 5.65 HI Revision: 1.02 SAL Spec Revision: 3.01 SAL_A Revision: 2.00 SAL_B Revision: 2.13 EFI Spec Revision: 1.10 EFI Intel Drop Revision: 14.61 EFI Build Revision: 2.10 POSSE Revision: 0.10 ACPI Revision: 7.00 BMC Revision: 2.35 (2) IPMI Revision: 1.00 SMBIOS Revision: 2.3.2a Management Processor Revision: E.02.29 (3) |
The versions displayed in this example might not reflect the versions running on your system. |
The HP Integrity rx4640 server contains Dual Hot Plug Controller (DHPC) hardware with upgradable firmware. To check the current version of your DHPC firmware, enter the EFI command info chiprev, as shown in the following example. The hot-plug controller version will be displayed. A display of 0100 indicates version 1.0; a display of 0110 indicates version 1.1.
Shell> info chiprev CHIP REVISION INFORMATION Chip Logical Device Chip Type ID ID Revision ------------------- ------- ------ -------- Memory Controller 0 122b 0023 Root Bridge 0 1229 0023 Host Bridge 0000 122e 0032 Host Bridge 0001 122e 0032 Host Bridge 0002 122e 0032 Host Bridge 0004 122e 0032 HotPlug Controller 0 0 0110 Host Bridge 0005 122e 0032 HotPlug Controller 0 0 0110 Host Bridge 0006 122e 0032 Other Bridge 0 0 0002 Other Bridge 0 0 0008 Baseboard MC 0 0 0235 |
For instructions on how to access and use EFI, refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual. For more information, refer to the hardware documentation that is provided with your server.
For instructions on upgrading your firmware for your entry-class
Integrity servers, refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual. To upgrade firmware for
the rx7620, rx8620, or Superdome, contact HP Customer Support.
1.9 TIE Kit Must be Removed Before Upgrade
The Translated Image Environment (TIE) has been integrated into OpenVMS I64 Version 8.2--1. Refer to the HP OpenVMS Systems Migration Software Web site for further information.
If you have installed the Translated Image Environment (TIE) PCSI kit (HP-I64VMS-TIE) on OpenVMS I64 Version 8.2, you must manually remove any previous versions of TIE before you upgrade to OpenVMS I64 Version 8.2--1.
Use the following command to remove the TIE product kit:
$ PRODUCT REMOVE TIE |
Do not install the TIE product kit, HP I64VMS TIE V1.0, on OpenVMS I64
Version 8.2--1.
1.10 Release Notes on Booting the System
The following release notes pertain to booting the OpenVMS I64 system.
1.10.1 Booting from the Installation DVD
On I64 systems with the minimum amount of supported memory, the following message appears when booting from the installation DVD:
********* XFC-W-MemmgtInit Misconfigure Detected ******** XFC-E-MemMisconfigure MPW_HILIM + FREEGOAL > Physical Memory and no reserved memory for XFC XFC-I-RECONFIG Setting MPW$GL_HILIM to no more than 25% of physical memory XFC-I-RECONFIG Setting FREEGOAL to no more than 10% of physical memory ********* XFC-W-MemMisconfigure AUTOGEN should be run to correct configuration ******** ********* XFC-I-MemmgtInit Bootstrap continuing ******** |
The message means that the system cache (XFC) initialization has
successfully adjusted the SYSGEN parameters MPW_HILIM and FREEGOAL to
allow caching to be effective during the installation. You can continue
with the installation.
1.10.2 Setting Up I64 Systems to Reboot
An OpenVMS I64 system does not reboot automatically unless you have it set up to do so either by using EFI or by using the OpenVMS I64 Boot Manager utility. In a cluster, the Alpha systems reboot but the I64 systems shut down and sit at the console prompt.
For information about how to set up your I64 system to reboot, refer to
the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual.
1.10.3 Booting with a Common Cluster System Disk
For configuring additional nodes to boot with a common cluster disk on an OpenVMS Cluster system, HP requires that you execute the OpenVMS I64 Boot Manager (BOOT_OPTIONS.COM).
After you have enabled clustering on a single or standalone system, you can add additional I64 nodes to boot on a shared disk, as follows:
$$$ @$SYS$MANAGER:BOOT_OPTIONS |
For additional information on the I64 Boot Manager Boot Options
Management Utility, refer to the HP OpenVMS System Manager's Manual, Volume 1: Essentials.
1.10.4 Booting from a Fibre Channel Storage Device
Many customers prefer to boot from a Fibre Channel (FC) storage device because of its speed and because it can serve as a common cluster system disk in a SAN. Booting from an FC storage device on OpenVMS I64 systems is significantly different from booting from an FC storage device on OpenVMS Alpha systems.
Refer to the Fibre Channel chapter of HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual for directions on
how to configure and boot from an FC device on OpenVMS I64 systems.
1.10.5 OpenVMS I64 Boot Manager Utility: Adding Multipath Fibre Channel Disk Devices
The OpenVMS Boot Manager utility, BOOT_OPTIONS.COM, is used to specify
a list of boot and dump devices in a SAN. When you add a multipath
Fibre Channel disk device to the list, all paths to the device found in
the SAN, including redundant paths, are listed. You can delete
redundant paths from the list by using the Remove option.
1.10.6 Fibre Channel Boot Disk: Simplified Setup Process
For OpenVMS I64 Version 8.2, the process of setting up a Fibre Channel boot device required the use of the OpenVMS I64 Boot Manager, BOOT_OPTIONS.COM, to specify values to the EFI Boot Manager. This process has been automated by the OpenVMS I64 Version 8.2--1 installation process, although the manual process is still available for those cases when it might be needed.
The OpenVMS I64 Version 8.2--1 installation process displays the name of a Fibre Channel disk as a boot device and prompts you to add the Boot Option. HP recommends that you accept this default. Alternatively, you can run the OpenVMS I64 Boot Manager after the installation or upgrade completes, as described in the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual.
If your system is a member of the rx1600, rx2600, or rx4600 family of servers and a Fibre Channel boot device is not listed in the EFI boot menu, you might experience a delay in the EFI initialization because the entire SAN is scanned. Depending on the size of the SAN, this delay can range from several seconds to several minutes. Cell-based systems (the rx7620, rx8620, and Superdome families of servers) are not affected by this delay. This delay might be experienced when booting OpenVMS from the installation DVD for the first time on any OpenVMS I64 system. |
Refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual for information on booting from a Fibre
Channel boot device and updating the Fibre Channel adapter firmware.
1.11 HP DECwindows Motif
The following DECwindows Motif release notes are of interest to OpenVMS
I64 users.
1.11.1 Connect Peripheral Devices Prior to Server Startup
To properly configure your system as a DECwindows X display server, you must have all the following peripheral components connected prior to startup:
Otherwise, the server system might not complete the device initialization process correctly. For example, starting up a server system without input devices (mouse and keyboard) will result in a blank screen, and DECwindows will not start .
To correct this problem, connect all peripherals. Then restart the
server, or reboot the system.
1.11.2 Countdown Messages Displayed During Startup
When running DECwindows Motif in client-only mode (with no server configured, or with no mouse or keyboard connected), messages similar to the following might be displayed during startup:
Waiting for mouse... Waiting for keyboard... |
These messages indicate that device polling is underway and are informational only. They will disappear when the 15-second countdown is complete. This typically occurs on servers that incorporate built-in graphics as part of a Server Management Option, and no keyboard and mouse are connected.
To prevent the messages from displaying, and the 15-second delay, connect the input devices (USB mouse and USB keyboard) to the system prior to startup.
If you do not intend to use local graphics on the system, you can define the logical name in SYSTARTUP_VMS.COM as follows:
$ DEFINE/SYSTEM DECW$IGNORE_WORKSTATION TRUE |
This prevents the DECwindows startup from attempting to start local
graphics operation.
1.11.3 VGA Console Not Supported for Booting
The VGA Text Console is not supported by OpenVMS for booting. The
Integrity server firmware allows input from the VGA, but following a
BOOT command, an error message appears indicating that the device
cannot be used. The boot continues with console output directed to a
serial port (or the Server Management Option serial console port when
connected). DECwindows starts and runs on the graphics display
normally. Interactive boot support requires a terminal or a system
running a terminal emulator connected to a serial port on the system.
Other options, such as a LAN connected console, are also available.
1.11.4 Optional Graphics
The ATI Radeon 7500 PCI option (HP part number AB551A) is supported on
the entry-class Integrity servers for 2D multi-head and 3D operation.
Refer to the Installation Guide for this device or Quickspecs for
information about configuration and use.
1.11.5 Keyboard Support
The OpenVMS USB keyboard (HP part number AB552A) is supported on all Integrity systems supporting DECwindows graphics. The keyboard is packaged with a 3-button thumbwheel mouse.
This chapter describes the new features provided in OpenVMS I64 Version
8.2--1. In addition, Chapter 4 describes the InfoServer utility
features and Chapter 5 describes the Linker utility features.
2.1 New Integrity Server Support
Starting with Version 8.2--1, OpenVMS I64 supports three more Integrity server platforms:
The HP sx1000 Chipset for HP Integrity servers provides the CPU, memory, and I/O subsystem to the HP Integrity rx7620, HP Integrity 8620, and HP Integrity Superdome servers. The cell controller is combined with four CPU chips into the computing cell in the sx1000 Chipset architecture. The cell controller chip also provides paths to the I/O devices and off-cell memory.
The rx7620, rx8620, and Superdome servers provide a varying number of sx1000 Chipset cells. The rx7620 provides up to 2 cells (8 CPUs), the rx8620 provides up to 4 cells (16 CPUs), and the Superdome provides up to 16 cells (64 CPUs).
OpenVMS I64 Version 8.2--1 supports the following configurations on the rx7620, rx8620, and the Superdome:
OpenVMS I64 Version 8.2--1 supports booting from a virtual DVD drive on the local area network (LAN) using InfoServer software available with your OpenVMS Version 8.2--1 operating system. This feature is available only for operating system upgrades and only with the following Integrity servers:
The InfoServer software provides the additional advantage of allowing you to boot multiple systems on the network from a single copy of the distribution kit.
Network booting using the InfoServer requires several configuration
steps unique to OpenVMS V8.2--1. Any configuration performed for
network booting from an OpenVMS Alpha system using the InfoServer
hardware will not be valid for OpenVMS I64 systems. For information on
enabling your system to boot over the LAN using the OpenVMS I64
InfoServer software, refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual. For more information
about the InfoServer utility, refer to Section 4.1.
2.3 OpenVMS Cluster Systems
This section discusses several new OpenVMS Cluster features that are
available in this release.
2.3.1 Increased Number of OpenVMS I64 Systems in an OpenVMS Cluster
Starting with Version 8.2--1, OpenVMS supports 96 OpenVMS systems in a mixed-architecture OpenVMS Cluster system consisting of OpenVMS I64 systems and OpenVMS Alpha systems, or in a single-architecture cluster of OpenVMS I64 systems only. Prior to this release, the total number of OpenVMS I64 systems supported in any type of OpenVMS Cluster system was 8. In mixed-architecture clusters of OpenVMS I64 and OpenVMS Alpha systems, a total of 16 systems was supported.
Customers with large OpenVMS Cluster environments can now do the following:
For more detailed information about OpenVMS Cluster support, refer to
Guidelines for OpenVMS Cluster Configurations and to the HP OpenVMS Cluster Systems manual.
2.3.2 Shared SCSI Storage Support for Two-Node OpenVMS I64 Cluster Systems
Shared SCSI storage support for two-node OpenVMS I64 Cluster systems is introduced in OpenVMS Version 8.2--1. Prior to this release, shared SCSI storage was supported on OpenVMS Alpha systems, only, using earlier SCSI host-based adapters (HBAs)
Shared SCSI storage in an OpenVMS Cluster system enables computers connected to a single SCSI bus to share access to SCSI storage devices directly. This capability makes it possible to build highly available servers using shared access to SCSI storage.
Shared SCSI storage in an OpenVMS I64 Cluster system is subject to the following restrictions:
Figure 2-1 illustrates this configuration. Note that a second interconnect, a local area network (LAN), is required for host-to-host OpenVMS Cluster communications. (OpenVMS Cluster communications are also known as SCA (System Communications Architecture) communications.)
Note, too, the SCSI IDs of 6 and 7, which are required in this configuration. One of the systems must have a SCSI ID of 6 for each A7173A adapter port connected to a shared SCSI bus, instead of the factory-set default of 7. You use the U320_SCSI pscsi.efi utility, included on the IPF Offline Diagnostics and Utilities CD, to change the SCSI ID. The procedure for doing this is documented in the HP A7173A PCI-X Dual Channel Ultra320 SCSI Host Bus Adapter Installation Guide, which is available (PDF and HTML) from:
Figure 2-1 Two-Node OpenVMS I64 Cluster System
With OpenVMS Version 8.2, pressing Ctrl/P on the console of an Integrity server displayed a prompt asking whether you wanted to crash the system:
Crash (y/n): |
However, if the XDELTA debugger was loaded on your system, pressing Ctrl/P invokes the debugger. With OpenVMS Version 8.2--1, the behavior of Ctrl/P on the console has changed to invoke the IPC utility instead of the crash prompt. If XDELTA is loaded, Ctrl/P still results in transferring control to the XDELTA debugger. The Ctrl/P utility allows a system manager to adjust quorum or cancel mount verification on a disk.
The IPC utility has been updated with the following changes:
The IPC utility runs at a high-interrupt priority level on the primary
CPU. The utility still allows cluster communications to occur, but HP
recommends that the utility be used and exited as soon as possible.
2.5 HP OpenVMS Debugger
The following sections describe new features of the OpenVMS Debugger on
OpenVMS V8.2--1 Integrity systems.
2.5.1 Improved C++ Support for Operator Names
Support has been improved for C++ operator names. In particular, user-defined operator names are now supported. Prior to this change, you needed to enclose an operator name in %NAME.
For example:
DBG> SHOW SYMBOL /FULL operator == routine C::operator== type signature: bool operator==(C) code address: 198716, size: 40 bytes procedure descriptor address: 65752 DBG> SET BREAK operator== |
The OpenVMS Debugger can now set modules automatically, making use of an explicit SET MODULE command optional. There are two reasons for this enhancement:
DBG> SET BREAK X\Y |
The Heap Analyzer is now available on OpenVMS I64 and is activated
differently than on Alpha systems. A new start command, START
HEAP_ANALYZER, is available from the debugger command-line prompt
(DBG>) to start the Heap Analyzer from the OpenVMS I64 debugger. For
complete information, refer to the Heap Analyzer chapter in the
HP OpenVMS Debugger Manual.
2.5.4 New Qualifier for SHOW STACK Command
The SHOW STACK command accepts a /START_LEVEL=n qualifier that directs SHOW STACK to begin displaying stack information at call frame level n.
For example, to see the stack information for only frame 3, type the following command:
DBG> SHOW STACK/START=3 1 |
To see the details for the 4th and 5th stack frames, type the following command:
DBG> SHOW STACK/START=4 2 |
The default data type for untyped storage locations has been changed
from longword (32 bits) to quadword (64 bits). Note that storage
locations with data type information will continue to be displayed
according to the related type.
2.5.6 Improved Overloaded Symbol Support in SHOW SYMBOL Command
The SHOW SYMBOL command has been enhanced to recognize overloaded symbol names. Previously, it just printed the various overloaded names. With the enhancement, it now prints each name and the associated information with that name. For example:
DBG> show symbol/full g overloaded name C::g routine C::g(char) type signature: void g(char) address: 132224, size: 128 bytes routine C::g(long) type signature: void g(long) address: 132480, size: 96 bytes |
The OpenVMS I64 debugger has been enhanced to support the Ada language. This support is preliminary and will be enhanced in future releases of OpenVMS. Currently, the following capabilities are supported:
The following debuggers are included in the OpenVMS Version 8.2--1 Integrity server operating system:
A new System Dump Analyzer (SDA) command, FC PERFORMANCE, is available in OpenVMS Version 8.2--1 to display I/O performance characteristics of DGA devices. It is also available in OpenVMS Version 8.2 of OpenVMS Alpha and OpenVMS I64. In addition, this command is available for OpenVMS Alpha Version 7.3-2 in the FIBRE_SCSI_V400 Fibre Channel patch kit. The Fibre Channel drivers of these supported versions keep a performance array for every configured disk.
You can use this new SDA command to display I/O performance characteristics of a named DGA device or of all DGA devices that are configured on the system. If you omit the device name, then the performance data of all DGA disks with any nonzero data is displayed, regardless of whether the devices are currently mounted. FC PERFORMANCE arrays keep counts of I/O latency across LUNs, I/O size, and I/O direction (read/write).
I/O latency is measured from the time a request is queued to the host FC adapter until the completion interrupt occurs. Modern disk drives have an average latency in the range of 5-10 ms. Caches located in disk controllers (HSG/EVA/MSA/XP) and in the physical disk drives can occasionally produce significantly lower access times.
By default, the FC PERFORMANCE command uses the /SYSTIME qualifier to measure latency. The /SYSTIME qualifier uses EXE$GQ_SYSTIME, which is updated every millisecond. If I/O completes in less than 1 ms, it appears to have completed in zero time. When /SYSTIME is used, I/O operations that complete in less than 1 ms are shown in the display in the <2us column, where us represents microsecond.
To achieve greater accuracy, you can use the /RSCC qualifier, which uses the System Cycle Counter timer. The command qualifiers, including the timers, are described in Table 2-1.
Qualifier | Description |
---|---|
[ device-name] | Device whose performance characteristics are to be displayed. You can specify only one DGA device name. If you omit the name, then the performance data for every DGA device configured on the system is displayed, provided the array contains nonzero data. This includes the performance data for DGA devices that are not currently mounted. |
[/RSCC|/SYSTIME] | Two time qualifiers are available. The /RSCC qualifier uses a PAL call, Read System Cycle Counter, to get a CPU cycle counter. This is highly accurate but incurs the cost, in time, of two expensive PAL calls per I/O operation. To display time resolution below 1 ms, use this qualifier. The /SYSTIME qualifier is the OpenVMS system time which is updated every millisecond; it is the default. |
[/COMPRESS] | Suppresses the screen display of columns that contain only zeroes. |
[/CSV] | Causes output to be written to a comma-separated values (CSV) file, which can be read into a Microsoft® Excel spreadsheet or can be graphed. |
[/CLEAR] | Clears the performance array. This qualifier is useful when you are testing I/O performance on your system. Before starting a new test, you can clear the performance array for the device whose performance you are measuring and then immediately dump the contents of its performance array when the test is completed. |
The following example shows the write and read output for device $1$DGA4321 resulting from the use of the SDA command FC PERFORMANCE with the /COMPRESS qualifier.
In the display, LBC (first column heading) represents logical block count. Notice that the LBCs in the rows are powers of 2. A particular row contains all counts up to the count in the next row. A particular row contains all LBC counts up to the count that begins the next row; for example, the LBC 8 row shows the count for all I/Os with LBC 8 through LCB 15. I/Os with an LBC greater than 256 are not shown in the matrix, but they are included in the "total blocks" value at the beginning of the matrix.
The counts in each column represent the number of I/Os that completed in less than the time shown in the column header. For example the <2ms column means that the I/Os in this column took less than 2ms but more than 1 ms to complete. Similarly, the I/Os in the <4ms column took less than 4ms but more than 2 ms to complete. The one exception is the <2us column when you use the /SYSTIME qualifier; all I/O that completes in less than a millisecond are included in the <2us count.
The columns headings of <2us, <2ms, <4ms, and so on, are shown in this display. If there are no values for some of the headings, those columns are not displayed because the /COMPRESS qualifier was used. If the /RSCC qualifier was used instead of the default /SYSTIME qualifier, additional headings for <4us, <8us, <16us, and <256us would be displayed.
SDA> FC PERFORMANCE $1$DGA4321/COMPRESS Fibre Channel Disk Performance Data ---------------------------------- $1$dga4321 (write) Using EXE$GQ_SYSTIME to calculate the I/O time accumulated write time = 2907297312us writes = 266709 total blocks = 1432966 I/O rate is less than 1 mb/sec LBC <2us <2ms <4ms <8ms <16ms <32ms <64ms <128ms <256ms <512ms <1s === ===== ==== ==== ==== ===== ===== ===== ==== ===== ===== ==== 1 46106 20630 12396 13605 13856 15334 14675 8101 777 8 - 145488 2 52 21 8 9 5 5 6 1 2 - - 109 4 40310 13166 3241 3545 3423 3116 2351 977 88 - - 70217 8 2213 1355 360 264 205 225 164 82 5 - - 4873 16 16202 6897 3283 3553 3184 2863 2323 1012 108 - 1 39426 32 678 310 36 39 47 44 33 27 6 - - 1220 64 105 97 18 26 41 43 42 24 7 - - 403 128 592 3642 555 60 43 31 23 9 2 - - 4957 256 - 9 7 - - - - - - - - 16 106258 46127 19904 21101 20804 21661 19617 10233 995 8 1 266709 Fibre Channel Disk Performance Data ---------------------------------- $1$dga4321 (read) Using EXE$GQ_SYSTIME to calculate the I/O time accumulated read time = 1241806687us reads = 358490 total blocks = 1110830 I/O rate is less than 1 mb/sec |
LBC <2us <2ms <4ms <8ms <16ms <32ms <64ms <128ms <256ms <512ms <2s === ===== ===== ===== ===== ===== ===== ===== ===== ====== ====== ==== 1 46620 12755 6587 7767 3758 2643 1133 198 5 - - 81466 2 574 134 66 158 82 20 21 4 1 - - 1060 4 162060 35896 20059 18677 15851 11298 5527 1300 25 2 1 270696 8 355 79 46 97 59 36 28 10 - - - 710 16 241 103 32 150 77 24 13 1 - - - 641 32 916 355 76 302 316 61 25 10 - - - 2061 64 725 380 64 248 140 17 10 3 - - - 1587 128 13 22 13 36 21 6 - - - - - 111 256 10 41 28 15 49 13 2 - - - - 158 211514 49765 26971 27450 20353 14118 6759 1526 31 2 1 358490 SDA> |
OpenVMS memory-resident sections on I64 platforms can now use all page sizes that the hardware supports. Using page sizes larger than the OpenVMS default of 8 KB can significantly improve application performance because fewer entries in the translation cache are needed to cover larger amounts of data.
On Alpha and I64 systems, OpenVMS uses the granularity hints feature to implement page sizes larger than the default system page size. On Alpha systems, the maximum effective page size is 4 MB, On current I64 systems, the maximum effective page size is 4 GB. You can use the granularity hints feature for memory-resident sections by preallocating memory using the SYSMAN RESERVED_MEMORY commands. If you want granularity hints, you must use memory-resident sections on Alpha and I64 systems. Use the SYSMAN RESERVED_MEMORY commands to preallocate memory the next time the system boots.
Note the following change in alignment requirements: if you want to use larger page sizes, both virtual and physical addresses must be aligned appropriately. On Alpha systems, sufficient alignment is assured if the section-start address is mapped at a page table boundary. For I64 systems, this might no longer be sufficient.
On OpenVMS I64 systems, HP recommends that you follow these steps to use memory-resident sections:
The following sections contain additional changes that are related to
the larger granularity hints for memory-resident sections.
2.8.1 Flags Added to MMG_CTLFLAGS System Parameter
The following table shows all the bit mask values currently defined for this parameter, including bit 4, which has been added in this release.
Bit | Meaning |
---|---|
0 | If this bit is set, reclamation is enabled by trimming from periodically executing, but otherwise idle, processes. This occurs when the size of the free list plus the modified list drops to less than twice the value of FREEGOAL. This function is disabled if the bit is clear. |
1 | If this bit is set, reclamation is enabled by outswapping processes that have been idle for longer than LONGWAIT seconds. This occurs when the size of the free list drops below the value of FREEGOAL. This function is disabled if the bit is clear. |
2 | Controls deferred memory testing on AlphaServer 4100 systems. If this bit is clear (the default), OpenVMS tests memory as a background activity. If the bit is set, all memory is tested during the bootstrap process. |
3 | Reserved for OpenVMS use; must be zero. |
4 | If this bit is clear (the default), all page sizes supported by hardware can be used to map resident memory sections on I64. If this bit is set, page sizes on I64 systems are limited to the maximum GH factor available on Alpha systems (512 * <system page size>). |
5-7 | Reserved for future use. |
The following list contains system services with item code changes that are related to the increase in memory-resident sections:
Partition Manager, or parmgr, centralizes all nPartition management functions in one place. It provides the system manager with the tools to dynamically reconfigure, power on, power off, create, delete, and modify nPartitions as needed to ensure a smooth and well-controlled operation.
Partition Manager provides system administrators with a convenient graphical user interface to configure and manage nPartitions on HP server systems. Using Partition Manager, you can perform complex configuration tasks without having to remember commands and parameters. You select nPartitions, cells, I/O chassis, or other components from the graphical display, then select an action from a menu.
The Partition Manager runs on both HP-UX and Microsoft® Windows® systems. You can use either version of the Partition Manager to manage nPartitions for OpenVMS I64 Version 8.2--1.
You can use Partition Manager to do the following:
Partition Manager is a free product that can be downloaded from the following Web site:
Refer to the HP System Partitions Guide, Administration for nPartitions for more information about the Partition Manager. You can download the online help from the main Partition Manager Web site or from the following Web site:
Note this URL is case sensitive, so you must type the address exactly
as shown.
2.10 New Power-Saving Feature
On I64 systems, a CPU can be placed in "low-power mode" when it is idle. This minimizes power consumption, thereby reducing energy costs for the system. OpenVMS I64 Version 8.2--1 supports this feature based on the settings of the system parameters CPU_POWER_MGMT and CPU_POWER_THRSH. Descriptions of these two parameters follow:
A value of 1 for this dynamic parameter means on (the default); a value of 0 means off.
When the CPU_POWER_THRSH parameter value is exceeded, the operating system places an I64 processor in low-power mode if it is idle. OpenVMS I64 does this only if CPU_POWER_MGMT is on. A CPU returns to normal power when it receives an interrupt.
CPU_POWER_THRSH is a dynamic parameter expressed as a percentage.
OpenVMS I64 monitors how active each CPU is over a fixed time period. If CPU_POWER_MGMT is on and a CPU is idle for a time period indicated by CPU_POWER_THRSH, the CPU is placed in low-power mode if it is idle. A CPU returns to normal power when it receives an interrupt.
For systems supporting real-time operations that require quick response time, HP recommends that this feature be turned off. Use of this feature can result in a small performance degradation.
For more information, refer to the Intel IA-64 Architecture Software Developer's Manual, Volume 2: IA-64 System Architecture on the following Web site:
The License Management Facility provides a tool, the units assignment tool, to help manage license units for OpenVMS Per Processor Licenses (PPL). The units assignment tool uses comma-separated values (CSV) text files to describe the licensing requirements and assignments across the cluster.
The use of a CSV file allows the file to be opened and updated with any text editor or spreadsheet program and to be fed back into the tool. To activate the units assignment tool, type the following command:
$@SYS$EXAMPLES:LMF$PPL_UNITS_ASSIGNMENT.COM |
For more information, see the PPL online help.
2.12 System Dump Analyzer (SDA) Utility
The following sections list new SDA features provided with the OpenVMS
I64 Version 8.2--1 operating system. Refer to Section 2.7 for a
description of the SDA command that provides Fibre Channel performance
information.
2.12.1 SDA COPY Command Additional Information
When a dump is being analyzed, it is useful to have data available that cannot be written to the dump file at the time of the system crash. This data includes the full file specification associated with a file identification and, on OpenVMS I64, the unwind data for images activated in processes.
If the dump is being analyzed on the system where it was originally written, this data can be collected for use in the current SDA session using the COLLECT command. If the dump is being copied for analysis elsewhere, the COPY/COLLECT command can be used to collect the data and to append it to the copy being written. If the COPY/COLLECT command is used after a COLLECT command, the data already collected is appended to the dump copy.
By default, a copy of the original dump, as written at the time of the system crash, will include collection. Use COPY/NOCOLLECT to override this. Conversely, a copy of a dump previously copied by SDA without collection (COPY/NOCOLLECT) does not include collection. Use COPY/COLLECT to override this.
Copying a dump that already contains an appended collection always includes that collection.
For successful collection of all file or unwind data, all disks that
were mounted at the time of the system crash should be remounted and be
made accessible to the process running SDA. If SDA is invoked early on
during startup to save the contents of the dump, for example using
CLUE$SITE_PROC (refer to the HP OpenVMS System Analysis Tools Manual, Section 2.2.3), but disks
are not mounted until a batch job is run, then use the COPY/NOCOLLECT
command in the CLUE$SITE_PROC command procedure. Once all disks are
mounted, you can use a COPY/COLLECT command to save the file or unwind
data.
2.12.2 New Qualifiers for COPY Command
The new qualifiers for the SDA COPY command are as follows:
This section describes the new SDA COLLECT command.
Collects file identification to file-name translation data on both Alpha and I64 and process unwind data on I64 only.
COLLECT [/qualifier...]
None
/LOG
Displays information on the progress of the COLLECT command, for example, the name of the process being scanned or, on I64, the name of an image whose unwind data is being collected./UNDO
Removes all the file and/or unwind data from an earlier COLLECT command from SDA memory. (COLLECT/UNDO does not affect the file or unwind data already appended to the dump file being analyzed.)
When a dump is being analyzed, it is useful to have data available that cannot be written to the dump file at the time of the system crash. This data includes the full file specification associated with a file identification and, on OpenVMS I64, the unwind data for images activated in processes.If the dump is being analyzed on the system where it was originally written, you can use the COLLECT command to collect this data for use in the current SDA session. If the dump is being copied for analysis elsewhere, the COPY/COLLECT command may be used to collect the data and append it to the copy being written. If the COPY/COLLECT command is used after a COLLECT command, the data already collected is appended to the dump copy.
For all file or unwind data to be collected successfully, all disks that were mounted at the time of the system crash should be remounted and be made accessible to the process running SDA.
SDA> COLLECT %SDA-W-DISKNOACC, no access to _$30$DKB100: for file and/or unwind data %SDA-W-FILENOACC, no access to _$30$DKB0: (7709,1,0) for unwind data -SYSTEM-W-NOSUCHFILE, no such file |
In this example, the disk $30$DKB100, which was mounted at the time the system crashed, is not available when file or unwind data is being collected. In addition, unwind data cannot be collected for the image with file identification (7709,1,0) on _$30$DKB0: because it no longer exists.
2.12.4 Changes to SHOW CALL_FRAME Parameter
The starting address parameter of the SHOW CALL_FRAME
command has the following new description:
For Alpha, an expression representing the starting address of the procedure call frame to be displayed/ For a process that uses pthreads, the following SDA command can be used to display the starting addresses for all pthreads:
pthread thread -o u |
The default starting-address is the contents of the frame pointer (FP) register of the SDA current process.
For I64, the address is one of the following:
SHOW CALL_FRAME /EXCEPTION_FRAME=address |
pthread thread -o u |
The default starting address is the invocation context handle of the
current procedure in the SDA current process.
2.13 Traceback Facility
The Traceback facility for I64 systems includes a new symbolize routine, TBK$I64_SYMBOLIZE. This routine, which can be invoked at any time, allows an application to correlate an executable pc value with the source code which generated that code.
The following information describes this routine.
TBK$I64_SYMBOLIZE
The Traceback symbolize routine, TBK$I64_SYMBOLIZE, allows an application program to identify, or symbolize, the source code that was used to generate a particular executable process space location in the currently running application.
Calling Convention
#pragma pointer_size save #pragma pointer_size 64 |
int32 tbk$i64_symbolize( uint64 const pc, struct dsc64$descriptor * const filename_desc, struct dsc64$descriptor * const library_module_desc, uint64 * const record_number, struct dsc64$descriptor * const image_desc, struct dsc64$descriptor * const module_desc, struct dsc64$descriptor * const routine_desc, uint64 * const listing_lineno, uint64 * const rel_pc); #pragma pointer_size restore |
Input
pc | Executable instruction in process to be "tracebacked" by value. |
Output
filename_desc | String descriptor in which to return the name of the file containing the code, by reference. |
library_module_desc | String descriptor in which to return the name of the text library file containing the code, by reference. Returned only if applicable. |
record_number | A 64-bit unsigned integer in which to return the record number (that is, record number n specifies the nth line of the file specified by filename_desc),by reference. |
image_desc | String descriptor in which to return the image name, by reference. |
module_desc | String descriptor in which to return the module name, by reference. |
routine_desc | String descriptor in which to return the routine name, by reference. |
listing_lineno | A 64-bit unsigned integer in which to write the compiler listing line number, by reference. |
rel_pc | A 64-bit unsigned integer in which to write the relative PC value, by reference. |
Return Value
TBK$_NORMAL is returned on successful completion Other unsuccessful completion codes may be returned if an error occurs.
Description
The Traceback facility for I64 systems includes a new symbolize routine, TBK$I64_SYMBOLIZE. This routine, which can be invoked at any time, allows an application to process a condition invoked by an exception in an alternate way. Normal traceback processing generates "traceback stack" information onto SYS$OUTPUT (that is, a series of pc values, one for each stack level). If an application wants to independently process traceback information, it can invoke the traceback handling directly.
An application can specify any executable pc value within its image address space and be returned any or all of the return arguments described in the Output section, above. The return information specifies the location of listing line and/or record number of the source code line that generated the object code that includes the pc value specified. This information can also specify the image name, the module name, and the routine name. A relative pc value, which specifies either the image relative or module relative value, is also returned.
The ability for Traceback to return the values requested is dependent upon whether traceback information was requested during the compilation and linker steps of image generation.
Specifying any output argument (value) as zero will cause the argument to be ignored. To link an application that refers to TBK$I64_SYMBOLIZE, include the following within a linker option file:
|
This chapter contains the OpenVMS I64 Version 8.2--1 release notes. Because most of the OpenVMS Version 8.2 release notes still apply, read the release notes that apply to OpenVMS I64 (that is, all notes not marked Alpha only) in the HP OpenVMS Version 8.2 Release Notes manual as well as the notes in this chapter before installing or upgrading your system.
The following OpenVMS I64 Version 8.2 release notes do not apply to Version 8.2--1:
The following sections provide release notes for adapters supported
with OpenVMS Version 8.2--1.
3.1.1 A9782A, A9784A, and AB465A Restriction in Zoned SAN Environments
In Fibre Channel environments, zoning can be used to place a partition
between different environments in your SAN. If any of the combo
adapters A9782A, A9784A, and AB465A are mapped in a zone with other
Fibre Channel adapters, the system might fail to boot.
3.1.2 Fibre Channel EFI Driver and Firmware Requirements
OpenVMS Version 8.2--1 for Integrity servers requires that the HP A6826A Fibre Channel host-based adapter and its variants have the following minimum version: EFI driver: 1.46 RISC firmware: 3.03.154. For the firmware update, go to the following Web site:
Refer to Appendix C of the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual, for more information about
configuring and booting Fibre Channel devices
3.2 Associated Product Support
The Software Public Rollout Reports for OpenVMS list the availability of HP software products shipping on the Layered Products Library kits (DVD consolidation) for OpenVMS I64. The reports contain the product name and version, the operating system version required to support the product, and the volume ship date for the product. The information in these tables is continually evolving and is subject to change. The reports are intended for public distribution and are updated monthly. The information is not provided in these release notes because of the changing nature of the information.
The Software Public Rollout Reports for OpenVMS are available from the following web site:
If you do not have Internet access, you can find the operating system support information on any of the quarterly Software Products Libraries in the following files:
[README]SW_COMPAT_MATRIX.PS [README]SW_COMPAT_MATRIX.TXT |
The Software Public Rollout Reports are also available from your HP
support representative.
3.3 Cluster Compatibility Patch Kits
Before introducing an OpenVMS Version 8.2--1 system into an existing OpenVMS Cluster system, you must apply certain patch kits (also known as remedial kits) to your systems running earlier versions of OpenVMS. Note that these kits are version specific.
The versions listed in Table 3-1 are supported in a warranted configuration. For more information about these configurations, refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual.
Table 3-1 lists the facilities that require patch kits and the patch kit file names. Each patch kit has a corresponding readme file by the same name with a .README file extension.
You can either download the patch kits from the following Web site, or contact your HP Support representative to receive the patch kits on media appropriate for your system:
Patch kits are periodically updated on an as-needed basis. Always use the most recent patch kit for the facility, as indicated by the version number in the kit's readme file. The most recent version of each kit is the version posted on the Web site. |
Facility | Patch Kit File Name |
---|---|
OpenVMS Alpha Version 7.3-2 | |
Update kit with most patch kits except those listed in this section | VMS732_UPDATE-V0400 |
C RTL | VMS732_ACRTL-V0100 |
DCL | VMS732_DCL-V0300 |
Drivers | VMS732_DRIVER-V0200 |
Fibre Channel & SCSI | VMS732_FIBRE_SCSI-V0600 |
Graphics | VMS732_GRAPHICS-V0300 |
I/O device configuration | VMS732_IOGEN-V0100 |
Job Controller | VMS732_JOBCTL-V0100 |
LAN | VMS732_LAN-V0300 |
Math RTL | VMS732_AMATHRTL-V0100 |
PCSI | VMS732_PCSI-V0100 |
SYSMAN and others | VMS732_MANAGE-V0300 |
Shadowing | VMS732_SHADOWING-V0400 1 |
System | VMS732_SYS-V0700 |
VERIFY | VMS732_VERIFY_V0100 |
OpenVMS Alpha Version 8.2 | |
CPU270F functionality | VMS82A_CPU270F-V0100 |
DECnet-Plus for OpenVMS Alpha ECO1 | DNVOSIECO01_V82 1 |
Drivers | VMS82A_DRIVER-V0100 |
Graphics | VMS82A_GRAPHICS-V0100 |
I/O device configuration | VMS82A_IOGEN-V0100 |
OpenVMS I64 Version 8.2 | |
Adapter support (U320 SCSI and Gb Ethernet) | VMS821_AB290A-V0100 |
DDTM | VMS82I_DDTM-V0100 |
Drivers | VMS821_DRIVER-V0100 |
Graphics | VMS82I_GRAPHICS-V0100 |
I/O device configuration | VMS82I_IOGEN-V0100 |
License Management Facility | VMS82I_LMF-V0100 |
MANAGE | VMS821_PERFORMANCE-V0100 |
MX2CPU functionality | VMS821_MX2-V0100 |
Runtime library general purpose routines | VMS82I_LIBOTS-V0100 |
Secure Server | VMS82I_SECSRV-V0100 |
VMS loader | VMS821_IVMSLOA-V0100 |
Condition: The Heap Analyzer startup and the Heap Analyzer START command on the I64 kept debugger (START HEAP_ANALYZER) hangs for threaded applications with upcalls enabled.
Workaround: For threaded or AST-involved applications,
HP strongly recommends that you either start the Heap Analyzer
before setting up any debug events or after disabling
or canceling those events. (You can enable/reset events after the Heap
Analyzer startup and START returns you to debugger control.)
3.5 Documentation Corrections
The following sections describe corrections to various manuals in the
OpenVMS documentation set.
3.5.1 HP OpenVMS Debugger Manual: Client/Server Interface Correction
The Version 8.2 HP OpenVMS Debugger Manual contains incorrect information for the PC client interface kit. This release note corrects the information in Sections 11.1 and 11.2, as follows:
The debug server runs on OpenVMS systems. The client is the user interface to the debugger, from which you enter debugger commands that are sent to the server. The server executes the commands and sends the results to the client for display. The client runs on Microsoft® Windows® 95, Windows 98, Windows NT®, Windows 2000, and Windows XP®.
The correct client kit for the above client platforms is:
[DEBUG_CLIENTS011.KIT] DEBUGX86011.EXE |
There is no special installation procedure for the components that run on OpenVMS. The system administrator should move the OpenVMS debug client kit listed above from the OpenVMS distribution media to a place accessible to PC users, such as a PATHWORKS share or FTP server. The client kit is a self-extracting .EXE file.
Once the appropriate executable file has been transferred to the PC, you can run the file to install the debug client on the PC. The InstallShield installation procedure guides you through the installation.
By default, the debug client is installed in the \Program Files\OpenVMS Debugger folder. You can also click Browse to select an alternate location.
The installation creates an OpenVMS Debugger program folder that contains shortcuts to the following items:
The HP OpenVMS I/O User's Reference Manual does not fully describe the behavior of the read request. The following paragraph should replace the first paragraph of Section 6.5.1:
To read data from the pseudoterminal, the control program uses the PTD$READ routine. When a PTD$READ routine is called, the operating system queues a read operation. The read operation completes when the pseudoterminal has characters to output. The read request queries TTDRIVER whether there is data found to be returned. If so, the resulting string of characters is returned. If a read request is issued and no data is available, the read request is queued and then completed at a later time. In this case, the routine always returns at least one character. The read request may complete even when there are no characters available to output. In this rare case when TTDRIVER indicates that there is no more data to be output and there is really no data, the read operation completes with zero bytes of data.
The following paragraphs replace Section D.4.4:
The PTD$READ routine reads data from the pseudoterminal. The read request completes with a minimum of one character and a maximum of the number of characters specified by the readbuf_len argument.
When a PTD$READ routine is called, the operating system queues a read
operation. The read operation completes when the pseudoterminal has
characters to output. The read request queries TTDRIVER whether there
is data found to be returned. If so, the resulting string of characters
is returned. If a read request is issued and no data is available, the
read request is queued and then completed at a later time. In this
case, the routine always returns at least one character. The read
request may complete even when there are no characters available to
output. In this rare case when TTDRIVER indicates that there is no more
data to be output and there is really no data, the read operation
completes with zero bytes of data.
3.5.3 HP OpenVMS Version 8.2 New Features and Documentation Overview: Librarian Utility Corrections
The following release notes provide corrected information about the
OpenVMS I64 Librarian utility.
3.5.3.1 /REMOVE Qualifier Correction
In Section 4.8.2.3 of the HP OpenVMS Version 8.2 New Features and Documentation Overview, the description of the enhanced library /REMOVE qualifier is incorrect. The correct information follows.
The /REMOVE qualifier has been enhanced for the I64 Librarian utility.
The format now allows you to specify the module instance of the symbol
to be removed. The enhanced /REMOVE qualifier requests that the LIBRARY
command delete one or more entries from the global symbol table of an
object library.
3.5.3.2 Accessing ELF Object Libraries Correction
Section 4.8.3.2 of the HP OpenVMS Version 8.2 New Features and Documentation Overview contains incorrect information. The following text replaces information in that section:
Accessing ELF Object Libraries
ELF object modules are inherently random access modules, whereas OpenVMS Alpha objects, text modules, and so on, are sequential. To allow random access, a new library routine was created to map the ELF object modules into process P2 space so that applications can make random access queries. To recover virtual address space from this mapping, another library routine was created to remove this mapping. These new routines (LBR$MAP_MODULE and LBR$UNMAP_MODULE) work only with ELF object libraries. These entry points are 64-bit interfaces because they refer to P2 space.
Because of the random-access nature of ELF object files, the following operations are not allowed on ELF object libraries:
LBR$GET_RECORD
LBR$SET_LOCATE
LBR$SET_MOVE
Because inserting modules into the library is a sequential operation, LBR$PUT_RECORD is allowed on ELF object libraries. Because the ELF object modules are not segmented into records, you need to provide the module's on-disk size when calling LBR$PUT_MODULE or upon the first call to LBR$PUT_RECORD when writing a module into the library.
The C code fragment in the following example illustrates how to use LBR$PUT_RECORD to insert an object module:
bufdesc->dsc$a_pointer = &p0_buffer ; bytes_to_transfer = module_size ; while ( bytes_to_transfer ) { transfer = MIN ( bytes_to_transfer , ELBR$C_MAXRECSIZ ) ; bufdesc->dsc$w_length = transfer ; status = lbr$put_record ( library_index , & bufdesc , & txtrfa , module_size ) ; if ( (status & 1) == 0 ) break ; bytes_to_transfer -= transfer ; bufdesc->dsc$a_pointer += transfer ; } ; if ( (status & 1) == 1 ) status = lbr$put_end ( library_index ) ; |
To avoid making several calls to LBR$PUT_RECORD, a new library routine,
LBR$PUT_MODULE, has been created.
3.5.4 HP OpenVMS RTL Library (LIB$) Manual Corrections
The following sections provides additions and corrections to Version
8.2 of the HP OpenVMS RTL Library (LIB$) Manual.
3.5.4.1 HP OpenVMS RTL Library (LIB$) Manual: Clarification of Rounding Rule for LIB$CVT_DX_DX
In the description of the LIB$CVT_DX_DX routine in the HP OpenVMS RTL Library (LIB$) Manual, the following paragraph under "Guidelines for Using LIB$CVT_DX_DX" should contain specific information about the rounding rule that is used:
Results are always rounded instead of truncated, except for the case described below. Note that loss of precision or range may be inherent in the destination data type or in the NBDS destination size. No errors are reported if there is a loss of precision or range as a result of destination data type.
This paragraph should be modified as follows:
Results are always rounded instead of truncated, except for when the
source and destination are both NBDS and no scaling is requested. That
case is described more fully in a later rule. LIB$CVT_DX_DX uses the
VAX_ROUNDING rule. Note that loss of precision or range may be inherent
in the destination data type or in the NBDS destination size. No errors
are reported if there is a loss of precision or range as a result of
destination data type. For details about the VAX_ROUNDING rule, refer
to the description of CVT$CONVERT_FLOAT.
3.5.5 HP OpenVMS RTL Library (LIB$) Manual: Clarification of Platform Restrictions
The HP OpenVMS RTL Library (LIB$) Manual incorrectly identifies the following routines as being available on both Alpha and I64. These routines are available only on Alpha:
The HP OpenVMS RTL Library (LIB$) Manual also should specify that the LIB$GET_UIB_INFO routine is available only on I64.
The routines relating to invocation contexts and invocation handles that are I64 only include the following:
For additional information about these routines, refer to the
HP OpenVMS Calling Standard.
3.5.6 HP OpenVMS System Manager's Manual: IPC Commands Restriction
Section 9.15, Using Interrupt Priority Level C (IPC), in the HP OpenVMS System Manager's Manual, Volume 1: Essentials incorrectly states that you can use IPC commands on I64 and all Alpha systems. This is not correct. The documentation has been changed to include the following statement:
For OpenVMS Versions 8.2 and 8.2--1, you cannot use IPC commands on I64 systems or on ES47 or GS1280 Alpha systems if you booted from a Graphic console. |
The following sections provide additions and corrections to Version 8.2
of the HP OpenVMS System Services Reference Manual.
3.5.7.1 $GETRMI Item Code---RMI$_MODES
Version 8.2 of the HP OpenVMS System Services Reference Manual omitted the following information about the new $GETRMI item code, RMI$MODES.
RMI$_MODES allows you to monitor the modes of each CPU in a multi-CPU system (not just the CPU usage of all the nodes together).
RMI$_MODES returns the amount of time, in 10-ms units, spent by all currently active CPUs in all processor modes since the system was booted. Each increment in the returned time for a mode represents an additional 10 ms spent by the CPU in that mode. An active CPU is one that is actively participating in the processor scheduling that the OpenVMS instance performs.
The buffer length field in the item descriptor is dependent on the number of CPUs attached to the system. The size of the buffer passed should be as follows:
n * sizeof ( CPU_struct ) + 4 |
where n is the available CPU count. Use $GETSYI item code SYI$_POTENTIALCPU_CNT to get n, the count of potentially available CPUs. (Refer to the description of the $GETSYI service for details.)
Data for an individual CPU is returned by means of a CPU_struct structure. Declare the CPU_struct with no member alignment, as in the following example:
#pragma member_alignment save #pragma _nomember_alignment typedef struct _CPU_struct { unsigned char cpu_id; // physical cpu id unsigned int interrupt; // is actually the sum of interrupt and idle1 unsigned int mpsynch; // multi-processor synchronization unsigned int kernel; // kernel mode unsigned int exec; // executive mode unsigned int super; // supervisor mode unsigned int user; // user mode unsigned int reserved; // reserved, will be zero unsigned int idle; // CPU idle }CPU_struct; #pragma member_alignment restore |
For a multiple-CPU system, the data for all active CPUs is returned as an array of type CPU_struct, with the number of elements in the array equal to the number of potentially available CPUs. If a CPU is inactive, the CPU_struct array element corresponding to that CPU will contain 0 in all CPU_struct members.
Be sure to allocate a buffer large enough to hold the counters for all available CPUs.
The following code example shows one method for collecting CPU modes:
#include <starlet.h> #include <syidef.h> #include <rmidef.h> #include <efndef.h> #include <iledef.h> #include <iosbdef.h> CPU_struct *cpu_counters = NULL; IOSB myiosb = { 0 }; char *buffer; unsigned long buffer_size; int status; // Set up the $GETSYI item list: potential CPUs and active CPU bitmask // unsigned long CPU_Count = 0; unsigned long long ActiveCPUs = 0; ILE3 SYIitmlst[] = { {sizeof CPU_Count, SYI$_POTENTIALCPU_CNT, &CPU_Count, 0}, {sizeof ActiveCPUs, SYI$_ACTIVE_CPU_MASK, &ActiveCPUs, 0}, {0,0}}; // Get the available CPU count and a bitmask of active CPUs status = SYS$GETSYIW( EFN$C_ENF, NULL, NULL, SYIitmlst, &myiosb, NULL, 0 ); buffer_size = CPU_Count * sizeof( CPU_struct ) + 4; buffer = malloc( buffer_size ); // Set up the $GETRMI item list: CPU modes ILE3 RMIitmlst[] = {{buffer_size, RMI$_MODES, buffer, 0}, {0,0}}; // Call the service status = SYS$GETRMI( EFN$C_ENF, 0, 0, RMIitmlst, &myiosb, NULL, 0 ); // THE DATA COUNTERS BEGIN 4 BYTES OFF THE START OF THE BUFFER; // The first 4 bytes of the buffer are reserved for internal use. cpu_counters = (CPU_struct *) ( buffer + 4 ); // Use the counters for all active CPUs for ( int i = 0; i < CPU_Count; i++) { if ( 1 == ( 1 & (ActiveCPUs >> i) ) ) { cpu_counters[i].interrupt --- --- --- } } free( buffer ); |
The $PUTMSG prototype is incorrectly documented in Version 8.2 of the HP OpenVMS System Services Reference Manual. The correct prototype is as follows:
C Prototype
int sys$putmsg (void *msgvec, int (*actrtn)(__unknown_params), void *facnam, unsigned __int64 actprm); |
Note that the return value from *actrtn is indeed checked to determine whether or not the message is input.
The documentation source file has been corrected, and the correction
will appear in the next version of the HP OpenVMS System Services Reference Manual and in online help.
3.5.8 HP Volume Shadowing for OpenVMS: Corrections to Memory Requirements
Starting with OpenVMS Version 7.3, additional memory is required to run Volume Shadowing for OpenVMS, as described in the Version 7.3--2 HP Volume Shadowing for OpenVMS manual in Chapter 1 under Hardware Environment, Memory Requirements.. Note the following corrections:
These totals will be corrected in the next revision of HP Volume Shadowing for OpenVMS.
1 For compatibility with existing applications, the returned value for interrupt time is the sum of interrupt and idle times. Calculate the actual interrupt time by subtracting the returned value of idle time from the returned value of interrupt time. |
3.6 EFI Shell Precautions on Shared or Shadowed System Disks
On each Integrity system disk, there can exist up to two FAT partitions that contain OpenVMS boot loaders, EFI applications and hardware diagnostics. The OpenVMS bootstrap partition and, when present, the diagnostics partition are respectively mapped to the following container files on the OpenVMS system disk:
SYS$LOADABLE_IMAGES:SYS$EFI.SYS
SYS$MAINTENANCE:SYS$DIAGNOSTICS.SYS
The contents of these FAT partitions appear as fsn: devices at the console EFI Shell> prompt. These fsn: devices can be directly modified by user command input at EFI Shell> prompt, and by EFI console or EFI diagnostic applications. Neither OpenVMS nor any EFI console environments that might share the system disk are notified of partition modifications; OpenVMS and console environments are entirely unaware of these console modifications. Accordingly, you must ensure the proper coordination and proper synchronization of the changes with OpenVMS and with any other EFI consoles that might be in use.
You must take precautions when modifying the console in configurations using either or both of the following:
You must preemptively reduce these OpenVMS system disk environments to a single-member host-based volume shadowset or to a non-shadowed system disk, and you must externally coordinate access to avoid parallel accesses to the Shell> prompt whenever making shell-level modifications to the fsn: devices, such as:
If you do not take these precautions, any modifications made within the fsn device associated with the boot partition or the device associated with the diagnostic partition can be overwritten and lost immediately or after the next OpenVMS host-based volume shadowing full-merge operation.
For example, when the system disk is shadowed and changes are made by the EFI console shell to the contents of these container files on one of the physical members, the volume shadowing software has no knowledge that a write was done to a physical device. If the system disk is a multiple member shadow set, you must make the same changes to all of the other physical devices that are the current shadow set members. If this is not done, when a full merge operation is next performed on that system disk, the contents of these files might regress. The merge operation might occur many days or weeks after any EFI changes are done.
Furthermore, if a full merge is active on the shadowed system disk, you should not make changes to either file using the console EFI shell.
To suspend a full merge that is in progress or to determine the membership of a shadow set, refer to the HBMM chapter of the HP OpenVMS Version 8.2 New Features and Documentation Overview.
These precautions apply only to Integrity system disks that are
configured for host-based volume shadowing, or that are configured and
shared across multiple OpenVMS I64 systems. Configurations that are
using controller-based RAID, that are not using host-based shadowing
with the system disk, or that are not shared with other OpenVMS I64
systems, are not affected.
3.7 Librarian: Increased Object Module Name Key Length
In OpenVMS Version 8.2, the Librarian incorrectly restricted the object
module name key length to 31 characters for I64 (ELF) object and
shareable image libraries. This problem has been corrected. The
Librarian now accepts object module name key lengths of up to 1024
characters.
3.8 Linker Utility
Most of the release notes in the HP OpenVMS Version 8.2 Release Notes still apply to the Linker utility in OpenVMS I64 Version 8.2--1. The following changes to the HP OpenVMS Version 8.2 release notes are in effect for OpenVMS Version 8.2--1:
TYPE1.C #include <stdio> int status ; // Defines status as data. extern int sub(); main () { printf ("Hello World\n"); sub(); } TYPE2.C extern int status (int x) ; //Refers to status as a procedure. sub () { int x; x = (int)status; return status (x); } |
The Linker utility new features chapter (Chapter 5) contains the following information that should be understood in light of certain conditions, as follows:
If you have multiple nPartitions on your HP Integrity rx7620, HP
Integrity rx8620, or HP Integrity Superdome servers, and you are
running a multi-operating system environment with OpenVMS on one of the
nPartitions, one of the other operating systems might register an error
or event on the System Event Log (SEL) while OpenVMS is booting.
OpenVMS holds the SEL until it has produced a table of Field
Replaceable Units (FRU), which might cause other operating systems to
register an error or an event.
3.10 Network Update Restrictions from Version 8.2 to Version 8.2--1
OpenVMS Version 8.2--1 supports network update of the operating system from Version 8.2 to Version 8.2--1. Network update is supported only over the core I/O LAN cards on systems supported by OpenVMS Version 8.2. Refer to the HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual for more information.
In addition, there is also a hardware configuration restriction for
network booting. Unlike Alpha consoles, where the speed and duplex
setting for the network adapter can be selected at the console, the
Integrity server console and network boot drivers perform
autonegotiation only. The network switch nearest the Integrity server
boot client must be set to autonegotiate for a successful network boot.
Failure to set the switch to autonegotiate results in an inability to
complete the network boot process.
3.11 NPAG_AGGRESSIVE and NPAG_GENTLE Default Values
As of OpenVMS Version 8.2, the default values of the NPAG_AGGRESSIVE and NPAG_GENTLE system parameters have been set to the value of 100. A value of 100 turns off both gentle and aggressive reclamation of nonpaged pool lookaside lists. In many cases, when pool reclamation moves small packets from the lookaside lists back to the variable list, this results in fragmentation of the variable list. This fragmentation appears as many small packets at the front of the variable list and a few large packets at the end of the list.
When an allocation occurs for a packet that is larger than any of the lookaside lists, the system must find a large enough packet on the variable list. When heavily fragmented, as described above, the entire variable list often needs to be searched to find a large enough packet. Because the variable list is kept in address order, when a large packet is deallocated, the entire list needs to be searched again to deallocate the packet.
Under these conditions, system performance can be severely degraded.
For this reason, HP recommend that you turn off pool reclamation but
keep both NPAG_GENTLE and NPAG_AGGRESSIVE system parameters set to 100.
3.12 Synchronous Data Links Not Supported
OpenVMS Version 8.2--1 does not support any synchronous data link
hardware on Integrity servers.
3.13 HP TCP/IP Services for OpenVMS
HP strongly recommends that you apply the current Engineering Change
Order (ECO) for TCP/IP Services for OpenVMS Version 5.5 after upgrading
to OpenVMS Version 8.2--1 to ensure that the latest software is
installed.
3.14 Traceback API Problem Fixed
In OpenVMS I64 Version 8.2, an error occurred when the pc_rel (relative PC value) or image_desc (image name string descriptor) arguments were specified as zero. The Traceback facility now correctly ignores these arguments and continues Traceback processing.
This chapter provides a description of the new InfoServer utility
feature, including a comparison between the InfoServer hardware and
InfoServer application and a reference for the InfoServer utility
commands.
4.1 InfoServer Utility Overview
The InfoServer application allows you to create a service for a virtual disk device on the local area network.
Virtual disk devices include the following:
Comparison of InfoServer Hardware and the InfoServer
Application
The new InfoServer application on OpenVMS differs from previous InfoServer hardware in a number of important ways. Some of the most notable are the following:
You can use the InfoServer utility commands to do the following:
You can invoke the InfoServer in the following ways:
$ RUN SYS$SYSTEM:ESS$INFOSERVER |
InfoServer> SHOW SERVER |
$ InfoServer :== $ESS$INFOSERVER |
$ INFOSERVER |
$ InfoServer SHOW SERVER $ |
$ InfoServer InfoServer> SHOW SERVER |
All InfoServer commands require SYSPRV and OPER privileges. |
To exit the InfoServer utility, enter the EXIT command at the InfoServer> prompt or press Ctrl/Z.
For information about the InfoServer utility, enter the HELP command at
the InfoServer> prompt.
4.1.2 InfoServer Commands
The following sections describe and provide examples of InfoServer commands.
Creates a service for a specified device or partition.Usage rules:
- All devices must be mounted systemwide to prevent them from being dismounted when a process logs out.
- A device that has read/write service must be mounted /FOREIGN so that it is not visible to OpenVMS.
- A device that has read-only service must be mounted with either the /NOWRITE qualifier or the /FOREIGN qualifier so that no one can change it locally.
- A partition can be served off a disk that is mounted for either read-only or read/write access to OpenVMS.
- Support for partitions is limited in this release.
CREATE SERVICE serviceName device-or-partitionName
serviceName
The name by which the service is known to the local area network. The service name can consist of alphanumeric characters and dollar signs ($). It can be 255 characters or fewer in length.device-or-partitionName
The device or partition name is the name of the OpenVMS disk device or partition as it is to be known to the local area network. The name of the device or partition that you enter must have been created previously.Explanations of device and partition names follow.
- Device names
Devices served to the local area network are OpenVMS disk devices; use OpenVMS device names when you specify an InfoServer device name. Note that the device name must either match exactly the name that the SHOW SERVICES command displays or must contain wildcards.
In the InfoServer utility, wildcards, where supported, are the same as those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
A disk specification must end with a colon.- Partition names
Partitions are container files that are served to the network. As such, they have OpenVMS file names with a default file type of .ESS$PARTITION. Partition names, including the device, directory, and file name, can be no more than 242 characters in length.
Support for partitions is limited in this version. HP strongly suggests that you use LD devices to support partitioned hard drives. See the DCL command LD HELP for more information.
/CLASS=className
Specifies a subset of the complete LASTport Disk (LAD) name space.The purpose of class names is to subdivide name spaces so that clients see only those names that are meaningful to them. The use of class names also allows two services to have the same name and not conflict with one another.
For example, you can use different class names for different on-disk structures that several client systems use. You might use SERVICEA/CLASS=ODS-2 for some client systems and SERVICEA/CLASS=ISO_9660 for other client systems. The service has the same name (SERVICEA), but the class names are different.
The class name you use depends on the client systems that will connect to the service being created. The default class name is ODS_2. For example, OpenVMS systems use the ODS_2 name space when attempting to mount an InfoServer device. Note that OpenVMS clients can solicit only those services that are in the ODS_2 service class.
Valid class names are the following:
V2.0 Names understood by PCSA MS-DOS Clients Unformatted Virtual disk has no format MSDOS MSDOS virtual disks ODS_2 VMS virtual disks UNIX UNIX virtual disks ISO_9660 ISO 9660 CD format HIGH_SIERRA MS-DOS CD format APPLE Macintosh HFS format SUN Sun format/ENCODED_PASSWORD=hexstring
The SAVE command creates this qualifier. Because passwords are not stored in plain text, the hashed password value is written out as part of the SAVE operation so that the service can be recreated without revealing the password.Note that if you edit the command procedure that the SAVE command creates and change the service name, the encoded password value is no longer valid. You need to set another password on the service using the /PASSWORD qualifier.
/PASSWORD=passwordString
/NOPASSWORD (default)
Specifies an optional service access control password. The client system must specify the password to access the service.The password string can be up to 39 alphanumeric ASCII characters in length. If no password is specified, the client system is not required to provide a password to access the service.
The text password is hashed and stored in encrypted form in memory with the other service information.
/RATING=DYNAMIC
/RATING=STATIC=value
Clients use the service rating to select a service in the case of multiple matching services. The service with the highest service rating is selected.The system adjusts the dynamic service rating based on load. You can also set a static rating between 0 and 65535. The system does not adjust static ratings.
One use of static ratings is to migrate clients from one copy of a service to another. If you set a static rating of 0 on services you want to migrate clients away from, no new clients will connect to a 0-rated service; instead, they will connect to higher-rated services. When all current clients have disconnected from a service, you can safely delete it.
/READAHEAD (default)
/NOREADAHEAD
When a disk read is required to fill a cache block, the /READAHEAD qualifier specifies that the read is to be from the first block requested to the end of the bucket boundary. Readahead can speed up sequential operations by preloading disk blocks that are needed into the cache.If you specify both the /READAHEAD and the /READBEHIND qualifiers, any block requested within a cache bucket causes the entire bucket range of blocks to be read into the cache.
/READBEHIND
/NOREADBEHIND (default)
When a disk read is required to fill a cache block, the /READBEHIND qualifier specifies that the read is to include all blocks from the beginning of the cache bucket boundary up to and including the requested blocks.If you specify both the /READAHEAD and the /READBEHIND qualifiers, any block requested within a cache bucket causes the entire bucket range of blocks to be read into the cache.
/READERS=number (default is READERS=1000)
/NOREADERS
Specifies the maximum number of simultaneous client connections allowed for read access. The default is 1000 readers. A value of 0 indicates write-only access.If a client requests read-only or read/write access to a service, the system counts this as one reader.
/WRITERS
/NOWRITERS (default)
Specifies that the service is to allow access to a single writer.
#1 | |||
---|---|---|---|
$ SHOW DEVICE MOVMAN$DQA0:/full
|
This example shows how to create a service for a CD device:
- The SHOW DEVICE.../FULL command displays a complete list of information about the _MOVMAN$DQA0 CD.
- The MOUNT/SYSTEM command mounts the OVMSIPS11 volume on the _MOVMAN$DQA0: CD.
- The InfoServer CREATE SERVICE command creates the VMS_SIPS_V11 service on the _MOVMAN$DQA0 CD.
#2 | |||
---|---|---|---|
$LD CREATE KIT1/SIZE-100000 $DIRECTORY KIT1
|
This example shows how to create a service for a logical disk (LD) device:
- The LD CREATE KIT1 command creates a contiguous file, KIT1, that can be used as a logical disk.
- The DIRECTORY KIT1 command provides information about KIT1.
- The LD CONNECT KIT1 connects the logical disk file, KIT1, to the logical disk device MOVMAN$LDA1:.
- The INITIALIZE command formats the MOVMAN$LDA1: LD device.
- The MOUNT command makes the LD device available for processing.
- The CREATE SERVICE command creates the TEST_KIT_1 service on the _MOVMAN$LDA1 LD device.
Deletes one or more services.
DELETE SERVICE serviceName [device-or-partitionName]
serviceName
The name by which the service is known to the local area network. The service name can consists of alphanumeric characters and dollar signs ($). It can be up to and include 255 characters. Wildcards are permitted.In the InfoServer utility, wildcards, where supported, are those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
device-or-partitionName
The device or partition name is the name of the OpenVMS disk device or partition as it is to be known to the local area network. The name of the device or partition that you enter must have been created previously.Explanations of device and partition names follow.
- Device names
Devices served to the local area network are OpenVMS disk devices; use OpenVMS device names when you specify an InfoServer device name. Note that the device name must either match exactly the name that the SHOW SERVICES command displays or must contain wildcards.
In the InfoServer utility, wildcards, where supported, are those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
A disk specification must end with a colon.- Partition names
Partitions are container files that are served to the network. As such, they have OpenVMS file names with a default file type of .ESS$PARTITION. Partition names, including the device, directory, and file name, can be no more than 242 characters in length.
The partition name can be used to further identify the specific service selected.
Support for partitions is limited in this version. HP strongly suggests that you use LD devices to support partitioned hard drives. See the DCL command LD HELP for more information.
/CLASS=className
Specifies a subset of the complete LASTport Disk (LAD) name space.The purpose of class names is to subdivide name spaces so that clients see only those names that are meaningful to them. The use of class names also allows two services to have the same name and not conflict with one another.
For example, you can use different class names for different on-disk structures that several client systems use. You might use SERVICEA/CLASS=ODS-2 for some client systems and SERVICEA/CLASS=ISO_9660 for other client systems. The service has the same name, SERVICEA, but the class names are different.
The class name you use depends upon the client systems that will connect to the service being created. The default class name is ODS_2. For example, OpenVMS systems use the ODS_2 name space when attempting to mount an InfoServer device. Note that OpenVMS clients can solicit only those services that are in the ODS_2 service class.
Valid class names are the following:
V2.0 Names understood by PCSA MS-DOS Clients Unformatted Virtual disk has no format MSDOS MSDOS virtual disks ODS_2 VMS virtual disks UNIX UNIX virtual disks ISO_9660 ISO 9660 CD format HIGH_SIERRA MS-DOS CD format APPLE Macintosh HFS format SUN Sun format/CONFIRM (default)
/NOCONFIRM
Confirm the deletion of a service. If there are any connections, even though /NOCONFIRM has been entered, the system forces a confirmation.Controls whether a request is issued before each delete operation to confirm that the operation should be performed on that service. The following responses are valid:
YES NO QUIT TRUE FALSE Ctrl/Z 1 0 ALL Return (key)Usage notes:
- You can use any combination of uppercase and lowercase letters for word responses. Word responses can be abbreviated to one or more letters (for example, T, TR, or TRU for TRUE); however, these abbreviations must be unique.
- Affirmative answers are YES, TRUE, and 1. Negative answers include NO, FALSE, 0, and pressing Return.
- Entering QUIT or pressing Ctrl/Z indicates that you want to stop processing the command at that point.
- When you respond by entering ALL, the command continues to process, but no further prompts are displayed.
/DISCONNECT
/NODISCONNECT (default)
Overrides the default prompting for confirmation if you attempt to delete a service that has sessions connected to it. If a service has connected sessions and the /DISCONNECT qualifier is not supplied, you are prompted to confirm service deletion.To delete services without being prompted at all, specify both the /NOCONFIRM and /DISCONNECT qualifiers.
$ SHOW SERVICES
|
The first command displays three services, including one session connection. The second command deletes the HUDSON service. It displays messages indicating that HUDSON had one session connected and that this service has been deleted.
Terminates the program. Alternatively, you can press Ctrl/Z to exit from the program.
EXIT
online InfoServer help.ESS$INFOSERVER is the user interface for the LASTport/Disk server implemented as an application on OpenVMS. It is similar in behavior to the hardware InfoServer product although not identical to it.
HELP [topic]
topic
The topic for which help is requested.
$ INFOSERVER HELP SHOW SESSIONS |
This command displays help about the InfoServer command SHOW SESSIONS.
Saves the current set of active services as a set of commands in a command procedure. You can then invoke the command procedure to reproduce the current services when you reboot the system.
SAVE procedureName
procedureName
Creates a command procedure that restores the current server state. The procedure name is the OpenVMS file name of the command procedure to be created. If you do not specify a file type, the type defaults to .COM.The default procedure name is ESS$LAD_SERVICES.COM.
$ SHOW SERVICES
|
The SHOW SERVICES command in this example displays the services that are currently offered by the server. There is a set of software baselevels, each on its own logical disk and served to the LAN. The baselevels are labeled a through d, but, in addition, names help users so that they do not need to remember the corresponding letters.
Note that devices LDA2, LDA3, and LDA4 have two services assigned to each one.
The numbers in the example correspond to the numbers of the following explanations.
- The comment for each device contains the name of the device at the time the SAVE command was executed. LD devices are pseudodisk devices and might change unit numbers every time they are connected.
- This command connects an LD device to the container file and assigns the unit number to the DCL symbol LD_UNIT.
- A unique symbol is created for each device assigned to a container file.
- This command mounts the device specifying the label of the volume that the device had at the time of the SAVE command.
- The InfoServer service is re-created for the device.
- The experimental baselevel services are password protected. For security, the password is stored in the command procedure in prehashed format. Note that both services have the same password, but the hash is different.
- Because FIELD_TEST_BASELEVEL and BASELEVEL_B point to the same LD device, no attempt is made to create another device, and the correct unit (symbol LD_UNIT_2) is used to refer to the previously created unit.
- See explanation #6.
Modifies the attributes of an existing service.
SET SERVICE serviceName [device-or-partitionName]
serviceName
The name by which the service is known to the local area network. The service name can consist of alphanumeric characters or dollar signs ($). It can be up to 255 characters in length.device-or-partitionName
The device or partition name is the name of the OpenVMS disk device or partition as it is to be known to the local area network. The name of the device or partition that you enter must have been created previously.Explanations of device and partitions names follow.
- Device names
Devices served to the local area network are OpenVMS disk devices; use OpenVMS device names when you specify an InfoServer device name. Note that the device name must either match exactly the name that the SHOW SERVICES command displays or must contain wildcards.
In the InfoServer utility, wildcards, where supported, are those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
A disk specification must end with a colon.- Partition names
Partitions are container files that are served to the network. As such, they have OpenVMS file names with a default file type of .ESS$PARTITION. Partition names, including the device, directory, and file name, can be no more than 242 characters in length.
The partition name can be used to further identify the specific service selected.
Support for partitions is limited in this version. HP strongly suggests that you use LD devices to support partitioned hard drives. See the DCL command LD HELP for more information.
/CLASS=className
Specifies a subset of the complete LASTport Disk (LAD) name space.The purpose of class names is to subdivide name spaces so that clients see only those names that are meaningful to them. The use of class names also allows two services to have the same name and not conflict with one another.
For example, you can use different class names for different on-disk structures that several client systems use. You might use SERVICEA/CLASS=ODS-2 for some client systems and SERVICEA/CLASS=ISO_9660 for other client systems. The service has the same name (SERVICEA), but the class names are different.
The class name you use depends upon the client systems that will connect to the service being created. The default class name is ODS_2. For example, OpenVMS systems use the ODS_2 name space when attempting to mount an InfoServer device. Note that OpenVMS clients can solicit only those services that are in the ODS_2 service class.
Valid class names are the following:
V2.0 Names understood by PCSA MS-DOS Clients Unformatted Virtual disk has no format MSDOS MSDOS virtual disks ODS_2 VMS virtual disks UNIX UNIX virtual disks ISO_9660 ISO 9660 CD format HIGH_SIERRA MS-DOS CD format APPLE Macintosh HFS format SUN Sun format/PASSWORD=passwordString
/NOPASSWORD
Specifies an optional service access control password. The client system must specify the password to access the service.The password string can be up to 39 alphanumeric ASCII characters in length. If no password is specified, the client is not required to provide a password to access the service.
The text password is hashed and stored in encrypted form in memory with the other service information.
/RATING=DYNAMIC
/RATING=STATIC=value
Clients use service rating to select a service in the case of multiple matching services. The service with the higher service rating is selected.The system adjusts the dynamic service rating based on load.
A static rating between 0 and 65535 can also be set. Static ratings are not adjusted by the system.
/READAHEAD
/NOREADAHEAD
When a disk read is required to fill a cache lock, specifies that the read should be from the first block requested to the end of the bucket boundary. Readahead can speed up sequential operations by pre-loading disk blocks that are needed into the cache.If both the /READAHEAD and the /READBEHIND qualifiers are specified, any block requested within a cache bucket causes the entire bucket range of blocks to be read into the cache.
/READBEHIND
/NOREADBEHIND
When a disk read is required to fill a cache block, specifies that the read should include all blocks from the beginning of the cache bucket boundary up to and including the requested block.If both the /READAHEAD and the /READBEHIND qualifiers are specified, any block requested within a cache bucket causes the entire bucket range of blocks to be read into the cache.
/READERS=number
Specifies the maximum number of client connections allowed for read access.
$ INFOSERVER SET SERVICE FUNDY/NOPASSWORD
|
The first command in this example modifies the FUNDY service so that the client does not need to enter a password to access the service. The second command displays the FUNDY service, showing that the use of a password has been disabled. (In the second example, notice that the use of a password is enabled for the FUNDY service.)
Displays information about the server (that is, the system that provides services).
SHOW SERVER
$ INFOSERVER SHOW SERVER
|
This command displays information about the server that provides services to the client. The information displayed includes the following:
- The maximum number of services this server can offer simultaneously
- The current size of the cache
- Cache effectiveness statistics
- Current and maximum historical number of clients connected simultaneously
- I/O statistics
The SHOW SERVICES command displays service-specific information for one or all services offered by the server. This information includes the device number associated with the service and the number of connected sessions.The SHOW SERVICES command supports wildcard expressions. In the InfoServer utility, wildcards, where supported, are those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
SHOW SERVICES [serviceName] [options...]
serviceName
The name by which the service is known to the local area network. The service name consists of alphanumeric characters or dollar signs ($). It can be up to 255 characters in length. If omitted, the service name defaults to ALL services.In the InfoServer utility, wildcards, where supported, are the same as those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
/BRIEF (default)
The BRIEF option provides an abbreviated one-line summary of information for each service selected. BRIEF is the default./FULL
The FULL option provides all the service-specific information for the services selected.
#1 | |
---|---|
INFOSERVER> SHOW SERVICES
|
This command displays the one-line default BRIEF summary of all the services that are connected.
#2 | |
---|---|
INFOSERVER> SHOW SERVICES/FULL
|
This command displays all of the service-specific information for all the services that are connected. Notice that passwords are disabled on the HUDSON and BAFFIN services and enabled on the FUNDY service.
Displays information about client nodes that are connected to services.
SHOW SESSIONS [serviceName] [device-or-partitionName]]
serviceName
The name by which the service is known to the local area network. The service name can consist of alphanumeric characters, dollar signs ($), and wildcards. It can be up to 255 characters in length. If omitted, the service name defaults to all services.In the InfoServer utility, wildcards, where supported, are those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
device-or-partitionName
The device or partition name is the name of the OpenVMS disk device or partition as it is to be known to the local area network. The name of the device or partition that you enter must have been created previously.Explanations of device and partition names follow.
- Device names
Devices served to the local area network are OpenVMS disk devices; use OpenVMS device names when you specify an InfoServer device name. Note that the device name must either match exactly the name that the SHOW SERVICES command displays or must contain wildcards.
In the InfoServer utility, wildcards, where supported, are the same as those used in OpenVMS. The percent (%) character matches exactly one character. The asterisk (*) character matches zero or more characters.
A disk specification must end with a colon.- Partition names
Partitions are container files that are served to the network. As such, they have OpenVMS file names with a default file type of .ESS$PARTITION. Partition names, including the device, directory, and file name, can be no more than 242 characters in length.
Support for partitions is limited in this version. HP strongly suggests that you use LD devices to support partitioned hard drives. See the DCL command LD HELP for more information.
/ALL
Display all services that match the selection criteria even if no clients have connections. If this qualifier is omitted, only those services with clients connected are displayed.
#1 | |
---|---|
$ INFOSERVER SHOW SESSIONS
|
#2 | |
---|---|
$ INFOSERVER SHOW SESSIONS/ALL
|
In the first example, this command displays only the session that has a client connection, HUDSON. In the second example, this command displays all sessions, even those with no client connections.
Spawns a process to execute a DCL command. If you do not enter a command, the command terminal is attached to the spawned process. If you do enter a command, that command is executed and, upon completion of the command, control returns to the parent process.
SPAWN [DCL Command]
InfoServer> SPAWN DIRECTORY
|
This command spawns a process to execute a DCL command DIRECTORY. Following execution of the command, control returns to the InfoServer process.
This command starts the LASTport/Disk server and sets various server and cache characteristics.Usually this command is executed by SYS$STARTUP:ESS$LAD_STARTUP.COM using data from SYS$STARTUP:ESS$LAD_STARTUP.DAT. HP strongly recommends that you make all modifications in the SYS$STARTUP:ESS$LAD_STARTUP.DAT file.
You can use the START SERVER command interactively to use its qualifiers to change server settings as long as no services are currently defined.
START SERVER
/BUFFER_SIZE=n
The InfoServer block cache is structured as an array of fixed-size buffers (also called buckets.) The /BUFFER_SIZE qualifier determines the size of each bucket. (The /CACHE qualifier determines the number of buckets.)The numeric value of this parameter is an integer between 3 and 8, inclusive, representing the bucket size in 512-byte blocks as follows:
3 - 8 blocks (default) 4 - 16 blocks 5 - 32 blocks 6 - 64 blocks 7 - 128 blocks 8 - 256 blocksBucket sizes that are larger than 32 blocks are not appropriate for most users. The OpenVMS client segments I/O requests that are larger than 31 blocks into 31-block chunks, and the default bucket readahead behavior might result in unnecessary I/O activity to the disk.
/CACHE = number-of-buckets (default = 512)
The InfoServer block cache is structured as an array of fixed-size buffers (also called buckets. The /CACHE qualifier determines the number of buckets in the cache. (The /BUFFER_SIZE qualifier determines the size of each bucket.)Numbers larger than 16384 can adversely affect performance. Consider increasing the /BUFFER_SIZE qualifier to reach the desired cache size.
/MAXIMUM_SERVICES = maxservice (default = 256)
Sets the maximum service count for the server. This is the maximum number of services that can be defined at one time. Each service descriptor consumes nonpaged pool; however, unused service slots consume only 4 bytes each.The maximum value is 1024.
/WRITE_QUOTA = n (default = 0)
Number of simultaneous synchronous writes permitted within the server. The default of zero means that all write operations are performed synchronously.
$ InfoServer SHOW SERVER
|
The first command in this example displays the current information about the server. The second command starts the server and increases the maximum number of services for the server. The third command displays the new information about the server, showing the increased number of maximum services.
This chapter provides an overview of the differences as well as considerations you should review before linking programs on OpenVMS I64 systems as opposed to OpenVMS Alpha.
This chapter discusses the following major topics:
For linker release notes, refer to Chapter 3 and the HP OpenVMS Version 8.2 Release Notes,
which contain release notes from Version 8.2 that may still apply.
5.1 Linker Utility Overview
The purpose of the linker is to create images (that is, files that contain binary code and data). The linker on OpenVMS I64 is different from the linker on OpenVMS Alpha and VAX systems because it accepts OpenVMS I64 object files and produces OpenVMS I64 images. As on OpenVMS Alpha and VAX systems, the primary type of image created is an executable image. This image can be activated at the DCL command prompt using the RUN command.
The OpenVMS I64 Linker also creates shareable images. A shareable image is a collection of procedures and data that are exported via the SYMBOL_VECTOR option that can be called by executable images or other shareable images. Shareable images are named in an input options file for inclusion in a link operation that creates an executable or shareable image.
When linking modules, the primary type of input file to the OpenVMS I64
Linker is the object file. Object files are produced
by language processors such as compilers or assemblers. Because the
object files produced by these compilers are unique to the Intel
Itanium architecture, some aspects of linking modules on OpenVMS I64
systems are different from linking on Alpha and VAX systems. Overall,
however, the OpenVMS I64 Linker interface, as well as functional
capabilities (for example, symbol resolution, virtual memory
allocation, and image initialization), are similar to those on OpenVMS
Alpha and OpenVMS VAX systems.
5.2 Differences When Linking on OpenVMS I64 Systems
Although linking on OpenVMS I64 systems is similar to linking on OpenVMS Alpha systems, some differences exist. The following qualifiers and options are ignored by the OpenVMS I64 Linker:
The following qualifiers and options are not allowed by the OpenVMS I64 Linker:
The following keyword has a different meaning for the I64 Linker:
PER_PAGE---The per_page keyword in /DEMAND_ZERO=PER_PAGE directs the linker to compress trailing zeros for each segment (that is, demand zero compression of zeros on trailing pages).
The following list contains new qualifiers that are supported by the OpenVMS I64 Linker:
The following sections describe these qualifiers and options.
5.2.1 Specifying Based Clusters Varies by OpenVMS Platform
Specifying a base address in the CLUSTER option is permitted only on
Alpha and VAX systems. On Alpha systems, only main images are allowed
to contain based clusters. VAX systems are more flexible; even
shareable images are allowed to contain based clusters. On I64 systems,
specifying a base address in a CLUSTER option is illegal for all image
types.
5.2.2 Handling of Initialized Overlaid Program Sections on OpenVMS I64 Systems
Refer to Section 3.8 for a related release note. |
On Alpha and VAX systems, initializations can be done to portions of an overlaid program section. Subsequent initializations to the same portions overwrite initializations from previous modules. The last initialization performed on any byte is used as the final one of that byte for the image being linked.
On I64 systems, the ELF object language currently does not implement the feature of the Alpha and VAX object language which allows the initialization of portions of the program sections. When an initialization is made, the entire section is initialized. Subsequent initializations of this section can be performed only if the nonzero portions match in value. This is called a compatible initialization.
A future release of the I64 Linker will only accept initializations if the initialized portion of the sections match. A section initialized with zeros will no longer match any other section with a nonzero initial value. The initialization in three.c, as shown in Example 5-1, will no longer be compatible with the initializations in sample initializations one.c and two.c. |
For example, the following condition produces different results on OpenVMS I64 systems than on Alpha and VAX systems:
Two modules, each declaring two longwords in the same program section, are overlaid. The first module initializes the first longword in the program section with nonzero values. Similarly, the second module initializes the second longword in the program section with nonzero values.
On Alpha and VAX systems, the linker can produce an image section with the first and second longwords initialized. The Alpha and VAX object languages give the linker the section size and the Text Information Relocation (TIR) commands to initialize each longword.
Because there are no TIR commands in ELF on I64 systems, the linker neither performs nor knows about initializations within a section. Rather, the linker receives entire sections from the compilers that are already initialized. The linker reads all the applicable module initializations to the section and checks for compatible initializations. Any two initializations are compatible if they are identical in their nonzero values. If they are not compatible, the linker issues the following error message:
%ILINK-E-INVOVRINI, incompatible multiple initializations for overlaid section section: <section name> module: <module name for first overlaid section> file: <file name for first overlaid section> module: <module name for second overlaid section> file: <file name for second overlaid section> |
In this message, the linker lists the first module, which contributes a nonzero initialization, and the first module with an incompatible initialization. Note that this is not a full list of all incompatible initializations; it is simply the first one that the linker encounters.
In the Program Section Synopsis of the linker map, each module with a nonzero initialization is flagged as Initializing Contribution. Use this information to identify and resolve all the incompatible initializations.
Example 5-1 shows the additional information in the map file shown in Example 5-2.
Example 5-1 Additional information |
---|
$ cre one.c int common_data[]={0,0,47,11}; void main (void) {return;} [Ctrl/Z] $ cc /extern=common one $ cre two.c int common_data[]={0,0,47,11}; [Ctrl/Z] $ cc /extern=common two $ cre three.c int common_data[]={0,0,0,0,0,0,0,0}; [Ctrl/Z] $ cc /extern=common three $ link/map one,two,three $ |
Example 5-2 shows the program section synopsis of the linker map for Example 5-1. Note that the Align and Attributes fields normally continue after the Length field but were modified to fit on the page.
Example 5-2 Linker Map Showing Program Section Synopsis |
---|
+--------------------------+ ! Program Section Synopsis ! +--------------------------+ Psect Name Module/Image Base End Length ---------- ------------ ---- --- ------ COMMON_DATA 00010000 0001001F 00000020 ( 32.) ONE 00010000 0001000F 00000010 ( 16.) TWO 00010000 0001000F 00000010 ( 16.) THREE 00010000 0001001F 00000020 ( 32.) Align Attributes ----- ------------ OCTA 4 OVR,REL,GBL,NOSHR,NOEXE, WRT,NOVEC, MOD OCTA 4 Initializing Contribution OCTA 4 Initializing Contribution OCTA 4 |
Example 5-3 shows an incompatible initialization and the resulting linker message.
Example 5-3 Incompatible Initialization |
---|
$ cre four.c int common_data[]={0,0,47,11,0,0,17,4}; [Ctrl/Z] $ cc /extern=common four $ link one,two,three,four %ILINK-E-INVOVRINI, incompatible multiple initializations for overlaid section section: COMMON_DATA module: ONE file: DISK$USER:[JOE]ONE.OBJ;1 module: FOUR file: DISK$USER:[JOE]FOUR.OBJ;1 |
Example 5-1 and Example 5-3 were compiled with the extern common model. For OpenVMS, the default extern model is the relaxed reference/definition (ref/def) model. In that model, only one explicit initialization is allowed. That is, even identical initializations result in a linker warning message (that is, the multiply defined message). Example 5-4 uses the same source files as the previous examples.
Example 5-4 Initialization Example on OpenVMS |
---|
$ cc one $ cc two $ cc three $ link one, two, three %ILINK-W-MULDEF, symbol COMMON_DATA multiply defined module: TWO file: DISK$USER:[JOE]TWO.OBJ;2 %ILINK-W-MULDEF, symbol COMMON_DATA multiply defined module: THREE file: DISK$USER:[JOE]THREE.OBJ;2 |
Example 5-5 shows an additional incompatible initialization. In this example, the linker shows both the INVOVRINI error and the MULDEF warning messages. For such a module, the INVOVRINI message precedes the MULDEF message.
Example 5-5 Additional Incompatible Initialization |
---|
$ cc four $ link one,two,three,four %ILINK-W-MULDEF, symbol COMMON_DATA multiply defined module: TWO file: DISK$USER:[JOE]TWO.OBJ;2 %ILINK-W-MULDEF, symbol COMMON_DATA multiply defined module: THREE file: DISK$USER:[JOE]THREE.OBJ;2 %ILINK-E-INVOVRINI, incompatible multiple initializations for overlaid section section: COMMON_DATA module: ONE file: DISK$USER:[JOE]ONE.OBJ;2 module: FOUR file: DISK$USER:[JOE]FOUR.OBJ;2 %ILINK-W-MULDEF, symbol COMMON_DATA multiply defined module: FOUR file: DISK$USER:[JOE]FOUR.OBJ;2 |
The I64 Linker behaves differently when relaxed reference/definition (ref/def) symbols (also known as "ELF common symbols" symbols on I64) are linked selectively against an image that contains a definition for the same symbol. On Alpha, the linker incorrectly takes the definition from the relaxed ref/def symbol in your module. The I64 Linker takes the definition from the shareable image.
For example, a shareable image is linked from the following module (my_int.c):
#include ints uint64 my_int ; $ cc/extern=relaxed my_int.c $ link/map/full/cross/share my_int,sys$input/opt symbol_vector=(my_int=data) |
Next, another C module (x.c) is compiled and linked selectively against my_int.exe . Note that the object is compiled with the relaxed extern model. The result is a conditional ref/def generated for my_int .
#include ints uint64 my_int; main() { my_int = 1; return; } $ cc/extern=relaxed x.c $ link/map/full/cross sys$input/opt cluster=myclu,,,x.obj my_int.exe/share/select |
The Alpha Linker incorrectly defines my_int from the module's conditional definition of my_int . The I64 Linker correctly retrieves the definition from my_int.exe .
The Alpha Linker is not being changed to preserve those cases that rely
upon this behavior. The I64 Linker performs the selection operation
correctly.
5.2.4 Flags Set When /TRACEBACK, /DEBUG, and /DSF Are Used
When the /TRACEBACK, /DEBUG, and /DSF linker debug qualifiers are specified, the flags listed in the following table are set for the image activator. These flags are set in the dynamic segment under the tag value DT_VMS_LNKFLAGS. Note that the meanings of the /TRACEBACK, /DEBUG, and /DSF qualifiers have not changed for I64, but the meanings and the names of the flags have changed.
Flag | Meaning |
---|---|
VMS_LF_IMGSTA | Image execution is to begin by calling SYS$IMGSTA. The image activator includes SYS$IMGSTA as the first address in the (traditional VMS style) transfer vector. |
VMS_LF_CALL_DEBUG | SYS$IMGSTA checks this flag to determine whether it calls the debugger. |
VMS_LF_TBK_IN_IMG | Traceback records are present in the image file. |
VMS_LF_DBG_IN_IMG | Debug information is present in the image file. |
VMS_LF_TBK_IN_DSF | Traceback records are present in the DSF file. |
VMS_LF_DBG_IN_DSF | Debug information is present in the DSF file. |
The flags are set according to the following table:
Qualifier | IMGSTA | CALL_ DEBUG |
TBK_IN _IMG |
DBG_IN _IMG |
TBK_IN _DSF |
DBG_IN _DSF |
---|---|---|---|---|---|---|
/NoTrace/NoDebug
/NoDSF |
0 | 0 | 0 | 0 | 0 | 0 |
/Trace/NoDebug
/NoDSF |
1 | 0 | 1 | 0 | 0 | 0 |
/NoTrace
/Debug
/NoDSF |
1 | 1 | 1 | 1 | 0 | 0 |
/Trace
/Debug
/NoDSF |
1 | 1 | 1 | 1 | 0 | 0 |
/NoTrace /NoDebug
/DSF |
0 | 0 | 0 | 0 | 1 | 1 |
/Trace /NoDebug
/DSF |
1 | 0 | 1 | 0 | 1 | 1 |
/NoTrace
/Debug
/DSF |
1 | 1 | 1 | 0 | 1 | 1 |
/Trace /Debug
/DSF |
1 | 1 | 1 | 0 | 1 | 1 |
The following table indicates where global symbol definitions are written during a link operation that uses the debugging qualifiers:
Qualifier | Global Symbols in Image | Global Symbols in DSF File |
---|---|---|
/NoTrace/NoDebug
/NoDSF |
0 | 0 |
/Trace /NoDebug
/NoDSF |
0 | 0 |
/NoTrace
/Debug
/NoDSF |
1 | 0 |
/Trace /Debug
/NoDSF |
1 | 0 |
/NoTrace /NoDebug
/DSF |
0 | 1 |
/Trace /NoDebug
/DSF |
0 | 1 |
/NoTrace
/Debug
/DSF |
0 | 1 |
/Trace
/Debug
/DSF |
0 | 1 |
The following sections describe aspects of linking images on I64 systems that are unique to the platform. Topics include:
To determine consistent use of the general registers across a call, some HP compilers produce call linkage information that allows the linker to verify the linkage of a caller to the linkage of the called routine. Linkage information is supplied for only Intel Itanium general registers 1 through 31.
The following example shows a warning message that displays when the linker detects a linkage conflict:
%ILINK-W-LNKGERR, linkage to routine X is not compatible with linkage of caller calling module: MOD_SRC file: DISK:[DIR]SOURCE.OBJ;1 target module: MOD_TARG file: DISK:[DIR]TARGET.OBJ;1 source type of JSB to target type of CALL register AI not provided (needed at target) register GP not provided (needed at target) IA64 register R19 (Alpha R21) -- call=PRESERVE, target=VOLATILE |
Following the display of the source and target information are messages that indicate the nature of the conflict or conflicts that caused the warning message to be displayed. If a caller does not provide argument information in the argument information register (AI) when the target routine requires the AI, the linker generates a message similar to the one in this example.
In addition to missing required information, inconsistent or incompatible use of the general registers can also cause a linkage conflict. The linkage information contains the following register policies for the general registers:
The register policies of a standard linkage call are as follows:
Intel Itanium Register | Policy |
---|---|
R2 | Volatile |
R3 | Scratch |
R4---R7 | Preserve |
R8---R9 | Output |
R10---R11 | Scratch |
R12---R18 | Volatile |
R19---R24 | Scratch |
R26---R31 | Scratch |
A standard procedure call uses the CALL mechanism and provides the Global Pointer (GP) value and the AI register filled with the argument information.
The following table indicates compatible policies between the caller's register policies (row heading) and the target routine's register policies (column heading):
Caller | Target | |||
---|---|---|---|---|
Volatile | Scratch | Output | Preserve | |
Volatile | X | |||
Scratch | X | X | ||
Output | X | X | ||
Preserve | X |
In the following sample message, Intel Itanium register R19 has a caller register policy of Preserve but a target routine register policy of Volatile.
IA64 register R19 (Alpha R21) - call=PRESERVE, target=VOLATILE |
Based on the preceding table, R19 is not compatible between the caller and the target routines.
Additionally, the calling mechanism between the routines is not compatible. This occurs because the caller is performing a JumptoSuBroutine (JSB) to the target routine when the target routine is expecting a CALL mechanism to be used.
Certain Intel Itanium registers must be defined to have specific policies. If these registers do not contain the correct policies, the linker issues a warning indicating that either the target linkage is invalid (1) or the caller linkage is invalid (2):
(1) %ILINK-W-INVLNKG, invalid target linkage for symbol INV_LNKG (2) %ILINK-W-INVRLNKG, invalid call linkage for symbol INV_LNKG |
The following table lists the Intel Itanium general registers that have specific policies:
Intel Itanium Register | Policy |
---|---|
R2 | Volatile |
R12---R18 | Volatile |
Explanation of Potential Conflicts that Result in Linkage Messages
Some conflicts arise when performing cross-language calls (for example, IMACRO to BLISS), where the calling standards for OpenVMS differ between Alpha and I64 systems. There are fewer registers preserved by default with the Intel Itanium version of the calling standard. Because of this, there may be assumptions about registers that are saved at the target routine and registers that are not saved.
Linkage statement mismatches also cause the linker to display warning messages. For example, if a calling routine is expecting register R12--R15 (Alpha register numbers) to be preserved but the target does not preserve them, the linker lists registers R20, R21, R30, and R31 as having a linkage problem but includes the Alpha register numbers in parentheses.
Additionally, a problem can occur when registers that are not properly declared for the function they are serving, for example, declaring registers to return values as NOPRESERVE rather than OUTPUT.
To avert these potential conflicts, examine the declaration and
definition linkages for all cases that the linker indicates, and
correct these problems to ensure a clean link operation. Because the
linker considers these conflicts as warnings, the completion code
status of the image is not set to SUCCESS. For a shareable image, this
means that images linked against a shareable image with linkage issues
receive a completion status other than SUCCESS.
5.3.2 Considerations for Images Compiled with Reduced Floating--Point Model
On OpenVMS I64 systems, images using a reduced floating-point model run
more quickly during interrupts because only a reduced number of
floating-point registers need to be saved and restored. Note that some
integer arithmetic is done using floating-point registers. The
resulting image can be run in a reduced floating-point mode only if all
object modules that contribute to the image have been compiled with the
reduced floating-point model. The Object and Image Synopsis section of
the linker map file indicates whether the modules have the reduced
floating-point model.
5.3.3 Considerations for Linking with ELF Groups and UNIX-Style Weak Symbols
The Intel C++ compiler introduced the use of Executable and Linking Format (ELF) Groups (also known as COMDATs) and UNIX-style weak symbols that the linker (and the Librarian) must correctly handle.
Background
ELF groups in object modules can be seen as tentative code and data contributions with definitions for procedures and variables. The C++ compiler makes use of this feature for C++ templates. The compiler simply generates code and data as a group. In such an environment, multiple object modules have multiple identical contributions with the same code and data. For the image, the linker selects one contribution for each group. The result of linking multiple object modules with multiple identical groups is one instance of code and data per group in the image.
An ELF group has a name, also called its group signature. Groups are considered identical if they have the same name. Symbols can belong to a group; they are called group symbols.
Understanding UNIX-style Weak Symbols, Definitions, and
References
Group symbols can be used as definitions or references. However, UNIX-style weak definitions differ from the VMS-style weak definitions in that there can be multiple UNIX-style weak definitions. UNIX-style weak references are similar to Alpha and VAX weak references in that when they are left unresolved, they do not result in an error or warning message. In ELF, the weak references and definitions of the Alpha and VAX object language are referred to as VMS-style weak symbols.
The linker takes the first occurrence of the specific group, along with that group's normal and UNIX-style weak symbols, as the defining instance of that group unless it is overridden by a shareable image symbol. All subsequent definitions of these UNIX-style weak symbols from other occurrences of that group are then seen as references to the selected instance. UNIX-style weak symbols are tentative by design. If present and there is no occurrence of a strong definition elsewhere among the other modules or images of the link, the first encountered UNIX-style weak version of the symbol is regarded as the defining instance.
A strong definition overwrites a UNIX-style weak definition, which becomes a reference. The other UNIX-style weak symbols of the same group become references. This does not create a problem because all symbols, including strong definitions, are generated by the compiler or defined in the run-time environment. By understanding this mechanism, you can better understand the linker map. UNIX-style weak symbols defined in a group can be referenced by nonweak symbols outside a group.
Reading the Linker Map
The cross-reference list in the map has a UNIX-style weak tag in front of UNIX-style weak definitions and references. Typically, the UNIX-style weak tagged definitions are the result of selecting a group from an object module. The UNIX-style weak tagged references are usually a result of a secondary occurrence of the same group. An untagged definition with a UNIX-style weak tagged reference is usually a result of a strong definition overwriting a group symbol from an object module. The tagging in the cross reference table enables the user to see which module was selected as owning the defining instance of the symbol.
The cross-reference does not list the group signatures (that is, their names). The Analyze utility can be used to find all symbols that belong to a group. Additionally, you can ask the linker for a list of all groups and their defining modules and files by using the /MAP/FULL=GROUP_SECTIONS qualifiers.
Considerations for Shareable Image Linking
User-written templates can be linked as a shareable image. Symbols that are exported (universalized) by a shareable image are always strong definitions. With the precedence of strong definitions over UNIX-style weak ones, the code and data of the shareable image is the linker selected contribution. For OpenVMS I64, the grouping of symbols is preserved in the shareable image as well. In this case, where all the symbols are strong definitions, a group from a shareable image always takes precedence over all identical groups in object modules.
There is one difference between groups in a shareable image and groups in an object module. If the same group is seen in another shareable image, the linker issues an error message and does not write an image file.
A user error results if code and data from the first occurrence of the group is used in all object modules within the defining shareable image, but code and data from the other occurrences is used within the other defining shareable images. Therefore the linker does not produce an image.
When linking a shareable image, make sure that all symbols of all groups making up the template implementation are exported. Otherwise, redundant code and data might appear in the resulting image or, as mentioned previously, wrong code or data might be used.
The original OpenVMS-style weak symbols continue to be processed in the
same manner as in previous releases.
5.4 New Linker Qualifiers for OpenVMS I64
Refer to Section 3.8 for a related release note. |
Some new linker qualifiers have been added to support linking on
OpenVMS I64 systems. This section describes these qualifiers and
associated keywords.
5.4.1 New /BASE_ADDRESS Qualifier
The /BASE_ADDRESS qualifier assigns a virtual address for images that are not activated by the OpenVMS image activator, such as images used in the boot process. The base address is the starting address that you want the linker to assign to an executable image. The OpenVMS image activator is free to ignore any linker-assigned starting address. This qualifier is used primarily by system developers.
The /BASE_ADDRESS qualifier does not replace the base-address specifier
in the CLUSTER=[base-address] option, which is illegal on
OpenVMS I64. (Refer to Section 5.2.1.)
5.4.2 New /SEGMENT_ATTRIBUTE Qualifier
The /SEGMENT_ATTRIBUTE qualifier sets certain attributes for segments. It uses the following syntax:
/SEGMENT_ATTRIBUTE=(segment_attribute [, ...]) |
The OpenVMS I64 Linker accepts DYNAMIC=address_region, SHORT=WRITE, CODE=address_region, and SYMBOL_VECTOR=[NO]SHORT as segment attributes, where an address region can be specified with keywords P0 and P2.
By default, the linker puts the dynamic segment, which contains information for the image activator, into P2 space. For images not activated by the OpenVMS image activator, DYNAMIC=P0 forces the linker to put the dynamic segment into P0 space. This qualifier is primarily used by system developers.
The SHORT_DATA=WRITE keyword allows you to combine the read-only and the read-write short data segments into a single segment, reclaiming up to 65,535 bytes of unused, read-only space (default value for /BPAGE). When setting SHORT_DATA to WRITE, your program may accidentally write to formerly read-only data. Therefore, this qualifier is recommended only for users whose short data segment has reached the limit of 4 MB.
With the CODE=P2 keyword, the I64 Linker allows you to assign code segments to P2 space. When the image activator activates the image, the code segments will be placed in P2 space. If you use this keyword, be aware that all code addresses will be 64 bits wide. For example, your exception handlers should use only the 64-bit versions of the signal and mechanism arrays and should be prepared to handle a 64-bit PC.
By default, for shareable images, the linker stores the symbol vector
into the read-only short data segment. By specifying
SYMBOL_VECTOR=NOSHORT, the linker collects the symbol vector into a
read-only data segment of the default cluster. If the shareable image
has none, such a segment is created. This frees up the short data of
the symbol vector entries.
5.4.3 New /FP_MODE Qualifier
The OpenVMS I64 Linker determines the program's initial floating-point mode using the floating-point mode provided by the module that provides the main transfer address. The /FP_MODE qualifier sets an initial floating-point mode only if the module that provides the main transfer address does not provide an initial floating-point mode. The /FP_MODE qualifier does not override an initial floating-point mode provided by the main transfer module.
The OpenVMS I64 Linker accepts the following keywords to set the floating-point mode:
The OpenVMS I64 Linker accepts the following IEEE behavior keywords:
The OpenVMS I64 Linker also accepts a floating-point mode behavior
literal. For more information about the initial floating-point mode,
Refer to the HP OpenVMS Calling Standard.
5.4.4 New Linker Qualifiers: /EXPORT_SYMBOL_VECTOR and /PUBLISH_GLOBAL_SYMBOLS
The /EXPORT_SYMBOL_VECTOR and /PUBLISH_GLOBAL_SYMBOLS qualifiers were added to the linker to aid users who are creating shareable images but do not know which symbols to export through the SYMBOL_VECTOR option. For example, if you are porting an application from UNIX and are unfamiliar with the application, you might not know which symbols to export. Another scenario is that you are coding in C++ and you are not able to correlate the mangled name with the source code symbol you want to export.
Be aware that exporting all global symbols may have unintended consequences. Exporting all symbols is a normal practice for creating shared objects on UNIX systems. On OpenVMS systems, however, the mechanisms of linking and image activation are different. Therefore, employing a UNIX mechanism to create an OpenVMS shareable image may not work. Conflicts may arise when linking an application against multiple shareable images that were generated to export all global symbols. These shareable images may contain user- or compiler-generated symbols of the same name. When the linker tries to resolve a module's reference to one or more of these symbols, the link operation will fail if it finds definitions for a symbol in more than one shareable image. Even when you restrict symbol exporting to just a few select modules (or even one module), you may still encounter these conflicts. Although the /EXPORT_SYMBOL_VECTOR and /PUBLISH_GLOBAL_SYMBOLS qualifiers were created to assist you port open source software, these conflicts may create new problems over creating a symbol vector in the traditional way. For these reasons, both qualifiers will be withdrawn in a future release of the I64 Linker. |
The new /PUBLISH_GLOBAL_SYMBOLS qualifier marks an object file or library object module so that all its global symbols are exported in the file with symbol vector options generated by the linker. The new /EXPORT_SYMBOL_VECTOR qualifier writes to the output file a symbol vector option for each global symbol in modules marked with /PUBLISH_GLOBAL_SYMBOLS. When the /EXPORT_SYMBOL_VECTOR qualifier is present, only the options file is written; no image file is generated. You must complete the generated options file with the GSMATCH information before you use it in a future link operation.
Both qualifiers are accepted only if the /SHAREABLE qualifier is present. /EXPORT_SYMBOL_VECTOR is a command line only qualifier. The /PUBLISH_GLOBAL_SYMBOLS qualifier can be used from the command line and in options files. The linker issues a warning if you specify an /EXPORT_SYMBOL_VECTOR qualifier but do not specify a /PUBLISH_GLOBAL_SYMBOLS qualifier on the command line or in options files.
/EXPORT_SYMBOL_VECTOR=[file-spec]
The /EXPORT_SYMBOL_VECTOR qualifier instructs the I64 Linker to create an options file with symbol vector options that are filled in as directed by the /PUBLISH_GLOBAL_SYMBOLS qualifier, plus a template GSMATCH option.
Using the /EXPORT_SYMBOL_VECTOR qualifier inhibits image production.
If the /EXPORT_SYMBOL_VECTOR qualifier is present, input SYMBOL_VECTOR= option clauses are not allowed.
At least one /PUBLISH_GLOBAL_SYMBOLS qualifier must be on the command line or in an option.
The qualifier accepts a file specification that you want the linker to use as the name of the generated options file. If you do not specify a file type, the linker assumes a type of .OPT.
If you append the /EXPORT_SYMBOL_VECTOR qualifier to an input file specification, the linker creates an options file using the file name of the file to which the qualifier is appended.
After filling in the GSMATCH template option, use the generated options file in another link operation to create the shareable image file.
/PUBLISH_GLOBAL_SYMBOLS
The /PUBLISH_GLOBAL_SYMBOLS qualifier instructs the I64 linker to mark an object file, a library object module, or an object module library (that is, all modules extracted from the library) to have their global symbols exported via symbol vector clauses in the linker-generated options file.
The qualifier can be used only with the /SHAREABLE and /EXPORT_SYMBOL_VECTOR qualifiers.
The qualifier is compatible with the /INCLUDE and /SELECTIVE_SEARCH qualifiers. The qualifier can be used on the command line and in a linker options file.
If the qualifier is applied to an object file, all global symbols from all modules in that file are candidates to be exported as a symbol vector option.
If the qualifier is applied to an object file in combination with the /SELECTIVE_SEARCH qualifier, only referenced global symbols from all modules in that file are candidates to be exported as a symbol vector option.
If the qualifier is applied to an object library, all global symbols from all modules of the object library, which would be implicitly included in the image, are candidates to be exported as a symbol vector option.
If the qualifier is applied to an object library in combination with the /INCLUDE qualifier, all global symbols from the modules in the include list of the object library are candidates to be exported as a symbol vector option.
If the qualifier is applied to an object library built with the /SELECTIVE_SEARCH qualifier, only referenced global symbols from all modules of the object library, which would be included in the image, are candidates to be exported as a symbol vector option. (Refer to the HP OpenVMS Command Definition, Librarian, and Message Utilities Manual for how to insert modules in a library that can be searched selectively.)
If a global symbol is a tentative definition in several modules (most likely from a relaxed ref/def extern model), then the symbol is published if at least one of the tentatively defining modules is tagged with the /PUBLISH_GLOBAL_SYMBOLS qualifier. The same is true for UNIX-style weak symbol definitions in several modules. In both cases, however, encountering a module with a strong symbol definition overrides the tentative definition. The symbol's export disposition is determined by the presence or absence of the /PUBLISH_GLOBAL_SYMBOLS qualifier on the overriding module.
Examples
$ link/SHARE public/PUBLISH,implementation/EXPORT=public |
In this example, all the global symbols from the modules in PUBLIC.OBJ are exported as a symbol vector option to the file PUBLIC.OPT.
$ LINK/SHAREABLE api_table,implementation/PUBLISH/SELECTIVE/EXPORT=public |
In this example, only the global symbols from all the modules in IMPLEMENTATION.OBJ, which have been previously referenced are exported as a symbol vector option to the file PUBLIC.OPT.
$ LINK/SHAREABLE api_table,plib/LIBRARY/PUBLISH/EXPORT |
In this example, all the global symbols from all the modules of the library PLIB.OLB, which would be included in the shareable image, are exported as a symbol vector option to the file PLIB.OPT.
$ LINK/SHAREABLE plib/PUBLISH/INCLUDE=public/EXPORT |
In this example, all the global symbols from the module PUBLIC of the library PLIB.OLB are exported as a symbol vector option to the file PLIB.OPT.
$ LINK/SHAREABLE api_table, public/PUBLISH/SELECTIVE/EXPORT=public |
In this example, all the global symbols from all the modules in PUBLIC.OBJ that have been referenced after PUBLIC.OBJ has been processed are exported as a symbol vector option to the file PUBLIC.OPT. A similar example with /PUBLISH being used in an options file, follows:
$ link/SHAREABLE TT:/opt/EXPORT public/PUBLISH, implementation [Ctrl/Z] |
In this example, all the global symbols from the modules in PUBLIC.OBJ
are exported as a symbol vector option to TT: that is printed to the
terminal.
5.4.5 New GROUP_SECTIONS and SECTION_DETAILS keywords for the /FULL Qualifier
The OpenVMS I64 Linker takes two keywords to the /FULL qualifier that directs the linker to create a full image map.
/FULL [=(keyword [,...])] |
The OpenVMS I64 Linker accepts the following keywords to tailor the map (the default is /FULL=SECTION_DETAILS):
Keyword | Meaning |
---|---|
GROUP_SECTIONS | Directs the OpenVMS I64 Linker to list all processed groups (ELF COMDATs). |
SECTION_DETAILS | Directs the OpenVMS I64 Linker to list zero-length contributions in the Program Section Synopsis. |
ALL | The ALL keyword is equivalent to specifying both the GROUP_SECTIONS and SECTION_DETAILS keywords. |
The GROUP_SECTIONS keyword directs the linker to include, in the map file, all groups used in the link operation. Currently, only the C++ compiler takes advantage of groups. Using this keyword with other languages has no effect.
When /FULL=NOSECTION_DETAILS is specified, the OpenVMS I64 Linker
suppresses zero length contributions in the Program Section Synopsis of
the map. The /FULL qualifier defaults to /FULL=SECTION_DETAILS. A full
linker map on I64, Alpha, and VAX systems lists all the module
contributions in the Program Section Synopsis.
5.5 Extensions to Linker Options for OpenVMS I64
The following extensions to existing linker options have been added to
support linking on OpenVMS I64 systems.
5.5.1 New Alignments for the PSECT_ATTRIBUTE Option
The PSECT_ATTRIBUTE option now accepts integers 5, 6, 7, and 8 for the
alignment attribute. The integers represent the byte alignment
indicated as a power of 2. (For example, 6 represents a 2 ** 6
(64-byte) alignment.) The keyword HEXA (for hexadecimal word) was added
for 2 ** 5 (that is, a 32-byte or 16-word alignment).
5.6 New Ways to Use Existing Linker Qualifiers and Options
The following sections describe new ways to use existing linker qualifiers and options on I64 systems. Topics include:
On OpenVMS I64 systems, names issued by compilers can be mixed-case names. If you need to operate on mixed-case names in the options file, the linker provides the CASE_SENSITIVE option that allows you to specify names in mixed case, rather than using the default (all names in uppercase). For example, if you have a library include statement and the module names in the library are mixed-case, you can set the CASE_SENSITIVE option as follows to allow mixed-case names:
CASE_SENSITIVE=YES |
When the CASE_SENSITIVE option is set to YES, all characters to the right of the left-most equals sign in the option clause (that is, the option arguments) have their case preserved. These characters are taken as is, without modification: file names, module names, symbol names, and keywords. To restore the linker's default behavior of uppercasing the entire option line, specify the CASE_SENSITIVE option with the NO keyword. For example:
CASE_SENSITIVE=NO |
Note that the NO keyword must appear in uppercase or the linker will not recognize it.
For example, the following options file contains mixed-case names that you want to preserve by setting the linker to case-sensitive mode:
case=Yes My_Lib/library/include=(Add_Func, Sub_Func) symbol_vector=(Add_Func=PROCEDURE,PAGE_COUNT=DATA) case=NO |
When processed by the linker, the text appears as follows:
CASE=YES MY_LIB/LIBRARY/INCLUDE=(Add_Func,Sub_Func) SYMBOL_VECTOR=(Add_Func=PROCEDURE,PAGE_COUNT=DATA) CASE=NO |
The case of all names to the right of the first equal sign in each option remains the same.
To maintain Alpha and VAX behavior, HP recommends that you switch to
case sensitivity only when needed.
5.6.2 Conventions for Specifying Image Names
The following conventions describe the various names that apply to an image:
On Alpha systems, the image name specified with NAME= is used to identify self-references in the shareable image list. Self-references are calls from within the image to itself, by means of an alias name in the symbol vector.
On I64 systems, there is no entry in the shareable image list for the
current image. Self-references are referred to with a special index
value into the shareable image list (-1 in the DT_VMS_FIXUP_NEEDED
field) that results in a set of DT_NEEDED entries.
5.6.3 Using the PSECT_ATTRIBUTE Option to Specify Alignment
Do not specify a smaller section alignment with the PSECT_ATTRIBUTE option than the alignment that the compiler gave to the section.
If you specify a smaller alignment for section than any compiler-assigned alignment from all contributions to this section, the linker now issues a warning. For example:
$ link hi,sys$input/opt psect_attr=$literal$,byte %ILINK-W-CONFALGN, PSECT option alignment (1) less than compiler assigned (16); alignment ignored section: $LITERAL$ module: HI file: DISK$USER:[JOE]HI.OBJ;3 |
For the Alpha and VAX systems, the linker inappropriately aligns the program section on the boundary that you specified ("byte", in the preceding code example), and places all the contributions to that program section (from other modules you might have linked with "HI", in the example) on boundaries that were not specified by the compiler. The linker does not issue an error message.
The linker always aligns sections, at a minimum, on the boundary specified by the compiler.
The PSECT_ATTRIBUTE option aligns the section on the specified boundary
when it is equal to or greater than that which the compiler specified.
It does not align each individual contribution to the section; rather,
it aligns the total section. The PSECT_ATTRIBUTE option follows the
compiler's alignment specification when it aligns each individual
contribution.
5.6.4 Special Handling of Linker Nonexistent Files
When the RMS_RELATED_CONTEXT linker option is on (the default is RMS_RELATED_CONTEXT=YES) and a nonexistent file is specified in a list of files for the LINK command, the linker's call to LIB$FIND_FILE may take a long time to complete and the linker may appear to hang. Depending on the number of files being linked and the use of logical names in their specification, the linker may take hours to finish because LIB$FIND_FILE locates every combination of the missing file's prefix before displaying a "file not found" message. Note that you cannot terminate the linker process by pressing Ctrl/Y after the linker has called LIB$FIND_FILE.
To determine which file is missing, follow these steps:
RMS_RELATED_CONTEXT=NO |
For example, consider the following LINK command:
$ LINK DSK:[TEST]A.OBJ, B.OBJ |
If you want to specify this command with RMS_RELATED_CONTEXT=NO, specify SYS$INPUT:/OPTION and then enter full file specifications for the files to be linked:
$ LINK SYS$INPUT:/OPTION RMS_RELATED_CONTEXT=NO DSK:[TEST]A.OBJ, DSK:[TEST]B.OBJ [Ctrl/Z] |
The following example shows how the linker appears to hang when file DOES_NOT_EXIST.OBJ is included in the list and the RMS_RELATED_CONTEXT option is not specified (and, therefore, defaults to YES).
$ DEFINE DSKD$ WORK4:[TEST.LINKER.OBJ.] $ DEFINE RESD$ ROOT$, ROOT2$, ROOT3$, ROOT4$, ROOT5$, DISK_READ$:[SYS.] (1) $ DEFINE ROOT$ WORK4:[TEST.PUBLIC.TEST] $ DEFINE ROOT2$ WORK4:[TEST.LINKER.] $ DEFINE ROOT3$ WORK4:[TEST.UTIL32.] $ DEFINE ROOT4$ WORK4:[TEST.PUBLIC.] $ DEFINE ROOT5$ WORK4:[TEST.PUBLIC.TMP] $ LINK/MAP/FULL/CROSS/EXE=ALPHA.EXE RESD$:[TMPOBJ] A.OBJ,- _$ RESD$:[SRC]B.OBJ,C,DSKD$:[OBJ]D.OBJ,E,RESD$:[TMPSRC]F.OBJ,- _$ RESD$:[TEST]G.OBJ,RESD$:[SRC.OBJ]H,RESD$:[COM]DOES_NOT_EXIST.OBJ [Ctrl/T] NODE6::_FTA183: 15:49:46 LINK CPU=00:02:30.04 PF=5154 IO=254510 MEM=134 (2) [Ctrl/T] NODE6::_FTA183: 15:49:46 LINK CPU=00:02:30.05 PF=5154 IO=254513 MEM=134 [Ctrl/T] NODE6::_FTA183: 15:50:02 LINK CPU=00:02:38.27 PF=5154 IO=268246 MEM=134 [Ctrl/T] NODE6::_FTA183: 15:50:02 LINK CPU=00:02:38.28 PF=5154 IO=268253 MEM=134 [Ctrl/T] NODE6::_FTA183: 15:50:14 LINK CPU=00:02:44.70 PF=5154 IO=278883 MEM=134 |
As shown in the following example, using an options file to set RMS_RELATED_CONTEXT to NO causes the link operation to finish immediately when it encounters the missing file.
$ DEFINE DSKD$ WORK4:[TEST.LINKER.OBJ.] $ DEFINE RESD$ ROOT$, ROOT2$, ROOT3$, ROOT4$, ROOT5$, DISK_READ$:[SYS.] $ DEFINE ROOT$ WORK4:[TEST.PUBLIC.TEST.] $ DEFINE ROOT2$ WORK4:[TEST.LINKER.] $ DEFINE ROOT3$ WORK4:[TEST.UTIL32.] $ DEFINE ROOT4$ WORK4:[TEST.PUBLIC.] $ DEFINE ROOT5$ WORK4:[TEST.PUBLIC.TMP.] $ LINK/MAP/FULL/ CROSS /EXE=ALPHA.EXE SYS$INPUT:/OPTION RMS_RELATED_CONTEXT=NO RESD$:[TMPOBJ]A.OBJ,RESD$:[SRC]B.OBJ,RESD$:[SRC]C,DSKD$:[OBJ]D.OBJ DSKD$:[OBJ]E,RESD$:[TMPSRC]F.OBJ,RESD$:[TEST]G.OBJ RESD$:[SRC.OBJ]H,RESD$:[COM]DOES_NOT_EXIST.OBJ [Ctrl/Z] %LINK-F-OPENIN, error opening DISK_RESD$:[SYS.][COM]DOES_NOT_EXIST.OBJ; as input -RMS-E-FNF, file not found $ |
The linker map has been enhanced with new information for OpenVMS I64 Linker. The linker map is comprised of the following information, shown in the following sample map:
Callout descriptions of new and change portions of the linker map are provided after the example linker map.
Figure 5-1 Object and Image Synopsis and Cluster Synopsis
Figure 5-2 Image Segment Synopsis
Figure 5-3 Program Section Synopsis
Figure 5-4 Program Section Synopsis (Continued)
Figure 5-5 Symbol Cross Reference
Figure 5-8 Link Run Statistics
The following descriptions correspond to the callout numbers in the preceding linker map figures:
Module/Image File Ident Attributes Bytes ------------ ---- ----- ---------------- ----- NONE V1.0 Lkg 568 DISK1:[JOE]NONE.OBJ;1 NOFLOAT_CASE Lkg RFP 504 DISK1:[JOE]NOFLOAT.OBJ;1 DNORM_CASE Lkg Dnrm 504 DISK1:[JOE]DENORM_W.OBJ;1 FAST_CASE Lkg Fast 504 DISK1:[JOE]FAST_W.OBJ;1 NEPCT_CASE Lkg Inex 504 DISK1:[JOE]INEXACT_W.OBJ;1 SPCL_CASE Lkg Spcl 504 DISK1:[JOE]SPECIAL_W.OBJ;1 UNDER_CASE Lkg Undr 504 DISK1:[JOE]UNDERFLOW_W.OBJ;1 DG_FL_CASE Lkg VXfl 504 DISK1:[JOE]VAXFLOAT_W.OBJ;1 DECC$SHR V8.2-00 Lkg 0 RESD$:[SYSLIB]DECC$SHR.EXE;1 SYS$PUBLIC_VECTORS X-2 Sel Lkg 0 RESD$:[SYSLIB]SYS$PUBLIC_VECTORS.EXE;1 Key for Attributes +------------------------------------------+ ! Sel - Module was selectively searched ! ! Lkg - Contains call linkage information ! ! RFP - Conforms to the reduced FP model ! ! VXfl - VAX Float FP model ! ! Dnrm - Denormal IEEE FP model ! ! Fast - Fast IEEE FP model ! ! Inex - Inexact IEEE FP model ! ! Undr - Underflow-to-zero IEEE FP model ! ! Spcl - Special FP model ! +------------------------------------------+ |
00000000 GETJPI (U) 00050098 R-INTERNAL_GETJPI |
Performance of this link operation could be improved by increasing quotas Quota related to status return: %SYSTEM-SECTBLFUL, process or global section table is full 2688 extra file I/O operations performed due to current process quota(s) 36 performed on object files; 2652 performed on library files |
This chapter contains information about the OpenVMS Version 8.2--1 media kit, including:
This section describes where the OpenVMS I64 operating environment is located on the DVD and lists the names and locations of all products that ship on the OpenVMS I64 OE DVD.
To install the OpenVMS I64 operating environment, refer to the
HP OpenVMS Version 8.2--1 for Integrity Servers Upgrade and Installation Manual. In addition, before you install the OpenVMS I64
operating environment, review the release notes in this manual and in
the HP OpenVMS Version 8.2 Release Notes manual.
6.1.1 Directories on the OpenVMS I64 Operating Environment DVD
The top-level directories, documentation directories, and OpenVMS documentation file names for OpenVMS Software Product Descriptions (SPDs) are listed in Table 6-1.
Directory | File Name/Contents |
---|---|
[.000000] | I64 8.2--1 OS |
[.AVAILMAN_I640241] | Availablity Manager Version 2.4--1 |
[.VMSI18N_I640821] | C/C++ I18N |
[.CDSA_I64021] | CDSA Version 2.1 |
[.CSWS_JAVA_I64021] | CSWS_JAVA (aka Tomcat) Version 2.1 |
[.CSWS_PERL_I640111] | CSWS_PERL Version 1.1--1 |
[.CSWS_PHP_I640121] | CSWS_PHP Version 1.2.1 |
[.DCE_I64032] | DCE Version 3.2 |
[.DCPS_I64024A] | DCPS Version 2.4A |
[.DECNET_PHASE_IV_I640821] | DECnet Phase IV Version 8.2--1 |
[.DECNET_PLUS_I64_V0821]
includes FTAM, OSAK and VT |
DECnet-Plus Version 8.2--1 |
[.DWMOTIF_I64015] | DECwindows Motif Version 1.5 |
[.ENTERPRISE_DIR_I64054] | Enterprise Directory Version 5.4ECO1 |
[.JAVA_I640142] | Java tm Version 1.4.2--1 |
[.KERBEROS_I64021] | Kerberos Version 2.1 |
[.MGMTAGENTS_I64032] | Management Agents Version 3.2 |
[.NETBEANS_I64036] | NetBeans Version 3.6 |
[.PERL_I640561] | Perl Version 5.6.1 |
[.SWB_I64014] | Secure Web Browser Version 1.4 |
[.SWS_I640131] | Secure Web Server Version 1.3--1 |
[.SOAP_020] | SOAP Toolkit Version 2.0 |
[.SSL_I64012] | SSL Version 1.2 |
[.TCPIP_I64055] | TCP/IP Services for OpenVMS Version 5.5 |
[.TDC_I64021] | TDC (The Performance Data Collector) Version 2.1-XX |
[.UDDI_I64010] | UDDI4J Version 1.0 |
[.XML_I64020] | XML--J Version 2.0 |
[.XML_I64020] | XML--C Version 2.0 |
[.I640821.DOCUMENTATION | Product documentation in .PS and .TXT formats: |
Three OpenVMS Freeware Version 7.0 CDs are included in the OpenVMS Version 8.2--1 media kit. The Freeware CDs contain a variety of unsupported software tools and utilities, and OpenVMS ports of common open-source packages. These packages can be useful for a variety of technical, engineering, or educational purposes.
For information on each specific freeware package, refer to the appropriate FREEWARE_README.TXT file. To access the file, insert the appropriate CD into the CD drive and enter the following commands, as appropriate to the Freeware volume being mounted. Within the MOUNT commands shown, the ddcu: specification is the device name of the particular CD or DVD device present on your OpenVMS system.
$ MOUNT/OVERRIDE ddcu: $ TYPE ddcu: [FREEWARE_README.TXT |
Once the appropriate CD is mounted, you can view the disk contents and directory structure using standard DCL commands (such as the DIRECTORY command), or you can use one of the following commands to invoke the Freeware menu system for the appropriate volume:
$ @DISK$FREEWARE70_1:[FREEWARE]FREEWARE_MENU $ @DISK$FREEWARE70_2:[FREEWARE]FREEWARE_MENU $ @DISK$FREEWARE70_3:[FREEWARE]FREEWARE_MENU |
For package-specific licensing and related information, consult the individual packages.
Copies of these packages and packages on older Freeware distributions, submission information for future Freeware distributions, and any updated information for this Freeware distribution are all available at:
The Open Source Tools CD is a collection of Open Source tools ported to OpenVMS by OpenVMS engineering. These open source tools are provided as free software under the terms of the GNU Lesser General Public License. You can redistribute them and modify them under the terms of the GNU Lesser General Public License as published by the Free Software Foundation Version 2.1 of the License.
HP distributes this library in the hope that it will be useful; however, HP provides NO WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details, refer to the GNU Lesser General Public License, which is located in the GNV kit directory on the Open Source Tools CD.
The Open Source Tools CD contains the following ports:
The Open Source Tools CD also contains:
Table 6-2 lists the contents and directories on the OpenVMS Open Source Tools Version 3.0 CD.
Product | Directory |
---|---|
CD-Record Sources | [.CDRECORD_SOURCE] |
CDSA Sources | [.CDSA_SOURCE] |
Decompression (unzip) and other tools | [.000TOOLS] |
GnuPG | [.GNUPG] |
GNV for I64 Version 1.6--4 | [.GNV_I64] |
GTK+ | [.GTK] |
IAS (Intel Assembler Source) | [.IAS] |
Kerberos Sources | [.KERBEROS_SOURCE] |
libIDL | [.LIBIDL] |
SSL Sources | [.SSL_SOURCE] |
Stunnel | [.STUNNEL] |
The software contained on the OpenVMS I64 media belongs to HP. Use of the software is authorized only if you have a valid software license from HP for each of the products.
The License Management Facility (LMF) Product Authorization Key (PAK) allows you to access a software product. A PAK must be registered and loaded before you can install the associated software from this CD. To obtain PAKs, contact your HP support representative or your authorized reseller.
Licensing for OpenVMS I64 differs from licensing for OpenVMS Alpha in that the OpenVMS operating system and certain layered products are provided in operating environments: the Foundation Operating Environment (FOE); the Enterprise Operating Environment (EOE); and the Mission Critical Operating Environment (MCOE), which will be available soon. The EOE contains the full contents of the FOE plus additional layered products. The MCOE will contain the full contents of the EOE plus OpenVMS Clusters and Reliable Transaction Router (RTR).
You can purchase the FOE license and licenses for additional layered products, or you can choose the EOE or MCOE instead, depending on which layered products you want. For more information about the operating environments and their contents, refer to the HP Operating Environments for OpenVMS Industry Standard 64 Version 8.2--1 for Integrity Servers SPD at:
OpenVMS Version 8.2--1 documentation consists of two new manuals to supplement the current manuals, which were provided with OpenVMS Version 8.2. These new manuals provide the new information you need to install and use Version 8.2--1.
The following release documentation is included in the OpenVMS Version 8.2--1 media kit:
Not all books in a documentation set are revised for each release. Typically, each release contains a number of new and revised books, with the remainder of the set consisting of books from previous releases. For example, the OpenVMS Version 8.2 set includes several new and revised books, with the remaining titles being carryovers from previous releases. The books in each set are the most current versions available.
In addition, all the documentation is available from the HP OpenVMS Systems Documentation Web site:
Index | Contents |