bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/16858] weak external reference has wrong value


From: nickc at redhat dot com
Subject: [Bug gas/16858] weak external reference has wrong value
Date: Mon, 28 Apr 2014 13:40:37 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=16858

Nick Clifton <nickc at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #9 from Nick Clifton <nickc at redhat dot com> ---
Hi Guys,

  There was a problem with my proposed patch - it affected non pc-relative
references to weak symbols as well as pc-relative references.  (As was exposed
by a linker testsuite failure).  So I have adjusted the patch and checked it in
- this time with no testsuite regressions.

Cheers
  Nick

gas/ChangeLog
2014-04-28  Nick Clifton  <address@hidden>

    PR gas/16858
    * config/tc-i386.c (md_apply_fix): Do not adjust value of
    pc-relative fixes against weak symbols.

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index cb62cf5..707ce59 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -9146,7 +9146,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg
ATTRIBUTE_UNUSED)
 #endif
     }
 #if defined (OBJ_COFF) && defined (TE_PE)
-  if (fixP->fx_addsy != NULL && S_IS_WEAK (fixP->fx_addsy))
+  if (fixP->fx_addsy != NULL
+      && S_IS_WEAK (fixP->fx_addsy)
+      /* PR 16858: Do not modify weak function references.  */
+      && ! fixP->fx_pcrel)
     {
       value -= S_GET_VALUE (fixP->fx_addsy);
     }

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]