HP OpenVMS Systems Documentation

Content starts here

HP OpenVMS Version 8.3--1H1
for Integrity Servers
New Features and Release Notes


Previous Contents

3.8.3 Maximum Number of Sections

For more than 65280 sections, the ELF format uses an extended numbering scheme, which was not implemented in the linker on OpenVMS I64 Version 8.3. As a result, the number of sections that a single input object module or shareable image can have was limited. Because the linker usually creates the shareable images with sections, this limit also applied when you created shareable images. In that case, ELF sections were used for exporting C++ templates or shared sections. That is, the maximum number of such interfaces in a shareable image had to be fewer than 65280.

In the OpenVMS Version 8.3-1H1 Linker, this restriction is removed. An input file, an object module or a shareable image can have more than 65280 sections.

3.8.4 Incorrect Creation Date of Shareable Images in the Map File

On OpenVMS I64 platforms, shareable images sometimes showed an incorrect creation date in the linker map. The incorrect date shown was usually 3686. This condition occurred when the linker processed the shareable image as an input file and then extracted the date field, which was then shown in the map. The image itself had the correct date that you can see from ANALYZE/IMAGE output.

This error is corrected in the OpenVMS Version 8.3-1H1 Linker.

3.8.5 Demangler Information Look Up Results in Linker Access Violation

In some cases, when the linker tried to look up demangler information in a shareable image that did not contain such information, the linker aborted with an access violoation.

This problem is corrected in the OpenVMS V8.3-1H1 Linker.

3.8.6 Incorrect Secondary Messages for the NOGLOSYM Error Message

For the NOGLOSYM error message, the OpenVMS Version 8.3 Linker printed the wrong relocation type and printed some information twice.

This problem is corrected in OpenVMS Version 8.3-1H1.

3.8.7 Incorrect Information for Undefined Symbols

For undefined symbols, a USEUNDEF operation sometimes incorrectly showed information twice for the same reference. The problem occurred when the compiler generated a pair of relocations (LTOFF22X/LDXMOV) for the reference to an undefined symbol.

This problem is corrected in OpenVMS Version 8.3-1H1.

3.8.8 Incorrect UNMAPFIL Error

If a non-ELF input file was encountered, the linker printed an INVLDHDR error message. After an INVLDHDR error, an incorrect UNMAPFIL error message was printed.

This problem is corrected in OpenVMS Version 8.3-1H1.

3.8.9 Max Ident Length Change for Shareable Images in Map

In the linker map, the linker printed up to 14 characters of the ident from object modules and shareable images. (The maximum length of an ident for an object module is not limited; the maximum length of an ident for a shareable images is 15.)

The Version 8.3-1H1 linker now prints up to 15 characters as the maximum of the ident for a shareable image.

3.8.10 Linkage Type Check for Shareable Images

Previously, the linker did not check the type and linkage for symbols from shareable images.

OpenVMS Version 8.3-1H1 Linker now performs this check.

3.8.11 Program Section Attribute ABS Ignored

On I64 systems, you cannot set the ABS attribute to a program section that contains labels to convert its offsets to constants. The linker prints the error message:


 %ILINK-E-ILLABSPSC, absolute psect <psect-name> has non-zero length (not
 allowed)

The OpenVMS 8.3-1H1 Linker ignores the ABS program sectoin attribute and prints the following informational message:


 %ILINK-I-PSCATTIGN, psect attribute ABS is not supported for OpenVMS ELF
 sections, attribute ignored

3.8.12 Linker ACCVIOs when FP_MODE Literal Missing From Command Line

In the Version 8.3, the I64 Linker encountered an access violation when the FP_MODE literal was missing on the the command line.

This problem is corrected in OpenVMS Version 8.3-1H1.

3.9 Debugger Utility for OpenVMS V8.3-1H1

The following sections describe release notes and corrected problems in the Debugger Utility for OpenVMS I64.

3.9.1 Routine Names in Debugger Expressions Differ on I64 and Alpha Systems

