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".
The following list describes the differences between EPC C++ V5.2 from Edinburgh Portable Compilers, and ptx/C++ V5.2:
The executable name for ptx/C++ is c++ and is in the directory /bin.
The man page for ptx/C++ is called c++.
The location of the files for ptx/C++ is /opt/ptxC++.
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.
Object files and libraries are not compatible between ptx/C++ V2.1.3 and ptx/C++ V5.2.x.
By default ptx/C++ V5.2.x implements the long double data type the same as the double data type, with a length of 8 bytes. This is compatible with ptx/C++ V2.1.3 and with ptx/C. ptx/C++ V5.2.x provides an option, -abilngdbl, to follow the IntelTM 386 Application Binary Interface and implement the long double data type with a length of 12 bytes. Applications that are written partly in C and partly in C++ should use the default 8-byte long double if they share long double data through global variables, function calls, or data written to binary files.
The ptx/C++ V2.1.3 processor defines __STDC__ to be zero, but ptx/C++ V5.2.x defines it to be one. The ptx/C compiler continues to define __STDC__ to be zero except when you specify the -Xc option, which defines __STRICT_ANSI__.
ptx/C++ V5.2.x does not provide a COFF development environment.
ptx/C++ V5.2.x does not support the ptx/C feature -Wc,+dir, which can be used to select a version of the socket implementation to use for an application. Where -Wc,+abi-socket would be passed to cc, use -@/usr/lib/abi-socket/cc_options as an option to c++.
ptx/C++ V5.2.x does not support __asm macros (also known as asm functions).
ptx/C++ V5.2.x does not support generating line coverage data for use with lprof(1).
ptx/C++ V5.2.x does not support ordering for locality (OFL).
ptx/C++ V5.2.x does not support the placement of variables in shared or private memory for use with the parallel programming library, libpps.
The following list describes compatibility information and issues when running different versions of ptx/C++ across different versions of DYNIX/ptx:
Static executables built on DYNIX/ptx V4.4 with ptx/C++ V5.0 or V5.2 can be run on DYNIX/ptx V4.5.
Dynamic executables using shared C++ libraries built on DYNIX/ptx V4.4 with ptx/C++ V5.0 cannot be run on DYNIX/ptx V4.5; the shared C++ libraries that were part of the ptx/C++ V5.0 releases are not supported as part of ptx/C++ V5.2 or ptx/C++ V5.2 Runtime.
The shared C++ libraries that are part of ptx/C++ Runtime V5.2.x will continue to be supported in future releases of ptx/C++ Runtime, allowing dynamic executables that are built with ptx/C++ V5.2.x to be executed on the same or later versions of DYNIX/ptx on which the same or a later version of ptx/C++ Runtime is installed.
Whether object files (.o, .a, and .so) built with one version of ptx/C++ for a particular version of DYNIX/ptx can be used with another version of ptx/C++ and/or DYNIX/ptx depends on the versions of the compiler and operating system and also on the compilation mode, which determines which set of C++ libraries will be used. The following table shows which combinations are supported and which are not.
ANSI and cfront modes are not compatible.
ANSI mode for ptx/C++ V5.2 is not compatible with ANSI mode for ptx/C++ V5.0.
Using object files compiled by ptx/C++ V5.2 with libraries from ptx/C++ V5.0 is not supported.
Using object files compiled for DYNIX/ptx V4.5 with libraries from a ptx/C++ release for DYNIX/ptx V4.4 is not supported.
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.
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.
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.
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.
Available on the Software Documentation CD:
Available in hard-copy only:
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 Reference, /opt/ptxC++/doc/tlsref/index.htm
Tools.h++ Version 8 User's Guide, /opt/ptxC++/doc/tlsug/index.htm
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: