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:

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++ initializes nonlocal static objects in all object files, including shared libraries, before the first statement in main() executes. If you distribute HP aC++ libraries that your customers will use, they must do the following to ensure that nonlocal static objects are correctly initialized and destroyed:

If your libraries are C++ shared libraries, the above restrictions can be relaxed as follows:

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

NOTE: HP aC++ code cannot be mixed with HP C++ code.


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.