Hewlett-Packard has a long record of providing HP-UX compatibility. This
protects your investment and allows you to easily upgrade your systems.
HP has always recognized that HP-UX compatibility is an important
feature that HP customers expect.
Compatibility requirements span across HP-UX products to third
party products as well. All third party products (and products the
third party products call) are equally important components in the
complete customer environment. Customer solutions often have complex,
multiple chains of dependent applications spanning the entire range
of HP-UX products as well as third party products. One broken link
in the chain of dependencies may result in an application that no
longer works. The unbroken string of compatibility support on HP-UX
is one of the biggest and best benefits provided by HP.
HP-UX supports forward compatibility from 11.0 to 11i. This
chapter will describe what this means for executable applications,
object files, source files, data, and libraries, and will also discuss
compatibility exceptions.
The following types of compatibility are supported from 11.0
to 11i for well-behaved applications:
Relocatable object compatibility
Known exceptions to compatibility are described below.
A well-behaved application adheres to the following characteristics:
Uses only documented, public APIs
Adheres to the required practices that are specifically
documented
Does not use documented features that are specifically
described as having platform, architecture, or configuration limitations
Does not decompose an HP-UX product and then reuse
the results of the decomposition
Binary Compatibility |
 |
An application that ran on HP-UX 11.0 will continue to run
with the same behavior on 32-bit and 64-bit HP-UX. An executable
is a binary file that has been processed by the HP link editor with ld or indirectly with the compiler, and can be run by the
HP-UX loader (exec).
Source Compatibility |
 |
Software that compiled on an HP-UX 11.0 release can be recompiled without
change on HP-UX 11i. The term "source" includes
input source to compilers, scripts, and makefiles.
Data Compatibility |
 |
An application can continue to access persistent data files,
such as system files, backup/recovery formats, and HP-documented
data formats via supported APIs in the same manner as the previous
release. For example, applications should access the password file
information via getpwent() rather than directly reading the file in order to maintain data
compatibility.
Relocatable Object Compatibility |
 |
A relocatable object can be a file (.o), shared library (.sl), or an archive library (.a).
Several types of object binary compatibility are included
here:
Release-to-release relocatable object
binary compatibility - an executable created by linking with forward-compatible,
relocatable objects from different releases or using shl_load() and dlopen() to dynamically load shared libraries built on a different
release than the application is ONLY SUPPORTED from HP-UX 11.0 to
11i.
However, linking pre-HP-UX 11.0 libraries and HP-UX
11.0 and 11i libraries in one relocatable object/executable is NOT
SUPPORTED.
 |
 |  |
 |
 | NOTE: The linker will permit the linking of pre-HP-UX 11.0
libraries and HP-UX 11.0 and 11i libraries in one relocatable object/executable
and will not exhibit any warning or error messages, but the executable
may exhibit incorrect behavior. |
 |
 |  |
 |
Archive and shared relocatable object
compatibility - an executable created by linking with a shared library
that has dependencies on an archive library. This situation typically
occurs when linking with archive system libraries. THIS IS NOT SUPPORTED.
Data model relocatable object compatibility - an
executable created by linking with a mixture of 32-bit and 64-bit
objects. THIS IS NOT SUPPORTED. The loader will not permit this.
Upgrade Compatibility |
 |
Customized configurations and data from HP-UX 11.0 are preserved upon
installation and upgrade to HP-UX 11i.
HP-UX 10.x Applications
on HP-UX 11i |
 |
HP-UX 10.x applications
that compiled and ran on 11.0 can be recompiled and run on HP-UX
11i without change.