summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/darwin.h
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-24 21:43:01 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-24 21:43:01 +0000
commit3bf418bdf9ae0e292afe5becb661ff9b441aa168 (patch)
tree501f0f2b9d0c19c624f6a6ae51162e498fd2b1e1 /gcc/config/rs6000/darwin.h
parent43c3808d513ce4aef22c0d67eb3bae55c65bf909 (diff)
downloadgcc-3bf418bdf9ae0e292afe5becb661ff9b441aa168.tar.gz
Index: gcc/ChangeLog
2006-02-24 Geoffrey Keating <geoffk@apple.com> * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS. * doc/invoke.texi (C++ Dialect Options): Document -fno-use-cxa-get-exception-ptr. * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1. * configure: Regenerate. * c.opt (fuse-cxa-get-exception-ptr): New. * c-opts.c (c_common_handle_option): Handle OPT_fuse_cxa_get_exception_ptr. * c-common.c (flag_use_cxa_atexit): Update documentation. (flag_use_cxa_get_exception_ptr): New. * c-common.h (flag_use_cxa_get_exception_ptr): New. * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve documentation. (C_COMMON_OVERRIDE_OPTIONS): New. Index: gcc/testsuite/ChangeLog 2006-02-24 Geoffrey Keating <geoffk@apple.com> * g++.dg/eh/uncaught1.C: Add dg-options for ppc-darwin. * g++.dg/eh/uncaught2.C: New. * g++.dg/eh/uncaught3.C: New. Index: gcc/cp/ChangeLog 2006-02-24 Geoffrey Keating <geoffk@apple.com> * except.c (expand_start_catch_block): Handle flag_use_cxa_get_exception_ptr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111427 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/darwin.h')
-rw-r--r--gcc/config/rs6000/darwin.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index 46119c8412f..30a2fff77d7 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -59,11 +59,10 @@
while (0)
-/* The Darwin ABI always includes AltiVec, can't be (validly) turned
- off. */
-
#define SUBTARGET_OVERRIDE_OPTIONS \
do { \
+ /* The Darwin ABI always includes AltiVec, can't be (validly) turned \
+ off. */ \
rs6000_altivec_abi = 1; \
TARGET_ALTIVEC_VRSAVE = 1; \
if (DEFAULT_ABI == ABI_DARWIN) \
@@ -87,6 +86,21 @@ do { \
} \
} while(0)
+#define C_COMMON_OVERRIDE_OPTIONS do { \
+ /* On powerpc, __cxa_get_exception_ptr is available starting in the \
+ 10.5 libstdc++.dylib. */ \
+ if ((! darwin_macosx_version_min \
+ || strverscmp (darwin_macosx_version_min, "10.5") < 0) \
+ && flag_use_cxa_get_exception_ptr == 2) \
+ flag_use_cxa_get_exception_ptr = 0; \
+ /* On powerpc, __cxa_atexit is available starting in the 10.4 \
+ libSystem.dylib. */ \
+ if ((! darwin_macosx_version_min \
+ || strverscmp (darwin_macosx_version_min, "10.4") < 0) \
+ && flag_use_cxa_atexit == 2) \
+ flag_use_cxa_atexit = 0; \
+} while (0)
+
/* Darwin has 128-bit long double support in libc in 10.4 and later.
Default to 128-bit long doubles even on earlier platforms for ABI
consistency; arithmetic will work even if libc and libm support is