aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Korn <dave.korn.cygwin@gmail.com>2010-05-06 16:06:18 +0000
committerDave Korn <davek@gcc.gnu.org>2010-05-06 16:06:18 +0000
commite97580ceb355ddae7a4119ed92bd48cd3b6fcb66 (patch)
tree14a7ef463338f7a9d1be35ffe9a006c58f72fa39
parentf24d84cccfc2a2753d485ffa11d3cf4bf30ad72a (diff)
downloadgcc-e97580ceb355ddae7a4119ed92bd48cd3b6fcb66.zip
gcc-e97580ceb355ddae7a4119ed92bd48cd3b6fcb66.tar.gz
gcc-e97580ceb355ddae7a4119ed92bd48cd3b6fcb66.tar.bz2
re PR target/43888 (FAIL: gcc.dg/alias-7.c execution test)
PR target/43888 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol handling to still return true for x64 targets. From-SVN: r159111
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/winnt.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f925089..467fc40 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ PR target/43888
+ * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
+ handling to still return true for x64 targets.
+
2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 34d3f42..3750e0c 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -324,7 +324,10 @@ i386_pe_binds_local_p (const_tree exp)
/* Or a weak one, now that they are supported. */
if ((TREE_CODE (exp) == VAR_DECL || TREE_CODE (exp) == FUNCTION_DECL)
&& DECL_WEAK (exp))
- return false;
+ /* But x64 gets confused and attempts to use unsupported GOTPCREL
+ relocations if we tell it the truth, so we still return true in
+ that case until the deeper problem can be fixed. */
+ return (TARGET_64BIT && DEFAULT_ABI == MS_ABI);
return true;
}