summaryrefslogtreecommitdiffstats
path: root/testing/source/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'testing/source/binutils')
-rwxr-xr-xtesting/source/binutils/binutils.SlackBuild247
-rw-r--r--testing/source/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch16
-rw-r--r--testing/source/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch11
-rw-r--r--testing/source/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch236
-rw-r--r--testing/source/binutils/patches/binutils-2.24-ldforcele.patch54
-rw-r--r--testing/source/binutils/patches/binutils-2.25-set-long-long.patch38
-rw-r--r--testing/source/binutils/patches/binutils-2.25-version.patch44
-rw-r--r--testing/source/binutils/patches/binutils-2.25.1-cleansweep.patch63
-rw-r--r--testing/source/binutils/patches/binutils.export.demangle.h.diff30
-rw-r--r--testing/source/binutils/patches/binutils.no-config-h-check.diff28
-rw-r--r--testing/source/binutils/slack-desc19
11 files changed, 786 insertions, 0 deletions
diff --git a/testing/source/binutils/binutils.SlackBuild b/testing/source/binutils/binutils.SlackBuild
new file mode 100755
index 000000000..d50e5cb07
--- /dev/null
+++ b/testing/source/binutils/binutils.SlackBuild
@@ -0,0 +1,247 @@
+#!/bin/bash
+
+# Copyright 2005-2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Modified 2011 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+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:-1}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+# Set to ld.gold or ld.bfd:
+DEFAULT_LD=ld.bfd
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ # The config option below is currently needed to compile on x86:
+ WERROR="--enable-werror=no"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ # The config option below is currently needed to compile on x86:
+ WERROR="--enable-werror=no"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-binutils
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf binutils-$VERSION
+tar xvf $CWD/binutils-$VERSION.tar.?z || exit 1
+cd binutils-$VERSION || exit 1
+
+# Various upstream patches:
+zcat $CWD/patches/binutils-2.20.51.0.2-libtool-lib64.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/binutils-2.25-version.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/binutils-2.25-set-long-long.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/binutils-2.20.51.0.10-copy-osabi.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/binutils-2.20.51.0.10-sec-merge-emit.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/binutils-2.24-ldforcele.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/binutils-2.25.1-cleansweep.patch.gz | patch -p2 --verbose || exit 1
+
+# Export the demangle.h header file:
+zcat $CWD/patches/binutils.export.demangle.h.diff.gz | patch -p1 --verbose || exit 1
+# 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
+
+# Set %version to something halfway meaningful:
+sed -i -e 's/%''{release}/slack15/g' bfd/Makefile{.am,.in}
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# End of preparations
+if echo "$*" | grep -qw -- --prep ; then
+ exit 0
+fi
+
+# Build for an x86 glibc2-based Linux system:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --with-docdir=/usr/doc/binutils-$VERSION \
+ --disable-compressed-debug-sections \
+ --enable-shared \
+ --enable-multilib \
+ --enable-64-bit-bfd \
+ --enable-plugins \
+ --enable-threads \
+ --enable-targets=i386-efi-pe,${TARGET} \
+ --enable-install-libiberty \
+ --enable-gold=yes \
+ --enable-ld=default \
+ --enable-initfini-array \
+ $WERROR \
+ --build=$TARGET \
+ || exit 1
+
+# Use "tooldir=/usr" to avoid internal references to the /usr/${TARGET}/
+# directory. While binutils won't actually use that directory after this,
+# we'll still create it since some people have made local use of it.
+# Note that this will place ldscripts in /usr/lib, even on $ARCH that
+# use LIBDIRSUFFIX=64. According to Ian Lance Taylor, the ldscripts have
+# been built into the linker for quite some time and the ones in the
+# filesystem aren't actually loaded. For the most part they are now
+# documentation and it doesn't matter where they reside.
+make clean || exit 1
+make tooldir=/usr $NUMJOBS || make tooldir=/usr || exit 1
+make tooldir=/usr install DESTDIR=$PKG || exit 1
+
+# Using tooldir=/usr also makes the /usr/${TARGET}/lib${LIBDIRSUFFIX}
+# directory obsolete, and the build will no longer install it. But since
+# some people might be making local use of that directory, we'll install
+# it anyway:
+mkdir -p $PKG/usr/${TARGET}/lib${LIBDIRSUFFIX}
+# Same with /usr/${TARGET}/bin:
+mkdir -p $PKG/usr/${TARGET}/bin
+
+# Don't ship .la files:
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+# COMMENTED OUT, since a valid use case was provided for windres on Linux.
+# None of these tools are very large, and unless they can be shown to be
+# non-functional, there's no good reason to exclude them.
+## Remove Windows specific tools / docs (if they exist):
+#rm -f $PKG/usr/bin/{dlltool,nlmconv,windres,windmc}
+#rm -f $PKG/usr/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+# Add a symlink since binutils's version of strings used to be called
+# "strings-GNU" on Slackware, and it's possible that people have scripts
+# that use that name:
+( cd $PKG/usr/bin ; ln -sf strings strings-GNU )
+
+## OBSOLETE, since we're using tooldir=/usr. But we'll keep this cruft as a
+## reference until we get the all clear on the tooldir= changes. :-)
+## Move ldscripts to /usr/lib${LIBDIRSUFFIX}, and then put symlinks in place
+#mv $PKG/usr/${TARGET}/lib/ldscripts $PKG/usr/lib${LIBDIRSUFFIX}
+#( cd $PKG/usr/${TARGET}
+# ln -s /usr/lib${LIBDIRSUFFIX}/ldscripts lib/ldscripts
+# for FILE in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib strip ; do
+# if [ -r "/usr/bin/$FILE" ]; then
+# rm -f bin/$FILE
+# ln -s /usr/bin/$FILE bin/$FILE
+# fi
+# done
+#)
+
+# If the requested default linker is present, make it the default:
+# Set the link differently on the system to change the default at runtime.
+if [ -r $PKG/usr/bin/$DEFAULT_LD ]; then
+ ( cd $PKG/usr/bin ; rm -f ld ; ln -sf $DEFAULT_LD ld )
+fi
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Remove some unneeded man pages, and then compress the rest
+rm -f $PKG/usr/man/man1/{dlltool,windres}.1
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \+
+ for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+
+# Compress info pages
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/binutils-$VERSION
+cp \
+ $CWD/release.binutils-* \
+ COPYING* ChangeLog.linux MAI* README* \
+ $PKG/usr/doc/binutils-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+chown -R root:root $PKG/usr/doc/binutils-$VERSION
+
+# Add slack-desc:
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/binutils-$VERSION-$ARCH-$BUILD.txz
+
+cat << EOF
+
+#############################
+oprofile links to libbfd so
+be sure to recompile that
+#############################
+
+EOF
diff --git a/testing/source/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch b/testing/source/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch
new file mode 100644
index 000000000..6bd9f3dfc
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch
@@ -0,0 +1,16 @@
+--- binutils-2.26.orig/bfd/elf.c 2016-01-25 10:11:33.482288877 +0000
++++ binutils-2.26/bfd/elf.c 2016-01-25 10:16:48.520223863 +0000
+@@ -1300,6 +1300,13 @@ _bfd_elf_copy_private_bfd_data (bfd *ibf
+ }
+ }
+
++ /* If the input BFD has the OSABI field set and the
++ output BFD does not, then copy the value. */
++ if (elf_elfheader (ibfd)->e_ident [EI_OSABI] != ELFOSABI_NONE
++ && elf_elfheader (obfd)->e_ident [EI_OSABI] == ELFOSABI_NONE)
++ elf_elfheader (obfd)->e_ident [EI_OSABI] =
++ elf_elfheader (ibfd)->e_ident [EI_OSABI];
++
+ return TRUE;
+ }
+
diff --git a/testing/source/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch b/testing/source/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch
new file mode 100644
index 000000000..238beb38b
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch
@@ -0,0 +1,11 @@
+--- binutils-2.26.orig/bfd/merge.c 2016-01-25 10:11:33.505289018 +0000
++++ binutils-2.26/bfd/merge.c 2016-01-25 10:19:56.961381656 +0000
+@@ -334,7 +334,7 @@ sec_merge_emit (bfd *abfd, struct sec_me
+
+ /* Trailing alignment needed? */
+ off = sec->size - off;
+- if (off != 0)
++ if (off != 0 && alignment_power)
+ {
+ if (contents)
+ memcpy (contents + offset, pad, off);
diff --git a/testing/source/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch b/testing/source/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch
new file mode 100644
index 000000000..142fc7e27
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch
@@ -0,0 +1,236 @@
+diff -rcp ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
+--- a/bfd/configure 2010-04-08 14:53:48.000000000 +0100
++++ b/bfd/configure 2010-04-08 14:56:50.000000000 +0100
+@@ -10762,10 +10762,34 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # find out which ABI we are using
++ libsuff=
++ case "$host_cpu" in
++ x86_64*|s390*|powerpc*|ppc*|sparc*)
++ echo 'int i;' > conftest.$ac_ext
++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *64-bit*)
++ libsuff=64
++ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++ fi
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/binutils/configure ./binutils/configure
+--- a/binutils/configure 2010-04-08 14:53:45.000000000 +0100
++++ b/binutils/configure 2010-04-08 14:56:21.000000000 +0100
+@@ -10560,10 +10560,34 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # find out which ABI we are using
++ libsuff=
++ case "$host_cpu" in
++ x86_64*|s390*|powerpc*|ppc*|sparc*)
++ echo 'int i;' > conftest.$ac_ext
++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *64-bit*)
++ libsuff=64
++ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++ fi
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/gas/configure ./gas/configure
+--- a/gas/configure 2010-04-08 14:53:47.000000000 +0100
++++ b/gas/configure 2010-04-08 14:57:24.000000000 +0100
+@@ -10547,10 +10547,34 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # find out which ABI we are using
++ libsuff=
++ case "$host_cpu" in
++ x86_64*|s390*|powerpc*|ppc*|sparc*)
++ echo 'int i;' > conftest.$ac_ext
++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *64-bit*)
++ libsuff=64
++ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++ fi
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/gprof/configure ./gprof/configure
+--- a/gprof/configure 2010-04-08 14:53:45.000000000 +0100
++++ b/gprof/configure 2010-04-08 14:57:50.000000000 +0100
+@@ -10485,10 +10485,34 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # find out which ABI we are using
++ libsuff=
++ case "$host_cpu" in
++ x86_64*|s390*|powerpc*|ppc*|sparc*)
++ echo 'int i;' > conftest.$ac_ext
++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *64-bit*)
++ libsuff=64
++ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++ fi
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+diff -rcp ../binutils-2.20.51.0.7.original/ld/configure ./ld/configure
+--- a/ld/configure 2010-04-08 14:53:44.000000000 +0100
++++ b/ld/configure 2010-04-08 14:58:21.000000000 +0100
+@@ -10966,10 +10966,34 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # find out which ABI we are using
++ libsuff=
++ case "$host_cpu" in
++ x86_64*|s390*|powerpc*|ppc*|sparc*)
++ echo 'int i;' > conftest.$ac_ext
++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *64-bit*)
++ libsuff=64
++ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++ fi
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+Only in .: .#libtool.m4
+Only in .: #libtool.m4#
+diff -rcp ../binutils-2.20.51.0.7.original/opcodes/configure ./opcodes/configure
+--- a/opcodes/configure 2010-04-08 14:53:45.000000000 +0100
++++ b/opcodes/configure 2010-04-08 14:59:10.000000000 +0100
+@@ -10496,10 +10496,34 @@
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
++ # find out which ABI we are using
++ libsuff=
++ case "$host_cpu" in
++ x86_64*|s390*|powerpc*|ppc*|sparc*)
++ echo 'int i;' > conftest.$ac_ext
++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ case `/usr/bin/file conftest.$ac_objext` in
++ *64-bit*)
++ libsuff=64
++ if test x"$sys_lib_search_path_spec" = x"/lib /usr/lib /usr/local/lib"; then
++ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
++ fi
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
++ ;;
++ esac
++ fi
++ rm -rf conftest*
++ ;;
++ esac
++
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
++ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
diff --git a/testing/source/binutils/patches/binutils-2.24-ldforcele.patch b/testing/source/binutils/patches/binutils-2.24-ldforcele.patch
new file mode 100644
index 000000000..194cf1ea9
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.24-ldforcele.patch
@@ -0,0 +1,54 @@
+Common subdirectories: ../binutils-2.24.orig/ld/emulparams and ld/emulparams
+Common subdirectories: ../binutils-2.24.orig/ld/emultempl and ld/emultempl
+diff -up ../binutils-2.24.orig/ld/ldlang.c ld/ldlang.c
+--- a/ld/ldlang.c 2014-05-09 10:35:04.589504928 +0100
++++ b/ld/ldlang.c 2014-05-09 10:35:55.515661478 +0100
+@@ -7096,6 +7096,18 @@
+ && little != NULL)
+ format = little;
+
++ if (getenv ("LD_FORCE_LE") != NULL)
++ {
++ if (strcmp (format, "elf64-powerpc") == 0)
++ format = "elf64-powerpcle";
++ else if (strcmp (format, "elf32-powerpc") == 0)
++ format = "elf32-powerpcle";
++ else if (strcmp (format, "elf64-big") == 0)
++ format = "elf64-little";
++ else if (strcmp (format, "elf32-big") == 0)
++ format = "elf32-little";
++ }
++
+ output_target = format;
+ }
+ }
+Only in ld: ldlang.c.orig
+diff -up ../binutils-2.24.orig/ld/ldmain.c ld/ldmain.c
+--- a/ld/ldmain.c 2014-05-09 10:35:04.593504941 +0100
++++ b/ld/ldmain.c 2014-05-09 10:35:55.515661478 +0100
+@@ -603,6 +603,18 @@
+ }
+ }
+
++ if ((strncmp (emulation, "elf64ppc", 8) == 0
++ || strncmp (emulation, "elf32ppc", 8) == 0)
++ && getenv ("LD_FORCE_LE") != NULL)
++ {
++ size_t len = strlen (emulation);
++ char *le = xmalloc (len + 2);
++ memcpy (le, emulation, 5);
++ le[5] = 'l';
++ memcpy (le + 6, emulation + 5, len - 4);
++ emulation = le;
++ }
++
+ return emulation;
+ }
+
+Only in ld: ldmain.c.orig
+Common subdirectories: ../binutils-2.24.orig/ld/ldscripts and ld/ldscripts
+Common subdirectories: ../binutils-2.24.orig/ld/.libs and ld/.libs
+Common subdirectories: ../binutils-2.24.orig/ld/po and ld/po
+Common subdirectories: ../binutils-2.24.orig/ld/scripttempl and ld/scripttempl
+Common subdirectories: ../binutils-2.24.orig/ld/testsuite and ld/testsuite
+Common subdirectories: ../binutils-2.24.orig/ld/tmpdir and ld/tmpdir
diff --git a/testing/source/binutils/patches/binutils-2.25-set-long-long.patch b/testing/source/binutils/patches/binutils-2.25-set-long-long.patch
new file mode 100644
index 000000000..1ea741811
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.25-set-long-long.patch
@@ -0,0 +1,38 @@
+diff -up binutils-2.25.orig/bfd/configure.ac binutils-2.25/bfd/configure.ac
+--- binutils-2.25.orig/bfd/configure.ac 2014-12-24 10:34:45.590491143 +0000
++++ binutils-2.25/bfd/configure.ac 2014-12-24 10:36:12.997981992 +0000
+@@ -183,11 +183,13 @@ if test "x${ac_cv_sizeof_long}" = "x8";
+ BFD_HOST_64BIT_LONG=1
+ test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
+ test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
+-elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
++fi
++if test "x${ac_cv_sizeof_long_long}" = "x8"; then
+ BFD_HOST_64BIT_LONG_LONG=1
+ test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
+ test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
+- if test "x${ac_cv_sizeof_void_p}" = "x8"; then
++ if test "x${ac_cv_sizeof_void_p}" = "x8" \
++ -a "x${ac_cv_sizeof_long}" != "x8"; then
+ BFD_HOSTPTR_T="unsigned long long"
+ fi
+ fi
+diff -up ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
+--- a/bfd/configure 2010-04-08 15:23:58.000000000 +0100
++++ b/bfd/configure 2010-04-08 15:24:06.000000000 +0100
+@@ -12819,11 +12819,13 @@
+ BFD_HOST_64BIT_LONG=1
+ test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
+ test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
+-elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
++fi
++if test "x${ac_cv_sizeof_long_long}" = "x8"; then
+ BFD_HOST_64BIT_LONG_LONG=1
+ test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
+ test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
+- if test "x${ac_cv_sizeof_void_p}" = "x8"; then
++ if test "x${ac_cv_sizeof_void_p}" = "x8" \
++ -a "x${ac_cv_sizeof_long}" != "x8"; then
+ BFD_HOSTPTR_T="unsigned long long"
+ fi
+ fi
diff --git a/testing/source/binutils/patches/binutils-2.25-version.patch b/testing/source/binutils/patches/binutils-2.25-version.patch
new file mode 100644
index 000000000..d97e81bc4
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.25-version.patch
@@ -0,0 +1,44 @@
+--- binutils-2.26.orig/bfd/Makefile.am 2016-01-25 10:11:33.505289018 +0000
++++ binutils-2.26/bfd/Makefile.am 2016-01-25 10:13:23.489964145 +0000
+@@ -1043,8 +1043,8 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD
+ bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in
+ @echo "creating $@"
+ @bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
+- bfd_version_string="\"$(VERSION)\"" ;\
+- bfd_soversion="$(VERSION)" ;\
++ bfd_version_string="\"$(VERSION)-%{release}\"" ;\
++ bfd_soversion="$(VERSION)-%{release}" ;\
+ bfd_version_package="\"$(PKGVERSION)\"" ;\
+ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
+ . $(srcdir)/development.sh ;\
+@@ -1055,7 +1055,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
+ fi ;\
+ $(SED) -e "s,@bfd_version@,$$bfd_version," \
+ -e "s,@bfd_version_string@,$$bfd_version_string," \
+- -e "s,@bfd_version_package@,$$bfd_version_package," \
++ -e "s,@bfd_version_package@,\"version \"," \
+ -e "s,@report_bugs_to@,$$report_bugs_to," \
+ < $(srcdir)/version.h > $@; \
+ echo "$${bfd_soversion}" > libtool-soversion
+--- binutils-2.26.orig/bfd/Makefile.in 2016-01-25 10:11:33.505289018 +0000
++++ binutils-2.26/bfd/Makefile.in 2016-01-25 10:14:17.818297941 +0000
+@@ -2111,8 +2111,8 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES)
+ bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in
+ @echo "creating $@"
+ @bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
+- bfd_version_string="\"$(VERSION)\"" ;\
+- bfd_soversion="$(VERSION)" ;\
++ bfd_version_string="\"$(VERSION)-%{release}\"" ;\
++ bfd_soversion="$(VERSION)-%{release}" ;\
+ bfd_version_package="\"$(PKGVERSION)\"" ;\
+ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
+ . $(srcdir)/development.sh ;\
+@@ -2123,7 +2123,7 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
+ fi ;\
+ $(SED) -e "s,@bfd_version@,$$bfd_version," \
+ -e "s,@bfd_version_string@,$$bfd_version_string," \
+- -e "s,@bfd_version_package@,$$bfd_version_package," \
++ -e "s,@bfd_version_package@,\"version \"," \
+ -e "s,@report_bugs_to@,$$report_bugs_to," \
+ < $(srcdir)/version.h > $@; \
+ echo "$${bfd_soversion}" > libtool-soversion
diff --git a/testing/source/binutils/patches/binutils-2.25.1-cleansweep.patch b/testing/source/binutils/patches/binutils-2.25.1-cleansweep.patch
new file mode 100644
index 000000000..2603d1302
--- /dev/null
+++ b/testing/source/binutils/patches/binutils-2.25.1-cleansweep.patch
@@ -0,0 +1,63 @@
+--- ../binutils-2.25.1.orig/ld/testsuite/ld-plugin/lto.exp 2016-01-08 15:24:58.241083264 +0000
++++ ld/testsuite/ld-plugin/lto.exp 2016-01-08 16:30:51.845827089 +0000
+@@ -386,6 +386,11 @@ if { [at_least_gcc_version 4 7] } {
+ }
+ }
+
++# Fedora specific binutils patches break some of the tests that follow...
++restore_notify
++return
++
++
+ # Run "ld -r" to generate inputs for complex LTO tests.
+ run_dump_test "lto-3r"
+ remote_exec host "mv" "tmpdir/dump tmpdir/lto-3.o"
+--- ../binutils-2.26.orig/ld/testsuite/ld-size/size.exp 2016-01-27 15:51:27.223093570 +0000
++++ ld/testsuite/ld-size/size.exp 2016-01-27 16:00:04.262015016 +0000
+@@ -113,37 +113,6 @@ run_cc_link_tests [list \
+ "libsize-6b.so" \
+ ] \
+ [list \
+- "Build libsize-7.so" \
+- "-shared" \
+- "-fPIC" \
+- {size-7b.c} \
+- {} \
+- "libsize-7.so" \
+- ] \
+- [list \
+- "Build size-7" \
+- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libsize-7.so" \
+- "$NOPIE_CFLAGS" \
+- {size-7a.c} \
+- {{readelf -rW size-7.rd}} \
+- "size-7.exe" \
+- ] \
+- [list \
+- "Build libsize-8.so" \
+- "-shared" "-fPIC" \
+- {size-8b.c} \
+- {} \
+- "libsize-8.so" \
+- ] \
+- [list \
+- "Build size-8" \
+- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libsize-8.so" \
+- "$NOPIE_CFLAGS" \
+- {size-8a.c} \
+- {{readelf -rW size-8.rd}} \
+- "size-8.exe" \
+- ] \
+- [list \
+ "Build libsize-9.so" \
+ "-shared" \
+ "-fPIC" \
+@@ -161,6 +130,8 @@ run_cc_link_tests [list \
+ ] \
+ ]
+
++return
++
+ # Check if size relocation works at run-time.
+ catch "exec tmpdir/size-7.exe > tmpdir/dump.out" exec_output
+ if ![string match "" $exec_output] then {
diff --git a/testing/source/binutils/patches/binutils.export.demangle.h.diff b/testing/source/binutils/patches/binutils.export.demangle.h.diff
new file mode 100644
index 000000000..8720da592
--- /dev/null
+++ b/testing/source/binutils/patches/binutils.export.demangle.h.diff
@@ -0,0 +1,30 @@
+--- ./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 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
+@@ -469,6 +469,7 @@
+ @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \
+ @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
+ @INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h \
++@INSTALL_LIBBFD_TRUE@ $(INCDIR)/demangle.h \
+ @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 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 \
+- 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 =
diff --git a/testing/source/binutils/patches/binutils.no-config-h-check.diff b/testing/source/binutils/patches/binutils.no-config-h-check.diff
new file mode 100644
index 000000000..55cba7fbf
--- /dev/null
+++ b/testing/source/binutils/patches/binutils.no-config-h-check.diff
@@ -0,0 +1,28 @@
+--- ./bfd/bfd-in2.h.orig 2013-02-27 14:28:03.000000000 -0600
++++ ./bfd/bfd-in2.h 2013-04-02 15:57:44.847202021 -0500
+@@ -32,11 +32,6 @@
+ #ifndef __BFD_H_SEEN__
+ #define __BFD_H_SEEN__
+
+-/* PR 14072: Ensure that config.h is included first. */
+-#if !defined PACKAGE && !defined PACKAGE_VERSION
+-#error config.h must be included before this header
+-#endif
+-
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+--- ./bfd/bfd-in.h.orig 2013-02-27 14:28:03.000000000 -0600
++++ ./bfd/bfd-in.h 2013-04-02 15:57:44.846202021 -0500
+@@ -25,11 +25,6 @@
+ #ifndef __BFD_H_SEEN__
+ #define __BFD_H_SEEN__
+
+-/* PR 14072: Ensure that config.h is included first. */
+-#if !defined PACKAGE && !defined PACKAGE_VERSION
+-#error config.h must be included before this header
+-#endif
+-
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
diff --git a/testing/source/binutils/slack-desc b/testing/source/binutils/slack-desc
new file mode 100644
index 000000000..b2d81d1d8
--- /dev/null
+++ b/testing/source/binutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+binutils: binutils (GNU binary development tools)
+binutils:
+binutils: Binutils is a collection of binary utilities. It includes "as" (the
+binutils: portable GNU assembler), "ld" (the GNU linker), and other utilities
+binutils: for creating and working with binary programs.
+binutils:
+binutils: These utilities are REQUIRED to compile C, C++, Objective-C, Fortran,
+binutils: and most other programming languages.
+binutils:
+binutils:
+binutils: