From e97580ceb355ddae7a4119ed92bd48cd3b6fcb66 Mon Sep 17 00:00:00 2001 From: Dave Korn Date: Thu, 6 May 2010 16:06:18 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/winnt.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f9250896a84..467fc409d6b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-05-06 Dave Korn + + 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 * 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 34d3f427d23..3750e0c4b08 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; } -- 2.30.2