Distributing your C++ Products

If you write code in HP aC++ and distribute any of the following C++ files to your customers, read all of the following sections for recommendations and legal requirements. NOTE: If you choose to distribute archive libraries or object files, your customer must have purchased HP aC++.

Strong Recommendations

We strongly recommend that you distribute your products in such a way that your customer does not need to use the HP aC++ compiler or driver. That is, only distribute executables and shared libraries.

Be sure your customer has read this distribution information.

NOTE: If you choose to distribute archive libraries or object files, your customer must have purchased HP aC++.


Applications that use HP aC++ Shared Libraries

This section explains what you need to do to ensure that your customers can use your code correctly.

The following HP aC++ run-time libraries are shipped as part of the HP-UX 11.x core system:

(Where ## is 32 or 64, which are provided as part of the HP-UX core system).

CAUTION: If you distribute either executable files or shared libraries as part of your product, you should not ship the above HP aC++ run-time libraries with your product in such a way that it results in overwriting a newer library version with an older, incompatible version. If you ship any HP aC++ run-time library, then it is your responsibility to ensure that an old library version is not installed over a new one.

Refer also to the CAUTION in the section Installing your Application.


Linking Your HP aC++ Libraries with Other Languages

This section discusses what you and your customers need to do if your product is an HP aC++ library to be called with another language.

The C++ language requires that nonlocal static objects be initialized before any function or object is used. HP aC++ automatically initializes nonlocal static objects in all object files, including shared libraries, before the first statement in main() executes. No special files or link options are needed.

If the library is being dynamically loaded from pure C or Java as a plugin, the library should be linked with the HP aC++ runtime libraries in the following order:

-AP:   -lstd -lstream -lCsup -lunwind -lm
-AA:   -lstd_v2 -lCsup -lunwind -lm

If the library does not use libstd (STL) or libstream (iostreams), then they can be eliminated. If tools.h++ is used, then add -lrwtool (or -lrwtool_v2) to the left.

In addition, your customers should review Mixing C++ with other Languages for information on linking HP aC++ modules with HP C, and HP FORTRAN 90.


Installing your Application

HP aC++ releases are usually forward compatible, but HP cannot guarantee that this will be true for all releases. If you have questions about the compatibility of HP aC++ releases, you should contact your HP support representative.

Normally your customer will already have the correct runtime installed. If your product requires a newer version, it is recommended that the customer install the latest patch.

Your application's installation procedure should install the appropriate HP aC++ components in the standard places on your customer's systems. This will ensure that the aCC command can find them.

CAUTION: If your customer already has HP aC++ installed and their version is newer than yours, you should never overwrite any of the existing HP aC++ components. In addition, you should not install your product on a system that has a newer version of HP aC++ if that newer version is incompatible with your version.

You should also warn your customers not to install a version of HP aC++ after installing your product if their version of HP aC++ is incompatible with your version.


HP aC++ Files You May Distribute

For this release, Hewlett-Packard grants you permission to package and redistribute the following subset of HP aC++ components to your customers.

The following HP aC++ runtime libraries are provided as a patch to the HP-UX core system:

Refer to the CAUTION in the prior section Applications that use HP aC++ Shared Libraries.


Terms for Distribution of HP aC++ Files

Permission to distribute the above mentioned HP aC++ runtime shared libraries is based on the following terms and conditions:

  1. These HP aC++ components cannot be redistributed as part of a C++ compiler, linker, or interpreter product.
  2. All copyright notices in the code must be retained.
  3. The HP aC++ executable components can only be redistributed by HP aC++ customers.