summaryrefslogtreecommitdiffstats
path: root/source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch')
-rw-r--r--source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch106
1 files changed, 0 insertions, 106 deletions
diff --git a/source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch b/source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch
deleted file mode 100644
index 170577d50..000000000
--- a/source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff -Naur a/binutils-2.31.1/bfd/ChangeLog b/binutils-2.31.1/bfd/ChangeLog
---- a/binutils-2.31.1/bfd/ChangeLog 2018-07-18 00:50:08.000000000 -0700
-+++ b/binutils-2.31.1/bfd/ChangeLog 2018-08-31 02:34:06.852965351 -0700
-@@ -1,3 +1,15 @@
-+2018-08-25 H.J. Lu <hongjiu.lu@intel.com>
-+
-+ PR ld/23499
-+ * elf.c (_bfd_elf_get_symbol_version_string): Return
-+ _("<corrupt>") for corrupt symbol version info.
-+
-+2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
-+
-+ PR ld/23499
-+ * elflink.c (bfd_elf_record_link_assignment): Always clear
-+ h->verinfo.verdef when overriding a dynamic definition.
-+
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
-diff -Naur a/binutils-2.31.1/bfd/elf.c b/binutils-2.31.1/bfd/elf.c
---- a/binutils-2.31.1/bfd/elf.c 2018-08-31 01:07:56.804985073 -0700
-+++ b/binutils-2.31.1/bfd/elf.c 2018-08-31 02:36:40.067964767 -0700
-@@ -1884,7 +1884,7 @@
- {
- Elf_Internal_Verneed *t;
-
-- version_string = "";
-+ version_string = _("<corrupt>");
- for (t = elf_tdata (abfd)->verref;
- t != NULL;
- t = t->vn_nextref)
-diff -Naur a/binutils-2.31.1/bfd/elflink.c b/binutils-2.31.1/bfd/elflink.c
---- a/binutils-2.31.1/bfd/elflink.c 2018-07-13 00:33:03.000000000 -0700
-+++ b/binutils-2.31.1/bfd/elflink.c 2018-08-31 01:30:01.056980022 -0700
-@@ -686,13 +686,11 @@
- && !h->def_regular)
- h->root.type = bfd_link_hash_undefined;
-
-- /* If this symbol is not being provided by the linker script, and it is
-- currently defined by a dynamic object, but not by a regular object,
-- then clear out any version information because the symbol will not be
-- associated with the dynamic object any more. */
-- if (!provide
-- && h->def_dynamic
-- && !h->def_regular)
-+ /* If this symbol is currently defined by a dynamic object, but not
-+ by a regular object, then clear out any version information because
-+ the symbol will not be associated with the dynamic object any
-+ more. */
-+ if (h->def_dynamic && !h->def_regular)
- h->verinfo.verdef = NULL;
-
- /* Make sure this symbol is not garbage collected. */
-diff -Naur a/binutils-2.31.1/binutils/ChangeLog b/binutils-2.31.1/binutils/ChangeLog
---- a/binutils-2.31.1/binutils/ChangeLog 2018-07-18 00:50:26.000000000 -0700
-+++ b/binutils-2.31.1/binutils/ChangeLog 2018-08-31 02:37:48.060964507 -0700
-@@ -1,3 +1,9 @@
-+2018-08-25 H.J. Lu <hongjiu.lu@intel.com>
-+
-+ PR ld/23499
-+ * readelf.c (get_symbol_version_string): Return _("<corrupt>")
-+ for corrupt symbol version info.
-+
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
-diff -Naur a/binutils-2.31.1/binutils/readelf.c b/binutils-2.31.1/binutils/readelf.c
---- a/binutils-2.31.1/binutils/readelf.c 2018-06-24 11:38:57.000000000 -0700
-+++ b/binutils-2.31.1/binutils/readelf.c 2018-08-31 02:47:39.215962252 -0700
-@@ -11252,6 +11252,7 @@
- unsigned char data[2];
- unsigned short vers_data;
- unsigned long offset;
-+ unsigned short max_vd_ndx;
-
- if (!is_dynsym
- || version_info[DT_VERSIONTAGIDX (DT_VERSYM)] == 0)
-@@ -11269,6 +11270,8 @@
- if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data == 0)
- return NULL;
-
-+ max_vd_ndx = 0;
-+
- /* Usually we'd only see verdef for defined symbols, and verneed for
- undefined symbols. However, symbols defined by the linker in
- .dynbss for variables copied from a shared library in order to
-@@ -11311,6 +11314,9 @@
- ivd.vd_flags = BYTE_GET (evd.vd_flags);
- }
-
-+ if ((ivd.vd_ndx & VERSYM_VERSION) > max_vd_ndx)
-+ max_vd_ndx = ivd.vd_ndx & VERSYM_VERSION;
-+
- off += ivd.vd_next;
- }
- while (ivd.vd_ndx != (vers_data & VERSYM_VERSION) && ivd.vd_next != 0);
-@@ -11402,6 +11408,9 @@
- return (ivna.vna_name < strtab_size
- ? strtab + ivna.vna_name : _("<corrupt>"));
- }
-+ else if ((max_vd_ndx || (vers_data & VERSYM_VERSION) != 1)
-+ && (vers_data & VERSYM_VERSION) > max_vd_ndx)
-+ return _("<corrupt>");
- }
- return NULL;
- }