Routine names in debugger expressions have different meanings on I64 and Alpha systems.

On Alpha systems, the command EVALUATE/ADDRESS RTN-NAME evaluates to the address of the procedure descriptor:


DBG> EVALUATE/ADDRESS RTN-NAME

On I64 systems, instead of displaying the address of the official function descriptor, the debugger just displays the code address. For example, on Alpha systems, you can enter the following command and then set a breakpoint when a variable contains the address, FOO:


DBG> SET BREAK .PC WHEN (.SOME_VARIABLE EQLA FOO)

The breakpoint occurs when the variable contains the address of the procedure descriptor.

However, when you enter the same command on I64 systems, the breakpoint is never reached because, although the user variable might contain the address of the function descriptor for FOO, the "EQLA FOO" in the WHEN clause compares it to the code address for FOO. As a result, the user variable never contains the code address of FOO. Because the first quadword of an I64 function descriptor contains the code address, you can write it as:


DBG> SET BREAK .PC WHEN (..SOME_VARIABLE EQLA FOO)

Note

On I64 systems, you cannot copy the following line from your BLISS code:


IF .SOME_VARIABLE EQLA FOO THEN do-something;

3.9.2 Setting Modules with Mixed-Case Module Names in C and C++

When you compile a C or C++ program using /NAMES=AS_IS , current versions (V7.n and higher) of the C and C++ compilers generate mixed-case and lowercase module names.

On OpenVMS V8.3 on Integrity systems, to support C++ mixed-case module names, the SET MODULE command performs an exact match of the user-provided module name. On Alpha systems, only uppercase module names are matched.

In OpenVMS V8.3-1H1, the SET MODULE command supports user-provided mixed-case and lowercase module names on I64 and Alpha. If the initial SET MODULE attempt fails to find a module of that exact name, the debugger then places the user input into uppercase and retries the command.

3.9.3 Corrected Debugger Problems

The following problems and conditions have been fixed in this release for both Integrity and Alpha systems.

  • In previous releases, the debugger produced an Access Violation at initialization for an informational exception and no traceback information:


    %DEBUG-F-NOSRVSHR: fatal error during DBG$SU_INIT_CLIENT_COMM
    %SYSTEM-F-ACCVIO, access violation, reason mask=04, virtual
    

    The OpenVMS 8.3.1H1 debugger has been modified to continue initializing for an informational exception, signal unwind, and provide the traceback information for an error.
  • Previously, the debugger crashed if an image path was incorrectly specified. It did not provide a relevant error message. For example, if LIBRTL path appeared as $1$DKD600:[.]LIBRTL.EXE;1, the debugger gave an access violation when it tried to access LIBRTL. This condition has been fixed.
  • Previously, while searching for a DSF file, the debugger appended the logical name (if it existed) for an executable file with the extension .DSF. As a result, the DSF file and logical name file had the same name, and the search failed with a DSF file-not-found error. This condition has been fixed.

The following problems and conditions have been fixed in this release for Integrity systems.

  • Previously, the debugger received the shareable image information from the dynamic program segment. However, when an image was linked with /DSF, then the debugger looked at the .DSF file, not at the image file. Also, it expected the .DSF file to contain all of the information it needed, including sharable image names. Because the .DSF file contained no dynamic program segment, the information that the debugger required to perform shareable image fixups was missing. The debugger and linker have been enhanced in this release to handle this condition.
  • Previously, the debugger could not display function information for modules not compiled with /DEBUG, while the debugger could show the same information on Alpha. The debugger has been modified to read and process TRACE sections from an image and now displays the function information.
  • Previously, the Kept Debugger (DEBUG/KEEP) failed with an access violation for some CONNECT or CTRL/Y debug sequences. This condition has been fixed.
  • Previously, stepping in an image installed with the /SHARE qualifier results in SYSTEM-F-BREAK_ARCH errors. This condition has been fixed.
  • When using PTHREADS and executing the SET TASK command, the debugger sometimes reported a false warning message:


    %DEBUG-W-BADSTACK, WARNING: stack corrupted;
    session integrity not guaranteed
    

    Also, the SET TASK command did not properly set the scope. These conditions have been fixed.
  • The RERUN command in Kept Debugger failed, resulting in a crash. This condition has been fixed.
  • Applications translated from OpenVMS Alpha to OpenVMS I64 sometimes produce the following errors:


    %DEBUG-E-INTERR, debugger error in
    DBGOPSYS\DBG$GET_IMAGE_ADDRESS_RANGES:
    failed to read image LDRIMG$L_SEGCOUNT info or session corruption
    
    %DEBUG-F-INITERR, an error has occurred during debugger
    initialization, unable to continue this session.
    

    This problem has been fixed.

