ptx/C++ V5.2.3 Release Notes

ptx/C++ V5.2.3 is a maintenance release of the DYNIX/ptx port of the EPC C++ V5.2 compiler from Edinburgh Portable Compilers. This product also includes Rogue Wave's Tools.h++ V8 Class Library and C++ Standard Libraries. This release of ptx/C++ V5.2.3 runs on DYNIX/ptx V4.5.1. For information on the problems fixed in this release, refer to "Problem Reports Fixed in This Release".


Product Compatibility


Differences Between EPC C++ V5.2 and ptx/C++ V5.2

The following list describes the differences between EPC C++ V5.2 from Edinburgh Portable Compilers, and ptx/C++ V5.2:


Differences Between ptx/C++ V5.2.x and ptx/C++ V2.1.3

This section contains information about the differences between ptx/C++ V5.2.x and ptx/C++ V2.1.3. Additional information is provided in the section "Migrating to ANSI/ISO C++" in the ptx/C++ User's Guide.


Compatibility Across Versions of ptx/C++ and DYNIX/ptx

The following list describes compatibility information and issues when running different versions of ptx/C++ across different versions of DYNIX/ptx:

  1. ANSI and cfront modes are not compatible.

  2. ANSI mode for ptx/C++ V5.2 is not compatible with ANSI mode for ptx/C++ V5.0.

  3. Using object files compiled by ptx/C++ V5.2 with libraries from ptx/C++ V5.0 is not supported.

  4. Using object files compiled for DYNIX/ptx V4.5 with libraries from a ptx/C++ release for DYNIX/ptx V4.4 is not supported.


Installation

To install ptx/C++ V5.2.3 on DYNIX/ptx V4.5.1, refer to the DYNIX/ptx V4.5.1 and Layered Products Software Installation Release Notes.


ATTENTION

The ptx/C++ shared libraries are in a separately installed product called ptx/C++ Runtime V5.2.3. For this reason, development environments require both ptx/C++ and ptx/C++ Runtime. Note that a license is not required to install ptx/C++ Runtime.

Also, the edb debugger is now installed as part of the DYNIX/ptx operating system. Release note information for edb is included in the DYNIX/ptx V4.5.1 Release Notes.



Problem Reports Fixed in This Release

The following list contains the problem reports fixed in ptx/C++ V5.2.3. The first number shown in bold font is the SPTS problem report number. The second number shown in brackets is the EPC problem report number.

244904 [3581]
The c++(1) man page did not document that when the -abilngdbl flag is used there is not sufficient debug information for the edb debugger to determine that long doubles are 12 bytes rather than 8.
249653 [4260]
Some c++ ANSI library initializations were not thread-safe.
249827 [4275]
Locale support in libc++ used an uninitialized mutex.
249828 [4276]
Intermittent rtld error invalid relocation type 3 in C++ programs.
250109 [4314]
ptx/C++ debug information had recursive references that caused debugger to loop.
250494 [4394]
c++ driver did not tell the linker to look in /lib before /usr/lib.
250528 [4395]
c++ -volatile option gives error.
250656 [4420]
Compiler aborted with **tliInternal**: bad type in ty_isvararg message.
250663 [4424]
c++ -O -KPIC code generated problems with iterators over strings and with exceptions involving bitsets.
250735 [4453]
Destructors for static objects in a shared object were not called at dlclose(), which caused abort at exit.
250873 [4475]
c++ volatile variable did not reload for an optimized loop test.
251204 [4566]
c++ compile failed with RWTokenizer already declared.
251206 [4567]
A combination of Tools.h++ include files did not compile.
251226 [4579]
Exception handling in multiple threads could be very slow.
251343 [4622]
Compiler recursed when it processed exception handling code.
251385 [N/A ]
The ptx/C++ update installation used current location.
251416 [N/A ]
ptx/C++ deinstall did not remove /opt/ptxC++ symbolic link.

Open Problem Reports

The following list contains the open problem reports in ptx/C++ V5.2.3. The first number shown in parentheses is the SPTS problem report number. The second number shown in brackets is the EPC problem report number.

C++ constructor can be called twice for the same object (251062) [4537]

The constructor for a global class object can be called twice if the object is defined in multiple shared objects, or if the object is defined in the executable and in a shared object. If the class has a destructor, then it is called once for each constructor call.

Workaround: Add init and fini flags to the class and check them before processing the body of the constructor and destructor. Alternatively, if the object is defined twice because a modified version of a module from a shared library is being used in the executable for testing purposes, change the name of the global object in the modified version so it will only be constructed once.


Product Documentation

Available on the Software Documentation CD:

Available in hard-copy only:


Library Documentation

The Rogue Wave® class library Tools.h++® is incorporated as an integral part of the ptx/C++ language implementation by permission of Rogue Wave Software Inc. The Tools.h++ Version 8 documentation is included in the /opt/ptxC++/doc directory as two online manuals in HTML format:

Tools.h++ Version 8 is available for use with ANSI compilation. Tools.h++ Version 7 is available for use with cfront compilation. The documentation for Version 7 is available in hard copy format.


ATTENTION

There is currently no shared library version of RogueWave Tools.h++ Version 8. The interfaces might change before Tools.h++ V8 is finalized, and until that time only the static version of the library will be provided.


The Standard C++ Library is also part of ptx/C++ and is implemented by Rogue Wave Software Inc. Documentation for this libary is included in the /opt/ptxC++/doc directory in HTML format: