diff options
author | midipix <writeonce@midipix.org> | 2015-06-08 22:37:25 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2015-06-08 22:37:25 -0400 |
commit | 50bf83687815a2f0b9651cd567a69a929f8a5147 (patch) | |
tree | c214177869bea2d8cb1de601c877b552aa66d787 /binutils-2.24.51.midipix.patch | |
parent | 1db189fe768b1e7e8e3da1f4db60a63407a97530 (diff) | |
download | chainport-50bf83687815a2f0b9651cd567a69a929f8a5147.tar.bz2 chainport-50bf83687815a2f0b9651cd567a69a929f8a5147.tar.xz |
binutils-2.24.51: updated patch.
+ PE/COFF: distinguish between GOT entries and import library entries when
deciding whether a symbol may be exported.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
Diffstat (limited to 'binutils-2.24.51.midipix.patch')
-rw-r--r-- | binutils-2.24.51.midipix.patch | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/binutils-2.24.51.midipix.patch b/binutils-2.24.51.midipix.patch index 720fc96..6fbbdb1 100644 --- a/binutils-2.24.51.midipix.patch +++ b/binutils-2.24.51.midipix.patch @@ -371,7 +371,7 @@ diff -ru --new-file a/binutils/winduni.c b/binutils/winduni.c { 437, "MS-ANSI" }, { 737, "MS-GREEK" }, --- a/ld/pe-dll.c 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/pe-dll.c 2015-06-06 13:29:26.820285683 -0400 ++++ b/ld/pe-dll.c 2015-06-08 22:21:42.593160828 -0400 @@ -40,6 +40,7 @@ #include "coff/internal.h" #include "../bfd/libcoff.h" @@ -416,7 +416,17 @@ diff -ru --new-file a/binutils/winduni.c b/binutils/winduni.c name = xmalloc (strlen ("__imp_") + strlen (sn) + 1); sprintf (name, "%s%s", "__imp_", sn); -@@ -761,7 +776,15 @@ +@@ -745,7 +760,8 @@ + free (name); + + if (blhe && blhe->type == bfd_link_hash_defined) +- continue; ++ if (strncmp (blhe->u.def.section->name, ".got$", 5)) ++ continue; + } + + if (pe_details->underscored && *sn == '_') +@@ -761,7 +777,15 @@ /* Fill data flag properly, from dlltool.c. */ if (!is_dup) p->flag_data = !(symbols[j]->flags & BSF_FUNCTION); @@ -432,7 +442,7 @@ diff -ru --new-file a/binutils/winduni.c b/binutils/winduni.c } } } -@@ -910,6 +933,7 @@ +@@ -910,6 +934,7 @@ if (blhe && (blhe->type == bfd_link_hash_defined @@ -440,7 +450,7 @@ diff -ru --new-file a/binutils/winduni.c b/binutils/winduni.c || (blhe->type == bfd_link_hash_common))) { count_exported++; -@@ -919,7 +943,7 @@ +@@ -919,7 +944,7 @@ /* Only fill in the sections. The actual offsets are computed in fill_exported_offsets() after common symbols are laid out. */ |