|
Software Product Description
Software Product Description
PRODUCT NAME: |
HP C for OpenVMS |
|
|
|
SPD 25.38.39
May 2007
DESCRIPTION
This document addresses HP C Version 7.3 for OpenVMS Alpha, HP C
Version 7.3 for OpenVMS for Integrity Servers (I64), and HP C Version
6.4 for OpenVMS VAX.
HP C (formerly Compaq C) is a standard conforming implementation of the
C programming language with HP extensions. The HP C compiler runs under
the OpenVMS VAX, Alpha, and I64 Operating Systems and generates
optimized and position-independent code.
HP C is a native-mode language product, and is integrated into the
Common Language Environments. All OpenVMS system services are available
to programs written in HP C. HP C programs can invoke, as functions,
modules written in other languages.
HP C supports Record Management Services (RMS) for sequential file
organizations and associated access methods. HP C also supports stream
file-access methods common among many C implementations.
HP C provides extensive standard-conformance checking, as well as many
optional code-quality and portability diagnostics, and supports the
lint-like features of the HP Source Code Analyzer. The HP Source Code
Analyzer allows the programmer to check for consistent function usage
throughout a program environment. HP C also generates complete debug
and traceback records for use with OpenVMS Debug. Debug allows the C
programmer to set breakpoints, examine and modify the contents of user
variables, and selectively halt or continue program execution.
HP C on OpenVMS (Alpha and I64, not VAX) provides IEEE floating-point
support as defined by, and in conformance with, the IEEE 754 Standard.
Features
- Limited support for installing more than one version of HP C on the
same node, and allowing users to select which version to use on a
per-process basis (not on OpenVMS I64, which uses PCSI-based kits).
- Separate modes of compilation to support each of six C dialects:
- A strict ANSI89 mode that compiles according to the original ANSI C
standard (ANSI/ISO/IEC 9899:1990).
- For OpenVMS Alpha and OpenVMS I64, a strict C99 mode that compiles
nearly in accordance with the 1999 version of the C standard
(ANSI/ISO/IEC 9899:1999), except that the support is not complete and
has not been fully verified against conformance suites. This mode may
be useful as a preview of what will be considered conforming source
code under the new standard, but should not be relied upon for
production use until a future release of both HP C and the HP C
Run-Time Library for OpenVMS containing complete C99 support. For
OpenVMS VAX, this mode is not supported, and is treated as a synonym
for relaxed ANSI mode.
- A relaxed ANSI mode that compiles according to the latest standard
supported by the compiler, but also accepts those HP extensions that do
not directly conflict with the semantics of standard C.
- A VAX C mode that supports VAX C extensions
- A common mode that supports many common usage C constructs as
implemented on UNIX systems including Tru64 UNIX (also called "K&R"
C or "pcc" mode)
- A Microsoft compatibility mode that interprets source programs
according to certain language rules followed by the C compiler provided
with the Microsoft Visual C++ compiler product.
In addition, just the features specified by Addendum 1 to the ISO
C standard adopted by ISO in November of 1994 (digraphs and the
__STDC_VERSION__ predefined macro) can be added to each of these
dialects except for VAX C mode.
- Data types for numeric, nonnumeric, and systems programming:
- C99 Universal Character Names (UCNs) are accepted in identifiers,
string literals, and character constants (and their wide variations)
(Not OpenVMS VAX).
- HP C supports 8, 16, and 32-bit signed and unsigned integers. HP C
OpenVMS Alpha and OpenVMS I64 also supports 64-bit signed and unsigned
integers.
- HP C supports an 8-bit _Bool data type for C99.
- HP C supports 32-bit float and 64-bit double floating-point data
types. The VAX floating-point formats include D-float and G-float and
are user selectable.
- HP C OpenVMS Alpha and I64 also supports IEEE floating-point
formats in 32-bit single, 64-bit double, and 128-bit quad-precision
double-extended representations. The C language type "long double"
normally is represented in 128-bit quad precision IEEE format on these
platforms, although there is a compile-time option that allows the user
to specify that it should use the same representation as type "double"
(which is the format used on OpenVMS VAX).
- C99 constants for specific values of Infinity and NaN are supported
when using/float=ieee (Not OpenVMS VAX).
- HP C OpenVMS Alpha and OpenVMS I64 supports the C99 _Complex
keyword for specifying three types that represent values in the complex
plane, based on Cartesian coordinates of type float, double, or long
double, respectively, except that D_float representation is not
supported for _Complex types. Run-time library support for C99
mathematical functions operating on these types is available in OpenVMS
Alpha V7.3-1 and subsequent versions.
- HP C supports passing numeric constants by reference in function
calls.
- HP C supports the multibyte and wide-character types and features
of XPG4, with the locale support available in OpenVMS V6.4 and
subsequent versions.
- HP C OpenVMS Alpha and OpenVMS I64, on OpenVMS Version 7.0 and
later, supports user-controlled features to specify the use of 64-bit
pointers that allow applications to exploit the increased address space
capabilities of the Alpha and I64 architectures and the OpenVMS Alpha
Version 7.0 services. These features include command-line qualifiers,
#pragma directives, and run-time library specifications that allow the
programmer to allocate and access data at run time that is to be beyond
the range of addressing afforded by 32-bit pointers. By default,
programs compiled by earlier versions of the compiler or on earlier
versions of OpenVMS continue to behave as before, strictly within
32-bit address space. Explicit use of the new compiler features allow
such programs to be extended to exploit the extended address space with
minimal changes to the source code.
- Storage allocation using:
- Reserved words (globalref, globaldef, and globalvalue) for sharing
data among program modules
- Reserved words (readonly, noshare, and psect name specification)
for control of data attributes and data placement
- Reserved words (_align and _unaligned) for specifying the alignment
boundaries of data objects
- Pragmas to control extern models and structure member alignment and
base structure alignment
- Option for running only the preprocessor phase of compilation
- Option for generating include-file dependency information to aid in
construction of files for the HP Module Management System
- Pragmas to control compiler options
- The C99_Pragma operator, which effectively allows pragma directives
to be produced by macro expansion (not OpenVMS VAX).
- Compilation options allowing a choice between fast turnaround and
optimization across compilation units
- Option to generate a file of prototype-style function declarations
suitable for use in a header file from the function definitions (both
prototype-style and old-style) contained in a source file.
- Enhanced diagnostic message controls with the command-line
qualifier /WARNINGS, including the following features:
- specify whether a message is issued only once per compilation, or
at each occurrence
- specify severity of any message with a default severity of
information or warning
- control optional messages using a single numeric "importance level"
- control optional messages using functional groups
- Compiler-generated listing file including optional:
- Annotations that provide information about certain optimizations
that were performed or not performed (Alpha and I64 only)
- Source Code
- Include-file contents
- Machine code
- Macro expansion
- Compilation statistics
- Symbol table with attributes of source program identifiers
- Symbol cross reference, showing for each symbol the source lines
where it is defined or used, annotated with type of use
- Built-in functions allow access to a subset of VAX, Alpha, and I64
machine instructions. HP C OpenVMS Alpha inline-assembly code is also
supported giving access to all Alpha machine-code instructions and PAL
calls.
- Integration into the OpenVMS Common Language Environments:
- Generation of complete debug and traceback records for Debug support
- Conformance to the Calling Standard
- Access to the Common Run-Time Library for general purpose routines
and support of multi-language environments
- Access to the data management facilities of OpenVMS Record
Management Services (RMS) by direct calls to the Common Run-Time Library
- Support for providing error diagnostics to the HP
Language-Sensitive Editor and cross-reference information for the HP
Source Code Analyzer
- Support for Common Data Dictionary (CDD)
- HP C OpenVMS support for interaction with routines executing in
translated mode. On OpenVMS Alpha, native Alpha images can link against
and interoperate with images translated from OpenVMS VAX. On OpenVMS
I64, native I64 images can link against and interoperate with images
translated from OpenVMS Alpha (including Alpha images translated from
OpenVMS VAX).
- Extensive global and local optimizations of generated code for
increased performance under OpenVMS
- Extensive control over optimization behavior
- Interface to the curses screen-manipulation package
- Installation kit cooperates with HP C++.
Compatibility with Other C Implementations
HP C is a conforming hosted implementation of ANSI X3.159-1989
Programming Language C (ISO/IEC 9899:1990[1994]). Its VAXC, common C,
and Microsoft C compatibility modes provide many features to ease
porting from other environments, though they do not provide 100%
emulation of every feature of a particular version of the compilers
used in those environments. In addition, the relaxed ANSI mode accepts
all features from the currently-supported standard (C99 for OpenVMS
Alpha and OpenVMS I64, C89 for OpenVMS VAX) and also accepts a number
of features present in those special dialects that do not conflict with
the standard, as well as features from the GNU C compiler (gcc) that
are sometimes used in Open Source applications and header files on the
Linux platform (e.g. the __typeof__ operator).
While many programs written in C for other compilers can be
successfully recompiled under HP C, some incompatibilities among
implementations exist.
Run-Time Library for C Applications
With the exception of OpenVMS VAX Operating Systems prior to V6.1, the
complete HP C Run-Time Library that is needed for use with HP C is
distributed with the OpenVMS Operating Systems. The HP C Run-Time
Library provides routines to perform input/output, character and string
handling, mathematical computations, memory allocation, and emulation
of selected UNIX[R] features. These routines are provided both in
shared image and object module library form.
Run-time Library Redistribution
The HP C kit may include run-time library components in either
shareable image or object library form. HP grants the user a
nonexclusive royalty-free worldwide right to reproduce and distribute
these Run-Time Libraries ("the RTLs") provided that the user:
- distributes the RTLs only in conjunction with and as a part of the
user's software application product, which is designed to operate in
the OpenVMS environment;
- does not use HP's name, logo, or trademarks to market the user's
software application product;
- includes HP's copyright notice for HP C on one of the following:
- the user's product disk label
- each copy of the application
- the title or copyright page of the documentation for the software
application product
- agrees to indemnify, hold harmless, and defend HP from and against
any claims or lawsuits, including attorney's fees, that arise or result
from the use or distribution of the software application product.
Except as expressly provided herein, HP grants no implied or express
license under any of its patents, copyrights, trade secrets,
trademarks, or any license or other proprietary interests and rights.
For OpenVMS Alpha systems, the only RTL component that may be
redistributed is DECC$CRTL.OLB. Refer to the HP C V7.1 for OpenVMS
Alpha Release Notes for instructions on redistributing this RTL
component. For OpenVMS VAX systems, the only RTL components that may be
redistributed are DECC$CRTL.OLB and AACRT060.A. Refer to the HP C V6.4
for OpenVMS VAX Release Notes for instructions on redistributing these
RTL components.
HARDWARE REQUIREMENTS
Processors Supported: Any Integrity system capable of running
the OpenVMS Operating System Version 8.2-1 or higher, any Alpha system
capable of running the OpenVMS Alpha Operating System Version 7.3-2 or
higher, or any VAX capable of running the OpenVMS Operating System
Version 5.5-2 to 7.3.
Refer to the OpenVMS Operating System's Software Product Description
(SPD 82.35.xx or 25.01.xx) for details.
The following table shows disk space requirements for installation of
HP C for OpenVMS. These numbers reflect choosing all of the default
installation options. Separate entries are shown for also installing
the optional document sets in postscript, text, and html formats.
Disk Space Requirements (Block Cluster Size = 1):
|
HP C OpenVMS VAX
|
HP C OpenVMS Alpha, I64
|
For installation (without docs):
|
100,000 blks (50MB)
|
150,000 blks (75MB)
|
For installation (with docs):
|
180,000 blks (90MB)
|
250,000 blks (125MB)
|
For permanent use (without docs):
|
80,000 blks (40MB)
|
100,000 blks (50MB)
|
For permanent use (with docs):
|
120,000 blks (60MB)
|
160,000 blks (80MB)
|
These counts refer to the disk space required on the system disk. The
sizes are approximate; actual sizes may vary depending on the user's
system environment, configuration, and software options.
Memory Requirements for DECwindows Support:
The minimum supported memory for this application running in a
standalone DECwindows environment with both the client and server
executing on that same system is 8 Mbytes.
OPTIONAL HARDWARE On VAX systems,
only D_, F_, and G_Floating floating-point data types can be used in
programs written in HP C, which does not support the H_Floating type.
(HP C on Alpha and I64 systems supports IEEE floating point types in
addition to these VAX types). Floating-point-intensive applications
should be run on configurations with the appropriate hardware support
for the floating-point data types being used. For OpenVMS I64 in
particular, note that only the IEEE format has hardware support; the
VAX format floating-point types on OpenVMS I64systems are implemented
in software and incur significant software run-time emulation overhead.
Floating-point code that is performance-critical should always use the
IEEE format on OpenVMS I64. Consult the base operating system Software
Product Description (SPD) for the appropriate floating-point
accelerator or other floating-point hardware appropriate for your
configuration.
SOFTWARE REQUIREMENTS
- OpenVMS I64 Operating System V8.2-1 or higher
- OpenVMS Alpha Operating System V7.3-2 or higher
- OpenVMS VAX Operating System, V5.5-2 to V7.3
Note: The patch kit VMS821I_LIBOTS-V0100 is required when running this
compiler on OpenVMS Integrity 8.2-1 or when running applications on
OpenVMS Integrity 8.2-1 that are built with HP C V7.3 for OpenVMS
Integrity Servers. The bug fix contained in this OpenVMS Integrity
patch kit has already been incorporated into OpenVMS Integrity 8.3, so
the patch kit is not needed when running on OpenVMS Integrity 8.3 or
higher. This kit is available on the following patch download site:
http://www.itrc.hp.com/service/patch/mainPage.do
|
Once there, search on VMS821I_LIBOTS-V0100.
SOFTWARE LICENSING
A software license is required in order to use HP C software. For VAX
and Alpha platforms, HP C is offered with Concurrent Use, Personal Use
and Traditional 'capacity' licenses. For I64, it is offered with
Concurrent Use licenses. Version update licenses are not available for
the I64 platform. Rights to use future revisions of HP C are available
only through a Support Agreement or through a new license purchase. For
more information about OpenVMS license terms and policies, contact your
local HP sales office, or reference the Software Licensing site at:
<http://licensing.hp.com/swl/view.slm?page=index>
LICENSE MANAGEMENT FACILITY SUPPORT:
These layered products support the OpenVMS License Management Facility.
License units for Alpha and VAX HP C are allocated on a Capacity Use,
Personal and Concurrent Use basis. License units for I64 HP C are
allocated on Concurrent Use basis.
Each Personal Use license allows one identified individual to use the
layered product. Each Concurrent Use license allows any one individual
at a time to use the layered product.
For more information on the License Management Facility, refer to the
OpenVMS Operating System Software Product Description or the License
Management Facility manual of the OpenVMS Operating System
documentation set. For more information about HP's licensing terms and
policies, contact your local HP office.
CLUSTER ENVIRONMENT This layered
product is fully supported when installed on any valid and licensed
OpenVMS Cluster* configuration without restrictions. The HARDWARE
REQUIREMENTS section of this product's Software Product Description
detail any special hardware required by this product.
- OpenVMS Cluster configurations are fully described in the OpenVMS
Cluster Software Product Description (SPD 29.78.xx) and include CI,
Ethernet, and Mixed Interconnect configurations.
OPENVMS TAILORING CLASSES
The following OpenVMS classes are required for full functionality of
this layered product:
- OpenVMS Required Save Set
- Programming Support
- Utilities
For more information on OpenVMS classes and tailoring, refer to the
OpenVMS Operating System Software Product Description (SPD 82.35.xx)
OPTIONAL SOFTWARE
- HP DECset Release 12.7 for OpenVMS I64, Alpha, and VAX systems.
- Language-Sensitive Editor/Source Code Analyzer (LSE/SCA) for
OpenVMS Systems
- DIGITAL Test Manager (DTM) for OpenVMS Systems
- Performance and Coverage Analyzer (PCA) for OpenVMS Systems
- Code Management System (CMS) for OpenVMS Systems
- Module Management System (MMS) for OpenVMS Systems
For more information on HP DECset Release 12.7 for OpenVMS Alpha
and OpenVMS I64 Systems, refer to the Software Product Description (SPD
42.29.xx). For more information on HP DECset Release 12.7 for
OpenVMS VAX Systems, refer to the Software Product Description (SPD
27.07.xx).
- Oracle CDD Version 7.2 for OpenVMS I64, Version 7.0 and above for
OpenVMS Alpha, and Version 5.3 for OpenVMS VAX.
GROWTH CONSIDERATIONS
The minimum hardware and software requirements for any future version
of this product may be different from the requirements for the current
version.
DISTRIBUTION MEDIA
HP C OpenVMS VAX ONLY:
HP C for OpenVMS VAX is available on the OpenVMS VAX Software Layered
Products Library Package (QA--5G88A--H8). The library package includes
media and documentation on CD-ROM. Documentation kits
containing only the HP C for OpenVMS VAX product are available
separately.
HP C OpenVMS Alpha ONLY:
HP C for OpenVMS Alpha is available on the OpenVMS Alpha Software
Layered Products Library Package (QA--03XAA--H8). The library package
includes media and documentation on CD-ROM.
HP C OpenVMS I64 ONLY:
HP C for OpenVMS I64 is available on the Layered Products media within
the Operating Environment package. The Layered Products media includes
the product binaries and on-line documentation. An optional hardcopy
documentation kit is also offered.
ORDERING INFORMATION
Licenses
HP OpenVMS Integrity License1 |
HP C Concurrent Use License
|
BA348AC
2
|
1Update licenses not available; updates available through SW
Updates Service.
2This license may also be used with OpenVMS Alpha in a mixed
architecture cluster.
HP OpenVMS Alpha and VAX User Licenses |
Personal Use License
|
QL-015AA-2B
|
Personal Use Update License
|
QL-015AA-3B
|
Concurrent Use License
|
QL-015AA-3*
1
|
Concurrent Use Update License
|
QL-015AA-5*
1
|
1Asterisk denotes number of users: B=one user, C=5 users,
E=25 users, F=50 users
HP OpenVMS Alpha and VAX Traditiona/Capacity Licenses |
Alpha Traditional License
|
QL-MUPA*-AA
1
|
Alpha Traditional Update License
|
QL-MUPA*-RA
1
|
VAX Traditional License
|
QL-015A*-AA
2
|
VAX Traditional Update License
|
QL-015A*-RA
2
|
1Asterisk denotes system tier. E=workgroup tier,
G=departmental tier, Q=enterprise tier.
2Asterisk denotes system tier. B=workgroup tier,
2=departmental tier, 5=enterprise tier.
Media and Online Documentation
Product binary kits and online documentation are delivered on
consolidated media libraries. Delivery model varies by platform.
HP OpenVMS Integrity Media and Online Documentation1 |
Foundation Operating Environment
|
BA322AA#AJR
|
Enterprise Operating Environment
|
BA323AA#AJR
|
Mission Critical Operating Environment
|
BA324AA#AJR
|
1Product ships on Layered Products Library media included in
all Operating Environment media kits, available with initial OpenVMS OE
order.
HP OpenVMS Alpha Media and Online Documentation |
Software Layered Products Library Package
1
|
QA-03XAA-H8
|
Software Layered Products and Operating System Library Package
1
|
QA-5G98A-H8
|
1Quarterly Software Updates Service is available.
HP OpenVMS VAX Media and Online Documentation |
Software Layered Products Library Package
1
|
QA-5G88A-H8
|
Software Layered Products and Operating System Library Package
1
|
QA-YL48A-H8
|
1Quarterly Software Updates Service is available.
HP OpenVMS Integrity SW Update1 |
HP C VMS I64 Media
|
BA48AA
|
1For the OpenVMS Integrity platform, media updates are
ordered by adding SW Updates Service to individual products. The above
media product number must be pulled into an order if SW Updates Service
is planned.
Hardcopy Documentation
A hardcopy documentation set can be ordered separately. The
documentation set varies by platform.
HP C Hardcopy Documentation |
For OpenVMS Integrity
|
BA348MN
|
For OpenVMS Alpha
|
QA-MU7AA-GZ
|
For OpenVMS VAX
|
QA-015AA-GZ
|
NOTE: If you are adding a layered product to an existing
OpenVMS Integrity system and do not have the latest software revision
on site, please contact your local Sales Rep to request a Special Media
kit.
|