| | | | Browse by category |
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.