summaryrefslogtreecommitdiffstats
path: root/source/d/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/binutils')
-rwxr-xr-xsource/d/binutils/binutils.SlackBuild24
-rw-r--r--source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch106
-rw-r--r--source/d/binutils/patches/binutils.export.demangle.h.diff26
3 files changed, 17 insertions, 139 deletions
diff --git a/source/d/binutils/binutils.SlackBuild b/source/d/binutils/binutils.SlackBuild
index d628b45c9..4d662efe2 100755
--- a/source/d/binutils/binutils.SlackBuild
+++ b/source/d/binutils/binutils.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=binutils
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
@@ -50,23 +50,9 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-# Uncomment this to include the experimental gold linker:
-GOLD=" --enable-gold=yes --enable-ld=default "
-
# Set to ld.gold or ld.bfd:
DEFAULT_LD=ld.bfd
-# The --enable-initfini-array option was added in binutils-2.21.51.0.3.
-# This option currently causes a world of hurt trying to compile glibc,
-# and might break static libraries or cause other ill effects. There
-# is an upstream patch for glibc but it does not avoid all of the known
-# problems (and there may be some unknown ones, too), so we will avoid
-# introducing this feature for now.
-# References:
-# http://sourceware.org/bugzilla/show_bug.cgi?id=12343
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770
-NO_INITFINI=" --disable-initfini-array "
-
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
# The config option below is currently needed to compile on x86:
@@ -121,9 +107,6 @@ zcat $CWD/patches/binutils.export.demangle.h.diff.gz | patch -p1 --verbose || ex
# Don't check to see if "config.h" was included in the installed headers:
zcat $CWD/patches/binutils.no-config-h-check.diff.gz | patch -p1 --verbose || exit 1
-# Patch to Fix invalid version info and detect corrupted objects
-zcat $CWD/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch.gz | patch -p2 --verbose || exit 1
-
# Set %version to something halfway meaningful:
sed -i -e 's/%''{release}/slack15/g' bfd/Makefile{.am,.in}
@@ -155,8 +138,9 @@ CFLAGS="$SLKCFLAGS" \
--enable-threads \
--enable-targets=i386-efi-pe,${TARGET} \
--enable-install-libiberty \
- $GOLD \
- $NO_INITFINI \
+ --enable-gold=yes \
+ --enable-ld=default \
+ --enable-initfini-array \
$WERROR \
--build=$TARGET \
|| exit 1
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;
- }
diff --git a/source/d/binutils/patches/binutils.export.demangle.h.diff b/source/d/binutils/patches/binutils.export.demangle.h.diff
index f6834dee5..8720da592 100644
--- a/source/d/binutils/patches/binutils.export.demangle.h.diff
+++ b/source/d/binutils/patches/binutils.export.demangle.h.diff
@@ -1,30 +1,30 @@
---- ./bfd/Makefile.in.orig 2018-07-14 14:46:34.003826061 -0500
-+++ ./bfd/Makefile.in 2018-07-14 14:49:56.038807188 -0500
-@@ -248,7 +248,7 @@
+--- ./bfd/Makefile.in.orig 2019-02-02 09:47:56.000000000 -0600
++++ ./bfd/Makefile.in 2019-02-02 14:10:55.709944225 -0600
+@@ -249,7 +249,7 @@
esac
am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \
- $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/bfdlink.h \
-- $(INCDIR)/diagnostics.h
-+ $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h
+ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bfd_stdint.h \
+- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h
++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h
HEADERS = $(bfdinclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
-@@ -468,6 +468,7 @@
+@@ -469,6 +469,7 @@
@INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \
@INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h \
+ @INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h \
+@INSTALL_LIBBFD_TRUE@ $(INCDIR)/demangle.h \
- @INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(am__append_2)
+ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2)
@INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@
@INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la
---- ./bfd/Makefile.am.orig 2018-07-14 14:46:34.019826059 -0500
-+++ ./bfd/Makefile.am 2018-07-14 14:47:53.976818590 -0500
+--- ./bfd/Makefile.am.orig 2019-01-19 10:01:32.000000000 -0600
++++ ./bfd/Makefile.am 2019-02-02 14:09:28.363952384 -0600
@@ -33,7 +33,7 @@
bfdincludedir = @bfdincludedir@
bfdlib_LTLIBRARIES = libbfd.la
bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
-- $(INCDIR)/bfdlink.h $(INCDIR)/diagnostics.h
-+ $(INCDIR)/bfdlink.h $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h
+- bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h
++ bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h
else !INSTALL_LIBBFD
# Empty these so that the respective installation directories will not be created.
bfdlibdir =