diff options
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.patch | 106 |
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 170577d5..00000000 --- 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; - } |