search    
Hewlett-Packard
Distributing Your C++ Products
Distribute your products in such a way that your customer does not need to use the HP aC++ compiler or driver. That is, distribute only executables and shared libraries. Be sure your customer has read this distribution information.

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.

  • Shared libraries containing C++ code
    (with the exception of the following:
    • /usr/lib/hpux##/libCsup.so
    • /usr/lib/hpux##/libstd.so (and libstd_v2.so)
    • /usr/lib/hpux##/librwtool.so (and librwtool_v2.so)
    • /usr/lib/hpux##/libstream.so
    (## is 32 or 64 - provided as part of the HP-UX core system)
  • Executable files produced by HP aC++ and applications that use shared libraries provided with HP aC++.
  • Object files produced by HP aC++.
  • Archived libraries containing C++ code.
  • Any combination of the above.
Note: If you choose to distribute archive libraries or object files, your customer must have purchased HP aC++.

This section is organized into the following topics:

Applications that use HP aC++ Shared Libraries
The following HP aC++ run-time libraries are shipped as part of the HP-UX 11.x core system:
  • /usr/lib/hpux##/libCsup.so
  • /usr/lib/hpux##/libstd.so and libstd_v2.so
  • /usr/lib/hpux##/libstd_v2.so and librwtool_v2.so
  • /usr/lib/hpux##/libstream.so
  • Libraries in /usr/include/hpux32 or /usr/include/hpux64
    (Where ## is 32 or 64, which are provided as part of the HP-UX core system).
Note: If you distribute either executable files or shared libraries as part of your product, you should not ship the above HP aC++ runtime 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.

Linking Your HP aC++ Libraries with Other Languages
The C++ language requires that non-local static objects be initialized before any function or object is used. HP aC++ automatically initializes non-local 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 directories on your customer’s systems. This will ensure that the aCC command can find them.

Note: If your customer already has HP aC++ installed and their version is newer than yours, do not overwrite any of the existing HP aC++ components. Do not install your product on a system that has a newer version of HP aC++ if that newer version is incompatible with your version.

Ensure that your customer does not install a version of HP aC++ after installing your product; if that version of HP aC++ is incompatible with your version.

HP aC++ Files You May Distribute
You can package and redistribute the following HP aC++ components to your customers. The following HP aC++ runtime libraries are provided as a patch to the HP-UX core system:
  • /usr/lib/hpux##/libCsup.so
  • /usr/lib/hpux##/libstd.so and libstd_v2.so
  • /usr/lib/hpux##/librwtool.so and librwtool_v2.so
  • /usr/lib/hpux##/libstream.so
    (## is 32 or 64)
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:
  • These HP aC++ components cannot be redistributed as part of a C++ compiler, linker, or interpreter product.
  • All copyright notices in the code must be retained.
  • The HP aC++ executable components can only be redistributed by HP aC++ customers.