summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ace/config-sunos5.5-sunc++-4.x.h17
-rw-r--r--include/makeinclude/platform_sunos5_sunc++.GNU8
2 files changed, 16 insertions, 9 deletions
diff --git a/ace/config-sunos5.5-sunc++-4.x.h b/ace/config-sunos5.5-sunc++-4.x.h
index 93c03f82498..53156e2e1c9 100644
--- a/ace/config-sunos5.5-sunc++-4.x.h
+++ b/ace/config-sunos5.5-sunc++-4.x.h
@@ -17,6 +17,16 @@
// Sun C++ 4.2 (and beyond) supports template specialization.
# define ACE_TEMPLATES_REQUIRE_SPECIALIZATION
# define ACE_TEMPLATES_REQUIRE_SOURCE
+
+ // ACE_HAS_EXCEPTIONS precludes -noex in
+ // include/makeinclude/platform_macros.GNU. But beware, we have
+ // seen problems with exception handling on multiprocessor
+ // UltraSparcs: threaded executables core dump when threads exit.
+ // This problem does not seem to appear on single-processor UltraSparcs.
+ // And, it is solved with the application of patch
+ // 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC"
+ // to Sun C++ 4.2.
+# define ACE_HAS_EXCEPTIONS
# endif
#endif /* __SUNPRO_CC */
@@ -28,13 +38,6 @@
#define ACE_HAS_TEMPLATE_SPECIALIZATION
-// ACE_HAS_EXCEPTIONS precludes -noex, but without -noex causes problems
-// with Sun C++ 4.1/4.2 on multiprocessor UltraSparcs: threaded
-// executables core dump when threads exit. This problem does not seem
-// to appear on single-processor UltraSparcs. So until exception handling
-// gets fixed on MP machines, we can't use this with Sun C++ 4.1/4.2 . . .
-// #define ACE_HAS_EXCEPTIONS
-
// Platform supports pread() and pwrite()
#define ACE_HAS_P_READ_WRITE
diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU
index 324f16e43d8..2f0435e50a7 100644
--- a/include/makeinclude/platform_sunos5_sunc++.GNU
+++ b/include/makeinclude/platform_sunos5_sunc++.GNU
@@ -17,11 +17,15 @@
CC = cc
CXX = CC
CFLAGS += $(DCFLAGS) -mt
-#### Exception handling breaks on MP machines, see config*h files.
+#### Exception handling breaks on MP machines prior to Sun C++ 4.2
+#### with jumbo patch 104631-02, see ace/config-sunos5.5-sunc++-4.x.h.
+#### If you are using a version of Sun C++ prior to 4,2, or haven't
+#### applied that jumbo patch to your 4.2, then add "-noex" to
+#### CCFLAGS below.
#### -pta instantiates all template members, which makes libraries bigger.
#### But, it's supposed to put each member into it's own .o, so executable
#### size should not be penalized.
-CCFLAGS += $(CFLAGS) -noex -pta
+CCFLAGS += $(CFLAGS) -pta
DCFLAGS += -g
DLD = $(CXX)
LD = $(CXX)