Rogue Wave C++ standard stdcomp.h
It is really neat that Sun C++ Studio 11 has been enhanced with the
latest patches to compile Boost (without ICU). To obtain the full
benefits, it seems necessary to tweak the Rogue Wave C++ standard
library header stdcomp.h to avoid compiler errors like:
% CC -DHAVE_CONFIG_H -I. -I../../../framework/common -I/h/goanna/1/sw/tntnet/include -I/usr/sfw/include -mt -c comp.cpp -KPIC -DPIC -o .libs/comp.o
"comp.cpp", line 70: Warning:::comp::localcomp_p_type::operator() hides the virtual function tnt::Component::operator()(tnt::HttpRequest&, tnt::HttpReply&, cxxtools::QueryParams&).
"comp.cpp", line 210: Error: Could not find a match for std::vector<std::string>::vector(cxxtools::QueryParams::const_iterator, cxxtools::QueryParams::const_iterator) needed in::comp::localcomp_type::operator()(tnt::HttpRequest&, tnt::HttpReply&, cxxtools::QueryParams&).
and a compiler error that occurs compiling code with std::difference
with 2 parameters. The tweaks are:
/% diff -wc /h/goanna/0/SC12_02_07/SUNWspro/prod/include/CC/Cstd/orig/stdcomp.h /h/goanna/0/SC12_02_07/SUNWspro/prod/include/CC/Cstd/stdcomp.h
*** /h/goanna/0/SC12_02_07/SUNWspro/prod/include/CC/Cstd/orig/stdcomp.h Thu Feb 8 23:18:51 2007
--- /h/goanna/0/SC12_02_07/SUNWspro/prod/include/CC/Cstd/stdcomp.h Thu Apr 19 14:57:28 2007
*** 1304,1311 ****
/* #define RWSTDNO_BAD_CAST 1 */
/* #define RWSTD_NO_BAD_CAST 1 */
! #define RWSTDNO_MEMBER_TEMPLATES 1
! #define RWSTD_NO_MEMBER_TEMPLATES 1
#define RWSTDNO_FRIEND_TEMPLATES 1
#define RWSTD_NO_FRIEND_TEMPLATES 1
--- 1304,1311 ----
/* #define RWSTDNO_BAD_CAST 1 */
/* #define RWSTD_NO_BAD_CAST 1 */
! /* #define RWSTDNO_MEMBER_TEMPLATES 1 */
! /* #define RWSTD_NO_MEMBER_TEMPLATES 1 */
#define RWSTDNO_FRIEND_TEMPLATES 1
#define RWSTD_NO_FRIEND_TEMPLATES 1
*** 1406,1415 ****
#define RWSTDNO_INIT_CONST_TEMPLATE_REF_ARG 1
#define RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG 1
! #define RWSTDNO_CLASS_PARTIAL_SPEC 1
! #define RWSTD_NO_CLASS_PARTIAL_SPEC 1
! #define RWSTDNO_FUNC_PARTIAL_SPEC 1
! #define RWSTD_NO_FUNC_PARTIAL_SPEC 1
/* #define RWSTDNO_OVERLOAD_OF_TEMPLATE_FUNCTION 1 */
/* #define RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION 1 */
--- 1406,1415 ----
#define RWSTDNO_INIT_CONST_TEMPLATE_REF_ARG 1
#define RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG 1
! /* #define RWSTDNO_CLASS_PARTIAL_SPEC 1 */
! /* #define RWSTD_NO_CLASS_PARTIAL_SPEC 1 */
! /* #define RWSTDNO_FUNC_PARTIAL_SPEC 1 */
! /* #define RWSTD_NO_FUNC_PARTIAL_SPEC 1 */
/* #define RWSTDNO_OVERLOAD_OF_TEMPLATE_FUNCTION 1 */
/* #define RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION 1 */
Thanks, Mark
I have already read this documentation and am afraid this was clearly not the point.
I indeed mentionned a precise and common issue : linking with a commercial 3rd party library.
In that case, you are compelled to use the standard C++ library that was used to generate this 3rd party library, period.
Now what do C++ library vendors do when they see that they have the "choice" between libCstd that does not comply with the standard and has nevertheless not evolved for ages but is a guaranteed part of Sun Solaris and STLport which is more complete but is also an open source add-on that "does not guarantee compatibility across different releases" and which evolve in an unpredictable way so that "Future releases of the compiler might not include STLport4" (Sun studio 12 C++ user's guide 13.3) ?
They choose libCstd of course !
Now what does Sun plan to do to really tackle this issue ? How long will we have to forget about all recent C++ features like boost because you place binary compatibility above everything ?
Regards,
Philippe
Similar Messages
-
Studio 8 compiler error using rogue wave header in std mode
I get the following compiler error. I am using -library=rwtools7_std in the CC command.
The error is:-
"/opt/studio/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The name istream is ambiguous, istream and std::istream.
"/opt/studio/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The name istream is ambiguous, istream and std::istream.
"/opt/studio/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The type "istream" is incomplete.
Please help
KandiahAll,
I'm getting the following error when I moved to Rogue Wave release 7.0 from 4.0. We're using Sun's FORTE C++ compiler version 7.0.
Please advise
*** Build for src 'all' target STARTED: Thu Jan 18 16:37:04 EST 2007
/xenv/Forte/sun4/7.0/5.8p4/prod/bin/CC -g -features=no%conststrings -DCPLUSREL=7 -D_RWCONFIG=12d -DRW_MULTI_THREAD -O -mt -D_REENTRANT -c -I. -I/xenv/rwsp_tools/sun4/5.8p4/7.0/32/core900_12d -I/xenv/mqi/sun4/5.x/5.3.0.5/inc -I/xenv/ccs_standard_s8/sun4/5.8p4/4.1_B1/include MQInfo.cc MQBase.cc ZeusAccountBridge.cc
MQInfo.cc:
MQBase.cc:
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/defs.h", line 316: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/defs.h", line 317: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/defs.h", line 318: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/stringid.h", line 50: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/stringid.h", line 51: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/collint.h", line 75: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/collint.h", line 76: Error: A typedef name cannot be used in an elaborated type specifier..
7 Error(s) detected.
ZeusAccountBridge.cc:
"/xenv/ccs_standard_s8/sun4/5.8p4/4.1_B1/include/ccs_data.h", line 126: Warning (Anachronism): Using int(*)(void*,ccs_Data*) to initialize void*.
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/defs.h", line 316: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/defs.h", line 317: Error: A typedef name cannot be used in an elaborated type specifier..
"/xenv/Forte/sun4/7.0/5.8p4/prod/include/CC/rw7/rw/defs.h", line 318: Error: A typedef name cannot be used in an elaborated type specifier..
3 Error(s) and 1 Warning(s) detected. -
Compilation error on Solaris 2.6 using SUn Workshop 4.2(Rogue wave STL)
Hello,
I am facing a problem while using Rogue wave STLs on SOlaris 2.6 using Sun WOrkshop pro 4.2
I am using Hash table implementation in the source. It throws the following error:
---->Error: "," expected instead of "const_iterator".
I found it to be problem in a declaration of pair for the class.
Before modification:
typedef pair<mytmp::iterator,int> interator;
Modified to:
typedef mytmp::iterator myitr
typedef pair<myitr,int> interator;
Now the above compilation error seems to be gone. Can anyone please help me in understanding this problem???????????????
Also after compiling few files now i am facing new problem. It throws signal 11 in iterator header file of std STL.
Help m e !!!!!!!!!!
For your reference options of compilation are:
/opt/SUNWspro/bin/CC -c -O -mt -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT -D__EXTENSION
S__ -DRWSTD_MULTI_THREAD -D_RWBUILDSHARED -DRWSTD_COMPILE_INSTANTIATE -
DRWSTD_SHARED_BUILD --I/opt/mylib/common/include/Std mydemo.ccI solved my own problem.
It seems that the C++ XML Parser cannot be used with earlier versions of Oracle. My ORACLE_HOME env variable was pointing to v734. Once I changed that to point to the later version of v816, It was a smooth parse.
null -
Support rwtools from Rogue Wave Software
Hi,
We have some C program that use rwtools from Rogue Wave Software (see [http://www2.roguewave.com/support/docs/hppdocs/tlsug/1.1.html |http://www2.roguewave.com/support/docs/hppdocs/tlsug/1.1.html ] ).
We should migrate these programs from HP-UX to OEL 5.3.
But, there are not rwtools in OEL 5.3.
Please help us!I don't know rwtools, but I suggest to contact them, send them an e-mail and ask if they provide their product also for Enterprise Linux.
http://www2.roguewave.com/support/contact/index.cfm
OEL, RHEL and CentOS are binary compatible. -
Apache C++ Standard Library 4.2.0 released
October 29, 2007 -- The Apache C++ Standard Library project
is pleased to announce that the official stdcxx 4.2.0 release is
now available for download from the following location:
http://people.apache.org/dist/incubator/stdcxx/releases/
For additional details see the stdcxx Download page:
http://incubator.apache.org/stdcxx/download.html#releases
The Apache C++ Standard Library [formerly Rogue Wave C++ Standard
Library] is a full implementation of the C++ Standard Library
conforming to the ISO/IEC 14882:2003 international standard for
the programming language C++.
4.2.0 is a "minor" release of the library that is source and
backward binary compatible with stdcxx 4.1.x. Programs linked
with 4.1.x can safely upgrade to 4.2.0 without needing to be
recompiled. Forward compatibility (i.e., the ability to
"downgrade" programs linked with stdcxx 4.2.0 to stdcxx 4.1.x)
is not guaranteed.
This release of stdcxx contains a large number of bug fixes and
a number of improvements. For a complete list of issues resolved
in this release of the project see:
http://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12311754
This release of stdcxx has been fully certified on the following
platforms (for additional platform notes see the project's README
file).
* Compaq/HP C++
* Compaq/HP C++ 6.5 and 7.1 on Tru64 UNIX
* Compaq/HP C++ 7.1 on Tru64 UNIX
* EDG eccp demo
* EDG eccp 3.8 on Red Hat Enterprise Linux 5.0, x86_64
* EDG eccp 3.9 on Solaris 9
* GCC
* gcc 4.1.1, Solaris 10, SPARC
* gcc 4.1.0, SuSE Linux Enterprise Server 10.0, EM64T
* gcc 4.0.1, Mac OS X (Darwin), x86
* gcc 3.4.6, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* gcc 3.4.4, Cygwin on Windows XP SP 2, x86
* gcc 3.4.4, FreeBSD 6.2, x86
* gcc 3.4.4, Red Hat Enterprise Linux 4, Update 2, IA64
* gcc 3.3.3, SuSE Linux Enterprise Server 9.1, AMD64
* gcc 3.2.3, Red Hat Enterprise Linux 3, Update 8, EM64T
* HP aCC
* aCC 6.13, HPUX 11.23, IPF
* aCC 6.05, HPUX 11.23, IPF
* aCC 6.00, HPUX 11.23, IPF
* aCC 5.57, HPUX 11.23, IPF
* aCC 3.74, HPUX 11.31, PA-RISC
* aCC 3.73, HPUX 11.31, PA-RISC
* aCC 3.73, HPUX 11.23, PA-RISC
* aCC 3.73, HPUX 11.11, PA-RISC
* aCC 3.63, HPUX 11.31, PA-RISC
* aCC 3.63, HPUX 11.23, PA-RISC
* aCC 3.63, HPUX 11.11, PA-RISC
* IBM XLC++/VisualAge C++
* XLC++ 9.0, AIX 5.3, POWER
* XLC++ 8.0, AIX 5.3, POWER
* XLC++ 7.0, AIX 5.3, POWER
* VisualAge C++ 6.0, AIX 5.2, POWER
* Intel C++
* Intel C++ 10.0, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* Intel C++ 10.0, SuSE Linux Enterprise Server 10.0, EM64T
* Intel C++ 10.0, Windows 2000 SP 4, x86
* Intel C++ 10.0, Windows 2003 SP 1, EM64T and x86
* Intel C++ 10.0, Windows XP SP 2, EM64T and x86
* Intel C++ 10.0, Windows Vista, EM64T
* Intel C++ 9.1, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* Intel C++ 9.1, Red Hat Enterprise Linux 4, Update 2, IA64
* Intel C++ 9.1, SuSE Linux Enterprise Server 10.0, EM64T
* Intel C++ 9.1, Windows 2000 SP 4, x86
* Intel C++ 9.1, Windows 2003 SP 1, x86
* Intel C++ 9.1, Windows XP SP 2, x86
* Microsoft Visual Studio
* Visual Studio 2008 Beta 2, Windows XP, x86
* Visual Studio 2005, Windows 2000 SP 4, x86
* Visual Studio 2005, Windows 2003 SP 1, EM64T and x86
* Visual Studio 2005, Windows XP SP 2, EM64T and x86
* Visual Studio 2005, Windows Vista, EM64T
* Visual Studio 2003, Windows 2000 SP 4, x86
* Visual Studio 2003, Windows 2003 SP 1, x86
* Visual Studio 2003, Windows XP SP 2, x86
* SGI MIPSpro
* SGI MIPSpro 7.41, IRIX 6.5, MIPS
* Sun C++
* Sun C++ 5.9, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* Sun C++ 5.9, SuSE Linux Enterprise Server 9.1, AMD64
* Sun C++ 5.9, Solaris 10, AMD64 and SPARC
* Sun C++ 5.9, Solaris 9, SPARC
* Sun C++ 5.8, Solaris 10, AMD64 and SPARC
* Sun C++ 5.8, Solaris 8, SPARC
* Sun C++ 5.7, Solaris 10, SPARC
* Sun C++ 5.6, Solaris 9, SPARC
* Sun C++ 5.3, Solaris 8, SPARC
The Apache C++ Standard Library project is seeking volunteers
interested in contributing to the development, porting, and general
maintenance of the project. To learn more, subscribe to the
[email protected] mailing list by sending a blank
email to [email protected].
Disclaimer:
STDCXX is an effort undergoing incubation at the Apache Software
Foundation (ASF), sponsored by the Incubator PMC. Incubation is
required of all newly accepted projects until a further review
indicates that the infrastructure, communications, and decision
making process have stabilized in a manner consistent with other
successful ASF projects. While incubation status is not necessarily
a reflection of the completeness or stability of the code, it does
indicate that the project has yet to be fully endorsed by the ASF.October 29, 2007 -- The Apache C++ Standard Library project
is pleased to announce that the official stdcxx 4.2.0 release is
now available for download from the following location:
http://people.apache.org/dist/incubator/stdcxx/releases/
For additional details see the stdcxx Download page:
http://incubator.apache.org/stdcxx/download.html#releases
The Apache C++ Standard Library [formerly Rogue Wave C++ Standard
Library] is a full implementation of the C++ Standard Library
conforming to the ISO/IEC 14882:2003 international standard for
the programming language C++.
4.2.0 is a "minor" release of the library that is source and
backward binary compatible with stdcxx 4.1.x. Programs linked
with 4.1.x can safely upgrade to 4.2.0 without needing to be
recompiled. Forward compatibility (i.e., the ability to
"downgrade" programs linked with stdcxx 4.2.0 to stdcxx 4.1.x)
is not guaranteed.
This release of stdcxx contains a large number of bug fixes and
a number of improvements. For a complete list of issues resolved
in this release of the project see:
http://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12311754
This release of stdcxx has been fully certified on the following
platforms (for additional platform notes see the project's README
file).
* Compaq/HP C++
* Compaq/HP C++ 6.5 and 7.1 on Tru64 UNIX
* Compaq/HP C++ 7.1 on Tru64 UNIX
* EDG eccp demo
* EDG eccp 3.8 on Red Hat Enterprise Linux 5.0, x86_64
* EDG eccp 3.9 on Solaris 9
* GCC
* gcc 4.1.1, Solaris 10, SPARC
* gcc 4.1.0, SuSE Linux Enterprise Server 10.0, EM64T
* gcc 4.0.1, Mac OS X (Darwin), x86
* gcc 3.4.6, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* gcc 3.4.4, Cygwin on Windows XP SP 2, x86
* gcc 3.4.4, FreeBSD 6.2, x86
* gcc 3.4.4, Red Hat Enterprise Linux 4, Update 2, IA64
* gcc 3.3.3, SuSE Linux Enterprise Server 9.1, AMD64
* gcc 3.2.3, Red Hat Enterprise Linux 3, Update 8, EM64T
* HP aCC
* aCC 6.13, HPUX 11.23, IPF
* aCC 6.05, HPUX 11.23, IPF
* aCC 6.00, HPUX 11.23, IPF
* aCC 5.57, HPUX 11.23, IPF
* aCC 3.74, HPUX 11.31, PA-RISC
* aCC 3.73, HPUX 11.31, PA-RISC
* aCC 3.73, HPUX 11.23, PA-RISC
* aCC 3.73, HPUX 11.11, PA-RISC
* aCC 3.63, HPUX 11.31, PA-RISC
* aCC 3.63, HPUX 11.23, PA-RISC
* aCC 3.63, HPUX 11.11, PA-RISC
* IBM XLC++/VisualAge C++
* XLC++ 9.0, AIX 5.3, POWER
* XLC++ 8.0, AIX 5.3, POWER
* XLC++ 7.0, AIX 5.3, POWER
* VisualAge C++ 6.0, AIX 5.2, POWER
* Intel C++
* Intel C++ 10.0, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* Intel C++ 10.0, SuSE Linux Enterprise Server 10.0, EM64T
* Intel C++ 10.0, Windows 2000 SP 4, x86
* Intel C++ 10.0, Windows 2003 SP 1, EM64T and x86
* Intel C++ 10.0, Windows XP SP 2, EM64T and x86
* Intel C++ 10.0, Windows Vista, EM64T
* Intel C++ 9.1, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* Intel C++ 9.1, Red Hat Enterprise Linux 4, Update 2, IA64
* Intel C++ 9.1, SuSE Linux Enterprise Server 10.0, EM64T
* Intel C++ 9.1, Windows 2000 SP 4, x86
* Intel C++ 9.1, Windows 2003 SP 1, x86
* Intel C++ 9.1, Windows XP SP 2, x86
* Microsoft Visual Studio
* Visual Studio 2008 Beta 2, Windows XP, x86
* Visual Studio 2005, Windows 2000 SP 4, x86
* Visual Studio 2005, Windows 2003 SP 1, EM64T and x86
* Visual Studio 2005, Windows XP SP 2, EM64T and x86
* Visual Studio 2005, Windows Vista, EM64T
* Visual Studio 2003, Windows 2000 SP 4, x86
* Visual Studio 2003, Windows 2003 SP 1, x86
* Visual Studio 2003, Windows XP SP 2, x86
* SGI MIPSpro
* SGI MIPSpro 7.41, IRIX 6.5, MIPS
* Sun C++
* Sun C++ 5.9, Red Hat Enterprise Linux 4, Update 4, AMD64 and EM64T
* Sun C++ 5.9, SuSE Linux Enterprise Server 9.1, AMD64
* Sun C++ 5.9, Solaris 10, AMD64 and SPARC
* Sun C++ 5.9, Solaris 9, SPARC
* Sun C++ 5.8, Solaris 10, AMD64 and SPARC
* Sun C++ 5.8, Solaris 8, SPARC
* Sun C++ 5.7, Solaris 10, SPARC
* Sun C++ 5.6, Solaris 9, SPARC
* Sun C++ 5.3, Solaris 8, SPARC
The Apache C++ Standard Library project is seeking volunteers
interested in contributing to the development, porting, and general
maintenance of the project. To learn more, subscribe to the
[email protected] mailing list by sending a blank
email to [email protected].
Disclaimer:
STDCXX is an effort undergoing incubation at the Apache Software
Foundation (ASF), sponsored by the Incubator PMC. Incubation is
required of all newly accepted projects until a further review
indicates that the infrastructure, communications, and decision
making process have stabilized in a manner consistent with other
successful ASF projects. While incubation status is not necessarily
a reflection of the completeness or stability of the code, it does
indicate that the project has yet to be fully endorsed by the ASF. -
JNI and STL undr SUN C++ 6 compiler
Compiling a shared library (for loading by VM) according JNI specification
i get "library not found" error in runtime.
This error does not appear when compiling the same code with g++
or erasing all STL related code fragments.
Has anybody an idea, what is the reason and hoe to fix the problem?If you are thinking about switching to a replacement C++ Standard Library you might want
to consider Apache stdcxx. The Apache C++ Standard Library is a conforming, highly
efficient and portable implementation based on the Rogue Wave C++ Standard Library,
that unlike STLport comes with a robust support for localization and internationalization,
including native support for UTF-8 and UCS-4. In addition, the library provides extensive
online documentation including an up to date Class Reference and User's Guide.
See http://incubator.apache.org/stdcxx/ for more. -
Is the standard C++ library provided in Solaris 9 thread-safe?
Hi,
I cannot find any documentation anywhere that says that the standard C++ library in Solaris 9 (provided by Rogue Wave) is thread safe.
I have seen evidence that makes me think it is not - however, I was wondering if anyone could provide any insight. If they are not, where could I obtain the libraries that are thread safe?
The libraries of interest are:
/lib/sparcv9/libCstd.so.1 &
/lib/sparcv9/libCrun.so.1
Thankyou in advance.Whether the library is thread safe depends on what you mean by thread safety. Except for the 8 standard iostream objects (std::cin, std::cout, etc.), simultaneous accesses from multiple threads to all objects of standard library types must be synchronized by the user. E.g., it's not safe to read or write the same container object (e.g., std::vector, or std::string) from multiple threads at the same time. The C++ localization library imposes some additional restrictions because of its interactions with the global C locale.
-
How to convert raw data to wav files??
Hi AnyOne,
Can anyone know how to do convert raw data in hex format into wav file format??
Please show some guideline.
Thank You.Hi Craig,
Thanks for the reply.
I do follow according the the wav creation standard and save it as wav file. However, i still fail to read back the wav file.
I using LV8.2. Attach with my testvi and data. Please guide if i make any mistake in my testvi
Thx and Regards,
Simon76
Attachments:
data.txt 7 KB
testvi.JPG 39 KB
header.txt 1 KB -
Error in compiling RW libs with g++
Hi All,
I am trying to port one project from Solaris (CC) to gcc, which uses RWlibs (of Tools.h++ which comes along with the sunstudio package).
I am working on RHEL 5.4.
As a first step i am trying my hand with the following simple program:
#include <iostream>
#include <rw/cstring.h>
int main(){
RWCString a("TEST Program compiled successfully with gcc");
std::cout << a << std::endl;
return 0;
}when i tried to compile the above sample program i got the following:
$ g++ -Wall -g rwstring.cc -I/app/sunstudio12/prod/include/CC/rw7
/app/sunstudio12/prod/include/CC/rw7/rw/generic.h:80: error: ISO C++ forbids declaration of ‘genericerror’ with no type
/app/sunstudio12/prod/include/CC/rw7/rw/rstream.h:46: error: expected initializer before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:378: error: ISO C++ forbids declaration of ‘istream’ with no type
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:378: error: expected ‘;’ before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:379: error: ISO C++ forbids declaration of ‘istream’ with no type
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:379: error: expected ‘;’ before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:381: error: ISO C++ forbids declaration of ‘istream’ with no type
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:381: error: expected ‘;’ before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:382: error: ISO C++ forbids declaration of ‘istream’ with no type
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:382: error: expected ‘;’ before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:383: error: ISO C++ forbids declaration of ‘istream’ with no type
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:383: error: expected ‘;’ before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:480: error: expected constructor, destructor, or type conversion before ‘&’ token
/app/sunstudio12/prod/include/CC/rw7/rw/cstring.h:481: error: expected constructor, destructor, or type conversion before ‘&’ tokenAny help/suggestions is appreciated.
Thanks in advance,
14341RW Tools.h++ is a very old product, which has not had significant updates in many years. Most of the functionality in RW Tools.h++ is available in other libraries, although the programming interface is different. (That is, if you have code written for RW Tools.h++, it will need to be re-written.) You can buy the library from Rogue Wave (roguewave.com) if you want to use it with g++ or other compilers.
Much of the functionality of RW Tools.h++ is in the C++ Standard library. The Boost libraries are a good addition for anything else that you need.
The SGI STL and the Apache stdcxx libraries are replacements for the C++ standard library that comes with your C++ compiler. If you download one of these libraries, you will have quite an adventure getting it to build and work correctly with the Studio C++ compiler. But we have already done that work for you. The -library=stlport4 option picks up the STLport version of the SGI STL, and it comes with the compiler. The Apache stdcxx library is available with Solaris 11 for use with Studio C++. Install it in the default locations (in /usr/include and /usr/lib), and use the -library=stdcxx4 option for compiling and linking. Refer to the C++ Users Guide for details about using these alternative libraries.
For g++, using the SGI STL is not a good idea. You can use Apache stdcxx if you want, but the standard library that comes with g++ is a good one, so I would not recommend replacing it unless you have a specific reason.
Boost works very well with g++, since it is developed with and tested with g++. Be sure to check your g++ version with any notes about compilers in the version of Boost that you get. -
Getting following error when running gmake command
"/appl/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The type "istream" is incomplete.
"/appl/SUNWspro/prod/include/CC/rw7/rw/vstream.h", line 92: Error: The name ios is ambiguous, ios and std::ios.
"/appl/SUNWspro/prod/include/CC/rw7/rw/vstream.h", line 92: Error: eofbit is not a member of ios.
"/appl/SUNWspro/prod/include/CC/rw7/rw/vstream.h", line 93: Error: The name ios is ambiguous, ios and std::ios.
"/appl/SUNWspro/prod/include/CC/rw7/rw/vstream.h", line 93: Error: failbit is not a member of ios.
"/appl/SUNWspro/prod/include/CC/rw7/rw/vstream.h", line 94: Error: The name ios is ambiguous, ios and std::ios.
"/appl/SUNWspro/prod/include/CC/rw7/rw/vstream.h", line 94: Error: badbit is not a member of ios.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 347: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 347: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 348: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 348: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 350: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 350: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 351: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 351: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 352: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 352: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 449: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 449: Error: The name istream is ambiguous, istream and std::istream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 450: Error: The name ostream is ambiguous, ostream and std::ostream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 450: Error: The name ostream is ambiguous, ostream and std::ostream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/stringid.h", line 50: Error: The name ostream is ambiguous, ostream and std::ostream.
"/appl/SUNWspro/prod/include/CC/rw7/rw/stringid.h", line 50: Error: The name ostream is ambiguous, ostream and std::ostream.
I am using SUn studio 11
below is the makefile on the location where i give gmake command
========
# Define the names of the component definition files, without their
# extension. Definitions are as follows:
# JSI_NAMES - the basename of each .jsi file to be built.
# Skeleton (*_skel.cc, _skel.hh) files will
# be generated for each entry in this list.
# INTERFACE_NAMES - the basename of each BVI_ class file to be built.
# The interface class names are those referenced from
# JS scripts. The interface file may or may not have
# a corresponding 'implementation' file (if not, the
# implementation is assumed to have been done entirely
# in the interface file itself.) An *.hh and *.cc
# file will be assumed to exist for each entry.
# IMPLEMENTATION_NAMES - The basename of each BVC_ class file to be built.
# The implementation classes are (presumably) those
# that are referenced from BVI_ classes, plus any
# other class files necessary, even if they aren't
# used directly as components. An *.hh and *.cc
# file will be assumed to exist for each entry.
JSI_NAMES = \
invoice
INTERFACE_NAMES = \
invoice_i
IMPLEMENTATION_NAMES = \
invoice_c
#CLIENT_OBJS = ecbaseC.o ecmqtransportC.o priceManagerCache.o priceManagerData.o bvxmlbridge.o MQTransportHandler.o
#CLIENT_OBJS = ecbaseC.o ecmqtransportC.o MQTransportHandler.o
#IDL_STUBS = ecbase.hh ecmqtransport.hh ecbaseC.cc ecbaseC.cc ecmqtransportC.cc ecmqtransportC.cc
# Define the 'base' name of the library that will be checked for
# and generated. The name given here will have 'lib' prepended, and
# '.so' appended, so it follows the standard Unix library naming format.
LIBRARY_NAME := invoice
# define the directory that is the root of the BroadVision One-to-One
# installation on your system.
ifndef BV1TO1
BV1TO1 := /appl/bv1to1
#BV1TO1 := /appl/bv1to15.5
endif
# Define the standard location of BV1TO1 include files.
BV1TO1_INCLUDE := $(BV1TO1)/include/cpp
# Assume that the Orbix in use is the one supplied with the
# One-To-One software. This variable MUST be defined.
ORBIX_INCLUDE := $(BV1TO1)/orbix/include
# To compile a component library, you must have a licensed copy of the
# Rogue Wave Software class libraries. They can be licensed separately
# from Rogue Wave. Point to their directory.
ROGUEWAVE_INCLUDE := $(BV1TO1)/rogue
SHARED_MQ_ORBIX_INCLUDE := ../../procroot/MQ/idl
MQTRANSPORT_INCLUDE := ../../procroot/MQ/include
# Build search path for all required C++ header files, the compiler
# directory should always appear last:
O_ALLINCLUDES = \
-I. \
-I$(BV1TO1)/include/cpp \
-I$(ROGUEWAVE_INCLUDE) \
-I$(ORBIX_INCLUDE) \
-I$(SHARED_MQ_ORBIX_INCLUDE) \
-I$(MQTRANSPORT_INCLUDE) \
-I$(COMPILERINCLUDES)
# Build linker search path for sharable and static libraries:
LDPATH = \
-L. \
-L$(BV1TO1)/lib \
-L$(ROGUEWAVE)/lib \
-L$(ORBIX)/lib
# Build runtime search path for sharable libraries:
RUNPATH = \
-R$(BV1TO1)/lib \
-R$(ROGUEWAVE)/lib \
-R$(ORBIX)/lib
# Use Sun's C++ compiler:
CC = CC
LD = $(CC)
# Debugger/optimizer flag:
OPTDEBUG = -g
# Some required symbols:
O_ADD_DEFINES= -D__EXTERN_C__=1 -DSVR4 -Dtrue=1 -Dfalse=0 \
-DEXCEPTIONS -D_REENTRANT -DRW_MULTI_THREAD -DNONE_CLASH -DIT_CATCH_ENV_EH -DIT_EX_MACROS -DRW_NO_FRIEND_INLINE_DECL
# Compiler flags:
O_CFLAGS = $(OPTDEBUG) -pic -pta -mt $(O_ADD_DEFINES) $(O_ALLINCLUDES) \
$(XMLC_DEFINES) $(OSPACE_DEFINES) $(XMLHELPER_DEFINES) \
-I$(XMLC_INCDIR) -I$(OSPACE_INCDIR) -I$(OSPACE_TOOLKIT_INCDIR) -I$(OSPACE_STD_INCDIR) -I$(XMLHELPER_INCDIR)
# Linker flags (note that Sun's optimizations seem to require the
# compiler's -I options at link time):
O_LFLAGS = $(OPTDEBUG) -pic -pta -mt $(O_ADD_DEFINES) \
$(O_ALLINCLUDES) $(LDPATH) $(RUNPATH) \
-R -L$(XMLC_LIBDIR) -L$(XMLHELPER_LIBDIR) $(XMLC_LIBS) $(XMLHELPER_LIBS) $(OSPACE_LIBS)
# Use idl compiler
IDL = $(BV1TO1)/orbix/bin/idl
IDLFLAGS = -B -I$(BV1TO1)/include/idl
# The following One-To-One libraries should be included
# in this order for all clients.
# List Orbix libraries:
ORBIX_LIBS = \
-lorbixmt
# List required system-supplied libraries (some client applications may
# also require -ly and -ll):
SYSLIBS = \
-lnsl \
-lsocket
# Default rule to compile C++ source code:
.SUFFIXES:
.SUFFIXES: .cc .idl
%.o: %.cc
$(CCC) $(O_CFLAGS) $(CCFLAGS) -c $<
# $(CC) $(CFLAGS) -c $<
%S.cc: %.idl
$(IDL) $(IDLFLAGS) $<
%C.cc: %.idl
$(IDL) $(IDLFLAGS) $<
%.hh: %.idl
$(IDL) $(IDLFLAGS) $<
# To compile components, you need the Javascript implementation
# include files. This variable MUST be defined
JS_INCLUDE := $(BV1TO1)/js/include
# define a default 'root' directory, from which others are derived.
# For now, let's assume it is the current directory.
COMP_ROOT := $(shell /bin/pwd)
# define the directory on your system which will contain all the .so
# files to be loaded by the Interaction Manager. The default is
# given below.
# Note: this is where you must copy your .so file after it is built,
# or change the Interaction Manager configuration to add the directory
# to its default-object-path.
COMPONENT_LIB_DIR := $(BV1TO1)/lib/components
# Define the locations of various directories involved in the component-
# building process. We've defaulted many of these entries to the current
# directory, but you are free to change them to suit your particular setup.
# The entries define the locations of:
# SOURCE_DIR - your .cc and .jsi source files
# HEADER_DIR - your .hh header files
# LIBRARY_DIR - the .so files generated from your .cc files after
# compilation and linking.
# OBJECT_DIR - the .o files generated from your .cc files after
# compilation
SOURCE_DIR = $(COMP_ROOT)
HEADER_DIR = $(COMP_ROOT)
LIBRARY_DIR = $(COMP_ROOT)
OBJECT_DIR = $(COMP_ROOT)
# Given the 'base' name of the library, calculate the full name,
# in standard Unix library-name format.
FULL_LIBRARY_NAME := $(LIBRARY_DIR)/lib/lib$(LIBRARY_NAME).so
LIBRARY_VERSION := 1
# define the list of directories where header files (.h and .hh) can be
# found (or at least from where we can start.) These will be used both
# for the -I include paths and for vpath entries, so that we can establish
# dependencies on the header files for each C++ target.
# Note: we don't directly include the include dir for object headers--we
# use <objects/xxx.hh> format in our source instead.
HEADER_DIRS := \
$(HEADER_DIR) \
$(BV1TO1_INCLUDE) \
$(ORBIX_INCLUDE) \
$(ROGUEWAVE_INCLUDE) \
$(JS_INCLUDE)
# Include each of the header directories with a '-I' in front
# for the compiler.
INCLUDES = $(HEADER_DIRS:%=-I%)
# define the vpath for various classes of files, so we don't always have
# to list the directory in which we're checking for them. Note that
# 'vpath' MUST be lowercase, according to GNU make rules.
vpath %.hh $(HEADER_DIRS)
vpath %.h $(HEADER_DIRS)
# Define flags to be used for compilation.
# The DEFINES flags mean:
# DEBUG - enable the compiler to generate symbols so you can do
# run a debugger like dbx on your objects. Highly recommended!
# NONE_CLASH - needed by the RogueWave and Orbix code included with
# One-to-One. DO NOT remove this compiler option!
# TRACING - Turn on trace messages from the Dynamic Objects and
# Interaction Manager. This may result in much more information
# than you need. If this symbol is removed, tracing messages
# are compiled out.
PROFILE=
DEFINES = -DDEBUG -DNONE_CLASH -DTRACING
JSIC = $(BV1TO1)/bin/jsic
CCC = CC
JSFLAGS = -DJS_THREADSAFE -DJSFILE
PICFLAGS = -KPIC
MTFLAGS = -mt -DRW_MULTI_THREAD
CDEBUGFLAGS = -g
CCFLAGS += $(CDEBUGFLAGS) $(MTFLAGS) $(JSFLAGS) \
$(PICFLAGS) $(INCLUDES) $(DEFINES)
# Given the list of JSI, interface and implementation file roots,
# compute the lists of actual files that need to be generated and/or
# compiled to assemble the final library.
JSI_BASENAMES = $(basename $(strip $(JSI_NAMES)))
JSI_HH_FILES = $(JSI_BASENAMES:%=$(SOURCE_DIR)/%_skel.hh)
JSI_CC_FILES = $(JSI_BASENAMES:%=$(SOURCE_DIR)/%_skel.cc)
JSI_OBJ_FILES = $(JSI_BASENAMES:%=$(OBJECT_DIR)/%_skel.o)
INTERFACE_BASENAMES = $(basename $(strip $(INTERFACE_NAMES)))
INTERFACE_HH_FILES = $(INTERFACE_BASENAMES:%=$(SOURCE_DIR)/%.hh)
INTERFACE_CC_FILES = $(INTERFACE_BASENAMES:%=$(SOURCE_DIR)/%.cc)
INTERFACE_OBJ_FILES = $(INTERFACE_BASENAMES:%=$(OBJECT_DIR)/%.o)
IMPLEMENTATION_BASENAMES = $(basename $(strip $(IMPLEMENTATION_NAMES)))
IMPLEMENTATION_HH_FILES = $(IMPLEMENTATION_BASENAMES:%=$(SOURCE_DIR)/%.hh)
IMPLEMENTATION_CC_FILES = $(IMPLEMENTATION_BASENAMES:%=$(SOURCE_DIR)/%.cc)
IMPLEMENTATION_OBJ_FILES = $(IMPLEMENTATION_BASENAMES:%=$(OBJECT_DIR)/%.o)
ALL_HH_FILES = \
$(JSI_HH_FILES) $(INTERFACE_HH_FILES) $(IMPLEMENTATION_HH_FILES)
ALL_CC_FILES = \
$(JSI_CC_FILES) $(INTERFACE_CC_FILES) $(IMPLEMENTATION_CC_FILES)
CWD_OBJ_FILES = \
$(JSI_OBJ_FILES) $(INTERFACE_OBJ_FILES) $(IMPLEMENTATION_OBJ_FILES) $(CLIENT_OBJS)
ALL_OBJ_FILES = $(CWD_OBJ_FILES)
# define the major targets:
# all : make everything
# clean :
.PHONY: all clean
all: $(FULL_LIBRARY_NAME)
clean:
-rm -f $(FULL_LIBRARY_NAME)
-rm -f $(FULL_LIBRARY_NAME).$(LIBRARY_VERSION)
-rm -f $(CWD_OBJ_FILES)
-rm -f $(JSI_HH_FILES)
-rm -f $(JSI_CC_FILES)
-rm -f lib/lib*
-rm -rf Templates.DB
-rm -f *~ dbx.log core
$(FULL_LIBRARY_NAME): $(ALL_OBJ_FILES)
-@echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
-@echo "Building component library '$@'"
-@echo `date`
-@rm -f $@.$(LIBRARY_VERSION) $@
$(CCC) -G $(MTFLAGS) -o $@.$(LIBRARY_VERSION) \
-h $(notdir $@).$(LIBRARY_VERSION) $^ \
-L $(BV1TO1)/lib \
-L $(BV1TO1)/lib/components \
-L $(BV1TO1)/orbix/lib \
-L $(BV1TO1)/rogue/lib \
-L ../../procroot/MQ/lib \
-R $(COMPONENT_LIB_DIR) \
-R $(BV1TO1)/lib \
-R $(BV1TO1)/lib/components \
-R $(BV1TO1)/orbix/lib \
-R $(BV1TO1)/rogue/lib \
-R $../../procroot/MQ/lib \
-l bvbasic -lbvdata -lorbixmt -lMQTransportHandler -lbvc -lrwtool_mt -ljsrt -lbuiltin\
(cd $(LIBRARY_DIR)/lib; \
ln -s $(notdir $@).$(LIBRARY_VERSION) $(notdir $@))
# build the _skel.cc files using the JSI compiler. We assume that
# they will be built in the original source directory
$(JSI_CC_FILES) : $(SOURCE_DIR)/%_skel.cc: $(SOURCE_DIR)/%.jsi
-@echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
-@echo "Building skeleton code file '$@'"
$(JSIC) $(JSICFLAGS) $<
$(JSI_HH_FILES) : %_skel.hh: %.jsi
-@echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
-@echo "Building skeleton header file '$@'"
$(JSIC) $(JSICFLAGS) $<
# build the .o files and put them into the OBJECT_DIR directory.
# We assume that the OBJECT_DIR exists.
$(OBJECT_DIR)/%.o: $(SOURCE_DIR)/%.cc
-@echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
-@echo "Building component file '$@'"
-@echo `date`
-@echo
$(CCC) -c $(CCFLAGS) -o $@ $<Hi,
Thanxs for the reply,
Here is the command that we use :
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Building skeleton code file '/appl/home/rmondal/sandbox/comproot/invoiceLookup/invoice_skel.cc'
/appl/bv1to1/bin/jsic /appl/home/rmondal/sandbox/comproot/invoiceLookup/invoice.jsi
CC -g -pic -pta -mt -D__EXTERN_C__=1 -DSVR4 -Dtrue=1 -Dfalse=0 -DEXCEPTIONS -D_REENTRANT -DRW_MULTI_THREAD -DNONE_CLASH -DIT_CATCH_ENV_EH -DIT_EX_MACROS -DRW_NO_FRIEND_INLINE_DECL -I. -I/appl/bv1to1/include/cpp -I/appl/bv1to1/rogue -I/appl/bv1to1/orbix/include -I../../procroot/MQ/idl -I../../procroot/MQ/include -I -I -I -I -I -I -g -mt -DRW_MULTI_THREAD -DJS_THREADSAFE -DJSFILE -KPIC -I/appl/home/rmondal/sandbox/comproot/invoiceLookup -I/appl/bv1to1/include/cpp -I/appl/bv1to1/orbix/include -I/appl/bv1to1/rogue -I/appl/bv1to1/js/include -DDEBUG -DNONE_CLASH -DTRACING -c /appl/home/rmondal/sandbox/comproot/invoiceLookup/invoice_skel.cc -
Core dump using iostream with Sun Studio 8
I'm running on Solaris 9 using C++ compiler Sun Studio 8, and encoutered a very strange problem.
My application failed with a core and here is the stack.
[1] t_splay(0x3774b470, 0x387a0ec0, 0x389aec60, 0x39e5ef1f, 0x3774b470, 0x1), at 0xfc347930
[2] t_delete(0x387a0ec0, 0x80, 0x39be9748, 0x20, 0x383ccd20, 0x0), at 0xfc347698
[3] mallocunlocked(0x80, 0x0, 0x21b08, 0xfc3bc000, 0x10, 0x20), at 0xfc346d40
[4] malloc(0x80, 0xfbaa7400, 0x1, 0x759c40, 0x0, 0x0), at 0xfc346b74
[5] operator new(0x80, 0x0, 0xd3a18, 0x759c74, 0x0, 0x8345fc), at 0x760c10
[6] strstreambuf::overflow(0xf41f6e28, 0x29, 0xf41f6e28, 0x39fe0e88, 0x39fe0e88, 0x8345fc), at 0x75bb1c
[7] streambuf::xsputn(0xf41f6e28, 0xfee00bc0, 0x1, 0x0, 0x81010100, 0x1), at 0x75ab94
[8] unsafe_ostream::outstr(0xf41f6e78, 0xfee00bbf, 0x0, 0x0, 0xf41f6e7c, 0xfffffffe), at 0x757bac
=>[9] unsafe_ostream::operator<<(this = 0xf41f6e78, _s = 0xfee00bbf ")"), line 1211 in "iostream.h"
[10] ostream::operator<<(this = 0xf41f6e74, _s = 0xfee00bbf ")"), line 1350 in "iostream.h"
[11] CorInterfaceEntity::ifState(this = 0x1bc3de78, newState = MISMATCH_OF_INSTALLED_AND_EXPECTED, needToSendEvent = false
Can somebody help me giving a direction of investigation ?
Is there perhaps known problem with iostream on Sun Studio 8 running on Solaris 9 ?
Thanks for any tips.
Yaakov Berkovitch
[email protected]But sorry for my insistence, but do you think that
purify or/and runtime are not able to detect any
corruption of the heap ?They can detect some kinds of corruption, such as some uses of an invalid pointer.
But a wild pointer that changes the value of data that is part of your program cannot be detected by RTC or Purify. Those programs can't know whether that change is intentional.
>
BTW, we are not using any volatile declaration, and weIf non-local data is shared among threads, it should be declared volatile. For example, suppose you have
x = foo;
... // code not changing foo
y = foo;
If foo is not marked volatile, the compiler is allowed to assume its value hasn't changed, and assign to y the same value assigned to x. If foo was changed by another thread, y will not have the current value of foo. The "volatile" declaration says that the variable's value might change without any obvious reason, and the compiler should generate code to load a fresh value each time it is referenced.
are using the rwtools library packaged with the
compiler, and are not using the STD library.OK, you are not running into a std::string synchronization bug.
>
Also about the compiler option -xarch=v8, is probably
not relevant for us because we are running Solaris 9.
So the relevant compiler is probably -xarch=v9. Do you
advise us using this option ?I think you misunderstand. The -xarch values refer to the kind of processor your program will run on.
The -xarch=v8 option generates 32-bit code that will run on all SPARC chips, including the chips found in very old SPARCstations. This option is the default for compilers prior to Sun Studio 9 (which ships this week).
The -xarch=v8plus option generates 32-bit code that runs only on UltraSPARC chips, found in Ultra workstations. These are the only kinds of workstations shipped by Sun since about 1996. Unless you need to support the ancient SPARCstations, we recommend compiling with -xarch=v8plus, to get smaller and faster code.
The -xarch=v9 option generates 64-bit code that runs only on UltraSPARC chips, an only on Solaris 7 or later. Unless your program requires a very large address space, you generally don't want to generate 64-bit code. On SPARC, 64-bit code is larger and slower than 32-bit code. (Type "long" and all pointers are 64 bits instead of 32 bits.)
>
Also I want to return you two new questions:
1) I read in another discussion,
http://forum.sun.com/thread.jsp?forum=5&thread=18124&me
sage=47854#47854
that another memory manager can be more efficient in
multi-threaded environment (libmtmalloc.so), and also
an alternate threads library (/usr/lib/lwp) that
reduced CPU usage. Do you advice us using this
alternate library ?The libmtmalloc library usually has better performance in MT programs than the default version of malloc. It also can result in more memory fragmentation. In that case, the larger working set can sometimes have a large negative effect, more than offsetting the MT efficiency. You have to experiment to see whether it is appropriate for your particlular program. If you are running into heap corruption, the pattern of corruption will probably be different with libmtmalloc than with the default malloc. The differences might provide a clue to what is wrong.
The alternative "T2" threads library was introduced in Solaris 8 as an option.
In Solaris 9 it is the default, so you are already using it.
>
2) We are using the Rogue Wave library shiped with the
compiler. Is it an up-to-date version ? Can we assume
that is a good choice or it will be preferable to move
to the STD library ?I assume you mean Rogue Wave Tools.h++. As explained in the compiler docs, this version of Tools is obsolete, and has not been supported for many years. We continue to provide it for customers who used it before the introduction of the C++ Standard Library in 1998, and who don't want to change their code. We do not recommend it for use in new code. -
Most Important Conference for Enterprise Content Management (ECM) marketplace in India
Enterprise Content Management (ECM) is no longer just about
technology, or just about content. It is about content, community,
and context. The deluge of data and information, coupled with the
ever-increasing need for compliance is forcing enterprises to take
a strategic look at ECM and its associated disciplines. To stack up
to competition, enterprises are looking up to faster, flexible, and
efficient business processes that can channelise copious,
unstructured information into meaningfully optimised, governed, and
digitally delivered data that is available to the right
stakeholders at the right time.
C-level executives, senior IT process management personnel,
marketing and content managers are looking to find the precise
solution that will fit the needs of their organization. What are
these available solutions, and how do they stack up to the needs of
a specific enterprise? What roles do strategic topics such as
Governance, Collaboration, Enterprise 2.0 play in the evaluation of
these solutions? What is a promising approach, and how do I find
the correct partners? The ECM track at Business Technology Summit
2008 offers strategic, technical, and business insights into all
aspects of ECM, including Business Process Management (BPM),
Business Rules Management (BRM), Master Data Management (MDM), Data
Warehousing & Knowledge Management, and Enterprise 2.0. The
summit will be held 22-26 September 2008 in Mumbai and Bangalore.
Summit website:
http://www.btsummit.com* Ismael Ghalimi is the father of Office 2.0. He is also
credited with creating the first standards-based BPMS?
* Nitin Borwankar is the father of Data 2.0?
* Alan Pelz Sharpe is an expert guest on BBC, CNN and ABC
Television
* Robert Marcus has been at the helm of technology at General
Motors, Boeing, Rogue Wave Software, MCC and HP?
* Peter Coffee, formerly technology editor at eWeek, has
appeared on CBS, NBC, CNN, Fox, and PBS newscasts.
* Kiran Datar co-introduced the concept of conferencing
services in India
* THAT YOU CAN REACH OUT TO ALL THESE CELEBRITY SPEAKERS AT
BT SUMMIT 2008?
VIEW THE COMPLETE SCHEDULE:
http://www.btsummit.com/summitSchedule.html
REGISTER NOW FOR AS LOW AS INR 2999/-:
http://www.btsummit.com/registration.html -
Schedule Announced for Conference & Workshops on SOA, SaaS, Virtualisation & ECM
When Technologies Mean Business, Participation Means
Advantage. The schedule for Business Technology Summit has been
announced. The theme of this year's summit is Riding the Workhorse
IT Hockey Stick, featuring a convergence of four co-located tracks
that have been identified as the power team for Workhorse IT -- SOA
& Web Services, SaaS/PaaS, Enterprise Content Management and
Virtualisation. View the complete schedule here
http://www.btsummit.com/summitSchedule.html
Gain Strategic, Technical and Business Insights at BT Summit
2008, Bangalore Edition:
* Dr. Chris Harding of The Open Group will present straight
from the source a deep dive workshop on Using TOGAF for SOA.
* Alan Pelz-Sharpe will put ECM and SOA through the SWOT
Grind, speak about Email Archiving and Discovery, and lead a
workshop on Selecting the Best ECM System.
* Peter Coffee will show you how to Code In the Cloud as well
as lead a deep dive workshop on Enterprise Readiness for the Cloud
* Dr. Matjaz Juric, CEO of the SOA Competency Center, will
conduct a hands-on workshop on BPMN to BPEL Modeling Business
Processes for SOA and three focused sessions on SOA Architectural
Patterns, SOA and BPM, and Designing Reusable Service Interfaces
* Dr. Robert Marcus, Author of the Global Grid, will present
the State of the Union - SOA Standards and lead a deep dive
workshop on Future Distributed Computing Architectures and the Role
of SOA
* Nitin Borwankar will show you How to Find the Silver Lining
in Cloud Services and lead a deep dive workshop on Affordable Data
Analytics and Data Warehousing
Business Technology Summit is your chance to refresh, pick up
new tips and techniques, and network with your peers to find
solutions to the most pressing business technology issues today.The
four technology tracks at the summit offer complimentary
synergistic for a robust IT infrastructure that you cannot afford
to ignore in your quest for business technology success.
REGISTER NOW FOR AS LOW AS INR 2999/-:
http://www.btsummit.com/registration.html
register
Text* Ismael Ghalimi is the father of Office 2.0. He is also
credited with creating the first standards-based BPMS?
* Nitin Borwankar is the father of Data 2.0?
* Alan Pelz Sharpe is an expert guest on BBC, CNN and ABC
Television
* Robert Marcus has been at the helm of technology at General
Motors, Boeing, Rogue Wave Software, MCC and HP?
* Peter Coffee, formerly technology editor at eWeek, has
appeared on CBS, NBC, CNN, Fox, and PBS newscasts.
* Kiran Datar co-introduced the concept of conferencing
services in India
* THAT YOU CAN REACH OUT TO ALL THESE CELEBRITY SPEAKERS AT
BT SUMMIT 2008?
VIEW THE COMPLETE SCHEDULE:
http://www.btsummit.com/summitSchedule.html
REGISTER NOW FOR AS LOW AS INR 2999/-:
http://www.btsummit.com/registration.html -
Linking issues while Migrating code from SUN CC 4.3 to SUN CC 5.8
Hello,
I am migrating code written in SUN CC 4.3 to SUN CC 5.8
I have compiled entire code with SUN CC 5.8 with -compact=4 option ,on machine with OS SunOS 5.8 Generic_Virtual sun4v sparc sun4v.
during linking phase i am facing issues like
(cd msggen; make CG="-fast -O3 -compat=4 -lC -features=extensions -i" all)
/opt/SUNWspro/bin/CC -o msggen msggen.o licensemessage.o ../../../../libs/lib/libgeneral.a
Undefined first referenced
symbol in file
cerr ../../../../libs/lib/libgeneral.a(string.o)
unsafe_ostream::operator<<(long) ../../../../libs/lib/libgeneral.a(string.o)
operator delete(void*) msggen.o
operator new(unsigned int) licensemessage.o
Iostream_init::Iostream_init(void) msggen.o
Iostream_init::~Iostream_init(void) msggen.o
istream::operator>>(char*) ../../../../libs/lib/libgeneral.a(string.o)
setw(int) ../../../../libs/lib/libgeneral.a(string.o)
unsafe_ostream::outstr(const char*, const char*) ../../../../libs/lib/libgeneral.a(string.o)
exrethrow_q msggen.o
ld: fatal: Symbol referencing errors. No output written to msggen
I felt like these issues are due to the standard header files. I am including the headers which comes with SUN CC 5.8 and I am using Rogue Wave rwav/ver09.1.
I am not getting any pointers to solve this issue,any pointer will be highly appriciated.
Thanks in advance,
Revathi R975741 wrote:
Yes i did migration by following the Migration Guide, while Migration i ve come across situations where a class method is invisible at many situations like...
C.h
class C
f1();
B.h
#include<C.h>
class B
f2();
A.C
#include<B.h>
class A:B
f1();-----> Error Not accessible so I changed to C::f1() then worked like this I ve came across many will it be a Problem, in migration Guide i haven't seen any of such.
}When you post a code example, it is best to copy/paste from actual code that you verified shows the problem. This example is nowhere near valid for any compiler, even with your suggested change.
- The class declarations are not terminated by a semicolon
- You can't call C::f1() using that syntax outside of class C or a class derived from class C because it is not a static function, and requires an object. You could call it as c.f1() if you had a c object of type C, except that f1() would still not be accessible.
The rules about accessibility have never changed. Please post an example that actually works with C++ 4.x or with C++ 5.x in -compat=4 mode, but that fails with -compat=5 mode.
>
Like this for operator overloading also , I haven't got any way to make function body available to function call, so i ve changed those functions to normal functions...I don't understand what you mean. An example would help.
>
what is a template cache?? How to delete it??
The template cache is also known as the template repository. See section 3.3.5 Template Repository in the Migration Guide. To delete the cache (repository) just remove the entire cache directory.
>
>
Another task of mine is, i am compiling a code written in SUN CC 5.5 to 5.8, would you suggest me the migration guide, I could get from 4 to 5 and 3 to 5 but
not from 5.5 to 5.8, I am not sure about in which compiler code is written but, I could able to compile the code with out compact option with SUN CC 5.5, CC 5.5 and 5.8 are fully compatible. There should be no migration issues. The exceptions would be invalid code that compiled due to a bug in the earlier compiler but is correctly diagnosed as an error with the later compiler. In rare cases, the later compiler has a bug not present in the earlier compiler (a regression). When found, regressions are fixed in patches. If you have an Oracle service contract, you can download patches from My Oracle Support. Otherwise, get the most recent compiler, which should not have those regressions.
but while trying to compile with 5.8 i am facing issues like
1. typecastingI would have to see an example.
2.virtual vector<int> getProcedureArgs() { return 0; } -----> Error: Cannot use int to initialize std::vector<int>
The compiler error message is correct. The function returns a vector<int>, but you can't create a vector<int> from an integer 0. That is, the vector template has several constructors, but none that accept a single integer argument.
At this point we have moved away from the original topic. If you have further questions, please start a new thread. -
How to solve the ambiguous defination of Rouguewave istream
on Solaris nevada & Studio 11, I compile the following code
#include <rw/rwdate.h>
#include <rw/rstream.h>
int main(){
// ENIAC start date
RWDate d(14, "February", 1945);
// Today
RWDate today;
cout << d.asString("%A, %B %d 19%y")
<< " was the day the ENIAC computer was" << endl
<< "first turned on. "
<< today - d << " days have gone by since then. " << endl;
return 0;
the compilers says that :
"/export/home/opt/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The name istream is ambiguous, istream and std::istream.
"/export/home/opt/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The name istream is ambiguous, istream and std::istream.
"/export/home/opt/SUNWspro/prod/include/CC/rw7/rw/rstream.h", line 46: Error: The type "istream" is incomplete.
"/export/home/opt/SUNWspro/prod/include/CC/rw7/rw/cstring.h", line 347: Error: The name istream is ambiguous, istream and std::istream.
How can I solve it?
Thanks.I suspect your CC commad line is not correct.
When using RW Tools.h++, use one of these options:
-library=rwtools7_std
-library=rwtools7,iostream
The first options is for use with the default libCstd and standard iostreams.
The second option is for use with "classic" iosttreams.
We do not support use of strlport with RW Tools.h++.
If you not using the version of RW Tools.h++ supplied with the compiler, you will have to check with Rogue Wave for instructions on using the library with Sun C++.
Maybe you are looking for
-
Oracle Sesame Adaptater - missing template for creation of a new SAIL repo.
Hi, I'm trying to deploy the Sesame Adaptater on my TOMCAT server. At the point 8.9 of the doc ( http://docs.oracle.com/cd/E18283_01/appdev.112/e11828/sem_sesame.htm#BABFFEFA) I'm suppose to type in the sesame console the following comand : "create o
-
Hi All, I ve integrated the NI Digital Waveform Editor 2.0 in my project as an external application. The user is required to use only 0's, 1's & Z's - the 3 states. The maximum no of signals can go upto only 16. Till before a month or so, we were usi
-
Handling unit deletion in delivery
Hi Can any one help us on how to unpack and delete HU from Outbound delivery? When we go through VL02N and do the unpacking and delete the HU and try to save that, system is giving the error message: Within the delivery, posting change not possible f
-
My visa card seems to be getting charged a monthly fee of around $13 to $14 and it recurs at the end of each month. I rang my bank and they told me to try to sort it out first with Skype. However, everytime I try to follow the link to report this fra
-
Hi... We have a webi report which is build from two databases.one is oracle and the other is sybase. So the common objects are merged.As they are merged it gives me all the values from both the databases.But i need to have a column in such way that i