3.9.4 Language Conditions Fixed in this Release

The following language conditions have been fixed in this release.

  • ADA: The debugger hanged while building the DEBUG symbol table for a large ADA image. In addition, the debugger occasionally encountered an access violation when exiting from a program.
  • C++: When using the debugger to examine a wchar_t variable, the type information was shown as a longword logical instead of a wchar . Also, in order to examine wide strings, /wchar_t:XX was required. The debugger can now directly examine a wchar_t variable:


    DBG> EXAMINE wide_buffer
    
    TST\main\wide_buffer[0:31]:     'test data line 1................'
    
  • Pascal
    • The debugger would crash when attempting to deposit value in a Pascal enumerated array. Evaluations of set constant data types for Pascal failed with an access violation.
    • The EXAMINE/DEPOSIT command did not work properly with enumerated values.
    • SHOW SYMBOL/TYPE reported an incorrect range for dynamic subranges.
    • The debugger was unable to evaluate Pascal string and array constants.

3.10 Analyze Utility for OpenVMS

The following sections describe corrected problems in the Analyze Utility for OpenVMS.

3.10.1 Unwind Data Display Problem Corrected

In OpenVMS Version 8.3, the analyze utility (ANALYZE) showed unwind data twice: once as raw data and again as formatted data. If you selected the segment with unwind data (using the segment number or the ALL keyword), ANALYZE displayed the raw data. ANALYZE displayed only the formatted data, however, if you selected the dynamic segment using segment number along with the ALL or the DYNAMIC keyword.

This problem is corrected in OpenVMS Version 8.3-1H1. The formatted unwind data now appears with the segment.

To avoid formatting the same data twice, ANALYZE no longer shows the unwind information with the dynamic segment. To make the selecting of unwind data easier, ANALYZE allows the UNWIND keyword for the /SEGMENT qualifier.

For equivalent output as the former command for unwind information, /SEGMENT=DYNAMIC , use the /SEGMENT=(DYNAMIC,UNWIND) command. Note that if there are multiple segments with unwind data, the /SEGMENT=UNWIND command formats all of them.

3.10.2 Formatted Symbol Vector Correctly Shown in Data Segement

Previously, the symbol vector summary information did not indicate the segment in which the symbol vector resided. The symbol vector was formatted only in the dynamic segment.

This problem is fixed in OpenVMS Version 8.3-1H1. The formatted symbol vector now appears with the data segment in which it is contained. The formatted symbol vector is embedded in data and visible in a dump of the data.

To avoid formatting the same data twice, the symbol vector is no longer shown with the dynamic segment. To make formatting of the symbol vector easy, the SYMBOL_VECTOR keyword is allowed for the /SEGMENT qualifier. When you specify this keyword, the resulting output is only the formatted symbol vector. The surrounding data are not shown. To show and format all of the data, select the segment by number.

To get equivalent output for the former command /SEGMENT=DYNAMIC for symbol vectors, use the /SEGMENT=(DYNAMIC,SYMBOL_VECTOR) qualifier.

The summary information shows the name of the data segment that contains the symbol vector.

3.10.3 Transfer Array Now Formatted in Data Segment

Previously, if you selected the data segment that contained the transfer array (either by segment number or with the ALL keyword), the transfer array was not formatted. Information about the transfer array was shown only in the summary.

This problem is corrected in OpenVMS Version 8.3-1H1. The formatted tranfer array now appears in the data segment.

3.10.4 System Version Array Now Formatted in Dynamic Segment

System version data is in the dynamic segment. Previously, if you selected the dynamic segment (either by segment number, or with the ALL or DYNAMIC keyword), the system version array was not shown. Information about the system version array was only shown in the summary.

This problem is corrected in OpenVMS Version 8.3-1H1. The formatted system version array now appears in the dynamic segment.

3.10.5 Enhancements for the /SEGMENT Qualifier

Enhancements have been made to the /SEGMENT qualifier for dynamic segments. Analyze has been enhanced to accept keywords for the /SEGMENT=DYNAMIC qualifier to provide customized information. The keywords for selectable information are:

  • ALL---(Default) Formats all parts of the dynamic segment
  • TAGS---Formats the tag array
  • IMAGE_STRINGS---Formats strings of the specified image
  • RELOCATIONS---Formats the image relocations
  • FIXUPS---Formats the image fixups
  • SYSTEM_VERSION_ARRAY---Formats the system version array

The default, /SEGMENT=ALL, formats all of the image information.

Note that formatting using the TAGS keyword includes the names of the needed images, so you do not have to add IMAGE_STRINGS to print the names.

3.10.6 Support for Section Escaping Added

On OpenVMS V8.3, the Analyze utility did not complete when analyzing an object module with more than 65,280 sections. Instead, it looped when attempting to print the section header table.

This problem has been fixed in OpenVMS V8.3-1H1.

3.11 INSTALL Utility for OpenVMS (Installing Resident Images in S2 Space)

The INSTALL utility now supports installing code segments of resident images into 64-bit S2 address space. Not all code can run in a full 64-bit address space (P2 or S2). For example, the code must be prepared for 64-bit PCs when handling exceptions. Also, some compilers require the /POINTER_SIZE=64 command qualifier, when generating code, suitable for a 64-bit address space.

To avoid mapping unprepared code in S2 space, the INSTALL utility by default will continue to map the code segments in S0/S1 space. The INSTALL utility will map code segments of resident images to S2 if two conditions are met:

  • The developer explicitly confirmed that the code is 64-bit ready by using the /SEGMENT_ATTRIBUTE=CODE=P2 qualifier when linking the image.
  • There is enough pre-allocated space in the resident code region in the S2 space to map the code segments. The size of the region is determined by the system parameter GH_RES_CODE_S2 (number of pages). The default value is set to 0. That means that by default even 64-bit ready resident images have their code mapped in S0/S1 space.

3.12 Librarian Utility

The Librarian Utility now has the following enhancement.

3.12.1 Support for Section Escaping

Previously, object modules with more than 65,280 sections could not be added to an object library. The Librarian aborted with an error message:


$ LIBRARIAN/CREATE MYLIB 64K_SECTIONS
%LIBRAR-E-REPLACERR, error replacing USER$DISK:[JOE]64K_SECTIONS.OBJ;1
in USER$DISK:[JOE]MYLIB.OLB;1
$

This condition is corrected in OpenVMS Version 8.3-1H1. Support for section escaping has been added for OpenVMS Version 8.3-1H1.

3.13 InfoServer Utility and FDDI

Using the InfoServer utility on OpenVMS to boot a client over an FDDI network adapter is not supported.

3.14 New Qualifier for DCL Command SET PASSWORD

The DCL command SET PASSWORD now accepts the /PROMPT qualifier with two permitted values: /PROMPT=FIXED and /PROMPT=VARIABLE. If you use the SET PASSWORD command in a DCL command procedure, do not specify the /PROMPT=VARIABLE qualifier. If you do, it works as expected, but any failing status is only displayed and not returned to DCL.

3.15 INITIALIZE/ERASE=INIT Before Using Media

HP recommends that you issue the DCL command INITIALIZE/ERASE=INIT on storage media prior to using them for the first time. This eliminates any stale data that was left from previous use by another operating system or diagnostics.

