diff options
author | Matt Austern <austern@apple.com> | 2004-06-03 23:15:01 +0000 |
---|---|---|
committer | Matt Austern <austern@gcc.gnu.org> | 2004-06-03 23:15:01 +0000 |
commit | 0524c91d1eee6dc2f1629160ed309a5441fb3bdd (patch) | |
tree | 4dfc88aeb614a38019098dbdc178d9f2bfbb2b83 /gcc/config/darwin.h | |
parent | c073ab616f5692283e12bc93b82a14aad88adf9e (diff) | |
download | gcc-0524c91d1eee6dc2f1629160ed309a5441fb3bdd.zip gcc-0524c91d1eee6dc2f1629160ed309a5441fb3bdd.tar.gz gcc-0524c91d1eee6dc2f1629160ed309a5441fb3bdd.tar.bz2 |
re PR c++/15428 (vtables shouldn't always be weak on Darwin)
PR c++/15428
* default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
* config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
* doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
documentation to reflect the new macro name and to clarify its
meaning.
* cp/decl2.c (maybe_emit_vtables): If TARGET_WEAK_NOT_IN_ARCHIVE_TOC
is nonzero, and if we see a noninline definition of a key method,
make the vtables nonweak.
From-SVN: r82610
Diffstat (limited to 'gcc/config/darwin.h')
-rw-r--r-- | gcc/config/darwin.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 67bb294..37122e6 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -358,11 +358,10 @@ do { text_section (); \ #undef USE_COMMON_FOR_ONE_ONLY #define USE_COMMON_FOR_ONE_ONLY 0 -/* The Darwin linker doesn't like explicit template instantiations to be - coalesced, because it doesn't want coalesced symbols to appear in +/* The Darwin linker doesn't want coalesced symbols to appear in a static archive's table of contents. */ -#undef TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY -#define TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY 0 +#undef TARGET_WEAK_NOT_IN_ARCHIVE_TOC +#define TARGET_WEAK_NOT_IN_ARCHIVE_TOC 1 /* We make exception information linkonce. */ #undef TARGET_USES_WEAK_UNWIND_INFO |