diff options
author | Mark Mitchell <mark@codesourcery.com> | 2004-09-03 00:43:59 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2004-09-03 00:43:59 +0000 |
commit | 40a1c5cb5e9ac61a3152e84815b60069d80e31b1 (patch) | |
tree | 00f44a86fe46ab3dee185812c70fc99b06132af2 /gcc/config | |
parent | 085b68226c2664ccc04c9458e3985e328ea9e79e (diff) | |
download | gcc-40a1c5cb5e9ac61a3152e84815b60069d80e31b1.zip gcc-40a1c5cb5e9ac61a3152e84815b60069d80e31b1.tar.gz gcc-40a1c5cb5e9ac61a3152e84815b60069d80e31b1.tar.bz2 |
bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
* config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
(TARGET_OS_CPP_BUILTINS): Likewise.
* config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
TARGET_BPABI_CPP_BUILTINS.
* g++.dg/abi/arm_rtti1.C: New test.
* libsupc++/typeinfo: Honor __GXX_MERGED_TYPEINFO_NAMES if already
defined.
[[Split portion of a mixed commit.]]
From-SVN: r87018.2
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/arm/bpabi.h | 16 | ||||
-rw-r--r-- | gcc/config/arm/symbian.h | 7 |
2 files changed, 21 insertions, 2 deletions
diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index 60d6e75..e2be114 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -84,3 +84,19 @@ #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, l2f) #endif +/* The BPABI requires that we always use an out-of-line implementation + of RTTI comparison, even if the target supports weak symbols, + because the same object file might be used on a target that does + not support merging symbols across DLL boundaries. This macro is + broken out separately so that it can be used within + TARGET_OS_CPP_BUILTINS in configuration files for systems based on + the BPABI. */ +#define TARGET_BPABI_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ + } \ + while (false) + +#define TARGET_OS_CPP_BUILTINS() \ + TARGET_BPABI_CPP_BUILTINS() diff --git a/gcc/config/arm/symbian.h b/gcc/config/arm/symbian.h index 5a59e79..a900d76 100644 --- a/gcc/config/arm/symbian.h +++ b/gcc/config/arm/symbian.h @@ -75,9 +75,12 @@ #define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) /* empty */ /* Define the __symbian__ macro. */ +#undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() \ - do \ + do \ { \ + /* Include the default BPABI stuff. */ \ + TARGET_BPABI_CPP_BUILTINS (); \ builtin_define ("__symbian__"); \ - } \ + } \ while (false) |