summaryrefslogtreecommitdiff
path: root/binutils-2.24.51.midipix.patch
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-06-12 23:14:39 -0400
committermidipix <writeonce@midipix.org>2015-06-12 23:14:39 -0400
commit8dfab4770bef1c87b022cf2f072320696c5efd6c (patch)
treec1d906e1f4ab8db6ee7ea01b7590abd166cc70a2 /binutils-2.24.51.midipix.patch
parent50bf83687815a2f0b9651cd567a69a929f8a5147 (diff)
downloadchainport-8dfab4770bef1c87b022cf2f072320696c5efd6c.tar.bz2
chainport-8dfab4770bef1c87b022cf2f072320696c5efd6c.tar.xz
binutils-2.24.51: updated patch.
+ solve binutils bug 16858 by removing the offending code block in its entirety.
Diffstat (limited to 'binutils-2.24.51.midipix.patch')
-rw-r--r--binutils-2.24.51.midipix.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/binutils-2.24.51.midipix.patch b/binutils-2.24.51.midipix.patch
index 6fbbdb1..0bb2041 100644
--- a/binutils-2.24.51.midipix.patch
+++ b/binutils-2.24.51.midipix.patch
@@ -634,3 +634,33 @@ diff -ru a/bfd/linker.c b/bfd/linker.c
arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE);
if (arh == NULL)
goto error_return;
+diff -ru a/gas/config/tc-i386.c b/gas/config/tc-i386.c
+--- a/gas/config/tc-i386.c 2014-07-03 01:37:25.000000000 -0400
++++ b/gas/config/tc-i386.c 2015-06-12 22:40:37.100250091 -0400
+@@ -9148,25 +9148,6 @@
+ value += md_pcrel_from (fixP);
+ #endif
+ }
+-#if defined (OBJ_COFF) && defined (TE_PE)
+- if (fixP->fx_addsy != NULL
+- && S_IS_WEAK (fixP->fx_addsy)
+- /* PR 16858: Do not modify weak function references. */
+- && ! fixP->fx_pcrel)
+- {
+-#if !defined (TE_PEP)
+- /* For x86 PE weak function symbols are neither PC-relative
+- nor do they set S_IS_FUNCTION. So the only reliable way
+- to detect them is to check the flags of their containing
+- section. */
+- if (S_GET_SEGMENT (fixP->fx_addsy) != NULL
+- && S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_CODE)
+- ;
+- else
+-#endif
+- value -= S_GET_VALUE (fixP->fx_addsy);
+- }
+-#endif
+
+ /* Fix a few things - the dynamic linker expects certain values here,
+ and we must not disappoint it. */
+