An indication of such stale data is three questions marks (???) in the console command output, as shown in the following example:


Shell> ls fs1:\

Directory of: fs1:\

 00/00/07 19:16p     1,788,984,016 ???

 00/00/80 12:00a           0 ???

     2 File(s)  1,788,984,016 bytes

     0 Dir(s)

The problem will be corrected in a future release.

3.16 XML-C Product Zip File

The XML-C product for OpenVMS for Integrity servers is delivered as a ZIP file that contains a self-extracting executable file. The XML-C installation documentation describes how to install the product by using this executable file. To obtain the executable file, extract it from the ZIP file.

3.17 Using the OpenVMS e-Business and Integration Infrastructure Package

The OpenVMS e-Business and Integration Infrastructure Package for OpenVMS is contained on two CDs that are formatted so that they appear as a Files-11 file structure to an OpenVMS system and an ISO 9660 file structure to a Windows, Linux, or UNIX system.

Installation

The component installation kits and documentation are split across the two CDs. Component installation can be done only on an OpenVMS Alpha system from the specific CD designated in the top-level index.html file.

Documentation

For OpenVMS systems, partial component documentation is viewable based on which CD is mounted for use. Component documentation is available only for the components present on the specific CD.

For Windows, Linux, or UNIX systems, complete component documentation is viewable on both CDs.

3.18 Performance Data Collector for OpenVMS (TDC)

TDC_RT Version 2.2-107 is included in the OpenVMS Version 8.3--1H1 installation. An update to TDC Version 2.2-108 is now available from the TDC Web site at:


http://www.hp.com/products/openvms/tdc/

TDC Version 2.2-108 corrects several issues discovered in TDC_RT Version 2.2-107. It also enables collection of internet metrics in TCPware and MultiNet environments, adds additional metrics to several data records, and provides new programming features and sample code in the TDC Software Developers Kit.

3.19 C++ Compiler

C++ Version 7.2 for OpenVMS for Integrity servers predefines the macro __INITIAL_POINTER_SIZE to 0, unlike C++ Version 7.1 compiler, which leaves it undefined. This is an intentional change that makes C++ Version 7.2 consistent with the C compiler and provides support for pointer_size pragmas, while C++ Version 7.1 does not.

Note that this change can cause diagnostics to appear in code that compiled cleanly with certain declarations selected by system header files that declare pointer types. This effect is most likely to appear in applications that use starlet headers and that compile with __NEW_STARLET defined.

If you cannot modify the application source code to conform to the new declarations, add the command-line qualifier /UNDEF=__INITIAL_POINTER_SIZE to the CXX command line to prevent the C++ Version 7.2 compiler from predefining this macro and thus causing the system headers to provide the same declarations as with Version 7.1 of the compiler.

3.20 Building DCE IDL C++ Applications

Building DCE IDL C++ applications on CXX Version 7.2 and higher results in an undefined symbol linker warning. This is a known issue. To overcome this warning, contact HP Support Services to request any necessary patches.

3.21 CDSA Errors During Installation

You might see the following errors when upgrading to OpenVMS Version 8.3-1H1. You can safely ignore these errors because CDSA and Secure Delivery will still function properly and PCSI kits will install normally and securely.


CDSA-I-Init, CDSA has previously been initialized on this system.
 CDSA-I-Init, Re-initializing CDSA.

 CDSA-I-Init, Initializing CDSA
 MDS installed successfully.
 Module installed successfully.
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module: MDS Error (common-DL): 300A
  (Code #300A)!
 Module installed successfully.
 Module: MDS Error (common-DL): 300A
  (Code #300A)!
 CDSA-I-Init, CDSA Initialization complete  CDSA-I-Init, Initializing Secure Delivery.
 Install completed successfully.
 Module: MDS Error (Clean): 300A
  (Code #300A)!
 Module installed successfully.
 CDSA-I-Init, Secure Delivery Initialization complete


Previous Next Contents