Having problems using Standard C++ Library 2.x with Orbix 2000

Article ID: 1149
Last updated: 31 Jan, 2008
Article ID: 1149
Last updated: 31 Jan, 2008
Revision: 1
Views: 3115
Posted: 29 Oct, 2001
by Dean J.
Updated: 31 Jan, 2008
by Dean J.
Problem


Having problems when trying to rebuild an existing application that uses Orbix 2000 with several Rogue Wave products based on Standard C++ Library 2.1.1.




Cause


Rogue Wave Standard C++ Library 2.1.1 is not compatible with Orbix2000. The latest SourcePro versions ship Standard C++ Library 2.x, which again, are not compatable with Orbix 2000. So, customers who have applications that use Orbix should use the Rogue Wave Standard C++ Library version 1.3.1 that came with spm edition 13 CD.

Further, the aCC 3.2.7 compiler uses "-AA" compiler option.  This compiler option forces use of the RW standard library, version 2.1.1, that is bundled with HP's OS. As mentioned above, this library will not work with Orbix. So, until Orbix releases a version of its product which is compatible with a Standard Library implementation that complies with the ANSI/ISO standard (1998), applications that require Orbix will need to link to the old Rogue Wave Standard C++ Library version 1.3.1.




Action


It is important to note that the Rogue Wave libraries from spm edition 13 CD were not certified by us for use with the aCC 3.2.7 compiler.  However, we have verified that the following products build and run without any known problems on this platform.

Standard C++ library v1.3.1, Tools.h++ v 7.1.1, DBTools.h++ v4.1.0, Money.h++ v2.1.1, & Sybase-CT v 4.1.0

To build these versions of our products on this platform you will need to follow the instructions given here.

Installation of RogueWave (edition 13) on HP-UX 11.0 (aCC 3.27 compiler)

a. Insert the CD-ROM and run install.sh

b. Create the directory <home> as root and chmod this to 777.

c. Choose <home>/spm as the directory for installing spm.

d. After installation step is completed, run the gui <home>/spm/partmgr.

e. Click on "Unlock" button and Unlock the products you wish to build.

f. Click on "Install" and Install the components into <home>/spm directory.

g. Do not build any of these components as they are not certified to run with the aCC 3.27 compiler.

h. Unmount the CD-ROM

Building RogueWave Components

a. Edit the file <home>/spm/scripts/platforms/hpux64_acc32.in as follows:

Change

RWCPP="aCC +DA2.0N"

to

RWCPP="aCC +DA2.0N +Esnolit"

b. Edit <home>/spm/parts/std0131u/source/src/include/new and

<home>/spm/parts/std0131u/source/src/include/exception as follows:

Change:

<home>/spm/parts/std0131u/source/src/include/new

88:#endif /*__STD_NEW */

89:#else

90:#include <new.h>

91:#endif /* !defined (_HPACC_) */

to read like this: (check compiler location with which aCC)

88:#endif /*__STD_NEW */

89:#else

90:#include </opt/aCC/include/new>

91:#endif /* !defined (_HPACC_) */

 

Change:

<home>/spm/parts/std0131u/source/src/include/exception

146:#endif /*__RWSTD_EXCEPTION_SEEN*/

147:#else

148:#include <exception.h>

149:#define RWSTD_exception exception

150:#endif /*!defined _HPACC_ */

to read like this: (check compiler location with which aCC)

146:#endif /*__RWSTD_EXCEPTION_SEEN*/

147:#else

148:#include </opt/aCC/include/exception>

149:#define RWSTD_exception exception

150:#endif /*!defined _HPACC_ */

Please refer Rogue Wave knowledge base article # 010122-001 for more information on this known problem "Failure building Standard C++ Library with aCC 3.25".

c. Build all the RW components using "rwspm" located in the "<home>/scripts" directory. The syntax is:

rwspm -d -f <compiler_prop_file> -p <location_of_source_code> -t<build_type>

The flags stand for the following:

-d (Optional) Build a shared library

-f Name of compiler properties file (DO NOT supply the path; (note: this will be the hpux64_acc32.in file edited earlier, and the file MUST be in the platforms directory)

-p Path to the product tree top level directory of the part

to be built

-t Numeric build type code. The number is generated as the sum of the following values:

8 -Turns on Standard Library dependancy.

4 -Turns on multithreading.

3 - turns on debugging options.

 

-w (Optional) Path to the workspace top level directory

Use this only if you want this value to be different from the default  /workspaces/$RWOPSYS/$RWCOMPILER

An example of how to build the Standard C++ Library is shown below:

rwspm -d -f hpux34_acc32.in -p <home>/spm/parts/std0121u -t11

Please refer Rogue Wave knowledge base article # 970805-002 for more information on

"Software Parts Manager Builds on Unsupported/Non-GUI platforms".

d. While building the standard library, a popup window asks if it needs to build a "strictly ANSI library". Answer "yes' to this and proceed. For all other queries during the build, choose the default value.

e. While building "DBTools.h++", the popup window asks for the database access library info.

f. After building all the libraries, go to

<home>/spm/workspaces/HPUX/ACC32/11 and <home>/spm/workspaces/HPUX/ACC32/8. Check if libraries exist in the /lib sub-directory.

g. The "rwspm" script does not create the example executables. Build the examples by running "make" in the examples directories. Once you are able to successfully build the examples test them.

h. Build your application using the same compiler and linker options that were used to build Rogue Wave examples.

This article was:   Helpful | Not helpful
Report an issue
Article ID: 1149
Last updated: 31 Jan, 2008
Revision: 1
Views: 3115
Posted: 29 Oct, 2001 by Dean J.
Updated: 31 Jan, 2008 by Dean J.

Others in this category