--- /dev/null
+--- bfd/reloc.c
++++ bfd/reloc.c
+@@ -635,15 +651,9 @@ bfd_perform_relocation (bfd *abfd,
+ if (howto == NULL)
+ return bfd_reloc_undefined;
+
+- /* Is the address of the relocation really within the section?
+- Include the size of the reloc in the test for out of range addresses.
+- PR 17512: file: c146ab8b, 46dff27f, 38e53ebf. */
++ /* Is the address of the relocation really within the section? */
+ octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+- if (octets + bfd_get_reloc_size (howto)
+- > bfd_get_section_limit_octets (abfd, input_section)
+- /* Check for an overly large offset which
+- masquerades as a negative value too. */
+- || (octets + bfd_get_reloc_size (howto) < bfd_get_reloc_size (howto)))
++ if (!reloc_offset_in_range (howto, abfd, input_section, octets))
+ return bfd_reloc_outofrange;
+
+ /* Work out which section the relocation is targeted at and the
--- /dev/null
+--- binutils/dwarf.c
++++ binutils/dwarf.c
+@@ -602,36 +607,56 @@ static const unsigned char *
+ fetch_indirect_string (dwarf_vma offset)
+ {
+ struct dwarf_section *section = &debug_displays [str].section;
++ const unsigned char * ret;
+
+ if (section->start == NULL)
+ return (const unsigned char *) _("<no .debug_str section>");
+
+- if (offset > section->size)
++ if (offset >= section->size)
+ {
+ warn (_("DW_FORM_strp offset too big: %s\n"),
+ dwarf_vmatoa ("x", offset));
+ return (const unsigned char *) _("<offset is too big>");
+ }
+
+- return (const unsigned char *) section->start + offset;
++ ret = section->start + offset;
++ /* Unfortunately we cannot rely upon the .debug_str section ending with a
++ NUL byte. Since our caller is expecting to receive a well formed C
++ string we test for the lack of a terminating byte here. */
++ if (strnlen ((const char *) ret, section->size - offset)
++ == section->size - offset)
++ ret = (const unsigned char *)
++ _("<no NUL byte at end of .debug_str section>");
++
++ return ret;
+ }
+
+ static const unsigned char *
+ fetch_indirect_line_string (dwarf_vma offset)
+ {
+ struct dwarf_section *section = &debug_displays [line_str].section;
++ const unsigned char * ret;
+
+ if (section->start == NULL)
+ return (const unsigned char *) _("<no .debug_line_str section>");
+
+- if (offset > section->size)
++ if (offset >= section->size)
+ {
+ warn (_("DW_FORM_line_strp offset too big: %s\n"),
+ dwarf_vmatoa ("x", offset));
+ return (const unsigned char *) _("<offset is too big>");
+ }
+
+- return (const unsigned char *) section->start + offset;
++ ret = section->start + offset;
++ /* Unfortunately we cannot rely upon the .debug_line_str section ending
++ with a NUL byte. Since our caller is expecting to receive a well formed
++ C string we test for the lack of a terminating byte here. */
++ if (strnlen ((const char *) ret, section->size - offset)
++ == section->size - offset)
++ ret = (const unsigned char *)
++ _("<no NUL byte at end of .debug_line_str section>");
++
++ return ret;
+ }
+
+ static const char *
--- /dev/null
+Cross-binutils debian packages can be built directly from the binutils
+source package.
+
+To build a cross-binutils package:
+
+ o Download and unpack the binutils source package:
+
+ apt-get source binutils
+
+ o Ensure you have the binutils build-dependencies installed:
+
+ apt-get build-dep binutils
+
+ o Then build the cross-binutils package:
+
+ TARGET=<your-target> dpkg-buildpackage -b -uc -us
+ or
+ echo arm >debian/target; dpkg-buildpackage -b -uc -us
+
+ (substitute your target name, e.g. "arm" or "m68k", instead of
+ "<your-target>")
+
+---
+Nikita Youshchenko <yoush@cs.msu.su>
+Hector Oron <zumbi@debian.org>
+Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
--- /dev/null
+The package uses dpatch to apply patches on top of the upstream source.
+See /usr/share/doc/dpatch/README.source.gz.
--- /dev/null
+@PKG@ binary: package-name-doesnt-match-sonames
+@PKG@ binary: non-standard-dir-in-usr
+
+# needed for kfreebsd and the hurd
+@PKG@ binary: file-in-unusual-dir
+
+# internal libs, with the target name encoded
+@PKG@ binary: shlib-in-multi-arch-foreign-package
--- /dev/null
+libbfd @VER@-@ARCH@@DATE_EXT@ @PKG@ (>= @DEB_UVER@), @PKG@ (<< @DEB_NVER@)
+libopcodes @VER@-@ARCH@@DATE_EXT@ @PKG@ (>= @DEB_UVER@), @PKG@ (<< @DEB_NVER@)
--- /dev/null
+# don't warn about missing man pages for diverted binaries
+binutils-hppa64-linux-gnu binary: binary-without-manpage
+
+# the API of the shared libs is not public, don't care about the name
+binutils-hppa64-linux-gnu binary: package-name-doesnt-match-sonames
+
+binutils-hppa64-linux-gnu binary: non-standard-dir-in-usr
--- /dev/null
+libbfd @VER@-hppa64@DATE_EXT@ binutils-hppa64-linux-gnu
+libopcodes @VER@-hppa64@DATE_EXT@ binutils-hppa64-linux-gnu
--- /dev/null
+# package only has symlinks
+binutils-multiarch-dev binary: control-file-is-empty md5sums
--- /dev/null
+# don't warn about missing man pages for diverted binaries
+binutils-multiarch binary: binary-without-manpage
+
+# the API of the shared libs is not public, don't care about the name
+binutils-multiarch binary: package-name-doesnt-match-sonames
+
+# the upstream name, we don't care
+binutils-multiarch binary: dev-pkg-without-shlib-symlink
+
+# not in binutils-multiarch, just move these away
+binutils-multiarch: diversion-for-unknown-file usr/lib/libopcodes.a preinst:19
+binutils-multiarch: diversion-for-unknown-file usr/lib/libbfd.a preinst:16
+
--- /dev/null
+#! /bin/sh
+# Update .so symlinks and remove obsolete diversions.
+#
+# Removing a diversion requires a guarantee that the conflicting
+# file is not present any more, and we cannot guarantee that if
+# some other version of binutils-multiarch is installed.
+# So we remove the diversions in postinst, not preinst.
+set -e
+ma=@DEB_MULTIARCH@
+triplet=@DEB_TRIPLET@
+old_diversion() {
+ local divertto file
+ file=$1
+ divertto=${2-$file.single}
+ if
+ dpkg-divert --package binutils-multiarch --list |
+ grep -q -F "$divertto"
+ then
+ dpkg-divert --package binutils-multiarch \
+ --remove --rename \
+ --divert "$divertto" "$file"
+ fi
+}
+
+# remove obsolete diversions
+old_diversion /usr/bin/ld.bfd
+old_diversion /usr/bin/c++filt
+old_diversion /usr/lib/libbfd.a /usr/lib/libbfd-single.a
+old_diversion /usr/lib/libopcodes.a /usr/lib/libopcodes-single.a
+old_diversion /usr/bin/ld
+old_diversion /usr/bin/elfedit
+for f in elf32_sparc elf32ppc elf64alpha elf_i386 m68kelf \
+ alpha i386linux m68klinux sparclinux sun4
+do
+ for ext in x xbn xn xr xs xu
+ do
+ old_diversion /usr/lib/ldscripts/$f.$ext
+ done
+done
+old_diversion /usr/lib/libbfd-2.9.1.0.15.so.0.0.0 \
+ /usr/lib/libbfd-single-2.9.1.0.15.so.0.0.0
+old_diversion /usr/lib/libopcodes-2.9.1.0.15.so.0.0.0 \
+ /usr/lib/libopcodes-single-2.9.1.0.15.so.0.0.0
+old_diversion /usr/lib/libbfd.la /usr/lib/libbfd-single.la
+old_diversion /usr/lib/libopcodes.la /usr/lib/libopcodes-single.la
+old_diversion /usr/include/bfd.h /usr/include/bfd.single.h
+old_diversion /usr/lib/ldscripts
+
+rm -f /usr/lib/libbfd-*-multiarch.so.0
+rm -f /usr/lib/libopcodes-*-multiarch.so.0
+
+old_diversion /usr/bin/addr2line
+old_diversion /usr/bin/ar
+old_diversion /usr/bin/embedspu
+old_diversion /usr/bin/gprof
+old_diversion /usr/bin/nm
+old_diversion /usr/bin/objcopy
+old_diversion /usr/bin/objdump
+old_diversion /usr/bin/ranlib
+old_diversion /usr/bin/readelf
+old_diversion /usr/bin/size
+old_diversion /usr/bin/strings
+old_diversion /usr/bin/strip
+
+case "$ma" in i386-*)
+ if test -n "$context" && dpkg --compare-versions "$2" lt "2.27-8"; then
+ old_diversion /usr/bin/$ma-addr2line
+ old_diversion /usr/bin/$ma-ar
+ old_diversion /usr/bin/$ma-embedspu
+ old_diversion /usr/bin/$ma-gprof
+ old_diversion /usr/bin/$ma-nm
+ old_diversion /usr/bin/$ma-objcopy
+ old_diversion /usr/bin/$ma-objdump
+ old_diversion /usr/bin/$ma-ranlib
+ old_diversion /usr/bin/$ma-readelf
+ old_diversion /usr/bin/$ma-size
+ old_diversion /usr/bin/$ma-strings
+ old_diversion /usr/bin/$ma-strip
+ fi
+esac
--- /dev/null
+#! /bin/sh
+set -e
+this_ver=@DEB_VER@; # this version
+ma=@DEB_MULTIARCH@
+triplet=@DEB_TRIPLET@
+# action: upgrade, abort-upgrade, remove, abort-install, disappear,
+# purge, or failed-upgrade.
+context=$1
+if
+ test "$context" = failed-upgrade &&
+ dpkg --compare-versions "$this_ver" lt "$2"
+then
+ # postrm of the future failed.
+ # Who knows what it was supposed to do? Abort.
+ exit 1
+fi
+new_ver=; # version replacing this one, if any.
+case "$context" in
+failed-upgrade)
+ new_ver=$this_ver ;;
+abort-install|disappear)
+ new_ver= ;;
+*)
+ new_ver=$2 ;;
+esac
+
+diversion() {
+ local added_ver divertto file
+ added_ver=$1
+ file=$2
+ divertto=${3-$file.single}
+
+ if
+ test "$context" != purge &&
+ dpkg --compare-versions "$new_ver" lt "$added_ver"
+ then
+ dpkg-divert --package binutils-multiarch \
+ --remove --rename --divert "$divertto" "$file"
+ fi
+}
+
+
+for prog in nm objdump objcopy strings strip size \
+ ar ranlib addr2line gprof readelf
+do
+ diversion 2.27-8 "/usr/bin/$triplet-$prog"
+done
--- /dev/null
+#! /bin/sh
+set -e
+new_ver=@DEB_VER@; # this version
+ma=@DEB_MULTIARCH@
+triplet=@DEB_TRIPLET@
+context=$1; # why to install (install, upgrade, or abort-upgrade)
+old_ver=$2; # version being replaced, if any
+
+diversion() {
+ local added_ver divertto file
+ added_ver=$1
+ file=$2
+ divertto=${3-$file.single}
+
+ if
+ test "$context" = install ||
+ dpkg --compare-versions "$old_ver" lt "$added_ver" ||
+ dpkg --compare-versions "$new_ver" le "$old_ver"
+ then
+ dpkg-divert --package binutils-multiarch \
+ --add --rename --divert "$divertto" "$file"
+ fi
+}
+
+for prog in nm objdump objcopy strings strip size \
+ ar ranlib addr2line gprof readelf
+do
+ diversion 2.27-8 "/usr/bin/$triplet-$prog"
+done
--- /dev/null
+#! /bin/sh
+# Remove obsolete diversions.
+#
+# They are already removed in postinst, but if configuration fails,
+# they will still be around. Removing the package without
+# configuring would then allow the diversions to leak.
+#
+# So we catch them here. This cannot wait for postrm because that
+# would break error recovery during upgrades: after the old, working
+# version re-adds the diversion in preinst, the diversion would be removed
+# again in postrm. More generally, removing a diversion requires
+# a guarantee that the conflicting file is not present any more,
+# and we cannot guarantee that if some other version of
+# binutils-multiarch is installed.
+set -e
+this_ver=@DEB_VER@; # this version
+ma=@DEB_MULTIARCH@
+triplet=@DEB_TRIPLET@
+context=$1; # action: upgrade, remove, deconfigure, or failed-upgrade.
+if
+ test "$context" = failed-upgrade &&
+ dpkg --compare-versions "$this_ver" lt "$2"
+then
+ # prerm of the future failed.
+ # Who knows what it was supposed to do? Abort.
+ exit 1
+fi
+
+old_diversion() {
+ local divertto file
+ file=$1
+ divertto=${2-$file.single}
+ if
+ dpkg-divert --package binutils-multiarch --list |
+ grep -q -F "$divertto"
+ then
+ dpkg-divert --package binutils-multiarch \
+ --remove --rename \
+ --divert "$divertto" "$file"
+ fi
+}
+
+# remove obsolete diversions
+old_diversion /usr/bin/ld.bfd
+old_diversion /usr/bin/c++filt
+old_diversion /usr/lib/libbfd.a /usr/lib/libbfd-single.a
+old_diversion /usr/lib/libopcodes.a /usr/lib/libopcodes-single.a
+old_diversion /usr/bin/ld
+old_diversion /usr/bin/elfedit
+for f in elf32_sparc elf32ppc elf64alpha elf_i386 m68kelf \
+ alpha i386linux m68klinux sparclinux sun4
+do
+ for ext in x xbn xn xr xs xu
+ do
+ old_diversion /usr/lib/ldscripts/$f.$ext
+ done
+done
+old_diversion /usr/lib/libbfd-2.9.1.0.15.so.0.0.0 \
+ /usr/lib/libbfd-single-2.9.1.0.15.so.0.0.0
+old_diversion /usr/lib/libopcodes-2.9.1.0.15.so.0.0.0 \
+ /usr/lib/libopcodes-single-2.9.1.0.15.so.0.0.0
+old_diversion /usr/lib/libbfd.la /usr/lib/libbfd-single.la
+old_diversion /usr/lib/libopcodes.la /usr/lib/libopcodes-single.la
+old_diversion /usr/include/bfd.h /usr/include/bfd.single.h
+old_diversion /usr/lib/ldscripts
+
+rm -f /usr/lib/libbfd-*-multiarch.so.0
+rm -f /usr/lib/libopcodes-*-multiarch.so.0
+
+old_diversion /usr/bin/addr2line
+old_diversion /usr/bin/ar
+old_diversion /usr/bin/embedspu
+old_diversion /usr/bin/gprof
+old_diversion /usr/bin/nm
+old_diversion /usr/bin/objcopy
+old_diversion /usr/bin/objdump
+old_diversion /usr/bin/ranlib
+old_diversion /usr/bin/readelf
+old_diversion /usr/bin/size
+old_diversion /usr/bin/strings
+old_diversion /usr/bin/strip
+
+case "$ma" in i386-*)
+ if test -n "$context" && dpkg --compare-versions "$2" lt "2.27-8"; then
+ old_diversion /usr/bin/$ma-addr2line
+ old_diversion /usr/bin/$ma-ar
+ old_diversion /usr/bin/$ma-embedspu
+ old_diversion /usr/bin/$ma-gprof
+ old_diversion /usr/bin/$ma-nm
+ old_diversion /usr/bin/$ma-objcopy
+ old_diversion /usr/bin/$ma-objdump
+ old_diversion /usr/bin/$ma-ranlib
+ old_diversion /usr/bin/$ma-readelf
+ old_diversion /usr/bin/$ma-size
+ old_diversion /usr/bin/$ma-strings
+ old_diversion /usr/bin/$ma-strip
+ fi
+esac
--- /dev/null
+libbfd @VER@-multiarch@DATE_EXT@ binutils-multiarch (>= @DEB_UVER@), binutils-multiarch (<< @DEB_NVER@)
+libopcodes @VER@-multiarch@DATE_EXT@ binutils-multiarch (>= @DEB_UVER@), binutils-multiarch (<< @DEB_NVER@)
--- /dev/null
+# the API of the shared libs is not public, don't care about the name
+binutils binary: package-name-doesnt-match-sonames
+
+# the upstream name, we don't care
+binutils binary: dev-pkg-without-shlib-symlink
+
+# big tables
+binutils binary: manpage-has-errors-from-man
+
+# silence lintian stupidity
+binutils binary: spelling-error-in-binary usr/bin/as mmnemonic mnemonic
--- /dev/null
+When reporting binutils errors, please provide the actual input files
+and options given to the tool (gas, objcopy, ld, etc.) at run time.
+This can mean the difference between a pleasant debugging experience
+and a heisenbug that becomes unreproducible when gcc's code generation
+changes.
+
+For example, to create a testcase for an "ld" problem, first find the
+"gcc" command line that triggers the error:
+
+ $ make
+ ... output ending in an error ...
+ $ make V=1 VERBOSE=1 2>&1 | head -1
+
+Add "-v" after gcc and run it again. One of the early output lines
+will be an invocation of collect2. Replace collect2 with "ld" and
+it should reproduce the same error. If you collect all the objects
+(including system libraries) mentioned on the "ld" command line in a
+tarball and send it along with the ld command line then that is a
+testcase.
+
+A possible step after that is to try omitting some objects from the
+ld command line and see if it still triggers the same error, but
+that's just icing on the cake.
+
+Happy debugging!
--- /dev/null
+libbfd @VER@-system@DATE_EXT@ binutils (>= @DEB_UVER@), binutils (<< @DEB_NVER@)
+libopcodes @VER@-system@DATE_EXT@ binutils (>= @DEB_UVER@), binutils (<< @DEB_NVER@)
--- /dev/null
+activate-noawait ldconfig
--- /dev/null
+binutils (2.28-5) unstable; urgency=medium
+
+ * Update, taken from the 2.28 branch 20170510.
+ - RISC-V updates.
+ - Fix PR ld/21334 (MIPS),
+ - VxWorks fix.
+ - Fix PR ld/16044 (CRIS).
+ * Fix PR binutils/21412, global-buffer-overflow in objcopy. CVE-2017-8393.
+ * Fix PR binutils/21414, segfault in objcopy. CVE-2017-8394.
+ * Fix PR binutils/21431, objcopy segfault - null pointer dereferencing.
+ CVE-2017-8395.
+ * Fix PR binutils/21432, heap buffer overflow in objdump. CVE-2017-8396.
+ * Fix PR binutils/21434, heap buffer overflow in objdump. CVE-2017-8397.
+ * Fix PR binutils/21438, heap buffer overflow in printf_common.
+ CVE-2017-8398.
+ * Fix PR binutils/21440, prevent memory exhaustion from a corrupt PE binary
+ with an overlarge number of relocs. CVE-2017-8421.
+ * gold (SPARC): Fix assertion failure relaxing TLS for position-independent
+ executables. Closes: #862017.
+
+ -- Matthias Klose <doko@debian.org> Wed, 10 May 2017 12:12:53 +0200
+
+binutils (2.28-4) unstable; urgency=medium
+
+ * Update, taken from the 2.28 branch 20170418.
+ - Fix PR ld/21233: Avoid sweeping forced-undefined symbols in section GC.
+ - BFD fix.
+ - Fix PR ld/19579, PR ld/21306, link error with PIE on s390x.
+ * Fix PR binutils/21342, null pointer dereferences when using a link built
+ with clang. Closes: #859989. CVE-2017-7614.
+
+ -- Matthias Klose <doko@debian.org> Tue, 18 Apr 2017 08:08:02 +0630
+
+binutils (2.28-3) unstable; urgency=medium
+
+ * Update, taken from the 2.28 branch 20170405.
+ - RISC-V updates.
+ - Fix PR binutils/21303 (PPC), objdump doesn't show e200z4 insns.
+ - S/390: Remove vx2 facility flag.
+ - Update -maltivec and -mvsx options to only enable their oldest
+ instructions (PPC).
+ - Add support for the new 'lnia' extended mnemonic (PPC).
+ - Fix ld uninitialized read of script ASSERT data structure.
+ * Fix incorrect library search order on PowerPC, taken from the trunk.
+ * Fix PR ld/21233 (MIPS only), taken from the trunk. Closes: #857017.
+ * Fix a french translation. Closes: #859503.
+ * Fix PR binutils/21157, handling of corrupt STABS enum type strings.
+ Closes: #858324. CVE-2017-7210.
+ * Fix PR binutils/21137, readelf writing to illegal addresses.
+ Closes: #858264. CVE-2017-6965.
+ * Fix PR binutils/21156, illegal memory accesses in readelf.
+ Closes: #858256. CVE-2017-6969.
+ * Fix PR binutils/21139, read-after-free error in readelf.
+ Closes: #858263. CVE-2017-6966.
+ * Fix PR binutils/21135, invalid read of section contents.
+ Closes: #858323. CVE-2017-7209.
+ * Fix PR demangler/70909, libiberty Demangler segfaults. CVE-2016-4491.
+
+ -- Matthias Klose <doko@debian.org> Wed, 05 Apr 2017 17:48:03 +0200
+
+binutils (2.28-2) unstable; urgency=medium
+
+ * Update, taken from the 2.28 branch 20170307.
+ - Fix PR ld/20519, PR binutils/21224, PR binutils/21124 (all PPC).
+
+ -- Matthias Klose <doko@debian.org> Tue, 07 Mar 2017 11:09:19 +0100
+
+binutils (2.28-1) unstable; urgency=medium
+
+ * binutils 2.28 release.
+ - S/390: Add support for new cpu architecture - arch12.
+ - S/390: Issue error for overflowing relocs.
+ - Fix PR gas/20744 (PPC32): Correct VLE 16D and SDAREL relocations.
+ - Fix PowerPC ld segfault on script discarding dynamic sections.
+ - Sync libiberty sources with GCC mainline. Fixes PR PR c++/70182,
+ PR c++/77489, PR c++/78761.
+ - Nios2 dynobj handling fixes.
+ - Don't make dynamic .data.rel.ro SEC_READONLY.
+ - PowerPC addpcis fix.
+ - RISC-V updates.
+ - [AArch64] Additional SVE instructions, add a "compnum" feature,
+ add SVE system registers, fix +sve documentation, add separate
+ feature flag for weaker release consistent load insns.
+ * Don't install windows related man pages in cross packages. Closes: #855630.
+ * Fix ld.1 symlink for targets without gold.
+
+ -- Matthias Klose <doko@debian.org> Thu, 02 Mar 2017 14:39:24 +0100
+
+binutils (2.27.90.20170221-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix Alpha executables segfaulting when linked with -z,now.
+ * Don't install windows related man pages in cross packages. Closes: #855630.
+ * Don't install the embedspu binary for powerpcspe. Closes: #850691.
+
+ -- Matthias Klose <doko@debian.org> Tue, 21 Feb 2017 13:06:04 +0100
+
+binutils (2.27.90.20170218-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR ld/21000, PR ld/21132 (closes: #855095).
+ - Fix powerpc testsuite source errors.
+ - Fix PR ld/21168, i386: Allow "lea foo@GOT, %reg" in PIC
+ - opcodes: Fix use after free in cgen instruction lookup.
+ - MIPS/BFD: Respect the ELF gABI dynamic symbol table sort requirement.
+ - MIPS/BFD: Use `bfd_size_type' for dynamic symbol table indices.
+ - MIPS/BFD: Streamline hash table references in `mips_elf_sort_hash_table'.
+ - MIPS/BFD: Fix assertion in `mips_elf_sort_hash_table'.
+ - POWER9: Add scv/rfscv instruction support.
+ - RiscV updates.
+
+ -- Matthias Klose <doko@debian.org> Sat, 18 Feb 2017 05:37:06 +0100
+
+binutils (2.27.90.20170205-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - MIPS/LD/testsuite: Correct relocation addends in VxWorks tests.
+ - MIPS/LD/testsuite: Fix a `tls-multi-got-1-1.s' build failure.
+ - MIPS: Add options to control branch ISA checks.
+ - MIPS/GAS/testsuite: Convert branch local list tests to dump tests.
+ - Fix PR ld/20995 for cris-linux.
+ - gold: Fix PPC64 TOC indirect to TOC relative segfault.
+ - Fix PR ld/21000, support -z relro on hppa. Other hppa updates.
+ - PR binutils/19935: Fix fallout from now-default initfini-array.
+
+ -- Matthias Klose <doko@debian.org> Sun, 05 Feb 2017 21:05:07 +0100
+
+binutils (2.27.90.20170124-2) unstable; urgency=medium
+
+ * Revert the commit causing PR 21074. Works around #852035.
+
+ -- Matthias Klose <doko@debian.org> Thu, 26 Jan 2017 18:09:09 +0100
+
+binutils (2.27.90.20170124-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR gold/21054 (closes: #851736).
+
+ -- Matthias Klose <doko@debian.org> Tue, 24 Jan 2017 15:24:49 +0100
+
+binutils (2.27.90.20170118-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR binutils/21059, PR gas/20992, PR gas/20649,
+ PR binutils/20828 (closes: #844227).
+
+ -- Matthias Klose <doko@debian.org> Wed, 18 Jan 2017 20:05:43 +0100
+
+binutils (2.27.90.20170114-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR ld/21038, PR ld/20830, PR gold/21040.
+ * Apply proposed patch for PR binutils/20828 (mips). Addresses: #844227.
+
+ -- Matthias Klose <doko@debian.org> Sat, 14 Jan 2017 11:43:57 +0100
+
+binutils (2.27.90.20170113-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR binutils/20876 (closes: #838875), PR gold/21040,
+ PR gold/21039.
+
+ -- Matthias Klose <doko@debian.org> Fri, 13 Jan 2017 13:31:53 +0100
+
+binutils (2.27.90.20170109-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR ld/20989.
+
+ -- Matthias Klose <doko@debian.org> Mon, 09 Jan 2017 11:03:34 +0100
+
+binutils (2.27.90.20161231-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the binutils 2.28 branch.
+ - Fix PR ld/20995, PR binutils/20464, PR binutils/14625, PR gas/10946,
+ PR gold/20996, PR gold/17643.
+
+ -- Matthias Klose <doko@debian.org> Sat, 31 Dec 2016 02:10:21 +0100
+
+binutils (2.27.51.20161220-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - Fix PR ld/20968 (closes: #848731), PR ld/20908, PR gold/20949,
+ PR gold/14676, PR gold/20983, PR gold/20976, PR gold/20749,
+ PR gold/20522, PR gold/14676, PR gold/16711, PR gold/20717, PR c++/78252.
+
+ -- Matthias Klose <doko@debian.org> Tue, 20 Dec 2016 09:11:49 +0100
+
+binutils (2.27.51.20161212-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - Implements --push-state/--pop-state for gold.
+ - Fix PR ld/20908, PR ld/20909, PR gas/20898, PR gas/20897, PR gold/20717,
+ PR gold/20834, PR gold/18989, PR ld/20910, PR ld/20911, PR ld/20912,
+ PR ld/20932, PR binutils/20931, PR binutils/20929, PR binutils/20905,
+ PR binutils/20907, PR binutils/20921, PR binutils/20922, PR ld/20925,
+ PR ld/20924, PR binutils/20930, PR ld/20923, PR gas/20901, PR gas/20896,
+ PR gas/20902, PR gas/20904, PR gold/20717, PR gold/16711, PR gold/20878,
+ PR ld/20906.
+
+ -- Matthias Klose <doko@debian.org> Mon, 12 Dec 2016 13:49:47 +0100
+
+binutils (2.27.51.20161201-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - Update PR ld/20815 (closes: #845690).
+ - Fix PR ld/20868 (AArch64), PR ld/16720 (mips), PR binutils/20891,
+ PR binutils/20892, PR ld/20886 (PPC64), PR gas/20895, PR binutils/20637,
+ PR binutils/20893.
+
+ -- Matthias Klose <doko@debian.org> Thu, 01 Dec 2016 15:55:10 +0100
+
+binutils (2.27.51.20161127-1) unstable; urgency=high
+
+ * New upstream snapshot, taken from the trunk.
+ - Fix PR target/20737 (ARM32), PR ld/20858.
+ * Revert the fix for PR ld/20815. Addresses: #845690.
+
+ -- Matthias Klose <doko@debian.org> Sun, 27 Nov 2016 21:00:36 +0100
+
+binutils (2.27.51.20161124-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - Fix PR ld/20815, PR gas/20744, PR gas/20827, PR gold/20346,
+ PR gold/20693.
+ * Fix PR ld/20858, error handling $ORIGIN variable.
+ Closes: #845171, #844847.
+
+ -- Matthias Klose <doko@debian.org> Thu, 24 Nov 2016 03:34:06 +0100
+
+binutils (2.27.51.20161118-2) unstable; urgency=medium
+
+ * Revert problematic sparc64 GOT patch (closes: #844782).
+
+ -- Matthias Klose <doko@debian.org> Sat, 19 Nov 2016 13:40:17 +0100
+
+binutils (2.27.51.20161118-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - SPARC updates, ARMv8.3 updates.
+ - Fix PR ld/20675.
+ * Fix typo in debian changelog. Closes: #843710.
+
+ -- Matthias Klose <doko@debian.org> Fri, 18 Nov 2016 14:11:45 +0100
+
+binutils (2.27.51.20161116-2) unstable; urgency=medium
+
+ * Stop building the mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
+ variants; can't continue with this work, because package uploads with
+ these architectures are still rejected.
+ * Add homepage attribute to the control file: Closes: #841432.
+ * ld: enable new dtags by default for linux/gnu targets. Closes: #835859.
+ * Fix PR ld/20827, using proposed patch. Closes: #844378.
+
+ -- Matthias Klose <doko@debian.org> Thu, 17 Nov 2016 11:56:55 +0100
+
+binutils (2.27.51.20161116-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - Fix PR ld/20789 (AVR), PR ld/20800 (x86), PR target/20737 (AArch64),
+ PR binutils/20801, PR binutils/20814, PR binutils/20751,
+ PR binutils/20794, PR gas/20803 (SPARC), PR gas/20732,
+ PR binutils/20799 (x86), PR binutils/20754 (x86), PR binutils/20701 (x86),
+
+ -- Matthias Klose <doko@debian.org> Wed, 16 Nov 2016 11:50:32 +0100
+
+binutils (2.27.51.20161108-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ - Fix PR ld/20535 and PR ld/20784.
+
+ -- Matthias Klose <doko@debian.org> Tue, 08 Nov 2016 12:14:20 +0100
+
+binutils (2.27.51.20161105-2) unstable; urgency=medium
+
+ * Revert fix for PR ld/20535, causing PR ld/20784. Closes: #843339.
+
+ -- Matthias Klose <doko@debian.org> Sun, 06 Nov 2016 17:36:45 +0100
+
+binutils (2.27.51.20161105-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ * Disable the work around for the build failure on mips* targets.
+
+ -- Matthias Klose <doko@debian.org> Sat, 05 Nov 2016 13:12:01 +0100
+
+binutils (2.27.51.20161102-1) unstable; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+ Security issues fixed: CVE-2016-6131, CVE-2016-4493, CVE-2016-4492,
+ CVE-2016-4490, CVE-2016-4489, CVE-2016-4488, CVE-2016-4487, CVE-2016-2226.
+
+ -- Matthias Klose <doko@debian.org> Wed, 02 Nov 2016 20:38:57 +0100
+
+binutils (2.27.51.20161027-2) experimental; urgency=medium
+
+ * Work around build failure on mips* targets.
+
+ -- Matthias Klose <doko@debian.org> Sun, 30 Oct 2016 19:35:41 +0200
+
+binutils (2.27.51.20161027-1) experimental; urgency=medium
+
+ * New upstream snapshot, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Thu, 27 Oct 2016 16:57:21 +0200
+
+binutils (2.27-9) unstable; urgency=medium
+
+ * Update, taken from the 2.27 branch 20161014.
+ - Fix PR ld/20608, PR ld/20545, PR gold/20238.
+ * Fix cross build for non-standard cross archs (Helmut Grohne).
+ Closes: #839956.
+ * Fix ld segfault on ARM32, taken from the trunk. Closes: #840374.
+ * Fix PR ld/20648, taken from the trunk. Closes: #835544.
+ * Fix PR ld/20649, using proposed patch. Closes: #834147.
+
+ -- Matthias Klose <doko@debian.org> Mon, 17 Oct 2016 13:12:51 +0200
+
+binutils (2.27-8) unstable; urgency=medium
+
+ * Fix diversion updates for 32bit x86 targets.
+ * Update Break for hardening-wrapper.
+
+ -- Matthias Klose <doko@debian.org> Wed, 31 Aug 2016 10:11:22 +0200
+
+binutils (2.27-7) unstable; urgency=medium
+
+ * Update, taken from the 2.27 branch 20160830.
+ - Fix PR ld/20531.
+ * Fix diversion updates. Closes: #834836.
+
+ -- Matthias Klose <doko@debian.org> Tue, 30 Aug 2016 16:24:37 +0200
+
+binutils (2.27-6) unstable; urgency=high
+
+ * Update, taken from the 2.27 branch 20160819.
+ - Fix PR ld/20472.
+ * binutils-multiarch: Divert the triplet-prefixed names. Closes: #834253.
+
+ -- Matthias Klose <doko@debian.org> Fri, 19 Aug 2016 07:02:50 +0200
+
+binutils (2.27-5) unstable; urgency=high
+
+ * Update, taken from the 2.27 branch 20160812.
+ * Fix unexecutable MIPS binaries with -Wl,-z,noexecstack (Aurelian Jarno).
+ Closes: #834096.
+
+ -- Matthias Klose <doko@debian.org> Fri, 12 Aug 2016 09:27:17 +0200
+
+binutils (2.27-4) unstable; urgency=medium
+
+ * Fix gold on mipsr6 targets (Aurelian Jarno).
+
+ -- Matthias Klose <doko@debian.org> Tue, 09 Aug 2016 21:58:13 +0200
+
+binutils (2.27-3) unstable; urgency=medium
+
+ * Backport patches to fix gold on sparc64 (James Clarke). Closes: #833688.
+ * Fix gold on mips64 targets (Aurelian Jarno). Closes: #833654.
+
+ -- Matthias Klose <doko@debian.org> Tue, 09 Aug 2016 12:15:51 +0200
+
+binutils (2.27-2) unstable; urgency=medium
+
+ * Disable gold for all mips cross targets too.
+
+ -- Matthias Klose <doko@debian.org> Sun, 07 Aug 2016 16:30:20 +0200
+
+binutils (2.27-1) unstable; urgency=medium
+
+ * binutils 2.27 release.
+ * Update, taken from the 2.27 branch 20160807.
+ * Re-enable gold on sparc and sparc64. Closes: #818934.
+ * Disable SH64 support for the multilib build.
+ * Disable gold on all mips targets, currently fails to link.
+
+ -- Matthias Klose <doko@debian.org> Sun, 07 Aug 2016 13:38:27 +0200
+
+binutils (2.26.1-1) unstable; urgency=medium
+
+ * binutils 2.26.1 release.
+
+ -- Matthias Klose <doko@debian.org> Thu, 30 Jun 2016 10:37:37 +0200
+
+binutils (2.26-12) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160624.
+ - Fix PR ld/20254 (AVR), PR ld/20221 (AVR), PR ld/20244 (x86).
+ - Support for three more new POWER9 instructions.
+ * Cherry pick backports for AArch64 vulcan support (Dann Frazier).
+ LP: #1594452.
+
+ -- Matthias Klose <doko@debian.org> Fri, 24 Jun 2016 10:42:57 +0200
+
+binutils (2.26-11) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160610.
+ - Fix PR ld/20159, reverting the change for PR ld/16467. LP: #1588123.
+ * Use ldconfig triggers instead of calling ldconfig directly.
+
+ -- Matthias Klose <doko@debian.org> Fri, 10 Jun 2016 18:37:39 +0200
+
+binutils (2.26-10) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160601.
+ - Fix PR ld/20117, PR ld/20030, PR ld/20093.
+ - Support for a few more new POWER9 instructions.
+ * Build for N32 and MIPS r6 (YunQiang Su). Closes: #807377.
+ * Mark cross binutils as M-A: foreign (Helmut Grohne). Closes: #824424.
+ * More reproducible build fixes (Chris Lamb). Closes: #824413.
+ * Fix PR ld/19886, --as-needed regression, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Wed, 01 Jun 2016 21:31:32 +0200
+
+binutils (2.26-9) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160512.
+ - Fix PR ld/19878, PR ld/19827, PR gas/19909, PR ld/20006, PR gold/19047,
+ PR gas/20047, PR 20060.
+
+ -- Matthias Klose <doko@debian.org> Thu, 12 May 2016 16:59:29 +0200
+
+binutils (2.26-8) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160321.
+ - Fix PR ld/19827.
+
+ -- Matthias Klose <doko@debian.org> Mon, 21 Mar 2016 15:38:30 +0100
+
+binutils (2.26-7) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160316.
+ - Fix PR ld/19623. Closes: #817891, PR ld/19539, PR binutils/19523.
+ * Fix cross-building from any-i386 (Samuel Thibault). Closes: #816128.
+
+ -- Matthias Klose <doko@debian.org> Wed, 16 Mar 2016 10:21:59 +0100
+
+binutils (2.26-6) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160310.
+ - Fix PR ld/19579, PR ld/19752, PR ld/19739.
+ - Fix PR binutils/19775. Closes: #813006.
+
+ -- Matthias Klose <doko@debian.org> Thu, 10 Mar 2016 13:08:38 +0100
+
+binutils (2.26-5) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160213.
+ - Fix PR ld/19698, PR ld/19553, ppc64 and AArch64 fixes.
+
+ -- Matthias Klose <doko@debian.org> Fri, 26 Feb 2016 17:07:29 +0100
+
+binutils (2.26-4) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160213.
+ - Fix PR ld/19615, PR ld/19601 (closes: #812858), PR gas/19520.
+ * Fix stripping packages for cross builds. Closes: #813337.
+
+ -- Matthias Klose <doko@debian.org> Sat, 13 Feb 2016 17:13:00 +0100
+
+binutils (2.26-3) unstable; urgency=medium
+
+ * Update, taken from the 2.26 branch 20160203.
+ * Fix PR binutils/19523, objdump not supporting gnu_debuglink with
+ compressed debug sections; taken from the trunk. Closes: #812089.
+
+ -- Matthias Klose <doko@debian.org> Wed, 03 Feb 2016 15:11:43 +0100
+
+binutils (2.26-2) unstable; urgency=medium
+
+ * Do a release build, not enabled upstream for the release.
+
+ -- Matthias Klose <doko@debian.org> Wed, 27 Jan 2016 18:22:45 +0100
+
+binutils (2.26-1) unstable; urgency=medium
+
+ * binutils 2.26 release.
+ - Fix PR 19421, reverting the fix for PR 4317. Closes: #808246.
+ * Fix build failure with new coreutils. Closes: #812846.
+
+ -- Matthias Klose <doko@debian.org> Wed, 27 Jan 2016 12:36:00 +0100
+
+binutils (2.25.90.20160101-2) unstable; urgency=medium
+
+ * Apply proposed patch for PR ld/19368. Closes: #807974.
+
+ -- Matthias Klose <doko@debian.org> Tue, 05 Jan 2016 17:32:06 +0100
+
+binutils (2.25.90.20160101-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.26 branch (20160101).
+ * PR gas/19359, work around a GCC issue on POWER8.
+
+ -- Matthias Klose <doko@debian.org> Fri, 01 Jan 2016 13:40:16 +0100
+
+binutils (2.25.90.20151209-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.26 branch (20151209).
+ * Fix cross build dependencies. Closes: #807378.
+
+ -- Matthias Klose <doko@debian.org> Wed, 09 Dec 2015 12:41:22 +0100
+
+binutils (2.25.90.20151125-2) unstable; urgency=medium
+
+ * Add ARMv8.1 Virtualization Host Extensions support, taken from the trunk.
+ * Import zlib 1.2.8, taken from the trunk.
+ * Filter the date/user line from the cross binutils test results.
+ Closes: #806490.
+
+ -- Matthias Klose <doko@debian.org> Mon, 30 Nov 2015 11:52:26 +0100
+
+binutils (2.25.90.20151125-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.26 branch (20151125).
+ - Fixed stack overflow TEMP-0000000-A2945B.
+ * Build ppc64el binutils on ppc64.
+
+ -- Matthias Klose <doko@debian.org> Wed, 25 Nov 2015 14:19:39 +0100
+
+binutils (2.25.51.20151113-2) unstable; urgency=medium
+
+ * Backport patches from the trunk:
+ - Fix PR ld/19263, segfault for s390_elf. Closes: #805237.
+ - Fix PR ld/19264, account for .tbss alignment when adjusting start
+ of relro. LP: #1516444.
+
+ -- Matthias Klose <doko@debian.org> Thu, 19 Nov 2015 14:16:15 +0100
+
+binutils (2.25.51.20151113-1) unstable; urgency=medium
+
+ * Snapshot, taken from the just created 2.26 branch (20151113).
+ - Fixed PR ld/19123. Closes: #801879.
+ - Ignore relocations in .data.rel.ro.local (hppa). Closes: #801531.
+ - Fix PR gas/19217, wrong use of MOVT to replace LDR (ARM32). LP: #1513985.
+ * Stop building gold on sparc and sparc64. Closes: #803474.
+
+ -- Matthias Klose <doko@debian.org> Fri, 13 Nov 2015 11:08:24 +0100
+
+binutils (2.25.51.20151106-1) experimental; urgency=medium
+
+ * Snapshot, taken from the trunk 20151106.
+ * Work around PR ld/19188, internal linker error. LP: #1511542.
+
+ -- Matthias Klose <doko@debian.org> Fri, 06 Nov 2015 18:44:09 +0100
+
+binutils (2.25.51.20151028-1) experimental; urgency=medium
+
+ * Snapshot, taken from the trunk 20151028.
+ - Fix PR ld/19171 (LP: #1510067), PR ld/19175 (LP: #1510270).
+ * Revert the fix for PR gold/19119, fixing gold on armhf, arm64 and powerpc.
+
+ -- Matthias Klose <doko@debian.org> Wed, 28 Oct 2015 09:34:03 +0100
+
+binutils (2.25.51.20151021-1) experimental; urgency=medium
+
+ * Snapshot, taken from the trunk 20151021.
+ * binutils-i686-gnu: Don't ship ldscripts.
+
+ -- Matthias Klose <doko@debian.org> Wed, 21 Oct 2015 19:46:24 +0200
+
+binutils (2.25.51.20151020-1) experimental; urgency=medium
+
+ * Snapshot, taken from the trunk 20151020.
+ * Build cross packages for debian port architectures.
+ * Move libraries into the multiarch libdir.
+ * Include gold on KFreeBSD.
+ * Install the gnu-triplet prefixed binaries and manual pages as files,
+ and provide non-prefixed symlinks.
+ * Add a breaks in binutils for hardening-wrapper (<< 2.8); the diversions
+ need to be adopted for the real files.
+ * Don't ship windows related manual pages.
+ * Change the search order for ld to first search in /usr/lib*,
+ then in /usr/<gnu-triplet>/lib*.
+ * Run the testsuite for all cross targets.
+ * Configure with --disable-compressed-debug-sections.
+
+ -- Matthias Klose <doko@debian.org> Wed, 21 Oct 2015 01:14:01 +0200
+
+binutils (2.25.51.20151014-1) experimental; urgency=medium
+
+ * Snapshot, taken from the trunk 20151014.
+ * Explicitly configure --with-system-zlib.
+ * Disable compressed debug sections on x86. See PR gas/19109.
+ * Configure cross builds with --enable-initfini-array.
+
+ -- Matthias Klose <doko@debian.org> Thu, 15 Oct 2015 01:18:36 +0200
+
+binutils (2.25.1-7) unstable; urgency=medium
+
+ * Fix PR ld/18867, ld reloc sorting causing glibc to crash on alpha.
+ Taken from the branch. Closes: #792555.
+
+ -- Matthias Klose <doko@debian.org> Sun, 11 Oct 2015 10:33:38 +0200
+
+binutils (2.25.1-6) unstable; urgency=medium
+
+ * Configure with --enable-initfini-array (not the default for cross builds).
+ * Backport PR gold/18855 (sparc).
+
+ -- Matthias Klose <doko@debian.org> Fri, 09 Oct 2015 14:57:11 +0200
+
+binutils (2.25.1-5) unstable; urgency=medium
+
+ * Fix setting the default library path on i386.
+
+ -- Matthias Klose <doko@debian.org> Mon, 05 Oct 2015 13:03:39 +0200
+
+binutils (2.25.1-4) unstable; urgency=medium
+
+ * On i386, configure for i686-linux-gnu. Provide i585-linux-gnu symlinks.
+
+ -- Matthias Klose <doko@debian.org> Thu, 01 Oct 2015 19:19:24 +0200
+
+binutils (2.25.1-3) unstable; urgency=medium
+
+ * Regenerate the control file. Closes: #799234.
+ * Configure cross builds with --with-sysroot=/. Closes: #799703.
+ * Backport PR ld/18668 from the trunk. Closes: #797666.
+ * Fix lintian warnings for the binutils-hppa64-linux-gnu package.
+
+ -- Matthias Klose <doko@debian.org> Tue, 22 Sep 2015 18:38:07 +0200
+
+binutils (2.25.1-2) unstable; urgency=medium
+
+ * Build cross binutils packages targeting the release architectures.
+ * Rename shared libraries for the cross packages and install into
+ the standard location.
+ * Don't ship the header files and static libraries for the cross packages.
+ * Rename binutils-hppa64 to binutils-hppa64-linux-gnu.
+ * PR binutils/18750, fix stack buffer overflows when parsing corrupt
+ ihex files.
+
+ -- Matthias Klose <doko@debian.org> Tue, 15 Sep 2015 01:54:21 +0200
+
+binutils (2.25.1-1) unstable; urgency=medium
+
+ * Binutils 2.25.1 release.
+
+ -- Matthias Klose <doko@debian.org> Sat, 08 Aug 2015 00:36:12 +0200
+
+binutils (2.25-11) unstable; urgency=medium
+
+ * Fix broken -Bsymbolic-functions on ARM32, hppa, m68k. Taken from
+ the trunk.
+
+ -- Matthias Klose <doko@debian.org> Fri, 31 Jul 2015 12:40:32 +0200
+
+binutils (2.25-10) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20150711.
+ - POWERPC fixes.
+
+ -- Matthias Klose <doko@debian.org> Sat, 11 Jul 2015 12:12:38 +0200
+
+binutils (2.25-9) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20150622.
+ - ARM32, AArch64, POWERPC fixes.
+ * Fix PR gas/18427, gas slow on hppa, taken from the trunk. Closes: #787192.
+
+ -- Matthias Klose <doko@debian.org> Mon, 22 Jun 2015 11:45:36 +0200
+
+binutils (2.25-8) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20150523.
+ - PPC and AArch64 backports from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sat, 23 May 2015 09:44:54 +0200
+
+binutils (2.25-7) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20150411.
+ * More adjustments for reproducible builds. Closes: #774429.
+
+ -- Matthias Klose <doko@debian.org> Fri, 24 Apr 2015 13:18:01 +0200
+
+binutils (2.25-6) unstable; urgency=medium
+
+ * Apply patches from the 2.25 branch to address PR binutils/17512,
+ PR binutils/17531.
+ * Removal partial backports for PR binutils/17531.
+ * Configure with --enable-deterministic-archives. Closes: #774429.
+
+ -- Matthias Klose <doko@debian.org> Thu, 26 Mar 2015 16:40:36 +0100
+
+binutils (2.25-5) unstable; urgency=medium
+
+ * Remove '*.rej' files in the source package. Closes: #775679.
+ * Make the package build reproducibly (addresses: #774429):
+ - Fix mtimes before building binary packages.
+ - Stop recording the current time when creating gzip files.
+ - Sort file list in md5sums.
+ - Fix mtimes before building source tarball.
+ - Sort file list in binutils source tarball.
+ - If available, call strip-nondeterminism on static libraries.
+ * Fix PR ld/17827 - PIE copy relocations are broken with pointers.
+ Closes: #772958.
+
+ -- Matthias Klose <doko@debian.org> Wed, 25 Feb 2015 09:00:51 +0100
+
+binutils (2.25-4) unstable; urgency=medium
+
+ * Backport fixes for PR binutils/17531 up to 2014-12-22.
+
+ -- Matthias Klose <doko@debian.org> Thu, 15 Jan 2015 08:00:07 +0100
+
+binutils (2.25-3) unstable; urgency=medium
+
+ * Don't build as a release candidate, fixing the upper shlibs dependency.
+ * Refresh patches.
+
+ -- Matthias Klose <doko@debian.org> Thu, 25 Dec 2014 13:45:39 +0100
+
+binutils (2.25-2) unstable; urgency=medium
+
+ * Apply proposed patch for PR ld/17742 (don't create .eh_frame_hdr
+ on shared lib bfd).
+
+ -- Matthias Klose <doko@debian.org> Thu, 25 Dec 2014 06:55:02 +0100
+
+binutils (2.25-1) unstable; urgency=medium
+
+ * binutils 2.25 release.
+ - MIPS specific gas update.
+
+ -- Matthias Klose <doko@debian.org> Thu, 25 Dec 2014 05:49:55 +0100
+
+binutils (2.24.90.20141219-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141219.
+ - Fix PR ld/17713 (segfault), PR ld/17689 (link error), PR ld/15228.
+ * Apply proposed patch for PR gold/17729 (fixing ~600 GCC test failures).
+
+ -- Matthias Klose <doko@debian.org> Fri, 19 Dec 2014 18:59:30 +0100
+
+binutils (2.24.90.20141209-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141209.
+ - Fix PR binutils/17677, PR gold/17670 (powerpc),
+ PR gold/17566 (powerpc).
+
+ -- Matthias Klose <doko@debian.org> Tue, 09 Dec 2014 09:31:53 +0100
+
+binutils (2.24.90.20141201-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141201.
+ - Fix PR ld/16452, PR/ld/16457: Don't output symbol version
+ requirement for non-DT_NEEDED libs. Closes: #728529.
+
+ -- Matthias Klose <doko@debian.org> Mon, 01 Dec 2014 21:53:10 +0100
+
+binutils (2.24.90.20141128-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141128.
+ - gold: Fix corrupted .eh_frame section with LTO and --gc-sections.
+ - gold: Fix PowerPC relaxation corner case.
+ * Relax upper shlibs version dependency to the next release candidate.
+
+ -- Matthias Klose <doko@debian.org> Fri, 28 Nov 2014 14:20:09 +0100
+
+binutils (2.24.90.20141124-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141124.
+ - ppc alignment fixes, Go fixes
+ - PR binutils/17597, PR binutils/17512, PR binutils/17521, PR binutils/17533,
+ trunk backports for fixing the recent CVE issues.
+ - One more fix for Cortex-A53 Erratum 835769 (AArch64).
+
+ -- Matthias Klose <doko@debian.org> Mon, 24 Nov 2014 17:29:27 +0100
+
+binutils (2.24.90.20141111-2) unstable; urgency=medium
+
+ * Fix ld -r abort in _bfd_elf_write_section_eh_frame, taken from the trunk.
+ Closes: #769067.
+
+ -- Matthias Klose <doko@debian.org.org> Tue, 11 Nov 2014 11:10:27 +0100
+
+binutils (2.24.90.20141111-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141111.
+ - Update .MIPS.abiflags to support MIPS R6.
+ * gold: Misc updates for the AArch64 backend, taken from the trunk.
+ * Mention some CVE issues, fixed in the 20141104 snapshot:
+ - CVE-2014-8484 (PR binutils/17509).
+ - CVE-2014-8485, CVE-2014-8504 (PR binutils/17510).
+ - CVE-2014-8501, CVE-2014-8502, CVE-2014-8503 (PR binutils/17512).
+ * Fix some lintian warnings.
+
+ -- Matthias Klose <doko@debian.org> Tue, 11 Nov 2014 07:55:51 +0100
+
+binutils (2.24.90.20141104-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141104.
+ - Fix PR bfd/17481.
+ - Fix PR17488, powerpc64-linux-ld segfault. LP: #1381580.
+ - Fix PR ld/17492. LP: #882353.
+ - Fix PR gas/17493. LP: #1051156.
+ - Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7.
+ - PowerPC64 ELFv1 function symbol definition vs LTO and discarded sections.
+ - ppc: enable msgclr and msgsnd on Power8.
+ - Relax ppc64_elf_tls_optimize assertion.
+ * Pick patch from the trunk:
+ - Support relexation for the gold aarch64 backend.
+ - AArch64: move bogus assertion.
+ - Fix build configured with --enable-targets=aarch64-linux.
+ - Fix running ld-unique tests on ARM.
+ - gas: Recognize: AArch64 ThunderX processor.
+
+ -- Matthias Klose <doko@debian.org> Tue, 04 Nov 2014 02:14:45 +0100
+
+binutils (2.24.90.20141014-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.25 branch 20141014.
+ * Remove patches picked from upstream.
+ * Build gold on AArch64.
+
+ -- Matthias Klose <doko@debian.org> Tue, 14 Oct 2014 12:46:08 +0200
+
+binutils (2.24.51.20141001-4) unstable; urgency=high
+
+ * Fix PR ld/17647, taken from upstream. Closes: #764573.
+
+ -- Matthias Klose <doko@debian.org> Mon, 13 Oct 2014 20:03:30 +0200
+
+binutils (2.24.51.20141001-3) unstable; urgency=medium
+
+ * Fix PR ld/17447, taken from upstream. LP: #1371636.
+
+ -- Matthias Klose <doko@debian.org> Tue, 07 Oct 2014 12:26:24 +0200
+
+binutils (2.24.51.20141001-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20141001.
+
+ -- Matthias Klose <doko@debian.org> Wed, 01 Oct 2014 02:32:06 +0200
+
+binutils (2.24.51.20140918-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140918.
+
+ -- Matthias Klose <doko@debian.org> Thu, 18 Sep 2014 19:28:16 +0200
+
+binutils (2.24.51.20140903-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140903.
+ * Try to work around binutils-multiarch build failure on sh4 by disabling
+ hppa targets for the binutils-multiarch build. Addresses: #758830.
+ * Enable powerpc targets for ppc64el. Closes: #760395.
+
+ -- Matthias Klose <doko@debian.org> Wed, 03 Sep 2014 23:02:26 +0200
+
+binutils (2.24.51.20140818-1) unstable; urgency=high
+
+ * Snapshot, taken from the trunk 20140818.
+ - Fix GLIBC ifunc breakage on PowerPC64 ELFv2. LP: #1355962.
+
+ -- Matthias Klose <doko@debian.org> Mon, 18 Aug 2014 13:49:01 +0200
+
+binutils (2.24.51.20140814-2) unstable; urgency=medium
+
+ * Still provide i486-* symlinks.
+
+ -- Matthias Klose <doko@debian.org> Sun, 17 Aug 2014 17:06:36 +0200
+
+binutils (2.24.51.20140814-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140814.
+ - Add ld options --push-state and --pop-state.
+ * binutils-hppa64: Set architecture to hppa.
+ * Add aarch64_ilp32-linux-gnu multiarch directories to the search path.
+
+ -- Matthias Klose <doko@debian.org> Thu, 14 Aug 2014 13:28:40 +0200
+
+binutils (2.24.51.20140807-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140807.
+ - Remove patch for pr14918, integrated upstream.
+
+ -- Matthias Klose <doko@debian.org> Thu, 07 Aug 2014 11:41:44 +0200
+
+binutils (2.24.51.20140727-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140727.
+
+ -- Matthias Klose <doko@debian.org> Sun, 27 Jul 2014 15:44:40 +0200
+
+binutils (2.24.51.20140709-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140709.
+ - Fix PR gold/15639, -flto and ld.gold on ARM.
+ Closes: #712189. LP: #1191909.
+
+ -- Matthias Klose <doko@debian.org> Wed, 09 Jul 2014 19:44:18 +0200
+
+binutils (2.24.51.20140704-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140704.
+ * Build gold for mips* targets.
+ * Update the patch for the mips64el support. Closes: #750566, #753052.
+ * Update patches for the current trunk.
+
+ -- Matthias Klose <doko@debian.org> Fri, 04 Jul 2014 12:00:05 +0200
+
+binutils (2.24.51.20140617-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140617.
+
+ -- Matthias Klose <doko@debian.org> Tue, 17 Jun 2014 10:29:20 +0200
+
+binutils (2.24.51.20140604-3) unstable; urgency=medium
+
+ * Update the mips64-default-n64 patch (Yunqiang Su). Closes: #750566.
+
+ -- Matthias Klose <doko@debian.org> Sat, 07 Jun 2014 13:43:35 +0200
+
+binutils (2.24.51.20140604-2) unstable; urgency=medium
+
+ * Stop applying the mips64-default-n64 patch until it is updated.
+
+ -- Matthias Klose <doko@debian.org> Thu, 05 Jun 2014 11:20:39 +0200
+
+binutils (2.24.51.20140604-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140604.
+ * Refactor rules for consistent usage of the PF macro (Helmut Grohne).
+
+ -- Matthias Klose <doko@debian.org> Wed, 04 Jun 2014 13:48:21 +0200
+
+binutils (2.24.51.20140425-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140425.
+ * Refactor rules for consistent usage of the PF macro (Helmut Grohne).
+ * On x86 targets provide gnu-type prefixed binaries with the cpu that GCC
+ is configured for.
+ * 129_multiarch_libpath.patch: Fix to search multiarch dirs, only needed
+ for a minority of packages still using ld directly for linking instead
+ of the recommended use of gcc.
+
+ -- Matthias Klose <doko@debian.org> Sun, 27 Apr 2014 21:52:56 +0200
+
+binutils (2.24.51.20140411-2) unstable; urgency=medium
+
+ * No-change rebuild to get rid off ftp-master mail storm.
+
+ -- Matthias Klose <doko@debian.org> Sat, 12 Apr 2014 15:23:31 +0200
+
+binutils (2.24.51.20140411-1) unstable; urgency=medium
+
+ * Snapshot, taken from the trunk 20140411.
+ * Provide $(DEB_HOST_GNU_TYPE)- prefixed binaries and man pages.
+ * Don't enable the spu targets on powerpc targets anymore.
+ * Build the gold linker on hurd-i386 (Svante Signell). Closes: #744020.
+
+ -- Matthias Klose <doko@debian.org> Fri, 11 Apr 2014 18:49:22 +0200
+
+binutils (2.24-5) unstable; urgency=medium
+
+ * Update from the 2.24 branch, 20140321.
+ * Stop building the binutils-spu package.
+ * Add a binutils-multiarch-dev package. Closes: #583160
+
+ -- Matthias Klose <doko@debian.org> Fri, 21 Mar 2014 11:23:40 +0100
+
+binutils (2.24-4) unstable; urgency=medium
+
+ * Update from the 2.24 branch, 20140304.
+ * Update Aarch64 ilp32 linker and libdir names.
+ * Fix relocations for thread local variables on AArch64. Updated patch
+ taken from the trunk.
+ * Enable AArch64 big endian targets for AArch64 builds and for
+ binutils-multiarch.
+ * gas: Add entry for "xgene1" (AArch64).
+ * gas: Remove the alignment limit on AArch64.
+ * Add a Built-Using attribute for for the binutils-cross-* packages.
+ Closes: #738311.
+
+ -- Matthias Klose <doko@debian.org> Tue, 04 Mar 2014 02:21:00 +0100
+
+binutils (2.24-3) unstable; urgency=medium
+
+ * Update from the 2.24 branch, 20140124.
+ * Display the reference causing a shared library to be needed (taken from
+ the trunk).
+
+ -- Matthias Klose <doko@debian.org> Fri, 24 Jan 2014 14:39:48 +0100
+
+binutils (2.24-2) unstable; urgency=medium
+
+ * Update from the 2.24 branch, 20131209.
+ * Remove versioned build dependencies which are not needed anymore
+ since 2005.
+ * Drop the ld_system_root patch.
+ * Fix PowerPC64 linking of --just-symbols objects (Alan Modra).
+
+ -- Matthias Klose <doko@debian.org> Mon, 09 Dec 2013 13:57:43 +0100
+
+binutils (2.24-1) unstable; urgency=low
+
+ * Final upstream release.
+ * ifunc updates for AArch64, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Mon, 02 Dec 2013 11:21:16 +0200
+
+binutils (2.23.91.20131123-1) unstable; urgency=low
+
+ * New upstream snapshot, taken from the 2.24 branch.
+ * Stop shipping libiberty, now available in libiberty-dev.
+
+ -- Matthias Klose <doko@debian.org> Sat, 23 Nov 2013 08:27:51 +0100
+
+binutils (2.23.90.20131116-1) unstable; urgency=low
+
+ * New upstream snapshot, taken from the 2.24 branch.
+
+ -- Matthias Klose <doko@debian.org> Sat, 16 Nov 2013 12:40:28 +0100
+
+binutils (2.23.90.20131017-1) unstable; urgency=low
+
+ * New upstream snapshot, taken from the 2.24 branch.
+
+ -- Matthias Klose <doko@debian.org> Thu, 17 Oct 2013 14:22:05 +0200
+
+binutils (2.23.90.20130927-1) unstable; urgency=low
+
+ * New upstream snapshot, taken from the 2.24 branch.
+ * Add ifunc support for AArch64.
+
+ -- Matthias Klose <doko@debian.org> Fri, 27 Sep 2013 14:05:44 +0200
+
+binutils (2.23.52.20130828-1) unstable; urgency=low
+
+ * New upstream snapshot.
+
+ -- Matthias Klose <doko@debian.org> Wed, 28 Aug 2013 15:22:51 +0200
+
+binutils (2.23.52.20130727-1) unstable; urgency=low
+
+ * New upstream snapshot.
+
+ -- Matthias Klose <doko@debian.org> Sat, 27 Jul 2013 10:37:11 +0200
+
+binutils (2.23.52.20130722-1) unstable; urgency=low
+
+ * New upstream snapshot.
+ - Fix PR ld/15762, glibc being built without warning sections.
+ * Set the libdir for arm64 to lib, not lib64.
+ * Stop building the binutils-gold package, let binutils provide
+ binutils-gold. Packages requiring gold should explicity pass
+ -fuse-ld=gold to the compiler, packages requiring the bfd linker
+ should pass -fuse-ld=bfd to the compiler.
+ * Refresh patches.
+
+ -- Matthias Klose <doko@debian.org> Mon, 22 Jul 2013 21:13:32 +0200
+
+binutils (2.23.52.20130620-1) unstable; urgency=low
+
+ * New upstream snapshot.
+ * Add conflicts with mingw binutils. Closes: #712057, #712063.
+ * Always compare the test results with the ones from the installed binutils.
+
+ -- Matthias Klose <doko@debian.org> Thu, 20 Jun 2013 12:27:31 +0200
+
+binutils (2.23.52.20130612-1) unstable; urgency=low
+
+ * New upstream snapshot.
+ - Fix issue #15323, redefining weak functions in -flto incrementally-linked
+ executable. Closes: #710936.
+ * Install libiberty.a again in binutils-dev, not installed anymore upstream
+ by default.
+ * Import the autopkg tests from Ubuntu.
+ * Enable i386pep emulation for the x86 builds. Closes: #703463.
+ * Fix typo in ld(1). Closes: #704867.
+ * Add mips64(el) support (YunQiang Su). Closes: #710214.
+
+ -- Matthias Klose <doko@debian.org> Wed, 12 Jun 2013 11:35:05 +0200
+
+binutils (2.23.52.20130522-1) experimental; urgency=low
+
+ * New upstream snapshot.
+
+ -- Matthias Klose <doko@debian.org> Wed, 22 May 2013 16:22:04 +0200
+
+binutils (2.23.2-2) experimental; urgency=low
+
+ * Add support for Cortex-A53 / Cortex-A57.
+ * Fix PR gas/14887 and PR gas/14987, gas syntax errors on ARM.
+ LP: #1166628.
+
+ -- Matthias Klose <doko@debian.org> Tue, 16 Apr 2013 02:21:44 +0200
+
+binutils (2.23.2-1) experimental; urgency=low
+
+ * binutils 2.23.2 release.
+
+ -- Matthias Klose <doko@debian.org> Tue, 26 Mar 2013 19:58:59 +0100
+
+binutils (2.23.1-1~exp6) experimental; urgency=low
+
+ * Update from the 2.23 branch (20130222).
+ * For cross builds, add the tool libdir to the library search path.
+ * Revert broken patch:
+ - Recognize DEB_TARGET_ARCH for cross builds.
+
+ -- Matthias Klose <doko@debian.org> Sat, 23 Feb 2013 01:57:30 +0100
+
+binutils (2.23.1-1~exp5) experimental; urgency=low
+
+ * Update from the 2.23 branch (20130213).
+ - AArch64 and PPC updates.
+ * Recognize DEB_TARGET_ARCH for cross builds. Closes: #695595.
+ * Fix srec_scan null dereference (Sang Kil Cha). Closes: #684903.
+
+ -- Matthias Klose <doko@debian.org> Wed, 13 Feb 2013 12:10:31 +0100
+
+binutils (2.23.1-1~exp4) experimental; urgency=low
+
+ * Fix PR ld/14918: linking with -flto always links in libgcc_s.so.
+ Closes: #650145.
+ * Fix build failure with texinfo 4.14. Closes: #697353.
+
+ -- Matthias Klose <doko@debian.org> Sat, 05 Jan 2013 14:06:23 +0100
+
+binutils (2.23.1-1~exp3) experimental; urgency=low
+
+ * Update from the 2.23 branch (20121204).
+ * Add fuse-ld= for GCC linker option compatibility in ld and gold.
+ * gold cross builds: Search the multiarch directories too.
+
+ -- Matthias Klose <doko@debian.org> Wed, 05 Dec 2012 08:35:10 +0100
+
+binutils (2.23.1-1~exp2) experimental; urgency=low
+
+ * Update from the 2.23 branch (20121121).
+ - arm, arm64 and x32 updates.
+
+ -- Matthias Klose <doko@debian.org> Wed, 21 Nov 2012 13:47:06 +0100
+
+binutils (2.23.1-1~exp1) experimental; urgency=low
+
+ * binutils 2.23.1 release.
+
+ -- Matthias Klose <doko@debian.org> Thu, 15 Nov 2012 13:50:55 +0100
+
+binutils (2.23-1) experimental; urgency=low
+
+ * Update multi-arch paths for x32 (x86_64-linux-gnux32) (Daniel Schepler).
+ Closes: #692138.
+ * Add new ARM hard-float/soft-float ABI flags for EABI_VER5 (Steve McIntyre).
+ * Silence lintian stupidity about interpreting every string in binaries
+ as text (Emmanuel Fleury). Closes: #661639.
+ * In ld.texi, remove cross reference to BFD internals documentation.
+
+ -- Matthias Klose <doko@debian.org> Tue, 06 Nov 2012 10:42:37 +0100
+
+binutils (2.23-1) experimental; urgency=low
+
+ * binutils 2.23 release.
+ * Don't include the documents licensed under GFDL with cover texts.
+ Closes: #650504.
+
+ -- Matthias Klose <doko@debian.org> Wed, 24 Oct 2012 10:29:50 +0200
+
+binutils (2.22.90.20120924-1) experimental; urgency=low
+
+ * New upstream snapshot (taken from the 2.23 branch).
+ * Fix bfd.h, removing the safety inclusion guard.
+ * Fix multilib conflicts of generated values by __WORDSIZE-based expressions.
+
+ -- Matthias Klose <doko@debian.org> Mon, 24 Sep 2012 18:39:51 +0200
+
+binutils (2.22.90.20120913-2) experimental; urgency=low
+
+ * Undo the reversion of the mips patches, unrelated issue.
+ * Build again with -marm on armhf. Testsuite still not ready for thumb mode.
+
+ -- Matthias Klose <doko@debian.org> Sat, 15 Sep 2012 03:00:10 +0200
+
+binutils (2.22.90.20120913-1) experimental; urgency=low
+
+ * New upstream snapshot (taken from the 2.23 branch).
+ * Add R_AARCH64_GOT_LD_PREL19 reloc implementation, taken from the trunk.
+ * Revert mips updates.
+ See http://sourceware.org/ml/binutils/2012-09/msg00158.html
+
+ -- Matthias Klose <doko@debian.org> Thu, 13 Sep 2012 20:35:08 +0200
+
+binutils (2.22.90.20120907-2) experimental; urgency=low
+
+ * Fix build failure on kfreebsd.
+
+ -- Matthias Klose <doko@debian.org> Sun, 09 Sep 2012 15:41:54 +0200
+
+binutils (2.22.90.20120907-1) experimental; urgency=low
+
+ * New upstream snapshot (taken from the 2.23 branch).
+ * Don't build anymore with -marm on armhf.
+ * Work around `install' limitation not able to pass parameters
+ to the strip command. Closes: #686183.
+ * Generate md5sums file. Closes: #684079.
+
+ -- Matthias Klose <doko@debian.org> Sat, 08 Sep 2012 13:40:39 +0200
+
+binutils (2.22.90.20120816-2) experimental; urgency=low
+
+ * Some refactoring of debian/rules based on patches from Marcin:
+ * Introduce DEB_TARGET_* macros to unify native and cross builds.
+ * Build the control file as the first step for cross builds.
+ * Try again building without --disable-werror.
+ * Refactor stripping of binaries into a `strip_package' macro.
+
+ -- Matthias Klose <doko@debian.org> Tue, 21 Aug 2012 15:31:05 +0200
+
+binutils (2.22.90.20120816-1) experimental; urgency=low
+
+ * New upstream snapshot (taken from the 2.23 branch).
+ * Configure for aarch64 and x32 targets.
+
+ -- Matthias Klose <doko@debian.org> Thu, 16 Aug 2012 13:26:56 +0200
+
+binutils (2.22.90.20120731-1) experimental; urgency=low
+
+ * New upstream snapshot (taken from the 2.23 branch).
+
+ -- Matthias Klose <doko@debian.org> Tue, 31 Jul 2012 22:20:22 +0200
+
+binutils (2.22.52.20120704-1) experimental; urgency=low
+
+ * New upstream snapshot.
+
+ -- Matthias Klose <doko@debian.org> Wed, 04 Jul 2012 14:40:01 +0200
+
+binutils (2.22-7) unstable; urgency=low
+
+ * Update from the binutils-2_22-branch 20120704.
+ - Fix PR ld/13991 and a gold issue on ARM.
+ * Fix warning building libiberty/md5.c. Closes: #674831.
+ * Enable x86_64-pep in binutils-multiarch. Closes: #675364.
+
+ -- Matthias Klose <doko@debian.org> Wed, 04 Jul 2012 11:00:14 +0200
+
+binutils (2.22-6.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fix PR ld/14069 (hurd-i386) (Closes: #671804).
+
+ -- Samuel Thibault <sthibault@debian.org> Fri, 18 May 2012 11:52:14 +0200
+
+binutils (2.22-6) unstable; urgency=low
+
+ * Update from the binutils-2_22-branch 20120307.
+ - Fix PR ld/12161 (avr), PR binutils/13622 (readelf crash),
+ PR binutils/13476 (hppa), PR ld/13387 (hppa),
+ * Fix typo in elf64-x86-64.c, follow-up patch to PR ld/13302.
+
+ -- Matthias Klose <doko@debian.org> Thu, 08 Mar 2012 18:52:20 +0100
+
+binutils (2.22-5) unstable; urgency=low
+
+ * Update from the binutils-2_22-branch 20120124.
+ - Fix PR ld/13581 (x32).
+ * Fix PR gas/13449 (ARM), taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Tue, 24 Jan 2012 21:26:43 +0100
+
+binutils (2.22-4) unstable; urgency=low
+
+ * Don't bump the soversion (revert the change in 2.22-3).
+ * Apply proposed patch for PR binutils/13534, allowing ar to handle
+ files bigger than 2GB (Francois Gouget). Closes: #652887).
+ * Recognize DW_LANG_Go in readelf (backport from trunk).
+
+ -- Matthias Klose <doko@debian.org> Sat, 07 Jan 2012 09:07:25 +0100
+
+binutils (2.22-3) unstable; urgency=low
+
+ * Update from the binutils-2_22-branch 20120102.
+ - gold updates.
+ - mips updates.
+
+ -- Matthias Klose <doko@debian.org> Tue, 03 Jan 2012 06:06:20 +0100
+
+binutils (2.22-2) unstable; urgency=low
+
+ * Update from the binutils-2_22-branch 20111211.
+ * Fix build failure with make 3.82 (Daniel Schepler). Closes: #650064.
+
+ -- Matthias Klose <doko@debian.org> Sun, 11 Dec 2011 16:30:14 +0000
+
+binutils (2.22-1) unstable; urgency=low
+
+ * Binutils 2.22 release.
+
+ -- Matthias Klose <doko@debian.org> Mon, 21 Nov 2011 16:50:53 +0100
+
+binutils (2.21.90.20111025-1) unstable; urgency=low
+
+ * Snapshot, taken from the binutils-2_22-branch 20111025.
+ * Fix lintian warnings.
+
+ -- Matthias Klose <doko@debian.org> Tue, 25 Oct 2011 15:06:46 +0200
+
+binutils (2.21.90.20111019-3) unstable; urgency=low
+
+ * Fix PR ld/13302, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sun, 23 Oct 2011 13:15:07 +0200
+
+binutils (2.21.90.20111019-2) unstable; urgency=low
+
+ * Fix PR ld/13287, taken from the trunk. LP: #872687.
+
+ -- Matthias Klose <doko@debian.org> Thu, 20 Oct 2011 12:29:18 +0200
+
+binutils (2.21.90.20111019-1) unstable; urgency=low
+
+ * Snapshot, taken from the binutils-2_22-branch 20111019.
+
+ -- Matthias Klose <doko@debian.org> Wed, 19 Oct 2011 22:25:05 +0200
+
+binutils (2.21.90.20111004-2) unstable; urgency=low
+
+ * Fix PR ld/13250, preserve the maximum alignment and size for common
+ symbols (H.J. Lu). Closes: #608901. LP: #697229.
+
+ -- Matthias Klose <doko@debian.org> Thu, 06 Oct 2011 08:06:04 +0200
+
+binutils (2.21.90.20111004-1) unstable; urgency=medium
+
+ * Snapshot, taken from the binutils-2_22-branch 20111004.
+ * Fix PR ld/13195, taken from the trunk. Closes: #643858, #644183.
+
+ -- Matthias Klose <doko@debian.org> Tue, 04 Oct 2011 12:12:16 +0200
+
+binutils (2.21.53.20110922-1) unstable; urgency=low
+
+ * Snapshot, taken from the binutils-2_22-branch 20110924.
+
+ -- Matthias Klose <doko@debian.org> Sat, 24 Sep 2011 09:55:38 +0200
+
+binutils (2.21.53.20110910-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110910.
+ - Fix PR gas/13024. Closes: #635592.
+ * Build with proposed patch for PR ld/12965.
+ * Don't ship .la files in the cross binutils packages.
+ * For native builds, add the multiarch directories to the default
+ search path.
+
+ -- Matthias Klose <doko@debian.org> Sat, 10 Sep 2011 13:06:01 +0200
+
+binutils (2.21.53.20110823-3) unstable; urgency=low
+
+ * Revert the last change:
+ - Default to --hash-style=both in ld.bfd and ld.gold.
+
+ -- Matthias Klose <doko@debian.org> Thu, 25 Aug 2011 10:48:28 +0200
+
+binutils (2.21.53.20110823-2) unstable; urgency=low
+
+ * Default to --hash-style=both in ld.bfd and ld.gold.
+ * Fix s390x build (Aurelian Jarno). Closes: #635167.
+
+ -- Matthias Klose <doko@debian.org> Wed, 24 Aug 2011 13:06:48 +0200
+
+binutils (2.21.53.20110823-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110823.
+ - ld --no-copy-dt-needed-entries/--no-add-needed is now the default.
+
+ -- Matthias Klose <doko@debian.org> Tue, 23 Aug 2011 21:23:38 +0200
+
+binutils (2.21.53.20110805-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110805.
+
+ -- Matthias Klose <doko@ubuntu.com> Fri, 05 Aug 2011 12:25:49 +0200
+
+binutils (2.21.53.20110729-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110729.
+ * Fix s390x build (Aurelian Jarno). Closes: #635167.
+
+ -- Matthias Klose <doko@debian.org> Fri, 29 Jul 2011 19:04:46 +0200
+
+binutils (2.21.53.20110720-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110720.
+ - Fix PR ld/12978. Closes: #632681.
+
+ -- Matthias Klose <doko@debian.org> Wed, 20 Jul 2011 20:54:51 +0200
+
+binutils (2.21.52.20110707-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110707.
+ - Fix build failure on mips/mipsel. Closes: #632690.
+ - Fix issues on kfreebsd-amd64. Closes: #632671.
+
+ -- Matthias Klose <doko@debian.org> Thu, 07 Jul 2011 06:48:33 +0200
+
+binutils (2.21.52.20110703-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110703.
+
+ -- Matthias Klose <doko@debian.org> Sun, 03 Jul 2011 21:56:44 +0200
+
+binutils (2.21.52.20110606-2) unstable; urgency=low
+
+ * Fix PR ld/12845, taken from the trunk. Closes: #628685.
+
+ -- Matthias Klose <doko@debian.org> Thu, 09 Jun 2011 12:45:15 +0200
+
+binutils (2.21.52.20110606-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110606.
+ - Fix PR ld/12833. Closes: #628770.
+ - Fix spelling errors. Closes: #604696.
+ * Let gold accept a dummy -z buildd-<random-string> option.
+ * Add a /usr/share/bug/binutils/presubj file for reportbug (and symlinks
+ from the other /usr/share/bug/binutils-foo directories) explaining how
+ to make a self-contained testcase (Jonathan Nieder). Closes: #629147.
+ * Fix ld crash cause of invalid pointer in munmap_chunk. Closes: #628916.
+
+ -- Matthias Klose <doko@debian.org> Tue, 07 Jun 2011 00:03:47 +0200
+
+binutils (2.21.51.20110523-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110523.
+
+ -- Matthias Klose <doko@debian.org> Mon, 23 May 2011 23:38:52 +0200
+
+binutils (2.21.51.20110421-6) unstable; urgency=low
+
+ [ Marcin Juszkiewicz ]
+ * Use pregenerated ld.gold.1 for cross builds.
+
+ [ Matthias Klose ]
+ * Redefine STRIP and install_binary for cross builds (Ken Werner).
+ * Apply fix for PR ld/12726, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Thu, 19 May 2011 15:51:22 +0200
+
+binutils (2.21.51.20110421-5) unstable; urgency=medium
+
+ * Use a symlink for /usr/bin/ld, even if gold is not built. Closes: #615262.
+
+ -- Matthias Klose <doko@debian.org> Tue, 17 May 2011 17:58:17 +0200
+
+binutils (2.21.51.20110421-4) unstable; urgency=low
+
+ * Fix PR ld/12730, taken from the trunk. Closes: #625616.
+ * Cortex A8 workarounds for PLT tail calls (Richard Sandiford).
+
+ -- Matthias Klose <doko@debian.org> Sun, 08 May 2011 02:06:22 +0200
+
+binutils (2.21.51.20110421-3) unstable; urgency=low
+
+ * Fix segfault in ar, delete_members.
+
+ -- Matthias Klose <doko@debian.org> Sun, 01 May 2011 17:30:42 +0200
+
+binutils (2.21.51.20110421-2) unstable; urgency=low
+
+ * Fix typo in the patch for PR gas/12698.
+
+ -- Matthias Klose <doko@debian.org> Wed, 27 Apr 2011 21:33:47 +0200
+
+binutils (2.21.51.20110421-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110421.
+ * Install a man page for ld.gold, generated by help2man. Closes: #619823.
+ * Apply proposed patch for PR gas/12698. Closes: #623964.
+
+ -- Matthias Klose <doko@debian.org> Wed, 27 Apr 2011 18:14:39 +0200
+
+binutils (2.21.51.20110419-2) unstable; urgency=low
+
+ * Fix powerpcspe and sparc builds.
+
+ -- Matthias Klose <doko@debian.org> Tue, 19 Apr 2011 13:47:56 +0200
+
+binutils (2.21.51.20110419-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20110419.
+
+ -- Matthias Klose <doko@debian.org> Tue, 19 Apr 2011 10:18:14 +0200
+
+binutils (2.21.51.20110409-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20110409.
+
+ -- Matthias Klose <doko@debian.org> Sat, 09 Apr 2011 13:53:24 +0200
+
+binutils (2.21.51.20110403-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20110403.
+
+ -- Matthias Klose <doko@debian.org> Sun, 03 Apr 2011 23:54:13 +0200
+
+binutils (2.21.0.20110327-3) unstable; urgency=high
+
+ * Fix architecture field for binutils-gold (powerpcspe).
+ * Add support for arm-*-gnueabihf targets. Closes: #621029.
+ * Fix PR ld/12654: Properly handle R_386_TLS_LDO_32 for PIE. LP: #663294.
+ * Fix PR ld/12637, reloc overflow for R_MIPS_TLS_LDM (Richard Sandiford),
+ taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sun, 10 Apr 2011 17:23:40 +0200
+
+binutils (2.21.0.20110327-2) unstable; urgency=low
+
+ * Fix architecture field for binutils-gold.
+ * Configure with --disable-werror on armhf.
+
+ -- Matthias Klose <doko@debian.org> Tue, 29 Mar 2011 19:38:55 +0200
+
+binutils (2.21.0.20110327-1) unstable; urgency=low
+
+ * Update from the 2.21 branch 20110327.
+ * Add multiarch directories to linker search path. Closes: #369064.
+ LP: #738098.
+
+ -- Matthias Klose <doko@debian.org> Sun, 27 Mar 2011 22:32:57 +0100
+
+binutils (2.21.0.20110322-1) unstable; urgency=low
+
+ * Update from the 2.21 branch 20110322.
+ * S/390: Make as to accept all instructions if no -march option given.
+ taken from the trunk (Aurelian Jarno). Closes: #618751.
+ * Extend support for armhf (Loic Minier).
+ - debian/control.in, debian/control, debian/rules: Enable gold for armhf.
+ - debian/rules: Introduce $(CROSS) (set to $(DEB_HOST_GNU_TYPE)- when
+ cross-building) and call $(CROSS)cpp to check whether -marm is needed or
+ not instead of testing for armel; an alternative would be to
+ unconditionally set -marm if DEB_HOST_ARCH_CPU is arm.
+ - debian/rules: commented out -fno-section-anchors CFLAGS handling would
+ also be enabled for armhf.
+ - debian/rules: ignore regressions on armhf as well; note that
+ ignore_regressions is set three times.
+
+ -- Matthias Klose <doko@debian.org> Tue, 22 Mar 2011 23:12:39 +0100
+
+binutils (2.21.0.20110302-2) unstable; urgency=low
+
+ [ Carlos O'Donell ]
+ * Fix binutils-hppa64 build.
+
+ [ Matthias Klose ]
+ * Fix PR ld/12376 (John David Anglin), taken from the trunk.
+ * Update to the 2.21 branch, 20110310.
+
+ -- Matthias Klose <doko@debian.org> Thu, 10 Mar 2011 21:35:07 +0100
+
+binutils (2.21.0.20110302-1) unstable; urgency=low
+
+ * Update from the 2.21 branch.
+
+ [ Thorsten Glaser ]
+ * patches/640_m68k_fix-TLS_GD-relocation: new, temp. Closes: #611768.
+
+ [ Matthias Klose ]
+ * On ppc64, look for 32 bit target libraries in /lib32, /usr/lib32 etc.,
+ first.
+
+ -- Matthias Klose <doko@debian.org> Wed, 02 Mar 2011 02:41:17 +0100
+
+binutils (2.21.0.20110216-2) unstable; urgency=low
+
+ * Upload to unstable.
+
+ -- Matthias Klose <doko@debian.org> Tue, 22 Feb 2011 20:35:16 +0100
+
+binutils (2.21.0.20110216-1) experimental; urgency=low
+
+ * Update from the 2.21 branch.
+
+ -- Matthias Klose <doko@debian.org> Wed, 16 Feb 2011 15:54:15 +0100
+
+binutils (2.21-5) experimental; urgency=low
+
+ * Update gold to 1.11, taken from the 2.21 branch.
+ * Add the arm-linux-gnueabi target to binutils-multiarch (Loic Minier).
+
+ -- Matthias Klose <doko@ubuntu.com> Tue, 25 Jan 2011 00:51:38 +0100
+
+binutils (2.21-4) experimental; urgency=low
+
+ * Fix handling of writable .eh_frame section in gold, taken from the
+ 2.21 branch.
+
+ -- Matthias Klose <doko@debian.org> Wed, 12 Jan 2011 00:42:15 +0100
+
+binutils (2.21-3) experimental; urgency=low
+
+ [ Matthias Klose ]
+ * Don't include `-system' in the bfd version identifier.
+
+ [ Sedat Dilek ]
+ * 160_pr12327.patch: Fix PR ld/12327, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Thu, 29 Dec 2010 23:51:35 +0100
+
+binutils (2.21-2) experimental; urgency=low
+
+ * Don't install ld.bfd in binutils-multiarch.
+ * Fix assembler bug blocking Thumb-2 kernel builds (CS issue #8775).
+
+ -- Matthias Klose <doko@debian.org> Fri, 10 Dec 2010 13:45:00 +0100
+
+binutils (2.21-1) experimental; urgency=low
+
+ * binutils 2.21 release.
+
+ [ Marcin Juszkiewicz ]
+ * Enable building gold in cross builds. LP: #686530.
+ * Allow to build only the -source package, and include the version
+ in the package name. LP: #682646.
+
+ -- Matthias Klose <doko@debian.org> Thu, 09 Dec 2010 23:24:49 +0100
+
+binutils (2.20.90.20101121-1) experimental; urgency=low
+
+ * Update from the binutils 2.21 release branch.
+
+ -- Matthias Klose <doko@debian.org> Sun, 21 Nov 2010 14:03:14 +0100
+
+binutils (2.20.90.20101105-2) experimental; urgency=low
+
+ * binutils 2.21 prerelease 1.
+
+ -- Matthias Klose <doko@debian.org> Wed, 10 Nov 2010 01:04:59 +0100
+
+binutils (2.20.51.20101028-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20101028.
+
+ -- Matthias Klose <doko@debian.org> Thu, 28 Oct 2010 16:57:11 +0200
+
+binutils (2.20.51.20101009-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20101009.
+
+ -- Matthias Klose <doko@debian.org> Sat, 09 Oct 2010 14:41:08 +0200
+
+binutils (2.20.51.20100925-2) experimental; urgency=low
+
+ * Allow ar scripts to contain ~ in the filename (Zygmunt Krynicki, taken
+ from Linaro). LP: #641488.
+
+ -- Matthias Klose <doko@debian.org> Thu, 30 Sep 2010 10:20:41 +0200
+
+binutils (2.20.51.20100925-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100925.
+ * Fix PR ld/10144, mips/ld: non-dynamic relocations refer to dynamic symbol
+ Closes: #519006.
+
+ -- Matthias Klose <doko@debian.org> Sat, 25 Sep 2010 16:24:20 +0200
+
+binutils (2.20.51.20100908-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100908.
+ * Link executables statically when `static' is passed in DEB_BUILD_OPTIONS
+ (Jim Heck). Closes: #590101.
+ * Apply proposed patch for PR ld/10340 (ld doesn't honor sysroot prefix
+ for ldscripts). LP: #625320.
+ * Build binutils-hppa64 in cross builds (Al Viro). Closes: #595319.
+ * Fix some lintian warnings.
+
+ -- Matthias Klose <doko@debian.org> Wed, 08 Sep 2010 16:31:47 +0200
+
+binutils (2.20.51.20100813-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100813.
+
+ [ Jonathan Nieder ]
+ * Remove ld.bfd from binutils-multiarch (not that useful without an
+ multiarch assembler).
+
+ [ Marcin Juszkiewicz ]
+ * Revert sysroot to / for cross builds. LP: #598389.
+ * Generate debian/control for native and cross builds. LP: #612629.
+ * Provide packaging rules in -source package. LP: #608745.
+
+ [ Matthias Klose ]
+ * Don't apply patches, when PATCHED_SOURCES is set to `yes'.
+ * Proposed patch for PR11889, readelf crashes for malformed binaries
+ (Dan Rosenberg). LP: #614206.
+
+ -- Matthias Klose <doko@debian.org> Fri, 13 Aug 2010 11:10:14 +0200
+
+binutils (2.20.51.20100710-2) experimental; urgency=medium
+
+ * Don't use configury for cross builds for native builds. LP: #604134.
+
+ -- Matthias Klose <doko@debian.org> Sun, 11 Jul 2010 10:24:28 +0200
+
+binutils (2.20.51.20100710-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100710.
+ - Fix PR gas/10531. LP: #599485.
+ * debian/rules: Introduce PF macros (Jim Heck). Closes: #588357.
+
+ [ Marcin Juszkiewicz ]
+ * Don't install documentation files in -cross packages. Closes: #586636.
+ * Set sysroot to /usr/$(TARGET) for cross builds. LP: #598389.
+
+ -- Matthias Klose <doko@debian.org> Sat, 10 Jul 2010 10:42:55 +0200
+
+binutils (2.20.51.20100617-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100617.
+ * Merge 'binary-cross' target into 'binary' one (Marcin Juszkiewicz).
+ * debian/copyright: Update to GFDL 1.3.
+
+ -- Matthias Klose <doko@debian.org> Thu, 17 Jun 2010 15:20:34 +0200
+
+binutils (2.20.51.20100527-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100527.
+
+ [ Jonathan Nieder ]
+ * debian/binutils-multiarch.preinst.in: Re-add diversions on reinstall.
+ Closes: #581156.
+ * Remove c++filt from binutils-multiarch.
+ * Rename /usr/bin/ld from multiarch build to ld.bfd. Closes: #582490.
+
+ -- Matthias Klose <doko@debian.org> Thu, 27 May 2010 10:40:48 +0200
+
+binutils (2.20.51.20100518-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100518.
+
+ -- Matthias Klose <doko@debian.org> Tue, 18 May 2010 13:29:45 +0200
+
+binutils (2.20.51.20100428-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100428.
+
+ -- Matthias Klose <doko@debian.org> Wed, 28 Apr 2010 10:07:28 +0200
+
+binutils (2.20.51.20100418-2) experimental; urgency=low
+
+ * Add upper dependency
+
+ -- Matthias Klose <doko@debian.org> Sun, 18 Apr 2010 20:52:41 +0200
+
+binutils (2.20.51.20100418-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100418.
+ * debian/*.shlibs.in: Automate upstream version changes.
+ * Configure native build --with-sysroot=/. Closes: #556126.
+ * Move the ld.gold binary into the binutils package, just keep the
+ diversion (ld) in the binutils-gold package.
+ * Linker selection: ld is used by default, to use the gold linker,
+ pass -fuse-linker-plugin (no other side effects if -flto/-fwhopr
+ is not passed). To force ld.bfd or ld.gold, pass -B/usr/lib/compat-ld
+ for ld.bfd or /usr/lib/gold-ld for ld.gold.
+ * Apply proposed patch for ARM: Add option to disable merging of adjacent
+ exidx unwinder entries.
+
+ [ Jonathan Nieder ]
+ * Clean up diversion handling in binutils-multiarch:
+ - remove diversion of libbfd.a and libopcodes.a. Closes: #545067.
+ - wait for the new version to be unpacked before removing old diversions
+ - avoid messages from re-adding diversions when upgrading from a version
+ that already has them
+ - remove diversions when downgrading to a version that does not have
+ them (for example, when recovering from an upgrade failure)
+ * Add diversion for ld.bfd in binutils-multiarch.
+ * Update comment in debian/rules to acknowledge that binutils-multiarch
+ includes a linker now.
+ * Add c++filt to binutils-multiarch.
+ * Remove elfedit from binutils-multiarch.
+ Its functionality does not depend on the list of supported targets.
+ * Fixup to version changes handling.
+
+ -- Matthias Klose <doko@debian.org> Sun, 18 Apr 2010 14:18:59 +0200
+
+binutils (2.20.51.20100405-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100405.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * Mangle the soname of the binutils libraries to be different than
+ the default name. Closes: #557620.
+ Packaged cross builds should do the same.
+ * Add diversion for elfedit in binutils-multiarch (Jonathan Nieder).
+ Closes: #576126.
+ * Convert to quilt (Sedat Dilek).
+ * Update to proposed patch to enable both gold and ld in a single toolchain.
+ The gold binary is now installed as `gold'. Keep the name `ld.gold'.
+
+ -- Matthias Klose <doko@debian.org> Mon, 05 Apr 2010 14:49:46 +0200
+
+binutils (2.20.51.20100227-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100227.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sat, 27 Feb 2010 08:55:05 +0100
+
+binutils (2.20.51.20100222-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100222.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * binutils-dev: Install plugin-api.h.
+ * Ignore testsuite regressions on armel.
+
+ -- Matthias Klose <doko@debian.org> Tue, 23 Feb 2010 02:27:28 +0100
+
+binutils (2.20.51.20100216-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100216.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Tue, 16 Feb 2010 17:49:47 +0100
+
+binutils (2.20.51.20100112-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100112.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Tue, 12 Jan 2010 09:06:51 +0100
+
+binutils (2.20.51.20100109-2) experimental; urgency=low
+
+ * Regenerate ld/configure (includes ld in the binutils package).
+
+ -- Matthias Klose <doko@debian.org> Mon, 11 Jan 2010 01:48:09 +0100
+
+binutils (2.20.51.20100109-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100109.
+ - PR gold/10980: Support more options available by current GNU ld.
+ Closes: #555886.
+ - Fix PR gold/11072: Discard .gnu_debuglink sections, taken from the trunk.
+ Closes: #563366.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sat, 09 Jan 2010 14:32:33 +0100
+
+binutils (2.20.51.20100101-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20100101.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * Remove patches available on the trunk.
+
+ -- Matthias Klose <doko@debian.org> Fri, 01 Jan 2010 18:49:42 +0100
+
+binutils (2.20.1-11) unstable; urgency=medium
+
+ * Fix PR gold/10893, IFUNC support for gold backported from the trunk
+ (Aurelian Jarno). Closes: #585051.
+
+ -- Matthias Klose <doko@debian.org> Mon, 14 Jun 2010 07:17:13 +0200
+
+binutils (2.20.1-10) unstable; urgency=low
+
+ * Drop build dependency on expect-tcl8.3. Closes: #472964.
+
+ -- Matthias Klose <doko@debian.org> Sun, 30 May 2010 12:23:46 +0200
+
+binutils (2.20.1-9) unstable; urgency=high
+
+ * [arm] branches to weak symbols, update patch from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Thu, 06 May 2010 15:42:22 +0200
+
+binutils (2.20.1-8) unstable; urgency=low
+
+ * [arm] branches to weak symbols, patch taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Thu, 29 Apr 2010 20:36:07 +0200
+
+binutils (2.20.1-7) unstable; urgency=low
+
+ * Apply proposed patch for ARM: Add option to disable merging of adjacent
+ exidx unwinder entries. Addresses PR libgcj/40860.
+
+ -- Matthias Klose <doko@debian.org> Tue, 20 Apr 2010 22:51:35 +0000
+
+binutils (2.20.1-6) unstable; urgency=low
+
+ * Move the ld.gold binary into the binutils package, just keep the
+ diversion (ld) in the binutils-gold package.
+ * Linker selection: ld is used by default, to use the gold linker,
+ pass -fuse-linker-plugin (no other side effects if -flto/-fwhopr
+ is not passed). To force ld.bfd or ld.gold, pass -B/usr/lib/compat-ld
+ for ld.bfd or /usr/lib/gold-ld for ld.gold.
+ * Disable building gold on arm. Use gold from the trunk, if needed.
+ * Backport fixups of Loongson2F from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sat, 17 Apr 2010 18:27:45 +0200
+
+binutils (2.20.1-5) unstable; urgency=medium
+
+ * Apply patch for PR gas/11456: Use memcpy to copy overlap memory.
+
+ -- Matthias Klose <doko@debian.org> Fri, 02 Apr 2010 01:36:07 +0200
+
+binutils (2.20.1-4) unstable; urgency=low
+
+ * Mangle the soname of the binutils libraries to be different than
+ the default name. Closes: #557620.
+ Packaged cross builds should do the same.
+ * Reduce ARM linking time (backport from the trunk).
+ * Apply fix for PR ld/11426, taken from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Tue, 30 Mar 2010 22:32:12 +0200
+
+binutils (2.20.1-3) unstable; urgency=low
+
+ * binutils-gold: Install the gold binary as `gold' as well, as proposed
+ by a patch to enable both gold and ld in a single toolchain.
+
+ -- Matthias Klose <doko@debian.org> Sun, 21 Mar 2010 06:43:48 +0100
+
+binutils (2.20.1-2) unstable; urgency=low
+
+ * Fix version in debian/*shlibs to match the release version;
+ the 2.20.1 upstream release identifies as 2.20.1.20100303.
+
+ -- Matthias Klose <doko@debian.org> Mon, 08 Mar 2010 18:01:22 +0100
+
+binutils (2.20.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * Don't set has_ifunc_symbols if the symbol comes from a shared library
+ (backport from the trunk).
+ * Don't include documentation files in the -cross packages.
+ Closes: #571522. LP: #514509.
+ * Fix typo in ld documentation. LP: #497923.
+ * Add readelf --unwind support for ARM.
+
+ -- Matthias Klose <doko@debian.org> Mon, 08 Mar 2010 04:47:46 +0100
+
+binutils (2.20-6) unstable; urgency=low
+
+ * Apply updates from the 2.20 branch up to 20100205
+ - 135_arm_dis_thumb2.dpatch: Remove, applied upstream.
+ - 136_gold_gnu_debuglink.dpatch: Remove, applied upstream.
+ * armel: Fix ld-shared/shared.exp and ld-elfvsb/elfvsb.exp failures
+ (proposed patch, Matthew Gretton-Dann). Closes: #564685. LP: #446478.
+ * Fix PR other/42602: demangling a global constructors symbol.
+ Closes: #561150.
+
+ -- Matthias Klose <doko@debian.org> Fri, 05 Feb 2010 20:01:20 +0100
+
+binutils (2.20-5) unstable; urgency=low
+
+ * Apply updates from the 2.20 branch up to 20100109
+ * Apply patches from the trunk:
+ - [arm] Prevent disassembler from aborting on an invalid Thumb2 instruction.
+ - Fix PR gold/11072: Discard .gnu_debuglink sections. Closes: #563366.
+ - Fix PR ld/11138: internal error when DSO is before object files.
+ Closes: #562822.
+ - Fix PR gold/11042: COPY relocs need for the dynamic object.
+ Closes: #559183.
+ - Fix PR gold/10916: Fix --exclude-libs with undefined symbol.
+ Closes: #555012.
+ - Fix PR gold/10979: gold linker crashes. Closes: #553916.
+ - Fix PR gas/10740: Intel syntax far jumps broken. Closes: #541535.
+
+ -- Matthias Klose <doko@debian.org> Sat, 09 Jan 2010 10:43:04 +0100
+
+binutils (2.20-4) unstable; urgency=low
+
+ * Fix binutils-gold update. Closes: #555734.
+ * Don't configure gold for spu on powerpc.
+
+ -- Matthias Klose <doko@debian.org> Wed, 11 Nov 2009 23:33:20 +0100
+
+binutils (2.20-3) unstable; urgency=low
+
+ * Apply updates from the 2.20 branch up to 20091108:
+ - Fix PR gold/10876 (closes: #553435), PR gold/10910, PR gold/10860,
+ PR gold/10880 (closes: #553512, #553436), PR gold/10887,
+ PR gold/10893, PR gold/10895 (thanks to Peter Fritzsche for tracking
+ the gold reports).
+ * Fix libiberty build failure on sh4 (Nobuhiro Iwamatsu). Closes: #550810.
+ * PR ld/10858: Fix pie on mips/mipsel. Closes: #526961.
+ * Ignore regressions on sparc; the proper fix is to fix the testcases
+ for v9.
+ * Remove the conflict between binutils-multiarch and binutils-gold.
+ Closes: #521106.
+
+ -- Matthias Klose <doko@debian.org> Tue, 10 Nov 2009 02:15:41 +0100
+
+binutils (2.20-2) unstable; urgency=high
+
+ * Apply updates from the 2.20 branch up to 20091028:
+ - Fix PR binutils/10802, PR binutils/10793, PR binutils/10792,
+ PR gas/10856.
+ - Remove local patches now in the branch.
+ * Ignore regressions on armel when building with gcc-4.4; the proper fix
+ is to build the testcases using -fno-section-anchors.
+
+ -- Matthias Klose <doko@debian.org> Thu, 29 Oct 2009 22:17:42 +0100
+
+binutils (2.20-1) unstable; urgency=low
+
+ * binutils 2.20 final release.
+ - Fix PR binutils/10785, memory corruptions.
+ - PR ld/10749, ia64 linker failure.
+ - PR gas/2117, ia64 assembler fix.
+ - gold updates.
+ * Configure with --enable-plugins. Closes: #550088.
+ * debian/test-suite-compare.py: Don't count untested test cases as
+ regressions.
+ * binutils-gold: Install /usr/lib/compat-ld/ld to point to the
+ old linker. To use the old linker when gold is installed, use
+ gcc -B/usr/lib/compat-ld/ (including the trailing slash).
+
+ -- Matthias Klose <doko@debian.org> Sat, 17 Oct 2009 12:22:30 +0200
+
+binutils (2.19.91.20091006-1) unstable; urgency=low
+
+ * Snapshot, taken from the 2.20 release branch 20091006.
+ - cfi_sections changes applied.
+ * debian/*.shlibs: Update to the version from the branch.
+ * binutils-gold: Build the testsuite as part of the check target
+ instead of the build target to avoid build failures when the
+ installed binutils soname is the same as the one which is built
+ (gas is segfaulting). Just a workaround, not a solution.
+ * Add 150_gold_copyrelocs.dpatch, add -z copyrelocs option for gold.
+ * binutils-source: Depend on texinfo, zlib1g-dev.
+
+ -- Matthias Klose <doko@debian.org> Tue, 06 Oct 2009 22:13:24 +0200
+
+binutils (2.19.91.20091003-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.20 release branch 20091003.
+ - Fix PR ld/9863, regression in testsuite on armel.
+ - Fix regressions seen in the GCC/libjava testsuite.
+ * debian/*.shlibs: Update to the version from the branch.
+ * No need to build libiberty_pic.a twice.
+
+ -- Matthias Klose <doko@debian.org> Sat, 03 Oct 2009 14:59:14 +0200
+
+binutils (2.19.91.20090927-1) unstable; urgency=low
+
+ * Snapshot, taken from the 2.20 release branch 20090927.
+ * debian/*.shlibs: Update to the version from the branch.
+ * On mips/mipsel disabled -pie/--pie-executable. Still broken,
+ see #526961. Add an option --force-pie on mips/mipsel only
+ for testing purposes.
+ Change requested by debian-release (Andreas Barth).
+
+ -- Matthias Klose <doko@debian.org> Sun, 27 Sep 2009 11:56:06 +0200
+
+binutils (2.19.91.20090923-1) unstable; urgency=medium
+
+ * Snapshot, taken from the 2.20 release branch 20090923 (last upload
+ was taken from the trunk)..
+ * debian/*.shlibs: Update to the version from the branch.
+
+ -- Matthias Klose <doko@debian.org> Wed, 23 Sep 2009 09:50:04 +0200
+
+binutils (2.19.91.20090922-1) unstable; urgency=low
+
+ * Snapshot, taken from the 2.20 release branch 20090922.
+ * debian/*.shlibs: Update to the version from the branch.
+
+ -- Matthias Klose <doko@ubuntu.com> Tue, 22 Sep 2009 19:36:50 +0200
+
+binutils (2.19.91.20090910-1) unstable; urgency=low
+
+ * Snapshot, taken from the 2.20 release branch 20090910, corresponding
+ to the 2.19.90 upstream snapshot.
+ * Fix Thumb-2 shared libraries (Daniel Jacobowitz), patch taken
+ from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Thu, 10 Sep 2009 17:05:30 +0200
+
+binutils (2.19.90.20090909-1) unstable; urgency=low
+
+ * Snapshot, taken from the 2.20 release branch 20090909.
+ * debian/*.shlibs: Update to the version from the branch.
+ * Disable build failure for regressions on mips/mipsel.
+
+ -- Matthias Klose <doko@debian.org> Wed, 09 Sep 2009 09:50:36 +0200
+
+binutils (2.19.51.20090827-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20090827.
+ - Fix PR ld/10518: In linker scripts override a "*" match by any other
+ wildcard match. Closes: #540751.
+ * debian/*.shlibs: Update to the version from the trunk. Closes: #540800.
+ * Add sysroot support for cross builds (Hector Oron). Closes: #522480.
+ * Update long description of binutils-doc. Closes: #428764.
+ * Tighten build dependency on autoconf.
+ * Fix some lintian warnings.
+
+ -- Matthias Klose <doko@debian.org> Thu, 27 Aug 2009 17:09:28 +0200
+
+binutils (2.19.51.20090805-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20090805.
+ - Fix PR binutils/10364, strip not failing on unwritable files.
+ Closes: #276428.
+ - Fix PR binutils/10363, objdump -T crashing on corrupted file.
+ Closes: #487963.
+ * 129_cortex_a8.dpatch: Fix a couple of cortex-a8 erratum bugs.
+
+ -- Matthias Klose <doko@debian.org> Wed, 05 Aug 2009 10:24:40 +0200
+
+binutils (2.19.51.20090723-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20090723.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * Undo the reversion in the last upload, use the upstream fix instead.
+
+ -- Matthias Klose <doko@debian.org> Thu, 23 Jul 2009 09:39:50 +0200
+
+binutils (2.19.51.20090722-2) unstable; urgency=low
+
+ * Apply build-id patch to avoid memory corruption (taken from Fedora).
+ * Revert ld/ldlang.c rev 1.312. Closes: #537389.
+
+ -- Matthias Klose <doko@debian.org> Wed, 22 Jul 2009 19:19:30 +0200
+
+binutils (2.19.51.20090722-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20090722.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Wed, 22 Jul 2009 16:51:11 +0200
+
+binutils (2.19.51.20090714-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20090714.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * Install a libiberty compiled with -fPIC as libiberty_pic.a.
+ Closes: #530888.
+ * Remove obsolete README.Debian. Closes: #324260.
+ * binutils-dev: Include demangle.h. Closes: #134985.
+
+ -- Matthias Klose <doko@debian.org> Tue, 14 Jul 2009 13:13:37 -0400
+
+binutils (2.19.51.20090704-1) unstable; urgency=low
+
+ * Snapshot, taken from the trunk 20090704.
+ - debian/patches/128_arm_eabi_auto_it.dpatch: Remove, applied upstream.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * Bump standards version.
+
+ -- Matthias Klose <doko@debian.org> Sat, 04 Jul 2009 10:37:18 +0200
+
+binutils (2.19.51.20090613-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20090613.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * Build binutils-gold on armel.
+ * Apply proposed patch for new option for automatically generating IT blocks.
+
+ -- Matthias Klose <doko@debian.org> Sat, 13 Jun 2009 14:39:41 +0000
+
+binutils (2.19.51.20090508-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20090508.
+ - Fix PR binutils/9743, relocation issues on arm.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Fri, 08 May 2009 11:08:14 +0200
+
+binutils (2.19.51.20090419-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20090419.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * debian/patches/013_bash_in_ld_testsuite.dpatch: Update.
+
+ -- Matthias Klose <doko@debian.org> Sun, 19 Apr 2009 22:12:19 +0200
+
+binutils (2.19.51.20090315-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20090315.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Sun, 15 Mar 2009 11:38:58 +0100
+
+binutils (2.19.1-1) unstable; urgency=low
+
+ * Upload to unstable.
+ * binutils-source: Make .dpatch files executable.
+
+ -- Matthias Klose <doko@debian.org> Sun, 15 Feb 2009 22:46:34 +0100
+
+binutils (2.19.1-1~exp1) experimental; urgency=low
+
+ * Binutils 2.19.1 release.
+ * debian/*.shlibs: Update to the release version.
+
+ -- Matthias Klose <doko@debian.org> Wed, 04 Feb 2009 09:57:55 +0100
+
+binutils (2.19.0.20090110-1~exp1) experimental; urgency=low
+
+ * Update to the binutils-2_19-branch 20090110.
+ - Fix PR binutils/7011. LP: #254790.
+ * debian/*.shlibs: Update to the version from the branch.
+
+ -- Matthias Klose <doko@debian.org> Sat, 10 Jan 2009 13:56:09 +0100
+
+binutils (2.19-1~exp2) experimental; urgency=low
+
+ * debian/patches/129_scale-DW_CFA_advance_loc.dpatch: Scale
+ DW_CFA_advance_loc[124] output values.
+ * debian/patches/128_arm_relocs_against_weak.dpatch: Fix R_ARM_THM_CALL
+ relocations against undefined weak symbols in shared libraries.
+
+ -- Matthias Klose <doko@debian.org> Sun, 30 Nov 2008 13:22:11 +0100
+
+binutils (2.19-1~exp1) experimental; urgency=low
+
+ * Binutils 2.19 release.
+ * debian/*.shlibs: Update to the release version.
+ * Build binutils-gold on powerpc.
+ * debian/control: Update to GPL3, reference the GFDL.
+ * Fail the build if the testsuite shows regressions compared to the
+ last (installed) build.
+ * Make lintian more happy.
+
+ -- Matthias Klose <doko@debian.org> Sun, 26 Oct 2008 13:06:27 +0200
+
+binutils (2.18.93.20081009-1) experimental; urgency=low
+
+ * Snapshot, taken from the 2.19 branch 20081009 (corresponding to the
+ 2.18.93 upstream snapshot.
+ * debian/*.shlibs: Update to the version from the branch.
+ * Add build dependency on zlib1g-dev.
+ * In gprof(1), remove references to monitor(3) and profil(2).
+ Closes: #293948.
+
+ -- Matthias Klose <doko@ubuntu.com> Sat, 11 Oct 2008 16:45:35 +0000
+
+binutils (2.18.92.20081003-1) experimental; urgency=low
+
+ * Snapshot, taken from the 2.19 branch 20081003.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Fri, 03 Oct 2008 11:29:16 +0000
+
+binutils (2.18.90.20080910-1) experimental; urgency=low
+
+ * Snapshot, taken from the 2.19 branch 20080910.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Fri, 12 Sep 2008 19:23:07 +0200
+
+binutils (2.18.50.20080803-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20080803.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Mon, 04 Aug 2008 00:53:47 +0200
+
+binutils (2.18.50.20080707-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20080707.
+ * debian/*.shlibs: Update to the version from the trunk.
+ * include/safe-ctype.h: Add #include of ctype.h before redefining
+ the ctype.h macros (proposed for the trunk).
+ * Add Daniel Jacobowitz as uploader.
+
+ -- Matthias Klose <doko@debian.org> Mon, 07 Jul 2008 01:08:13 +0200
+
+binutils (2.18.50.20080610-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20080610.
+ * debian/*.shlibs: Update to the version from the trunk.
+
+ -- Matthias Klose <doko@debian.org> Tue, 10 Jun 2008 16:21:02 +0200
+
+binutils (2.18.50.20080530-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20080530.
+ * Switch maintainer and uploader.
+ * debian/rules: Explicitely set SHELL to /bin/bash, build-depend on bash.
+ * debian/rules: Fix setting of TARGET for cross builds.
+
+ -- Matthias Klose <doko@debian.org> Fri, 30 May 2008 23:49:40 +0200
+
+binutils (2.18.50.20080507-1) experimental; urgency=low
+
+ * Snapshot, taken from the trunk 20080507.
+ * Remove patches applied upstream: 304_pr4476.dpatch, 305_arm-dis.dpatch,
+ 306_pr4453.dpatch, 307_ld-pic.dpatch, 308_mips-pic.dpatch.
+ * debian/patches/013_bash_in_ld_testsuite.dpatch: Use bash in the ld
+ testsuite (some tests have bashisms).
+ * debian/*.shlibs: Update to the version from the trunk.
+ * On amd64, i386 and sparc, build a binutils-gold package,
+ diverting /usr/bin/ld.
+ * Use expect instead of expect-tcl8.3 on all architectures except hppa.
+ * Remove binutils and gcc build dependencies (versions are in oldstable).
+
+ -- Matthias Klose <doko@debian.org> Thu, 08 May 2008 00:56:30 +0200
+
+binutils (2.18.1~cvs20080103-4) unstable; urgency=medium
+
+ * debian/rules: Remove libiberty in /usr/lib64; workaround for
+ `gcc -print-multi-os-directory' printing the symlink.
+ Closes: #473665, #473591.
+ * Don't include development files in binutils-spu.
+ * Fix binutils-spu build on ppc64 (Andreas Jochens). Closes: #474116.
+ * Build libiberty with -fPIC on mips/mipsel (Aurelian Jarno).
+
+ -- Matthias Klose <doko@debian.org> Sat, 05 Apr 2008 11:21:08 +0200
+
+binutils (2.18.1~cvs20080103-3) unstable; urgency=low
+
+ [ Arthur Loiret ]
+ * Build a binutils for spu-elf target on powerpc and ppc64.
+ - debian/control: Add a binutils-spu package.
+ - debian/binutils-spu.{postinst,postrm,shlibs}: Add.
+ * Add sh64-linux-gnu to multiarch targets.
+ * Fix cross-compilation support.
+ * Make lintian happier:
+ - Use ${source:Version}, ${binary:Version} variables.
+ - Remove -1 from Build-Depends revisions.
+ - Bump Standards-Version to 3.7.3.
+
+ [ Matthias Klose ]
+ * Keep the spu elfscripts in bintutils, remove them from binutils-spu.
+ * debian/patches/307_ld-pic.dpatch: Fix failing ld-shared tests when built
+ with gcc-4.3.
+
+ -- Matthias Klose <doko@debian.org> Sat, 29 Mar 2008 20:32:35 +0100
+
+binutils (2.18.1~cvs20080103-2) unstable; urgency=low
+
+ * debian/patches/306_pr4453.dpatch: Fix PR binutils/4453, taken from
+ the trunk (Aurelian Jarno). Closes: #363423.
+
+ -- Matthias Klose <doko@debian.org> Fri, 21 Mar 2008 20:49:17 +0100
+
+binutils (2.18.1~cvs20080103-1) unstable; urgency=low
+
+ * Update to 20080103 from the binutils-2_18-branch.
+ - Set version number to 2.18.0 (smaller than the one from the trunk).
+ - Fix PR ld/5398. Closes: #452725.
+ * debian/*.shlibs: Update to version from the branch.
+ * debian/patches/305_arm-dis.dpatch: Fix segfault when disassembling ARM
+ code. Closes: #438956.
+ * Support kfreebsd-amd64-gnu and i486-kfreebsd-gnu (Aurilian Jarno):
+ - debian/patches/127_x86_64_i386_biarch.dpatch: Extend for kfreebsd.
+ - debian/rules: biarch enabled binutils for kfreebsd-{amd64,i486}-gnu,
+ kfreebsd-{amd64,i486}-gnu support for cross-builds,
+ kfreebsd-{amd64,i486}-gnu enabled for binutils-multiarch.
+ - Closes: #380373.
+
+ -- Matthias Klose <doko@debian.org> Thu, 03 Jan 2008 21:57:51 +0100
+
+binutils (2.18.1~cvs20071027-2) unstable; urgency=low
+
+ * Do not include static libraries in the multiarch package.
+ * Don't include /usr/lib64 in cross packages. Closes: #450429.
+
+ -- Matthias Klose <doko@debian.org> Sat, 24 Nov 2007 12:13:22 +0100
+
+binutils (2.18.1~cvs20071027-1) unstable; urgency=low
+
+ * Update to 20071027 from the binutils-2_18-branch.
+ - Fix PR ld/4988, assertion failures in ld. Closes: #440015.
+ * debian/*.shlibs: Update to version from the branch.
+
+ -- Matthias Klose <doko@debian.org> Sat, 27 Oct 2007 17:55:41 +0200
+
+binutils (2.18-1) unstable; urgency=low
+
+ [ Matthias Klose ]
+ * New upstream release.
+ - Remove patches applied upstream: 100_warning_arm, 400_gcc42_fix,
+ 401_builddoc.
+ * debian/*.shlibs: Update to release version.
+
+ -- Matthias Klose <doko@debian.org> Wed, 29 Aug 2007 01:07:31 +0200
+
+binutils (2.18~cvs20070812-1) unstable; urgency=low
+
+ [ Matthias Klose ]
+ * New upstream CVS snapshot, taken from the binutils-2_18-branch.
+ * debian/rules: Support parallel=<n> with comma separated keywords
+ in DEB_BUILD_OPTIONS.
+ * debian/rules (clean): Remove stamp files.
+ * debian/*.shlibs: Update to snapshot version.
+ * debian/patches/401_builddoc.dpatch: Fix doc build failure on the branch.
+
+ -- Matthias Klose <doko@debian.org> Sun, 12 Aug 2007 10:56:18 +0200
+
+binutils (2.17cvs20070804-1) unstable; urgency=low
+
+ [ Matthias Klose ]
+ * New upstream CVS snapshot.
+ - PR binutils/4888, fixes objcopy --only-keep-debug. Closes: #435444.
+ * debian/rules: Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008).
+ * debian/*.shlibs: Update to snapshot version.
+
+ -- Matthias Klose <doko@debian.org> Sat, 04 Aug 2007 12:45:07 +0200
+
+binutils (2.17cvs20070801-1) unstable; urgency=medium
+
+ [ Matthias Klose ]
+ * New upstream CVS snapshot.
+ - Fixes objcopy --only-keep-debug on amd64. Closes: #435444.
+ * binutils-multiarch: Enable the armel-linux-gnu target. Closes: #408805.
+
+ -- Matthias Klose <doko@debian.org> Wed, 01 Aug 2007 18:24:51 +0200
+
+binutils (2.17cvs20070718-1) unstable; urgency=low
+
+ [ Matthias Klose ]
+ * New upstream CVS snapshot.
+ - Fix build failure on m68k.
+ * debian/patches/400_gcc42_fix.dpatch: Fix build failure with gcc-4.2.
+ Closes: #433062.
+ * Fix cross build failure while stripping binaries. Closes: #432907.
+
+ -- Matthias Klose <doko@debian.org> Wed, 18 Jul 2007 20:25:03 +0200
+
+binutils (2.17cvs20070713-1) unstable; urgency=low
+
+ [ Matthias Klose ]
+ * New upstream CVS snapshot.
+ - Remove patches applied upstream: 301_pr4436.dpatch, 302_pr4448.dpatch,
+ 303_pr4454.dpatch, 305_pr4497.dpatch, 306_ld_demangler_segfault.dpatch,
+ 307_pr4558.dpatch.
+ - Fix build failure with gcc-4.2. Closes: #429738.
+ - Fix kernel build with grsecurity patch. Closes: #430041.
+ * debian/copyright: Include GPL-3.
+ * debian/rules: Fix version extraction.
+ * debian/rules: Honor `noopt' in DEB_BUILD_OPTIONS.
+
+ -- Matthias Klose <doko@debian.org> Fri, 13 Jul 2007 14:45:21 +0200
+
+binutils (2.17cvs20070426-8) unstable; urgency=low
+
+ * Fix PR gas/4558.
+ * debian/rules: Add empty NJOBS macro.
+
+ -- Matthias Klose <doko@debian.org> Mon, 28 May 2007 09:06:35 +0000
+
+binutils (2.17cvs20070426-7) unstable; urgency=low
+
+ * 306_ld_demangler_segfault.dpatch: new CVS patch from Alan Modra to fix
+ segfaults in ld seen when building, e.g. openipmi.
+
+ * debian/copyright: update source location and copyright years.
+ * debian/rules: idem.
+
+ -- James Troup <james@nocrew.org> Wed, 23 May 2007 02:19:09 +0100
+
+binutils (2.17cvs20070426-6) unstable; urgency=low
+
+ * Fix PR ld/4497, regression introduced with the fix for PR ld/4454.
+ Closes: #423496.
+ * Fix binutils/4476, readelf support for --hash-style=gnu. Closes: #421790.
+
+ -- Matthias Klose <doko@debian.org> Mon, 14 May 2007 10:51:40 +0200
+
+binutils (2.17cvs20070426-5) unstable; urgency=low
+
+ * Fix PR ld/4454.
+
+ -- Matthias Klose <doko@debian.org> Sun, 06 May 2007 09:50:29 +0200
+
+binutils (2.17cvs20070426-4) unstable; urgency=low
+
+ * Fix PR gas/4448, overstrict check for powerpc lswi. Closes: #421799.
+
+ -- Matthias Klose <doko@debian.org> Wed, 2 May 2007 18:26:03 +0200
+
+binutils (2.17cvs20070426-3) unstable; urgency=low
+
+ * Update debian/*.shlibs files. Closes: #421454.
+ * Fix PR gas/4436, wrong reject in powerpc opcode table checks.
+ Closes: #421455.
+ * Fix build failure on arm (Aurelian Jarno). Closes: #421365.
+ * Compare testsuite results of the installed binutils with the built one.
+
+ -- Matthias Klose <doko@debian.org> Mon, 30 Apr 2007 07:47:09 +0200
+
+binutils (2.17cvs20070426-2) unstable; urgency=low
+
+ * Fix typo preparing the binutils-hppa64 package.
+
+ -- Matthias Klose <doko@debian.org> Fri, 27 Apr 2007 08:06:49 +0200
+
+binutils (2.17cvs20070426-1) unstable; urgency=low
+
+ [ James Troup ]
+ * New upstream CVS snapshot.
+ * debian/test-suite-compare.py: simplistic comparator for binutils test
+ suite runs.
+
+ [ Matthias Klose ]
+ * Merge changes from the experimental uploads:
+ * debian/patches/121_i386_x86_64_biarch.dpatch: Remove, applied upstream.
+ * Build a binutils-source package (containing the patched sources).
+ * Check for a working expect before building the package.
+ * Configure the multiarch build for x86_64-linux-gnu instead of
+ x86_64-linux.
+ * debian/rules: Don't strip binaries if nostrip is in DEB_BUILD_OPTIONS.
+ * debian/rules: Don't try to strip shell scripts.
+ * Configure --with-pkgversion to include the distribution name.
+ * debian/patches/000_print_debian_version.dpatch: Remove.
+ * debian/control: Build-depend on lsb-release.
+ * Enable spu target in powerpc and binutils-multiarch build.
+ * Don't include embedspu in binutils-multiarch on powerpc.
+ * debian/control: Set priority for source package to optional.
+
+ -- James Troup <james@nocrew.org> Fri, 27 Apr 2007 01:29:57 +0100
+
+binutils (2.17-3) unstable; urgency=low
+
+ * debian/rules (configure-multi-stamp): drop i486-kfreebsd-gnu again as
+ it breaks objdump for i386 on amd64. Closes: #380539
+
+ -- James Troup <james@nocrew.org> Tue, 3 Oct 2006 00:53:17 +0100
+
+binutils (2.17-2) unstable; urgency=low
+
+ * The "Laisse le Wookie gagner" release.
+
+ * 127_x86_64_i386_biarch.dpatch: new patch from Aurelien Jarno
+ <aurelien@aurel32.net> to add (/usr)/lib32 to the search paths on
+ amd64. Closes: #369052
+
+ * debian/rules (configure-multi-stamp): add i486-kfreebsd-gnu at request
+ of Aurelien Jarno. Closes: #315306
+
+ -- James Troup <james@nocrew.org> Wed, 26 Jul 2006 20:33:13 +0100
+
+binutils (2.17-1) unstable; urgency=low
+
+ * New upstream release.
+ * 120_mips_xgot_multigot_workaround.dpatch: removed - superseded by a
+ proper fix upstream. Closes: #274738
+ * debian/binutils.shlibs, debian/binutils-multiarch.shlibs,
+ debian/binutils-hppa64.shlibs: updated SONAME to 2.17.
+
+ -- James Troup <james@nocrew.org> Mon, 26 Jun 2006 13:17:36 +0100
+
+binutils (2.16.1cvs20060507-1) unstable; urgency=low
+
+ * New upstream CVS snapshot of 'binutils-2_17-branch'.
+
+ * debian/control (Standards-Version): bump to 3.7.2.0.
+
+ -- James Troup <james@nocrew.org> Sun, 7 May 2006 19:57:08 +0100
+
+binutils (2.16.1cvs20060413-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * 120_mips_xgot_multigot_workaround.dpatch: updated to work with CVS
+ r1.163 of bfd/elfxx-mips.c, pass 'info' instead of 'output_bfd' to
+ MIPS_ELF_GOT_MAX_SIZE().
+
+ * Patch from NIIBE Yutaka <gniibe@fsij.org> in #280884:
+ * debian/rules (configure-multi-stamp): Support m32r-linux. Closes:
+ #340264
+ * debian/rules: Run 'make check' only if build == host.
+
+ * debian/rules: Also don't run 'make check' if nocheck is in
+ DEB_BUILD_OPTIONS. Based on a patch from Michael Banck
+ <mbanck@debian.org>. Closes: #315290
+
+ * Integrate most of a patch to build arbitrary binutils-$TARGET
+ cross-packages from #231707. Thanks to Nikita V. Youshchenko
+ <yoush@cs.msu.su> and Josh Triplett <josh@freedesktop.org>.
+
+ * debian/copyright: update to include GFDL. Closes: #81950
+ * debian/copyright: update FSF address.
+
+ * debian/rules: move non-architecture specific conflicts (gas,
+ elf-binutils, modutils (<< 2.4.19-1)) out of a substitued variable and
+ into the control file. Rename variable to extraConflicts.
+ * debian/control: likewise.
+
+ -- James Troup <james@nocrew.org> Sat, 15 Apr 2006 03:05:41 +0100
+
+binutils (2.16.1cvs20060117-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+
+ * 118_arm_pass_all.dpatch, 125_fix_tc_arm_cast.dpatch: merged upstream -
+ removed.
+
+ -- James Troup <james@nocrew.org> Wed, 18 Jan 2006 02:25:25 +0000
+
+binutils (2.16.1cvs20051214-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * Fix ld segfaults on ia64. Closes: #342777
+
+ * 126_fix_PROVIDE_HIDDEN.dpatch: merged upstream - removed.
+
+ -- James Troup <james@nocrew.org> Wed, 14 Dec 2005 08:06:37 +0000
+
+binutils (2.16.1cvs20051206-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * Fixes linking of qemu. Closes: #340328
+
+ * 126_fix_PROVIDE_HIDDEN.dpatch: new patch from Thiemo Seufer to fix
+ handling of hidden symbols which were provided by a linker
+ script. Closes: #342307
+
+ * debian/control (Standards-Version): updated to 3.6.2.1.
+
+ -- James Troup <james@nocrew.org> Sat, 10 Dec 2005 05:23:34 +0000
+
+binutils (2.16.1cvs20051117-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * Fixes c++filt's flushing of stdout which broke gcj. Closes: #339287
+
+ * debian/control (Build-Depends): switch from expect to expect-tcl8.3
+ since tcl8.4's broken threading causes the testsuite to fail entirely
+ on hppa. Closes: #339509
+
+ -- James Troup <james@nocrew.org> Thu, 17 Nov 2005 13:15:15 +0000
+
+binutils (2.16.1cvs20051109-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * Fixes broken PLT handling on m68k. Closes: #327780
+ * Don't compile flex files with -Werror, fixing mips builds.
+ Closes: #333980
+ * Don't check undefined symbols introduced by "ld -u" for TLS. Closes:
+ #326103
+
+ * 117_mips_symbolic_link.dpatch: merged upstream - removed.
+
+ * debian/rules: pass --disable-werror on ia64 as current gcc generates
+ too many false positives. Closes: #336939
+
+ * 125_fix_tc_arm_cast.dpatch: new patch from Lennert Buytenhek to fix
+ cast warning and arm builds. Closes: #336175
+
+ * 121_i386_x86_64_biarch.dpatch: imported from Ubuntu at request of
+ Daniel Jacobwitz to fix biarch linking on i386/amd64. Closes:
+ #334626, #334673
+
+ * debian/rules: remove any reference to pkgstriptranslations - an
+ Ubuntu-ism that shouldn't have been in the Debian package in the first
+ place but that isn't needed in Ubuntu any more in any event.
+
+ * debian/rules: MAKEOVERRIDES is now clobbered by the top level
+ Makefile, so switch to overriding MAKE itself (sic) to pass the
+ customized VERSION variable/string down to sub-directories for
+ -multiarch and -hppa64 builds. Thanks to Daniel Silverstone for the
+ suggestion.
+
+ -- James Troup <james@nocrew.org> Fri, 11 Nov 2005 20:38:22 +0000
+
+binutils (2.16.1cvs20050902-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * Fixes --as-needed on sparc and hppa. Closes: #320697
+ * Fixes buffer overflows and other crashes. Closes: #311975
+
+ * 124_readelf_robustify.dpatch: merged upstream - removed.
+ * 001_ld_makefile_patch: regenerated with help of wiggle.
+
+ * debian/*.shlibs: update to version 2.16.91.
+
+ * debian/copyright: use canonical GNU URL. Update copyright years.
+ * debian/rules: update version and copyright.
+
+ * debian/rules (pre-build): not relevant with a CVS snapshot which
+ doesn't have pre-generated info files - removed.
+ * debian/rules (clean): don't save info files for the same reason, in
+ fact explicitly remove them.
+ * debian/rules (build_stamps): drop pre-build.
+
+ -- James Troup <james@nocrew.org> Sat, 3 Sep 2005 00:30:56 +0100
+
+binutils (2.16.1-3) unstable; urgency=low
+
+ * debian/rules: remove powerpc libc header hack.
+ * debian/include/sys/procfs.h: remove.
+
+ * 124_readelf_robustify.dpatch: new patch from Jakub Jelinek to
+ robustify readelf. Thanks to Thiemo Seufer <ths@networkno.de>.
+ Closes: #318344
+
+ -- James Troup <james@nocrew.org> Wed, 31 Aug 2005 05:03:11 +0100
+
+binutils (2.16.1-2) unstable; urgency=low
+
+ * debian/include/sys/procfs.h: Include fixed powerpc libc header, to fix
+ FTBFS on powerpc. Temporary fix, to be removed with glibc-2.3.5.
+
+ -- Matthias Klose <doko@debian.org> Sun, 10 Jul 2005 16:35:17 +0200
+
+binutils (2.16.1-1) unstable; urgency=medium
+
+ * New upstream version.
+ * debian/patches/117_mips_symbolic_link.dpatch: Updated, apply it again.
+ (Thiemo Seufer).
+ * debian/patches/130_bfd_doc_makefile.dpatch: Remove, applied upstream.
+ * debian/control: Build depend on dpkg-dev (>= 1.13.9), needed to determine
+ the GNU architecture type.
+ * The symlinks for the tools change to the the new output of
+ dpkg-architecture -qDEB_HOST_GNU_TYPE (i.e. i386-linux-ld becomes
+ i486-linux-gnu-ld).
+ * Change the values for --enable-targets according to the dpkg-architecture
+ update.
+ * Configure the hppa64 cross compiler for hppa64-linux-gnu. Adjust
+ the hppa64 install target.
+ * debian/*shlibs: Update to version 2.16.1.
+ * Make restoring of saved pregenerated info files more robust.
+
+ -- Matthias Klose <doko@debian.org> Sat, 9 Jul 2005 14:58:49 +0200
+
+binutils (2.16-1) unstable; urgency=low
+
+ * Update to CVS 2.16 branch 20050612.
+ * debian/patches/130_bfd_doc_makefile.dpatch: New patch to fix
+ build failure in bfd/doc.
+ * debian/watch: New file.
+
+ -- Matthias Klose <doko@debian.org> Sun, 12 Jun 2005 12:29:12 +0200
+
+binutils (2.16-0) experimental; urgency=low
+
+ * New upstream release.
+ - Fixes build failure using gcc-4.0 (closes: #299671).
+ * debian/patches:
+ - 000_print_debian_version.dpatch: Updated.
+ - 001_ld_makefile_patch.dpatch, 002_gprof_profile_arcs.dpatch,
+ 002_gprof_profile_arcs.dpatch: Regenerated.
+ - 012_check_ldrunpath_length.dpatch: Updated.
+ - 112_fix_reloc_sizing.dpatch, 113_elf_backend_hide_symbol.dpatch,
+ 114_mips_delay_slots_in_branch.dpatch, 115_fix_sparc_fmov.dpatch,
+ 116_ar_nonexistent_files.dpatch: Removed, applied upstream.
+ - 117_mips_symbolic_link.dpatch: Disabled. Needs an update.
+ - 118_arm_pass_all.dpatch: Regenerated.
+ - 119_fix_gas_double_negative.dpatch: Removed, applied upstream.
+ - 120_mips_xgot_multigot_workaround.dpatch: Updated.
+ - 121_ia64_unwind_fixes.dpatch, 122_m68k_undefweak_symbols.dpatch:
+ Removed, applied upstream.
+ * Merge Ubuntu changes:
+ - debian/patches:
+ - 123_dont_add_to_undefs_twice.dpatch: Removed, applied upstream.
+ - debian/rules: Call pkgstriptranslations if present.
+ * debian/rules:
+ - Fix VERSION extraction.
+ - Save info files before build and restore them in clean target.
+ * debian/control:
+ - Add me as an uploader.
+
+ -- Matthias Klose <doko@ubuntu.com> Fri, 6 May 2005 18:43:09 +0200
+
+binutils (2.15-6) unstable; urgency=low
+
+ * 123_bfd_overflow_fix.dpatch: new patch from Alan Modra to fix BFD
+ overflows. Closes: #308625
+
+ -- James Troup <james@nocrew.org> Sat, 21 May 2005 20:20:01 +0100
+
+binutils (2.15-5ubuntu2) hoary; urgency=low
+
+ * debian/rules: Call pkgstriptranslations if present (the package does not
+ use debhelper, thus it does not happen automatically).
+
+ -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Mar 2005 13:07:52 +0000
+
+binutils (2.15-5ubuntu1) hoary; urgency=low
+
+ * 123_dont_add_to_undefs_twice.dpatch: new patch from Alan Modra (PR338) to
+ not add symbols to the undefined list twice, causing an assertion failure
+ in ld when building the kernel on amd64.
+
+ -- Daniel Stone <daniel.stone@canonical.com> Tue, 7 Dec 2004 09:29:31 +0100
+
+binutils (2.15-5) unstable; urgency=low
+
+ * 121_ia64_unwind_fixes.dpatch: new patch from David Mosberger to fix
+ unwind related bugs. Closes: #278836
+ * 122_m68k_undefweak_symbols: new patch from Andreas Schwab to fix undef
+ weak symbols with non-default visibilty on m68k. Closes: #278388
+
+ -- James Troup <james@nocrew.org> Thu, 25 Nov 2004 00:13:28 +0000
+
+binutils (2.15-4) unstable; urgency=low
+
+ * 120_mips_xgot_multigot_workaround.dpatch: new patch from Thiemo Seufer
+ to make multigot/xgot handling exclusive and fix mozilla builds on
+ mipsen. Closes: #272149
+
+ -- James Troup <james@nocrew.org> Thu, 23 Sep 2004 22:44:03 +0100
+
+binutils (2.15-3) unstable; urgency=low
+
+ * 112_fix_reloc_sizing.dpatch: update patch based on revised change from
+ Alan Modra.
+
+ * 116_ar_nonexistent_files.dpatch: new patch from Nick Clifton to fix
+ ar's handling of non-existent files. Closes: #267139
+
+ * 117_mips_symbolic_link.dpatch: new patch from Thiemo Seufer to fix the
+ "final link failed: Bad value" error on mips. Closes: #270619
+
+ * 118_arm_pass_all.dpatch: new kludge patch to fix broken libtool pass_all
+ handling on arm and other arches.
+
+ * 119_fix_gas_double_negative.dpatch: new patch from Alan Modra via
+ Daniel Jacobowitz to fix gas' handling of -- and ++. Closes: #266772
+
+ -- James Troup <james@nocrew.org> Thu, 9 Sep 2004 22:24:08 +0100
+
+binutils (2.15-2) unstable; urgency=low
+
+ * 112_fix_reloc_sizing.dpatch: new patch from Daniel Jacobowitz to fix
+ objcopy relocation sections. Closes: #252719
+
+ * 113_elf_backend_hide_symbol.dpatch: new patch from Alan Modra to fix
+ ld internal error on hppa. Closes: #254549
+
+ * 114_mips_delay_slots_in_branch.dpatch: new patch from Thiemo Seufer to
+ handle delay slots in branch correctly on mips. Closes: #266660
+
+ * 115_fix_sparc_fmov.dpatch: new patch from Jakub Jelinek via Dave
+ Miller to fix bogus fmov* SPARC opcodes. Closes: #267824
+
+ -- James Troup <james@nocrew.org> Tue, 31 Aug 2004 22:45:13 +0100
+
+binutils (2.15-1) unstable; urgency=low
+
+ * New upstream release. Closes: #248990, #259458
+ * Fixes -Wl,-z,defs to correctly abort builds with unresolved
+ symbols. Closes: #256481
+ * Better error message for truncation of bignums in as.
+ Closes: #219933
+ * strip(1) no longer corrupts binaries for architectures it doesn't
+ recognise. Closes: #211052
+ * nm -C /usr/lib/libcrypto++.a no longer segfaults. Closes: #247917
+
+ * 105_alpha_rpcc_opcode_fix.dpatch, 106_arm_pic.dpatch,
+ 107_powerpc_ld_segfault.dpatch, 108_m68k_fmoveml_fix.dpatch,
+ 109_objcopy_keep_debug.dpatch, 110_hppa64_local_symbols.dpatch,
+ 111_objcopy_vs_unstripped.dpatch, 906_hjl_libtool_dso.dpatch: merged
+ upstream - removed.
+ * 012_check_ldrunpath_length.dpatch: resynced with wiggle(1).
+
+ * debian/binutils.shlibs, debian/binutils-hppa64.shlibs,
+ debian/binutils-multiarch.shlibs: update for 2.15.
+
+ * debian/rules (install): remove gas.info hack as no longer needed
+ (fixed properly upstream).
+ * debian/rules (clean): remove gas/doc/as.info which doesn't seem to be
+ in the upstream tar ball.
+
+ * debian/rules (binary-arch): install $pkg/ChangeLog.linux only if they
+ exist (because they don't in GNU releases).
+
+ -- James Troup <james@nocrew.org> Thu, 29 Jul 2004 22:44:04 +0100
+
+binutils (2.14.90.0.7-8) unstable; urgency=low
+
+ * debian/rules: don't use gcc-2.95 on m68k. Thanks to Adam Conrad for
+ pointing this out.
+
+ -- James Troup <james@nocrew.org> Wed, 19 May 2004 10:35:44 +0100
+
+binutils (2.14.90.0.7-7) unstable; urgency=low
+
+ * 111_objcopy_vs_unstripped.dpatch: new patch from Alan Modra via Daniel
+ Jacobowitz to fix objcopy on unstripped libraries on alpha and arm.
+ Closes: #234021
+
+ * debian/control (Build-Depends): remove m68k specific build-depends on
+ gcc-2.95 and libc6-dev (<< 2.3). Many thanks to Michael Schmitz for
+ testing this.
+
+ -- James Troup <james@nocrew.org> Tue, 30 Mar 2004 18:00:54 +0100
+
+binutils (2.14.90.0.7-6) unstable; urgency=low
+
+ * 110_hppa64_local_symbols.dpatch: new patch from Randolph Chung to fix
+ dynamic name generation of local symbols on hppa64 - needed to build
+ 64-bit hppa kernels. Closes: #238176
+
+ -- James Troup <james@nocrew.org> Fri, 26 Mar 2004 15:52:27 +0000
+
+binutils (2.14.90.0.7-5) unstable; urgency=low
+
+ * 109_objcopy_keep_debug.dpatch: new patch from Daniel Jacobowitz
+ <dan@debian.org>, objcopy --only-keep-debug and readelf SHT_NOBITS
+ fixes.
+
+ -- James Troup <james@nocrew.org> Mon, 26 Jan 2004 16:25:25 +0000
+
+binutils (2.14.90.0.7-4) unstable; urgency=low
+
+ * debian/control: add binutils-hppa64 package.
+ * debian/rules: add support for binutils-hppa64 package and don't enable
+ hppa64-linux for binutils or binutils-multiarch.
+ * debian/binutils-hppa64.postinst: new file.
+ * debian/binutils-hppa64.postrm: likewise.
+ * debian/binutils-hppa64.shlibs: likewise.
+ * Above changes largely based on a patch from Matthias Klose
+ <doko@cs.tu-berlin.de>. Closes: #225892
+
+ * debian/control (Build-Depends): drop bzip2.
+
+ * debian/rules (install-stamp): remove empty /usr/include directory in
+ binutils.
+ * debian/rules (install-stamp): remove /usr/share/info/dir* to
+ workaround install-info brain damage (cf #213524).
+
+ -- James Troup <james@nocrew.org> Thu, 22 Jan 2004 21:32:44 +0000
+
+binutils (2.14.90.0.7-3) unstable; urgency=low
+
+ * 108_m68k_fmoveml_fix.dpatch: new patch from H.J. Lu
+ <hongjiu.lu@intel.com> to fix fmoveml disassembly and associated
+ testsuite regression on m68k.
+
+ -- James Troup <james@nocrew.org> Tue, 18 Nov 2003 14:35:23 +0000
+
+binutils (2.14.90.0.7-2) unstable; urgency=low
+
+ * 107_powerpc_ld_segfault.dpatch: new patch from Alan Modra
+ <amodra@bigpond.net.au> to fix ld segfault on powerpc. Thanks to
+ Josselin Mouette <joss@debian.org> for the report. Closes: #219187
+
+ -- James Troup <james@nocrew.org> Wed, 5 Nov 2003 13:32:17 +0000
+
+binutils (2.14.90.0.7-1) unstable; urgency=low
+
+ * New upstream release.
+ * 100_null_owner_ld_fix.dpatch, 101_ppc_as_shf_and_rel_fix.dpatch,
+ 102_alpha_null_got_ld_fix.dpatch,
+ 103_static_linking_elf_eh_frame.dpatch,
+ 104_elf_eh_frame_alpha_fix.dpatch: removed; merged upstream.
+ * debian/rules: update version number.
+ * debian/binutils.shlibs: likewise.
+ * debian/binutils-multiarch.shlibs: likewise.
+
+ * 009_signed_char_fix.dpatch: removed; this was fixed upstream correctly
+ (http://sources.redhat.com/ml/binutils/2003-05/msg00304.html) and this
+ patch is breaking that fix. Thanks to Daniel Jacobowitz
+ <dan@debian.org>.
+
+ * 003_gmon_manpage_fix.dpatch -> 002_gprof_profile_arcs.dpatch.
+ * 014_gprof_manpage_fix.dpatch -> 003_gprof_see_also_monitor.dpatch.
+
+ * 300_alpha_rpcc_opcode_fix.dpatch -> 105_alpha_rpcc_opcode_fix.dpatch
+ (committed to trunk).
+
+ * debian/rules (configure-multi-stamp): also enable mips64{el,}-linux
+ for binutils-multiarch. Alphabetize target list.
+
+ * 106_arm_pic: new patch from Phil Blundell <pb@debian.org> and Daniel
+ Jacobowitz <dan@debian.org> which implements GC for GOT and PLT relocs
+ in the elf32-arm backend.
+
+ * debian/rules (install-stamp): work around upstream bug which causes
+ as.info and as.1 to disappear by explicitly calling "make
+ install-info-am install-am" in builddir-single/gas/doc.
+
+ -- James Troup <james@nocrew.org> Sat, 1 Nov 2003 18:14:04 +0000
+
+binutils (2.14.90.0.6-5) unstable; urgency=low
+
+ * 104_elf_eh_frame_alpha_fix.dpatch: new patch from H.J. Lu
+ <hongjiu.lu@intel.com> to fix regressions on alpha caused by
+ 103_static_linking_elf_eh_frame. Thanks to Thimo Neubauer
+ <thimo@debian.org> for the original report. Closes: #215636
+
+ -- James Troup <james@nocrew.org> Fri, 17 Oct 2003 00:02:09 +0100
+
+binutils (2.14.90.0.6-4) unstable; urgency=low
+
+ * 103_static_linking_elf_eh_frame.dpatch: new patch from H.J. Lu
+ <hongjiu.lu@intel.com> to fix static linking of C++ binaries.
+
+ * 200_alpha_null_got_ld_fix.dpatch: renamed...
+ * 102_alpha_null_got_ld_fix.dpatch: to this.
+
+ * debian/rules: patch from Guido Guenther <agx@debian.org> to enable
+ mips64 support. Closes: #213448
+
+ -- James Troup <james@nocrew.org> Sun, 12 Oct 2003 14:26:26 +0100
+
+binutils (2.14.90.0.6-3) unstable; urgency=low
+
+ * 100_null_owner_ld_fix.dpatch: new patch from Alan Modra
+ <amodra@bigpond.net.au> to fix an ld crash with null owner sections.
+ Closes: #212029
+
+ * debian/rules: don't compile with gcc-2.95 on arm; the only failures
+ are a) testsuite-only (i.e. don't appear to affect real world
+ applications) and b) fixed by upcoming gcc patches by Phil Blundell
+ <pb@debian.org> in any event.
+ * debian/control (Build-Depends): likewise don't build-depend on
+ gcc-2.95 for arm.
+
+ * 101_ppc_as_shf_and_rel_fix.dpatch: new patch from Alan Modra
+ <amodra@bigpond.net.au> to fix an as regression where it refused to
+ compile utils.S from Linux/PPC 2.6. Closes: #211668
+
+ -- James Troup <james@nocrew.org> Tue, 23 Sep 2003 01:32:08 +0100
+
+binutils (2.14.90.0.6-2) unstable; urgency=low
+
+ * debian/rules (CONFLICTS): remove spurious "--", left over from
+ debhelper based-rules. Fixes build failure on sparc.
+
+ * 200_alpha_null_got_ld_fix.dpatch: new patch from Daniel Jacobowitz
+ <dan@debian.org> to fix an ld crash on alpha with null .got sections.
+ Closes: #204615
+
+ * scripts/dpkg-arch.mk: remove.
+ * debian/rules: define DEB_BUILD_GNU_TYPE, DEB_HOST_ARCH and
+ DEB_HOST_GNU_TYPE here instead.
+
+ * debian/rules (binary-indep): use ':' as a separator to chown, rather
+ than '.' which is a legal character for a username.
+ * debian/rules (binary-arch): likewise.
+
+ * debian/rules: further trivial cleanups.
+
+ -- James Troup <james@nocrew.org> Thu, 18 Sep 2003 22:13:36 +0100
+
+binutils (2.14.90.0.6-1) unstable; urgency=low
+
+ * New "upstream" release.
+ * Fixes core dump of nm -C on certain object files. Closes: #205616
+
+ * New maintainer.
+ * debian/control (Maintainer): adjust accordingly.
+ * debian/copyright: likewise. Update copyright years, URL.
+ * debian/control (Standards-Version): bump to 3.6.1.0.
+
+ * 011_disable_combreloc_ARM_ONLY.diff: dropped on request of Phil
+ Blundell <pb@debian.org> - this is obsolete, it was working around a
+ bug in ld since fixed by Daniel Jacobowitz <dan@debian.org> upstream.
+
+ * 890-elf64_alpha_segfault.diff: dropped as bogus
+ (http://sources.redhat.com/ml/binutils/2003-04/msg00399.html); rth's
+ correct fix is already in the upstream source.
+
+ * debian/README.Debian: migrate nearly-obsolete debconf notes to here.
+ * debian/control (Depends): drop debconf.
+ * binutils.config, binutils.templates, binutils.templates.ca,
+ binutils.templates.fr, binutils.templates.ja,
+ binutils.templates.pt_BR, postrm.debhelper: obsolete, removed.
+ Closes: #189641, #198222
+
+ * Migrated from dbs...
+ * debian/README.build: obsolete; removed.
+ * debian/rules: remove $(BUILD_TREE)/, $(STAMP_DIR)/, $(unpacked), $(patched) and other references
+ to DBS.
+ * debian/rules (clean): remove build tree directories.
+ * debian/scripts/dbs-build.mk: unused, remove.
+ * debian/scripts/file2cat: likewise.
+
+ * ... to dpatch.
+ * debian/rules: include /usr/share/dpatch/dpatch.make.
+ * debian/rules (configure-single-stamp): depend on patch-stamp.
+ * debian/rules (configure-multi-stamp): likewise.
+ * debian/rules (clean): depend on unpatch. Remove debian/patched.
+ * debian/control (Build-Depends): add dpatch.
+
+ * binutils-doc.postinst, binutils-doc.prerm,
+ binutils-multiarch.postinst, binutils-multiarch.postrm,
+ binutils-multiarch.preinst, binutils-multiarch.shlibs,
+ binutils.postinst, binutils.postrm, binutils.shlibs: new files based
+ on .deb and packages.d/.
+ * scripts/dh_split: obsolete, removed.
+ * debian/packages.d/binutils-dev.in, debian/packages.d/binutils-doc.in,
+ debian/packages.d/binutils-multiarch.in,
+ debian/packages.d/binutils.in: likewise.
+
+ * debian/rules: rewritten, de-debhelper-ized.
+ * debian/control (Build-Depends): drop debhelper and add file.
+
+ -- James Troup <james@nocrew.org> Thu, 11 Sep 2003 22:08:18 +0100
+
+binutils (2.14.90.0.5-0.2) unstable; urgency=low
+
+ * NMU.
+ * Rebuild using fixed gcc on sparc (closes: #202924).
+
+ -- Matthias Klose <doko@debian.org> Mon, 28 Jul 2003 20:12:00 +0200
+
+binutils (2.14.90.0.5-0.1) unstable; urgency=low
+
+ * NMU.
+ * New upstream version.
+ * Remove patches applied upstream:
+ - debian/patches/500_s390_gas.diff
+ - debian/patches/905-hppa_visibility.diff
+ - debian/patches/906-mips_ld_fix.diff
+ * Updated patch:
+ - debian/patches/906-hjl_libtool_dso.diff
+
+ -- Matthias Klose <doko@debian.org> Wed, 23 Jul 2003 20:09:51 +0200
+
+binutils (2.14.90.0.4-0.1) unstable; urgency=low
+
+ * NMU
+ * New upstream version.
+ 1. Work around the brain dead libtool.
+ * New patches:
+ - debian/patches/500_s390_gas.diff (closes: #194929).
+ - debian/patches/905-hppa_visibility.diff (closes: #195203).
+ - debian/patches/906-mips_ld_fix.diff (closes: #195207).
+ - debian/patches/906-hjl_libtool_dso.diff
+
+ -- Matthias Klose <doko@debian.org> Sat, 31 May 2003 12:12:10 +0200
+
+binutils (2.14.90.0.3-0.1) unstable; urgency=low
+
+ * NMU
+ * New upstream version.
+ 1. Update from binutils 2003 0523.
+ 2. Fix 2 ELF visibility bugs.
+ 3. Fix ELF/ppc linker bugs.
+ * Remove patches applied upstream:
+ - debian/patches/903-hjl_ld-dso-test.diff
+ - debian/patches/904_hjl_hppa_whitespace.diff
+
+ -- Matthias Klose <doko@debian.org> Sat, 24 May 2003 09:02:54 +0200
+
+binutils (2.14.90.0.2-0.1) unstable; urgency=low
+
+ * NMU
+ * New upstream version.
+ 1. Update from binutils 2003 0515.
+ 2. Fix various ELF visibility bugs.
+ 3. Fix some ia64 linker bugs.
+ 4. Add more IAS compatibilities to ia64 assembler.
+ * New patches:
+ - debian/patches/903-hjl_ld-dso-test.diff (closes: #193505).
+ - debian/patches/904_hjl_hppa_whitespace.diff.
+ * Remove patches applied upstream:
+ - debian/patches/900_binutils-2.14.90.0.1-empty-test.diff
+ - debian/patches/901-hjl_weaksymfix.diff
+
+ -- Matthias Klose <doko@debian.org> Sun, 18 May 2003 10:50:00 +0200
+
+binutils (2.14.90.0.1-0.1) unstable; urgency=low
+
+ * NMU
+ * New upstream version.
+ - Fix: MIPS branch-to-global bug (closes: #189031).
+ - Fix: Crash on alpha with --gdwarf2 and bad file number (closes: #187211).
+ - Fix: objdump -R BFD ICE on prelinked binaries (closes: #180088).
+ * New patches:
+ - debian/patches/900_binutils-2.14.90.0.1-empty-test.diff
+ - debian/patches/901-hjl_weaksymfix.diff
+ * Remove patches applied upstream:
+ - debian/patches/002_ldlex_inflexible_transition.diff
+ - debian/patches/013_objdump_doc_fix.diff
+ - debian/patches/850_hppa_stub_fix.diff
+ - debian/patches/860_m68k_elf.diff
+ - debian/patches/861_m68k_elf.diff
+ - debian/patches/870-sparc64-update.diff
+ - debian/patches/880-alpha-update.diff
+ * Remove obsolete patch:
+ - debian/patches/patches/800_hjl_mips_fixes.diff
+ * Add x86_64 for the i386 binutils package and the binutils-multiarch
+ package (closes: #189350).
+ * Set CFLAGS to -g -O2 for build (closes: #181268).
+
+ -- Matthias Klose <doko@debian.org> Tue, 6 May 2003 09:58:14 +0200
+
+binutils (2.13.90.0.18-1.7) unstable; urgency=high
+
+ * NMU
+ * Fixed ld segv (replaced yy_current_buffer by YY_CURRENT_BUFFER)
+ (Closes: #188876, 188900, 188912)
+
+ -- Julien LEMOINE <speedblue@debian.org> Mon, 14 Apr 2003 04:45:03 +0200
+
+binutils (2.13.90.0.18-1.6) unstable; urgency=high
+
+ * NMU
+ * [002_ldlex_inflexible_transition.diff] New. Make ld buildable again with
+ sid's current flex.
+
+ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sun, 13 Apr 2003 16:54:46 +0200
+
+binutils (2.13.90.0.18-1.5) unstable; urgency=medium
+
+ * NMU
+ * [890-elf64_alpha_segfault.diff] Patch from Julien LEMOINE
+ <speedblue@debian.org> to fix the segfault encountered while building
+ gal on alpha. (Closes: #185556)
+ * sid's current flex breaks the building of several packages, including this
+ one; see #188665. The i386 upload is built using a pbuilder sid chroot
+ with flex downgraded to the sarge version.
+
+ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sun, 13 Apr 2003 13:44:17 +0200
+
+binutils (2.13.90.0.18-1.4) unstable; urgency=low
+
+ * NMU
+ * ld/emulparams/elf64_sparc.sh: Set LIBPATH_SUFFIX instead of suffix
+ for emulation. Patch from current CVS suggested by Clint Adams,
+ needed for sparc64 glibc build.
+ * bfd/elf64-alpha.c: Patch from current CVS suggested by Falk Hueffner,
+ needed to build xstow, kdegames (#181623), sfs.
+ * Explicitely fail, when trying to build with glibc-2.3 on arm and
+ m68k. See #184048 for m68k ld failures.
+
+ -- Matthias Klose <doko@debian.org> Tue, 8 Apr 2003 23:27:46 +0200
+
+binutils (2.13.90.0.18-1.3) unstable; urgency=low
+
+ * NMU
+ * Another fix for ELF/m68k (__bb_exit_func initialization).
+
+ -- Matthias Klose <doko@debian.org> Tue, 18 Mar 2003 00:05:47 +0100
+
+binutils (2.13.90.0.18-1.2) unstable; urgency=high
+
+ * NMU
+ * Apply upstream fix for ELF/m68k. Closes: #182313.
+ * Use gcc-2.95 on m68k-linux. Built on testing (glibc-2.2).
+
+ -- Matthias Klose <doko@debian.org> Sun, 9 Mar 2003 01:02:39 +0100
+
+binutils (2.13.90.0.18-1.1) unstable; urgency=low
+
+ * NMU
+ * Apply upstream fix for hppa stubs. Closes: #181397
+
+ -- LaMont Jones <lamont@debian.org> Wed, 19 Feb 2003 12:34:58 -0700
+
+binutils (2.13.90.0.18-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-01-21)
+ * Upstream: Fix an ia64 gas bug
+ * Upstream: Fix some TLS bugs
+ * Upstream: Fix ELF/ppc bugs
+ * Upstream: Fix an ELF/m68k bug
+ * Corrected ARM combreloc disabling patch
+ (closes: Bug#175204)
+ * Upstream fixes take care of TEXTREL bug
+ on powerpc (closes: Bug#176084)
+ * Fixed shellutils dependency problem
+ (closes: Bug#175673)
+ * Removed mention of the monitor manpage
+ from the gprof manpage (closes: Bug#160654)
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 2 Feb 2003 23:17:29 -0500
+
+binutils (2.13.90.0.16-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-11-26)
+ * Upstream: Include /usr/bin/c++filt
+ * Upstream: Fix "ld -r" with exception handling
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 9 Dec 2002 19:14:02 -0500
+
+binutils (2.13.90.0.14-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-11-14)
+ * Upstream: Fix ELF/alpha bugs
+ * Upstream: Fix an ELF/i386 assembler bug
+ * Updated package MIPS patch from HJ Lu
+ * Added s390 patches from Gerhard Tonn.
+ Actually, the patches to support s390x were
+ already included upstream, so I just enabled
+ it in the rules script (closes: Bug#168074, Bug#168974)
+ * Since powerpc64-linux support was already
+ added in a prior upload, I'm closing the
+ wishlist bug for it (closes: Bug#156955)
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 20 Nov 2002 05:36:21 -0500
+
+binutils (2.13.90.0.10-2) unstable; urgency=low
+
+ * Added two patches from upstream to fix alpha BFD.
+ (closes: Bug#165633)
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 27 Oct 2002 14:21:51 -0400
+
+binutils (2.13.90.0.10-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-10-10)
+ * Upstream: More ELF/PPC linker bug fixes.
+ * Upstream: Fix an ELF/alpha linker bug.
+ * Upstream: Fix an ELF/sparc linker bug to support
+ Solaris.
+ * Upstream: More TLS updates.
+ * Updated m68k gcc 3.1 patch since it wasn't applying
+ cleanly. Is this still needed?
+ * Added patches to allow building with new bison
+ (closes: Bug#164436, Bug#164042)
+ * Should be better for prelink support, which is coming
+ soon (closes: Bug#161427)
+ * Removed windres manpage from all packages
+ (closes: Bug#157415)
+ * Fixed download location in copyright file
+ (closes: Bug#158028)
+ * Added i386-gnu to multiarch build targets
+ (closes: Bug#157057)
+ * Add alpha opcode patch from Falk Hueffner
+ (closes: Bug#164201)
+ * Remove .la files from packages
+ (closes: Bug#160455)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 15 Oct 2002 20:22:29 -0400
+
+binutils (2.13.90.0.4-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-08-)
+ * Upstream: Update from binutils 2002 0814
+ * Upstream: Fix symbol versioning bugs for gcc 3.2
+ * Upstream: Fix mips gas
+ * Upstream: Fix an x86 TLS bfd bug
+ * Upstream: Fix an x86 PIC gas bug
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 15 Aug 2002 20:13:44 -0400
+
+binutils (2.12.90.0.15-2) unstable; urgency=low
+
+ * Fix combreloc disabling patch for ARM
+ (closes: Bug#156315)
+ * Remove S390 patch since it is no longer
+ needed (thanks to Gerhard Tonn for checking
+ this out)
+ * Fix BFD version string escaping
+ (closes: Bug#154989)
+ * Add SH patch from Yaegashi Takeshi
+ (closes: Bug#156230)
+ * Added conflicts for older modutils
+ (closes: Bug#155324)
+ * Forgot to apply MIPS patch from HJ Lu
+ (apologies to MIPS folks)
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 14 Aug 2002 13:09:12 -0400
+
+binutils (2.12.90.0.15-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-07-17)
+ * Upstream: Fix an ia64 assembler bug
+ * Upstream: Fix a symbol versioning bug
+ * Upstream: You have to apply the modutils patch
+ enclosed here in order to support System.map
+ generated by the new nm (bug filed)
+ * The symbol visibility patch is included
+ upstream, as is the alpha PLT/GOT patch, so
+ both removed from my packaging.
+ * Included patch from upstream to fix RELA targets
+ (closes: Bug#153729)
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 2 Aug 2002 02:24:29 -0400
+
+binutils (2.12.90.0.14-2) unstable; urgency=low
+
+ * The "Let's Get This Party Started Right" upload
+ (since I'm closing as many old bugs as possible)
+ * Removed sparc patch altogether
+ * Added a small alpha patch from upstream to fix
+ some obscure PLT/GOT issues.
+ * Manpages are now fixed finally -- no more
+ I<symbol> (closes: Bug#108369)
+ * Have not gotten another report of the
+ debconf message being cut off, so I'm closing
+ the debconf-related bug. I suspect this may
+ have been a problem in the debconf front-end
+ being used, but I have not been able to reproduce
+ it (closes: Bug#149045)
+ * Closing a bug report that I had tagged moreinfo
+ a LONG time ago (over one year), but never got
+ more info on. I have not heard of this kind
+ of problem since, nor have I been able to
+ reproduce it at any time since (closes: Bug#105986).
+ For interested parties, it revolved around
+ allowing gcc to show a linker error, but the
+ reporter didn't know about the -v option for
+ gcc. There was a linker problem, but it appeared
+ to be either hardware failure or user error.
+ * Closing a demangler 'bug' that revolved around
+ stripping @PLT from symbol names. Since the
+ PLT suffix is documented, I'm going to close
+ this bug. Also, it doesn't help that the symbol
+ in the bug report uses an obsolete mangling style,
+ so I can't test this even if I wanted to
+ (closes: Bug#45889)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 22 Jul 2002 12:54:01 -0400
+
+binutils (2.12.90.0.14-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-06-27)
+ * Upstream: Fix a mips assembler bug
+ * Upstream: Fix an ELF/mips SHF_MERGE bug
+ * Upstream: Fix a linker bug which leads to the
+ incorrect Linux 2.2 kernel.
+ * PE patch removed since it is included
+ in upstream source now
+ * Includes some patches which allow for
+ more true testsuite results from gcc-3.1
+ * Fix sparc ld emulation script patches to get
+ rid of the lib/64 silliness (now uses lib64)
+ * Removed the L word from the package description
+ since Debian is no longer linux-only
+ (closes: Bug#150575)
+ * The strings dereferencing problem with
+ some Windows binaries seems to also be fixed now
+ (closes: Bug#121366)
+ * Added a patch to only generate an RPATH entry
+ if LD_RUN_PATH is not empty, for cases where
+ -rpath isn't specified (closes: Bug#151024)
+ * Fixed arch detection problem in the build
+ scripts.
+ * Fixed bad capitalisation of -g in the objdump
+ manpage (closes: Bug#152697)
+ * Added patch from HJ Lu to fix a symbol
+ visibility issue.
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 17 Jul 2002 14:23:42 -0400
+
+binutils (2.12.90.0.9-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-05-26).
+ * Upstream: Supports "-z muldefs"
+ * Updated PE bfd from CVS to fix auto-import
+ segfaults (closes: Bug#131407)
+ * Remove the PE-removing patch for i386 targets
+ due to the above
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 6 Jun 2002 15:52:29 -0400
+
+binutils (2.12.90.0.7-1) unstable; urgency=low
+
+ * New upstream version (synced with CVS 2002-04-23).
+ * Upstream: ELF EH frame bug fix
+ * Upstream: MIPS ELF visibility bug fix
+ * Upstream: Bug fixes for ELF/sparc
+ * Upstream: Bug fixes for ELF/cris
+ * Upstream: Fix linking a.out relocatable files
+ with ELF
+ * Upstream: Fix a PPC altivec assembler bug
+ * Numerous upstream changes since I have
+ deliberately not updated in awhile so that
+ I could stabilise the package for woody
+ release
+ * Fixed a glaring typo in the Debian additions
+ to the version string.
+ * Upstream incorporated --oformat
+ documentation patch; removed.
+ * Added a patch from upstream involving
+ relative relocs on Alpha
+ * Removed configure.info-[1-3] from -doc
+ (closes: Bug#146205)
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 5 Apr 2002 04:52:33 -0400
+
+binutils (2.12.90.0.1-5) unstable; urgency=high
+
+ * Added a patch to m68k bits for gas to allow
+ gcc 3.1 to build
+ * Added Brazilian Portuguese translation for
+ debconf (closes: Bug#144677)
+ * Removed unneeded gasp manpage since gasp
+ was eliminated as a distinct binary
+ (closes: Bug#144583)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 29 Apr 2002 14:40:21 -0400
+
+binutils (2.12.90.0.1-4) unstable; urgency=low
+
+ * Added patch from Gerhardt Tonn
+ to fix s390 merge problem (closes: Bug#143187)
+ * Corrected DOW of my last changelog entry :-P
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 18 Apr 2002 13:03:49 -0400
+
+binutils (2.12.90.0.1-3) unstable; urgency=low
+
+ * Oops...I used dpkg-architecture from dpkg-dev
+ in the postinst and didn't add a dependency
+ for it. It was a bad choice anyway and I'm
+ going to use uname -s instead
+ (closes: Bug#142744, Bug#142915)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 15 Apr 2002 12:41:10 -0400
+
+binutils (2.12.90.0.1-2) unstable; urgency=low
+
+ * Added Catalan debconf translation
+ (closes: Bug#139740)
+ * Ensure that info entries are removed from the
+ texinfo dirfile when binutils-doc is removed
+ (closes: Bug#126557)
+ * Ensure that the kernel link debconf warning
+ only shows up on linux systems
+ (closes: Bug#142360)
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 13 Mar 2002 01:30:22 -0400
+
+binutils (2.12.90.0.1-1) unstable; urgency=high
+
+ * New upstream version (synced with CVS 2002-03-07).
+ * Upstream: Add the .preinit_array/.init_array/.fini_array
+ support.
+ * Upstream: Fix eh_frame.
+ * Upstream: Turn on combreloc by default.
+ * Upstream: Enable gprof for Linux/mips.
+ * Turn combreloc off for ARM explicitely until
+ I can confirm that PIC is not still broken
+ by using it.
+ * Remove IA-64 unwind patch and objcopy fix
+ since they are included in the upstream sources
+ now.
+ * Re-enable testsuite run since Randolph did the NMU
+ on dejagnu (thank you!).
+ * Appears to fix sparc64 linking problems. I'm
+ still looking into exactly what was going on with
+ that (closes: Bug#137850)
+ * Enabled hppa64-linux support in main binutils
+ package (closes: Bug#137955)
+ * Added Japanese debconf template. Thanks to
+ Tomohiro KUBOTA for supplying that
+ (closes: Bug#138112)
+ * Added patch for ld to fix dosemu problems
+ (closes: Bug#126863)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 11 Mar 2002 14:02:45 -0500
+
+binutils (2.11.93.0.2-3) unstable; urgency=high
+
+ * Split translated debconf templates out.
+ I apparently misunderstood the instructions
+ on integrating the French translation since
+ this is my first real attempt at using
+ debconf (closes: Bug#136295)
+ * Disable combreloc default on ARM since it
+ breaks PIC, apparently (closes: Bug#134241)
+ Please test other ARM bugs against this
+ version and inform me of the results!
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 8 Mar 2002 19:10:10 -0500
+
+binutils (2.11.93.0.2-2) unstable; urgency=high
+
+ * Include a patch from upstream to fix stripping
+ archives containing multiple files with the
+ same name (like libgcj, unfortunately).
+ (closes: Bug#107812)
+ * Include IA64 unwind fix from CVS to fix kernel
+ linking on IA64. (closes: Bug#135143)
+ * Added French translation of the debconf
+ bits. Thanks to Denis Barbier for the
+ work on that. (closes: Bug#134626)
+ * Disabled testsuite run until dejagnu is
+ fixed. I'm leaving the build-dep for dejagnu
+ in, though, since I know I'll forget to
+ reinsert it when I do re-enable the testsuite
+ run.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 22 Feb 2002 14:05:22 -0500
+
+binutils (2.11.93.0.2-1) unstable; urgency=high
+
+ * New upstream version (synced with CVS 2002-02-07).
+ * Upstream: Fix a weak symbol alpha linker bug for glibc.
+ * Upstream: More support for gcc 3.1.
+ * Keep on disabling efi-app-ia32 type targets
+ since the segfault is still unfixed in CVS and
+ I haven't had the time to go back and really
+ debug and fix this.
+ * Updated standards version.
+ * Corrected some of the lintian problems (all except
+ the ones involving Changelog.linux, the .comment
+ section, and the missing manpages for
+ binutils-multiarch's binaries since that package
+ depends on binutils, which provides those).
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 13 Feb 2002 13:41:47 -0500
+
+binutils (2.11.92.0.12.3-7) unstable; urgency=high
+
+ * The "Remind Me To Think Next Time" upload.
+ * Fix the postinst to only compare versions on
+ upgrade rather than during configure.
+ (closes: Bug#133349, Bug#133514)
+ * Still working on the other bugs...if only
+ I could get a day off of work...
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 12 Feb 2002 06:15:02 -0500
+
+binutils (2.11.92.0.12.3-6) unstable; urgency=high
+
+ * The "Make The Bad Man Stop" upload.
+ * Revert patch to bfd/elf32-sparc.c (already
+ reverted upstream) that broke UA32 relocs on sparc
+ and caused bus errors with C++/Java binaries
+ (closes: Bug#126162)
+ * Remove i486-mingw32 target from the enabled
+ in multiarch and removed efi-app-ia32 from the
+ BFD config for Intel linux targets until I can find
+ and fixthe segfaults that seem to keep coming up when
+ reading Windows files and viruses with objdump or
+ strings. This is only temporary, so I'm not closing
+ the bugs until the problem gets fixed, but
+ I am going to bump them down to wishlist, merge
+ them, and note the above in them.
+ (debian/patches/010_disable_efi_app_ia32_TEMPORARY.diff
+ disables the efi-app-ia32 BFD in case someone
+ wants to revert this change easily)
+ * Added debconf warning about the kernel linking
+ situation since it keeps coming up and people
+ keep initially disagreeing with me about this
+ being a kernel bug. Also, merged prior warning
+ about -oformat change into the same debconf warning
+ (it's two, two, two warnings in one). This makes
+ the DEBIAN_FRONTEND case bug moot (closes: Bug#131801)
+ * Added powerpc64-linux target to multiarch since
+ work is progressing on that target and the machines
+ are due to hit the shelves Very Soon(TM).
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 1 Feb 2002 17:06:29 -0500
+
+binutils (2.11.92.0.12.3-5) unstable; urgency=high
+
+ * Fix signed char assumption in i386 disassembly bits
+ (closes: Bug#126993)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 8 Jan 2002 17:27:17 -0500
+
+binutils (2.11.92.0.12.3-4) unstable; urgency=high
+
+ * Go back to enabling archs by enumeration for
+ multiarch. Apparently, a few aren't enabled
+ with --enable-targets=all (sparc64-linux, namely).
+ Besides, multiarch was incredibly large, which
+ was probably unneeded.
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 26 Dec 2001 13:53:49 -0500
+
+binutils (2.11.92.0.12.3-3) unstable; urgency=high
+
+ * Include patch from Alan Modra to fix more
+ refcount problems on hppa.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 7 Dec 2001 05:42:04 -0500
+
+binutils (2.11.92.0.12.3-2) unstable; urgency=high
+
+ * Include patch from Alan Modra to fix hppa linking
+ woes wrt undefined symbols (closes: Bug#121993)
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 5 Dec 2001 04:14:51 -0500
+
+binutils (2.11.92.0.12.3-1) unstable; urgency=high
+
+ * New upstream version (synced with CVS 2001-11-21)
+ * Upstream: Fix a linker symbol version bug
+ for common symbols.
+ * Upstream: Update handling relocations against
+ the discarded sections. You may need to apply
+ the kernel patch enclosed here to your kernel
+ source.
+ * Upstream: Support "-march=xxx -mipsN" for mips
+ gas if they are compatible.
+ * Upstream: Fix a regression when linking with
+ non-ELF object files.
+ * Includes Alan Modra's patch to reduce stub sizes
+ on HPPA. Should help C++ on HPPA.
+ * Once again includes a mips patch from HJ Lu.
+ * My documentation changes were cleaned up and
+ accepted upstream, so the gas manpage fixes go
+ away (hurray!).
+ * Stopped iterating targets for binutils-multiarch
+ and started enabling all of them. This saves
+ maintenance time since new targets will be
+ automatically supported in future uploads
+ and existing targets that I didn't include
+ before will be supported from now on. This may
+ grow build time and the libbfd in the multiarch
+ package, but it's worth it.
+ * Also, started using the --enable-64-bit-bfd
+ flag for configuring multiarch. I don't know
+ why I didn't realise this wasn't there before
+ since I test with it all of the time.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 30 Nov 2001 20:11:42 -0500
+
+binutils (2.11.92.0.10-4) unstable; urgency=high
+
+ * The "Fingers crossed" upload.
+ * Enable combreloc by default for s390 again.
+ Rumour has it that it worked before, but there
+ was a misunderstanding in the s390 developer
+ community, hence the disabling in the past.
+ * Fix the ld texinfo file to not mention the old
+ oformat invocation (closes: Bug#116182)
+ * Next upload should include the mips updates and
+ some powerpc updates. I just need time to test
+ those out first.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 23 Nov 2001 23:23:22 -0500
+
+binutils (2.11.92.0.10-3) unstable; urgency=high
+
+ * Replace HPPA reloc patch with patches from Alan
+ Modra upstream.
+ * Add upstream patch to fix quoted -rpath bug
+ (closes: Bug#107214)
+
+ -- Christopher C. Chimelis <chris@debian.org> Sat, 10 Nov 2001 18:19:05 -0400
+
+binutils (2.11.92.0.10-2) unstable; urgency=high
+
+ * Disable -z combreloc enable patch on S/390
+ since it's not supported there yet
+ (closes: Bug#117087)
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 26 Oct 2001 00:07:01 -0400
+
+binutils (2.11.92.0.10-1) unstable; urgency=high
+
+ * New upstream version (synced with CVS 2001-10-21)
+ * Upstream: Fix the ELF/PPC linker.
+ * Upstream: Fix the ELF/cris linker.
+ * Upstream: Fix ELF strip.
+ * Includes beginnings of Altivec support
+ (closes: Bug#98617)
+ * Fixes use of BookE instruction format on 4xx
+ PowerPC (closes: Bug#116627)
+ * Includes patches from Alan Modra to fix hppa
+ relocations.
+ * Forgot to close the previous PPC bug with last
+ upload (closes: Bug#116454)
+ * Moved to enclosing a bzipped tarball rather than
+ a gzipped one to save download time for everyone
+ involved. Build-deps adjusted accordingly.
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 23 Oct 2001 03:29:49 -0400
+
+binutils (2.11.92.0.7-2) unstable; urgency=high
+
+ * Include a patch from H.J Lu to fix a powerpc
+ issue not shown in the testsuite results.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 19 Oct 2001 00:49:04 -0400
+
+binutils (2.11.92.0.7-1) unstable; urgency=high
+
+ * New upstream release (synced with CVS 2001-10-16)
+ * Upstream: Fix all breakages introduced in 2.11.92.0.5
+ * No mips/ dir patches need to be applied with this one.
+ Woohoo!
+ * Removed patches from debian/patches that are already
+ applied upstream.
+ * Patched version strings to reflect that this is a
+ Debian release at the request of upstream (to prevent
+ confusion, apparently).
+ * Applied patch from H.J. Lu to fix mips section
+ misalignment.
+ * Applied patch from Jakub Jelinek to fix kernel linking
+ on i386 and possibly other archs (closes: Bug#116041)
+ * Fixed postinst and prerm for binutils-doc to test that
+ the files exist before calling install-info. This should
+ fix the odd circumstance when binutils-doc is packaged on
+ an arch that doesn't support gprof (or any other dir for
+ that matter) and, therefore, the docs that are usually
+ made in that dir aren't made. This is particularly true
+ with gprof on mips.
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 17 Oct 2001 18:56:51 -0400
+
+binutils (2.11.92.0.5-3) unstable; urgency=high
+
+ * Enable -z combreloc on all targets. This will make
+ prelinking possible with the prelink package. Please
+ test this on all archs prior to upload. If it fails, file
+ a bug immediately and I'll disable the patch for that
+ platform.
+ * Added patches from Alan Modra (from CVS) to fix other
+ archs after the refcount patch broke them. This supercedes
+ the powerpc patch, so I replaced that with this.
+ (closes: Bug#115218)
+ * Added patch from H.J. Lu (from CVS) to fix IA64 linker
+ problems as well.
+ * Added patch from David Kimdon to specify which filename is
+ causing an error if that filename is a dir (closes: Bug#45832).
+ * Removed workaround patch for stabs problem on Alpha since
+ it appears to be causing problems on mips and is no longer
+ needed on Alpha anyway.
+ * Now runs the testsuite and includes the results in the
+ binutils package for reference.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sat, 13 Oct 2001 15:10:20 -0400
+
+binutils (2.11.92.0.5-2) unstable; urgency=high
+
+ * Applied fix from H.J. Lu to fix PowerPC target
+ (closes: Bug#115285). Thanks to Jack Howarth
+ for forcing the issue upstream.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 12 Oct 2001 23:14:51 -0400
+
+binutils (2.11.92.0.5-1) unstable; urgency=high
+
+ * New upstream release (synced with CVS 2001-10-05)
+ * Upstream: Support gcc 3.1 for IA64.
+ * Upstream: Support prelink for ELF/PPC.
+ * Upstream: Fix an ELF/x86 linker bug for Oracle
+ (closes: Bug#113614)
+ * Upstream: Fix a weak symbol bug.
+ * Upstream: Support locale.
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 9 Oct 2001 19:53:49 -0400
+
+binutils (2.11.90.0.31-2) unstable; urgency=high
+
+ * Applied IA64 patch from CVS to fix gcc issues
+ on IA64.
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 24 Sep 2001 12:45:29 -0400
+
+binutils (2.11.90.0.31-1) unstable; urgency=high
+
+ * New upstream source (synced with CVS 2001-08-30)
+ * Upstream: Fix a MIPS linker bug.
+ * Now applying mips diffs from H.J. Lu (upstream)
+ for better MIPS and MIPS64 support.
+ * Applied patch from Christopher Cramer to fix
+ gasp .REG issue (closes: Bug#110560)
+
+ -- Christopher C. Chimelis <chris@debian.org> Sat, 1 Sep 2001 23:42:22 -0400
+
+binutils (2.11.90.0.29-1) unstable; urgency=high
+
+ * New upstream source (synced with CVS 2001-08-27)
+ * Upstream: Fix an Alpha assembler bug.
+ * Upstream: Fix an IA64 linker bug.
+ * Upstream: Fix a MIPS linker bug.
+ * Upstream: Support '-z combreloc|nocombreloc' in linker.
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 30 Aug 2001 04:48:04 -0400
+
+binutils (2.11.90.0.27-4) unstable; urgency=high
+
+ * Argh. Really remove the manpages from multiarch
+ this time (closes: Bug#110410)
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 28 Aug 2001 14:32:34 -0400
+
+binutils (2.11.90.0.27-3) unstable; urgency=high
+
+ * Include hppa patch to force error
+ (closes: Bug#109173)
+ * Fix manpages - seems that I accidentally included
+ the multiarch manpages rather than the target
+ manpages (sorry).
+ * Partial update to as manpage to denote arch options
+ and added options for the rest of the targets
+ Still need to elaborate on them, though. More
+ changes are forthcoming (closes: Bug#110127)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 27 Aug 2001 10:13:27 -0400
+
+binutils (2.11.90.0.27-2) unstable; urgency=high
+
+ * Remove bash dependency...ash's behaviour has
+ already been modified, so it should be able
+ to build binutils now (closes: Bug#106992)
+ * Includes new S/390 patch (closes: Bug#109300)
+ * Could never reproduce objdump segfault and
+ never got a reply on the bug report
+ (closes: Bug#93884)
+ * Can't reproduce m68k segfault either
+ (closes: Bug#87714)
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 20 Aug 2001 23:07:30 -0400
+
+binutils (2.11.90.0.27-1) unstable; urgency=high
+
+ * New upstream source (synced with 20010810 CVS)
+ * Upstream: Fixed x86 linker bug.
+ * Reverted a patch to gas to dodge a bug in STABS output
+ on Alpha using gcc 2.95.4, so alpha can be in sync
+ with the rest of the archs now.
+ * Fixes strip problems with busybox (closes: Bug#106593)
+ * Kernels should compile ok again on i386
+ (closes: Bug#107190)
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 16 Aug 2001 08:24:49 -0400
+
+binutils (2.11.90.0.25-1) unstable; urgency=high
+
+ * New upstream source (synced with 20010726 CVS)
+ * Upstream: fix i386 assembler bug.
+ * Upstream: "make check" has 2 failures in the
+ ld-selective test in ld on Linux/alpha. They
+ should be marked xfail. Fixed in the next release.
+ * Removed m68k patch (closes: Bug#106431)
+ * Man pages appear to be correctly generated now
+ (closes: Bug#98569, Bug# 98938)
+ * Added bash build dependency (closes: Bug#106992)
+ * Should compile ok on powerpc (the last one did
+ also...don't know why voltaire's build daemon failed).
+ I won't close this bug until I build it myself
+ on voltaire or hear back from the autobuilder folks
+ on PPC.
+ * Looking into the whole LD_LIBRARY_PATH issue that
+ keeps being brought up. I think the docs are wrong
+ because the templates say that it shouldn't obey that
+ at all. Can we please stop filing duplicate bugs for
+ this? I would greatly appreciate it...
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 1 Aug 2001 07:06:52 -0400
+
+binutils (2.11.90.0.24-1) unstable; urgency=high
+
+ * New upstream source (synced with 20010714 CVS)
+ * DO NOT COMPILE FOR ALPHA. I need to fix gcc 2.95.4
+ prior to this release working on Alpha correctly
+ (long story).
+ * Upstream: Avoid COPY relocs on i386
+ * Upstream: Fix IA64 assembler (please try this and let me know)
+ * Upstream: Fix a static linking the PIC object files on ia32
+ * Upstream: Add the version script support for --export-dynamic
+ * Upstream: Fix sparc/elf for linux/sparc
+ * Upstream: Fix alpha/elf for gcc 3.0
+ * Supposedly required for gcc-3.0 usage on many platforms
+ * Add s390 to multiarch list (closes: Bug#98095)
+ * Supposedly good on mips, but please check. I emailed Ryan
+ to see if bug 98095 still happens, but never got a reply.
+ If I get around it, I'll check it myself since my mips
+ lives once again.
+ * Retake my package from Matt (next time we agree to an NMU,
+ please don't change the maintainer name...no wonder I didn't
+ get any bug reports!)
+ * Cross-compilation support will be added in the next upload
+ (I'll be uploading alpha debs with the next release as well,
+ the alpha problem outweighs cross-compilation support in
+ priority right now).
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 19 Jul 2001 05:12:05 -0400
+
+binutils (2.11.90.0.7-2) unstable; urgency=high
+
+ * Applied patch from Alan Modra to fix m68k
+ assertion problems (closes: Bug#96352)
+ * Applied srec patch from Richard Henderson for
+ alpha.
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 9 May 2001 03:11:19 -0400
+
+binutils (2.11.90.0.7-1) unstable; urgency=high
+
+ * New upstream source (synced with 20010425 CVS)
+ * Upstream: Fix the -Bsymbolic bug introduced in
+ binutils 2.11.90.0.5 (closes: Bug#95168)
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 29 Apr 2001 20:03:22 -0400
+
+binutils (2.11.90.0.5-1) unstable; urgency=high
+
+ * New upstream source (synced with 20010414 CVS)
+ * Upstream: Fix in IA64 assembler
+ * Upstream: Change Linux/MIPS to use SVR4 MIPS ABI
+ rather than IRIX ABI.
+ * The above change may cause problems for MIPS.
+ If so, please file a bug and I'll revert those
+ changes if need be. I suspect that glibc, gcc,
+ and the kernel may eventually follow suit, though
+ to fit in with this change (it makes sense...
+ see the symbol ordering problems threads on the
+ binutils list for more info).
+ * Upstream: IA32 gas bug fixed...no further details
+ provided, unfortunately.
+ * Reportedly fixes core dumping when trying to link
+ object files from other platforms (now warns)
+ (closes: Bug#60502)
+ * Includes Philip Blundell's ARM PLT patch finally...
+ sorry for the delay (closes: Bug#94181)
+ * m68k problems should be fixed by now. Wish I had
+ gotten more feedback, but I didn't so I'm assuming it
+ works at this point (closes: Bug#74396)
+ * Stopped compiling cross-compiler packages until we
+ work out a better system for the entire toolchain.
+ Sorry, but it was taking far too long on even fast
+ machines and I've gotten more complaints about the
+ current arrangement than I have positive feedback.
+ (closes: Bug#91120, Bug#91119, Bug#91118, Bug#91117,
+ Bug#91116, Bug#88311, Bug#78028, Bug#90177)
+ * Fixed readelf manpage so that it no longer says that
+ it is a preprocessor for assembly programs
+ (closes: Bug#90798)
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 17 Apr 2001 20:07:14 -0400
+
+binutils (2.11.90.0.1-1) unstable; urgency=high
+
+ * New upstream source (synced with 20010309
+ CVS).
+ * Fixed misapplied m68k ld patch.
+ I am hoping that this almost totally fixes
+ m68k ELF for now.
+ * Fixed typo in mips patch and applied another
+ mips patch from Daniel Jacobowitz.
+ * Should no longer build same-arch cross
+ packages. Please let me know if this fix
+ worked so that I can close the bugs (I have
+ no access to such an arch at the moment)
+ * Made urgency high since m68k really needs
+ this if the bugs are truly fixed. Even if
+ not, this version is infinitely better on
+ at least two platforms than prior ones were.
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 15 Mar 2001 16:29:32 -0500
+
+binutils (2.10.91.0.2-4) unstable; urgency=low
+
+ * Applied m68k ld and bfd patches from
+ Michael Fedrowitz to hopefully make things
+ better on m68k.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 11 Mar 2001 20:16:44 -0500
+
+binutils (2.10.91.0.2-3) unstable; urgency=low
+
+ * Adjusted the priority of binutils-doc to
+ optional.
+ * Added debhelper build-depends (closes: Bug#87690)
+ * Fixed postinst problem for new binutils
+ installations (closes: Bug#87911)
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 1 Mar 2001 15:06:50 -0500
+
+binutils (2.10.91.0.2-2) unstable; urgency=low
+
+ * Add support for SH and IA64 to binutils-multiarch.
+ * Applied m68k gas patch from Michael Fedrowitz
+ in hopes that this will fix the grave bug that
+ has been such a pain to m68k folks. I'll leave
+ the bug open until it's verified that it works
+ ok.
+ * Applied IA-64 printf patch (closes: Bug#82702)
+ * Kernels appear to be building fine with this
+ release on all archs available to me
+ (closes: Bug#77610)
+ * Added text during postinst that informs users
+ to modify their i386 kernel Makefiles for the
+ --oformat change (closes: Bug#86995)
+ * Incorporated remaining mips diffs that weren't
+ already applied upstream (closes: Bug#81280)
+ * Sparc/sparc64 patch seems to be doing fine, so
+ closing the bug (closes: Bug#86781)
+ * Added non-linux cross- package support to rules
+ (closes: Bug#79948)
+ * Close misc bugs:
+ Missing info file in binutils-doc (closes: Bug#78754)
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 22 Feb 2001 19:36:12 -0500
+
+binutils (2.10.91.0.2-1) unstable; urgency=low
+
+ * New upstream version.
+ * Added weak symbol relocation patch for sparc/sparc64.
+ * Included m68k ELF fix from Michael Fedrowitz.
+ * BIG NOTE: any i386 kernels compiled with this will need
+ to be patched to change the ld option '-oformat' to
+ '--oformat' (extra hyphen).
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 20 Feb 2001 21:32:44 -0500
+
+binutils (2.10.1.0.2-1) unstable; urgency=low
+
+ * New upstream release (really prerel, but better than
+ using a CVS version).
+ * Should re-add Compaq demangling style to all
+ tools (alpha-only).
+ * Again, hopefully fixes m68k ELF support...still have
+ no idea why or how this was broken before.
+
+ -- Christopher C. Chimelis <chris@debian.org> Mon, 20 Nov 2000 16:25:44 -0500
+
+binutils (2.10.0.27-0.cvs20001011.2) unstable; urgency=low
+
+ * Applied another PowerPC patch to correct the
+ implementation of .protected and .hidden in the
+ linker. This should also aid in the glibc
+ transition on PowerPC.
+
+ -- Christopher C. Chimelis <chris@debian.org> Tue, 17 Oct 2000 13:23:40 -0400
+
+binutils (2.10.0.27-0.cvs20001011.1) unstable; urgency=low
+
+ * Applied PowerPC weak symbol patch from CVS to aid
+ in glibc transition on that platform.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 15 Oct 2000 19:12:22 -0400
+
+binutils (2.10.0.27-0.cvs20001011) unstable; urgency=low
+
+ * Grabbed a new CVS version since it backs out a
+ change that prevented current gcc snapshots from
+ linking properly to libstdc++v3. This may also
+ solve some other problems related to global
+ section symbols (feedback appreciated).
+ * Finally changed my email address in the control
+ file (how I overlooked this after all of this
+ time I'll never know).
+
+ -- Christopher C. Chimelis <chris@debian.org> Wed, 11 Oct 2000 08:59:36 -0400
+
+binutils (2.10.0.27-0.cvs20001008) unstable; urgency=low
+
+ * Removed configure.info.gz from binutils-doc since
+ it didn't really belong there. (closes: Bug#72746)
+ * Update for hppa/hppa64 targets (included testsuite
+ changes committed on 07-Oct-2000). (closes: Bug#71524)
+ * Upstream change to elflink.h to hopefully stop
+ segfaults on some archs when linking binaries to
+ shared libs.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 8 Oct 2000 16:14:08 -0400
+
+binutils (2.10.0.27-0.cvs20000923.1) unstable; urgency=low
+
+ * Fixed rules file so that builds don't fail when compiling the
+ binary-arch target (added binary-cross to binary-arch).
+ * Fixed harmless attempt at removing builddir-avr twice.
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 28 Sep 2000 10:39:12 -0400
+
+binutils (2.10.0.27-0.cvs20000923) unstable; urgency=low
+
+ * CVS snapshot from 2000-09-23.
+ * Should fix some (most) HPPA issues.
+ * Adds binutils-m68k cross-assembler.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 24 Sep 2000 10:19:20 -0400
+
+binutils (2.10.0.26-2) unstable; urgency=low
+
+ * Added the avr target for Amtel's AVR MCU's
+ * Applied Frank I. Smith <smith@amirix.com> to generate packages for
+ multiple cross targets:
+ + Bump rev number, NOP.
+ + Testing out bumping up the rev number.
+ + Added powerpc, arm, mipsel cross binutils packages.
+
+ -- Christopher C. Chimelis <chris@debian.org> Fri, 22 Sep 2000 17:31:44 -0400
+
+binutils (2.10.0.26-1) unstable; urgency=low
+
+ * New upstream source.
+ * Added mips-linux, hppa-linux, and hppa64-linux to multiarch targets
+
+ -- Christopher C. Chimelis <chris@debian.org> Sun, 17 Sep 2000 01:05:49 -0400
+
+binutils (2.10.0.24-1) unstable; urgency=low
+
+ * New upstream source.
+ * Fixes ia32 assembler buglet.
+ * (Hopefully) fixes PPC visibility problems with
+ glibc 2.2
+
+ -- Christopher C. Chimelis <chris@debian.org> Thu, 24 Aug 2000 16:52:44 -0400
+
+binutils (2.10.0.18-3) unstable; urgency=low
+
+ * Added build depends stuff.
+
+ -- Christopher C. Chimelis <chris@debian.org> Sat, 5 Aug 2000 21:09:04 -0400
+
+binutils (2.10.0.18-2) unstable; urgency=low
+
+ * Added proviso to control file saying that -multiarch
+ should not be installed by the average user.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 29 Jul 2000 20:07:15 -0400
+
+binutils (2.10.0.18-1) unstable; urgency=low
+
+ * New upstream source.
+ * Should address some needed things for glibc 2.2
+ (added new DT_XXXX dynamic tags and fixes DT_NEEDED
+ link bug)
+ * Reapplied the now-infamous "ObjC patch" until
+ we can figure out why we still have this problem
+ (hint hint hint...we really need to do this).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 22 Jul 2000 13:18:27 -0400
+
+binutils (2.10.0.9-4) unstable; urgency=low
+
+ * Applied a patch from Ben Collins to fix sparc64
+ linker scripts
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 8 Jul 2000 07:24:10 -0400
+
+binutils (2.10.0.9-3) unstable; urgency=low
+
+ * Applied a patch from the libstdc++ mailing list to
+ make sure that the linker doesn't eat the eh_frame
+ section.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 7 Jul 2000 10:26:59 -0400
+
+binutils (2.10.0.9-2) unstable; urgency=low
+
+ * Wow, already a bug fix.
+ * binutils-dev now provides libiberty.h
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 23 Jun 2000 19:54:39 -0400
+
+binutils (2.10.0.9-1) unstable; urgency=low
+
+ * New upstream version (more linux-specific).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 23 Jun 2000 14:31:04 -0400
+
+binutils (2.10-1) unstable; urgency=low
+
+ * New upstream version (finally, a real release!)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 21 Jun 2000 19:08:14 -0400
+
+binutils (2.9.5.0.46-1) unstable; urgency=low
+
+ * New upstream source.
+ * ELF visibility attribute should work correctly now.
+ * ia32 "jmp" instructions are now assembled differently
+ to use relocation for global jumps (affects PIC asm
+ code).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 8 Jun 2000 21:34:42 -0400
+
+binutils (2.9.5.0.42-1) unstable; urgency=low
+
+ * New upstream source.
+ * Includes a testcase for hidden symbol support.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 19 May 2000 20:48:52 -0400
+
+binutils (2.9.5.0.41-1) unstable; urgency=high
+
+ * New upstream source.
+ * Now includes patch to enable hidden symbol support
+ needed for gcc 3.0 testing.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 5 May 2000 20:38:41 -0400
+
+binutils (2.9.5.0.37-1) frozen unstable; urgency=high
+
+ * Was forced to bring the current frozen version up to
+ upstream 2.9.5.0.37 in order to fix a rather nasty
+ i386 gas bug and also since the existing ARM patch
+ applied in 2.9.5.0.31-3 has been superceded upstream
+ (closes:Bug#62119)
+ * Includes proper demangler support for Compaq compiler
+ usage on Alpha (may be superceded upstream shortly,
+ but is good enough for potato and for Compaq's usage)
+ (closes:Bug#62079)
+ * Added cross-compilation support for individual use.
+ Please note that the binary packages do not support
+ this. If you require this feature, you need to compile
+ the source package changing debian/rules. Also, if
+ you do this, YMMV since things on this front are changing
+ rapidly upstream and also because cross-compiling from
+ certain platforms to others may not work (i386->alpha,
+ for example). (closes:Bug#59246)
+ * Fixed replaces statement in binutils-multiarch
+ (closes:Bug#62496)
+ * Release Manager: I once again beg that this be included
+ in potato. I've freed up some time to deal with bug
+ reports quickly if needed.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 29 Apr 2000 04:03:39 -0400
+
+binutils (2.9.5.0.31-3) frozen unstable; urgency=high
+
+ * Applied patch to fix broken ARM code generation (closes:Bug#61977)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 7 Apr 2000 15:50:42 -0400
+
+binutils (2.9.5.0.31-2) frozen unstable; urgency=high
+
+ * Remove ld from binutils-multiarch since it doesn't want to
+ link kernels on several archs properly (fixes severity:important bug)
+ (closes: Bug#61719, Bug#61615, Bug#51625)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 3 Apr 2000 22:48:55 -0400
+
+binutils (2.9.5.0.31-1) frozen unstable; urgency=high
+
+ * Yet another patch (this time from H.J. Lu upstream) to fix
+ the unlink race condition bug. This is VERY important and
+ needs to be in potato. It also fixes the temp file creation
+ problem with objcopy on PPC (closes: Bug#60934)
+ * New upstream release. Fixes a serious Alpha bug along
+ with a demangler bug and several others (closes: Bug#61121)
+ * Should fix apt-get upgrade problem...please test
+ (closes: Bug#56175)
+ * Release manager: can we squeeze this in? I know it's a
+ new version, but the ELF bug on Alpha really needs to
+ be fixed along with the rest of the above and some others
+ not mentioned here.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 22 Mar 2000 05:05:12 -0500
+
+binutils (2.9.5.0.22-5) frozen unstable; urgency=high
+
+ * Applied fixed patch from Colin Phipps to seal the unlink
+ race condition in bfd/cache.c (closes: Bug#58865, Bug#57831)
+ * Installed a proper changelog in binutils-doc
+ (closes: Bug#58522)
+ * Closes other older bug (closes: Bug#55801)
+ * Included bbconv.pl in binutils main package in the doc dir
+ under the gprof subdir (closes: Bug#57521)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 14 Mar 2000 10:32:52 -0500
+
+binutils (2.9.5.0.22-4) frozen unstable; urgency=high
+
+ * Patched gprof/hertz.h to allow binutils to actually
+ build and work on Hurd (closes: Bug#57564)
+ * Patched bfd/cache.c to avoid a rare, but possible
+ security problem when as is creating/opening temp
+ files (closes: Bug#57831)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 17 Feb 2000 10:31:05 -0500
+
+binutils (2.9.5.0.22-3) frozen unstable; urgency=high
+
+ * Removed standards.info...do we really need seven
+ bugs filed for the same problem
+ (closes: Bug#54521, Bug#54546, Bug#54614, Bug#54682, Bug#55402, Bug#55582, Bug#55602)
+ * Changed binutils-multiarch extended description
+ to mention that a cross-assembling gas is not
+ included (closes: Bug#49308)
+ * Closing a bug because it related to lack of disk space
+ (closes: Bug#52714)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 19 Jan 2000 19:28:09 -0500
+
+binutils (2.9.5.0.22-2) unstable; urgency=high
+
+ * Added getopt.h include that was omitted in the -taso patch
+ (closes: Bug#52380)
+ * Fixed table misalignment when calling objdump --info
+ (closes: Bug#51517)
+ * Added Debian changelog to binutils-doc (closes: Bug#52574)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 15 Dec 1999 19:14:05 -0500
+
+binutils (2.9.5.0.22-1) unstable; urgency=high
+
+ * New upstream version.
+ * More MIPS fixes.
+ * Added support for -taso linker flag for Alpha.
+ * Reapplied all previous patches.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 7 Dec 1999 01:08:51 -0600
+
+binutils (2.9.5.0.19-1) unstable; urgency=high
+
+ * New upstream version
+ * Fixes some MIPS problems
+ * Reapplied the ObjC patch (is this ever going to be fixed upstream)
+ since it's badly needed right now
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 4 Nov 1999 15:00:35 -0400
+
+binutils (2.9.5.0.16-3) unstable; urgency=low
+
+ * Added support for mipsel-linux in binutils-multiarch
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 4 Nov 1999 15:00:35 -0400
+
+binutils (2.9.5.0.16-2) unstable; urgency=low
+
+ * Added a replaces field in the control file to fix
+ previous file overwrite problems (closes: Bug#47518, Bug#47938)
+ * Verified manpages are up to date (closes: Bug#18483)
+ * Added m68k-rtems to targets in -multiarch in hopes
+ that it will actually work as advertised (closes: Bug#47468)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 25 Oct 1999 15:58:55 -0400
+
+binutils (2.9.5.0.16-1) unstable; urgency=low
+
+ * New upstream version.
+ * Massive bugfix upload on the Debian side:
+ * Fixes changelog problems between all of the binutils
+ debs (closes: Bug#47133, Bug#47208, Bug#47211)
+ * Fixes other overwrite problems (closes: Bug#46991, Bug#47024, Bug#46074)
+ * Multiarch should now make good diversions when
+ upgrading (closes: Bug#47359)
+ * Applied patch from Kevin Buhr to fix ld segfaults with
+ empty archives (closes: Bug#47019)
+ * Should have fixed info install problems by now
+ (closes: Bug#35935)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 15 Oct 1999 03:18:55 -0400
+
+binutils (2.9.5.0.14-1) unstable; urgency=low
+
+ * New upstream version.
+ * Thanks to Matthias Klose for the following:
+ * Separate documentation to binutils-doc package.
+ * debian/rules:
+ - Remove extra /usr/share/doc/binutils/changelog.gz file.
+ - Move bfd docs to binutils-dev package.
+ - Move upstream changelogs to binutils-doc package.
+ - Remove standard GNU info files left in /usr/share/info.
+ - Call dh_installdocs for all packages.
+ * debian/*{dirs,files}: Remove. Mention explicitely in debian/rules.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 6 Oct 1999 03:18:55 -0400
+
+binutils (2.9.5.0.12-2) unstable; urgency=low
+
+ * Applied patch from Matthias Klose to fix many issues including architecture detection.
+ * Rules file is now much prettier and easier to manage.
+ * Binutils is now built for i386 rather than i486 in the rules file (oops).
+ * Added diversion for readelf in binutils-multiarch.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 21 Sep 1999 03:39:08 -0400
+
+binutils (2.9.5.0.12-1) unstable; urgency=low
+
+ * Massive bugfix release.
+ * New upstream source (finally) (closes: Bug#44934)
+ * Fixes upstream bugs on many platforms.
+ * Gives powerpc a working binutils again. (closes: Bug#45052)
+ * Now provides .code16 support on i386 (please test)
+ * Manpage for objdump should now be complete (closes: Bug#27039)
+ * Put together manpages for gasp and the new binary readelf (closes: Bug#21918)
+ * Fixes nm core dump problem (closes: Bug#41999)
+ * Applied patches from Ben Collins to add sparc64 support (closes: Bug#44426)
+ * Update Standards version
+ * FHS compliance
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 18 Sep 1999 01:21:05 -0400
+
+binutils (2.9.5.0.12-0.2) experimental; urgency=low
+
+ * Added Sparc/Sparc64 changes from Ben Collins (I really need a Sparc one of these days).
+ * Again, this should be the last experimental before a new release.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 17 Aug 1999 16:32:05 -0400
+
+binutils (2.9.5.0.12-0.1) experimental; urgency=low
+
+ * New upstream version.
+ * Should be the last experimental before a new release.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 9 Aug 1999 23:12:52 -0400
+
+binutils (2.9.5.0.10-0.1) experimental; urgency=low
+
+ * New upstream version.
+ * Didn't apply PPC patches...let me know if still needed
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 9 Aug 1999 23:12:52 -0400
+
+binutils (2.9.5.0.6-0.1) experimental; urgency=low
+
+ * New upstream version.
+ * Didn't apply PPC patches...let me know if still needed
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 9 Aug 1999 23:12:52 -0400
+
+binutils (2.9.4.0.8-0.1) unstable; urgency=low
+
+ * New upstream version.
+ * Applied as much of the PPC patches as I could.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 15 Jul 1999 12:46:45 -0400
+
+binutils (2.9.4.0.3-0.1) unstable; urgency=low
+
+ * New upstream version.
+ * Apply patch from Richard Henderson to fix PPC's libpath.
+ * Apply patch from Franz Sirl to fix Richard Henderson.
+
+ -- Daniel Jacobowitz <dan@debian.org> Sun, 6 Jun 1999 01:27:10 -0400
+
+binutils (2.9.4.0.2-0.1) unstable; urgency=low
+
+ * New upstream version. 2.9.4.0.1 was hurriedly recalled.
+
+ -- Daniel Jacobowitz <dan@debian.org> Sun, 6 Jun 1999 01:27:10 -0400
+
+binutils (2.9.4.0.1-0.1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Daniel Jacobowitz <dan@debian.org> Sun, 6 Jun 1999 01:27:10 -0400
+
+binutils (2.9.1.0.25-2) unstable; urgency=low
+
+ * Added ObjC patch AGAIN...sorry about that
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sun, 23 May 1999 15:14:35 -0400
+
+binutils (2.9.1.0.25-1) unstable; urgency=low
+
+ * New upstream version - Fixes a PIII asm optimisation bug
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sun, 23 May 1999 00:36:55 -0400
+
+binutils (2.9.1.0.24-2) unstable; urgency=low
+
+ * Reapplied ObjC patch...apparently it's still needed.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 10 May 1999 19:53:15 -0400
+
+binutils (2.9.1.0.24-1) unstable; urgency=low
+
+ * New upstream release - fixes too many little things to mention.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 3 May 1999 16:35:08 -0400
+
+binutils (2.9.1.0.23-1) unstable; urgency=low
+
+ * New upstream release - incorporates sparc64 and arm patches.
+ * Added RPATH patch from Joel Klecker since my last upload failed.
+ * Removed ObjC patch. Let me know if it is still needed (doubtful, but
+ still might be).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 5 Apr 1999 13:26:55 -0500
+
+binutils (2.9.1.0.22b-2) unstable; urgency=low
+
+ * Added patch from Joel Klecker to finally (properly) fix the rpath issue
+ (Thanks, Joel!).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 2 Apr 1999 18:14:05 -0600
+
+binutils (2.9.1.0.22b-1) unstable; urgency=low
+
+ * Converted package to CVS (so bear with any delays in handling
+ bug fixes; I'm new to CVS ironically)
+ * New upstream version (sparc64 and ARM patches again added).
+ * Added support for mingw32 target in binutils-multiarch
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 12 Mar 1999 03:51:44 -0600
+
+binutils (2.9.1.0.19a-4) frozen unstable; urgency=high
+ * Added sparc64 patches from Steve Dunham to fix sparc64 targets
+ * Modified rules to add support for gcc/egcs by arch.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 1 Feb 1999 15:51:19 -0600
+
+binutils (2.9.1.0.19a-3) frozen unstable; urgency=high
+
+ * Reverted a patch to elflink.h that caused problems for
+ Obj-C code (symbols weren't exported with a size or
+ type).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 21 Jan 1999 19:25:17 -0600
+
+binutils (2.9.1.0.19a-2) frozen unstable; urgency=low
+
+ * Added arm-linux as multiarch target (sorry Jim).
+ * Uploaded to frozen to fix strange intermittant kernel
+ compilation problems (Fixes #31434).
+ * Fixed multiarch's postinst script to check for
+ c++filt.single before trying to remove it to prevent
+ warning messages if using g++ from egcs.
+ * Fixed typo in multiarch's postrm (addr2line) (Fixes: #31533)
+ * Added links to .so's for clean removal in the future (Fixes: #31536)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 8 Jan 1999 15:28:32 -0600
+
+binutils (2.9.1.0.19a-1) unstable; urgency=low
+
+ * New upstream version; fixes some Alpha problems and other archs
+ should benefit also.
+ * Added ARM target patch from Corel again (still not in upstream).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 4 Jan 1999 20:24:36 -0600
+
+binutils (2.9.1.0.16-1) unstable; urgency=low
+
+ * New upstream version; merges some ARM patches for Netwinders
+ * Added patch for ARM target from Corel (thanks Jim Pick)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 30 Nov 1998 16:59:25 -0600
+
+binutils (2.9.1.0.15-5) frozen unstable; urgency=low
+
+ * Reuploaded to frozen (why it wasn't there earlier....)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 30 Nov 1998 16:37:08 -0600
+
+binutils (2.9.1.0.15-4) unstable frozen; urgency=low
+
+ * Removed c++filt diversion in -multiarch to prevent conflicting
+ diversions when using egcs' g++ (which also wants to divert c++filt)
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 25 Nov 1998 18:06:17 -0600
+
+binutils (2.9.1.0.15-3) unstable frozen; urgency=low
+
+ * Made Roman's changes "official" (thanks Roman).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 2 Nov 1998 05:46:56 -0600
+
+binutils (2.9.1.0.15-2.1) unstable; urgency=low
+
+ * Non-maintainer upload with agreement from Chris.
+ * Use a different soname for multi-arch libbfd and libopcodes; this
+ fixes the problem that the single-arch binaries (as and the diverted
+ ones) will all dump core because they're runtime-linked against the
+ multi-arch libs. (Fixes: #28656)
+ * Due to the above, binutils-multiarch also needs ldconfig in postinst
+ now.
+ * Fixup diversions once again: Do not even package the ldscripts for the
+ native architecture, so diversions for files in /usr/lib/ldscripts
+ aren't necessary.
+ * Also remove diversions on abort-install.
+ * Remove now obsolete diversions in preinst.
+ * Also symlink /usr/doc/binutils-multiarch to binutils, and do not
+ put /usr/doc/binutils in the package again.
+ * Put the symlinks libbfd.so and libopcode.so into binutils-dev, so one
+ can link to them.
+
+ -- Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> Sat, 31 Oct 1998 11:31:14 +0100
+
+binutils (2.9.1.0.15-2) unstable; urgency=low
+
+ * Fixed binutils-multiarch diversions
+ * Reverted elf.c to .13 version to fix bug in strip
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 27 Oct 1998 05:26:28 -0600
+
+binutils (2.9.1.0.15-1) unstable; urgency=low
+
+ * New upstream version.
+ * Moved over to debhelper and updated standards version to 2.4.1.4.
+ * Adds 3DNow instruction support for AMD processors.
+ * Fixes MANY Alpha bugs and a few for Sparc, PPC, and m68k reportedly.
+ * Added binutils-multiarch package to allow for multiple-arch support
+ (fixes bug #19471).
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 14 Oct 1998 19:30:10 -0500
+
+binutils (2.9.1.0.13-1) unstable; urgency=low
+
+ * New upstream version, fixes bug #25354.
+ * Hopefully, all requested docs are included, fixes bug #21325.
+ * Fixes MANY Alpha problems.
+ * Reportedly may fix MIPS and Sparc problems also...see changelogs.
+ * Has been tested on x86's with great success.
+
+ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 5 Oct 1998 23:02:08 -0500
+
+binutils (2.9.1-0.2) frozen unstable; urgency=low
+
+ * Fixed binutils-dev dependencies.
+
+ -- Joel Klecker <jk@espy.org> Tue, 05 May 1998 09:24:04 -0700
+
+binutils (2.9.1-0.1) frozen unstable; urgency=medium
+
+ * Non-maintainer release.
+ * New upstream release.
+ * Moved docs into subdirs where appropriate.
+ * Integrated the following changes from J.H.M. Dassen:
+ * Updated FSF address in copyright file. (lintian).
+ * Reported lack of "gasp" manpage (# ....), and link it to
+ undocumented(7). (lintian).
+ * Added a TODO list.
+
+ -- Joel Klecker <jk@espy.org> Thu, 30 Apr 1998 10:43:42 -0700
+
+binutils (2.9-0.3) frozen unstable; urgency=medium
+
+ * Added upstream patch which fixes a problem with strip
+ and netscape (#17971).
+
+ -- Joel Klecker <jk@espy.org> Tue, 28 Apr 1998 08:58:27 -0700
+
+binutils (2.9-0.2) frozen unstable; urgency=low
+
+ * Added more of the upstream docs (#21325).
+ * Put a changelog.gz symlink in /usr/doc/binutils
+ to satisfy policy.
+
+ -- Joel Klecker <jk@espy.org> Tue, 21 Apr 1998 09:02:22 -0700
+
+binutils (2.9-0.1) frozen unstable; urgency=low
+
+ * Non-maintainer release.
+ * New upstream release (bugfixes only).
+
+ -- Joel Klecker <jk@espy.org> Sun, 12 Apr 1998 04:11:07 -0700
+
+binutils (2.8.1.0.23-1) unstable; urgency=low
+
+ * New upstream version
+ * -dev replaces libc5-dev (#17840)
+ * No longer possible to link against shared libbbfd/opcodes (#18121)
+
+ -- Galen Hazelwood <galenh@micron.net> Sat, 14 Mar 1998 18:19:10 -0700
+
+binutils (2.8.1.0.19-1) unstable; urgency=low
+
+ * New upstream version (#17296)
+ * Fixed typo in description (#16481)
+ * Fully replaces libbfd-dev (#16619)
+
+ -- Galen Hazelwood <galenh@micron.net> Sun, 25 Jan 1998 15:37:03 -0700
+
+binutils (2.8.1.0.17-1) unstable; urgency=low
+
+ * New upstream version
+ * Rejoined libbfd and binutils packages (#15486)
+ * Added "SHELL=bash" to rules file (#14528)
+ * bfd info docs seem to be broken, don't install for now
+
+ -- Galen Hazelwood <galenh@micron.net> Sat, 6 Dec 1997 14:55:26 -0700
+
+binutils (2.8.1.0.15-1) unstable; urgency=low
+
+ * New upstream version (#14250)
+ * Updated to Standard 2.3.0.0
+ * Restored ansidecl.h to libbfd-dev (#14116)
+
+ -- Galen Hazelwood <galenh@micron.net> Thu, 30 Oct 1997 20:04:24 -0700
+
+binutils (2.8.1-2) unstable; urgency=low
+
+ * Added 2.8.1.0.4 patch
+
+ -- Galen Hazelwood <galenh@micron.net> Thu, 12 Jun 1997 20:49:57 -0600
+
+binutils (2.8.1-1) unstable; urgency=low
+
+ * New upstream version
+ * Added 2.8.1.0.1 patch
+
+ -- Galen Hazelwood <galenh@micron.net> Fri, 30 May 1997 14:48:42 -0600
+
+binutils (2.8-1) unstable; urgency=low
+
+ * New upstream version
+ * Smarter debian build environment (automatic version handling)
+ * Added 2.8.0.3 patch
+ * Built with libc6
+
+ -- Galen Hazelwood <galenh@micron.net> Sun, 4 May 1997 11:16:12 -0600
+
+binutils (2.7.0.9-3) frozen unstable; urgency=low
+
+ * Patched for alpha support
+ * Distribute libiberty.a with -dev package (#8376)
+ * libbfd[x]-dev now has standard Provides/Conflicts behavior (#8377)
+
+ -- Galen Hazelwood <galenh@micron.net> Fri, 28 Mar 1997 11:45:58 -0700
+
+binutils (2.7.0.9-2) unstable; urgency=low
+
+ * Moved 2.7.0.9 out of experimental (no longer unreleased beta)
+
+ -- Galen Hazelwood <galenh@micron.net> Sun, 9 Mar 1997 23:43:19 -0700
+
+binutils (2.7.0.9-1) experimental; urgency=low
+
+ * New upstream beta version (fixes bug #7336)
+ * Split shared libraries (bfd) out of binutils (fixes bug #7244)
+ * No longer builds aout-binutils
+
+ -- Galen Hazelwood <galenh@micron.net> Thu, 13 Feb 1997 00:27:18 -0700
+
+binutils (2.7-6) unstable; urgency=low
+
+ * Uses dpkg --print-gnu-build-architecture for build
+ * Demoted aout-binutils to priority "extra"
+
+ -- Galen Hazelwood <galenh@micron.net> Mon, 27 Jan 1997 13:34:08 -0700
+
+binutils (2.7-5) unstable; urgency=low (HIGH for m68k)
+
+ * Added patch for m68k, will now compile X68 and kernel 2.1.15
+
+ -- Galen Hazelwood <galenh@micron.net> Tue, 31 Dec 1996 22:15:03 -0700
+
+binutils (2.7-4) unstable; urgency=low
+
+ * New maintainer
+ * Updated to new source format
+ * Fixed typo in script.1 (Fixes bug #4558)
+ * Fixed typo in as.1 (Fixes bug #5567)
+ * Postinst now calls ldconfig without explicit pathname (Fixes bug #6151)
+
+ -- Galen Hazelwood <galenh@micron.net> Mon, 30 Dec 1996 12:10:25 -0700
+
+binutils (2.7-3):
+
+Remove lib*.so links so the libs are not used for develpment.
+gzip manpages
+
+Changes made by Michael Meskes <meskes@debian.org> in consent with David Engel.
+
+binutils (2.7-2):
+
+Include shared libraries
+Strip shared libraries
+Also update AOUT version
+Minor changes to debian.rules
+
+binutils (2.7-1):
+
+Updated to new upstream version.
+
+Added a simple extended description (Bug#3574).
+
+Don't call ldconfig from postrm script (Bug#4246).
+
+ LocalWords: Aurelien Jarno
+
--- /dev/null
+Source: binutils
+Section: devel
+Priority: optional
+Maintainer: Matthias Klose <doko@debian.org>
+Uploaders: James Troup <binutils@elmo.tasta.io>, Daniel Jacobowitz <dan@debian.org>
+Standards-Version: 3.9.8
+Build-Depends: autoconf (>= 2.64), dpkg-dev (>= 1.17.11),
+ bison, flex, gettext, texinfo, dejagnu, quilt, chrpath,
+ python3:any, file, xz-utils, lsb-release, zlib1g-dev
+Build-Conflicts: libelf-dev
+Homepage: https://www.gnu.org/software/binutils/
+Vcs-Browser: https://code.launchpad.net/~doko/binutils/pkg-2.28-debian
+Vcs-Bzr: http://bazaar.launchpad.net/~doko/binutils/pkg-2.28-debian
+XS-Testsuite: autopkgtest
+
+Package: binutils
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: gas, elf-binutils, modutils (<< 2.4.19-1), ${extraConflicts},
+ binutils-gold (<< 2.20.51.20100415),
+ binutils-multiarch (<< 2.27-8)
+Breaks: binutils-mingw-w64-i686 (<< 2.23.52.20130612-1+3),
+ binutils-mingw-w64-x86-64 (<< 2.23.52.20130612-1+3),
+ hardening-wrapper (<< 2.8+nmu3)
+Replaces: binutils-gold (<< 2.20.51.20100415),
+ binutils-mingw-w64-i686 (<< 2.23.52.20130612-1+3),
+ binutils-mingw-w64-x86-64 (<< 2.23.52.20130612-1+3)
+Provides: elf-binutils, ${gold:Provides}
+Suggests: binutils-doc (>= ${source:Version})
+Description: GNU assembler, linker and binary utilities
+ The programs in this package are used to assemble, link and manipulate
+ binary and object files. They may be used in conjunction with a compiler
+ and various libraries to build programs.
+
+Package: binutils-dev
+Architecture: any
+Priority: extra
+Depends: binutils (= ${binary:Version})
+Conflicts: libbfd-dev
+Provides: libbfd-dev
+Replaces: libbfd-dev, libc5-dev
+Description: GNU binary utilities (BFD development files)
+ This package includes header files and static libraries necessary to build
+ programs which use the GNU BFD library, which is part of binutils. Note
+ that building Debian packages which depend on the shared libbfd is Not
+ Allowed.
+
+Package: binutils-multiarch
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends}, binutils (= ${binary:Version})
+Description: Binary utilities that support multi-arch targets
+ The programs in this package are used to manipulate binary and object
+ files that may have been created on other architectures. This package
+ is primarily for multi-architecture developers and cross-compilers and
+ is not needed by normal users or developers. Note that a cross-assembling
+ version of gas is not included in this package, just the binary utilities.
+ .
+ NORMAL USERS SHOULD NOT INSTALL THIS PACKAGE. It's meant only for those
+ requiring support for reading info from binaries from other architectures.
+
+Package: binutils-multiarch-dev
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends},
+ binutils-dev (= ${binary:Version}), binutils-multiarch (= ${binary:Version})
+Replaces: binutils-multiarch (<< 2.24-5)
+Description: GNU binary utilities that support multi-arch targets (BFD development files)
+ This package includes header files, static and shared libraries necessary
+ to build programs which use the GNU BFD library for multi-arch targets,
+ which is part of binutils. Note that building Debian packages which depend
+ on the shared libbfd is Not Allowed.
+ .
+ NORMAL USERS SHOULD NOT INSTALL THIS PACKAGE. It's meant only for those
+ requiring support for reading info from binaries from other architectures.
+
+Package: binutils-hppa64-linux-gnu
+Architecture: amd64 i386 x32 hppa
+Depends: ${shlibs:Depends}, binutils (= ${binary:Version})
+Recommends: libc6-dev
+Provides: binutils-hppa64
+Suggests: binutils-doc (>= ${source:Version})
+Breaks: binutils-hppa64 (<< 2.25.1-2)
+Replaces: binutils-hppa64 (<< 2.25.1-2)
+Description: GNU assembler, linker and binary utilities targeted for hppa64-linux
+ The programs in this package are used to assemble, link and manipulate
+ binary and object files. They may be used in conjunction with a compiler
+ and various libraries to build programs.
+ .
+ This package is needed to build an 64-bit kernel for 64-bit hppa machines.
+
+Package: binutils-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Priority: optional
+Depends: dpkg (>= 1.15.4) | install-info
+Conflicts: binutils (<< 2.9.1.0.25-3)
+Suggests: binutils (= ${binary:Version})
+Description: Documentation for the GNU assembler, linker and binary utilities
+ This package consists of the documentation for the GNU assembler,
+ linker and binary utilities in info format.
+
+Package: binutils-source
+Architecture: all
+Multi-Arch: foreign
+Priority: optional
+Depends: texinfo, zlib1g-dev, make, python
+Description: GNU assembler, linker and binary utilities (source)
+ This package contains the sources and patches which are needed to
+ build binutils.
+
+Package: binutils-s390x-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for s390x-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for s390x-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for s390x-linux-gnu.
+
+Package: binutils-powerpc64le-linux-gnu
+Architecture: amd64 i386 x32 ppc64
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for powerpc64le-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for powerpc64le-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for powerpc64le-linux-gnu.
+
+Package: binutils-powerpc-linux-gnu
+Architecture: amd64 i386 x32 ppc64el
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for powerpc-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for powerpc-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for powerpc-linux-gnu.
+
+Package: binutils-aarch64-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for aarch64-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for aarch64-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for aarch64-linux-gnu.
+
+Package: binutils-arm-linux-gnueabihf
+Architecture: amd64 i386 x32 arm64
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for arm-linux-gnueabihf target
+ This package provides GNU assembler, linker and binary utilities
+ for arm-linux-gnueabihf target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for arm-linux-gnueabihf.
+
+Package: binutils-arm-linux-gnueabi
+Architecture: amd64 i386 x32 arm64
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for arm-linux-gnueabi target
+ This package provides GNU assembler, linker and binary utilities
+ for arm-linux-gnueabi target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for arm-linux-gnueabi.
+
+Package: binutils-mips-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for mips-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for mips-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips-linux-gnu.
+
+Package: binutils-mipsel-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for mipsel-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsel-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsel-linux-gnu.
+
+Package: binutils-alpha-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for alpha-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for alpha-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for alpha-linux-gnu.
+
+Package: binutils-hppa-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for hppa-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for hppa-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for hppa-linux-gnu.
+
+Package: binutils-m68k-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for m68k-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for m68k-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for m68k-linux-gnu.
+
+Package: binutils-mips64-linux-gnuabi64
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for mips64-linux-gnuabi64 target
+ This package provides GNU assembler, linker and binary utilities
+ for mips64-linux-gnuabi64 target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips64-linux-gnuabi64.
+
+Package: binutils-mips64el-linux-gnuabi64
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for mips64el-linux-gnuabi64 target
+ This package provides GNU assembler, linker and binary utilities
+ for mips64el-linux-gnuabi64 target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips64el-linux-gnuabi64.
+
+Package: binutils-powerpc-linux-gnuspe
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for powerpc-linux-gnuspe target
+ This package provides GNU assembler, linker and binary utilities
+ for powerpc-linux-gnuspe target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for powerpc-linux-gnuspe.
+
+Package: binutils-powerpc64-linux-gnu
+Architecture: amd64 i386 x32 ppc64el
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for powerpc64-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for powerpc64-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for powerpc64-linux-gnu.
+
+Package: binutils-sh4-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for sh4-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for sh4-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for sh4-linux-gnu.
+
+Package: binutils-sparc64-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for sparc64-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for sparc64-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for sparc64-linux-gnu.
+
+Package: binutils-mips64-linux-gnuabin32
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for mips64-linux-gnuabin32 target
+ This package provides GNU assembler, linker and binary utilities
+ for mips64-linux-gnuabin32 target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips64-linux-gnuabin32.
+
+Package: binutils-mips64el-linux-gnuabin32
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides:
+Priority: extra
+Multi-Arch: foreign
+Description: GNU binary utilities, for mips64el-linux-gnuabin32 target
+ This package provides GNU assembler, linker and binary utilities
+ for mips64el-linux-gnuabin32 target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips64el-linux-gnuabin32.
--- /dev/null
+
+Package: binutils-@target@
+Architecture: @host_archs@
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: @binutils_alt_triplet@
+Priority: extra
+Built-Using: ${Built-Using}
+Multi-Arch: foreign
+Description: GNU binary utilities, for @target@ target
+ This package provides GNU assembler, linker and binary utilities
+ for @target@ target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for @target@.
--- /dev/null
+Source: binutils
+Section: devel
+Priority: optional
+Maintainer: Matthias Klose <doko@debian.org>
+Uploaders: James Troup <binutils@elmo.tasta.io>, Daniel Jacobowitz <dan@debian.org>
+Standards-Version: 3.9.8
+Build-Depends: autoconf (>= 2.64), @dpkg_dev@
+ bison, flex, gettext, texinfo, dejagnu, quilt, chrpath,
+ python3:any, file, xz-utils, lsb-release, zlib1g-dev
+Build-Conflicts: libelf-dev
+Homepage: https://www.gnu.org/software/binutils/
+Vcs-Browser: https://code.launchpad.net/~doko/binutils/pkg-2.28-debian
+Vcs-Bzr: http://bazaar.launchpad.net/~doko/binutils/pkg-2.28-debian
+XS-Testsuite: autopkgtest
+
+Package: binutils
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: gas, elf-binutils, modutils (<< 2.4.19-1), ${extraConflicts},
+ binutils-gold (<< 2.20.51.20100415),
+ binutils-multiarch (<< 2.27-8)
+Breaks: binutils-mingw-w64-i686 (<< 2.23.52.20130612-1+3),
+ binutils-mingw-w64-x86-64 (<< 2.23.52.20130612-1+3),
+ hardening-wrapper (<< 2.8+nmu3)
+Replaces: binutils-gold (<< 2.20.51.20100415),
+ binutils-mingw-w64-i686 (<< 2.23.52.20130612-1+3),
+ binutils-mingw-w64-x86-64 (<< 2.23.52.20130612-1+3)
+Provides: elf-binutils, ${gold:Provides}
+Suggests: binutils-doc (>= ${source:Version})
+Description: GNU assembler, linker and binary utilities
+ The programs in this package are used to assemble, link and manipulate
+ binary and object files. They may be used in conjunction with a compiler
+ and various libraries to build programs.
+
+Package: binutils-dev
+Architecture: any
+Priority: extra
+Depends: binutils (= ${binary:Version})
+Conflicts: libbfd-dev
+Provides: libbfd-dev
+Replaces: libbfd-dev, libc5-dev
+Description: GNU binary utilities (BFD development files)
+ This package includes header files and static libraries necessary to build
+ programs which use the GNU BFD library, which is part of binutils. Note
+ that building Debian packages which depend on the shared libbfd is Not
+ Allowed.
+
+Package: binutils-multiarch
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends}, binutils (= ${binary:Version})
+Description: Binary utilities that support multi-arch targets
+ The programs in this package are used to manipulate binary and object
+ files that may have been created on other architectures. This package
+ is primarily for multi-architecture developers and cross-compilers and
+ is not needed by normal users or developers. Note that a cross-assembling
+ version of gas is not included in this package, just the binary utilities.
+ .
+ NORMAL USERS SHOULD NOT INSTALL THIS PACKAGE. It's meant only for those
+ requiring support for reading info from binaries from other architectures.
+
+Package: binutils-multiarch-dev
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends},
+ binutils-dev (= ${binary:Version}), binutils-multiarch (= ${binary:Version})
+Replaces: binutils-multiarch (<< 2.24-5)
+Description: GNU binary utilities that support multi-arch targets (BFD development files)
+ This package includes header files, static and shared libraries necessary
+ to build programs which use the GNU BFD library for multi-arch targets,
+ which is part of binutils. Note that building Debian packages which depend
+ on the shared libbfd is Not Allowed.
+ .
+ NORMAL USERS SHOULD NOT INSTALL THIS PACKAGE. It's meant only for those
+ requiring support for reading info from binaries from other architectures.
+
+Package: binutils-hppa64-linux-gnu
+Architecture: amd64 i386 x32 hppa
+Depends: ${shlibs:Depends}, binutils (= ${binary:Version})
+Recommends: libc6-dev
+Provides: binutils-hppa64
+Suggests: binutils-doc (>= ${source:Version})
+Breaks: binutils-hppa64 (<< 2.25.1-2)
+Replaces: binutils-hppa64 (<< 2.25.1-2)
+Description: GNU assembler, linker and binary utilities targeted for hppa64-linux
+ The programs in this package are used to assemble, link and manipulate
+ binary and object files. They may be used in conjunction with a compiler
+ and various libraries to build programs.
+ .
+ This package is needed to build an 64-bit kernel for 64-bit hppa machines.
+
+Package: binutils-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Priority: optional
+Depends: dpkg (>= 1.15.4) | install-info
+Conflicts: binutils (<< 2.9.1.0.25-3)
+Suggests: binutils (= ${binary:Version})
+Description: Documentation for the GNU assembler, linker and binary utilities
+ This package consists of the documentation for the GNU assembler,
+ linker and binary utilities in info format.
+
+Package: binutils-source
+Architecture: all
+Multi-Arch: foreign
+Priority: optional
+Depends: texinfo, zlib1g-dev, make, python
+Description: GNU assembler, linker and binary utilities (source)
+ This package contains the sources and patches which are needed to
+ build binutils.
--- /dev/null
+This is the Debian GNU/Linux prepackaged version of the GNU assembler,
+linker, and binary utilities.
+
+This package was put together by me, James Troup <james@nocrew.org>,
+from sources, which I obtained from:
+
+ ftp://ftp.gnu.org/pub/gnu/binutils/
+
+and:
+
+ cvs://:pserver:anoncvs@sources.redhat.com:/cvs/src
+
+It was previously maintained by Christopher C. Chimelis <chris@debian.org>
+
+GNU Binutils is Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
+Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'
+and `/usr/share/common-licenses/LGPL'.
+
+The binutils manuals and associated documentation are also Copyright
+(C) Free Software Foundation, Inc. They are distributed under the GNU
+Free Documentation License Version 1.3 or any later version published
+by the Free Software Foundation, with no Invariant Sections, with no
+with no Front-Cover Texts, and with no Back-Cover Texts.
+On Debian GNU/Linux systems, the complete text of the GFDL can be found
+in `/usr/share/common-licenses/GFDL'.
--- /dev/null
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
+.TH DWP "1" "May 2017" "dwp (GNU Binutils for Debian) 2.28" "User Commands"
+.SH NAME
+dwp \- The DWARF packaging utility
+.SH SYNOPSIS
+.B dwp
+[\fI\,options\/\fR] [\fI\,file\/\fR...]
+.SH DESCRIPTION
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Print this help message
+.TP
+\fB\-e\fR EXE, \fB\-\-exec\fR EXE
+Get list of dwo files from EXE (defaults output to EXE.dwp)
+.TP
+\fB\-o\fR FILE, \fB\-\-output\fR FILE
+Set output dwp file name
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+Verbose output
+.TP
+\fB\-\-verify\-only\fR
+Verify output file against exec file
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Print version number
+.SH "REPORTING BUGS"
+Report bugs to <http://www.sourceware.org/bugzilla/>
+.SH COPYRIGHT
+Copyright \(co 2017 Free Software Foundation, Inc.
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License version 3 or (at your option) any later version.
+This program has absolutely no warranty.
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+
+@settitle BFD/ld internal documentation
+
+@c Create a separate index for command line options.
+@defcodeindex op
+@c Merge the standard indexes into a single one.
+@syncodeindex fn cp
+@syncodeindex vr cp
+@syncodeindex ky cp
+@syncodeindex pg cp
+@syncodeindex tp cp
+
+@paragraphindent 1
+
+@c %**end of header
+
+@copying
+The current documentation is licensed under the same terms as the Debian packaging.
+@end copying
+@ifnottex
+@dircategory Programming
+@direntry
+* @name@: (@name@). BFD/ld internal documentation (@name@).
+@end direntry
+@sp 1
+@end ifnottex
+
+@summarycontents
+@contents
+@page
+
+@node Top
+@top Introduction
+@cindex introduction
+The official BFD, BFD internals and ld internals documentation is released
+under the terms of the GNU Free Documentation License with cover texts.
+This has been considered non free by the Debian Project. Thus you will find
+it in the non-free section of the Debian archive.
+@bye
--- /dev/null
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
+.TH GOLD "1" "May 2017" "gold (GNU Binutils for Debian 2.28) 1.14" "User Commands"
+.SH NAME
+gold \- The GNU ELF linker
+.SH SYNOPSIS
+.B ld.gold
+[\fI\,options\/\fR] \fI\,file\/\fR...
+.SH OPTIONS
+.TP
+\fB\-\-help\fR
+Report usage information
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Report version information
+.TP
+\fB\-V\fR
+Report version and target information
+.TP
+\fB\-\-add\-needed\fR
+Not supported
+.TP
+\fB\-\-no\-add\-needed\fR
+Do not copy DT_NEEDED tags from shared libraries (default)
+.HP
+\fB\-\-allow\-multiple\-definition\fR Allow multiple definitions of symbols
+.TP
+\fB\-\-no\-allow\-multiple\-definition\fR
+Do not allow multiple definitions (default)
+.TP
+\fB\-\-allow\-shlib\-undefined\fR
+Allow unresolved references in shared libraries
+.TP
+\fB\-\-no\-allow\-shlib\-undefined\fR
+Do not allow unresolved references in shared libraries (default)
+.TP
+\fB\-\-apply\-dynamic\-relocs\fR
+Apply link\-time values for dynamic relocations (default)
+.TP
+\fB\-\-no\-apply\-dynamic\-relocs\fR
+(aarch64 only) Do not apply link\-time values for dynamic relocations
+.TP
+\fB\-\-as\-needed\fR
+Use DT_NEEDED only for shared libraries that are used
+.TP
+\fB\-\-no\-as\-needed\fR
+Use DT_NEEDED for all shared libraries (default)
+.TP
+\fB\-assert\fR [ignored]
+Ignored
+.TP
+\fB\-b\fR [elf,binary], \fB\-\-format\fR [elf,binary]
+Set input format
+.TP
+\fB\-\-be8\fR
+Output BE8 format image
+.TP
+\fB\-\-build\-id\fR [=STYLE]
+Generate build ID note
+.TP
+\fB\-\-build\-id\-chunk\-size\-for\-treehash\fR SIZE
+Chunk size for '\-\-build\-id=tree'
+.TP
+\fB\-\-build\-id\-min\-file\-size\-for\-treehash\fR SIZE
+Minimum output file size for '\-\-build\-id=tree' to work differently than '\-\-build\-id=sha1'
+.HP
+\fB\-Bdynamic\fR \fB\-l\fR searches for shared libraries (default)
+.HP
+\fB\-Bstatic\fR \fB\-l\fR does not search for shared libraries
+.TP
+\fB\-dy\fR
+alias for \fB\-Bdynamic\fR (default)
+.TP
+\fB\-dn\fR
+alias for \fB\-Bstatic\fR
+.TP
+\fB\-Bgroup\fR
+Use group name lookup rules for shared library
+.TP
+\fB\-Bshareable\fR
+Generate shared library (alias for \fB\-G\fR/\-shared)
+.TP
+\fB\-Bsymbolic\fR
+Bind defined symbols locally
+.TP
+\fB\-Bsymbolic\-functions\fR
+Bind defined function symbols locally
+.TP
+\fB\-\-check\-sections\fR
+Check segment addresses for overlaps (default)
+.TP
+\fB\-\-no\-check\-sections\fR
+Do not check segment addresses for overlaps
+.TP
+\fB\-\-compress\-debug\-sections\fR [none,zlib,zlib\-gnu,zlib\-gabi]
+Compress .debug_* sections in the output file
+.TP
+\fB\-\-copy\-dt\-needed\-entries\fR
+Not supported
+.HP
+\fB\-\-no\-copy\-dt\-needed\-entries\fR Do not copy DT_NEEDED tags from shared libraries (default)
+.TP
+\fB\-\-cref\fR
+Output cross reference table
+.TP
+\fB\-\-no\-cref\fR
+Do not output cross reference table (default)
+.TP
+\fB\-\-ctors\-in\-init\-array\fR
+Use DT_INIT_ARRAY for all constructors (default)
+.TP
+\fB\-\-no\-ctors\-in\-init\-array\fR
+Handle constructors as directed by compiler
+.TP
+\fB\-d\fR, \fB\-\-define\-common\fR
+Define common symbols
+.TP
+\fB\-\-no\-define\-common\fR
+Do not define common symbols in relocatable output (default)
+.TP
+\fB\-dc\fR
+Alias for \fB\-d\fR
+.TP
+\fB\-dp\fR
+Alias for \fB\-d\fR
+.TP
+\fB\-\-debug\fR [all,files,script,task][,...]
+Turn on debugging
+.TP
+\fB\-\-defsym\fR SYMBOL=EXPRESSION
+Define a symbol
+.TP
+\fB\-\-demangle\fR [=STYLE]
+Demangle C++ symbols in log messages
+.TP
+\fB\-\-no\-demangle\fR
+Do not demangle C++ symbols in log messages
+.TP
+\fB\-\-detect\-odr\-violations\fR
+Look for violations of the C++ One Definition Rule
+.TP
+\fB\-\-no\-detect\-odr\-violations\fR
+Do not look for violations of the C++ One Definition Rule (default)
+.TP
+\fB\-\-dynamic\-list\-data\fR
+Add data symbols to dynamic symbols
+.TP
+\fB\-\-dynamic\-list\-cpp\-new\fR
+Add C++ operator new/delete to dynamic symbols
+.HP
+\fB\-\-dynamic\-list\-cpp\-typeinfo\fR Add C++ typeinfo to dynamic symbols
+.TP
+\fB\-\-dynamic\-list\fR FILE
+Read a list of dynamic symbols
+.HP
+\fB\-e\fR ADDRESS, \fB\-\-entry\fR ADDRESS Set program start address
+.TP
+\fB\-\-eh\-frame\-hdr\fR
+Create exception frame header
+.TP
+\fB\-\-no\-eh\-frame\-hdr\fR
+Do not create exception frame header (default)
+.TP
+\fB\-\-enable\-new\-dtags\fR
+Enable use of DT_RUNPATH (default)
+.TP
+\fB\-\-disable\-new\-dtags\fR
+Disable use of DT_RUNPATH
+.TP
+\fB\-\-no\-enum\-size\-warning\fR
+(ARM only) Do not warn about objects with incompatible enum sizes
+.TP
+\fB\-\-exclude\-libs\fR lib,lib ...
+Exclude libraries from automatic export
+.TP
+\fB\-E\fR, \fB\-\-export\-dynamic\fR
+Export all dynamic symbols
+.TP
+\fB\-\-no\-export\-dynamic\fR
+Do not export all dynamic symbols (default)
+.TP
+\fB\-\-export\-dynamic\-symbol\fR SYMBOL
+Export SYMBOL to dynamic symbol table
+.TP
+\fB\-EB\fR
+Link big\-endian objects.
+.TP
+\fB\-EL\fR
+Link little\-endian objects.
+.HP
+\fB\-f\fR SHLIB, \fB\-\-auxiliary\fR SHLIB Auxiliary filter for shared object symbol table
+.TP
+\fB\-F\fR SHLIB, \fB\-\-filter\fR SHLIB
+Filter for shared object symbol table
+.TP
+\fB\-\-fatal\-warnings\fR
+Treat warnings as errors
+.TP
+\fB\-\-no\-fatal\-warnings\fR
+Do not treat warnings as errors (default)
+.TP
+\fB\-fini\fR SYMBOL
+Call SYMBOL at unload\-time
+.TP
+\fB\-\-fix\-arm1176\fR
+(ARM only) Fix binaries for ARM1176 erratum (default)
+.TP
+\fB\-\-no\-fix\-arm1176\fR
+(ARM only) Do not fix binaries for ARM1176 erratum
+.TP
+\fB\-\-fix\-cortex\-a8\fR
+(ARM only) Fix binaries for Cortex\-A8 erratum
+.TP
+\fB\-\-no\-fix\-cortex\-a8\fR
+(ARM only) Do not fix binaries for Cortex\-A8 erratum (default)
+.TP
+\fB\-\-fix\-cortex\-a53\-843419\fR
+(AArch64 only) Fix Cortex\-A53 erratum 843419
+.TP
+\fB\-\-no\-fix\-cortex\-a53\-843419\fR
+(AArch64 only) Do not fix Cortex\-A53 erratum 843419 (default)
+.TP
+\fB\-\-fix\-cortex\-a53\-835769\fR
+(AArch64 only) Fix Cortex\-A53 erratum 835769
+.TP
+\fB\-\-no\-fix\-cortex\-a53\-835769\fR
+(AArch64 only) Do not fix Cortex\-A53 erratum 835769 (default)
+.TP
+\fB\-\-fix\-v4bx\fR
+(ARM only) Rewrite BX rn as MOV pc, rn for ARMv4
+.TP
+\fB\-\-fix\-v4bx\-interworking\fR
+(ARM only) Rewrite BX rn branch to ARMv4 interworking veneer
+.TP
+\fB\-fuse\-ld\fR
+Ignored for GCC linker option compatibility
+.TP
+\fB\-g\fR
+Ignored
+.TP
+\fB\-\-gc\-sections\fR
+Remove unused sections
+.TP
+\fB\-\-no\-gc\-sections\fR
+Don't remove unused sections (default)
+.TP
+\fB\-\-gdb\-index\fR
+Generate .gdb_index section
+.TP
+\fB\-\-no\-gdb\-index\fR
+Do not generate .gdb_index section (default)
+.TP
+\fB\-\-gnu\-unique\fR
+Enable STB_GNU_UNIQUE symbol binding (default)
+.TP
+\fB\-\-no\-gnu\-unique\fR
+Disable STB_GNU_UNIQUE symbol binding
+.TP
+\fB\-G\fR, \fB\-shared\fR
+Generate shared library
+.TP
+\fB\-h\fR FILENAME, \fB\-soname\fR FILENAME
+Set shared library name
+.TP
+\fB\-\-hash\-bucket\-empty\-fraction\fR FRACTION
+Min fraction of empty buckets in dynamic hash
+.TP
+\fB\-\-hash\-style\fR [sysv,gnu,both]
+Dynamic hash style
+.TP
+\fB\-i\fR
+Alias for \fB\-r\fR
+.TP
+\fB\-\-icf\fR [none,all,safe]
+Identical Code Folding. '\-\-icf=safe' Folds ctors, dtors and functions whose pointers are definitely not taken
+.TP
+\fB\-\-icf\-iterations\fR COUNT
+Number of iterations of ICF (default 2)
+.TP
+\fB\-\-incremental\fR
+Do an incremental link if possible; otherwise, do a full link and prepare output for incremental linking
+.TP
+\fB\-\-no\-incremental\fR
+Do a full link (default)
+.TP
+\fB\-\-incremental\-full\fR
+Do a full link and prepare output for incremental linking
+.TP
+\fB\-\-incremental\-update\fR
+Do an incremental link; exit if not possible
+.TP
+\fB\-\-incremental\-base\fR FILE
+Set base file for incremental linking (default is output file)
+.TP
+\fB\-\-incremental\-changed\fR
+Assume files changed
+.TP
+\fB\-\-incremental\-unchanged\fR
+Assume files didn't change
+.TP
+\fB\-\-incremental\-unknown\fR
+Use timestamps to check files (default)
+.TP
+\fB\-\-incremental\-startup\-unchanged\fR
+Assume startup files unchanged (files preceding this option)
+.HP
+\fB\-\-incremental\-patch\fR PERCENT Amount of extra space to allocate for patches (default 10)
+.TP
+\fB\-init\fR SYMBOL
+Call SYMBOL at load\-time
+.TP
+\fB\-I\fR PROGRAM, \fB\-\-dynamic\-linker\fR PROGRAM
+Set dynamic linker path
+.TP
+\fB\-\-just\-symbols\fR FILE
+Read only symbol values from FILE
+.TP
+\fB\-\-keep\-files\-mapped\fR
+Keep files mapped across passes (default)
+.TP
+\fB\-\-no\-keep\-files\-mapped\fR
+Release mapped files after each pass
+.TP
+\fB\-\-keep\-unique\fR SYMBOL
+Do not fold this symbol during ICF
+.TP
+\fB\-l\fR LIBNAME, \fB\-\-library\fR LIBNAME
+Search for library LIBNAME
+.TP
+\fB\-\-ld\-generated\-unwind\-info\fR
+Generate unwind information for PLT (default)
+.TP
+\fB\-\-no\-ld\-generated\-unwind\-info\fR
+Do not generate unwind information for PLT
+.TP
+\fB\-L\fR DIR, \fB\-\-library\-path\fR DIR
+Add directory to search path
+.TP
+\fB\-\-long\-plt\fR
+(ARM only) Generate long PLT entries
+.TP
+\fB\-\-no\-long\-plt\fR
+(ARM only) Do not generate long PLT entries (default)
+.TP
+\fB\-m\fR EMULATION
+Set GNU linker emulation; obsolete
+.TP
+\fB\-\-map\-whole\-files\fR
+Map whole files to memory (default)
+.TP
+\fB\-\-no\-map\-whole\-files\fR
+Map relevant file parts to memory
+.TP
+\fB\-\-merge\-exidx\-entries\fR
+(ARM only) Merge exidx entries in debuginfo (default)
+.TP
+\fB\-\-no\-merge\-exidx\-entries\fR
+(ARM only) Do not merge exidx entries in debuginfo
+.TP
+\fB\-\-mmap\-output\-file\fR
+Map the output file for writing (default)
+.TP
+\fB\-\-no\-mmap\-output\-file\fR
+Do not map the output file for writing
+.TP
+\fB\-M\fR, \fB\-\-print\-map\fR
+Write map file on standard output
+.TP
+\fB\-Map\fR MAPFILENAME
+Write map file
+.TP
+\fB\-n\fR, \fB\-\-nmagic\fR
+Do not page align data
+.TP
+\fB\-N\fR, \fB\-\-omagic\fR
+Do not page align data, do not make text readonly
+.TP
+\fB\-\-no\-omagic\fR
+Page align data, make text readonly (default)
+.TP
+\fB\-\-no\-keep\-memory\fR
+Use less memory and more disk I/O (included only for compatibility with GNU ld)
+.TP
+\fB\-\-no\-undefined\fR
+Report undefined symbols (even with \fB\-\-shared\fR)
+.TP
+\fB\-\-noinhibit\-exec\fR
+Create an output file even if errors occur
+.TP
+\fB\-nostdlib\fR
+Only search directories specified on the command line
+.TP
+\fB\-o\fR FILE, \fB\-\-output\fR FILE
+Set output file name
+.TP
+\fB\-\-oformat\fR [binary]
+Set output format
+.TP
+\fB\-O\fR LEVEL, \fB\-optimize\fR LEVEL
+Optimize output file size
+.TP
+\fB\-\-orphan\-handling\fR [place,discard,warn,error]
+Orphan section handling
+.TP
+\fB\-p\fR
+Ignored for ARM compatibility
+.TP
+\fB\-pie\fR
+Create a position independent executable
+.TP
+\fB\-no\-pie\fR
+Do not create a position independent executable (default)
+.TP
+\fB\-\-pic\-executable\fR
+Create a position independent executable
+.TP
+\fB\-\-no\-pic\-executable\fR
+Do not create a position independent executable (default)
+.TP
+\fB\-\-pic\-veneer\fR
+Force PIC sequences for ARM/Thumb interworking veneers
+.TP
+\fB\-no\-pipeline\-knowledge\fR
+(ARM only) Ignore for backward compatibility (default)
+.TP
+\fB\-\-plt\-align\fR [=P2ALIGN]
+(PowerPC64 only) Align PLT call stubs to fit cache lines
+.TP
+\fB\-\-plt\-static\-chain\fR
+(PowerPC64 only) PLT call stubs should load r11
+.TP
+\fB\-\-no\-plt\-static\-chain\fR
+(PowerPC64 only) PLT call stubs should not load r11 (default)
+.TP
+\fB\-\-plt\-thread\-safe\fR
+(PowerPC64 only) PLT call stubs with load\-load barrier
+.TP
+\fB\-\-no\-plt\-thread\-safe\fR
+(PowerPC64 only) PLT call stubs without barrier (default)
+.TP
+\fB\-\-plugin\fR PLUGIN
+Load a plugin library
+.TP
+\fB\-\-plugin\-opt\fR OPTION
+Pass an option to the plugin
+.TP
+\fB\-\-posix\-fallocate\fR
+Use posix_fallocate to reserve space in the output file (default)
+.TP
+\fB\-\-no\-posix\-fallocate\fR
+Use fallocate or ftruncate to reserve space
+.TP
+\fB\-\-preread\-archive\-symbols\fR
+Preread archive symbols when multi\-threaded
+.TP
+\fB\-\-print\-gc\-sections\fR
+List removed unused sections on stderr
+.TP
+\fB\-\-no\-print\-gc\-sections\fR
+Do not list removed unused sections (default)
+.TP
+\fB\-\-print\-icf\-sections\fR
+List folded identical sections on stderr
+.TP
+\fB\-\-no\-print\-icf\-sections\fR
+Do not list folded identical sections (default)
+.TP
+\fB\-\-print\-output\-format\fR
+Print default output format
+.TP
+\fB\-\-print\-symbol\-counts\fR FILENAME
+Print symbols defined and used for each input
+.TP
+\fB\-\-push\-state\fR
+Save the state of flags related to input files
+.TP
+\fB\-\-pop\-state\fR
+Restore the state of flags related to input files
+.TP
+\fB\-q\fR, \fB\-\-emit\-relocs\fR
+Generate relocations in output
+.TP
+\fB\-Qy\fR
+Ignored for SVR4 compatibility
+.TP
+\fB\-r\fR, \fB\-relocatable\fR
+Generate relocatable output
+.TP
+\fB\-\-relax\fR
+Relax branches on certain targets
+.TP
+\fB\-\-retain\-symbols\-file\fR FILE
+keep only symbols listed in this file
+.TP
+\fB\-\-rosegment\fR
+Put read\-only non\-executable sections in their own segment
+.TP
+\fB\-\-rosegment\-gap\fR OFFSET
+Set offset between executable and read\-only segments
+.TP
+\fB\-R\fR DIR
+Add DIR to runtime search path
+.TP
+\fB\-rpath\fR DIR
+Add DIR to runtime search path
+.TP
+\fB\-\-rpath\-link\fR DIR
+Add DIR to link time shared library search path
+.TP
+\fB\-s\fR, \fB\-\-strip\-all\fR
+Strip all symbols
+.TP
+\fB\-S\fR, \fB\-\-strip\-debug\fR
+Strip debugging information
+.TP
+\fB\-\-strip\-debug\-non\-line\fR
+Emit only debug line number information
+.TP
+\fB\-\-strip\-debug\-gdb\fR
+Strip debug symbols that are unused by gdb (at least versions <= 7.4)
+.TP
+\fB\-\-strip\-lto\-sections\fR
+Strip LTO intermediate code sections (default)
+.TP
+\fB\-\-section\-ordering\-file\fR FILENAME
+Layout sections in the order specified
+.TP
+\fB\-\-section\-start\fR SECTION=ADDRESS
+Set address of section
+.TP
+\fB\-\-secure\-plt\fR
+(PowerPC only) Use new\-style PLT (default)
+.TP
+\fB\-\-sort\-common\fR [={ascending,descending}]
+Sort common symbols by alignment
+.TP
+\fB\-\-sort\-section\fR [none,name]
+Sort sections by name. '\-\-no\-text\-reorder' will override '\-\-sort\-section=name' for .text
+.TP
+\fB\-\-spare\-dynamic\-tags\fR COUNT
+Dynamic tag slots to reserve (default 5)
+.TP
+\fB\-\-stub\-group\-size\fR SIZE
+(ARM, PowerPC only) The maximum distance from instructions in a group of sections to their stubs. Negative values mean stubs are always after the group. 1 means use default size
+.TP
+\fB\-\-stub\-group\-multi\fR
+(PowerPC only) Allow a group of stubs to serve multiple output sections
+.TP
+\fB\-\-split\-stack\-adjust\-size\fR SIZE
+Stack size when \fB\-fsplit\-stack\fR function calls non\-split
+.TP
+\fB\-static\fR
+Do not link against shared libraries
+.TP
+\fB\-\-start\-lib\fR
+Start a library
+.TP
+\fB\-\-end\-lib\fR
+End a library
+.TP
+\fB\-\-stats\fR
+Print resource usage statistics
+.TP
+\fB\-\-sysroot\fR DIR
+Set target system root directory
+.TP
+\fB\-t\fR, \fB\-\-trace\fR
+Print the name of each input file
+.TP
+\fB\-\-target1\-abs\fR
+(ARM only) Force R_ARM_TARGET1 type to R_ARM_ABS32
+.TP
+\fB\-\-target1\-rel\fR
+(ARM only) Force R_ARM_TARGET1 type to R_ARM_REL32
+.TP
+\fB\-\-target2\fR [rel, abs, got\-rel
+(ARM only) Set R_ARM_TARGET2 relocation type
+.TP
+\fB\-\-text\-reorder\fR
+Enable text section reordering for GCC section names (default)
+.TP
+\fB\-\-no\-text\-reorder\fR
+Disable text section reordering for GCC section names
+.TP
+\fB\-\-threads\fR
+Run the linker multi\-threaded
+.TP
+\fB\-\-no\-threads\fR
+Do not run the linker multi\-threaded (default)
+.TP
+\fB\-\-thread\-count\fR COUNT
+Number of threads to use
+.TP
+\fB\-\-thread\-count\-initial\fR COUNT
+Number of threads to use in initial pass
+.HP
+\fB\-\-thread\-count\-middle\fR COUNT Number of threads to use in middle pass
+.TP
+\fB\-\-thread\-count\-final\fR COUNT
+Number of threads to use in final pass
+.TP
+\fB\-\-toc\-optimize\fR
+(PowerPC64 only) Optimize TOC code sequences (default)
+.TP
+\fB\-\-no\-toc\-optimize\fR
+(PowerPC64 only) Don't optimize TOC code sequences
+.TP
+\fB\-\-toc\-sort\fR
+(PowerPC64 only) Sort TOC and GOT sections (default)
+.TP
+\fB\-\-no\-toc\-sort\fR
+(PowerPC64 only) Don't sort TOC and GOT sections
+.TP
+\fB\-T\fR FILE, \fB\-\-script\fR FILE
+Read linker script
+.TP
+\fB\-Tbss\fR ADDRESS
+Set the address of the bss segment
+.TP
+\fB\-Tdata\fR ADDRESS
+Set the address of the data segment
+.TP
+\fB\-Ttext\fR ADDRESS
+Set the address of the text segment
+.TP
+\fB\-Ttext\-segment\fR ADDRESS
+Set the address of the text segment
+.TP
+\fB\-Trodata\-segment\fR ADDRESS
+Set the address of the rodata segment
+.TP
+\fB\-u\fR SYMBOL, \fB\-\-undefined\fR SYMBOL
+Create undefined reference to SYMBOL
+.TP
+\fB\-\-unresolved\-symbols\fR ignore\-all,report\-all,ignore\-in\-object\-files,ignore\-in\-shared\-libs
+How to handle unresolved symbols
+.TP
+\fB\-\-verbose\fR
+Alias for \fB\-\-debug\fR=\fI\,files\/\fR
+.TP
+\fB\-\-version\-script\fR FILE
+Read version script
+.TP
+\fB\-\-warn\-common\fR
+Warn about duplicate common symbols
+.TP
+\fB\-\-no\-warn\-common\fR
+Do not warn about duplicate common symbols (default)
+.TP
+\fB\-\-warn\-constructors\fR
+Ignored
+.TP
+\fB\-\-no\-warn\-constructors\fR
+Ignored
+.TP
+\fB\-\-warn\-execstack\fR
+Warn if the stack is executable
+.TP
+\fB\-\-no\-warn\-execstack\fR
+Do not warn if the stack is executable (default)
+.TP
+\fB\-\-no\-warn\-mismatch\fR
+Don't warn about mismatched input files
+.TP
+\fB\-\-warn\-multiple\-gp\fR
+Ignored
+.TP
+\fB\-\-warn\-search\-mismatch\fR
+Warn when skipping an incompatible library (default)
+.TP
+\fB\-\-no\-warn\-search\-mismatch\fR
+Don't warn when skipping an incompatible library
+.TP
+\fB\-\-warn\-shared\-textrel\fR
+Warn if text segment is not shareable
+.TP
+\fB\-\-no\-warn\-shared\-textrel\fR
+Do not warn if text segment is not shareable (default)
+.TP
+\fB\-\-warn\-unresolved\-symbols\fR
+Report unresolved symbols as warnings
+.TP
+\fB\-\-error\-unresolved\-symbols\fR
+Report unresolved symbols as errors (default)
+.TP
+\fB\-z\fR buildd
+Dummy z option
+.TP
+\fB\-\-no\-wchar\-size\-warning\fR
+(ARM only) Do not warn about objects with incompatible wchar_t sizes
+.TP
+\fB\-\-weak\-unresolved\-symbols\fR
+Convert unresolved symbols to weak references
+.TP
+\fB\-\-whole\-archive\fR
+Include all archive contents
+.TP
+\fB\-\-no\-whole\-archive\fR
+Include only needed archive contents (default)
+.TP
+\fB\-\-wrap\fR SYMBOL
+Use wrapper functions for SYMBOL
+.TP
+\fB\-x\fR, \fB\-\-discard\-all\fR
+Delete all local symbols
+.TP
+\fB\-X\fR, \fB\-\-discard\-locals\fR
+Delete all temporary local symbols
+.TP
+\fB\-\-discard\-none\fR
+Keep all local symbols
+.TP
+\fB\-y\fR SYMBOL, \fB\-\-trace\-symbol\fR SYMBOL
+Trace references to symbol
+.TP
+\fB\-\-undefined\-version\fR
+Allow unused version in script (default)
+.TP
+\fB\-\-no\-undefined\-version\fR
+Do not allow unused version in script
+.TP
+\fB\-Y\fR PATH
+Default search path for Solaris compatibility
+.TP
+\-(, \fB\-\-start\-group\fR
+Start a library search group
+.TP
+\-), \fB\-\-end\-group\fR
+End a library search group
+.TP
+\fB\-z\fR bndplt
+(x86\-64 only) Generate a BND PLT for Intel MPX
+.TP
+\fB\-z\fR nobndplt
+Generate a regular PLT (default)
+.TP
+\fB\-z\fR combreloc
+Sort dynamic relocs (default)
+.TP
+\fB\-z\fR nocombreloc
+Do not sort dynamic relocs
+.TP
+\fB\-z\fR common\-page\-size=SIZE
+Set common page size to SIZE
+.TP
+\fB\-z\fR defs
+Report undefined symbols (even with \fB\-\-shared\fR)
+.TP
+\fB\-z\fR execstack
+Mark output as requiring executable stack
+.TP
+\fB\-z\fR global
+Make symbols in DSO available for subsequently loaded objects
+.TP
+\fB\-z\fR initfirst
+Mark DSO to be initialized first at runtime
+.TP
+\fB\-z\fR interpose
+Mark object to interpose all DSOs but executable
+.TP
+\fB\-z\fR lazy
+Mark object for lazy runtime binding (default)
+.TP
+\fB\-z\fR loadfltr
+Mark object requiring immediate process
+.TP
+\fB\-z\fR max\-page\-size=SIZE
+Set maximum page size to SIZE
+.TP
+\fB\-z\fR muldefs
+Allow multiple definitions of symbols
+.TP
+\fB\-z\fR nocopyreloc
+Do not create copy relocs
+.TP
+\fB\-z\fR nodefaultlib
+Mark object not to use default search paths
+.TP
+\fB\-z\fR nodelete
+Mark DSO non\-deletable at runtime
+.TP
+\fB\-z\fR nodlopen
+Mark DSO not available to dlopen
+.TP
+\fB\-z\fR nodump
+Mark DSO not available to dldump
+.TP
+\fB\-z\fR noexecstack
+Mark output as not requiring executable stack
+.TP
+\fB\-z\fR now
+Mark object for immediate function binding
+.TP
+\fB\-z\fR origin
+Mark DSO to indicate that needs immediate $ORIGIN processing at runtime
+.TP
+\fB\-z\fR relro
+Where possible mark variables read\-only after relocation (default)
+.TP
+\fB\-z\fR norelro
+Don't mark variables read\-only after relocation
+.TP
+\fB\-z\fR stack\-size=SIZE
+Set PT_GNU_STACK segment p_memsz to SIZE
+.TP
+\fB\-z\fR text
+Do not permit relocations in read\-only segments
+.TP
+\fB\-z\fR notext
+Permit relocations in read\-only segments (default)
+.TP
+\fB\-z\fR textoff
+Permit relocations in read\-only segments (default)
+.PP
+ld.gold: supported targets: elf32\-iamcu elf32\-i386 elf32\-i386\-freebsd elf32\-i386\-nacl elf32\-x86\-64 elf32\-x86\-64\-freebsd elf32\-x86\-64\-nacl elf64\-x86\-64 elf64\-x86\-64\-freebsd elf64\-x86\-64\-nacl
+ld.gold: supported emulations: elf_iamcu elf_i386 elf_i386_nacl elf32_x86_64 elf32_x86_64_nacl elf_x86_64 elf_x86_64_nacl
+.SH "REPORTING BUGS"
+Report bugs to <http://www.sourceware.org/bugzilla/>
+.SH COPYRIGHT
+Copyright \(co 2017 Free Software Foundation, Inc.
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License version 3 or (at your option) a later version.
+This program has absolutely no warranty.
--- /dev/null
+Author:
+Description: Description: correct where ld scripts are installed
+Author: Chris Chimelis <chris@debian.org>
+Upstream status: N/A
+Date: ??
+Index: b/ld/Makefile.am
+===================================================================
+--- a/ld/Makefile.am
++++ b/ld/Makefile.am
+@@ -57,7 +57,7 @@ endif
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+Index: b/ld/Makefile.in
+===================================================================
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -452,7 +452,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
--- /dev/null
+Author: Chris Chimelis <chris@debian.org>
+Description: Add more documentation about profiling and -fprofile-arcs.
+Index: b/gprof/gprof.texi
+===================================================================
+--- a/gprof/gprof.texi
++++ b/gprof/gprof.texi
+@@ -145,6 +145,10 @@
+ If more than one profile file is specified, the @code{gprof}
+ output shows the sum of the profile information in the given profile files.
+
++If you use gcc 2.95.x or 3.0 to compile your binaries, you may need
++to add the @samp{-fprofile-arcs} to the compile command line in order
++for the call graphs to be properly stored in gmon.out.
++
+ @code{Gprof} calculates the amount of time spent in each routine.
+ Next, these times are propagated along the edges of the call graph.
+ Cycles are discovered, and calls into a cycle are made to share the time
+@@ -276,6 +280,11 @@
+ options. The same option, @samp{-pg}, alters either compilation or linking
+ to do what is necessary for profiling. Here are examples:
+
++If you use gcc 2.95.x or 3.0.x, you may need to add the
++@samp{-fprofile-arcs} option to the compile line along with @samp{-pg}
++in order to allow the call-graphs to be properly included in the gmon.out
++file.
++
+ @example
+ cc -g -c myprog.c utils.c -pg
+ cc -o myprog myprog.o utils.o -pg
--- /dev/null
+Author: Chris Chimelis <chris@debian.org>
+Description: Don't mention monitor(3) which doesn't exist in Debian. (#160654)
+Index: b/gprof/gprof.texi
+===================================================================
+--- a/gprof/gprof.texi
++++ b/gprof/gprof.texi
+@@ -193,7 +193,7 @@
+ @c man end
+
+ @c man begin SEEALSO
+-monitor(3), profil(2), cc(1), prof(1), and the Info entry for @file{gprof}.
++cc(1), prof(1), and the Info entry for @file{gprof}.
+
+ ``An Execution Profiler for Modular Programs'',
+ by S. Graham, P. Kessler, M. McKusick;
--- /dev/null
+Author: David Kimdon <dwhedon@gordian.com>
+Description: Specify which filename is causing an error if the filename is a
+directory. (#45832)
+Index: b/bfd/opncls.c
+===================================================================
+--- a/bfd/opncls.c
++++ b/bfd/opncls.c
+@@ -196,6 +196,13 @@ bfd_fopen (const char *filename, const c
+ {
+ bfd *nbfd;
+ const bfd_target *target_vec;
++ struct stat s;
++
++ if (stat (filename, &s) == 0)
++ if (S_ISDIR(s.st_mode)) {
++ bfd_set_error (bfd_error_file_not_recognized);
++ return NULL;
++ }
+
+ nbfd = _bfd_new_bfd ();
+ if (nbfd == NULL)
--- /dev/null
+Author: Chris Chimelis <chris@debian.org>
+Description: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
+cases where -rpath isn't specified. (#151024)
+Index: b/ld/emultempl/elf32.em
+===================================================================
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -1411,6 +1411,8 @@ fragment <<EOF
+ && command_line.rpath == NULL)
+ {
+ lib_path = (const char *) getenv ("LD_RUN_PATH");
++ if ((lib_path) && (strlen (lib_path) == 0))
++ lib_path = NULL;
+ if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
+ force))
+ break;
+@@ -1692,6 +1694,8 @@ gld${EMULATION_NAME}_before_allocation (
+ rpath = command_line.rpath;
+ if (rpath == NULL)
+ rpath = (const char *) getenv ("LD_RUN_PATH");
++ if ((rpath) && (strlen (rpath) == 0))
++ rpath = NULL;
+
+ for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
--- /dev/null
+Author: Matthias Klose <doko@ubuntu.com>
+Description: Explicitely use bash for the ld testsuite.
+Index: b/ld/testsuite/config/default.exp
+===================================================================
+--- a/ld/testsuite/config/default.exp
++++ b/ld/testsuite/config/default.exp
+@@ -124,10 +124,10 @@ proc get_link_files {varname} {
+ #makefile rules, with embedded shell variable expansions.
+ #make wants $$shell_var, we want $shell_var ...
+ set cmd "host='$target_triplet' && . $srcdir/../configure.host && sed -e 's,\\\$\\\$,\$,g' <<EOF\n\$$varname\nEOF"
+- set status [catch "exec sh -c [list $cmd]" result]
++ set status [catch "exec bash -c [list $cmd]" result]
+ if $status { error "Error getting native link files: $result" }
+ set cmd "CC='$CC' && eval echo \"$result\""
+- set status [catch "exec sh -c [list $cmd]" result]
++ set status [catch "exec bash -c [list $cmd]" result]
+ if $status { error "Error getting native link files: $result" }
+ set $varname $result
+ send_log "$varname = $result\n"
+@@ -137,7 +137,7 @@ proc get_link_files {varname} {
+ proc get_target_emul {} {
+ global target_triplet
+ global srcdir
+- set status [catch "exec sh -c \"targ='$target_triplet' && . $srcdir/../configure.tgt && echo \\\$targ_emul\"" result]
++ set status [catch "exec bash -c \"targ='$target_triplet' && . $srcdir/../configure.tgt && echo \\\$targ_emul\"" result]
+ if $status { error "Error getting emulation name: $result" }
+ return $result
+ }
--- /dev/null
+# DP: Default to --hash-style=both in ld.bfd and ld.gold.
+
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -287,6 +288,14 @@
+ emulation = get_emulation (argc, argv);
+ ldemul_choose_mode (emulation);
+ default_target = ldemul_choose_target (argc, argv);
++
++ /* Default to --hash-style=gnu */
++ if (strcmp (default_target, "elf32-tradbigmips") != 0
++ && strcmp (default_target, "elf32-tradlittlemips") != 0)
++ {
++ link_info.emit_gnu_hash = TRUE;
++ }
++
+ config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
+ config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
+ lang_init ();
+--- a/gold/options.h
++++ b/gold/options.h
+@@ -794,7 +794,7 @@
+ N_("Min fraction of empty buckets in dynamic hash"),
+ N_("FRACTION"));
+
+- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv",
++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "both",
+ N_("Dynamic hash style"), N_("[sysv,gnu,both]"),
+ {"sysv", "gnu", "both"});
+
--- /dev/null
+# DP: Default to --hash-gnu=both in ld.bfd and ld.gold.
+
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -287,6 +288,15 @@
+ emulation = get_emulation (argc, argv);
+ ldemul_choose_mode (emulation);
+ default_target = ldemul_choose_target (argc, argv);
++
++ /* Default to --hash-style=gnu */
++ if (strcmp (default_target, "elf32-tradbigmips") != 0
++ && strcmp (default_target, "elf32-tradlittlemips") != 0)
++ {
++ link_info.emit_gnu_hash = TRUE;
++ link_info.emit_hash = FALSE;
++ }
++
+ config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
+ config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
+ lang_init ();
+--- a/gold/options.h
++++ b/gold/options.h
+@@ -794,7 +794,7 @@
+ N_("Min fraction of empty buckets in dynamic hash"),
+ N_("FRACTION"));
+
+- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv",
++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "gnu",
+ N_("Dynamic hash style"), N_("[sysv,gnu,both]"),
+ {"sysv", "gnu", "both"});
+
--- /dev/null
+Author:
+Description: Description: Add (/usr)/lib32 to the search paths on x86_64.
+Author: Aurelien Jarno <aurel32.debian.org>
+Upstream status: Debian specific
+--- a/ld/emulparams/elf_i386.sh
++++ b/ld/emulparams/elf_i386.sh
+@@ -13,3 +13,13 @@
+ NO_SMALL_DATA=yes
+ SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
+ IREL_IN_PLT=
++
++# Linux modify the default library search path to first include
++# a 32-bit specific directory.
++case "$target" in
++ x86_64*-linux* | i[3-7]86*-linux* | x86_64*-kfreebsd*-gnu | i[3-7]86*-kfreebsd*-gnu)
++ case "$EMULATION_NAME" in
++ *i386*) LIBPATH_SUFFIX=32 ;;
++ esac
++ ;;
++esac
--- /dev/null
+Author:
+Description: Description: Fix ld corrupt build ID generation
+Author: Nick Clifton
+Upstream status: Taken from Fedora (BZ 501582)
+--- a/bfd/compress.c
++++ b/bfd/compress.c
+@@ -174,7 +174,7 @@
+ case COMPRESS_SECTION_NONE:
+ if (p == NULL)
+ {
+- p = (bfd_byte *) bfd_malloc (sz);
++ p = (bfd_byte *) bfd_zmalloc (sz);
+ if (p == NULL)
+ return FALSE;
+ need_free = TRUE;
+--- a/bfd/elfcode.h
++++ b/bfd/elfcode.h
+@@ -1158,6 +1158,24 @@
+
+ if (i_shdr.contents)
+ (*process) (i_shdr.contents, i_shdr.sh_size, arg);
++ else
++ {
++ asection *sec;
++
++ sec = bfd_section_from_elf_index (abfd, count);
++ if (sec != NULL)
++ {
++ if (sec->contents == NULL)
++ {
++ /* Force rereading from file. */
++ sec->flags &= ~SEC_IN_MEMORY;
++ if (! bfd_malloc_and_get_section (abfd, sec, & sec->contents))
++ continue;
++ }
++ if (sec->contents != NULL)
++ (*process) (sec->contents, i_shdr.sh_size, arg);
++ }
++ }
+ }
+
+ return TRUE;
--- /dev/null
+Index: b/ld/emulparams/elf32ppccommon.sh
+===================================================================
+--- a/ld/emulparams/elf32ppccommon.sh
++++ b/ld/emulparams/elf32ppccommon.sh
+@@ -54,3 +54,12 @@ case "$host":"$EMULATION_NAME" in
+ *:*64*) LIBPATH_SUFFIX=64 ;;
+ *:*32*) LIBPATH_SUFFIX=32 ;;
+ esac
++
++# On 64bit, look for 32 bit target libraries in /lib32, /usr/lib32 etc., first.
++case "$target" in
++ powerpc64-*-linux* | ppc64-*-linux*)
++ case "$EMULATION_NAME" in
++ *32*) LIBPATH_SUFFIX=32 ;;
++ esac
++ ;;
++esac
--- /dev/null
+# DP: Add multiarch directories to linker search path for ld and gold.
+
+Index: b/ld/genscripts.sh
+===================================================================
+--- a/ld/genscripts.sh
++++ b/ld/genscripts.sh
+@@ -189,6 +189,104 @@ append_to_lib_path()
+ fi
+ }
+
++# set the multiarch tuples
++multiarch_name=
++multiarch_name_32=
++multiarch_name_64=
++multiarch_name_n32=
++multiarch_name_x32=
++
++if true; then
++ # based on TOOL_LIB
++ multiarch_name=$DEB_TARGET_MULTIARCH
++ multiarch_name_32=$DEB_TARGET_MULTIARCH32
++ multiarch_name_64=$DEB_TARGET_MULTIARCH64
++ multiarch_name_n32=$DEB_TARGET_MULTIARCHN32
++ multiarch_name_x32=$DEB_TARGET_MULTIARCHX32
++else
++ # based on the emulation name; using TOOL_LIB seems to unreliable, when
++ # configuring with --enable-targets=powerpc-linux-gnu,powerpc64-linux-gnu
++ # only the first one (?) wins.
++ # FIXME: should this go into ld/emulparams/*.sh ?
++ case "$EMULATION_NAME" in
++ aarch64linux)
++ multiarch_name=aarch64-linux-gnu
++ ;;
++ aarch64linux32)
++ multiarch_name=aarch64_ilp32-linux-gnu
++ ;;
++ aarch64linux32b)
++ multiarch_name=aarch64_be_ilp32-linux-gnu
++ ;;
++ aarch64linuxb)
++ multiarch_name=aarch64_be-linux-gnu
++ ;;
++ armelf_linux_eabi)
++ # FIXME: TOOL_LIB can be arm-linux-gnueabi, arm-linux-gnueabihf, aarch64-linux-gnu
++ multiarch_name=arm-linux-gnueabi
++ ;;
++ armelfb_linux_eabi)
++ # FIXME: TOOL_LIB can be arm-linux-gnueabi, arm-linux-gnueabihf, aarch64-linux-gnu
++ multiarch_name=armeb-linux-gnueabi
++ ;;
++ elf32_sparc)
++ multiarch_name=sparc-linux-gnu
++ multiarch_name_64=sparc64-linux-gnu
++ ;;
++ elf32_x86_64)
++ multiarch_name=x86_64-linux-gnux32
++ multiarch_name_32=i386-linux-gnu
++ multiarch_name_64=x86_64-linux-gnu
++ ;;
++ elf32btsmip)
++ ;;
++ elf32btsmipn32)
++ ;;
++ elf32ltsmip)
++ ;;
++ elf32ltsmipn32)
++ ;;
++ elf32elflppc) # necessary?
++ multiarch_name=powerpcle-linux-gnu
++ multiarch_name_64=powerpc64le-linux-gnu
++ ;;
++ elf32elflppclinux)
++ multiarch_name=powerpcle-linux-gnu
++ multiarch_name_64=powerpc64le-linux-gnu
++ ;;
++ elf32ppc) # necessary?
++ multiarch_name=powerpc-linux-gnu
++ multiarch_name_64=powerpc64-linux-gnu
++ ;;
++ elf32ppclinux)
++ multiarch_name=powerpc-linux-gnu
++ multiarch_name_64=powerpc64-linux-gnu
++ ;;
++ elf64ppc)
++ multiarch_name=powerpc64-linux-gnu
++ multiarch_name_32=powerpc-linux-gnu
++ ;;
++ esac
++fi
++
++if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
++ libs=${NATIVE_LIB_DIRS}
++ if [ "x${NATIVE}" = "xyes" ] ; then
++ case " ${libs} " in
++ *" ${libdir} "*) ;;
++ *) libs="${libdir} ${libs}" ;;
++ esac
++ fi
++ append_to_lib_path ${libs}
++fi
++
++case :${lib_path1}:${lib_path2}: in
++ *:: | ::*) LIB_PATH=${lib_path1}${lib_path2} ;;
++ *) LIB_PATH=${lib_path1}:${lib_path2} ;;
++esac
++lib_path1=
++lib_path2=
++
+ # Always search $(tooldir)/lib, aka /usr/local/TARGET/lib when native
+ # except when LIBPATH=":".
+ if [ "${LIB_PATH}" != ":" ] ; then
+@@ -205,31 +303,138 @@ if [ "${LIB_PATH}" != ":" ] ; then
+ # vs. /usr/s390-linux/lib64)
+ case "${NATIVE}:${LIBPATH_SUFFIX}:${TOOL_LIB}" in
+ :* | *::* | *:*:*${LIBPATH_SUFFIX}) ;;
+- *) libs="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}" ;;
++ *)
++ # FIXME:
++ # For the binutils-multiarch build on x86_64-linux-gnu configured
++ # with --enable-targets=powerpc-linux-gnu, /usr/x86_64-linux-gnu/lib64
++ # is added instead of /usr/powerpc64-linux-gnu/lib64. However this
++ # probably wanted for the "default" emulation. How to detect that?
++ libs="${exec_prefix}/${target_alias}/lib${LIBPATH_SUFFIX}" ;;
+ esac
+ libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}"
+ fi
+ append_to_lib_path ${libs}
+ fi
+
+-if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
+- libs=${NATIVE_LIB_DIRS}
+- if [ "x${NATIVE}" = "xyes" ] ; then
+- case " ${libs} " in
+- *" ${libdir} "*) ;;
+- *) libs="${libdir} ${libs}" ;;
+- esac
+- fi
+- append_to_lib_path ${libs}
+-fi
+-
+ case :${lib_path1}:${lib_path2}: in
+- *:: | ::*) LIB_PATH=${lib_path1}${lib_path2} ;;
+- *) LIB_PATH=${lib_path1}:${lib_path2} ;;
++ *:: | ::*) LIB_PATH=${LIB_PATH}:${lib_path1}${lib_path2} ;;
++ *) LIB_PATH=${LIB_PATH}:${lib_path1}:${lib_path2} ;;
+ esac
+
++# We use the $tool_lib variable in our multiarch mangling:
++if [ "x${TOOL_LIB}" = "x" ] ; then
++ tool_lib=${exec_prefix}/${target_alias}/lib
++else
++ tool_lib=${exec_prefix}/${TOOL_LIB}/lib
++fi
++
++# FIXME: why again? These already should be in LIBPATH
++if [ "x${APPEND_TOOLLIBDIR}" = "xyes" ] ; then
++ LIB_PATH=${LIB_PATH}:${tool_lib}
++ # For multilib targets, search both $tool_lib dirs
++ if [ "x${LIBPATH_SUFFIX}" != "x" ] ; then
++ LIB_PATH=${LIB_PATH}:${tool_lib}${LIBPATH_SUFFIX}
++ fi
++fi
++
+ LIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'`
+
++if [ -n "$multiarch_name" ]; then
++ temp_dirs=' '
++ ma_dirs=' '
++ for dir in `echo ${LIB_PATH} | sed -e 's/:/ /g'`; do
++ case "$dir" in
++ *${tool_lib}*|*/${target_alias}/*)
++ ;;
++ */lib)
++ if [ -n "$multiarch_name_32" ]; then
++ case $EMULATION_NAME in
++ elf_i386|elf32*)
++ ma_dirs="${ma_dirs}${dir}/$multiarch_name_32 ";;
++ *)
++ ma_dirs="${ma_dirs}${dir}/$multiarch_name "
++ esac
++ elif [ -n "$multiarch_name_64" ]; then
++ case $EMULATION_NAME in
++ elf*_64|elf64*)
++ ma_dirs="${ma_dirs}${dir}/$multiarch_name_64 ";;
++ *)
++ ma_dirs="${ma_dirs}${dir}/$multiarch_name "
++ esac
++ else
++ ma_dirs="${ma_dirs}${dir}/$multiarch_name "
++ fi
++ ;;
++ */lib32)
++ if [ -n "$multiarch_name_32" ]; then
++ dir2=$(echo $dir | sed "s,32$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_32 "
++ fi
++ ;;
++ */lib64)
++ case "${target}" in
++ aarch64*-*-*|powerpc64-*-*|s390x-*-*|sparc64-*-*|x86_64-*-linux-gnu|mips64-*-gnuabi64)
++ #dir=$(echo $dir | sed "s,64$,,")
++ dir2=$(echo $dir | sed "s,64$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name "
++ ;;
++ *)
++ if [ -n "$multiarch_name_64" ]; then
++ dir2=$(echo $dir | sed "s,64$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_64 "
++ fi
++ ;;
++ esac
++ ;;
++ */libx32)
++ case "${target}" in
++ x86_64-*-linux-gnux32)
++ dir2=$(echo $dir | sed "s,x32$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name "
++ ;;
++ *)
++ if [ -n "$multiarch_name_x32" ]; then
++ dir2=$(echo $dir | sed "s,x32$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_x32 "
++ fi
++ ;;
++ esac
++ ;;
++ */libn32)
++ case "${target}" in
++ mips64*-*-linux-gnuabin32)
++ dir2=$(echo $dir | sed "s,n32$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name "
++ ;;
++ *)
++ if [ -n "$multiarch_name_n32" ]; then
++ dir2=$(echo $dir | sed "s,n32$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_n32 "
++ fi
++ ;;
++ esac
++ ;;
++ */libilp32)
++ if [ -n "$multiarch_name_32" ]; then
++ dir2=$(echo $dir | sed "s,ilp32$,,")
++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_32 "
++ fi
++ ;;
++ *)
++ ;;
++ esac
++ temp_dirs="${temp_dirs}${dir} "
++ done
++ LIB_SEARCH_DIRS=
++ for dir in $ma_dirs $temp_dirs; do
++ if echo "$LIB_SEARCH_DIRS" | fgrep -q "\"$dir\""; then
++ continue
++ fi
++ LIB_SEARCH_DIRS="${LIB_SEARCH_DIRS}SEARCH_DIR(\"$dir\"); "
++ done
++fi
++echo X3: $LIB_PATH
++
+ # We need it for testsuite.
+ set $EMULATION_LIBPATH
+ if [ "x$1" = "x$EMULATION_NAME" ]; then
+Index: b/gold/Makefile.am
+===================================================================
+--- a/gold/Makefile.am
++++ b/gold/Makefile.am
+@@ -38,6 +38,7 @@ AM_CPPFLAGS = \
+ -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../elfcpp \
+ -DLOCALEDIR="\"$(datadir)/locale\"" \
+ -DBINDIR="\"$(bindir)\"" -DTOOLBINDIR="\"$(tooldir)/bin\"" \
++ @MULTIARCH_DIRNAME@ $(if $(APPEND_TOOLLIBDIR),-DAPPEND_TOOLLIBDIR) \
+ -DTOOLLIBDIR="\"$(tooldir)/lib\"" @INCINTL@
+
+ LIBIBERTY = ../libiberty/libiberty.a
+Index: b/gold/configure
+===================================================================
+--- a/gold/configure
++++ b/gold/configure
+@@ -594,6 +594,7 @@ LTLIBOBJS
+ MAINT
+ MAINTAINER_MODE_FALSE
+ MAINTAINER_MODE_TRUE
++MULTIARCH_DIRNAME
+ DLOPEN_LIBS
+ CXXCPP
+ HAVE_NO_USE_LINKER_PLUGIN_FALSE
+@@ -7720,6 +7721,14 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>
+ fi
+
+
++if test x$DEB_TARGET_MULTIARCH != x; then
++ multiarch=$DEB_TARGET_MULTIARCH
++ if test -n "$multiarch"; then
++ MULTIARCH_DIRNAME='-DMULTIARCH_DIRNAME=\"'$multiarch'\"'
++ fi
++fi
++
++
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+Index: b/gold/configure.ac
+===================================================================
+--- a/gold/configure.ac
++++ b/gold/configure.ac
+@@ -662,6 +662,14 @@ AC_CHECK_HEADERS(locale.h)
+ AC_CHECK_FUNCS(setlocale)
+ AM_LC_MESSAGES
+
++if test x$DEB_TARGET_MULTIARCH != x; then
++ multiarch=$DEB_TARGET_MULTIARCH
++ if test -n "$multiarch"; then
++ MULTIARCH_DIRNAME='-DMULTIARCH_DIRNAME=\"'$multiarch'\"'
++ fi
++fi
++AC_SUBST(MULTIARCH_DIRNAME)
++
+ AM_MAINTAINER_MODE
+
+ AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)
+Index: b/gold/options.cc
+===================================================================
+--- a/gold/options.cc
++++ b/gold/options.cc
+@@ -1227,8 +1227,15 @@ General_options::finalize()
+ || this->user_set_sysroot()
+ || *TARGET_SYSTEM_ROOT != '\0')
+ {
++#ifdef MULTIARCH_DIRNAME
++ this->add_to_library_path_with_sysroot("/lib/" MULTIARCH_DIRNAME);
++ this->add_to_library_path_with_sysroot("/usr/lib/" MULTIARCH_DIRNAME);
++#endif
+ this->add_to_library_path_with_sysroot("/lib");
+ this->add_to_library_path_with_sysroot("/usr/lib");
++#ifdef APPEND_TOOLLIBDIR
++ this->add_to_library_path_with_sysroot(TOOLLIBDIR);
++#endif
+ }
+ else
+ this->add_to_library_path_with_sysroot(TOOLLIBDIR);
+Index: b/gold/Makefile.in
+===================================================================
+--- a/gold/Makefile.in
++++ b/gold/Makefile.in
+@@ -490,6 +490,7 @@ AM_CPPFLAGS = \
+ -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../elfcpp \
+ -DLOCALEDIR="\"$(datadir)/locale\"" \
+ -DBINDIR="\"$(bindir)\"" -DTOOLBINDIR="\"$(tooldir)/bin\"" \
++ @MULTIARCH_DIRNAME@ $(if $(APPEND_TOOLLIBDIR),-DAPPEND_TOOLLIBDIR) \
+ -DTOOLLIBDIR="\"$(tooldir)/lib\"" @INCINTL@
+
+ LIBIBERTY = ../libiberty/libiberty.a
--- /dev/null
+Author:
+Description: Description: Disable build of gold/testsuite
+Author: Matthias Klose
+Upstream status: local
+Index: b/gold/Makefile.am
+===================================================================
+--- a/gold/Makefile.am
++++ b/gold/Makefile.am
+@@ -19,7 +19,7 @@
+
+ AUTOMAKE_OPTIONS = foreign
+
+-SUBDIRS = po testsuite
++SUBDIRS = po
+
+ tooldir = $(exec_prefix)/$(target_alias)
+
+Index: b/gold/Makefile.in
+===================================================================
+--- a/gold/Makefile.in
++++ b/gold/Makefile.in
+@@ -475,7 +475,7 @@ top_srcdir = @top_srcdir@
+ zlibdir = @zlibdir@
+ zlibinc = @zlibinc@
+ AUTOMAKE_OPTIONS = foreign
+-SUBDIRS = po testsuite
++SUBDIRS = po
+ tooldir = $(exec_prefix)/$(target_alias)
+ ACLOCAL_AMFLAGS = -I ../bfd -I ../config
+
--- /dev/null
+Author:
+Description: Description: Fix ld-bootstrap testsuite when configured with --enable-plugins
+Author: Rafael Espindola
+Upstream status: proposed patch
+Index: b/ld/testsuite/ld-bootstrap/bootstrap.exp
+===================================================================
+--- a/ld/testsuite/ld-bootstrap/bootstrap.exp
++++ b/ld/testsuite/ld-bootstrap/bootstrap.exp
+@@ -44,6 +44,15 @@ if [check_plugin_api_available] {
+ set plugins "yes"
+ }
+
++remote_exec host "$nm --help" "" "/dev/null" "plugin-support"
++set tmp [file_contents "plugin-support"]
++regexp ".*\(--plugin\).*\n" $tmp foo plugins
++if [info exists plugins] then {
++ set plugins "yes"
++} else {
++ set plugins "no"
++}
++
+ # Bootstrap ld. First link the object files together using -r, in
+ # order to test -r. Then link the result into an executable, ld1, to
+ # really test -r. Use ld1 to link a fresh ld, ld2. Use ld2 to link a
+@@ -90,6 +99,11 @@ foreach flags $test_flags {
+ continue
+ }
+
++ if { $flags == "--static" && $plugins == "yes" } then {
++ untested $testname
++ continue
++ }
++
+ # If we only have a shared libbfd, we probably can't run the
+ # --static test.
+ if { $flags == "--static" && ! [string match "*libbfd.a*" $BFDLIB] } then {
+@@ -134,6 +148,10 @@ foreach flags $test_flags {
+ }
+ }
+
++ if { $plugins == "yes" } {
++ set extralibs "$extralibs -ldl"
++ }
++
+ # On Irix 5, linking with --static only works if all the files are
+ # compiled using -non_shared.
+ if {"$flags" == "--static"} {
--- /dev/null
+Author:
+Description: Description: Fix bfd version handling for extra builds
+
+Index: b/bfd/Makefile.am
+===================================================================
+--- a/bfd/Makefile.am
++++ b/bfd/Makefile.am
+@@ -1069,15 +1069,15 @@ 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_version=`echo "$(VERSION)" | sed -e 's/-.*$$//' | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
++ bfd_version_string="\"`echo $(VERSION) | sed -e 's/-.*$$//'`\"" ;\
+ bfd_soversion="$(VERSION)" ;\
+ bfd_version_package="\"$(PKGVERSION)\"" ;\
+ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
+ . $(srcdir)/development.sh ;\
+ if test "$$development" = true ; then \
+ bfd_version_date=`$(SED) -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
+- bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
++ bfd_version_string="\"`echo $(VERSION) | sed -e 's/-.*$$//'`.$${bfd_version_date}\"" ;\
+ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
+ fi ;\
+ $(SED) -e "s,@bfd_version@,$$bfd_version," \
+Index: b/bfd/Makefile.in
+===================================================================
+--- a/bfd/Makefile.in
++++ b/bfd/Makefile.in
+@@ -2179,15 +2179,15 @@ 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_version=`echo "$(VERSION)" | sed -e 's/-.*$$//' | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
++ bfd_version_string="\"`echo $(VERSION) | sed -e 's/-.*$$//'`\"" ;\
+ bfd_soversion="$(VERSION)" ;\
+ bfd_version_package="\"$(PKGVERSION)\"" ;\
+ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
+ . $(srcdir)/development.sh ;\
+ if test "$$development" = true ; then \
+ bfd_version_date=`$(SED) -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
+- bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
++ bfd_version_string="\"`echo $(VERSION) | sed -e 's/-.*$$//'`.$${bfd_version_date}\"" ;\
+ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
+ fi ;\
+ $(SED) -e "s,@bfd_version@,$$bfd_version," \
--- /dev/null
+Author: Balint Reczey <balint@balintreczey.hu>
+Description: Build libbfd with -fPIC to allow linking with PIE binaries
+
+Index: b/bfd/Makefile.am
+===================================================================
+--- a/bfd/Makefile.am
++++ b/bfd/Makefile.am
+@@ -51,7 +51,7 @@ ZLIBINC = @zlibinc@
+
+ WARN_CFLAGS = @WARN_CFLAGS@
+ NO_WERROR = @NO_WERROR@
+-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
++AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) -fPIC
+ AM_CPPFLAGS = -DBINDIR='"$(bindir)"'
+ if PLUGINS
+ bfdinclude_HEADERS += $(INCDIR)/plugin-api.h
+Index: b/bfd/Makefile.in
+===================================================================
+--- a/bfd/Makefile.in
++++ b/bfd/Makefile.in
+@@ -388,7 +388,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel
+ # case both are empty.
+ ZLIB = @zlibdir@ -lz
+ ZLIBINC = @zlibinc@
+-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
++AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) -fPIC
+ AM_CPPFLAGS = -DBINDIR='"$(bindir)"'
+ @PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@
+
--- /dev/null
+Index: b/binutils/arlex.l
+===================================================================
+--- a/binutils/arlex.l
++++ b/binutils/arlex.l
+@@ -78,7 +78,7 @@ int linenumber;
+ "(" { return '('; }
+ ")" { return ')'; }
+ "," { return ','; }
+-[A-Za-z0-9/\\$:.\-\_]+ {
++[A-Za-z0-9/\\$:.\-\_~]+ {
+ yylval.name = xstrdup (yytext);
+ return FILENAME;
+ }
--- /dev/null
+Index: b/ld/configure.ac
+===================================================================
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -56,7 +56,9 @@
+ *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
+ esac
+
++ if test "x$TARGET_SYSTEM_ROOT" != x/; then
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
++ fi
+ use_sysroot=yes
+
+ if test "x$prefix" = xNONE; then
+Index: b/ld/configure
+===================================================================
+--- a/ld/configure
++++ b/ld/configure
+@@ -4283,7 +4283,9 @@
+ *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
+ esac
+
++ if test "x$TARGET_SYSTEM_ROOT" != x/; then
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
++ fi
+ use_sysroot=yes
+
+ if test "x$prefix" = xNONE; then
+Index: b/ld/ldmain.c
+===================================================================
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -226,8 +226,8 @@
+ {
+ if (*TARGET_SYSTEM_ROOT == 0)
+ {
+- einfo ("%P%F: this linker was not configured to use sysroots\n");
+ ld_sysroot = "";
++ ld_canon_sysroot = "";
+ }
+ else
+ ld_canon_sysroot = lrealpath (ld_sysroot);
--- /dev/null
+# DP: let gold accept a dummy -z buildd-<random-string> option.
+
+Index: b/gold/options.h
+===================================================================
+--- a/gold/options.h
++++ b/gold/options.h
+@@ -1359,6 +1359,9 @@ class General_options
+ options::TWO_DASHES, '\0',
+ N_("Report unresolved symbols as errors"),
+ NULL, true);
++ DEFINE_bool(buildd, options::DASH_Z, '\0', false,
++ N_("Dummy z option"),
++ NULL);
+
+ DEFINE_bool(wchar_size_warning, options::TWO_DASHES, '\0', true, NULL,
+ N_("(ARM only) Do not warn about objects with incompatible "
+Index: b/gold/options.cc
+===================================================================
+--- a/gold/options.cc
++++ b/gold/options.cc
+@@ -967,6 +967,8 @@ parse_short_option(int argc, const char*
+ {
+ int dummy_i = 0;
+ const char* dash_z_arg = *arg;
++ if (strncmp(dash_z_arg, "buildd", strlen("buildd")) == 0)
++ *arg = "buildd";
+ retval = parse_long_option(1, arg, true, arg, &dummy_i);
+ if (retval == NULL)
+ usage(_("unknown -z option"), dash_z_arg);
--- /dev/null
+# DP: In ld.texi, remove cross reference to BFD internals documentation.
+
+Index: b/ld/ld.texinfo
+===================================================================
+--- a/ld/ld.texinfo
++++ b/ld/ld.texinfo
+@@ -8186,7 +8186,8 @@ may be spent optimizing algorithms for a
+ One minor artifact of the BFD solution which you should bear in
+ mind is the potential for information loss. There are two places where
+ useful information can be lost using the BFD mechanism: during
+-conversion and during output. @xref{BFD information loss}.
++conversion and during output. See BFD information loss in the BFD
++internal documentation.
+
+ @menu
+ * BFD outline:: How it works: an outline of BFD
--- /dev/null
+Index: b/ld/emulparams/aarch64linux.sh
+===================================================================
+--- a/ld/emulparams/aarch64linux.sh
++++ b/ld/emulparams/aarch64linux.sh
+@@ -38,12 +38,15 @@
+
+ # Linux modifies the default library search path to first include
+ # a 64-bit specific directory.
+-case "$target" in
+- aarch64*-linux*)
+- case "$EMULATION_NAME" in
+- aarch64linux*) LIBPATH_SUFFIX=64 ;;
+- esac
+- ;;
+-esac
++
++# not for multiarch systems ...
++
++#case "$target" in
++# aarch64*-linux*)
++# case "$EMULATION_NAME" in
++# aarch64linux*) LIBPATH_SUFFIX=64 ;;
++# esac
++# ;;
++#esac
+
+ ELF_INTERPRETER_NAME=\"/lib/ld-linux-aarch64.so.1\"
--- /dev/null
+# DP: updates from the binutils-2.28 branch
+
+# git diff d1b878ec9a4e6a92e2863a8929e9794dd12b13b9 de33d5aed37edb1f2467adab7c2402aef36045b4
+
+diff --git a/bfd/ChangeLog b/bfd/ChangeLog
+index 9809bcf..a51642b 100644
+--- a/bfd/ChangeLog
++++ b/bfd/ChangeLog
+@@ -1,3 +1,83 @@
++2017-05-01 Palmer Dabbelt <palmer@dabbelt.com>
++
++ * config.bfd (riscv32-*): Enable rv64.
++
++2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
++
++ * elfnn-riscv.c (GP_NAME): Delete.
++ (riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL.
++ (_bfd_riscv_relax_lui): Likewise.
++
++2017-01-17 Kuan-Lin Chen <kuanlinchentw@gmail.com>
++
++ * elfnn-riscv.c (riscv_elf_object_p): New function.
++
++2017-04-26 Maciej W. Rozycki <macro@imgtec.com>
++
++ PR ld/21334
++ * elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms'
++ member.
++ * elfxx-target.h [!elf_backend_always_renumber_dynsyms]
++ (elf_backend_always_renumber_dynsyms): Define.
++ (elfNN_bed): Initialize `always_renumber_dynsyms' member.
++ * elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define.
++ * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Also call
++ `_bfd_elf_link_renumber_dynsyms' if the backend has requested
++ it.
++ (elf_gc_sweep): Likewise.
++
++2017-04-26 Maciej W. Rozycki <macro@imgtec.com>
++
++ * elflink.c (elf_gc_sweep): Only call
++ `_bfd_elf_link_renumber_dynsyms' if dynamic sections have been
++ created.
++
++2017-04-24 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/21425
++ * elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks.
++
++2017-03-28 Hans-Peter Nilsson <hp@axis.com>
++
++ PR ld/16044
++ * elf32-cris.c (elf_cris_adjust_gotplt_to_got): Adjust BFD_ASSERT
++ to handle a local symbol with a hash-symbol-entry; without PLT.
++ Add BFD_ASSERT for an incidental case with GOT entry present.
++ (cris_elf_check_relocs): Increment PLT refcount only if the symbol
++ isn't forced-or-set local.
++
++2017-04-13 Alan Modra <amodra@gmail.com>
++
++ * elf32-arm.c (arm_type_of_stub): Supply missing args to "long
++ branch veneers" error. Fix double space and format message.
++ * elf32-avr.c (avr_add_stub): Do not pass NULL as %B arg.
++ * elf64-ppc.c (tocsave_find): Supply missing %B arg.
++
++2017-04-10 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/19579
++ PR ld/21306
++ * elf32-s390.c (elf_s390_finish_dynamic_symbol): Check
++ ELF_COMMON_DEF_P for common symbols.
++ * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
++ * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
++ * elflink.c (_bfd_elf_merge_symbol): Revert commits
++ 202ac193bbbecc96a4978d1ac3d17148253f9b01 and
++ 07492f668d2173da7a2bda3707ff0985e0f460b6.
++
++2017-03-07 Alan Modra <amodra@gmail.com>
++
++ PR 21224
++ PR 20519
++ * elf64-ppc.c (ppc64_elf_relocate_section): Add missing
++ dyn_relocs check.
++
++2017-03-07 Alan Modra <amodra@gmail.com>
++
++ Apply from master
++ 2017-03-02 Alan Modra <amodra@gmail.com>
++ * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
++
+ 2017-03-02 Tristan Gingold <gingold@adacore.com>
+
+ * version.m4: Bump version to 2.28.0
+diff --git a/bfd/config.bfd b/bfd/config.bfd
+index 1b28016..c031216 100644
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -1439,10 +1439,9 @@ case "${targ}" in
+ #ifdef BFD64
+ riscv32-*-*)
+ targ_defvec=riscv_elf32_vec
+- targ_selvecs="riscv_elf32_vec"
++ targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
+ want64=true
+ ;;
+-
+ riscv64-*-*)
+ targ_defvec=riscv_elf64_vec
+ targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
+diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
+index 5de9ab6..dc4bd87 100644
+--- a/bfd/elf-bfd.h
++++ b/bfd/elf-bfd.h
+@@ -1478,6 +1478,10 @@ struct elf_backend_data
+ /* Address of protected data defined in the shared library may be
+ external, i.e., due to copy relocation. */
+ unsigned extern_protected_data : 1;
++
++ /* True if `_bfd_elf_link_renumber_dynsyms' must be called even for
++ static binaries. */
++ unsigned always_renumber_dynsyms : 1;
+ };
+
+ /* Information about reloc sections associated with a bfd_elf_section_data
+diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
+index 0a78595..e04caef 100644
+--- a/bfd/elf32-arm.c
++++ b/bfd/elf32-arm.c
+@@ -4024,10 +4024,12 @@ arm_type_of_stub (struct bfd_link_info *info,
+ if (!thumb_only)
+ {
+ if (input_sec->flags & SEC_ELF_PURECODE)
+- _bfd_error_handler (_("\
+-%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section \
+-attribute is only supported for M-profile targets that implement the movw instruction."),
+- input_sec);
++ _bfd_error_handler
++ (_("%B(%A): warning: long branch veneers used in"
++ " section with SHF_ARM_PURECODE section"
++ " attribute is only supported for M-profile"
++ " targets that implement the movw instruction."),
++ input_bfd, input_sec);
+
+ stub_type = (bfd_link_pic (info) | globals->pic_veneer)
+ /* PIC stubs. */
+@@ -4056,10 +4058,12 @@ attribute is only supported for M-profile targets that implement the movw instru
+ else
+ {
+ if (input_sec->flags & SEC_ELF_PURECODE)
+- _bfd_error_handler (_("\
+-%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section \
+-attribute is only supported for M-profile targets that implement the movw instruction."),
+- input_sec);
++ _bfd_error_handler
++ (_("%B(%A): warning: long branch veneers used in"
++ " section with SHF_ARM_PURECODE section"
++ " attribute is only supported for M-profile"
++ " targets that implement the movw instruction."),
++ input_bfd, input_sec);
+
+ stub_type = (bfd_link_pic (info) | globals->pic_veneer)
+ /* PIC stub. */
+@@ -4073,13 +4077,12 @@ attribute is only supported for M-profile targets that implement the movw instru
+ else
+ {
+ if (input_sec->flags & SEC_ELF_PURECODE)
+- _bfd_error_handler (_("%B(%s): warning: long branch "
+- " veneers used in section with "
+- "SHF_ARM_PURECODE section "
+- "attribute is only supported"
+- " for M-profile targets that "
+- "implement the movw "
+- "instruction."));
++ _bfd_error_handler
++ (_("%B(%A): warning: long branch veneers used in"
++ " section with SHF_ARM_PURECODE section"
++ " attribute is only supported" " for M-profile"
++ " targets that implement the movw instruction."),
++ input_bfd, input_sec);
+
+ /* Thumb to arm. */
+ if (sym_sec != NULL
+@@ -4126,13 +4129,12 @@ attribute is only supported for M-profile targets that implement the movw instru
+ || r_type == R_ARM_TLS_CALL)
+ {
+ if (input_sec->flags & SEC_ELF_PURECODE)
+- _bfd_error_handler (_("%B(%s): warning: long branch "
+- " veneers used in section with "
+- "SHF_ARM_PURECODE section "
+- "attribute is only supported"
+- " for M-profile targets that "
+- "implement the movw "
+- "instruction."));
++ _bfd_error_handler
++ (_("%B(%A): warning: long branch veneers used in"
++ " section with SHF_ARM_PURECODE section"
++ " attribute is only supported for M-profile"
++ " targets that implement the movw instruction."),
++ input_bfd, input_sec);
+ if (branch_type == ST_BRANCH_TO_THUMB)
+ {
+ /* Arm to thumb. */
+diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
+index 56b143d..0f6c188 100644
+--- a/bfd/elf32-avr.c
++++ b/bfd/elf32-avr.c
+@@ -3284,8 +3284,7 @@ avr_add_stub (const char *stub_name,
+ if (hsh == NULL)
+ {
+ /* xgettext:c-format */
+- _bfd_error_handler (_("%B: cannot create stub entry %s"),
+- NULL, stub_name);
++ _bfd_error_handler (_("cannot create stub entry %s"), stub_name);
+ return NULL;
+ }
+
+diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
+index 97b8cc3..d4bbceb 100644
+--- a/bfd/elf32-cris.c
++++ b/bfd/elf32-cris.c
+@@ -2714,8 +2714,9 @@ elf_cris_adjust_gotplt_to_got (struct elf_cris_link_hash_entry *h, void * p)
+ struct bfd_link_info *info = (struct bfd_link_info *) p;
+
+ /* A GOTPLT reloc, when activated, is supposed to be included into
+- the PLT refcount. */
++ the PLT refcount, when the symbol isn't set-or-forced local. */
+ BFD_ASSERT (h->gotplt_refcount == 0
++ || h->root.plt.refcount == -1
+ || h->gotplt_refcount <= h->root.plt.refcount);
+
+ /* If nobody wanted a GOTPLT with this symbol, we're done. */
+@@ -2741,6 +2742,7 @@ elf_cris_adjust_gotplt_to_got (struct elf_cris_link_hash_entry *h, void * p)
+ srelgot = elf_hash_table (info)->srelgot;
+
+ /* Put accurate refcounts there. */
++ BFD_ASSERT (h->root.got.refcount >= 0);
+ h->root.got.refcount += h->gotplt_refcount;
+ h->reg_got_refcount = h->gotplt_refcount;
+
+@@ -3476,7 +3478,10 @@ cris_elf_check_relocs (bfd *abfd,
+ continue;
+
+ h->needs_plt = 1;
+- h->plt.refcount++;
++
++ /* If the symbol is forced local, the refcount is unavailable. */
++ if (h->plt.refcount != -1)
++ h->plt.refcount++;
+ break;
+
+ case R_CRIS_8:
+diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
+index 24beba3..f570253 100644
+--- a/bfd/elf32-i386.c
++++ b/bfd/elf32-i386.c
+@@ -6576,6 +6576,8 @@ elf32_i386_nacl_elf_object_p (bfd *abfd)
+ #undef TARGET_LITTLE_NAME
+ #define TARGET_LITTLE_NAME "elf32-i386-vxworks"
+ #undef ELF_OSABI
++#undef ELF_MAXPAGESIZE
++#define ELF_MAXPAGESIZE 0x1000
+ #undef elf_backend_plt_alignment
+ #define elf_backend_plt_alignment 4
+
+diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
+index 0f3eb68..10caa8a 100644
+--- a/bfd/elf32-ppc.c
++++ b/bfd/elf32-ppc.c
+@@ -4921,7 +4921,7 @@ ppc_elf_vle_split16 (bfd *input_bfd,
+ unsigned int insn, opcode, top5;
+
+ insn = bfd_get_32 (input_bfd, loc);
+- opcode = insn & 0xf300f800;
++ opcode = insn & 0xfc00f800;
+ if (opcode == E_OR2I_INSN
+ || opcode == E_AND2I_DOT_INSN
+ || opcode == E_OR2IS_INSN
+diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
+index fd1bc13..ddb6f5b 100644
+--- a/bfd/elf32-s390.c
++++ b/bfd/elf32-s390.c
+@@ -3785,7 +3785,7 @@ elf_s390_finish_dynamic_symbol (bfd *output_bfd,
+ RELATIVE reloc. The entry in the global offset table
+ will already have been initialized in the
+ relocate_section function. */
+- if (!h->def_regular)
++ if (!(h->def_regular || ELF_COMMON_DEF_P (h)))
+ return FALSE;
+ BFD_ASSERT((h->got.offset & 1) != 0);
+ rela.r_info = ELF32_R_INFO (0, R_390_RELATIVE);
+diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
+index e7d4792..765bc6b 100644
+--- a/bfd/elf64-ppc.c
++++ b/bfd/elf64-ppc.c
+@@ -7627,7 +7627,7 @@ tocsave_find (struct ppc_link_hash_table *htab,
+ if (ent.sec == NULL || ent.sec->output_section == NULL)
+ {
+ _bfd_error_handler
+- (_("%B: undefined symbol on R_PPC64_TOCSAVE relocation"));
++ (_("%B: undefined symbol on R_PPC64_TOCSAVE relocation"), ibfd);
+ return NULL;
+ }
+
+@@ -14798,8 +14798,10 @@ ppc64_elf_relocate_section (bfd *output_bfd,
+ break;
+
+ if (bfd_link_pic (info)
+- ? ((h != NULL && pc_dynrelocs (h))
+- || must_be_dyn_reloc (info, r_type))
++ ? ((h == NULL
++ || h->dyn_relocs != NULL)
++ && ((h != NULL && pc_dynrelocs (h))
++ || must_be_dyn_reloc (info, r_type)))
+ : (h != NULL
+ ? h->dyn_relocs != NULL
+ : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC))
+diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
+index b5fd05f..fbbf8d6 100644
+--- a/bfd/elf64-s390.c
++++ b/bfd/elf64-s390.c
+@@ -3582,7 +3582,7 @@ elf_s390_finish_dynamic_symbol (bfd *output_bfd,
+ RELATIVE reloc. The entry in the global offset table
+ will already have been initialized in the
+ relocate_section function. */
+- if (!h->def_regular)
++ if (!(h->def_regular || ELF_COMMON_DEF_P (h)))
+ return FALSE;
+ BFD_ASSERT((h->got.offset & 1) != 0);
+ rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
+diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
+index e0e6c16..e363eaf 100644
+--- a/bfd/elf64-x86-64.c
++++ b/bfd/elf64-x86-64.c
+@@ -4926,7 +4926,8 @@ do_ifunc_pointer:
+ {
+ /* Symbol is referenced locally. Make sure it is
+ defined locally or for a branch. */
+- fail = !h->def_regular && !branch;
++ fail = (!(h->def_regular || ELF_COMMON_DEF_P (h))
++ && !branch);
+ }
+ else if (!(bfd_link_pie (info)
+ && (h->needs_copy || eh->needs_copy)))
+diff --git a/bfd/elflink.c b/bfd/elflink.c
+index 69b66f2..cd03a13 100644
+--- a/bfd/elflink.c
++++ b/bfd/elflink.c
+@@ -1543,16 +1543,13 @@ _bfd_elf_merge_symbol (bfd *abfd,
+ represent variables; this can cause confusion in principle, but
+ any such confusion would seem to indicate an erroneous program or
+ shared library. We also permit a common symbol in a regular
+- object to override a weak symbol in a shared object. A common
+- symbol in executable also overrides a symbol in a shared object. */
++ object to override a weak symbol in a shared object. */
+
+ if (newdyn
+ && newdef
+ && (olddef
+ || (h->root.type == bfd_link_hash_common
+- && (newweak
+- || newfunc
+- || (!olddyn && bfd_link_executable (info))))))
++ && (newweak || newfunc))))
+ {
+ *override = TRUE;
+ newdef = FALSE;
+@@ -6710,6 +6707,8 @@ bfd_boolean
+ bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info)
+ {
+ const struct elf_backend_data *bed;
++ unsigned long section_sym_count;
++ bfd_size_type dynsymcount;
+
+ if (!is_elf_hash_table (info->hash))
+ return TRUE;
+@@ -6717,24 +6716,30 @@ bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info)
+ bed = get_elf_backend_data (output_bfd);
+ (*bed->elf_backend_init_index_section) (output_bfd, info);
+
++ /* Assign dynsym indices. In a shared library we generate a section
++ symbol for each output section, which come first. Next come all
++ of the back-end allocated local dynamic syms, followed by the rest
++ of the global symbols.
++
++ This is usually not needed for static binaries, however backends
++ can request to always do it, e.g. the MIPS backend uses dynamic
++ symbol counts to lay out GOT, which will be produced in the
++ presence of GOT relocations even in static binaries (holding fixed
++ data in that case, to satisfy those relocations). */
++
++ if (elf_hash_table (info)->dynamic_sections_created
++ || bed->always_renumber_dynsyms)
++ dynsymcount = _bfd_elf_link_renumber_dynsyms (output_bfd, info,
++ §ion_sym_count);
++
+ if (elf_hash_table (info)->dynamic_sections_created)
+ {
+ bfd *dynobj;
+ asection *s;
+- bfd_size_type dynsymcount;
+- unsigned long section_sym_count;
+ unsigned int dtagcount;
+
+ dynobj = elf_hash_table (info)->dynobj;
+
+- /* Assign dynsym indicies. In a shared library we generate a
+- section symbol for each output section, which come first.
+- Next come all of the back-end allocated local dynamic syms,
+- followed by the rest of the global symbols. */
+-
+- dynsymcount = _bfd_elf_link_renumber_dynsyms (output_bfd, info,
+- §ion_sym_count);
+-
+ /* Work out the size of the symbol version section. */
+ s = bfd_get_linker_section (dynobj, ".gnu.version");
+ BFD_ASSERT (s != NULL);
+@@ -12986,7 +12991,12 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info)
+ elf_link_hash_traverse (elf_hash_table (info), elf_gc_sweep_symbol,
+ &sweep_info);
+
+- _bfd_elf_link_renumber_dynsyms (abfd, info, §ion_sym_count);
++ /* We need to reassign dynsym indices now that symbols may have
++ been removed. See the call in `bfd_elf_size_dynsym_hash_dynstr'
++ for the details of the conditions used here. */
++ if (elf_hash_table (info)->dynamic_sections_created
++ || bed->always_renumber_dynsyms)
++ _bfd_elf_link_renumber_dynsyms (abfd, info, §ion_sym_count);
+ return TRUE;
+ }
+
+diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
+index ff25ebd..3c04507 100644
+--- a/bfd/elfnn-riscv.c
++++ b/bfd/elfnn-riscv.c
+@@ -52,10 +52,6 @@
+ #define ELF_MAXPAGESIZE 0x1000
+ #define ELF_COMMONPAGESIZE 0x1000
+
+-/* The global pointer's symbol name. */
+-
+-#define GP_NAME "__global_pointer$"
+-
+ /* The RISC-V linker needs to keep track of the number of relocs that it
+ decides to copy as dynamic relocs in check_relocs for each symbol.
+ This is so that it can later discard them if they are found to be
+@@ -1467,7 +1463,7 @@ riscv_global_pointer_value (struct bfd_link_info *info)
+ {
+ struct bfd_link_hash_entry *h;
+
+- h = bfd_link_hash_lookup (info->hash, GP_NAME, FALSE, FALSE, TRUE);
++ h = bfd_link_hash_lookup (info->hash, RISCV_GP_SYMBOL, FALSE, FALSE, TRUE);
+ if (h == NULL || h->type != bfd_link_hash_defined)
+ return 0;
+
+@@ -2818,7 +2814,8 @@ _bfd_riscv_relax_lui (bfd *abfd,
+ /* If gp and the symbol are in the same output section, then
+ consider only that section's alignment. */
+ struct bfd_link_hash_entry *h =
+- bfd_link_hash_lookup (link_info->hash, GP_NAME, FALSE, FALSE, TRUE);
++ bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE,
++ TRUE);
+ if (h->u.def.section->output_section == sym_sec->output_section)
+ max_alignment = (bfd_vma) 1 << sym_sec->output_section->alignment_power;
+ }
+@@ -3205,6 +3202,19 @@ riscv_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
+ return TRUE;
+ }
+
++/* Set the right mach type. */
++static bfd_boolean
++riscv_elf_object_p (bfd *abfd)
++{
++ /* There are only two mach types in RISCV currently. */
++ if (strcmp (abfd->xvec->name, "elf32-littleriscv") == 0)
++ bfd_default_set_arch_mach (abfd, bfd_arch_riscv, bfd_mach_riscv32);
++ else
++ bfd_default_set_arch_mach (abfd, bfd_arch_riscv, bfd_mach_riscv64);
++
++ return TRUE;
++}
++
+
+ #define TARGET_LITTLE_SYM riscv_elfNN_vec
+ #define TARGET_LITTLE_NAME "elfNN-littleriscv"
+@@ -3230,6 +3240,7 @@ riscv_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
+ #define elf_backend_plt_sym_val riscv_elf_plt_sym_val
+ #define elf_backend_grok_prstatus riscv_elf_grok_prstatus
+ #define elf_backend_grok_psinfo riscv_elf_grok_psinfo
++#define elf_backend_object_p riscv_elf_object_p
+ #define elf_info_to_howto_rel NULL
+ #define elf_info_to_howto riscv_info_to_howto_rela
+ #define bfd_elfNN_bfd_relax_section _bfd_riscv_relax_section
+diff --git a/bfd/elfxx-mips.h b/bfd/elfxx-mips.h
+index fa5b5d2..274129b 100644
+--- a/bfd/elfxx-mips.h
++++ b/bfd/elfxx-mips.h
+@@ -196,3 +196,4 @@ literal_reloc_p (int r_type)
+ #define elf_backend_post_process_headers _bfd_mips_post_process_headers
+ #define elf_backend_compact_eh_encoding _bfd_mips_elf_compact_eh_encoding
+ #define elf_backend_cant_unwind_opcode _bfd_mips_elf_cant_unwind_opcode
++#define elf_backend_always_renumber_dynsyms TRUE
+diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
+index d063fb7..d07600c 100644
+--- a/bfd/elfxx-target.h
++++ b/bfd/elfxx-target.h
+@@ -126,6 +126,9 @@
+ #ifndef elf_backend_extern_protected_data
+ #define elf_backend_extern_protected_data 0
+ #endif
++#ifndef elf_backend_always_renumber_dynsyms
++#define elf_backend_always_renumber_dynsyms FALSE
++#endif
+ #ifndef elf_backend_stack_align
+ #define elf_backend_stack_align 16
+ #endif
+@@ -866,7 +869,8 @@ static struct elf_backend_data elfNN_bed =
+ elf_backend_no_page_alias,
+ elf_backend_default_execstack,
+ elf_backend_caches_rawsize,
+- elf_backend_extern_protected_data
++ elf_backend_extern_protected_data,
++ elf_backend_always_renumber_dynsyms
+ };
+
+ /* Forward declaration for use when initialising alternative_target field. */
+diff --git a/bfd/version.h b/bfd/version.h
+index eda06e4..a03012f 100644
+--- a/bfd/version.h
++++ b/bfd/version.h
+@@ -1,4 +1,4 @@
+-#define BFD_VERSION_DATE 20170302
++#define BFD_VERSION_DATE 20170510
+ #define BFD_VERSION @bfd_version@
+ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
+ #define REPORT_BUGS_TO @report_bugs_to@
+diff --git a/gas/ChangeLog b/gas/ChangeLog
+index fa9ecbe..d6ab8a1 100644
+--- a/gas/ChangeLog
++++ b/gas/ChangeLog
+@@ -1,3 +1,68 @@
++2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
++
++ * config/tc-riscv.c (riscv_clear_subsets): Cast argument to free to
++ avoid const warnings.
++
++2017-03-30 Palmer Dabbelt <palmer@dabbelt.com>
++
++ * config/tc-riscv.c (riscv_clear_subsets): New function.
++ (riscv_add_subset): Call riscv_clear_subsets and riscv_set_rvc to
++ clear RVC when it's been previously set.
++
++2017-03-21 Palmer Dabbbelt <palmer@dabbelt.com>
++
++ * config/tc-riscv.c (md_show_usage): Remove defuct -m32, -m64,
++ -msoft-float, -mhard-float, -mno-rvc, and -mrvc options; and don't
++ print an invalid default ISA string.
++ * doc/c-riscv.texi (OPTIONS): Add -fpic and -fno-pic options.
++
++2017-03-14 Kito Cheng <kito.cheng@gmail.com>
++
++ * config/tc-riscv.c (validate_riscv_insn): Add 'o' RVC immediate
++ encoding format, which can accept 0-valued immediates.
++ (riscv_ip): Likewise.
++
++2017-03-02 Kuan-Lin Chen <rufus@andestech.com>
++
++ * config/tc-riscv.h (HWARD2_USE_FIXED_ADVANCE_PC): New define.
++
++2017-03-02 Kuan-Lin Chen <rufus@andestech.com>
++
++ * config/tc-riscv.c (md_apply_fix): Set fx_frag and
++ fx_next->fx_frag for CFA_advance_loc relocations.
++
++2017-03-02 Kuan-Lin Chen <rufus@andestech.com>
++
++ * config/tc-riscv.c (md_apply_fix): Compute the correct offsets
++ for CFA relocations.
++
++2017-03-27 Alan Modra <amodra@gmail.com>
++
++ PR 21303
++ * testsuite/gas/ppc/pr21303.d,
++ * testsuite/gas/ppc/pr21303.s: New test
++ * testsuite/gas/ppc/ppc.exp: Run it.
++
++2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
++
++ * config/tc-s390.c (s390_parse_cpu): Remove S390_INSTR_FLAG_VX2
++ from cpu_table. Remove vx2, and novx2 from cpu_flags.
++
++2017-03-08 Peter Bergner <bergner@vnet.ibm.com>
++
++ * testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option.
++ (objdump): Use the -Mpower8 option.
++
++2017-03-08 Peter Bergner <bergner@vnet.ibm.com>
++
++ Apply from master.
++ 2017-03-08 Peter Bergner <bergner@vnet.ibm.com>
++ * testsuite/gas/ppc/power9.d <lnia> New test.
++ * testsuite/gas/ppc/power9.s: Likewise.
++
+ 2017-03-02 Tristan Gingold <gingold@adacore.com>
+
+ * configure: Regenerate.
+diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
+index ec5b0bb..88457c6 100644
+--- a/gas/config/tc-riscv.c
++++ b/gas/config/tc-riscv.c
+@@ -121,6 +121,18 @@ riscv_subset_supports (const char *feature)
+ }
+
+ static void
++riscv_clear_subsets (void)
++{
++ while (riscv_subsets != NULL)
++ {
++ struct riscv_subset *next = riscv_subsets->next;
++ free ((void *) riscv_subsets->name);
++ free (riscv_subsets);
++ riscv_subsets = next;
++ }
++}
++
++static void
+ riscv_add_subset (const char *subset)
+ {
+ struct riscv_subset *s = xmalloc (sizeof *s);
+@@ -139,6 +151,8 @@ riscv_set_arch (const char *s)
+ const char *extension = NULL;
+ const char *p = s;
+
++ riscv_clear_subsets();
++
+ if (strncmp (p, "rv32", 4) == 0)
+ {
+ xlen = 32;
+@@ -500,6 +514,7 @@ validate_riscv_insn (const struct riscv_opcode *opc)
+ case 'c': break; /* RS1, constrained to equal sp */
+ case 'i': used_bits |= ENCODE_RVC_SIMM3(-1U); break;
+ case 'j': used_bits |= ENCODE_RVC_IMM (-1U); break;
++ case 'o': used_bits |= ENCODE_RVC_IMM (-1U); break;
+ case 'k': used_bits |= ENCODE_RVC_LW_IMM (-1U); break;
+ case 'l': used_bits |= ENCODE_RVC_LD_IMM (-1U); break;
+ case 'm': used_bits |= ENCODE_RVC_LWSP_IMM (-1U); break;
+@@ -1321,6 +1336,13 @@ rvc_imm_done:
+ ip->insn_opcode |=
+ ENCODE_RVC_LDSP_IMM (imm_expr->X_add_number);
+ goto rvc_imm_done;
++ case 'o':
++ if (my_getSmallExpression (imm_expr, imm_reloc, s, p)
++ || imm_expr->X_op != O_constant
++ || !VALID_RVC_IMM (imm_expr->X_add_number))
++ break;
++ ip->insn_opcode |= ENCODE_RVC_IMM (imm_expr->X_add_number);
++ goto rvc_imm_done;
+ case 'K':
+ if (my_getSmallExpression (imm_expr, imm_reloc, s, p)
+ || imm_expr->X_op != O_constant
+@@ -1794,6 +1816,7 @@ riscv_after_parse_args (void)
+ riscv_set_arch (xlen == 64 ? "rv64g" : "rv32g");
+
+ /* Add the RVC extension, regardless of -march, to support .option rvc. */
++ riscv_set_rvc (FALSE);
+ if (riscv_subset_supports ("c"))
+ riscv_set_rvc (TRUE);
+ else
+@@ -1837,6 +1860,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
+ unsigned int subtype;
+ bfd_byte *buf = (bfd_byte *) (fixP->fx_frag->fr_literal + fixP->fx_where);
+ bfd_boolean relaxable = FALSE;
++ offsetT loc;
+
+ /* Remember value for tc_gen_reloc. */
+ fixP->fx_addnumber = *valP;
+@@ -1922,30 +1946,31 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
+
+ case BFD_RELOC_RISCV_CFA:
+ /* Load the byte to get the subtype. */
+- subtype = bfd_get_8 (NULL, &fixP->fx_frag->fr_literal[fixP->fx_where]);
++ subtype = bfd_get_8 (NULL, &((fragS *) (fixP->fx_frag->fr_opcode))->fr_literal[fixP->fx_where]);
++ loc = fixP->fx_frag->fr_fix - (subtype & 7);
+ switch (subtype)
+ {
+ case DW_CFA_advance_loc1:
+- fixP->fx_where++;
+- fixP->fx_next->fx_where++;
++ fixP->fx_where = loc + 1;
++ fixP->fx_next->fx_where = loc + 1;
+ fixP->fx_r_type = BFD_RELOC_RISCV_SET8;
+ fixP->fx_next->fx_r_type = BFD_RELOC_RISCV_SUB8;
+ break;
+
+ case DW_CFA_advance_loc2:
+ fixP->fx_size = 2;
+- fixP->fx_where++;
+ fixP->fx_next->fx_size = 2;
+- fixP->fx_next->fx_where++;
++ fixP->fx_where = loc + 1;
++ fixP->fx_next->fx_where = loc + 1;
+ fixP->fx_r_type = BFD_RELOC_RISCV_SET16;
+ fixP->fx_next->fx_r_type = BFD_RELOC_RISCV_SUB16;
+ break;
+
+ case DW_CFA_advance_loc4:
+ fixP->fx_size = 4;
+- fixP->fx_where++;
+ fixP->fx_next->fx_size = 4;
+- fixP->fx_next->fx_where++;
++ fixP->fx_where = loc;
++ fixP->fx_next->fx_where = loc;
+ fixP->fx_r_type = BFD_RELOC_RISCV_SET32;
+ fixP->fx_next->fx_r_type = BFD_RELOC_RISCV_SUB32;
+ break;
+@@ -1954,6 +1979,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
+ if (subtype < 0x80 && (subtype & 0x40))
+ {
+ /* DW_CFA_advance_loc */
++ fixP->fx_frag = (fragS *) fixP->fx_frag->fr_opcode;
++ fixP->fx_next->fx_frag = fixP->fx_frag;
+ fixP->fx_r_type = BFD_RELOC_RISCV_SET6;
+ fixP->fx_next->fx_r_type = BFD_RELOC_RISCV_SUB6;
+ }
+@@ -2069,7 +2096,6 @@ riscv_pre_output_hook (void)
+ {
+ if (frag->fr_type == rs_cfa)
+ {
+- fragS *loc4_frag;
+ expressionS exp;
+
+ symbolS *add_symbol = frag->fr_symbol->sy_value.X_add_symbol;
+@@ -2080,8 +2106,7 @@ riscv_pre_output_hook (void)
+ exp.X_add_number = 0;
+ exp.X_op_symbol = op_symbol;
+
+- loc4_frag = (fragS *) frag->fr_opcode;
+- fix_new_exp (loc4_frag, (int) frag->fr_offset, 1, &exp, 0,
++ fix_new_exp (frag, (int) frag->fr_offset, 1, &exp, 0,
+ BFD_RELOC_RISCV_CFA);
+ }
+ }
+@@ -2455,15 +2480,10 @@ md_show_usage (FILE *stream)
+ {
+ fprintf (stream, _("\
+ RISC-V options:\n\
+- -m32 assemble RV32 code\n\
+- -m64 assemble RV64 code (default)\n\
+ -fpic generate position-independent code\n\
+ -fno-pic don't generate position-independent code (default)\n\
+- -msoft-float don't use F registers for floating-point values\n\
+- -mhard-float use F registers for floating-point values (default)\n\
+- -mno-rvc disable the C extension for compressed instructions (default)\n\
+- -mrvc enable the C extension for compressed instructions\n\
+- -march=ISA set the RISC-V architecture, RV64IMAFD by default\n\
++ -march=ISA set the RISC-V architecture\n\
++ -mabi=ABI set the RISC-V ABI\n\
+ "));
+ }
+
+diff --git a/gas/config/tc-riscv.h b/gas/config/tc-riscv.h
+index ae8d60e..e92b387 100644
+--- a/gas/config/tc-riscv.h
++++ b/gas/config/tc-riscv.h
+@@ -112,4 +112,7 @@ extern int tc_riscv_regname_to_dw2regnum (char *);
+ #define elf_tc_final_processing riscv_elf_final_processing
+ extern void riscv_elf_final_processing (void);
+
++/* Adjust debug_line after relaxation. */
++#define DWARF2_USE_FIXED_ADVANCE_PC 1
++
+ #endif /* TC_RISCV */
+diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
+index 7c8087e..dccbe2c 100644
+--- a/gas/config/tc-s390.c
++++ b/gas/config/tc-s390.c
+@@ -291,7 +291,7 @@ s390_parse_cpu (const char * arg,
+ { STRING_COMMA_LEN ("z13"), STRING_COMMA_LEN ("arch11"),
+ S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
+ { STRING_COMMA_LEN ("arch12"), STRING_COMMA_LEN (""),
+- S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX | S390_INSTR_FLAG_VX2 }
++ S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX }
+ };
+ static struct
+ {
+@@ -303,9 +303,7 @@ s390_parse_cpu (const char * arg,
+ { "htm", S390_INSTR_FLAG_HTM, TRUE },
+ { "nohtm", S390_INSTR_FLAG_HTM, FALSE },
+ { "vx", S390_INSTR_FLAG_VX, TRUE },
+- { "novx", S390_INSTR_FLAG_VX, FALSE },
+- { "vx2", S390_INSTR_FLAG_VX2, TRUE },
+- { "novx2", S390_INSTR_FLAG_VX2, FALSE }
++ { "novx", S390_INSTR_FLAG_VX, FALSE }
+ };
+ unsigned int icpu;
+ char *ilp_bak;
+diff --git a/gas/doc/c-riscv.texi b/gas/doc/c-riscv.texi
+index 0fa1b58..2efba4b 100644
+--- a/gas/doc/c-riscv.texi
++++ b/gas/doc/c-riscv.texi
+@@ -26,6 +26,14 @@ The following table lists all availiable RISC-V specific options
+ @c man begin OPTIONS
+ @table @gcctabopt
+
++@cindex @samp{-fpic} option, RISC-V
++@item -fpic
++Generate position-independent code
++
++@cindex @samp{-fno-pic} option, RISC-V
++@item -fno-pic
++Don't generate position-independent code (default)
++
+ @cindex @samp{-march=ISA} option, RISC-V
+ @item -march=ISA
+ Select the base isa, as specified by ISA. For example -march=rv32ima.
+diff --git a/gas/testsuite/gas/ppc/altivec2.d b/gas/testsuite/gas/ppc/altivec2.d
+index fc10fb5..26f9afa 100644
+--- a/gas/testsuite/gas/ppc/altivec2.d
++++ b/gas/testsuite/gas/ppc/altivec2.d
+@@ -1,5 +1,5 @@
+-#as: -maltivec
+-#objdump: -dr -Maltivec
++#as: -mpower8
++#objdump: -dr -Mpower8
+ #name: Altivec ISA 2.07 instructions
+
+ .*
+diff --git a/gas/testsuite/gas/ppc/power9.d b/gas/testsuite/gas/ppc/power9.d
+index 9ba53d0..a67898f 100644
+--- a/gas/testsuite/gas/ppc/power9.d
++++ b/gas/testsuite/gas/ppc/power9.d
+@@ -312,8 +312,9 @@ Disassembly of section \.text:
+ .*: (f1 31 9d 6f|6f 9d 31 f1) xscvdphp vs41,vs51
+ .*: (f1 58 a7 6f|6f a7 58 f1) xvcvhpsp vs42,vs52
+ .*: (f1 79 af 6f|6f af 79 f1) xvcvsphp vs43,vs53
+-.*: (4c 60 00 04|04 00 60 4c) addpcis r3,0
+-.*: (4c 60 00 04|04 00 60 4c) addpcis r3,0
++.*: (4c 60 00 04|04 00 60 4c) lnia r3
++.*: (4c 60 00 04|04 00 60 4c) lnia r3
++.*: (4c 60 00 04|04 00 60 4c) lnia r3
+ .*: (4c 80 00 05|05 00 80 4c) addpcis r4,1
+ .*: (4c 80 00 05|05 00 80 4c) addpcis r4,1
+ .*: (4c bf ff c4|c4 ff bf 4c) addpcis r5,-2
+diff --git a/gas/testsuite/gas/ppc/power9.s b/gas/testsuite/gas/ppc/power9.s
+index 27f1122..4e3530f 100644
+--- a/gas/testsuite/gas/ppc/power9.s
++++ b/gas/testsuite/gas/ppc/power9.s
+@@ -303,6 +303,7 @@ power9:
+ xscvdphp 41,51
+ xvcvhpsp 42,52
+ xvcvsphp 43,53
++ lnia 3
+ addpcis 3,0
+ subpcis 3,0
+ addpcis 4,1
+diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
+index 86db455..55367ad 100644
+--- a/gas/testsuite/gas/ppc/ppc.exp
++++ b/gas/testsuite/gas/ppc/ppc.exp
+@@ -50,6 +50,7 @@ if { [istarget powerpc*-*-*] } then {
+ run_dump_test "common"
+ run_dump_test "476"
+ run_dump_test "a2"
++ run_dump_test "pr21303"
+ if { ![istarget powerpc*le-*-*] } then {
+ run_dump_test "vle"
+ run_dump_test "vle-reloc"
+diff --git a/gas/testsuite/gas/ppc/pr21303.d b/gas/testsuite/gas/ppc/pr21303.d
+new file mode 100644
+index 0000000..64761a4
+--- /dev/null
++++ b/gas/testsuite/gas/ppc/pr21303.d
+@@ -0,0 +1,12 @@
++#objdump: -d -Me200z4
++#as: -a32 -mbig -me200z4
++
++.*
++
++Disassembly of section \.text:
++
++0+ <\.text>:
++ 0: 70 00 00 00 e_li r0,0
++ 4: 7c 01 14 04 lbdcbx r0,r1,r2
++ 8: 7c 01 14 44 lhdcbx r0,r1,r2
++ c: 7c 01 14 84 lwdcbx r0,r1,r2
+diff --git a/gas/testsuite/gas/ppc/pr21303.s b/gas/testsuite/gas/ppc/pr21303.s
+new file mode 100644
+index 0000000..890ba94
+--- /dev/null
++++ b/gas/testsuite/gas/ppc/pr21303.s
+@@ -0,0 +1,5 @@
++ .text
++ e_li 0, 0
++ lbdcbx 0, 1, 2
++ lhdcbx 0, 1, 2
++ lwdcbx 0, 1, 2
+diff --git a/include/ChangeLog b/include/ChangeLog
+index af39f33..dddecfb 100644
+--- a/include/ChangeLog
++++ b/include/ChangeLog
+@@ -1,3 +1,58 @@
++2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
++
++ * elf/riscv.h (RISCV_GP_SYMBOL): New define.
++
++2017-03-27 Andrew Waterman <andrew@sifive.com>
++
++ * opcode/riscv-opc.h (CSR_PMPCFG0): New define.
++ (CSR_PMPCFG1): Likewise.
++ (CSR_PMPCFG2): Likewise.
++ (CSR_PMPCFG3): Likewise.
++ (CSR_PMPADDR0): Likewise.
++ (CSR_PMPADDR1): Likewise.
++ (CSR_PMPADDR2): Likewise.
++ (CSR_PMPADDR3): Likewise.
++ (CSR_PMPADDR4): Likewise.
++ (CSR_PMPADDR5): Likewise.
++ (CSR_PMPADDR6): Likewise.
++ (CSR_PMPADDR7): Likewise.
++ (CSR_PMPADDR8): Likewise.
++ (CSR_PMPADDR9): Likewise.
++ (CSR_PMPADDR10): Likewise.
++ (CSR_PMPADDR11): Likewise.
++ (CSR_PMPADDR12): Likewise.
++ (CSR_PMPADDR13): Likewise.
++ (CSR_PMPADDR14): Likewise.
++ (CSR_PMPADDR15): Likewise.
++ (pmpcfg0): Declare register.
++ (pmpcfg1): Likewise.
++ (pmpcfg2): Likewise.
++ (pmpcfg3): Likewise.
++ (pmpaddr0): Likewise.
++ (pmpaddr1): Likewise.
++ (pmpaddr2): Likewise.
++ (pmpaddr3): Likewise.
++ (pmpaddr4): Likewise.
++ (pmpaddr5): Likewise.
++ (pmpaddr6): Likewise.
++ (pmpaddr7): Likewise.
++ (pmpaddr8): Likewise.
++ (pmpaddr9): Likewise.
++ (pmpaddr10): Likewise.
++ (pmpaddr11): Likewise.
++ (pmpaddr12): Likewise.
++ (pmpaddr13): Likewise.
++ (pmpaddr14): Likewise.
++ (pmpaddr15): Likewise.
++
++2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
++
++ * opcode/s390.h (S390_INSTR_FLAG_VX2): Remove.
++ (S390_INSTR_FLAG_FACILITY_MASK): Adjust value.
++
+ 2017-02-28 Alan Modra <amodra@gmail.com>
+
+ * elf/ppc64.h (R_PPC64_16DX_HA): New. Expand fake reloc comment.
+diff --git a/include/elf/riscv.h b/include/elf/riscv.h
+index 526bc11..daa4463 100644
+--- a/include/elf/riscv.h
++++ b/include/elf/riscv.h
+@@ -109,4 +109,7 @@ END_RELOC_NUMBERS (R_RISCV_max)
+ /* File uses the quad-float ABI. */
+ #define EF_RISCV_FLOAT_ABI_QUAD 0x0006
+
++/* The name of the global pointer symbol. */
++#define RISCV_GP_SYMBOL "__global_pointer$"
++
+ #endif /* _ELF_RISCV_H */
+diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
+index 9269c6b..f80037b 100644
+--- a/include/opcode/riscv-opc.h
++++ b/include/opcode/riscv-opc.h
+@@ -556,6 +556,26 @@
+ #define CSR_MCAUSE 0x342
+ #define CSR_MBADADDR 0x343
+ #define CSR_MIP 0x344
++#define CSR_PMPCFG0 0x3a0
++#define CSR_PMPCFG1 0x3a1
++#define CSR_PMPCFG2 0x3a2
++#define CSR_PMPCFG3 0x3a3
++#define CSR_PMPADDR0 0x3b0
++#define CSR_PMPADDR1 0x3b1
++#define CSR_PMPADDR2 0x3b2
++#define CSR_PMPADDR3 0x3b3
++#define CSR_PMPADDR4 0x3b4
++#define CSR_PMPADDR5 0x3b5
++#define CSR_PMPADDR6 0x3b6
++#define CSR_PMPADDR7 0x3b7
++#define CSR_PMPADDR8 0x3b8
++#define CSR_PMPADDR9 0x3b9
++#define CSR_PMPADDR10 0x3ba
++#define CSR_PMPADDR11 0x3bb
++#define CSR_PMPADDR12 0x3bc
++#define CSR_PMPADDR13 0x3bd
++#define CSR_PMPADDR14 0x3be
++#define CSR_PMPADDR15 0x3bf
+ #define CSR_TSELECT 0x7a0
+ #define CSR_TDATA1 0x7a1
+ #define CSR_TDATA2 0x7a2
+@@ -1014,6 +1034,26 @@ DECLARE_CSR(mepc, CSR_MEPC)
+ DECLARE_CSR(mcause, CSR_MCAUSE)
+ DECLARE_CSR(mbadaddr, CSR_MBADADDR)
+ DECLARE_CSR(mip, CSR_MIP)
++DECLARE_CSR(pmpcfg0, CSR_PMPCFG0)
++DECLARE_CSR(pmpcfg1, CSR_PMPCFG1)
++DECLARE_CSR(pmpcfg2, CSR_PMPCFG2)
++DECLARE_CSR(pmpcfg3, CSR_PMPCFG3)
++DECLARE_CSR(pmpaddr0, CSR_PMPADDR0)
++DECLARE_CSR(pmpaddr1, CSR_PMPADDR1)
++DECLARE_CSR(pmpaddr2, CSR_PMPADDR2)
++DECLARE_CSR(pmpaddr3, CSR_PMPADDR3)
++DECLARE_CSR(pmpaddr4, CSR_PMPADDR4)
++DECLARE_CSR(pmpaddr5, CSR_PMPADDR5)
++DECLARE_CSR(pmpaddr6, CSR_PMPADDR6)
++DECLARE_CSR(pmpaddr7, CSR_PMPADDR7)
++DECLARE_CSR(pmpaddr8, CSR_PMPADDR8)
++DECLARE_CSR(pmpaddr9, CSR_PMPADDR9)
++DECLARE_CSR(pmpaddr10, CSR_PMPADDR10)
++DECLARE_CSR(pmpaddr11, CSR_PMPADDR11)
++DECLARE_CSR(pmpaddr12, CSR_PMPADDR12)
++DECLARE_CSR(pmpaddr13, CSR_PMPADDR13)
++DECLARE_CSR(pmpaddr14, CSR_PMPADDR14)
++DECLARE_CSR(pmpaddr15, CSR_PMPADDR15)
+ DECLARE_CSR(tselect, CSR_TSELECT)
+ DECLARE_CSR(tdata1, CSR_TDATA1)
+ DECLARE_CSR(tdata2, CSR_TDATA2)
+diff --git a/include/opcode/s390.h b/include/opcode/s390.h
+index 7ce5616..2e07664 100644
+--- a/include/opcode/s390.h
++++ b/include/opcode/s390.h
+@@ -51,8 +51,7 @@ enum s390_opcode_cpu_val
+
+ #define S390_INSTR_FLAG_HTM 0x2
+ #define S390_INSTR_FLAG_VX 0x4
+-#define S390_INSTR_FLAG_VX2 0x8
+-#define S390_INSTR_FLAG_FACILITY_MASK 0xe
++#define S390_INSTR_FLAG_FACILITY_MASK 0x6
+
+ /* The opcode table is an array of struct s390_opcode. */
+
+diff --git a/ld/ChangeLog b/ld/ChangeLog
+index fd3e232..682ac6c 100644
+--- a/ld/ChangeLog
++++ b/ld/ChangeLog
+@@ -1,3 +1,30 @@
++2017-04-24 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/20815
++ * testsuite/ld-i386/vxworks2.sd: Add space for program headers.
++
++2017-03-28 Hans-Peter Nilsson <hp@axis.com>
++
++ PR ld/16044
++ * testsuite/ld-cris/pr16044.d, testsuite/ld-cris/dso-1c.s,
++ testsuite/ld-cris/dso-2b.s, testsuite/ld-cris/dso-4.s: New test.
++
++2017-04-10 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/19579
++ PR ld/21306
++ * testsuite/ld-elf/pr19579a.c (main): Updated.
++
++2017-04-05 Maciej W. Rozycki <macro@imgtec.com>
++
++ PR ld/21233
++ * ldlang.c (insert_undefined): Set `mark' for ELF symbols.
++
++2017-03-07 Alan Modra <amodra@gmail.com>
++
++ * ldlang.c (open_input_bfds): Check that lang_assignment_statement
++ is not an assert before referencing defsym.
++
+ 2017-03-02 Tristan Gingold <gingold@adacore.com>
+
+ * configure: Regenerate.
+diff --git a/ld/ldlang.c b/ld/ldlang.c
+index dafc348..a8ff0a4 100644
+--- a/ld/ldlang.c
++++ b/ld/ldlang.c
+@@ -3377,7 +3377,8 @@ open_input_bfds (lang_statement_union_type *s, enum open_bfd_mode mode)
+ #endif
+ break;
+ case lang_assignment_statement_enum:
+- if (s->assignment_statement.exp->assign.defsym)
++ if (s->assignment_statement.exp->type.node_class != etree_assert
++ && s->assignment_statement.exp->assign.defsym)
+ /* This is from a --defsym on the command line. */
+ exp_fold_tree_no_dot (s->assignment_statement.exp);
+ break;
+@@ -3431,6 +3432,8 @@ insert_undefined (const char *name)
+ {
+ h->type = bfd_link_hash_undefined;
+ h->u.undef.abfd = NULL;
++ if (is_elf_hash_table (link_info.hash))
++ ((struct elf_link_hash_entry *) h)->mark = 1;
+ bfd_link_add_undef (link_info.hash, h);
+ }
+ }
+diff --git a/ld/testsuite/ld-cris/dso-1c.s b/ld/testsuite/ld-cris/dso-1c.s
+new file mode 100644
+index 0000000..92ad4ee
+--- /dev/null
++++ b/ld/testsuite/ld-cris/dso-1c.s
+@@ -0,0 +1,2 @@
++ .include "dso-1.s"
++ .hidden dsofn
+diff --git a/ld/testsuite/ld-cris/dso-2b.s b/ld/testsuite/ld-cris/dso-2b.s
+new file mode 100644
+index 0000000..f1fbf14
+--- /dev/null
++++ b/ld/testsuite/ld-cris/dso-2b.s
+@@ -0,0 +1,2 @@
++ .include "dso-2.s"
++ .hidden dsofn
+diff --git a/ld/testsuite/ld-cris/dso-4.s b/ld/testsuite/ld-cris/dso-4.s
+new file mode 100644
+index 0000000..767a0d8
+--- /dev/null
++++ b/ld/testsuite/ld-cris/dso-4.s
+@@ -0,0 +1,6 @@
++ .text
++ .global export_2
++ .type export_2,@function
++export_2:
++ .hidden dsofn
++ move.d dsofn:GOTOFF,$r4
+diff --git a/ld/testsuite/ld-cris/pr16044.d b/ld/testsuite/ld-cris/pr16044.d
+new file mode 100644
+index 0000000..e5d373d
+--- /dev/null
++++ b/ld/testsuite/ld-cris/pr16044.d
+@@ -0,0 +1,43 @@
++#source: dso-4.s
++#source: dso-2b.s
++#source: dso-1c.s
++#as: --pic --no-underscore --em=criself -I$srcdir/$subdir
++#ld: --shared -m crislinux
++#readelf: -s -r
++
++# PR 16044 is about a (compile-time-non-local) hidden function symbol,
++# entered as an undef reference with a R_CRIS_32_PLT_GOTREL relocation
++# referring to a hidden symbol, later defined. Here, we invalidly
++# incremented the h->plt.refcount (from -1) as part of that relocation
++# processing. There are some PLTGOT relocations. As there are no
++# circumstances requiring a PLT entry for this symbol, its PLT entry
++# can be eliminated and the PLTGOT relocations can be made to a static
++# element in the GOT, relocated with the absolute-to-relative
++# R_CRIS_RELATIVE relocation without symbol lookup. As part of
++# eliminating unneeded PLT entries (and PLTGOT to "static" GOT
++# elimination), a later pass noticed the inconsistency through an
++# assert.
++#
++# The key points in this dump that may need future adjustments are the
++# single dynamic relocation, that the dsofn symbol it points to, is
++# local, its absence from the dynamic symbol table and that the
++# relocation and symbol values match.
++
++Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
++ Offset[ ]+Info[ ]+Type[ ]+Sym\.Value Sym\. Name \+ Addend
++[0-9a-f]+ 0+[0-9a-f]+ R_CRIS_RELATIVE[ ]+184
++
++Symbol table '\.dynsym' contains 7 entries:
++ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
++ +0: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND
++ +1: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5
++ +2: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +5 export_1
++ +3: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +7 __bss_start
++ +4: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +7 _edata
++ +5: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +7 _end
++ +6: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +5 export_2
++
++Symbol table '\.symtab' contains [0-9]+ entries:
++#...
++ +[0-9]+: 0+184 +2 FUNC + LOCAL + DEFAULT + 5 dsofn
++#...
+diff --git a/ld/testsuite/ld-elf/pr19579a.c b/ld/testsuite/ld-elf/pr19579a.c
+index e4a6eb1..69d0f35 100644
+--- a/ld/testsuite/ld-elf/pr19579a.c
++++ b/ld/testsuite/ld-elf/pr19579a.c
+@@ -9,7 +9,7 @@ extern int *bar_p (void);
+ int
+ main ()
+ {
+- if (foo[0] == 0 && foo == foo_p () && bar[0] == 0 && bar == bar_p ())
++ if (foo[0] == 0 && foo == foo_p () && bar[0] == -1 && bar == bar_p ())
+ printf ("PASS\n");
+ return 0;
+ }
+diff --git a/ld/testsuite/ld-i386/vxworks2.sd b/ld/testsuite/ld-i386/vxworks2.sd
+index 5ff87d3..4f56f2a 100644
+--- a/ld/testsuite/ld-i386/vxworks2.sd
++++ b/ld/testsuite/ld-i386/vxworks2.sd
+@@ -6,7 +6,7 @@ Program Headers:
+ Type .*
+ PHDR .*
+ #...
+- LOAD .* 0x00080000 0x00080000 .* R E 0x1000
++ LOAD .* 0x0007f000 0x0007f000 .* R E 0x1000
+ LOAD .* 0x00081000 0x00081000 .* RW 0x1000
+ DYNAMIC .*
+
+diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
+index 1ea126a..5dfe166 100644
+--- a/opcodes/ChangeLog
++++ b/opcodes/ChangeLog
+@@ -1,3 +1,67 @@
++2017-05-01 Michael Clark <michaeljclark@mac.com>
++
++ * riscv-opc.c (riscv_opcodes) <call>: Use RA not T1 as a temporary
++ register.
++
++2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
++
++ * riscv-dis.c (riscv_disassemble_insn): Change "_gp" to
++ RISCV_GP_SYMBOL.
++
++2017-03-14 Kito Cheng <kito.cheng@gmail.com>
++
++ * riscv-opc.c (riscv_opcodes> <c.li>: Use the 'o' immediate encoding.
++ <c.andi>: Likewise.
++ <c.addiw> Likewise.
++
++2017-03-14 Kito Cheng <kito.cheng@gmail.com>
++
++ * riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode.
++
++2017-03-13 Andrew Waterman <andrew@sifive.com>
++
++ * riscv-opc.c (riscv_opcodes) <srli/C>: Use match_opcode.
++ <srl> Likewise.
++ <srai> Likewise.
++ <sra> Likewise.
++
++2017-03-27 Alan Modra <amodra@gmail.com>
++
++ PR 21303
++ * ppc-dis.c (struct ppc_mopt): Comment.
++ (ppc_opts <e200z4>): Move PPC_OPCODE_VLE from .sticky to .cpu.
++
++2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
++
++ * s390-mkopc.c (main): Remove vx2 check.
++ * s390-opc.txt: Remove vx2 instruction flags.
++
++2017-03-08 Peter Bergner <bergner@vnet.ibm.com>
++
++ * ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2;
++ <vsx>: Do not use PPC_OPCODE_VSX3;
++
++2017-03-08 Peter Bergner <bergner@vnet.ibm.com>
++
++ Apply from master.
++ 2017-03-08 Peter Bergner <bergner@vnet.ibm.com>
++ * ppc-opc.c (powerpc_opcodes) <lnia>: New extended mnemonic.
++
++2017-03-07 Alan Modra <amodra@gmail.com>
++
++ Apply from master
++ 2017-03-06 Alan Modra <amodra@gmail.com>
++ PR 21124
++ * ppc-opc.c (extract_esync, extract_ls, extract_ral, extract_ram)
++ (extract_raq, extract_ras, extract_rbx): New functions.
++ (powerpc_operands): Use opposite corresponding insert function.
++ (Q_MASK): Define.
++ (powerpc_opcodes): Apply Q_MASK to all quad insns with even
++ register restriction.
++
+ 2017-03-02 Tristan Gingold <gingold@adacore.com>
+
+ * configure: Regenerate.
+diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c
+index e0eff7a..baa7388 100644
+--- a/opcodes/ppc-dis.c
++++ b/opcodes/ppc-dis.c
+@@ -45,8 +45,19 @@ struct dis_private
+ (((struct dis_private *) ((INFO)->private_data))->dialect)
+
+ struct ppc_mopt {
++ /* Option string, without -m or -M prefix. */
+ const char *opt;
++ /* CPU option flags. */
+ ppc_cpu_t cpu;
++ /* Flags that should stay on, even when combined with another cpu
++ option. This should only be used for generic options like
++ "-many" or "-maltivec" where it is reasonable to add some
++ capability to another cpu selection. The added flags are sticky
++ so that, for example, "-many -me500" and "-me500 -many" result in
++ the same assembler or disassembler behaviour. Do not use
++ "sticky" for specific cpus, as this will prevent that cpu's flags
++ from overriding the defaults set in powerpc_init_dialect or a
++ prior -m option. */
+ ppc_cpu_t sticky;
+ };
+
+@@ -93,7 +104,7 @@ struct ppc_mopt ppc_opts[] = {
+ | PPC_OPCODE_A2),
+ 0 },
+ { "altivec", PPC_OPCODE_PPC,
+- PPC_OPCODE_ALTIVEC | PPC_OPCODE_ALTIVEC2 },
++ PPC_OPCODE_ALTIVEC },
+ { "any", 0,
+ PPC_OPCODE_ANY },
+ { "booke", PPC_OPCODE_PPC | PPC_OPCODE_BOOKE,
+@@ -108,8 +119,8 @@ struct ppc_mopt ppc_opts[] = {
+ { "e200z4", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE| PPC_OPCODE_SPE
+ | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK
+ | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI
+- | PPC_OPCODE_E500 | PPC_OPCODE_E200Z4),
+- PPC_OPCODE_VLE },
++ | PPC_OPCODE_E500 | PPC_OPCODE_VLE | PPC_OPCODE_E200Z4),
++ 0 },
+ { "e300", PPC_OPCODE_PPC | PPC_OPCODE_E300,
+ 0 },
+ { "e500", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE
+@@ -221,7 +232,7 @@ struct ppc_mopt ppc_opts[] = {
+ | PPC_OPCODE_E500),
+ PPC_OPCODE_VLE },
+ { "vsx", PPC_OPCODE_PPC,
+- PPC_OPCODE_VSX | PPC_OPCODE_VSX3 },
++ PPC_OPCODE_VSX },
+ { "htm", PPC_OPCODE_PPC,
+ PPC_OPCODE_HTM },
+ };
+diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
+index 9ac779c..f7d1dcd 100644
+--- a/opcodes/ppc-opc.c
++++ b/opcodes/ppc-opc.c
+@@ -54,6 +54,7 @@ static long extract_bo (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_boe (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_boe (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_esync (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_esync (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_dcmxs (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_dcmxs (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_dxd (unsigned long, long, ppc_cpu_t, const char **);
+@@ -65,6 +66,7 @@ static long extract_fxm (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_li20 (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_li20 (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_ls (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_ls (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_mbe (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_mbe (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_mb6 (unsigned long, long, ppc_cpu_t, const char **);
+@@ -76,12 +78,17 @@ static long extract_nsi (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_oimm (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_oimm (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_ral (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_ral (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_ram (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_ram (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_raq (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_raq (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_ras (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_ras (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_rbs (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_rbs (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_rbx (unsigned long, long, ppc_cpu_t, const char **);
++static long extract_rbx (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_rx (unsigned long, long, ppc_cpu_t, const char **);
+ static long extract_rx (unsigned long, ppc_cpu_t, int *);
+ static unsigned long insert_ry (unsigned long, long, ppc_cpu_t, const char **);
+@@ -462,7 +469,7 @@ const struct powerpc_operand powerpc_operands[] =
+ /* The LS or WC field in an X (sync or wait) form instruction. */
+ #define LS LIA + 1
+ #define WC LS
+- { 0x3, 21, insert_ls, NULL, PPC_OPERAND_OPTIONAL },
++ { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
+
+ /* The ME field in an M form instruction. */
+ #define ME LS + 1
+@@ -519,24 +526,24 @@ const struct powerpc_operand powerpc_operands[] =
+ value restrictions. */
+ #define RAQ RA0 + 1
+ #define RAX RAQ
+- { 0x1f, 16, insert_raq, NULL, PPC_OPERAND_GPR_0 },
++ { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
+
+ /* The RA field in a D or X form instruction which is an updating
+ load, which means that the RA field may not be zero and may not
+ equal the RT field. */
+ #define RAL RAQ + 1
+- { 0x1f, 16, insert_ral, NULL, PPC_OPERAND_GPR_0 },
++ { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
+
+ /* The RA field in an lmw instruction, which has special value
+ restrictions. */
+ #define RAM RAL + 1
+- { 0x1f, 16, insert_ram, NULL, PPC_OPERAND_GPR_0 },
++ { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
+
+ /* The RA field in a D or X form instruction which is an updating
+ store or an updating floating point load, which means that the RA
+ field may not be zero. */
+ #define RAS RAM + 1
+- { 0x1f, 16, insert_ras, NULL, PPC_OPERAND_GPR_0 },
++ { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
+
+ /* The RA field of the tlbwe, dccci and iccci instructions,
+ which are optional. */
+@@ -557,7 +564,7 @@ const struct powerpc_operand powerpc_operands[] =
+ /* The RB field in an lswx instruction, which has special value
+ restrictions. */
+ #define RBX RBS + 1
+- { 0x1f, 11, insert_rbx, NULL, PPC_OPERAND_GPR },
++ { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
+
+ /* The RB field of the dccci and iccci instructions, which are optional. */
+ #define RBOPT RBX + 1
+@@ -580,6 +587,7 @@ const struct powerpc_operand powerpc_operands[] =
+ which have special value restrictions. */
+ #define RSQ RS + 1
+ #define RTQ RSQ
++#define Q_MASK (1 << 21)
+ { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
+
+ /* The RS field of the tlbwe instruction, which is optional. */
+@@ -694,7 +702,7 @@ const struct powerpc_operand powerpc_operands[] =
+
+ /* The ESYNC field in an X (sync) form instruction. */
+ #define ESYNC STRM + 1
+- { 0xf, 16, insert_esync, NULL, PPC_OPERAND_OPTIONAL },
++ { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
+
+ /* The SV field in a POWER SC form instruction. */
+ #define SV ESYNC + 1
+@@ -1533,6 +1541,22 @@ insert_ls (unsigned long insn,
+ return insn | ((value & 0x3) << 21);
+ }
+
++static long
++extract_ls (unsigned long insn,
++ ppc_cpu_t dialect,
++ int *invalid)
++{
++ unsigned long lvalue = (insn >> 21) & 3;
++
++ if (((insn >> 1) & 0x3ff) == 598)
++ {
++ unsigned long max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
++ if (lvalue > max_lvalue)
++ *invalid = 1;
++ }
++ return lvalue;
++}
++
+ /* The 4-bit E field in a sync instruction that accepts 2 operands.
+ If ESYNC is non-zero, then the L field must be either 0 or 1 and
+ the complement of ESYNC-bit2. */
+@@ -1560,6 +1584,27 @@ insert_esync (unsigned long insn,
+ return insn | ((value & 0xf) << 16);
+ }
+
++static long
++extract_esync (unsigned long insn,
++ ppc_cpu_t dialect,
++ int *invalid)
++{
++ unsigned long ls = (insn >> 21) & 0x3;
++ unsigned long lvalue = (insn >> 16) & 0xf;
++
++ if (lvalue == 0)
++ {
++ if (((dialect & PPC_OPCODE_E6500) != 0 && ls > 1)
++ || ((dialect & PPC_OPCODE_POWER9) != 0 && ls > 2))
++ *invalid = 1;
++ }
++ else if ((ls & ~0x1)
++ || (((lvalue >> 1) & 0x1) ^ ls) == 0)
++ *invalid = 1;
++
++ return lvalue;
++}
++
+ /* The MB and ME fields in an M form instruction expressed as a single
+ operand which is itself a bitmask. The extraction function always
+ marks it as invalid, since we never want to recognize an
+@@ -1743,6 +1788,19 @@ insert_ral (unsigned long insn,
+ return insn | ((value & 0x1f) << 16);
+ }
+
++static long
++extract_ral (unsigned long insn,
++ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
++ int *invalid)
++{
++ long rtvalue = (insn >> 21) & 0x1f;
++ long ravalue = (insn >> 16) & 0x1f;
++
++ if (rtvalue == ravalue || ravalue == 0)
++ *invalid = 1;
++ return ravalue;
++}
++
+ /* The RA field in an lmw instruction, which has special value
+ restrictions. */
+
+@@ -1757,6 +1815,19 @@ insert_ram (unsigned long insn,
+ return insn | ((value & 0x1f) << 16);
+ }
+
++static long
++extract_ram (unsigned long insn,
++ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
++ int *invalid)
++{
++ unsigned long rtvalue = (insn >> 21) & 0x1f;
++ unsigned long ravalue = (insn >> 16) & 0x1f;
++
++ if (ravalue >= rtvalue)
++ *invalid = 1;
++ return ravalue;
++}
++
+ /* The RA field in the DQ form lq or an lswx instruction, which have special
+ value restrictions. */
+
+@@ -1773,6 +1844,19 @@ insert_raq (unsigned long insn,
+ return insn | ((value & 0x1f) << 16);
+ }
+
++static long
++extract_raq (unsigned long insn,
++ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
++ int *invalid)
++{
++ unsigned long rtvalue = (insn >> 21) & 0x1f;
++ unsigned long ravalue = (insn >> 16) & 0x1f;
++
++ if (ravalue == rtvalue)
++ *invalid = 1;
++ return ravalue;
++}
++
+ /* The RA field in a D or X form instruction which is an updating
+ store or an updating floating point load, which means that the RA
+ field may not be zero. */
+@@ -1788,6 +1872,18 @@ insert_ras (unsigned long insn,
+ return insn | ((value & 0x1f) << 16);
+ }
+
++static long
++extract_ras (unsigned long insn,
++ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
++ int *invalid)
++{
++ unsigned long ravalue = (insn >> 16) & 0x1f;
++
++ if (ravalue == 0)
++ *invalid = 1;
++ return ravalue;
++}
++
+ /* The RB field in an X form instruction when it must be the same as
+ the RS field in the instruction. This is used for extended
+ mnemonics like mr. This operand is marked FAKE. The insertion
+@@ -1829,6 +1925,19 @@ insert_rbx (unsigned long insn,
+ return insn | ((value & 0x1f) << 11);
+ }
+
++static long
++extract_rbx (unsigned long insn,
++ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
++ int *invalid)
++{
++ unsigned long rtvalue = (insn >> 21) & 0x1f;
++ unsigned long rbvalue = (insn >> 11) & 0x1f;
++
++ if (rbvalue == rtvalue)
++ *invalid = 1;
++ return rbvalue;
++}
++
+ /* The SCI8 field is made up of SCL and {U,N}I8 fields. */
+ static unsigned long
+ insert_sci8 (unsigned long insn,
+@@ -2443,6 +2552,8 @@ extract_vleil (unsigned long insn,
+ /* An DX form instruction. */
+ #define DX(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1))
+ #define DX_MASK DX (0x3f, 0x1f)
++/* An DX form instruction with the D bits specified. */
++#define NODX_MASK (DX_MASK | 0x1fffc1)
+
+ /* An EVSEL form instruction. */
+ #define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3)
+@@ -4155,6 +4266,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
+
++{"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE, {RT}},
+ {"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
+ {"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}},
+
+@@ -4974,7 +5086,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
+
+-{"stqcx.", XRC(31,182,1), X_MASK, POWER8, 0, {RSQ, RA0, RB}},
++{"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
+ {"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
+
+ {"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
+@@ -5105,7 +5217,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
+
+-{"lqarx", X(31,276), XEH_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
++{"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
+
+ {"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
+ {"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
+@@ -6052,7 +6164,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
+
+-{"lfdpx", X(31,791), X_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
++{"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
+ {"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
+
+ {"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
+@@ -6167,7 +6279,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
+
+-{"stfdpx", X(31,919), X_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
++{"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
+ {"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
+
+ {"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
+@@ -6345,13 +6457,13 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
+
+-{"lq", OP(56), OP_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
++{"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
+ {"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
+ {"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
+
+ {"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
+ {"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
+-{"lfdp", OP(57), OP_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
++{"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
+ {"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
+ {"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
+
+@@ -6676,21 +6788,21 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
+ {"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
+ {"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
+-{"stfdp", OP(61), OP_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
++{"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
+ {"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
+ {"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
+
+ {"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
+ {"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
+-{"stq", DSO(62,2), DS_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
++{"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
+
+ {"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
+
+-{"daddq", XRC(63,2,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+-{"daddq.", XRC(63,2,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+
+-{"dquaq", ZRC(63,3,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
+-{"dquaq.", ZRC(63,3,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
++{"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
++{"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
+
+ {"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+ {"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+@@ -6772,11 +6884,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
+
+-{"dmulq", XRC(63,34,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+-{"dmulq.", XRC(63,34,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+
+-{"drrndq", ZRC(63,35,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
+-{"drrndq.", ZRC(63,35,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
++{"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
++{"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
+
+ {"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+ {"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+@@ -6791,11 +6903,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
+
+-{"dscliq", ZRC(63,66,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
+-{"dscliq.", ZRC(63,66,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
++{"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
++{"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
+
+-{"dquaiq", ZRC(63,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
+-{"dquaiq.", ZRC(63,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
++{"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
++{"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
+
+ {"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BT}},
+ {"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BT}},
+@@ -6803,11 +6915,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
+ {"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
+
+-{"dscriq", ZRC(63,98,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
+-{"dscriq.", ZRC(63,98,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
++{"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
++{"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
+
+-{"drintxq", ZRC(63,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
+-{"drintxq.", ZRC(63,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
++{"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
++{"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
+
+ {"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+
+@@ -6839,11 +6951,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
+ {"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
+
+-{"drintnq", ZRC(63,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
+-{"drintnq.", ZRC(63,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
++{"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
++{"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
+
+-{"dctqpq", XRC(63,258,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
+-{"dctqpq.", XRC(63,258,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
++{"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
++{"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
+
+ {"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
+ {"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
+@@ -6851,8 +6963,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
+ {"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
+
+-{"ddedpdq", XRC(63,322,0), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
+-{"ddedpdq.", XRC(63,322,1), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
++{"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
++{"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
+
+ {"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
+ {"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
+@@ -6881,14 +6993,14 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
+ {"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
+
+-{"dsubq", XRC(63,514,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+-{"dsubq.", XRC(63,514,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+
+ {"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+ {"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+
+-{"ddivq", XRC(63,546,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+-{"ddivq.", XRC(63,546,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
++{"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
+
+ {"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+ {"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+@@ -6917,11 +7029,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
+ {"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
+
+-{"drdpq", XRC(63,770,0), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
+-{"drdpq.", XRC(63,770,1), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
++{"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
++{"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
+
+-{"dcffixq", XRC(63,802,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
+-{"dcffixq.", XRC(63,802,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
++{"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
++{"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
+
+ {"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
+ {"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
+@@ -6941,8 +7053,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
+ {"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
+
+-{"denbcdq", XRC(63,834,0), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
+-{"denbcdq.", XRC(63,834,1), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
++{"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
++{"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
+
+ {"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
+ {"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
+@@ -6961,8 +7073,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
+ {"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
+
+-{"diexq", XRC(63,866,0), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
+-{"diexq.", XRC(63,866,1), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
++{"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
++{"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
+
+ {"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
+
+diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
+index 070c96e..bdc961c 100644
+--- a/opcodes/riscv-dis.c
++++ b/opcodes/riscv-dis.c
+@@ -383,7 +383,7 @@ riscv_disassemble_insn (bfd_vma memaddr, insn_t word, disassemble_info *info)
+ pd->hi_addr[i] = -1;
+
+ for (i = 0; i < info->symtab_size; i++)
+- if (strcmp (bfd_asymbol_name (info->symtab[i]), "_gp") == 0)
++ if (strcmp (bfd_asymbol_name (info->symtab[i]), RISCV_GP_SYMBOL) == 0)
+ pd->gp = bfd_asymbol_value (info->symtab[i]);
+ }
+ else
+diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
+index 867a026..8343198 100644
+--- a/opcodes/riscv-opc.c
++++ b/opcodes/riscv-opc.c
+@@ -147,7 +147,7 @@ const struct riscv_opcode riscv_opcodes[] =
+ {"jal", "32C", "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_ALIAS },
+ {"jal", "I", "a", MATCH_JAL | (X_RA << OP_SH_RD), MASK_JAL | MASK_RD, match_opcode, INSN_ALIAS },
+ {"call", "I", "d,c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO },
+-{"call", "I", "c", (X_T1 << OP_SH_RS1) | (X_RA << OP_SH_RD), (int) M_CALL, match_never, INSN_MACRO },
++{"call", "I", "c", (X_RA << OP_SH_RS1) | (X_RA << OP_SH_RD), (int) M_CALL, match_never, INSN_MACRO },
+ {"tail", "I", "c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO },
+ {"jump", "I", "c,s", 0, (int) M_CALL, match_never, INSN_MACRO },
+ {"nop", "C", "", MATCH_C_ADDI, 0xffff, match_opcode, INSN_ALIAS },
+@@ -210,14 +210,14 @@ const struct riscv_opcode riscv_opcodes[] =
+ {"sll", "C", "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_rd_nonzero, INSN_ALIAS },
+ {"sll", "I", "d,s,t", MATCH_SLL, MASK_SLL, match_opcode, 0 },
+ {"sll", "I", "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, INSN_ALIAS },
+-{"srli", "C", "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_rd_nonzero, INSN_ALIAS },
++{"srli", "C", "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_opcode, INSN_ALIAS },
+ {"srli", "I", "d,s,>", MATCH_SRLI, MASK_SRLI, match_opcode, 0 },
+-{"srl", "C", "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_rd_nonzero, INSN_ALIAS },
++{"srl", "C", "Cs,Cw,C>", MATCH_C_SRLI, MASK_C_SRLI, match_opcode, INSN_ALIAS },
+ {"srl", "I", "d,s,t", MATCH_SRL, MASK_SRL, match_opcode, 0 },
+ {"srl", "I", "d,s,>", MATCH_SRLI, MASK_SRLI, match_opcode, INSN_ALIAS },
+-{"srai", "C", "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_rd_nonzero, INSN_ALIAS },
++{"srai", "C", "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_opcode, INSN_ALIAS },
+ {"srai", "I", "d,s,>", MATCH_SRAI, MASK_SRAI, match_opcode, 0 },
+-{"sra", "C", "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_rd_nonzero, INSN_ALIAS },
++{"sra", "C", "Cs,Cw,C>", MATCH_C_SRAI, MASK_C_SRAI, match_opcode, INSN_ALIAS },
+ {"sra", "I", "d,s,t", MATCH_SRA, MASK_SRA, match_opcode, 0 },
+ {"sra", "I", "d,s,>", MATCH_SRAI, MASK_SRAI, match_opcode, INSN_ALIAS },
+ {"sub", "C", "Cs,Cw,Ct", MATCH_C_SUB, MASK_C_SUB, match_opcode, INSN_ALIAS },
+@@ -562,10 +562,10 @@ const struct riscv_opcode riscv_opcodes[] =
+ {"c.nop", "C", "", MATCH_C_ADDI, 0xffff, match_opcode, 0 },
+ {"c.mv", "C", "d,CV", MATCH_C_MV, MASK_C_MV, match_c_add, 0 },
+ {"c.lui", "C", "d,Cu", MATCH_C_LUI, MASK_C_LUI, match_c_lui, 0 },
+-{"c.li", "C", "d,Cj", MATCH_C_LI, MASK_C_LI, match_rd_nonzero, 0 },
++{"c.li", "C", "d,Co", MATCH_C_LI, MASK_C_LI, match_rd_nonzero, 0 },
+ {"c.addi4spn","C", "Ct,Cc,CK", MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN, match_opcode, 0 },
+ {"c.addi16sp","C", "Cc,CL", MATCH_C_ADDI16SP, MASK_C_ADDI16SP, match_opcode, 0 },
+-{"c.addi", "C", "d,Cj", MATCH_C_ADDI, MASK_C_ADDI, match_rd_nonzero, 0 },
++{"c.addi", "C", "d,Cj", MATCH_C_ADDI, MASK_C_ADDI, match_opcode, 0 },
+ {"c.add", "C", "d,CV", MATCH_C_ADD, MASK_C_ADD, match_c_add, 0 },
+ {"c.sub", "C", "Cs,Ct", MATCH_C_SUB, MASK_C_SUB, match_opcode, 0 },
+ {"c.and", "C", "Cs,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, 0 },
+@@ -574,8 +574,8 @@ const struct riscv_opcode riscv_opcodes[] =
+ {"c.slli", "C", "d,C>", MATCH_C_SLLI, MASK_C_SLLI, match_rd_nonzero, 0 },
+ {"c.srli", "C", "Cs,C>", MATCH_C_SRLI, MASK_C_SRLI, match_opcode, 0 },
+ {"c.srai", "C", "Cs,C>", MATCH_C_SRAI, MASK_C_SRAI, match_opcode, 0 },
+-{"c.andi", "C", "Cs,Cj", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, 0 },
+-{"c.addiw", "64C", "d,Cj", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, 0 },
++{"c.andi", "C", "Cs,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, 0 },
++{"c.addiw", "64C", "d,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, 0 },
+ {"c.addw", "64C", "Cs,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, 0 },
+ {"c.subw", "64C", "Cs,Ct", MATCH_C_SUBW, MASK_C_SUBW, match_opcode, 0 },
+ {"c.ldsp", "64C", "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_nonzero, 0 },
+diff --git a/opcodes/s390-mkopc.c b/opcodes/s390-mkopc.c
+index 8e0b332..68c55a9 100644
+--- a/opcodes/s390-mkopc.c
++++ b/opcodes/s390-mkopc.c
+@@ -419,10 +419,6 @@ main (void)
+ && (str[2] == 0 || str[2] == ',')) {
+ flag_bits |= S390_INSTR_FLAG_VX;
+ str += 2;
+- } else if (strncmp (str, "vx2", 3) == 0
+- && (str[3] == 0 || str[3] == ',')) {
+- flag_bits |= S390_INSTR_FLAG_VX2;
+- str += 3;
+ } else {
+ fprintf (stderr, "Couldn't parse flags string %s\n",
+ flags_string);
+diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
+index b381587..51a17f3 100644
+--- a/opcodes/s390-opc.txt
++++ b/opcodes/s390-opc.txt
+@@ -1685,146 +1685,146 @@ b93c ppno RRE_RR "perform pseudorandom number operation" z13 zarch
+ # Vector Enhancements Facility 1
+
+ e70000000085 vbperm VRR_VVV "vector bit permute" arch12 zarch
+-e70000006004 vllezlf VRX_VRRD "vector load logical word element and zero - left aligned" arch12 zarch vx2
+-e700000000b8 vmsl VRR_VVVUU0V "vector multiply sum logical" arch12 zarch vx2
+-e700030000b8 vmslg VRR_VVVU0VB "vector multiply sum logical double word" arch12 zarch vx2
+-e7000000006c vnx VRR_VVV "vector not exclusive or" arch12 zarch vx2
++e70000006004 vllezlf VRX_VRRD "vector load logical word element and zero - left aligned" arch12 zarch
++e700000000b8 vmsl VRR_VVVUU0V "vector multiply sum logical" arch12 zarch
++e700030000b8 vmslg VRR_VVVU0VB "vector multiply sum logical double word" arch12 zarch
++e7000000006c vnx VRR_VVV "vector not exclusive or" arch12 zarch
+ e7000000006e vnn VRR_VVV "vector nand" arch12 zarch
+-e7000000006f voc VRR_VVV "vector or with complement" arch12 zarch vx2
+-e70000000050 vpopctb VRR_VV "vector population count byte" arch12 zarch vx2
+-e70000001050 vpopcth VRR_VV "vector population count halfword" arch12 zarch vx2
+-e70000002050 vpopctf VRR_VV "vector population count word" arch12 zarch vx2
+-e70000003050 vpopctg VRR_VV "vector population count double word" arch12 zarch vx2
+-e700000020e3 vfasb VRR_VVV "vector fp add short" arch12 zarch vx2
+-e700000820e3 wfasb VRR_VVV "scalar vector fp add scalar short" arch12 zarch vx2
+-e700000840e3 wfaxb VRR_VVV "scalar vector fp add scalar extended" arch12 zarch vx2
+-e700000020cb wfcsb VRR_VV "scalar vector fp compare scalar short" arch12 zarch vx2
+-e700000040cb wfcxb VRR_VV "scalar vector fp compare scalar extended" arch12 zarch vx2
+-e700000020ca wfksb VRR_VV "scalar vector fp compare and signal scalar short" arch12 zarch vx2
+-e700000040ca wfkxb VRR_VV "scalar vector fp compare and signal scalar extended" arch12 zarch vx2
++e7000000006f voc VRR_VVV "vector or with complement" arch12 zarch
++e70000000050 vpopctb VRR_VV "vector population count byte" arch12 zarch
++e70000001050 vpopcth VRR_VV "vector population count halfword" arch12 zarch
++e70000002050 vpopctf VRR_VV "vector population count word" arch12 zarch
++e70000003050 vpopctg VRR_VV "vector population count double word" arch12 zarch
++e700000020e3 vfasb VRR_VVV "vector fp add short" arch12 zarch
++e700000820e3 wfasb VRR_VVV "scalar vector fp add scalar short" arch12 zarch
++e700000840e3 wfaxb VRR_VVV "scalar vector fp add scalar extended" arch12 zarch
++e700000020cb wfcsb VRR_VV "scalar vector fp compare scalar short" arch12 zarch
++e700000040cb wfcxb VRR_VV "scalar vector fp compare scalar extended" arch12 zarch
++e700000020ca wfksb VRR_VV "scalar vector fp compare and signal scalar short" arch12 zarch
++e700000040ca wfkxb VRR_VV "scalar vector fp compare and signal scalar extended" arch12 zarch
+
+-e700000020e8 vfcesb VRR_VVV "vector fp compare equal short" arch12 zarch vx2
+-e700001020e8 vfcesbs VRR_VVV "vector fp compare equal short" arch12 zarch vx2
+-e700000820e8 wfcesb VRR_VVV "scalar vector fp compare equal scalar short" arch12 zarch vx2
+-e700001820e8 wfcesbs VRR_VVV "scalar fp compare equal scalar short" arch12 zarch vx2
+-e700000840e8 wfcexb VRR_VVV "scalar vector fp compare equal scalar extended" arch12 zarch vx2
+-e700001840e8 wfcexbs VRR_VVV "scalar vector fp compare equal scalar extended" arch12 zarch vx2
++e700000020e8 vfcesb VRR_VVV "vector fp compare equal short" arch12 zarch
++e700001020e8 vfcesbs VRR_VVV "vector fp compare equal short" arch12 zarch
++e700000820e8 wfcesb VRR_VVV "scalar vector fp compare equal scalar short" arch12 zarch
++e700001820e8 wfcesbs VRR_VVV "scalar fp compare equal scalar short" arch12 zarch
++e700000840e8 wfcexb VRR_VVV "scalar vector fp compare equal scalar extended" arch12 zarch
++e700001840e8 wfcexbs VRR_VVV "scalar vector fp compare equal scalar extended" arch12 zarch
+
+-e700000420e8 vfkesb VRR_VVV "vector fp compare and signal equal short" arch12 zarch vx2
+-e700001420e8 vfkesbs VRR_VVV "vector fp compare and signal equal short" arch12 zarch vx2
+-e700000c20e8 wfkesb VRR_VVV "scalar vector fp compare and signal equal scalar short" arch12 zarch vx2
+-e700001c20e8 wfkesbs VRR_VVV "scalar fp compare and signal equal scalar short" arch12 zarch vx2
++e700000420e8 vfkesb VRR_VVV "vector fp compare and signal equal short" arch12 zarch
++e700001420e8 vfkesbs VRR_VVV "vector fp compare and signal equal short" arch12 zarch
++e700000c20e8 wfkesb VRR_VVV "scalar vector fp compare and signal equal scalar short" arch12 zarch
++e700001c20e8 wfkesbs VRR_VVV "scalar fp compare and signal equal scalar short" arch12 zarch
+ e700000430e8 vfkedb VRR_VVV "vector fp compare and signal equal long" arch12 zarch vx
+ e700001430e8 vfkedbs VRR_VVV "vector fp compare and signal equal long" arch12 zarch vx
+ e700000c30e8 wfkedb VRR_VVV "vector fp compare and signal equal long" arch12 zarch vx
+ e700001c30e8 wfkedbs VRR_VVV "vector fp compare and signal equal long" arch12 zarch vx
+-e700000c40e8 wfkexb VRR_VVV "scalar vector fp compare and signal equal scalar extended" arch12 zarch vx2
+-e700001c40e8 wfkexbs VRR_VVV "scalar vector fp compare and signal equal scalar extended" arch12 zarch vx2
++e700000c40e8 wfkexb VRR_VVV "scalar vector fp compare and signal equal scalar extended" arch12 zarch
++e700001c40e8 wfkexbs VRR_VVV "scalar vector fp compare and signal equal scalar extended" arch12 zarch
+
+-e700000020eb vfchsb VRR_VVV "vector fp compare high short" arch12 zarch vx2
+-e700001020eb vfchsbs VRR_VVV "vector fp compare high short" arch12 zarch vx2
+-e700000820eb wfchsb VRR_VVV "scalar vector fp compare high scalar short" arch12 zarch vx2
+-e700001820eb wfchsbs VRR_VVV "scalar vector fp compare high scalar short" arch12 zarch vx2
+-e700000840eb wfchxb VRR_VVV "scalar vector fp compare high scalar extended" arch12 zarch vx2
+-e700001840eb wfchxbs VRR_VVV "scalar vector fp compare high scalar extended" arch12 zarch vx2
++e700000020eb vfchsb VRR_VVV "vector fp compare high short" arch12 zarch
++e700001020eb vfchsbs VRR_VVV "vector fp compare high short" arch12 zarch
++e700000820eb wfchsb VRR_VVV "scalar vector fp compare high scalar short" arch12 zarch
++e700001820eb wfchsbs VRR_VVV "scalar vector fp compare high scalar short" arch12 zarch
++e700000840eb wfchxb VRR_VVV "scalar vector fp compare high scalar extended" arch12 zarch
++e700001840eb wfchxbs VRR_VVV "scalar vector fp compare high scalar extended" arch12 zarch
+
+-e700000420eb vfkhsb VRR_VVV "vector fp compare and signal high short" arch12 zarch vx2
+-e700001420eb vfkhsbs VRR_VVV "vector fp compare and signal high short" arch12 zarch vx2
+-e700000c20eb wfkhsb VRR_VVV "scalar vector fp compare and signal high scalar short" arch12 zarch vx2
+-e700001c20eb wfkhsbs VRR_VVV "scalar vector fp compare and signal high scalar short" arch12 zarch vx2
++e700000420eb vfkhsb VRR_VVV "vector fp compare and signal high short" arch12 zarch
++e700001420eb vfkhsbs VRR_VVV "vector fp compare and signal high short" arch12 zarch
++e700000c20eb wfkhsb VRR_VVV "scalar vector fp compare and signal high scalar short" arch12 zarch
++e700001c20eb wfkhsbs VRR_VVV "scalar vector fp compare and signal high scalar short" arch12 zarch
+ e700000430eb vfkhdb VRR_VVV "vector fp compare and signal high long" arch12 zarch vx
+ e700001430eb vfkhdbs VRR_VVV "vector fp compare and signal high long" arch12 zarch vx
+ e700000c30eb wfkhdb VRR_VVV "vector fp compare and signal high long" arch12 zarch vx
+ e700001c30eb wfkhdbs VRR_VVV "vector fp compare and signal high long" arch12 zarch vx
+-e700000c40eb wfkhxb VRR_VVV "scalar vector fp compare and signal high scalar extended" arch12 zarch vx2
+-e700001c40eb wfkhxbs VRR_VVV "scalar vector fp compare and signal high scalar extended" arch12 zarch vx2
++e700000c40eb wfkhxb VRR_VVV "scalar vector fp compare and signal high scalar extended" arch12 zarch
++e700001c40eb wfkhxbs VRR_VVV "scalar vector fp compare and signal high scalar extended" arch12 zarch
+
+-e700000020ea vfchesb VRR_VVV "vector fp compare high or equal short" arch12 zarch vx2
+-e700001020ea vfchesbs VRR_VVV "vector fp compare high or equal short" arch12 zarch vx2
+-e700000820ea wfchesb VRR_VVV "scalar vector fp compare high or equal scalar short" arch12 zarch vx2
+-e700001820ea wfchesbs VRR_VVV "scalar vector fp compare high or equal scalar short" arch12 zarch vx2
+-e700000840ea wfchexb VRR_VVV "scalar vector fp compare high or equal scalar extended" arch12 zarch vx2
+-e700001840ea wfchexbs VRR_VVV "scalar vector fp compare high or equal scalar extended" arch12 zarch vx2
++e700000020ea vfchesb VRR_VVV "vector fp compare high or equal short" arch12 zarch
++e700001020ea vfchesbs VRR_VVV "vector fp compare high or equal short" arch12 zarch
++e700000820ea wfchesb VRR_VVV "scalar vector fp compare high or equal scalar short" arch12 zarch
++e700001820ea wfchesbs VRR_VVV "scalar vector fp compare high or equal scalar short" arch12 zarch
++e700000840ea wfchexb VRR_VVV "scalar vector fp compare high or equal scalar extended" arch12 zarch
++e700001840ea wfchexbs VRR_VVV "scalar vector fp compare high or equal scalar extended" arch12 zarch
+
+-e700000420ea vfkhesb VRR_VVV "vector fp compare and signal high or equal short" arch12 zarch vx2
+-e700001420ea vfkhesbs VRR_VVV "vector fp compare and signal high or equal short" arch12 zarch vx2
+-e700000c20ea wfkhesb VRR_VVV "scalar vector fp compare and signal high or equal scalar short" arch12 zarch vx2
+-e700001c20ea wfkhesbs VRR_VVV "scalar vector fp compare and signal high or equal scalar short" arch12 zarch vx2
++e700000420ea vfkhesb VRR_VVV "vector fp compare and signal high or equal short" arch12 zarch
++e700001420ea vfkhesbs VRR_VVV "vector fp compare and signal high or equal short" arch12 zarch
++e700000c20ea wfkhesb VRR_VVV "scalar vector fp compare and signal high or equal scalar short" arch12 zarch
++e700001c20ea wfkhesbs VRR_VVV "scalar vector fp compare and signal high or equal scalar short" arch12 zarch
+ e700000430ea vfkhedb VRR_VVV "vector fp compare and signal high or equal long" arch12 zarch vx
+ e700001430ea vfkhedbs VRR_VVV "vector fp compare and signal high or equal long" arch12 zarch vx
+ e700000c30ea wfkhedb VRR_VVV "vector fp compare and signal high or equal long" arch12 zarch vx
+ e700001c30ea wfkhedbs VRR_VVV "vector fp compare and signal high or equal long" arch12 zarch vx
+-e700000c40ea wfkhexb VRR_VVV "scalar vector fp compare and signal high or equal scalar extended" arch12 zarch vx2
+-e700001c40ea wfkhexbs VRR_VVV "scalar vector fp compare and signal high or equal scalar extended" arch12 zarch vx2
++e700000c40ea wfkhexb VRR_VVV "scalar vector fp compare and signal high or equal scalar extended" arch12 zarch
++e700001c40ea wfkhexbs VRR_VVV "scalar vector fp compare and signal high or equal scalar extended" arch12 zarch
+
+-e700000020e5 vfdsb VRR_VVV "vector fp divide short" arch12 zarch vx2
+-e700000820e5 wfdsb VRR_VVV "scalar vector fp divide scalar short" arch12 zarch vx2
+-e700000840e5 wfdxb VRR_VVV "scalar vector fp divide scalar extended" arch12 zarch vx2
+-e700000020c7 vfisb VRR_VV0UU "vector load fp integer short" arch12 zarch vx2
+-e700000820c7 wfisb VRR_VV0UU8 "scalar vector load fp integer scalar short" arch12 zarch vx2
+-e700000840c7 wfixb VRR_VV0UU8 "scalar vector load fp integer scalar extended" arch12 zarch vx2
+-e700000000c4 vfll VRR_VV0UU2 "vector fp load lengthened" arch12 zarch vx2
+-e700000020c4 vflls VRR_VV "vector fp load lengthened" arch12 zarch vx2
+-e700000820c4 wflls VRR_VV "scalar vector fp load lengthened short" arch12 zarch vx2
+-e700000830c4 wflld VRR_VV "scalar vector fp load lengthened long" arch12 zarch vx2
+-e700000000c5 vflr VRR_VV0UUU "vector fp load rounded" arch12 zarch vx2
+-e700000030c5 vflrd VRR_VV0UU "vector fp load rounded long" arch12 zarch vx2
+-e700000830c5 wflrd VRR_VV0UU8 "scalar vector fp load rounded long" arch12 zarch vx2
+-e700000840c5 wflrx VRR_VV0UU8 "scalar vector fp load rounded extended" arch12 zarch vx2
+-e700000000ef vfmax VRR_VVV0UUU "vector fp maximum" arch12 zarch vx2
+-e700000020ef vfmaxsb VRR_VVV0U0 "vector fp maximum short" arch12 zarch vx2
+-e700000030ef vfmaxdb VRR_VVV0U0 "vector fp maximum long" arch12 zarch vx2
+-e700000820ef wfmaxsb VRR_VVV0U0 "scalar fp maximum scalar short" arch12 zarch vx2
+-e700000830ef wfmaxdb VRR_VVV0U0 "scalar fp maximum scalar long" arch12 zarch vx2
+-e700000840ef wfmaxxb VRR_VVV0U0 "scalar fp maximum scalar extended" arch12 zarch vx2
+-e700000000ee vfmin VRR_VVV0UUU "vector fp minimum" arch12 zarch vx2
+-e700000020ee vfminsb VRR_VVV0U0 "vector fp minimum short" arch12 zarch vx2
+-e700000030ee vfmindb VRR_VVV0U0 "vector fp minimum long" arch12 zarch vx2
+-e700000820ee wfminsb VRR_VVV0U0 "scalar fp minimum scalar short" arch12 zarch vx2
+-e700000830ee wfmindb VRR_VVV0U0 "scalar fp minimum scalar long" arch12 zarch vx2
+-e700000840ee wfminxb VRR_VVV0U0 "scalar fp minimum scalar extended" arch12 zarch vx2
+-e700000020e7 vfmsb VRR_VVV "vector fp multiply short" arch12 zarch vx2
+-e700000820e7 wfmsb VRR_VVV "scalar vector fp multiply scalar short" arch12 zarch vx2
+-e700000840e7 wfmxb VRR_VVV "scalar vector fp multiply scalar extended" arch12 zarch vx2
+-e7000200008f vfmasb VRR_VVVV "vector fp multiply and add short" arch12 zarch vx2
+-e7000208008f wfmasb VRR_VVVV "scalar vector fp multiply and add scalar short" arch12 zarch vx2
+-e7000408008f wfmaxb VRR_VVVV "scalar vector fp multiply and add scalar extended" arch12 zarch vx2
+-e7000200008e vfmssb VRR_VVVV "vector fp multiply and subtract short" arch12 zarch vx2
+-e7000208008e wfmssb VRR_VVVV "scalar vector fp multiply and subtract scalar short" arch12 zarch vx2
+-e7000408008e wfmsxb VRR_VVVV "scalar vector fp multiply and subtract scalar extended" arch12 zarch vx2
+-e7000000009f vfnma VRR_VVVU0UV "vector fp negative multiply and add" arch12 zarch vx2
+-e7000200009f vfnmasb VRR_VVVV "vector fp negative multiply and add short" arch12 zarch vx2
+-e7000208009f wfnmasb VRR_VVVV "scalar vector fp negative multiply and add scalar short" arch12 zarch vx2
+-e7000300009f vfnmadb VRR_VVVV "vector fp negative multiply and add long" arch12 zarch vx2
+-e7000308009f wfnmadb VRR_VVVV "scalar vector fp negative multiply and add scalar long" arch12 zarch vx2
+-e7000408009f wfnmaxb VRR_VVVV "scalar vector fp negative multiply and add scalar extended" arch12 zarch vx2
+-e7000000009e vfnms VRR_VVVU0UV "vector fp negative multiply and subtract" arch12 zarch vx2
+-e7000200009e vfnmssb VRR_VVVV "vector fp negative multiply and subtract short" arch12 zarch vx2
+-e7000208009e wfnmssb VRR_VVVV "scalar vector fp negative multiply and subtract scalar short" arch12 zarch vx2
+-e7000300009e vfnmsdb VRR_VVVV "vector fp negative multiply and subtract long" arch12 zarch vx2
+-e7000308009e wfnmsdb VRR_VVVV "scalar vector fp negative multiply and subtract scalar long" arch12 zarch vx2
+-e7000408009e wfnmsxb VRR_VVVV "scalar vector fp negative multiply and subtract scalar extended" arch12 zarch vx2
+-e700000020cc vfpsosb VRR_VV0U2 "vector fp perform sign operation short" arch12 zarch vx2
+-e700000820cc wfpsosb VRR_VV0U2 "scalar vector fp perform sign operation scalar short" arch12 zarch vx2
+-e700000020cc vflcsb VRR_VV "vector fp perform sign operation short" arch12 zarch vx2
+-e700000820cc wflcsb VRR_VV "scalar vector fp perform sign operation scalar short" arch12 zarch vx2
+-e700001020cc vflnsb VRR_VV "vector fp perform sign operation short" arch12 zarch vx2
+-e700001820cc wflnsb VRR_VV "scalar vector fp perform sign operation scalar short" arch12 zarch vx2
+-e700002020cc vflpsb VRR_VV "vector fp perform sign operation short" arch12 zarch vx2
+-e700002820cc wflpsb VRR_VV "scalar vector fp perform sign operation scalar short" arch12 zarch vx2
+-e700000840cc wfpsoxb VRR_VV0U2 "scalar vector fp perform sign operation scalar extended" arch12 zarch vx2
+-e700000840cc wflcxb VRR_VV "scalar vector fp perform sign operation scalar extended" arch12 zarch vx2
+-e700001840cc wflnxb VRR_VV "scalar vector fp perform sign operation scalar extended" arch12 zarch vx2
+-e700002840cc wflpxb VRR_VV "scalar vector fp perform sign operation scalar extended" arch12 zarch vx2
+-e700000020ce vfsqsb VRR_VV "vector fp square root short" arch12 zarch vx2
+-e700000820ce wfsqsb VRR_VV "scalar vector fp square root scalar short" arch12 zarch vx2
+-e700000840ce wfsqxb VRR_VV "scalar vector fp square root scalar extended" arch12 zarch vx2
+-e700000020e2 vfssb VRR_VVV "vector fp subtract short" arch12 zarch vx2
+-e700000820e2 wfssb VRR_VVV "scalar vector fp subtract scalar short" arch12 zarch vx2
+-e700000840e2 wfsxb VRR_VVV "scalar vector fp subtract scalar extended" arch12 zarch vx2
+-e7000000204a vftcisb VRI_VVU2 "vector fp test data class immediate short" arch12 zarch vx2
+-e7000008204a wftcisb VRI_VVU2 "scalar vector fp test data class immediate scalar short" arch12 zarch vx2
+-e7000008404a wftcixb VRI_VVU2 "scalar vector fp test data class immediate scalar extended" arch12 zarch vx2
++e700000020e5 vfdsb VRR_VVV "vector fp divide short" arch12 zarch
++e700000820e5 wfdsb VRR_VVV "scalar vector fp divide scalar short" arch12 zarch
++e700000840e5 wfdxb VRR_VVV "scalar vector fp divide scalar extended" arch12 zarch
++e700000020c7 vfisb VRR_VV0UU "vector load fp integer short" arch12 zarch
++e700000820c7 wfisb VRR_VV0UU8 "scalar vector load fp integer scalar short" arch12 zarch
++e700000840c7 wfixb VRR_VV0UU8 "scalar vector load fp integer scalar extended" arch12 zarch
++e700000000c4 vfll VRR_VV0UU2 "vector fp load lengthened" arch12 zarch
++e700000020c4 vflls VRR_VV "vector fp load lengthened" arch12 zarch
++e700000820c4 wflls VRR_VV "scalar vector fp load lengthened short" arch12 zarch
++e700000830c4 wflld VRR_VV "scalar vector fp load lengthened long" arch12 zarch
++e700000000c5 vflr VRR_VV0UUU "vector fp load rounded" arch12 zarch
++e700000030c5 vflrd VRR_VV0UU "vector fp load rounded long" arch12 zarch
++e700000830c5 wflrd VRR_VV0UU8 "scalar vector fp load rounded long" arch12 zarch
++e700000840c5 wflrx VRR_VV0UU8 "scalar vector fp load rounded extended" arch12 zarch
++e700000000ef vfmax VRR_VVV0UUU "vector fp maximum" arch12 zarch
++e700000020ef vfmaxsb VRR_VVV0U0 "vector fp maximum short" arch12 zarch
++e700000030ef vfmaxdb VRR_VVV0U0 "vector fp maximum long" arch12 zarch
++e700000820ef wfmaxsb VRR_VVV0U0 "scalar fp maximum scalar short" arch12 zarch
++e700000830ef wfmaxdb VRR_VVV0U0 "scalar fp maximum scalar long" arch12 zarch
++e700000840ef wfmaxxb VRR_VVV0U0 "scalar fp maximum scalar extended" arch12 zarch
++e700000000ee vfmin VRR_VVV0UUU "vector fp minimum" arch12 zarch
++e700000020ee vfminsb VRR_VVV0U0 "vector fp minimum short" arch12 zarch
++e700000030ee vfmindb VRR_VVV0U0 "vector fp minimum long" arch12 zarch
++e700000820ee wfminsb VRR_VVV0U0 "scalar fp minimum scalar short" arch12 zarch
++e700000830ee wfmindb VRR_VVV0U0 "scalar fp minimum scalar long" arch12 zarch
++e700000840ee wfminxb VRR_VVV0U0 "scalar fp minimum scalar extended" arch12 zarch
++e700000020e7 vfmsb VRR_VVV "vector fp multiply short" arch12 zarch
++e700000820e7 wfmsb VRR_VVV "scalar vector fp multiply scalar short" arch12 zarch
++e700000840e7 wfmxb VRR_VVV "scalar vector fp multiply scalar extended" arch12 zarch
++e7000200008f vfmasb VRR_VVVV "vector fp multiply and add short" arch12 zarch
++e7000208008f wfmasb VRR_VVVV "scalar vector fp multiply and add scalar short" arch12 zarch
++e7000408008f wfmaxb VRR_VVVV "scalar vector fp multiply and add scalar extended" arch12 zarch
++e7000200008e vfmssb VRR_VVVV "vector fp multiply and subtract short" arch12 zarch
++e7000208008e wfmssb VRR_VVVV "scalar vector fp multiply and subtract scalar short" arch12 zarch
++e7000408008e wfmsxb VRR_VVVV "scalar vector fp multiply and subtract scalar extended" arch12 zarch
++e7000000009f vfnma VRR_VVVU0UV "vector fp negative multiply and add" arch12 zarch
++e7000200009f vfnmasb VRR_VVVV "vector fp negative multiply and add short" arch12 zarch
++e7000208009f wfnmasb VRR_VVVV "scalar vector fp negative multiply and add scalar short" arch12 zarch
++e7000300009f vfnmadb VRR_VVVV "vector fp negative multiply and add long" arch12 zarch
++e7000308009f wfnmadb VRR_VVVV "scalar vector fp negative multiply and add scalar long" arch12 zarch
++e7000408009f wfnmaxb VRR_VVVV "scalar vector fp negative multiply and add scalar extended" arch12 zarch
++e7000000009e vfnms VRR_VVVU0UV "vector fp negative multiply and subtract" arch12 zarch
++e7000200009e vfnmssb VRR_VVVV "vector fp negative multiply and subtract short" arch12 zarch
++e7000208009e wfnmssb VRR_VVVV "scalar vector fp negative multiply and subtract scalar short" arch12 zarch
++e7000300009e vfnmsdb VRR_VVVV "vector fp negative multiply and subtract long" arch12 zarch
++e7000308009e wfnmsdb VRR_VVVV "scalar vector fp negative multiply and subtract scalar long" arch12 zarch
++e7000408009e wfnmsxb VRR_VVVV "scalar vector fp negative multiply and subtract scalar extended" arch12 zarch
++e700000020cc vfpsosb VRR_VV0U2 "vector fp perform sign operation short" arch12 zarch
++e700000820cc wfpsosb VRR_VV0U2 "scalar vector fp perform sign operation scalar short" arch12 zarch
++e700000020cc vflcsb VRR_VV "vector fp perform sign operation short" arch12 zarch
++e700000820cc wflcsb VRR_VV "scalar vector fp perform sign operation scalar short" arch12 zarch
++e700001020cc vflnsb VRR_VV "vector fp perform sign operation short" arch12 zarch
++e700001820cc wflnsb VRR_VV "scalar vector fp perform sign operation scalar short" arch12 zarch
++e700002020cc vflpsb VRR_VV "vector fp perform sign operation short" arch12 zarch
++e700002820cc wflpsb VRR_VV "scalar vector fp perform sign operation scalar short" arch12 zarch
++e700000840cc wfpsoxb VRR_VV0U2 "scalar vector fp perform sign operation scalar extended" arch12 zarch
++e700000840cc wflcxb VRR_VV "scalar vector fp perform sign operation scalar extended" arch12 zarch
++e700001840cc wflnxb VRR_VV "scalar vector fp perform sign operation scalar extended" arch12 zarch
++e700002840cc wflpxb VRR_VV "scalar vector fp perform sign operation scalar extended" arch12 zarch
++e700000020ce vfsqsb VRR_VV "vector fp square root short" arch12 zarch
++e700000820ce wfsqsb VRR_VV "scalar vector fp square root scalar short" arch12 zarch
++e700000840ce wfsqxb VRR_VV "scalar vector fp square root scalar extended" arch12 zarch
++e700000020e2 vfssb VRR_VVV "vector fp subtract short" arch12 zarch
++e700000820e2 wfssb VRR_VVV "scalar vector fp subtract scalar short" arch12 zarch
++e700000840e2 wfsxb VRR_VVV "scalar vector fp subtract scalar extended" arch12 zarch
++e7000000204a vftcisb VRI_VVU2 "vector fp test data class immediate short" arch12 zarch
++e7000008204a wftcisb VRI_VVU2 "scalar vector fp test data class immediate scalar short" arch12 zarch
++e7000008404a wftcixb VRI_VVU2 "scalar vector fp test data class immediate scalar extended" arch12 zarch
+
+ # Miscellaneous Instruction Extensions Facility 2
+
+@@ -1843,28 +1843,28 @@ e30000000039 sgh RXY_RRRD "subtract halfword from 64 bit value" arch12 zarch
+
+ # Vector packed decimal facility
+
+-e60000000037 vlrlr VRS_RRDV "vector load rightmost with length" arch12 zarch vx2
+-e60000000035 vlrl VSI_URDV "vector load rightmost with immediate length" arch12 zarch vx2
+-e6000000003f vstrlr VRS_RRDV "vector store rightmost with length" arch12 zarch vx2
+-e6000000003d vstrl VSI_URDV "vector store rightmost with immediate length" arch12 zarch vx2
+-e60000000071 vap VRI_VVV0UU2 "vector add decimal" arch12 zarch vx2
+-e60000000077 vcp VRR_0VV0U "vector compare decimal" arch12 zarch vx2
+-e60000000050 vcvb VRR_RV0U "vector convert to binary 32 bit" arch12 zarch vx2
+-e60000000052 vcvbg VRR_RV0U "vector convert to binary 64 bit" arch12 zarch vx2
+-e60000000058 vcvd VRI_VR0UU "vector convert to decimal 32 bit" arch12 zarch vx2
+-e6000000005a vcvdg VRI_VR0UU "vector convert to decimal 64 bit" arch12 zarch vx2
+-e6000000007a vdp VRI_VVV0UU2 "vector divide decimal" arch12 zarch vx2
+-e60000000049 vlip VRI_V0UU2 "vector load immediate decimal" arch12 zarch vx2
+-e60000000078 vmp VRI_VVV0UU2 "vector multiply decimal" arch12 zarch vx2
+-e60000000079 vmsp VRI_VVV0UU2 "vector multiply and shift decimal" arch12 zarch vx2
+-e60000000034 vpkz VSI_URDV "vector pack zoned" arch12 zarch vx2
+-e6000000005b vpsop VRI_VVUUU2 "vector perform sign operation decimal" arch12 zarch vx2
+-e6000000007b vrp VRI_VVV0UU2 "vector remainder decimal" arch12 zarch vx2
+-e6000000007e vsdp VRI_VVV0UU2 "vector shift and divide decimal" arch12 zarch vx2
+-e60000000059 vsrp VRI_VVUUU2 "vector shift and round decimal" arch12 zarch vx2
+-e60000000073 vsp VRI_VVV0UU2 "vector subtract decimal" arch12 zarch vx2
+-e6000000005f vtp VRR_0V "vector test decimal" arch12 zarch vx2
+-e6000000003c vupkz VSI_URDV "vector unpack zoned" arch12 zarch vx2
++e60000000037 vlrlr VRS_RRDV "vector load rightmost with length" arch12 zarch
++e60000000035 vlrl VSI_URDV "vector load rightmost with immediate length" arch12 zarch
++e6000000003f vstrlr VRS_RRDV "vector store rightmost with length" arch12 zarch
++e6000000003d vstrl VSI_URDV "vector store rightmost with immediate length" arch12 zarch
++e60000000071 vap VRI_VVV0UU2 "vector add decimal" arch12 zarch
++e60000000077 vcp VRR_0VV0U "vector compare decimal" arch12 zarch
++e60000000050 vcvb VRR_RV0U "vector convert to binary 32 bit" arch12 zarch
++e60000000052 vcvbg VRR_RV0U "vector convert to binary 64 bit" arch12 zarch
++e60000000058 vcvd VRI_VR0UU "vector convert to decimal 32 bit" arch12 zarch
++e6000000005a vcvdg VRI_VR0UU "vector convert to decimal 64 bit" arch12 zarch
++e6000000007a vdp VRI_VVV0UU2 "vector divide decimal" arch12 zarch
++e60000000049 vlip VRI_V0UU2 "vector load immediate decimal" arch12 zarch
++e60000000078 vmp VRI_VVV0UU2 "vector multiply decimal" arch12 zarch
++e60000000079 vmsp VRI_VVV0UU2 "vector multiply and shift decimal" arch12 zarch
++e60000000034 vpkz VSI_URDV "vector pack zoned" arch12 zarch
++e6000000005b vpsop VRI_VVUUU2 "vector perform sign operation decimal" arch12 zarch
++e6000000007b vrp VRI_VVV0UU2 "vector remainder decimal" arch12 zarch
++e6000000007e vsdp VRI_VVV0UU2 "vector shift and divide decimal" arch12 zarch
++e60000000059 vsrp VRI_VVUUU2 "vector shift and round decimal" arch12 zarch
++e60000000073 vsp VRI_VVV0UU2 "vector subtract decimal" arch12 zarch
++e6000000005f vtp VRR_0V "vector test decimal" arch12 zarch
++e6000000003c vupkz VSI_URDV "vector unpack zoned" arch12 zarch
+
+ # Guarded storage facility
+
--- /dev/null
+# DP: Don't bump the version when doing distro builds
+
+git diff 65a5565505619c451987c77f199d0d1b0a84349b 2870b1ba83fc0e0ee7eadf72d614a7ec4591b169
+
+Index: b/bfd/ChangeLog
+===================================================================
+--- a/bfd/ChangeLog
++++ b/bfd/ChangeLog
+@@ -6,15 +6,6 @@
+
+ 2016-08-03 Tristan Gingold <gingold@adacore.com>
+
+- * version.m4: Bump version to 2.28.0
+- * configure: Regenerate.
+-
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+- * development.sh: Set development to true.
+-
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+ * version.m4: Bump version to 2.28
+ * configure: Regenerate.
+
+Index: b/bfd/configure
+===================================================================
+--- a/bfd/configure
++++ b/bfd/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for bfd 2.28.0.
++# Generated by GNU Autoconf 2.64 for bfd 2.28.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+@@ -556,8 +556,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='bfd'
+ PACKAGE_TARNAME='bfd'
+-PACKAGE_VERSION='2.28.0'
+-PACKAGE_STRING='bfd 2.28.0'
++PACKAGE_VERSION='2.28'
++PACKAGE_STRING='bfd 2.28'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
+@@ -1353,7 +1353,7 @@ if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures bfd 2.28.0 to adapt to many kinds of systems.
++\`configure' configures bfd 2.28 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1424,7 +1424,7 @@ fi
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of bfd 2.28.0:";;
++ short | recursive ) echo "Configuration of bfd 2.28:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1545,7 +1545,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-bfd configure 2.28.0
++bfd configure 2.28
+ generated by GNU Autoconf 2.64
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+@@ -2187,7 +2187,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by bfd $as_me 2.28.0, which was
++It was created by bfd $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+@@ -3996,7 +3996,7 @@ fi
+
+ # Define the identity of the package.
+ PACKAGE='bfd'
+- VERSION='2.28.0'
++ VERSION='2.28'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -16576,7 +16576,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by bfd $as_me 2.28.0, which was
++This file was extended by bfd $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -16640,7 +16640,7 @@ Report bugs to the package provider."
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+-bfd config.status 2.28.0
++bfd config.status 2.28
+ configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Index: b/bfd/development.sh
+===================================================================
+--- a/bfd/development.sh
++++ b/bfd/development.sh
+@@ -16,4 +16,4 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ # Controls whether to enable development-mode features by default.
+-development=true
++development=false
+Index: b/bfd/version.m4
+===================================================================
+--- a/bfd/version.m4
++++ b/bfd/version.m4
+@@ -1 +1 @@
+-m4_define([BFD_VERSION], [2.28.0])
++m4_define([BFD_VERSION], [2.28])
+Index: b/binutils/ChangeLog
+===================================================================
+--- a/binutils/ChangeLog
++++ b/binutils/ChangeLog
+@@ -2,10 +2,6 @@
+
+ * configure: Regenerate.
+
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+- * configure: Regenerate.
+-
+ 2016-07-01 Nick Clifton <nickc@redhat.com>
+
+ * Import this patch from the mainline:
+Index: b/binutils/configure
+===================================================================
+--- a/binutils/configure
++++ b/binutils/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for binutils 2.28.0.
++# Generated by GNU Autoconf 2.64 for binutils 2.28.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+@@ -556,8 +556,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='binutils'
+ PACKAGE_TARNAME='binutils'
+-PACKAGE_VERSION='2.28.0'
+-PACKAGE_STRING='binutils 2.28.0'
++PACKAGE_VERSION='2.28'
++PACKAGE_STRING='binutils 2.28'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
+@@ -1337,7 +1337,7 @@ if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures binutils 2.28.0 to adapt to many kinds of systems.
++\`configure' configures binutils 2.28 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1408,7 +1408,7 @@ fi
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of binutils 2.28.0:";;
++ short | recursive ) echo "Configuration of binutils 2.28:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1529,7 +1529,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-binutils configure 2.28.0
++binutils configure 2.28
+ generated by GNU Autoconf 2.64
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+@@ -2171,7 +2171,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by binutils $as_me 2.28.0, which was
++It was created by binutils $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+@@ -3980,7 +3980,7 @@ fi
+
+ # Define the identity of the package.
+ PACKAGE='binutils'
+- VERSION='2.28.0'
++ VERSION='2.28'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -15179,7 +15179,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by binutils $as_me 2.28.0, which was
++This file was extended by binutils $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -15243,7 +15243,7 @@ Report bugs to the package provider."
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+-binutils config.status 2.28.0
++binutils config.status 2.28
+ configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Index: b/gas/ChangeLog
+===================================================================
+--- a/gas/ChangeLog
++++ b/gas/ChangeLog
+@@ -2,10 +2,6 @@
+
+ * configure: Regenerate.
+
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+- * configure: Regenerate.
+-
+ 2016-07-01 Tristan Gingold <gingold@adacore.com>
+
+ * configure: Regenerate.
+Index: b/gas/configure
+===================================================================
+--- a/gas/configure
++++ b/gas/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for gas 2.28.0.
++# Generated by GNU Autoconf 2.64 for gas 2.28.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+@@ -556,8 +556,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='gas'
+ PACKAGE_TARNAME='gas'
+-PACKAGE_VERSION='2.28.0'
+-PACKAGE_STRING='gas 2.28.0'
++PACKAGE_VERSION='2.28'
++PACKAGE_STRING='gas 2.28'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
+@@ -1328,7 +1328,7 @@ if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures gas 2.28.0 to adapt to many kinds of systems.
++\`configure' configures gas 2.28 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1399,7 +1399,7 @@ fi
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of gas 2.28.0:";;
++ short | recursive ) echo "Configuration of gas 2.28:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1521,7 +1521,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-gas configure 2.28.0
++gas configure 2.28
+ generated by GNU Autoconf 2.64
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+@@ -1931,7 +1931,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by gas $as_me 2.28.0, which was
++It was created by gas $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+@@ -3740,7 +3740,7 @@ fi
+
+ # Define the identity of the package.
+ PACKAGE='gas'
+- VERSION='2.28.0'
++ VERSION='2.28'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -15137,7 +15137,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by gas $as_me 2.28.0, which was
++This file was extended by gas $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -15201,7 +15201,7 @@ Report bugs to the package provider."
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+-gas config.status 2.28.0
++gas config.status 2.28
+ configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Index: b/gprof/ChangeLog
+===================================================================
+--- a/gprof/ChangeLog
++++ b/gprof/ChangeLog
+@@ -2,10 +2,6 @@
+
+ * configure: Regenerate.
+
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+- * configure: Regenerate.
+-
+ 2016-07-01 Tristan Gingold <gingold@adacore.com>
+
+ * configure: Regenerate.
+Index: b/gprof/configure
+===================================================================
+--- a/gprof/configure
++++ b/gprof/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for gprof 2.28.0.
++# Generated by GNU Autoconf 2.64 for gprof 2.28.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+@@ -556,8 +556,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='gprof'
+ PACKAGE_TARNAME='gprof'
+-PACKAGE_VERSION='2.28.0'
+-PACKAGE_STRING='gprof 2.28.0'
++PACKAGE_VERSION='2.28'
++PACKAGE_STRING='gprof 2.28'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
+@@ -1301,7 +1301,7 @@ if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures gprof 2.28.0 to adapt to many kinds of systems.
++\`configure' configures gprof 2.28 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1372,7 +1372,7 @@ fi
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of gprof 2.28.0:";;
++ short | recursive ) echo "Configuration of gprof 2.28:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1478,7 +1478,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-gprof configure 2.28.0
++gprof configure 2.28
+ generated by GNU Autoconf 2.64
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+@@ -1843,7 +1843,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by gprof $as_me 2.28.0, which was
++It was created by gprof $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+@@ -3652,7 +3652,7 @@ fi
+
+ # Define the identity of the package.
+ PACKAGE='gprof'
+- VERSION='2.28.0'
++ VERSION='2.28'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -12743,7 +12743,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by gprof $as_me 2.28.0, which was
++This file was extended by gprof $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -12807,7 +12807,7 @@ Report bugs to the package provider."
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+-gprof config.status 2.28.0
++gprof config.status 2.28
+ configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Index: b/ld/ChangeLog
+===================================================================
+--- a/ld/ChangeLog
++++ b/ld/ChangeLog
+@@ -20,10 +20,6 @@
+
+ * configure: Regenerate.
+
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+- * configure: Regenerate.
+-
+ 2016-07-19 Roland McGrath <roland@hack.frob.com>
+
+ * emulparams/aarch64elf.sh (GENERATE_PIE_SCRIPT): Set to yes.
+Index: b/ld/configure
+===================================================================
+--- a/ld/configure
++++ b/ld/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for ld 2.28.0.
++# Generated by GNU Autoconf 2.64 for ld 2.28.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+@@ -556,8 +556,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='ld'
+ PACKAGE_TARNAME='ld'
+-PACKAGE_VERSION='2.28.0'
+-PACKAGE_STRING='ld 2.28.0'
++PACKAGE_VERSION='2.28'
++PACKAGE_STRING='ld 2.28'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
+@@ -1353,7 +1353,7 @@ if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures ld 2.28.0 to adapt to many kinds of systems.
++\`configure' configures ld 2.28 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1424,7 +1424,7 @@ fi
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of ld 2.28.0:";;
++ short | recursive ) echo "Configuration of ld 2.28:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1549,7 +1549,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-ld configure 2.28.0
++ld configure 2.28
+ generated by GNU Autoconf 2.64
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+@@ -2258,7 +2258,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by ld $as_me 2.28.0, which was
++It was created by ld $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+@@ -4068,7 +4068,7 @@ fi
+
+ # Define the identity of the package.
+ PACKAGE='ld'
+- VERSION='2.28.0'
++ VERSION='2.28'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -17769,7 +17769,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by ld $as_me 2.28.0, which was
++This file was extended by ld $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -17833,7 +17833,7 @@ Report bugs to the package provider."
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+-ld config.status 2.28.0
++ld config.status 2.28
+ configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Index: b/opcodes/ChangeLog
+===================================================================
+--- a/opcodes/ChangeLog
++++ b/opcodes/ChangeLog
+@@ -2,10 +2,6 @@
+
+ * configure: Regenerate.
+
+-2016-08-03 Tristan Gingold <gingold@adacore.com>
+-
+- * configure: Regenerate.
+-
+ 2016-07-01 Tristan Gingold <gingold@adacore.com>
+
+ * configure: Regenerate.
+Index: b/opcodes/configure
+===================================================================
+--- a/opcodes/configure
++++ b/opcodes/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.64 for opcodes 2.28.0.
++# Generated by GNU Autoconf 2.64 for opcodes 2.28.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+@@ -556,8 +556,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='opcodes'
+ PACKAGE_TARNAME='opcodes'
+-PACKAGE_VERSION='2.28.0'
+-PACKAGE_STRING='opcodes 2.28.0'
++PACKAGE_VERSION='2.28'
++PACKAGE_STRING='opcodes 2.28'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
+@@ -1321,7 +1321,7 @@ if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+-\`configure' configures opcodes 2.28.0 to adapt to many kinds of systems.
++\`configure' configures opcodes 2.28 to adapt to many kinds of systems.
+
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+
+@@ -1392,7 +1392,7 @@ fi
+
+ if test -n "$ac_init_help"; then
+ case $ac_init_help in
+- short | recursive ) echo "Configuration of opcodes 2.28.0:";;
++ short | recursive ) echo "Configuration of opcodes 2.28:";;
+ esac
+ cat <<\_ACEOF
+
+@@ -1499,7 +1499,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+ cat <<\_ACEOF
+-opcodes configure 2.28.0
++opcodes configure 2.28
+ generated by GNU Autoconf 2.64
+
+ Copyright (C) 2009 Free Software Foundation, Inc.
+@@ -1909,7 +1909,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+
+-It was created by opcodes $as_me 2.28.0, which was
++It was created by opcodes $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+@@ -3718,7 +3718,7 @@ fi
+
+ # Define the identity of the package.
+ PACKAGE='opcodes'
+- VERSION='2.28.0'
++ VERSION='2.28'
+
+
+ cat >>confdefs.h <<_ACEOF
+@@ -13260,7 +13260,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by opcodes $as_me 2.28.0, which was
++This file was extended by opcodes $as_me 2.28, which was
+ generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+@@ -13324,7 +13324,7 @@ Report bugs to the package provider."
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+-opcodes config.status 2.28.0
++opcodes config.status 2.28
+ configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
--- /dev/null
+# DP: Fix gold on mips64 targets.
+
+gold/
+
+2016-08-09 Aurelien Jarno <aurelien@aurel32.net>
+
+ * configure.tgt: Add mips64el*-*-*|mips64le*-*-* and mips64*-*-*.
+
+
+--- a/gold/configure.tgt
++++ b/gold/configure.tgt
+@@ -153,6 +153,13 @@ aarch64*-*)
+ targ_big_endian=false
+ targ_extra_big_endian=true
+ ;;
++mips*64*el*-*-*|mips*64*le*-*-*)
++ targ_obj=mips
++ targ_machine=EM_MIPS_RS3_LE
++ targ_size=64
++ targ_big_endian=false
++ targ_extra_big_endian=true
++ ;;
+ mips*el*-*-*|mips*le*-*-*)
+ targ_obj=mips
+ targ_machine=EM_MIPS_RS3_LE
+@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*)
+ targ_big_endian=false
+ targ_extra_big_endian=true
+ ;;
++mips*64*-*-*)
++ targ_obj=mips
++ targ_machine=EM_MIPS
++ targ_size=64
++ targ_big_endian=true
++ targ_extra_big_endian=false
++ ;;
+ mips*-*-*)
+ targ_obj=mips
+ targ_machine=EM_MIPS
--- /dev/null
+Return-Path: <jrtc27@jrtc27.com>
+Received: from Jamess-MacBook.local (global-184-8.nat-1.net.cam.ac.uk. [131.111.184.8])
+ by smtp.gmail.com with ESMTPSA id h65sm4893155wrh.32.2017.04.28.09.13.06
+ (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
+ Fri, 28 Apr 2017 09:13:06 -0700 (PDT)
+Received: by Jamess-MacBook.local (Postfix, from userid 501)
+ id 9CE3D18952FC; Fri, 28 Apr 2017 17:13:05 +0100 (BST)
+From: James Clarke <jrtc27@jrtc27.com>
+To: binutils@sourceware.org
+Cc: James Clarke <jrtc27@jrtc27.com>,
+ John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
+ Cary Coutant <ccoutant@gmail.com>,
+ "Jose E. Marchesi" <jose.marchesi@oracle.com>
+Subject: [PATCH] gold: Fix assertion failure relaxing TLS for position-independent executables
+Date: Fri, 28 Apr 2017 17:12:14 +0100
+Message-Id: <20170428161214.83513-1-jrtc27@jrtc27.com>
+X-Mailer: git-send-email 2.12.2
+
+gold/
+ PR gold/21444
+ * gold.cc (Target_sparc::Relocate::relocate_tls): Local
+ variables are final for position-independent executables. This
+ has to be consistent with Target_sparc::Scan::local otherwise
+ they will disagree as to whether local-exec is used.
+---
+ gold/sparc.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gold/sparc.cc b/gold/sparc.cc
+index a9cb93adda..54c7c33498 100644
+--- a/gold/sparc.cc
++++ b/gold/sparc.cc
+@@ -3730,7 +3730,7 @@ Target_sparc<size, big_endian>::Relocate::relocate_tls(
+
+ const bool is_final =
+ (gsym == NULL
+- ? !parameters->options().output_is_position_independent()
++ ? !parameters->options().shared()
+ : gsym->final_value_is_known());
+ const tls::Tls_optimization optimized_type
+ = optimize_tls_reloc(is_final, r_type);
+--
+2.12.2
+
--- /dev/null
+# DP: Fix gprof build error.
+
+Index: b/gprof/gconfig.in
+===================================================================
+--- a/gprof/gconfig.in
++++ b/gprof/gconfig.in
+@@ -96,9 +96,6 @@
+ #endif
+
+
+-/* Version number of package */
+-#undef VERSION
+-
+ /* Number of bits in a file offset, on hosts where this is settable. */
+ #undef _FILE_OFFSET_BITS
+
--- /dev/null
+Index: b/bfd/po/fr.po
+===================================================================
+--- a/bfd/po/fr.po
++++ b/bfd/po/fr.po
+@@ -2890,7 +2890,7 @@ msgstr "%B: réadressage R_X86_64_GOTOFF
+
+ #: elf64-x86-64.c:3523
+ msgid "; recompile with -fPIC"
+-msgstr "; recompilé avec -fPIC"
++msgstr "; recompilez avec -fPIC"
+
+ #: elf64-x86-64.c:3528
+ msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
--- /dev/null
+# DP: ld: enable new dtags by default for linux/gnu targets
+
+From 9e3072ad67f8b6d092e9e4dbfc6f8c9141aabe0c Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 21 Jan 2013 08:21:45 +0000
+Subject: [PATCH] ld: enable new dtags by default for linux/gnu targets
+
+The "new" dtags options have been around for 14+ years now, so for Linux
+and GNU targets, enable them by default.
+
+2012-01-21 Mike Frysinger <vapier@gentoo.org>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
+ link_info.new_dtags to TRUE for linux/gnu targets.
+ * NEWS: Mention new dtags default.
+
+From 8d0bade12dbc53bfe61a63add17e7780618f1ac1 Mon Sep 17 00:00:00 2001
+From: Roland McGrath <roland@gnu.org>
+Date: Tue, 22 Jan 2013 22:07:34 +0000
+Subject: [PATCH] ld/ * emultempl/elf32.em
+ (gld${EMULATION_NAME}_before_parse): Set new_dtags to TRUE for
+ *-*-nacl* targets.
+
+2013-01-22 Roland McGrath <mcgrathr@google.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
+ new_dtags to TRUE for *-*-nacl* targets.
+
+Index: b/ld/emultempl/elf32.em
+===================================================================
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -106,6 +106,16 @@ gld${EMULATION_NAME}_before_parse (void)
+ `if test -n "$CALL_NOP_BYTE" ; then echo link_info.call_nop_byte = $CALL_NOP_BYTE; fi`;
+ link_info.check_relocs_after_open_input = `if test "x${CHECK_RELOCS_AFTER_OPEN_INPUT}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
+ link_info.relro = DEFAULT_LD_Z_RELRO;
++EOF
++
++case ${target} in
++ *-*-linux-* | *-*-k*bsd*-* | *-*-gnu* | *-*-nacl*)
++ fragment <<EOF
++ link_info.new_dtags = TRUE;
++EOF
++ ;;
++esac
++fragment <<EOF
+ }
+
+ EOF
--- /dev/null
+Index: b/bfd/config.bfd
+===================================================================
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -1182,11 +1182,21 @@ case "${targ}" in
+ targ_defvec=mips_elf32_be_vec
+ targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+ ;;
+- mips64*el-*-linux*)
++ mips*64*el-*-linux*-gnuabi64)
++ targ_defvec=mips_elf64_trad_le_vec
++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec"
++ want64=true
++ ;;
++ mips*64*-*-linux*-gnuabi64)
++ targ_defvec=mips_elf64_trad_be_vec
++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
++ want64=true
++ ;;
++ mips*64*el-*-linux*)
+ targ_defvec=mips_elf32_ntrad_le_vec
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+ ;;
+- mips64*-*-linux*)
++ mips*64*-*-linux*)
+ targ_defvec=mips_elf32_ntrad_be_vec
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+ ;;
+Index: b/gas/configure.ac
+===================================================================
+--- a/gas/configure.ac
++++ b/gas/configure.ac
+@@ -345,7 +345,10 @@ changequote([,])dnl
+ esac
+ # Decide which ABI to target by default.
+ case ${target} in
+- mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
++ mips*64*-linux-gnuabi64)
++ mips_default_abi=N64_ABI
++ ;;
++ mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
+ mips_default_abi=N32_ABI
+ ;;
+ mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
+Index: b/ld/configure.tgt
+===================================================================
+--- a/ld/configure.tgt
++++ b/ld/configure.tgt
+@@ -518,10 +518,16 @@ mips*el-*-vxworks*) targ_emul=elf32elmip
+ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
+ targ_extra_emuls="elf32elmipvxworks" ;;
+ mips*-*-windiss) targ_emul=elf32mipswindiss ;;
+-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
++mips*64*el-*-linux-gnuabi64) targ_emul=elf64ltsmip
++ targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf32ltsmipn32 elf64btsmip"
++ targ_extra_libpath=$targ_extra_emuls ;;
++mips*64*-*-linux-gnuabi64) targ_emul=elf64btsmip
++ targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf32btsmipn32 elf64ltsmip"
++ targ_extra_libpath=$targ_extra_emuls ;;
++mips*64*el-*-linux-*) targ_emul=elf32ltsmipn32
+ targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
+ targ_extra_libpath=$targ_extra_emuls ;;
+-mips64*-*-linux-*) targ_emul=elf32btsmipn32
++mips*64*-*-linux-*) targ_emul=elf32btsmipn32
+ targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
+ targ_extra_libpath=$targ_extra_emuls ;;
+ mips*el-*-linux-*) targ_emul=elf32ltsmip
+Index: b/gas/configure
+===================================================================
+--- a/gas/configure
++++ b/gas/configure
+@@ -12380,7 +12380,10 @@ _ACEOF
+ esac
+ # Decide which ABI to target by default.
+ case ${target} in
+- mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
++ mips*64*-linux-gnuabi64)
++ mips_default_abi=N64_ABI
++ ;;
++ mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
+ mips_default_abi=N32_ABI
+ ;;
+ mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
--- /dev/null
+# DP: Fix incorrect library search order on PowerPC, taken from the trunk.
+
+ld/
+
+2017-03-13 Alexey Neyman <stilor@att.net>
+
+ * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Set from target
+ cpu, not host.
+
+--- a/ld/emulparams/elf32ppccommon.sh
++++ b/ld/emulparams/elf32ppccommon.sh
+@@ -44,11 +44,11 @@ fi
+
+ # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
+ # Similarly, look for 32 bit libraries in /lib32, /usr/lib32 etc.
+-case "$host":"$EMULATION_NAME" in
+- *le-*:*64lppc*) LIBPATH_SUFFIX=64 ;;
+- *le-*:*32lppc*) LIBPATH_SUFFIX=32 ;;
+- *le-*:*64*) LIBPATH_SUFFIX=64be ;;
+- *le-*:*32*) LIBPATH_SUFFIX=32be ;;
++case `echo "$target" | sed -e 's/-.*//'`:"$EMULATION_NAME" in
++ *le:*64lppc*) LIBPATH_SUFFIX=64 ;;
++ *le:*32lppc*) LIBPATH_SUFFIX=32 ;;
++ *le:*64*) LIBPATH_SUFFIX=64be ;;
++ *le:*32*) LIBPATH_SUFFIX=32be ;;
+ *:*64lppc*) LIBPATH_SUFFIX=64le ;;
+ *:*32lppc*) LIBPATH_SUFFIX=32le ;;
+ *:*64*) LIBPATH_SUFFIX=64 ;;
--- /dev/null
+# DP: Proposed patch for PR ld/16428, disallow -shared/-pie, -shared/-static, -pie/-static.
+
+2014-01-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/16428
+ * ld.texinfo: Updated for -static/-non_shared change.
+ * ldlex.h (option_values): Add OPTION_STATIC.
+ * lexsup.c (ld_options): Use OPTION_STATIC for -static/-non_shared.
+ (parse_args): Handle OPTION_STATIC. Disallow -shared and -pie,
+ -shared and -static, -pie and -static.
+
+2014-01-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/16428
+ * ld-elf/pr16428a.d: New file.
+ * ld-elf/pr16428b.d: Likewise.
+ * ld-elf/pr16428c.d: Likewise.
+ * ld-elf/pr16428d.d: Likewise.
+
+diff --git a/ld/ld.texinfo b/ld/ld.texinfo
+index ae3d568..bddfdfe 100644
+--- a/ld/ld.texinfo
++++ b/ld/ld.texinfo
+@@ -1204,11 +1204,11 @@ platforms for which shared libraries are supported. The different
+ variants of this option are for compatibility with various systems. You
+ may use this option multiple times on the command line: it affects
+ library searching for @option{-l} options which follow it. This
+-option also implies @option{--unresolved-symbols=report-all}. This
+-option can be used with @option{-shared}. Doing so means that a
+-shared library is being created but that all of the library's external
+-references must be resolved by pulling in entries from static
+-libraries.
++option also implies @option{--unresolved-symbols=report-all}.
++@option{-Bstatic} and @option{-dn} can be used with @option{-shared}.
++Doing so means that a shared library is being created but that all of
++the library's external references must be resolved by pulling in entries
++from static libraries.
+
+ @kindex -Bsymbolic
+ @item -Bsymbolic
+diff --git a/ld/ldlex.h b/ld/ldlex.h
+index 99f4282..6f237dc 100644
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -49,6 +49,7 @@ enum option_values
+ OPTION_NO_WARN_SEARCH_MISMATCH,
+ OPTION_NOINHIBIT_EXEC,
+ OPTION_NON_SHARED,
++ OPTION_STATIC,
+ OPTION_NO_WHOLE_ARCHIVE,
+ OPTION_OFORMAT,
+ OPTION_RELAX,
+diff --git a/ld/lexsup.c b/ld/lexsup.c
+index 2f71750..a366613 100644
+--- a/ld/lexsup.c
++++ b/ld/lexsup.c
+@@ -269,9 +269,9 @@ static const struct ld_option ld_options[] =
+ '\0', NULL, N_("Do not link against shared libraries"), ONE_DASH },
+ { {"dn", no_argument, NULL, OPTION_NON_SHARED},
+ '\0', NULL, NULL, ONE_DASH },
+- { {"non_shared", no_argument, NULL, OPTION_NON_SHARED},
++ { {"non_shared", no_argument, NULL, OPTION_STATIC},
+ '\0', NULL, NULL, ONE_DASH },
+- { {"static", no_argument, NULL, OPTION_NON_SHARED},
++ { {"static", no_argument, NULL, OPTION_STATIC},
+ '\0', NULL, NULL, ONE_DASH },
+ { {"Bsymbolic", no_argument, NULL, OPTION_SYMBOLIC},
+ '\0', NULL, N_("Bind global references locally"), ONE_DASH },
+@@ -523,6 +523,7 @@ parse_args (unsigned argc, char **argv)
+ struct option *really_longopts;
+ int last_optind;
+ enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
++ bfd_boolean seen_pie = FALSE, seen_shared = FALSE, seen_static = FALSE;
+
+ shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
+ longopts = (struct option *)
+@@ -707,6 +708,8 @@ parse_args (unsigned argc, char **argv)
+ case OPTION_CALL_SHARED:
+ input_flags.dynamic = TRUE;
+ break;
++ case OPTION_STATIC:
++ seen_static = TRUE;
+ case OPTION_NON_SHARED:
+ input_flags.dynamic = FALSE;
+ break;
+@@ -1087,6 +1090,7 @@ parse_args (unsigned argc, char **argv)
+ case OPTION_SHARED:
+ if (config.has_shared)
+ {
++ seen_shared = TRUE;
+ link_info.shared = TRUE;
+ /* When creating a shared library, the default
+ behaviour is to ignore any unresolved references. */
+@@ -1101,6 +1105,7 @@ parse_args (unsigned argc, char **argv)
+ case OPTION_PIE:
+ if (config.has_shared)
+ {
++ seen_pie = TRUE;
+ link_info.shared = TRUE;
+ link_info.pie = TRUE;
+ }
+@@ -1445,6 +1450,16 @@ parse_args (unsigned argc, char **argv)
+ }
+ }
+
++ if (seen_shared)
++ {
++ if (seen_pie)
++ einfo (_("%P%F: -shared and -pie are incompatible\n"));
++ if (seen_static)
++ einfo (_("%P%F: -shared and -static are incompatible\n"));
++ }
++ if (seen_pie && seen_static)
++ einfo (_("%P%F: -pie and -static are incompatible\n"));
++
+ while (ingroup)
+ {
+ lang_leave_group ();
+diff --git a/ld/testsuite/ld-elf/pr16428a.d b/ld/testsuite/ld-elf/pr16428a.d
+new file mode 100644
+index 0000000..8f5e833
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr16428a.d
+@@ -0,0 +1,4 @@
++#source: start.s
++#ld: -shared -static
++#target: *-*-linux* *-*-gnu* *-*-nacl*
++#error: -shared and -static are incompatible
+diff --git a/ld/testsuite/ld-elf/pr16428b.d b/ld/testsuite/ld-elf/pr16428b.d
+new file mode 100644
+index 0000000..f4ccba0
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr16428b.d
+@@ -0,0 +1,4 @@
++#source: start.s
++#ld: -shared -non_shared
++#target: *-*-linux* *-*-gnu* *-*-nacl*
++#error: -shared and -static are incompatible
+diff --git a/ld/testsuite/ld-elf/pr16428c.d b/ld/testsuite/ld-elf/pr16428c.d
+new file mode 100644
+index 0000000..747e8da
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr16428c.d
+@@ -0,0 +1,4 @@
++#source: start.s
++#ld: -shared -pie
++#target: *-*-linux* *-*-gnu* *-*-nacl*
++#error: -shared and -pie are incompatible
+diff --git a/ld/testsuite/ld-elf/pr16428d.d b/ld/testsuite/ld-elf/pr16428d.d
+new file mode 100644
+index 0000000..6e7a915
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr16428d.d
+@@ -0,0 +1,4 @@
++#source: start.s
++#ld: -pie -static
++#target: *-*-linux* *-*-gnu* *-*-nacl*
++#error: -pie and -static are incompatible
--- /dev/null
+# DP: Revert commit causing PR 21074.
+
+Index: b/gold/output.cc
+===================================================================
+--- a/gold/output.cc
++++ b/gold/output.cc
+@@ -4801,7 +4801,7 @@ Output_segment::first_section() const
+ return (*p)->output_section();
+ }
+ }
+- return NULL;
++ gold_unreachable();
+ }
+
+ // Return the number of Output_sections in an Output_segment.
+Index: b/gold/output.h
+===================================================================
+--- a/gold/output.h
++++ b/gold/output.h
+@@ -4741,7 +4741,6 @@ class Output_segment
+ first_section_load_address() const
+ {
+ const Output_section* os = this->first_section();
+- gold_assert(os != NULL);
+ return os->has_load_address() ? os->load_address() : os->address();
+ }
+
+Index: b/gold/symtab.cc
+===================================================================
+--- a/gold/symtab.cc
++++ b/gold/symtab.cc
+@@ -3159,14 +3159,7 @@ Symbol_table::sized_write_globals(const
+ break;
+
+ case Symbol::IN_OUTPUT_SEGMENT:
+- {
+- Output_segment* oseg = sym->output_segment();
+- Output_section* osect = oseg->first_section();
+- if (osect == NULL)
+- shndx = elfcpp::SHN_ABS;
+- else
+- shndx = osect->out_shndx();
+- }
++ shndx = elfcpp::SHN_ABS;
+ break;
+
+ case Symbol::IS_CONSTANT:
+Index: b/gold/ChangeLog-2016
+===================================================================
+--- a/gold/ChangeLog-2016
++++ b/gold/ChangeLog-2016
+@@ -87,15 +87,6 @@
+ * testsuite/Makefile.in: Regenerate.
+ * ver_test_8.sh: New test script.
+
+-2016-12-21 Cary Coutant <ccoutant@gmail.com>
+-
+- * output.cc (Output_segment::first_section): Return NULL if there are
+- no sections in the segment.
+- * output.h (Output_segment::first_section_load_address): Assert that
+- first section is not NULL.
+- * symtab.cc (Symbol_table::sized_write_globals): Attach linker-created
+- segment-relative symbols to first section of the segment.
+-
+ 2016-12-21 Alan Modra <amodra@gmail.com>
+
+ * arm.cc: Fix comment chars with high bit set.
--- /dev/null
+# DP: Fix PR binutils/21135, invalid read of section contents.
+
+From f055032e4e922f1e1a5e11026c7c2669fa2a7d19 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Mon, 13 Feb 2017 15:04:37 +0000
+Subject: [PATCH] Fix invalid read of section contents whilst processing a
+ corrupt binary.
+
+ PR binutils/21135
+ * readelf.c (dump_section_as_bytes): Handle the case where
+ uncompress_section_contents returns false.
+ (dump_section_as_bytes, load_specific_debug_section): Likewise.
+
+---
+ binutils/ChangeLog | 6 ++++++
+ binutils/readelf.c | 16 ++++++++++++----
+ 2 files changed, 18 insertions(+), 4 deletions(-)
+
+2017-02-13 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21135
+ * readelf.c (dump_section_as_bytes): Handle the case where
+ uncompress_section_contents returns false.
+ (dump_section_as_bytes, load_specific_debug_section): Likewise.
+
+Index: b/binutils/readelf.c
+===================================================================
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -12668,10 +12668,18 @@ dump_section_as_strings (Elf_Internal_Sh
+ new_size -= 12;
+ }
+
+- if (uncompressed_size
+- && uncompress_section_contents (& start,
+- uncompressed_size, & new_size))
+- num_bytes = new_size;
++ if (uncompressed_size)
++ {
++ if (uncompress_section_contents (& start,
++ uncompressed_size, & new_size))
++ num_bytes = new_size;
++ else
++ {
++ error (_("Unable to decompress section %s\n"),
++ printable_section_name (section));
++ return;
++ }
++ }
+ }
+
+ /* If the section being dumped has relocations against it the user might
+@@ -12802,10 +12810,18 @@ dump_section_as_bytes (Elf_Internal_Shdr
+ new_size -= 12;
+ }
+
+- if (uncompressed_size
+- && uncompress_section_contents (& start, uncompressed_size,
+- & new_size))
+- section_size = new_size;
++ if (uncompressed_size)
++ {
++ if (uncompress_section_contents (& start, uncompressed_size,
++ & new_size))
++ section_size = new_size;
++ else
++ {
++ error (_("Unable to decompress section %s\n"),
++ printable_section_name (section));
++ return;
++ }
++ }
+ }
+
+ if (relocate)
+@@ -12955,14 +12971,22 @@ load_specific_debug_section (enum dwarf_
+ size -= 12;
+ }
+
+- if (uncompressed_size
+- && uncompress_section_contents (&start, uncompressed_size,
+- &size))
+- {
+- /* Free the compressed buffer, update the section buffer
+- and the section size if uncompress is successful. */
+- free (section->start);
+- section->start = start;
++ if (uncompressed_size)
++ {
++ if (uncompress_section_contents (&start, uncompressed_size,
++ &size))
++ {
++ /* Free the compressed buffer, update the section buffer
++ and the section size if uncompress is successful. */
++ free (section->start);
++ section->start = start;
++ }
++ else
++ {
++ error (_("Unable to decompress section %s\n"),
++ printable_section_name (sec));
++ return 0;
++ }
+ }
+ section->size = size;
+ }
--- /dev/null
+# DP: Fix PR binutils/21137, readelf writing to illegal addresses.
+
+From 03f7786e2f440b9892b1c34a58fb26222ce1b493 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Mon, 13 Feb 2017 13:08:32 +0000
+Subject: [PATCH] Fix readelf writing to illegal addresses whilst processing
+ corrupt input files containing symbol-difference relocations.
+
+ PR binutils/21137
+ * readelf.c (target_specific_reloc_handling): Add end parameter.
+ Check for buffer overflow before writing relocated values.
+ (apply_relocations): Pass end to target_specific_reloc_handling.
+---
+ binutils/ChangeLog | 7 +++++++
+ binutils/readelf.c | 30 +++++++++++++++++++++++++-----
+ 2 files changed, 32 insertions(+), 5 deletions(-)
+
+2017-02-13 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21137
+ * readelf.c (target_specific_reloc_handling): Add end parameter.
+ Check for buffer overflow before writing relocated values.
+ (apply_relocations): Pass end to target_specific_reloc_handling.
+
+diff --git a/binutils/readelf.c b/binutils/readelf.c
+index b488714..e474f27 100644
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -11591,6 +11591,7 @@ process_syminfo (FILE * file ATTRIBUTE_UNUSED)
+ static bfd_boolean
+ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ unsigned char * start,
++ unsigned char * end,
+ Elf_Internal_Sym * symtab)
+ {
+ unsigned int reloc_type = get_reloc_type (reloc->r_info);
+@@ -11631,13 +11632,19 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ handle_sym_diff:
+ if (saved_sym != NULL)
+ {
++ int reloc_size = reloc_type == 1 ? 4 : 2;
+ bfd_vma value;
+
+ value = reloc->r_addend
+ + (symtab[get_reloc_symindex (reloc->r_info)].st_value
+ - saved_sym->st_value);
+
+- byte_put (start + reloc->r_offset, value, reloc_type == 1 ? 4 : 2);
++ if (start + reloc->r_offset + reloc_size >= end)
++ /* PR 21137 */
++ error (_("MSP430 sym diff reloc writes past end of section (%p vs %p)\n"),
++ start + reloc->r_offset + reloc_size, end);
++ else
++ byte_put (start + reloc->r_offset, value, reloc_size);
+
+ saved_sym = NULL;
+ return TRUE;
+@@ -11668,13 +11675,18 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ case 2: /* R_MN10300_16 */
+ if (saved_sym != NULL)
+ {
++ int reloc_size = reloc_type == 1 ? 4 : 2;
+ bfd_vma value;
+
+ value = reloc->r_addend
+ + (symtab[get_reloc_symindex (reloc->r_info)].st_value
+ - saved_sym->st_value);
+
+- byte_put (start + reloc->r_offset, value, reloc_type == 1 ? 4 : 2);
++ if (start + reloc->r_offset + reloc_size >= end)
++ error (_("MN10300 sym diff reloc writes past end of section (%p vs %p)\n"),
++ start + reloc->r_offset + reloc_size, end);
++ else
++ byte_put (start + reloc->r_offset, value, reloc_size);
+
+ saved_sym = NULL;
+ return TRUE;
+@@ -11709,12 +11721,20 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ break;
+
+ case 0x41: /* R_RL78_ABS32. */
+- byte_put (start + reloc->r_offset, value, 4);
++ if (start + reloc->r_offset + 4 >= end)
++ error (_("RL78 sym diff reloc writes past end of section (%p vs %p)\n"),
++ start + reloc->r_offset + 2, end);
++ else
++ byte_put (start + reloc->r_offset, value, 4);
+ value = 0;
+ return TRUE;
+
+ case 0x43: /* R_RL78_ABS16. */
+- byte_put (start + reloc->r_offset, value, 2);
++ if (start + reloc->r_offset + 2 >= end)
++ error (_("RL78 sym diff reloc writes past end of section (%p vs %p)\n"),
++ start + reloc->r_offset + 2, end);
++ else
++ byte_put (start + reloc->r_offset, value, 2);
+ value = 0;
+ return TRUE;
+
+@@ -12340,7 +12360,7 @@ apply_relocations (void * file,
+
+ reloc_type = get_reloc_type (rp->r_info);
+
+- if (target_specific_reloc_handling (rp, start, symtab))
++ if (target_specific_reloc_handling (rp, start, end, symtab))
+ continue;
+ else if (is_none_reloc (reloc_type))
+ continue;
+--
+2.9.3
+
--- /dev/null
+# DP: Fix PR binutils/21139, read-after-free error in readelf.
+
+From f84ce13b6708801ca1d6289b7c4003e2f5a6d7f9 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Mon, 13 Feb 2017 14:03:22 +0000
+Subject: [PATCH] Fix read-after-free error in readelf when processing
+ multiple, relocated sections in an MSP430 binary.
+
+ PR binutils/21139
+ * readelf.c (target_specific_reloc_handling): Add num_syms
+ parameter. Check for symbol table overflow before accessing
+ symbol value. If reloc pointer is NULL, discard all saved state.
+ (apply_relocations): Pass num_syms to target_specific_reloc_handling.
+ Call target_specific_reloc_handling with a NULL reloc pointer
+ after processing all of the relocs.
+---
+ binutils/ChangeLog | 10 +++++
+ binutils/readelf.c | 109 +++++++++++++++++++++++++++++++++++++++++------------
+ 2 files changed, 94 insertions(+), 25 deletions(-)
+
+2017-02-13 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21139
+ * readelf.c (target_specific_reloc_handling): Add num_syms
+ parameter. Check for symbol table overflow before accessing
+ symbol value. If reloc pointer is NULL, discard all saved state.
+ (apply_relocations): Pass num_syms to target_specific_reloc_handling.
+ Call target_specific_reloc_handling with a NULL reloc pointer
+ after processing all of the relocs.
+
+diff --git a/binutils/readelf.c b/binutils/readelf.c
+index e474f27..de961c4 100644
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -11586,15 +11586,27 @@ process_syminfo (FILE * file ATTRIBUTE_UNUSED)
+
+ /* Check to see if the given reloc needs to be handled in a target specific
+ manner. If so then process the reloc and return TRUE otherwise return
+- FALSE. */
++ FALSE.
++
++ If called with reloc == NULL, then this is a signal that reloc processing
++ for the current section has finished, and any saved state should be
++ discarded. */
+
+ static bfd_boolean
+ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ unsigned char * start,
+ unsigned char * end,
+- Elf_Internal_Sym * symtab)
++ Elf_Internal_Sym * symtab,
++ unsigned long num_syms)
+ {
+- unsigned int reloc_type = get_reloc_type (reloc->r_info);
++ unsigned int reloc_type = 0;
++ unsigned long sym_index = 0;
++
++ if (reloc)
++ {
++ reloc_type = get_reloc_type (reloc->r_info);
++ sym_index = get_reloc_symindex (reloc->r_info);
++ }
+
+ switch (elf_header.e_machine)
+ {
+@@ -11603,6 +11615,12 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ {
+ static Elf_Internal_Sym * saved_sym = NULL;
+
++ if (reloc == NULL)
++ {
++ saved_sym = NULL;
++ return TRUE;
++ }
++
+ switch (reloc_type)
+ {
+ case 10: /* R_MSP430_SYM_DIFF */
+@@ -11610,7 +11628,12 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ break;
+ /* Fall through. */
+ case 21: /* R_MSP430X_SYM_DIFF */
+- saved_sym = symtab + get_reloc_symindex (reloc->r_info);
++ /* PR 21139. */
++ if (sym_index >= num_syms)
++ error (_("MSP430 SYM_DIFF reloc contains invalid symbol index %lu\n"),
++ sym_index);
++ else
++ saved_sym = symtab + sym_index;
+ return TRUE;
+
+ case 1: /* R_MSP430_32 or R_MSP430_ABS32 */
+@@ -11635,16 +11658,21 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ int reloc_size = reloc_type == 1 ? 4 : 2;
+ bfd_vma value;
+
+- value = reloc->r_addend
+- + (symtab[get_reloc_symindex (reloc->r_info)].st_value
+- - saved_sym->st_value);
+-
+- if (start + reloc->r_offset + reloc_size >= end)
+- /* PR 21137 */
+- error (_("MSP430 sym diff reloc writes past end of section (%p vs %p)\n"),
+- start + reloc->r_offset + reloc_size, end);
++ if (sym_index >= num_syms)
++ error (_("MSP430 reloc contains invalid symbol index %lu\n"),
++ sym_index);
+ else
+- byte_put (start + reloc->r_offset, value, reloc_size);
++ {
++ value = reloc->r_addend + (symtab[sym_index].st_value
++ - saved_sym->st_value);
++
++ if (start + reloc->r_offset + reloc_size >= end)
++ /* PR 21137 */
++ error (_("MSP430 sym diff reloc writes past end of section (%p vs %p)\n"),
++ start + reloc->r_offset + reloc_size, end);
++ else
++ byte_put (start + reloc->r_offset, value, reloc_size);
++ }
+
+ saved_sym = NULL;
+ return TRUE;
+@@ -11664,13 +11692,24 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ {
+ static Elf_Internal_Sym * saved_sym = NULL;
+
++ if (reloc == NULL)
++ {
++ saved_sym = NULL;
++ return TRUE;
++ }
++
+ switch (reloc_type)
+ {
+ case 34: /* R_MN10300_ALIGN */
+ return TRUE;
+ case 33: /* R_MN10300_SYM_DIFF */
+- saved_sym = symtab + get_reloc_symindex (reloc->r_info);
++ if (sym_index >= num_syms)
++ error (_("MN10300_SYM_DIFF reloc contains invalid symbol index %lu\n"),
++ sym_index);
++ else
++ saved_sym = symtab + sym_index;
+ return TRUE;
++
+ case 1: /* R_MN10300_32 */
+ case 2: /* R_MN10300_16 */
+ if (saved_sym != NULL)
+@@ -11678,15 +11717,20 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ int reloc_size = reloc_type == 1 ? 4 : 2;
+ bfd_vma value;
+
+- value = reloc->r_addend
+- + (symtab[get_reloc_symindex (reloc->r_info)].st_value
+- - saved_sym->st_value);
+-
+- if (start + reloc->r_offset + reloc_size >= end)
+- error (_("MN10300 sym diff reloc writes past end of section (%p vs %p)\n"),
+- start + reloc->r_offset + reloc_size, end);
++ if (sym_index >= num_syms)
++ error (_("MN10300 reloc contains invalid symbol index %lu\n"),
++ sym_index);
+ else
+- byte_put (start + reloc->r_offset, value, reloc_size);
++ {
++ value = reloc->r_addend + (symtab[sym_index].st_value
++ - saved_sym->st_value);
++
++ if (start + reloc->r_offset + reloc_size >= end)
++ error (_("MN10300 sym diff reloc writes past end of section (%p vs %p)\n"),
++ start + reloc->r_offset + reloc_size, end);
++ else
++ byte_put (start + reloc->r_offset, value, reloc_size);
++ }
+
+ saved_sym = NULL;
+ return TRUE;
+@@ -11706,12 +11750,24 @@ target_specific_reloc_handling (Elf_Internal_Rela * reloc,
+ static bfd_vma saved_sym2 = 0;
+ static bfd_vma value;
+
++ if (reloc == NULL)
++ {
++ saved_sym1 = saved_sym2 = 0;
++ return TRUE;
++ }
++
+ switch (reloc_type)
+ {
+ case 0x80: /* R_RL78_SYM. */
+ saved_sym1 = saved_sym2;
+- saved_sym2 = symtab[get_reloc_symindex (reloc->r_info)].st_value;
+- saved_sym2 += reloc->r_addend;
++ if (sym_index >= num_syms)
++ error (_("RL78_SYM reloc contains invalid symbol index %lu\n"),
++ sym_index);
++ else
++ {
++ saved_sym2 = symtab[sym_index].st_value;
++ saved_sym2 += reloc->r_addend;
++ }
+ return TRUE;
+
+ case 0x83: /* R_RL78_OPsub. */
+@@ -12360,7 +12416,7 @@ apply_relocations (void * file,
+
+ reloc_type = get_reloc_type (rp->r_info);
+
+- if (target_specific_reloc_handling (rp, start, end, symtab))
++ if (target_specific_reloc_handling (rp, start, end, symtab, num_syms))
+ continue;
+ else if (is_none_reloc (reloc_type))
+ continue;
+@@ -12456,6 +12512,9 @@ apply_relocations (void * file,
+ }
+
+ free (symtab);
++ /* Let the target specific reloc processing code know that
++ we have finished with these relocs. */
++ target_specific_reloc_handling (NULL, NULL, NULL, NULL, 0);
+
+ if (relocs_return)
+ {
+--
+2.9.3
+
--- /dev/null
+# DP: Fix PR binutils/21156, illegal memory accesses in readelf.
+
+From b814a36d3440de95f2ac6eaa4fc7935c322ea456 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Fri, 17 Feb 2017 15:59:45 +0000
+Subject: [PATCH] Fix illegal memory accesses in readelf when parsing a corrupt
+ binary.
+
+ PR binutils/21156
+ * readelf.c (find_section_in_set): Test for invalid section
+ indicies.
+---
+ binutils/ChangeLog | 6 ++++++
+ binutils/readelf.c | 10 ++++++++--
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+2017-02-17 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21156
+ * readelf.c (find_section_in_set): Test for invalid section
+ indicies.
+
+diff --git a/binutils/readelf.c b/binutils/readelf.c
+index ea9da7a..20df6f8 100644
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -676,8 +676,14 @@ find_section_in_set (const char * name, unsigned int * set)
+ if (set != NULL)
+ {
+ while ((i = *set++) > 0)
+- if (streq (SECTION_NAME (section_headers + i), name))
+- return section_headers + i;
++ {
++ /* See PR 21156 for a reproducer. */
++ if (i >= elf_header.e_shnum)
++ continue; /* FIXME: Should we issue an error message ? */
++
++ if (streq (SECTION_NAME (section_headers + i), name))
++ return section_headers + i;
++ }
+ }
+
+ return find_section (name);
+--
+2.9.3
+
+From 43a444f9c5bfd44b4304eafd78338e21d54bea14 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Mon, 20 Feb 2017 14:40:39 +0000
+Subject: [PATCH] Fix another memory access error in readelf when parsing a
+ corrupt binary.
+
+ PR binutils/21156
+ * dwarf.c (cu_tu_indexes_read): Move into...
+ (load_cu_tu_indexes): ... here. Change the variable into
+ tri-state. Change the function into boolean, returning
+ false if the indicies could not be loaded.
+ (find_cu_tu_set): Return NULL if the indicies could not be
+ loaded.
+---
+ binutils/ChangeLog | 10 ++++++++++
+ binutils/dwarf.c | 34 ++++++++++++++++++++--------------
+ 2 files changed, 30 insertions(+), 14 deletions(-)
+
+2017-02-20 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21156
+ * dwarf.c (cu_tu_indexes_read): Move into...
+ (load_cu_tu_indexes): ... here. Change the variable into
+ tri-state. Change the function into boolean, returning
+ false if the indicies could not be loaded.
+ (find_cu_tu_set): Return NULL if the indicies could not be
+ loaded.
+
+
+diff --git a/binutils/dwarf.c b/binutils/dwarf.c
+index 0184a7a..6d879c9 100644
+--- a/binutils/dwarf.c
++++ b/binutils/dwarf.c
+@@ -76,7 +76,6 @@ int dwarf_check = 0;
+ as a zero-terminated list of section indexes comprising one set of debug
+ sections from a .dwo file. */
+
+-static int cu_tu_indexes_read = 0;
+ static unsigned int *shndx_pool = NULL;
+ static unsigned int shndx_pool_size = 0;
+ static unsigned int shndx_pool_used = 0;
+@@ -99,7 +98,7 @@ static int tu_count = 0;
+ static struct cu_tu_set *cu_sets = NULL;
+ static struct cu_tu_set *tu_sets = NULL;
+
+-static void load_cu_tu_indexes (void *file);
++static bfd_boolean load_cu_tu_indexes (void *);
+
+ /* Values for do_debug_lines. */
+ #define FLAG_DEBUG_LINES_RAW 1
+@@ -2715,7 +2714,7 @@ load_debug_info (void * file)
+ return num_debug_info_entries;
+
+ /* If this is a DWARF package file, load the CU and TU indexes. */
+- load_cu_tu_indexes (file);
++ (void) load_cu_tu_indexes (file);
+
+ if (load_debug_section (info, file)
+ && process_debug_info (&debug_displays [info].section, file, abbrev, 1, 0))
+@@ -7378,21 +7377,27 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
+ section sets that we can use to associate a .debug_info.dwo section
+ with its associated .debug_abbrev.dwo section in a .dwp file. */
+
+-static void
++static bfd_boolean
+ load_cu_tu_indexes (void *file)
+ {
++ static int cu_tu_indexes_read = -1; /* Tri-state variable. */
++
+ /* If we have already loaded (or tried to load) the CU and TU indexes
+ then do not bother to repeat the task. */
+- if (cu_tu_indexes_read)
+- return;
+-
+- if (load_debug_section (dwp_cu_index, file))
+- process_cu_tu_index (&debug_displays [dwp_cu_index].section, 0);
+-
+- if (load_debug_section (dwp_tu_index, file))
+- process_cu_tu_index (&debug_displays [dwp_tu_index].section, 0);
++ if (cu_tu_indexes_read == -1)
++ {
++ cu_tu_indexes_read = TRUE;
++
++ if (load_debug_section (dwp_cu_index, file))
++ if (! process_cu_tu_index (&debug_displays [dwp_cu_index].section, 0))
++ cu_tu_indexes_read = FALSE;
++
++ if (load_debug_section (dwp_tu_index, file))
++ if (! process_cu_tu_index (&debug_displays [dwp_tu_index].section, 0))
++ cu_tu_indexes_read = FALSE;
++ }
+
+- cu_tu_indexes_read = 1;
++ return (bfd_boolean) cu_tu_indexes_read;
+ }
+
+ /* Find the set of sections that includes section SHNDX. */
+@@ -7402,7 +7407,8 @@ find_cu_tu_set (void *file, unsigned int shndx)
+ {
+ unsigned int i;
+
+- load_cu_tu_indexes (file);
++ if (! load_cu_tu_indexes (file))
++ return NULL;
+
+ /* Find SHNDX in the shndx pool. */
+ for (i = 0; i < shndx_pool_used; i++)
+--
+2.9.3
+
--- /dev/null
+# DP: Fix PR binutils/21157, handling of corrupt STABS enum type strings.
+
+From a2dea0b20bc66a4c287c3c50002b8c3b3e9d953a Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Tue, 14 Feb 2017 14:07:29 +0000
+Subject: [PATCH] Fix handling of corrupt STABS enum type strings.
+
+ PR binutils/21157
+ * stabs.c (parse_stab_enum_type): Check for corrupt NAME:VALUE
+ pairs.
+ (parse_number): Exit early if passed an empty string.
+---
+ binutils/ChangeLog | 7 +++++++
+ binutils/stabs.c | 14 +++++++++++++-
+ 2 files changed, 20 insertions(+), 1 deletion(-)
+
+2017-02-14 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21157
+ * stabs.c (parse_stab_enum_type): Check for corrupt NAME:VALUE
+ pairs.
+ (parse_number): Exit early if passed an empty string.
+
+diff --git a/binutils/stabs.c b/binutils/stabs.c
+index d3fc4af..3861f83 100644
+--- a/binutils/stabs.c
++++ b/binutils/stabs.c
+@@ -232,6 +232,10 @@ parse_number (const char **pp, bfd_boolean *poverflow)
+
+ orig = *pp;
+
++ /* Stop early if we are passed an empty string. */
++ if (*orig == 0)
++ return (bfd_vma) 0;
++
+ errno = 0;
+ ul = strtoul (*pp, (char **) pp, 0);
+ if (ul + 1 != 0 || errno == 0)
+@@ -1975,9 +1979,17 @@ parse_stab_enum_type (void *dhandle, const char **pp)
+ bfd_signed_vma val;
+
+ p = *pp;
+- while (*p != ':')
++ while (*p != ':' && *p != 0)
+ ++p;
+
++ if (*p == 0)
++ {
++ bad_stab (orig);
++ free (names);
++ free (values);
++ return DEBUG_TYPE_NULL;
++ }
++
+ name = savestring (*pp, p - *pp);
+
+ *pp = p + 1;
+--
+2.9.3
+
--- /dev/null
+# DP: Fix PR binutils/21342, null pointer dereferences when using a link built
+# DP: with clang.
+
+From ad32986fdf9da1c8748e47b8b45100398223dba8 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Tue, 4 Apr 2017 11:23:36 +0100
+Subject: [PATCH] Fix null pointer dereferences when using a link built with
+ clang.
+
+ PR binutils/21342
+ * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
+ dereference.
+ (bfd_elf_final_link): Only initialize the extended symbol index
+ section if there are extended symbol tables to list.
+---
+ bfd/ChangeLog | 8 ++++++++
+ bfd/elflink.c | 35 +++++++++++++++++++++--------------
+ 2 files changed, 29 insertions(+), 14 deletions(-)
+
+bfd/
+
+2017-04-04 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21342
+ * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
+ dereference.
+ (bfd_elf_final_link): Only initialize the extended symbol index
+ section if there are extended symbol tables to list.
+
+
+diff --git a/bfd/elflink.c b/bfd/elflink.c
+index 776357f..9bf75c8 100644
+--- a/bfd/elflink.c
++++ b/bfd/elflink.c
+@@ -119,15 +119,18 @@ _bfd_elf_define_linkage_sym (bfd *abfd,
+ defined in shared libraries can't be overridden, because we
+ lose the link to the bfd which is via the symbol section. */
+ h->root.type = bfd_link_hash_new;
++ bh = &h->root;
+ }
++ else
++ bh = NULL;
+
+- bh = &h->root;
+ bed = get_elf_backend_data (abfd);
+ if (!_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_GLOBAL,
+ sec, 0, NULL, FALSE, bed->collect,
+ &bh))
+ return NULL;
+ h = (struct elf_link_hash_entry *) bh;
++ BFD_ASSERT (h != NULL);
+ h->def_regular = 1;
+ h->non_elf = 0;
+ h->root.linker_def = 1;
+@@ -12038,24 +12041,28 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
+ {
+ /* Finish up and write out the symbol string table (.strtab)
+ section. */
+- Elf_Internal_Shdr *symstrtab_hdr;
++ Elf_Internal_Shdr *symstrtab_hdr = NULL;
+ file_ptr off = symtab_hdr->sh_offset + symtab_hdr->sh_size;
+
+- symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr;
+- if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0)
++ if (elf_symtab_shndx_list (abfd))
+ {
+- symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
+- symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx);
+- symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx);
+- amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx);
+- symtab_shndx_hdr->sh_size = amt;
++ symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr;
+
+- off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
+- off, TRUE);
++ if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0)
++ {
++ symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX;
++ symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx);
++ symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx);
++ amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx);
++ symtab_shndx_hdr->sh_size = amt;
+
+- if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
+- || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt))
+- return FALSE;
++ off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr,
++ off, TRUE);
++
++ if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
++ || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt))
++ return FALSE;
++ }
+ }
+
+ symstrtab_hdr = &elf_tdata (abfd)->strtab_hdr;
+--
+2.9.3
+
--- /dev/null
+From bce964aa6c777d236fbd641f2bc7bb931cfe4bf3 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Sun, 23 Apr 2017 11:03:34 +0930
+Subject: [PATCH] PR 21412, get_reloc_section assumes .rel/.rela name for
+ SHT_REL/RELA.
+
+This patch fixes an assumption made by code that runs for objcopy and
+strip, that SHT_REL/SHR_RELA sections are always named starting with a
+.rel/.rela prefix. I'm also modifying the interface for
+elf_backend_get_reloc_section, so any backend function just needs to
+handle name mapping.
+
+ PR 21412
+ * elf-bfd.h (struct elf_backend_data <get_reloc_section>): Change
+ parameters and comment.
+ (_bfd_elf_get_reloc_section): Delete.
+ (_bfd_elf_plt_get_reloc_section): Declare.
+ * elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section):
+ New functions. Don't blindly skip over assumed .rel/.rela prefix.
+ Extracted from..
+ (_bfd_elf_get_reloc_section): ..here. Delete.
+ (assign_section_numbers): Call elf_get_reloc_section.
+ * elf64-ppc.c (elf_backend_get_reloc_section): Define.
+ * elfxx-target.h (elf_backend_get_reloc_section): Update.
+---
+ bfd/ChangeLog | 15 ++++++++++++++
+ bfd/elf-bfd.h | 8 ++++---
+ bfd/elf.c | 61 +++++++++++++++++++++++++++++++-----------------------
+ bfd/elf64-ppc.c | 1 +
+ bfd/elfxx-target.h | 2 +-
+ 5 files changed, 57 insertions(+), 30 deletions(-)
+
+diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
+index af377ee..4c0c9e8 100644
+--- a/bfd/elf-bfd.h
++++ b/bfd/elf-bfd.h
+@@ -1360,8 +1360,10 @@ struct elf_backend_data
+ bfd_size_type (*maybe_function_sym) (const asymbol *sym, asection *sec,
+ bfd_vma *code_off);
+
+- /* Return the section which RELOC_SEC applies to. */
+- asection *(*get_reloc_section) (asection *reloc_sec);
++ /* Given NAME, the name of a relocation section stripped of its
++ .rel/.rela prefix, return the section in ABFD to which the
++ relocations apply. */
++ asection *(*get_reloc_section) (bfd *abfd, const char *name);
+
+ /* Called to set the sh_flags, sh_link and sh_info fields of OSECTION which
+ has a type >= SHT_LOOS. Returns TRUE if the fields were initialised,
+@@ -2448,7 +2450,7 @@ extern bfd_boolean _bfd_elf_is_function_type (unsigned int);
+ extern bfd_size_type _bfd_elf_maybe_function_sym (const asymbol *, asection *,
+ bfd_vma *);
+
+-extern asection *_bfd_elf_get_reloc_section (asection *);
++extern asection *_bfd_elf_plt_get_reloc_section (bfd *, const char *);
+
+ extern int bfd_elf_get_default_section_type (flagword);
+
+diff --git a/bfd/elf.c b/bfd/elf.c
+index 18b4bbe..dd1a41f 100644
+--- a/bfd/elf.c
++++ b/bfd/elf.c
+@@ -3538,17 +3538,39 @@ bfd_elf_set_group_contents (bfd *abfd, asection *sec, void *failedptrarg)
+ H_PUT_32 (abfd, sec->flags & SEC_LINK_ONCE ? GRP_COMDAT : 0, loc);
+ }
+
+-/* Return the section which RELOC_SEC applies to. */
++/* Given NAME, the name of a relocation section stripped of its
++ .rel/.rela prefix, return the section in ABFD to which the
++ relocations apply. */
+
+ asection *
+-_bfd_elf_get_reloc_section (asection *reloc_sec)
++_bfd_elf_plt_get_reloc_section (bfd *abfd, const char *name)
++{
++ /* If a target needs .got.plt section, relocations in rela.plt/rel.plt
++ section likely apply to .got.plt or .got section. */
++ if (get_elf_backend_data (abfd)->want_got_plt
++ && strcmp (name, ".plt") == 0)
++ {
++ asection *sec;
++
++ name = ".got.plt";
++ sec = bfd_get_section_by_name (abfd, name);
++ if (sec != NULL)
++ return sec;
++ name = ".got";
++ }
++
++ return bfd_get_section_by_name (abfd, name);
++}
++
++/* Return the section to which RELOC_SEC applies. */
++
++static asection *
++elf_get_reloc_section (asection *reloc_sec)
+ {
+ const char *name;
+ unsigned int type;
+ bfd *abfd;
+-
+- if (reloc_sec == NULL)
+- return NULL;
++ const struct elf_backend_data *bed;
+
+ type = elf_section_data (reloc_sec)->this_hdr.sh_type;
+ if (type != SHT_REL && type != SHT_RELA)
+@@ -3556,28 +3578,15 @@ _bfd_elf_get_reloc_section (asection *reloc_sec)
+
+ /* We look up the section the relocs apply to by name. */
+ name = reloc_sec->name;
+- if (type == SHT_REL)
+- name += 4;
+- else
+- name += 5;
++ if (strncmp (name, ".rel", 4) != 0)
++ return NULL;
++ name += 4;
++ if (type == SHT_RELA && *name++ != 'a')
++ return NULL;
+
+- /* If a target needs .got.plt section, relocations in rela.plt/rel.plt
+- section apply to .got.plt section. */
+ abfd = reloc_sec->owner;
+- if (get_elf_backend_data (abfd)->want_got_plt
+- && strcmp (name, ".plt") == 0)
+- {
+- /* .got.plt is a linker created input section. It may be mapped
+- to some other output section. Try two likely sections. */
+- name = ".got.plt";
+- reloc_sec = bfd_get_section_by_name (abfd, name);
+- if (reloc_sec != NULL)
+- return reloc_sec;
+- name = ".got";
+- }
+-
+- reloc_sec = bfd_get_section_by_name (abfd, name);
+- return reloc_sec;
++ bed = get_elf_backend_data (abfd);
++ return bed->get_reloc_section (abfd, name);
+ }
+
+ /* Assign all ELF section numbers. The dummy first section is handled here
+@@ -3841,7 +3850,7 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info)
+ if (s != NULL)
+ d->this_hdr.sh_link = elf_section_data (s)->this_idx;
+
+- s = get_elf_backend_data (abfd)->get_reloc_section (sec);
++ s = elf_get_reloc_section (sec);
+ if (s != NULL)
+ {
+ d->this_hdr.sh_info = elf_section_data (s)->this_idx;
+diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
+index fc69964..2e8f338 100644
+--- a/bfd/elf64-ppc.c
++++ b/bfd/elf64-ppc.c
+@@ -121,6 +121,7 @@ static bfd_vma opd_entry_value
+ #define elf_backend_special_sections ppc64_elf_special_sections
+ #define elf_backend_merge_symbol_attribute ppc64_elf_merge_symbol_attribute
+ #define elf_backend_merge_symbol ppc64_elf_merge_symbol
++#define elf_backend_get_reloc_section bfd_get_section_by_name
+
+ /* The name of the dynamic interpreter. This is put in the .interp
+ section. */
+diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
+index 6cc9f3f..2551267 100644
+--- a/bfd/elfxx-target.h
++++ b/bfd/elfxx-target.h
+@@ -715,7 +715,7 @@
+ #endif
+
+ #ifndef elf_backend_get_reloc_section
+-#define elf_backend_get_reloc_section _bfd_elf_get_reloc_section
++#define elf_backend_get_reloc_section _bfd_elf_plt_get_reloc_section
+ #endif
+
+ #ifndef elf_backend_copy_special_section_fields
+--
+2.9.3
+
--- /dev/null
+From 7eacd66b086cabb1daab20890d5481894d4f56b2 Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Sun, 23 Apr 2017 15:21:11 +0930
+Subject: [PATCH] PR 21414, null pointer deref of _bfd_elf_large_com_section
+ sym
+
+ PR 21414
+ * section.c (GLOBAL_SYM_INIT): Make available in bfd.h.
+ * elf.c (lcomm_sym): New.
+ (_bfd_elf_large_com_section): Use lcomm_sym section symbol.
+ * bfd-in2.h: Regenerate.
+---
+ bfd/ChangeLog | 8 ++++++++
+ bfd/bfd-in2.h | 12 ++++++++++++
+ bfd/elf.c | 6 ++++--
+ bfd/section.c | 24 ++++++++++++------------
+ 4 files changed, 36 insertions(+), 14 deletions(-)
+
+diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
+index 1d73134..17a35c0 100644
+--- a/bfd/bfd-in2.h
++++ b/bfd/bfd-in2.h
+@@ -1839,6 +1839,18 @@ extern asection _bfd_std_section[4];
+ { NULL }, { NULL } \
+ }
+
++/* We use a macro to initialize the static asymbol structures because
++ traditional C does not permit us to initialize a union member while
++ gcc warns if we don't initialize it.
++ the_bfd, name, value, attr, section [, udata] */
++#ifdef __STDC__
++#define GLOBAL_SYM_INIT(NAME, SECTION) \
++ { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
++#else
++#define GLOBAL_SYM_INIT(NAME, SECTION) \
++ { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
++#endif
++
+ void bfd_section_list_clear (bfd *);
+
+ asection *bfd_get_section_by_name (bfd *abfd, const char *name);
+diff --git a/bfd/elf.c b/bfd/elf.c
+index dd1a41f..a08e0f8 100644
+--- a/bfd/elf.c
++++ b/bfd/elf.c
+@@ -11244,9 +11244,11 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd,
+
+ /* It is only used by x86-64 so far.
+ ??? This repeats *COM* id of zero. sec->id is supposed to be unique,
+- but current usage would allow all of _bfd_std_section to be zero. t*/
++ but current usage would allow all of _bfd_std_section to be zero. */
++static const asymbol lcomm_sym
++ = GLOBAL_SYM_INIT ("LARGE_COMMON", &_bfd_elf_large_com_section);
+ asection _bfd_elf_large_com_section
+- = BFD_FAKE_SECTION (_bfd_elf_large_com_section, NULL,
++ = BFD_FAKE_SECTION (_bfd_elf_large_com_section, &lcomm_sym,
+ "LARGE_COMMON", 0, SEC_IS_COMMON);
+
+ void
+diff --git a/bfd/section.c b/bfd/section.c
+index 4b3cf6a..28eee7f 100644
+--- a/bfd/section.c
++++ b/bfd/section.c
+@@ -738,20 +738,20 @@ CODE_FRAGMENT
+ . { NULL }, { NULL } \
+ . }
+ .
++.{* We use a macro to initialize the static asymbol structures because
++. traditional C does not permit us to initialize a union member while
++. gcc warns if we don't initialize it.
++. the_bfd, name, value, attr, section [, udata] *}
++.#ifdef __STDC__
++.#define GLOBAL_SYM_INIT(NAME, SECTION) \
++. { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
++.#else
++.#define GLOBAL_SYM_INIT(NAME, SECTION) \
++. { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
++.#endif
++.
+ */
+
+-/* We use a macro to initialize the static asymbol structures because
+- traditional C does not permit us to initialize a union member while
+- gcc warns if we don't initialize it. */
+- /* the_bfd, name, value, attr, section [, udata] */
+-#ifdef __STDC__
+-#define GLOBAL_SYM_INIT(NAME, SECTION) \
+- { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
+-#else
+-#define GLOBAL_SYM_INIT(NAME, SECTION) \
+- { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
+-#endif
+-
+ /* These symbols are global, not specific to any BFD. Therefore, anything
+ that tries to change them is broken, and should be repaired. */
+
+--
+2.9.3
+
--- /dev/null
+From e63d123268f23a4cbc45ee55fb6dbc7d84729da3 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Wed, 26 Apr 2017 13:07:49 +0100
+Subject: [PATCH] Fix seg-fault attempting to compress a debug section in a
+ corrupt binary.
+
+ PR binutils/21431
+ * compress.c (bfd_init_section_compress_status): Check the return
+ value from bfd_malloc.
+---
+ bfd/ChangeLog | 6 ++++++
+ bfd/compress.c | 19 +++++++++----------
+ 2 files changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/bfd/compress.c b/bfd/compress.c
+index f881c07..c854a20 100644
+--- a/bfd/compress.c
++++ b/bfd/compress.c
+@@ -542,7 +542,6 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec)
+ {
+ bfd_size_type uncompressed_size;
+ bfd_byte *uncompressed_buffer;
+- bfd_boolean ret;
+
+ /* Error if not opened for read. */
+ if (abfd->direction != read_direction
+@@ -558,18 +557,18 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec)
+ /* Read in the full section contents and compress it. */
+ uncompressed_size = sec->size;
+ uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size);
++ /* PR 21431 */
++ if (uncompressed_buffer == NULL)
++ return FALSE;
++
+ if (!bfd_get_section_contents (abfd, sec, uncompressed_buffer,
+ 0, uncompressed_size))
+- ret = FALSE;
+- else
+- {
+- uncompressed_size = bfd_compress_section_contents (abfd, sec,
+- uncompressed_buffer,
+- uncompressed_size);
+- ret = uncompressed_size != 0;
+- }
++ return FALSE;
+
+- return ret;
++ uncompressed_size = bfd_compress_section_contents (abfd, sec,
++ uncompressed_buffer,
++ uncompressed_size);
++ return uncompressed_size != 0;
+ }
+
+ /*
+--
+2.9.3
+
--- /dev/null
+From a941291cab71b9ac356e1c03968c177c03e602ab Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Sat, 29 Apr 2017 14:48:16 +0930
+Subject: [PATCH] PR21432, buffer overflow in perform_relocation
+
+The existing reloc offset range tests didn't catch small negative
+offsets less than the size of the reloc field.
+
+ PR 21432
+ * reloc.c (reloc_offset_in_range): New function.
+ (bfd_perform_relocation, bfd_install_relocation): Use it.
+ (_bfd_final_link_relocate): Likewise.
+---
+ bfd/ChangeLog | 7 +++++++
+ bfd/reloc.c | 32 ++++++++++++++++++++------------
+ 2 files changed, 27 insertions(+), 12 deletions(-)
+
+diff --git a/bfd/reloc.c b/bfd/reloc.c
+index 9a04022..12520d1 100644
+--- a/bfd/reloc.c
++++ b/bfd/reloc.c
+@@ -538,6 +538,22 @@ bfd_check_overflow (enum complain_overflow how,
+ return flag;
+ }
+
++/* HOWTO describes a relocation, at offset OCTET. Return whether the
++ relocation field is within SECTION of ABFD. */
++
++static bfd_boolean
++reloc_offset_in_range (reloc_howto_type *howto, bfd *abfd,
++ asection *section, bfd_size_type octet)
++{
++ bfd_size_type octet_end = bfd_get_section_limit_octets (abfd, section);
++ bfd_size_type reloc_size = bfd_get_reloc_size (howto);
++
++ /* The reloc field must be contained entirely within the section.
++ Allow zero length fields (marker relocs or NONE relocs where no
++ relocation will be performed) at the end of the section. */
++ return octet <= octet_end && octet + reloc_size <= octet_end;
++}
++
+ /*
+ FUNCTION
+ bfd_perform_relocation
+@@ -619,15 +635,9 @@ bfd_perform_relocation (bfd *abfd,
+ if (howto == NULL)
+ return bfd_reloc_undefined;
+
+- /* Is the address of the relocation really within the section?
+- Include the size of the reloc in the test for out of range addresses.
+- PR 17512: file: c146ab8b, 46dff27f, 38e53ebf. */
++ /* Is the address of the relocation really within the section? */
+ octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+- if (octets + bfd_get_reloc_size (howto)
+- > bfd_get_section_limit_octets (abfd, input_section)
+- /* Check for an overly large offset which
+- masquerades as a negative value too. */
+- || (octets + bfd_get_reloc_size (howto) < bfd_get_reloc_size (howto)))
++ if (!reloc_offset_in_range (howto, abfd, input_section, octets))
+ return bfd_reloc_outofrange;
+
+ /* Work out which section the relocation is targeted at and the
+@@ -1015,8 +1025,7 @@ bfd_install_relocation (bfd *abfd,
+
+ /* Is the address of the relocation really within the section? */
+ octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+- if (octets + bfd_get_reloc_size (howto)
+- > bfd_get_section_limit_octets (abfd, input_section))
++ if (!reloc_offset_in_range (howto, abfd, input_section, octets))
+ return bfd_reloc_outofrange;
+
+ /* Work out which section the relocation is targeted at and the
+@@ -1354,8 +1363,7 @@ _bfd_final_link_relocate (reloc_howto_type *howto,
+ bfd_size_type octets = address * bfd_octets_per_byte (input_bfd);
+
+ /* Sanity check the address. */
+- if (octets + bfd_get_reloc_size (howto)
+- > bfd_get_section_limit_octets (input_bfd, input_section))
++ if (!reloc_offset_in_range (howto, input_bfd, input_section, octets))
+ return bfd_reloc_outofrange;
+
+ /* This function assumes that we are dealing with a basic relocation
+--
+2.9.3
+
--- /dev/null
+From 04b31182bf3f8a1a76e995bdfaaaab4c009b9cb2 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Wed, 26 Apr 2017 16:30:22 +0100
+Subject: [PATCH] Fix a seg-fault when processing a corrupt binary containing
+ reloc(s) with negative addresses.
+
+ PR binutils/21434
+ * reloc.c (bfd_perform_relocation): Check for a negative address
+ in the reloc.
+---
+ bfd/ChangeLog | 6 ++++++
+ bfd/reloc.c | 5 ++++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/bfd/reloc.c b/bfd/reloc.c
+index 2791458..9a04022 100644
+--- a/bfd/reloc.c
++++ b/bfd/reloc.c
+@@ -624,7 +624,10 @@ bfd_perform_relocation (bfd *abfd,
+ PR 17512: file: c146ab8b, 46dff27f, 38e53ebf. */
+ octets = reloc_entry->address * bfd_octets_per_byte (abfd);
+ if (octets + bfd_get_reloc_size (howto)
+- > bfd_get_section_limit_octets (abfd, input_section))
++ > bfd_get_section_limit_octets (abfd, input_section)
++ /* Check for an overly large offset which
++ masquerades as a negative value too. */
++ || (octets + bfd_get_reloc_size (howto) < bfd_get_reloc_size (howto)))
+ return bfd_reloc_outofrange;
+
+ /* Work out which section the relocation is targeted at and the
+--
+2.9.3
+
--- /dev/null
+From d949ff5607b9f595e0eed2ff15fbe5eb84eb3a34 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Fri, 28 Apr 2017 10:28:04 +0100
+Subject: [PATCH] Fix heap-buffer overflow bugs caused when dumping debug
+ information from a corrupt binary.
+
+ PR binutils/21438
+ * dwarf.c (process_extended_line_op): Do not assume that the
+ string extracted from the section is NUL terminated.
+ (fetch_indirect_string): If the string retrieved from the section
+ is not NUL terminated, return an error message.
+ (fetch_indirect_line_string): Likewise.
+ (fetch_indexed_string): Likewise.
+---
+ binutils/ChangeLog | 10 +++++++++
+ binutils/dwarf.c | 66 +++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 60 insertions(+), 16 deletions(-)
+
+Index: b/binutils/dwarf.c
+===================================================================
+--- a/binutils/dwarf.c
++++ b/binutils/dwarf.c
+@@ -472,15 +472,20 @@ process_extended_line_op (unsigned char
+ printf (_(" Entry\tDir\tTime\tSize\tName\n"));
+ printf (" %d\t", ++state_machine_regs.last_file_entry);
+
+- name = data;
+- data += strnlen ((char *) data, end - data) + 1;
+- printf ("%s\t", dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end)));
+- data += bytes_read;
+- printf ("%s\t", dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end)));
+- data += bytes_read;
+- printf ("%s\t", dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end)));
+- data += bytes_read;
+- printf ("%s\n\n", name);
++ {
++ size_t l;
++
++ name = data;
++ l = strnlen ((char *) data, end - data);
++ data += len + 1;
++ printf ("%s\t", dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end)));
++ data += bytes_read;
++ printf ("%s\t", dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end)));
++ data += bytes_read;
++ printf ("%s\t", dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end)));
++ data += bytes_read;
++ printf ("%.*s\n\n", (int) l, name);
++ }
+
+ if (((unsigned int) (data - orig_data) != len) || data == end)
+ warn (_("DW_LNE_define_file: Bad opcode length\n"));
+@@ -597,18 +602,28 @@ static const unsigned char *
+ fetch_indirect_string (dwarf_vma offset)
+ {
+ struct dwarf_section *section = &debug_displays [str].section;
++ const unsigned char * ret;
+
+ if (section->start == NULL)
+ return (const unsigned char *) _("<no .debug_str section>");
+
+- if (offset > section->size)
++ if (offset >= section->size)
+ {
+ warn (_("DW_FORM_strp offset too big: %s\n"),
+ dwarf_vmatoa ("x", offset));
+ return (const unsigned char *) _("<offset is too big>");
+ }
+
+- return (const unsigned char *) section->start + offset;
++ ret = section->start + offset;
++ /* Unfortunately we cannot rely upon the .debug_str section ending with a
++ NUL byte. Since our caller is expecting to receive a well formed C
++ string we test for the lack of a terminating byte here. */
++ if (strnlen ((const char *) ret, section->size - offset)
++ == section->size - offset)
++ ret = (const unsigned char *)
++ _("<no NUL byte at end of .debug_str section>");
++
++ return ret;
+ }
+
+ static const char *
+@@ -621,6 +636,7 @@ fetch_indexed_string (dwarf_vma idx, str
+ struct dwarf_section *str_section = &debug_displays [str_sec_idx].section;
+ dwarf_vma index_offset = idx * offset_size;
+ dwarf_vma str_offset;
++ const char * ret;
+
+ if (index_section->start == NULL)
+ return (dwo ? _("<no .debug_str_offsets.dwo section>")
+@@ -628,7 +644,7 @@ fetch_indexed_string (dwarf_vma idx, str
+
+ if (this_set != NULL)
+ index_offset += this_set->section_offsets [DW_SECT_STR_OFFSETS];
+- if (index_offset > index_section->size)
++ if (index_offset >= index_section->size)
+ {
+ warn (_("DW_FORM_GNU_str_index offset too big: %s\n"),
+ dwarf_vmatoa ("x", index_offset));
+@@ -641,14 +657,22 @@ fetch_indexed_string (dwarf_vma idx, str
+
+ str_offset = byte_get (index_section->start + index_offset, offset_size);
+ str_offset -= str_section->address;
+- if (str_offset > str_section->size)
++ if (str_offset >= str_section->size)
+ {
+ warn (_("DW_FORM_GNU_str_index indirect offset too big: %s\n"),
+ dwarf_vmatoa ("x", str_offset));
+ return _("<indirect index offset is too big>");
+ }
+
+- return (const char *) str_section->start + str_offset;
++ ret = (const char *) str_section->start + str_offset;
++ /* Unfortunately we cannot rely upon str_section ending with a NUL byte.
++ Since our caller is expecting to receive a well formed C string we test
++ for the lack of a terminating byte here. */
++ if (strnlen (ret, str_section->size - str_offset)
++ == str_section->size - str_offset)
++ ret = (const char *) _("<no NUL byte at end of section>");
++
++ return ret;
+ }
+
+ static const char *
--- /dev/null
+From 39ff1b79f687b65f4144ddb379f22587003443fb Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Tue, 2 May 2017 11:54:53 +0100
+Subject: [PATCH] Prevent memory exhaustion from a corrupt PE binary with an
+ overlarge number of relocs.
+
+ PR 21440
+ * objdump.c (dump_relocs_in_section): Check for an excessive
+ number of relocs before attempting to dump them.
+---
+ binutils/ChangeLog | 6 ++++++
+ binutils/objdump.c | 8 ++++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/binutils/objdump.c b/binutils/objdump.c
+index bc61000..5972da1 100644
+--- a/binutils/objdump.c
++++ b/binutils/objdump.c
+@@ -3379,6 +3379,14 @@ dump_relocs_in_section (bfd *abfd,
+ return;
+ }
+
++ if ((bfd_get_file_flags (abfd) & (BFD_IN_MEMORY | BFD_LINKER_CREATED)) == 0
++ && relsize > get_file_size (bfd_get_filename (abfd)))
++ {
++ printf (" (too many: 0x%x)\n", section->reloc_count);
++ bfd_set_error (bfd_error_file_truncated);
++ bfd_fatal (bfd_get_filename (abfd));
++ }
++
+ relpp = (arelent **) xmalloc (relsize);
+ relcount = bfd_canonicalize_reloc (abfd, section, relpp, syms);
+
+--
+2.9.3
+
--- /dev/null
+2017-03-08 Mark Wielaard <mark@klomp.org>
+
+ PR demangler/70909
+ PR demangler/67264
+ * include/demangle.h: Add d_printing to struct demangle_component
+ and pass struct demangle_component as non const.
+
+libiberty/
+
+2017-03-08 Mark Wielaard <mark@klomp.org>
+
+ PR demangler/70909
+ PR demangler/67264
+ * cp-demangle.c: Fix endless recursion. Pass
+ struct demangle_component as non const.
+ (d_make_empty): Initialize variable.
+ (d_print_comp_inner): Limit recursion.
+ (d_print_comp): Decrement variable.
+ * cp-demint.c (cplus_demangle_fill_component): Initialize
+ variable.
+ (cplus_demangle_fill_builtin_type): Likewise.
+ (cplus_demangle_fill_operator): Likewise.
+ * testsuite/demangle-expected: Add tests.
+
+
+Index: b/include/demangle.h
+===================================================================
+--- a/include/demangle.h
++++ b/include/demangle.h
+@@ -494,6 +494,11 @@ struct demangle_component
+ /* The type of this component. */
+ enum demangle_component_type type;
+
++ /* Guard against recursive component printing.
++ Initialize to zero. Private to d_print_comp.
++ All other fields are final after initialization. */
++ int d_printing;
++
+ union
+ {
+ /* For DEMANGLE_COMPONENT_NAME. */
+@@ -688,7 +693,7 @@ cplus_demangle_v3_components (const char
+
+ extern char *
+ cplus_demangle_print (int options,
+- const struct demangle_component *tree,
++ struct demangle_component *tree,
+ int estimated_length,
+ size_t *p_allocated_size);
+
+@@ -708,7 +713,7 @@ cplus_demangle_print (int options,
+
+ extern int
+ cplus_demangle_print_callback (int options,
+- const struct demangle_component *tree,
++ struct demangle_component *tree,
+ demangle_callbackref callback, void *opaque);
+
+ #ifdef __cplusplus
+Index: b/libiberty/testsuite/demangle-expected
+===================================================================
+--- a/libiberty/testsuite/demangle-expected
++++ b/libiberty/testsuite/demangle-expected
+@@ -4686,3 +4686,34 @@ void g<A>(S<&A::operator+>)
+
+ _Z1gI1AEv1SIXadsrT_plEE
+ void g<A>(S<&A::operator+>)
++
++#
++# Test recursion PR67264
++_Z1KIStcvT_E
++_Z1KIStcvT_E
++
++_ZcvT_IIS0_EE
++_ZcvT_IIS0_EE
++
++_ZcvT_IZcvT_E1fE
++_ZcvT_IZcvT_E1fE
++
++_Z1gINcvT_EE
++_Z1gINcvT_EE
++
++_ZcvT_ILZcvDTT_EEE
++_ZcvT_ILZcvDTT_EEE
++
++_Z1gIJOOT_EEOT_c
++_Z1gIJOOT_EEOT_c
++
++_Z1KMMMMMMMMMMMMMMMA_xooooooooooooooo
++_Z1KMMMMMMMMMMMMMMMA_xooooooooooooooo
++
++_ZdvMMMMMMMMMMMMMrrrrA_DTdvfp_fp_Eededilfdfdfdfd
++_ZdvMMMMMMMMMMMMMrrrrA_DTdvfp_fp_Eededilfdfdfdfd
++#
++# Test for Infinite Recursion PR70909
++
++_Z1MA_aMMMMA_MMA_MMMMMMMMSt1MS_o11T0000000000t2M0oooozoooo
++_Z1MA_aMMMMA_MMA_MMMMMMMMSt1MS_o11T0000000000t2M0oooozoooo
+Index: b/libiberty/cp-demint.c
+===================================================================
+--- a/libiberty/cp-demint.c
++++ b/libiberty/cp-demint.c
+@@ -123,6 +123,7 @@ cplus_demangle_fill_component (struct de
+ p->type = type;
+ p->u.s_binary.left = left;
+ p->u.s_binary.right = right;
++ p->d_printing = 0;
+
+ return 1;
+ }
+@@ -146,6 +147,7 @@ cplus_demangle_fill_builtin_type (struct
+ {
+ p->type = DEMANGLE_COMPONENT_BUILTIN_TYPE;
+ p->u.s_builtin.type = &cplus_demangle_builtin_types[i];
++ p->d_printing = 0;
+ return 1;
+ }
+ }
+@@ -172,6 +174,7 @@ cplus_demangle_fill_operator (struct dem
+ {
+ p->type = DEMANGLE_COMPONENT_OPERATOR;
+ p->u.s_operator.op = &cplus_demangle_operators[i];
++ p->d_printing = 0;
+ return 1;
+ }
+ }
+Index: b/libiberty/cp-demangle.c
+===================================================================
+--- a/libiberty/cp-demangle.c
++++ b/libiberty/cp-demangle.c
+@@ -173,10 +173,10 @@ static struct demangle_component *d_mang
+ static struct demangle_component *d_type (struct d_info *);
+
+ #define cplus_demangle_print d_print
+-static char *d_print (int, const struct demangle_component *, int, size_t *);
++static char *d_print (int, struct demangle_component *, int, size_t *);
+
+ #define cplus_demangle_print_callback d_print_callback
+-static int d_print_callback (int, const struct demangle_component *,
++static int d_print_callback (int, struct demangle_component *,
+ demangle_callbackref, void *);
+
+ #define cplus_demangle_init_info d_init_info
+@@ -265,7 +265,7 @@ struct d_print_mod
+ in which they appeared in the mangled string. */
+ struct d_print_mod *next;
+ /* The modifier. */
+- const struct demangle_component *mod;
++ struct demangle_component *mod;
+ /* Whether this modifier was printed. */
+ int printed;
+ /* The list of templates which applies to this modifier. */
+@@ -531,7 +531,7 @@ static inline void d_append_string (stru
+ static inline char d_last_char (struct d_print_info *);
+
+ static void
+-d_print_comp (struct d_print_info *, int, const struct demangle_component *);
++d_print_comp (struct d_print_info *, int, struct demangle_component *);
+
+ static void
+ d_print_java_identifier (struct d_print_info *, const char *, int);
+@@ -540,25 +540,25 @@ static void
+ d_print_mod_list (struct d_print_info *, int, struct d_print_mod *, int);
+
+ static void
+-d_print_mod (struct d_print_info *, int, const struct demangle_component *);
++d_print_mod (struct d_print_info *, int, struct demangle_component *);
+
+ static void
+ d_print_function_type (struct d_print_info *, int,
+- const struct demangle_component *,
++ struct demangle_component *,
+ struct d_print_mod *);
+
+ static void
+ d_print_array_type (struct d_print_info *, int,
+- const struct demangle_component *,
++ struct demangle_component *,
+ struct d_print_mod *);
+
+ static void
+-d_print_expr_op (struct d_print_info *, int, const struct demangle_component *);
++d_print_expr_op (struct d_print_info *, int, struct demangle_component *);
+
+ static void d_print_cast (struct d_print_info *, int,
+- const struct demangle_component *);
++ struct demangle_component *);
+ static void d_print_conversion (struct d_print_info *, int,
+- const struct demangle_component *);
++ struct demangle_component *);
+
+ static int d_demangle_callback (const char *, int,
+ demangle_callbackref, void *);
+@@ -924,6 +924,7 @@ d_make_empty (struct d_info *di)
+ if (di->next_comp >= di->num_comps)
+ return NULL;
+ p = &di->comps[di->next_comp];
++ p->d_printing = 0;
+ ++di->next_comp;
+ return p;
+ }
+@@ -4246,7 +4247,7 @@ d_last_char (struct d_print_info *dpi)
+ CP_STATIC_IF_GLIBCPP_V3
+ int
+ cplus_demangle_print_callback (int options,
+- const struct demangle_component *dc,
++ struct demangle_component *dc,
+ demangle_callbackref callback, void *opaque)
+ {
+ struct d_print_info dpi;
+@@ -4289,7 +4290,7 @@ cplus_demangle_print_callback (int optio
+
+ CP_STATIC_IF_GLIBCPP_V3
+ char *
+-cplus_demangle_print (int options, const struct demangle_component *dc,
++cplus_demangle_print (int options, struct demangle_component *dc,
+ int estimate, size_t *palc)
+ {
+ struct d_growable_string dgs;
+@@ -4449,7 +4450,7 @@ d_args_length (struct d_print_info *dpi,
+
+ static void
+ d_print_subexpr (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+ int simple = 0;
+ if (dc->type == DEMANGLE_COMPONENT_NAME
+@@ -4525,9 +4526,9 @@ d_get_saved_scope (struct d_print_info *
+
+ static int
+ d_maybe_print_fold_expression (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+- const struct demangle_component *ops, *operator_, *op1, *op2;
++ struct demangle_component *ops, *operator_, *op1, *op2;
+ int save_idx;
+
+ const char *fold_code = d_left (dc)->u.s_operator.op->code;
+@@ -4588,11 +4589,11 @@ d_maybe_print_fold_expression (struct d_
+
+ static void
+ d_print_comp_inner (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+ /* Magic variable to let reference smashing skip over the next modifier
+ without needing to modify *dc. */
+- const struct demangle_component *mod_inner = NULL;
++ struct demangle_component *mod_inner = NULL;
+
+ /* Variable used to store the current templates while a previously
+ captured scope is used. */
+@@ -4977,7 +4978,7 @@ d_print_comp_inner (struct d_print_info
+ case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
+ {
+ /* Handle reference smashing: & + && = &. */
+- const struct demangle_component *sub = d_left (dc);
++ struct demangle_component *sub = d_left (dc);
+ if (!dpi->is_lambda_arg
+ && sub->type == DEMANGLE_COMPONENT_TEMPLATE_PARAM)
+ {
+@@ -5680,9 +5681,16 @@ d_print_comp_inner (struct d_print_info
+
+ static void
+ d_print_comp (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+ struct d_component_stack self;
++ if (dc == NULL || dc->d_printing > 1)
++ {
++ d_print_error (dpi);
++ return;
++ }
++ else
++ dc->d_printing++;
+
+ self.dc = dc;
+ self.parent = dpi->component_stack;
+@@ -5691,6 +5699,7 @@ d_print_comp (struct d_print_info *dpi,
+ d_print_comp_inner (dpi, options, dc);
+
+ dpi->component_stack = self.parent;
++ dc->d_printing--;
+ }
+
+ /* Print a Java dentifier. For Java we try to handle encoded extended
+@@ -5832,7 +5841,7 @@ d_print_mod_list (struct d_print_info *d
+
+ static void
+ d_print_mod (struct d_print_info *dpi, int options,
+- const struct demangle_component *mod)
++ struct demangle_component *mod)
+ {
+ switch (mod->type)
+ {
+@@ -5924,7 +5933,7 @@ d_print_mod (struct d_print_info *dpi, i
+
+ static void
+ d_print_function_type (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc,
++ struct demangle_component *dc,
+ struct d_print_mod *mods)
+ {
+ int need_paren;
+@@ -6002,7 +6011,7 @@ d_print_function_type (struct d_print_in
+
+ static void
+ d_print_array_type (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc,
++ struct demangle_component *dc,
+ struct d_print_mod *mods)
+ {
+ int need_space;
+@@ -6056,7 +6065,7 @@ d_print_array_type (struct d_print_info
+
+ static void
+ d_print_expr_op (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+ if (dc->type == DEMANGLE_COMPONENT_OPERATOR)
+ d_append_buffer (dpi, dc->u.s_operator.op->name,
+@@ -6069,7 +6078,7 @@ d_print_expr_op (struct d_print_info *dp
+
+ static void
+ d_print_cast (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+ d_print_comp (dpi, options, d_left (dc));
+ }
+@@ -6078,7 +6087,7 @@ d_print_cast (struct d_print_info *dpi,
+
+ static void
+ d_print_conversion (struct d_print_info *dpi, int options,
+- const struct demangle_component *dc)
++ struct demangle_component *dc)
+ {
+ struct d_print_template dpt;
+
--- /dev/null
+branch-updates.diff
+#branch-version.diff
+001_ld_makefile_patch.patch
+002_gprof_profile_arcs.patch
+003_gprof_see_also_monitor.patch
+006_better_file_error.patch
+012_check_ldrunpath_length.patch
+013_bash_in_ld_testsuite.patch
+#014_hash_style-both.patch
+128_ppc64_powerpc_biarch.patch
+129_multiarch_libpath.patch
+130_gold_disable_testsuite_build.patch
+131_ld_bootstrap_testsuite.patch
+135_bfd_version.patch
+136_bfd_pic.patch
+157_ar_scripts_with_tilde.patch
+#158_ld_system_root.patch
+161_gold_dummy_zoption.diff
+
+# only applied for GFDL builds
+164_ld_doc_remove_xref.diff
+
+gprof-build.diff
+aarch64-libpath.diff
+#pr-ld-16428.diff
+mips64-default-n64.diff
+gold-mips.diff
+ld-new-dtags-by-default.diff
+pr21074-revert.diff
+i18n-fr.diff
+
+# patches taken from the trunk
+ppc-lib-search-order.diff
+pr21157.diff
+pr21137.diff
+pr21156.diff
+pr21139.diff
+pr21135.diff
+pr70909.diff
+pr21342.diff
+pr21412.diff
+pr21414.diff
+pr21431.diff
+pr21434.diff
+pr21432.diff
+pr21438.diff
+pr21440.diff
+gold-sparc-fix.diff
--- /dev/null
+#!/usr/bin/make -f
+# debian/rules file - for binutils (2.20)
+# Based on sample debian/rules file - for GNU Hello (1.3).
+# Copyright 1994,1995 by Ian Jackson.
+# Copyright 1998-2007 James Troup.
+# Portions Copyright 2008-2015 Canonical Ltd.
+# Portions Copyright 2008-2015 Matthias Klose.
+# I hereby give you perpetual unlimited permission to copy,
+# modify and relicense this file, provided that you do not remove
+# my name from the file itself. (I assert my moral right of
+# paternity under the Copyright, Designs and Patents Act 1988.)
+# This file may have to be extensively modified
+
+###############################################################################
+
+p_bin = binutils
+p_dev = $(p_bin)-dev
+p_mul = $(p_bin)-multiarch
+p_mdev = $(p_mul)-dev
+p_doc = $(p_bin)-doc
+p_hppa64 = $(p_bin)-hppa64-linux-gnu
+p_src = $(p_bin)-source
+
+distribution := $(shell lsb_release -is)
+distrelease := $(shell lsb_release -cs)
+ifeq ($(distrelease),n/a)
+ distrelease := sid
+endif
+
+# BACKPORT is used for cross builds for a -source package not conflicting
+# with the source package of the native package.
+ifeq ($(BACKPORT),true)
+ p_src = $(p_bin)-$(VERSION)-source
+else
+ p_src = $(p_bin)-source
+endif
+
+pwd := $(shell pwd)
+d = debian/tmp
+d_bin = $(d)
+d_dev = debian/$(p_dev)
+d_mul = debian/$(p_mul)
+d_mdev = debian/$(p_mdev)
+d_doc = debian/$(p_doc)
+d_hppa64 = debian/$(p_hppa64)
+d_src = debian/$(p_src)
+
+install_dir = install -d -m 755
+install_file = install -m 644
+install_script = install -m 755
+install_binary = install -m 755 -s
+
+vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1)))
+DPKG_VARS := $(shell dpkg-architecture)
+DEB_BUILD_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH)
+DEB_HOST_GNU_CPU ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_CPU)
+DEB_HOST_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE)
+DEB_HOST_MULTIARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH)
+
+ifeq (,$(filter $(distrelease),lenny etch squeeze wheezy jessie))
+ ifeq ($(DEB_HOST_GNU_TYPE),i586-linux-gnu)
+ DEB_BUILD_GNU_TYPE = i686-linux-gnu
+ DEB_HOST_GNU_CPU = i686
+ DEB_HOST_GNU_TYPE = i686-linux-gnu
+ TRIPLET_SYMLINK = i586-linux-gnu
+ else ifeq ($(DEB_HOST_GNU_TYPE),i586-kfreebsd-gnu)
+ DEB_BUILD_GNU_TYPE = i686-kfreebsd-gnu
+ DEB_HOST_GNU_CPU = i686
+ DEB_HOST_GNU_TYPE = i686-kfreebsd-gnu
+ TRIPLET_SYMLINK = i586-kfreebsd-gnu
+ else ifeq ($(DEB_HOST_GNU_TYPE),i586-gnu)
+ DEB_BUILD_GNU_TYPE = i686-gnu
+ DEB_HOST_GNU_CPU = i686
+ DEB_HOST_GNU_TYPE = i686-gnu
+ TRIPLET_SYMLINK = i586-gnu
+ endif
+endif
+
+src_name := $(shell dpkg-parsechangelog -S Source)
+ifeq ($(src_name),binutils)
+ with_native = yes
+ with_cross = yes
+ same_source = yes
+ CROSS_ARCHS ?= s390x ppc64el powerpc arm64 armhf armel mips mipsel
+ CROSS_ARCHS += alpha hppa m68k mips64 mips64el powerpcspe ppc64 sh4 sparc64
+ CROSS_ARCHS += mipsn32 mipsn32el
+ #CROSS_ARCHS += mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
+ #CROSS_ARCHS += kfreebsd-amd64 kfreebsd-i386 hurd-i386
+else
+ # binutils-ports ...
+ with_cross = yes
+ CROSS_ARCHS ?= m68k sh4 mips64 mips64el
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386 x32 hppa))
+ with_hppa64 = yes
+endif
+
+HOST_ARCHS_armhf = amd64 i386 x32 arm64
+HOST_ARCHS_armel = amd64 i386 x32 arm64
+HOST_ARCHS_arm64 = amd64 i386 x32
+HOST_ARCHS_mips = amd64 i386 x32
+HOST_ARCHS_mipsel = amd64 i386 x32
+HOST_ARCHS_powerpc = amd64 i386 x32 ppc64el
+HOST_ARCHS_ppc64el = amd64 i386 x32 ppc64
+HOST_ARCHS_s390x = amd64 i386 x32
+
+HOST_ARCHS_alpha = amd64 i386 x32
+HOST_ARCHS_hppa = amd64 i386 x32
+HOST_ARCHS_m68k = amd64 i386 x32
+HOST_ARCHS_mips64 = amd64 i386 x32
+HOST_ARCHS_mips64el = amd64 i386 x32
+HOST_ARCHS_powerpcspe = amd64 i386 x32
+HOST_ARCHS_ppc64 = amd64 i386 x32 ppc64el
+HOST_ARCHS_sh4 = amd64 i386 x32
+HOST_ARCHS_sparc64 = amd64 i386 x32
+
+HOST_ARCHS_mipsn32 = amd64 i386 x32
+HOST_ARCHS_mipsn32el = amd64 i386 x32
+
+HOST_ARCHS_mipsr6 = amd64 i386 x32
+HOST_ARCHS_mipsr6el = amd64 i386 x32
+HOST_ARCHS_mipsn32r6 = amd64 i386 x32
+HOST_ARCHS_mipsn32r6el = amd64 i386 x32
+HOST_ARCHS_mips64r6 = amd64 i386 x32
+HOST_ARCHS_mips64r6el = amd64 i386 x32
+
+HOST_ARCHS_kfreebsd-amd64 = amd64 i386 x32
+HOST_ARCHS_kfreebsd-i386 = amd64 i386 x32
+HOST_ARCHS_hurd-i386 = amd64 i386 x32
+
+ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32))
+ #
+else ifeq ($(DEB_HOST_ARCH),arm64)
+ CROSS_ARCHS = armel armhf
+else ifeq ($(DEB_HOST_ARCH),ppc64)
+ CROSS_ARCHS = ppc64el
+else ifeq ($(DEB_HOST_ARCH),ppc64el)
+ CROSS_ARCHS = powerpc ppc64
+else
+ CROSS_ARCHS =
+endif
+CROSS_ARCH = $(subst .,,$(suffix $@))
+_gnu_type = $(shell dpkg-architecture -a$(1) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)
+_multiarch = $(shell dpkg-architecture -a$(1) -qDEB_HOST_MULTIARCH -f 2>/dev/null)
+CROSS_GNU_TYPE = $(subst i586,i686,$(call _gnu_type,$(CROSS_ARCH)))
+P_CROSS = binutils-$(subst _,-,$(CROSS_GNU_TYPE))
+D_CROSS = debian/binutils-$(subst _,-,$(CROSS_GNU_TYPE))
+
+# If $(TARGET) is not set, try reading debian/target
+ifeq (,$(TARGET))
+ ifneq (,$(wildcard debian/target))
+ TARGET := $(shell cat debian/target 2>/dev/null)
+ endif
+endif
+
+ifneq (,$(TARGET))
+ with_native =
+ with_cross =
+ same_source =
+ # Support TARGET both as Debian architecture specification (e.g. arm),
+ # and as the target name (e.g. arm-linux-gnu).
+ try_convert := $(shell dpkg-architecture -f -a$(TARGET) -qDEB_HOST_GNU_TYPE 2>/dev/null)
+ ifneq ($(try_convert),)
+ override TARGET := $(try_convert)
+ endif
+ DPKG_TARGET_VARS := $(shell dpkg-architecture -f -t$(TARGET))
+ DEB_TARGET_MULTIARCH = $(call vafilt,$(DPKG_TARGET_VARS),DEB_HOST_MULTIARCH)
+ DEB_TARGET_ARCH = $(call vafilt,$(DPKG_TARGET_VARS),DEB_HOST_ARCH)
+else
+ DEB_TARGET_MULTIARCH = $(DEB_HOST_MULTIARCH)
+ DEB_TARGET_ARCH = $(DEB_HOST_ARCH)
+endif
+
+ifneq (,$(TARGET))
+ APPEND_TOOLLIBDIR=yes
+ export APPEND_TOOLLIBDIR
+endif
+
+ifeq (,$(DEB_HOST_MULTIARCH))
+ ifeq ($(DEB_HOST_ARCH),i386)
+ DEB_HOST_MULTIARCH = i386-linux-gnu
+ else
+ DEB_HOST_MULTIARCH = $(DEB_HOST_GNU_TYPE)
+ endif
+endif
+
+SHELL = /bin/bash
+
+gold_targets = \
+ amd64 arm64 armel armhf i386 \
+ mips mipsel mipsn32 mipsn32el mips64 mips64el \
+ mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el \
+ powerpc powerpcspe ppc64 ppc64el sparc sparc64 \
+ x32 kfreebsd-amd64 kfreebsd-i386 hurd-i386
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(gold_targets)))
+ with_gold = yes
+ gold_provides = -Vgold:Provides=binutils-gold
+endif
+
+with_multiarch := yes
+
+CC = gcc
+CXX = g++
+CFLAGS = -g -O2
+CXXFLAGS = -g -O2
+LDFLAGS =
+STRIP = strip --remove-section=.comment --remove-section=.note
+CROSS :=
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ CROSS := $(DEB_HOST_GNU_TYPE)-
+ CC = $(CROSS)gcc
+ CXX = $(CROSS)g++
+ STRIP= $(CURDIR)/debian/strip.cross
+ install_binary = install -m 755 -s --strip-program="$(STRIP)"
+endif
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS = -g -O0
+endif
+
+# this outputs 0 or 1 depending on whether a macro appears in the *default* cpp
+# -dM -P output; this is used to test the toolchain *default* configuration
+check_cpp = $(shell $(CROSS)cpp -dM -P /dev/null | grep -q '^\#define $(1)' && echo 1 || echo 0)
+
+# testsuite doesn't expect to be built with -mthumb
+# TODO if the testsuite is only broken with Thumb-2 (and not with "Thumb-1"),
+# we should test for __thumb2__ instead
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+ ifeq ($(call check_cpp,__thumb__),1)
+ CFLAGS += -marm
+ endif
+endif
+
+SPACE = $(EMPTY) $(EMPTY)
+COMMA = ,
+CHANGELOG_VARS := $(shell dpkg-parsechangelog | \
+ sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p')
+
+DEB_VERSION := $(call vafilt,$(CHANGELOG_VARS),Version)
+DEB_SVERSION := $(shell echo $(DEB_VERSION) | sed 's/+b[0-9][0-9]*$$//')
+DEB_UPSTREAM := $(firstword $(subst -,$(SPACE),$(DEB_VERSION)))
+
+VERSION := $(shell sed -n 's/^ *VERSION=\(.*\)/\1/p' bfd/configure | head -1 | tr -d \')
+DATE := $(shell sed -n 's/.* \([0-9]*\)$$/\1/p' bfd/version.h)
+ifneq (,$(DATE))
+# DATE_EXT := .$(DATE)
+endif
+BUILD_DATE := $(shell dpkg-parsechangelog | sed -n -e 's/^Date: //p')
+
+is_rc = yes
+is_rc =
+
+ifneq ($(DEB_UPSTREAM),$(VERSION)$(DATE_EXT))
+ $(error upstream ($(VERSION)$(DATE_EXT)) and debian ($(DEB_UPSTREAM)) version mismatch)
+endif
+
+SINGLE_VERSION= $(VERSION)-system
+MULTI_VERSION = $(VERSION)-multiarch
+HPPA64_VERSION= $(VERSION)-hppa64
+
+ifeq (,$(filter $(distrelease),lenny etch squeeze wheezy dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring saucy trusty utopic))
+ DPKG_DEV = dpkg-dev (>= 1.17.11),
+endif
+
+NJOBS =
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+endif
+ifneq (,$(findstring nogold,$(DEB_BUILD_OPTIONS)))
+ with_gold = disabled in DEB_BUILD_OPTIONS
+endif
+ifneq (,$(findstring nomult,$(DEB_BUILD_OPTIONS)))
+ with_multiarch = disabled in DEB_BUILD_OPTIONS
+endif
+ifneq (,$(findstring nocross,$(DEB_BUILD_OPTIONS)))
+ with_cross = disabled in DEB_BUILD_OPTIONS
+endif
+ifneq (,$(findstring nohppa,$(DEB_BUILD_OPTIONS)))
+ with_hppa64 = disabled in DEB_BUILD_OPTIONS
+endif
+
+# PF is the installation prefix for the package without the leading slash.
+# It's "usr" for gcc releases, so use this if not explicitly set
+ifeq ($(PF),)
+ PF = usr
+endif
+
+# Don't include docs with GFDL invariant sections
+GFDL_INVARIANT_FREE := yes
+ifeq ($(distribution),Ubuntu)
+ GFDL_INVARIANT_FREE := no
+endif
+
+gfdl_toplevel_texinfo_files = \
+ bfd/doc/bfd.texinfo \
+ bfd/doc/bfdint.texi \
+ ld/ldint.texinfo
+
+gfdl_generated_files = \
+ bfd/doc/bfd.info
+
+########################################
+
+CONFARGS = \
+ --enable-shared \
+ --enable-plugins \
+ --enable-threads \
+ --with-system-zlib \
+ --prefix=/$(PF) \
+ --enable-deterministic-archives \
+ --disable-compressed-debug-sections \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --with-pkgversion="GNU Binutils for $(distribution)"
+
+# not yet ready for GCC 4.9
+CONFARGS += --disable-werror
+
+DEB_TARGET_MULTIARCH32_amd64 = i386-linux-gnu
+DEB_TARGET_MULTIARCHX32_amd64 = x86_64-linux-gnux32
+
+DEB_TARGET_MULTIARCH32_x32 = i386-linux-gnu
+DEB_TARGET_MULTIARCH64_x32 = x86_64-linux-gnu
+
+DEB_TARGET_MULTIARCH32_powerpc = powerpc-linux-gnu
+
+DEB_TARGET_MULTIARCH32_s390x = s390-linux-gnu
+
+DEB_TARGET_MULTIARCH32_sparc64 = sparc-linux-gnu
+
+DEB_TARGET_MULTIARCH32_kfreebsd-amd64 = i386-kfreebsd-gnu
+
+DEB_TARGET_MULTIARCH64_i386 = x86_64-linux-gnu
+DEB_TARGET_MULTIARCHX32_i386 = x86_64-linux-gnux32
+
+DEB_TARGET_MULTIARCH64_powerpc = powerpc64-linux-gnu
+
+DEB_TARGET_MULTIARCH64_sparc = sparc64-linux-gnu
+
+DEB_TARGET_MULTIARCH64_s390 = s390x-linux-gnu
+
+DEB_TARGET_MULTIARCH64_kfreebsd-i386 = x86_64-kfreebsd-gnu
+
+DEB_TARGET_MULTIARCH64_mips = mips64-linux-gnuabi64
+DEB_TARGET_MULTIARCHN32_mips = mips64-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mipsel = mips64el-linux-gnuabi64
+DEB_TARGET_MULTIARCHN32_mipsel = mips64el-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mipsn32 = mips64-linux-gnuabi64
+DEB_TARGET_MULTIARCH32_mipsn32 = mips-linux-gnu
+
+DEB_TARGET_MULTIARCH64_mipsn32el = mips64el-linux-gnuabi64
+DEB_TARGET_MULTIARCH32_mipsn32el = mipsel-linux-gnu
+
+DEB_TARGET_MULTIARCH32_mips64 = mips-linux-gnu
+DEB_TARGET_MULTIARCHN32_mips64 = mips64-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH32_mips64el = mipsel-linux-gnu
+DEB_TARGET_MULTIARCHN32_mips64el = mips64el-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mipsr6 = mipsisa64r6-linux-gnuabi64
+DEB_TARGET_MULTIARCHN32_mipsr6 = mipsisa64r6-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mipsr6el = mipsisa64r6el-linux-gnuabi64
+DEB_TARGET_MULTIARCHN32_mipsr6el = mipsisa64r6el-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mipsn32r6 = mipsisa64r6-linux-gnuabi64
+DEB_TARGET_MULTIARCH32_mipsn32r6 = mipsisa32r6-linux-gnu
+
+DEB_TARGET_MULTIARCH64_mipsn32r6el = mipsisa64r6el-linux-gnuabi64
+DEB_TARGET_MULTIARCH32_mipsn32r6el = mipsisa32r6el-linux-gnu
+
+DEB_TARGET_MULTIARCH32_mips64r6 = mipsisa32r6-linux-gnu
+DEB_TARGET_MULTIARCHN32_mips64r6 = mipsisa64r6-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH32_mips64r6el = mipsisa32r6el-linux-gnu
+DEB_TARGET_MULTIARCHN32_mips64r6el = mipsisa64r6el-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH32_arm64 = aarch64_ilp32-linux-gnu
+
+SET_MULTIARCH_ENV = \
+ DEB_TARGET_MULTIARCH=$(call _multiarch,$1) \
+ $(if $(DEB_TARGET_MULTIARCH32_$1) ,DEB_TARGET_MULTIARCH32=$(DEB_TARGET_MULTIARCH32_$1)) \
+ $(if $(DEB_TARGET_MULTIARCH64_$1) ,DEB_TARGET_MULTIARCH64=$(DEB_TARGET_MULTIARCH64_$1)) \
+ $(if $(DEB_TARGET_MULTIARCHX32_$1),DEB_TARGET_MULTIARCHX32=$(DEB_TARGET_MULTIARCHX32_$1)) \
+ $(if $(DEB_TARGET_MULTIARCHN32_$1),DEB_TARGET_MULTIARCHN32=$(DEB_TARGET_MULTIARCHN32_$1))
+
+CONFARGS_TARGET_sparc = --enable-targets=sparc64-linux-gnu
+CONFLICTS_TARGET_sparc = -VextraConflicts="libc6-dev-sparc64 (<< 2.2.5-7)"
+
+CONFARGS_TARGET_sparc64 = --enable-targets=sparc-linux-gnu
+CONFLICTS_TARGET_sparc64 = -VextraConflicts="libc6-dev-sparc64 (<< 2.2.5-7)"
+
+CONFARGS_TARGET_powerpc = --enable-targets=powerpc64-linux-gnu
+
+CONFARGS_TARGET_ppc64 = --enable-targets=powerpc-linux-gnu
+
+CONFARGS_TARGET_ppc64el = --enable-targets=powerpc-linux-gnu
+
+CONFARGS_TARGET_s390 = --enable-targets=s390x-linux-gnu
+
+CONFARGS_TARGET_s390x = --enable-targets=s390-linux-gnu
+
+CONFARGS_TARGET_amd64 = --enable-targets=x86_64-linux-gnux32,x86_64-pep
+
+CONFARGS_TARGET_i386 = --enable-targets=x86_64-linux-gnu,x86_64-linux-gnux32,x86_64-pep
+
+CONFARGS_TARGET_x32 = --enable-targets=x86_64-linux-gnu,x86_64-pep
+
+CONFLICTS_TARGET_amd64 = -VextraConflicts="binutils-mingw-w64-i686 (<< 2.23.52.20130612-1+3), binutils-mingw-w64-x86-64 (<< 2.23.52.20130612-1+3)"
+CONFLICTS_TARGET_i386 = $(CONFLICTS_TARGET_amd64)
+CONFLICTS_TARGET_x32 = $(CONFLICTS_TARGET_amd64)
+
+CONFARGS_TARGET_kfreebsd-i386 = --enable-targets=x86_64-kfreebsd-gnu
+
+CONFARGS_TARGET_mips = --enable-targets=mips64-linux-gnuabi64,mips64-linux-gnuabin32
+
+CONFARGS_TARGET_mipsel = --enable-targets=mips64el-linux-gnuabi64,mips64el-linux-gnuabin32
+
+CONFARGS_TARGET_mipsn32 = --enable-targets=mips64-linux-gnuabi64,mips-linux-gnu
+
+CONFARGS_TARGET_mipsn32el = --enable-targets=mips64el-linux-gnuabi64,mipsel-linux-gnu
+
+CONFARGS_TARGET_mips64 = --enable-targets=mips64-linux-gnuabin32,mips-linux-gnu
+
+CONFARGS_TARGET_mips64el = --enable-targets=mips64el-linux-gnuabin32,mipsel-linux-gnu
+
+CONFARGS_TARGET_mipsr6 = --enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa64r6-linux-gnuabin32
+
+CONFARGS_TARGET_mipsr6el = --enable-targets=mipsisa64r6el-linux-gnuabi64,mipsisa64r6el-linux-gnuabin32
+
+CONFARGS_TARGET_mipsn32r6 = --enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa32r6-linux-gnu
+
+CONFARGS_TARGET_mipsn32r6el = --enable-targets=mipsisa64r6el-linux-gnuabi64,mipsisa32r6el-linux-gnu
+
+CONFARGS_TARGET_mips64r6 = --enable-targets=mipsisa64r6-linux-gnuabin32,mipsisa32r6-linux-gnu
+
+CONFARGS_TARGET_mips64r6el = --enable-targets=mipsisa64r6el-linux-gnuabin32,mipsisa32r6el-linux-gnu
+
+CONFARGS_TARGET_aarch64 = --enable-targets=aarch64_be-linux-gnu
+
+with_check := yes
+ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+ with_check := disabled through DEB_BUILD_OPTIONS
+endif
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf mips mipsel sparc))
+ ignore_regressions := regressions ignored on architecture $(DEB_HOST_ARCH)
+endif
+
+ignore_regressions := regressions ignored on architecture $(DEB_HOST_ARCH)
+
+with_strip := yes
+ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ with_strip := disabled through DEB_BUILD_OPTIONS
+endif
+
+source_files = $(addprefix $(shell basename $(pwd))/, \
+ $(filter-out stamps .pc CVS debian builddir-% test-summary%, $(wildcard *)))
+
+###############################################################################
+
+#################
+# patch targets #
+#################
+
+patch: stamps/patch
+stamps/patch:
+ifneq ($(PATCHED_SOURCES),yes)
+ QUILT_PATCHES=$(CURDIR)/debian/patches \
+ quilt --quiltrc /dev/null push -a || test $$? = 2
+endif
+ @mkdir -p stamps
+ touch $@
+
+unpatch:
+ QUILT_PATCHES=$(CURDIR)/debian/patches \
+ quilt --quiltrc /dev/null pop -a -R || test $$? = 2
+ rm -rf .pc
+
+update-patches:
+ export QUILT_PATCHES=$(CURDIR)/debian/patches; \
+ export QUILT_REFRESH_ARGS="--no-timestamps --no-index -pab"; \
+ export QUILT_DIFF_ARGS="--no-timestamps --no-index -pab"; \
+ while quilt push; do quilt refresh; done
+
+###############################################################################
+
+################
+# clean target #
+################
+
+clean: unpatch
+ $(checkdir)
+ rm -rf stamps
+ rm -rf builddir-*
+ rm -rf stamps
+ find . -name \*.gmo -o -name \*~ -o -name \*.info ! -name sysroff.info | xargs -r rm -f
+ rm -f $(pwd)/test-summary*
+ rm -rf $(d_bin) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_hppa64) $(d_src)
+ $(foreach ca,$(CROSS_ARCHS), rm -rf debian/binutils-$(shell echo $(call _gnu_type,$(ca)) | sed 's/_/-/g;s/i586/i686/'); )
+ rm -rf debian/patched debian/tmp debian/files* debian/substvars
+ rm -f debian/*.orig debian/*.rej
+ rm -rf $(d_cross) debian/files debian/substvars
+ifneq (,$(TARGET))
+ rm -rf builddir-$(TARGET)
+endif
+ for i in debian/*.in; do \
+ case "$$i" in debian/control*.in) continue; esac; \
+ rm -f $${i%*.in}; \
+ done
+
+ rm -f *-stamp
+
+###############################################################################
+
+stamps/control: debian/control.in $(if $(TARGET),debian/control.cross.in) $(if $(filter yes, $(with_cross)),debian/control.cross.in)
+ifneq (,$(TARGET))
+ sed "s/@dpkg_dev@/$(DPKG_DEV)/;/^$$/ q" < debian/control.in > debian/control
+ sed -e "s/@target@/$$(echo -n $(TARGET) | sed s/_/-/g)/" \
+ -e "s/@host_archs@/any/" \
+ -e 's/@binutils_alt_triplet@//' \
+ < debian/control.cross.in >> debian/control
+else
+ sed -e 's/@dpkg_dev@/$(DPKG_DEV)/' \
+ debian/control.in > debian/control
+ ifeq ($(with_cross),yes)
+ $(foreach ca,$(CROSS_ARCHS), \
+ sed \
+ -e 's/@host_archs@/$(HOST_ARCHS_$(ca))/g' \
+ -e 's/@target@/$(shell dpkg-architecture -a$(ca) -qDEB_HOST_GNU_TYPE 2>/dev/null | sed 's/_/-/g;s/i586/i686/')/g' \
+ -e 's/@binutils_alt_triplet@/$(if $(findstring i386,$(ca)),binutils-$(shell dpkg-architecture -a$(ca) -qDEB_HOST_GNU_TYPE 2>/dev/null | sed 's/i686/i586/g'))/g' \
+ debian/control.cross.in \
+ | $(if $(filter yes,$(same_source)), grep -v '^Built-Using', cat) \
+ >> debian/control; \
+ )
+ endif
+endif
+ @mkdir -p stamps
+ touch $@
+
+debian/strip.cross: debian/strip.cross.in
+ sed -e "s/__TARGET__/$(CROSS)/" \
+ < debian/strip.cross.in >> debian/strip.cross
+ chmod 755 debian/strip.cross
+
+#######################
+# single-arch targets #
+#######################
+
+SINGLE_CONFARGS = $(CONFARGS) $(CONFARGS_TARGET_$(DEB_HOST_ARCH))
+ifeq ($(with_gold),yes)
+ SINGLE_CONFARGS += --enable-ld=default --enable-gold
+endif
+
+stamps/configure-single: stamps/patch
+ $(checkdir)
+ @echo BEGIN $@
+ifeq ($(with_check),yes)
+ @if echo "spawn true" | /usr/bin/expect -f - >/dev/null; then \
+ : ; \
+ else \
+ echo "expect is failing on your system with the above error, which means the"; \
+ echo "testsuite will fail. Please resolve the above issues and retry the build."; \
+ echo "-----------------------------------------------------------------------------"; \
+ exit 1; \
+ fi
+endif
+
+ rm -rf stamps/configure-single builddir-single
+ mkdir builddir-single
+ cd builddir-single && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" \
+ $(call SET_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \
+ ../configure --with-sysroot=/ $(SINGLE_CONFARGS)
+ $(MAKE) -C builddir-single configure-host
+ touch $@
+
+stamps/build-single: stamps/configure-single
+ $(checkdir)
+ @echo BEGIN $@
+ env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \
+ $(call SET_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \
+ $(MAKE) -C builddir-single/bfd headers \
+ LDFLAGS="-Wl,-z,relro"
+ env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \
+ $(call SET_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \
+ $(MAKE) $(NJOBS) -C builddir-single \
+ LDFLAGS="-Wl,-z,relro"
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ifeq ($(with_check),yes)
+ -env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \
+ $(call SET_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \
+ $(MAKE) -C builddir-single -k check
+ cat builddir-single/binutils/binutils.sum \
+ builddir-single/gas/testsuite/gas.sum \
+ builddir-single/ld/ld.sum >> $(pwd)/test-summary
+ set -e; \
+ if [ ! -f /usr/share/doc/binutils/test-summary.gz ]; then \
+ echo "No test results available for the installed binutils version"; \
+ elif [ -x /usr/bin/python3 ]; then \
+ echo "Test results, compared with installed binutils:"; \
+ zcat /usr/share/doc/binutils/test-summary.gz > test-summary-installed; \
+ if python3 debian/test-suite-compare.py test-summary-installed test-summary; then \
+ : ; \
+ elif [ -n "$(ignore_regressions)" ]; then \
+ echo "$(ignore_regressions)"; \
+ else \
+ false; \
+ fi; \
+ else \
+ echo "python3 not installed, not comparing test results."; \
+ fi
+endif
+endif
+ touch $@
+
+
+###############################################################################
+
+#####################
+# multiarch targets #
+#####################
+
+multiarch_targets = \
+ aarch64-linux-gnu \
+ aarch64_be-linux-gnu \
+ alpha-linux-gnu \
+ arm-linux-gnueabi \
+ hppa-linux-gnu \
+ i686-linux-gnu \
+ ia64-linux-gnu \
+ m32r-linux-gnu \
+ m68k-linux-gnu \
+ m68k-rtems \
+ mips-linux-gnu \
+ mipsel-linux-gnu \
+ mips64-linux-gnuabin32 \
+ mips64el-linux-gnuabin32 \
+ mips64-linux-gnu \
+ mips64el-linux-gnu \
+ mipsisa32r6-linux-gnu \
+ mipsisa32r6el-linux-gnu \
+ mipsisa64r6-linux-gnuabin32 \
+ mipsisa64r6el-linux-gnuabin32 \
+ mipsisa64r6-linux-gnuabi64 \
+ mipsisa64r6el-linux-gnuabi64 \
+ powerpc-linux-gnu \
+ powerpc64-linux-gnu \
+ powerpc64le-linux-gnu \
+ s390-linux-gnu \
+ s390x-linux-gnu \
+ sh-linux-gnu \
+ sparc-linux-gnu \
+ sparc64-linux-gnu \
+ x86_64-linux-gnu \
+ x86_64-linux-gnux32 \
+ m32r-linux-gnu \
+ x86_64-pep
+
+# try to work around #758830
+ifeq ($(DEB_HOST_ARCH),sh4)
+ multiarch_targets := $(filter-out hppa-linux-gnu, $(multiarch_targets))
+endif
+
+stamps/configure-multi: stamps/patch
+ $(checkdir)
+ @echo BEGIN $@
+ rm -rf stamps/configure-multi \
+ builddir-multi
+ mkdir builddir-multi
+ cd builddir-multi \
+ && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" \
+ $(call SET_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \
+ ../configure $(CONFARGS) \
+ --with-sysroot=/ \
+ --enable-targets=$(subst $(SPACE),$(COMMA),$(multiarch_targets))
+ $(MAKE) -C builddir-multi configure-host
+ touch $@
+
+stamps/build-multi: stamps/configure-multi
+ $(checkdir)
+ @echo BEGIN $@
+ $(MAKE) -C builddir-multi/bfd headers
+ env MAKE="$(MAKE) VERSION=$(MULTI_VERSION)" \
+ $(call SET_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \
+ $(MAKE) $(NJOBS) -C builddir-multi \
+ LDFLAGS="-Wl,-z,relro"
+ touch $@
+
+###############################################################################
+
+#################
+# cross targets #
+#################
+
+CROSS_CONFARGS = $(CONFARGS) --enable-initfini-array
+ifeq ($(with_gold),yes)
+ CROSS_CONFARGS += --enable-ld=default --enable-gold
+endif
+
+stamps/configure.%: stamps/patch
+ $(checkdir)
+ @echo BEGIN $@
+ rm -rf $@ builddir-$*
+ mkdir builddir-$*
+ cd builddir-$* \
+ && env CC="$(CC)" CXX="$(CXX)" \
+ $(call SET_MULTIARCH_ENV,$*) \
+ ../configure \
+ $(CROSS_CONFARGS) \
+ $(CONFARGS_TARGET_$(*)) \
+ --with-sysroot=/ \
+ $(if $(filter $*, $(gold_targets)),--enable-ld=default --enable-gold,--disable-gold) \
+ --target=$(CROSS_GNU_TYPE)
+ touch $@
+
+stamps/build.%: stamps/configure.%
+ $(checkdir)
+ @echo BEGIN $@
+ env MAKE="$(MAKE) VERSION=$(VERSION)-$*" \
+ $(call SET_MULTIARCH_ENV,$*) \
+ $(MAKE) -C builddir-$* $(NJOBS) \
+ CFLAGS="$(CFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS)" \
+ LDFLAGS="$(LDFLAGS) -Wl,-z,relro"
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ifeq ($(with_check),yes)
+ -env MAKE="$(MAKE) VERSION=$(VERSION)-$*" \
+ $(call SET_MULTIARCH_ENV,$*) \
+ $(MAKE) -C builddir-$* -k check
+ cat builddir-$*/binutils/binutils.sum \
+ builddir-$*/gas/testsuite/gas.sum \
+ builddir-$*/ld/ld.sum >> test-summary-$*
+endif
+endif
+ touch $@
+
+stamps/install.%: stamps/build.% $(if $(CROSS),debian/strip.cross)
+ $(checkdir)
+ @echo BEGIN $@
+ rm -rf $(D_CROSS)
+ env MAKE="$(MAKE) VERSION=$(VERSION)-$*" \
+ $(MAKE) -C builddir-$* prefix=$(pwd)/$(D_CROSS)/$(PF) \
+ mandir=$(pwd)/$(D_CROSS)/$(PF)/share/man install
+
+ rm -rf \
+ $(D_CROSS)/$(PF)/share/info \
+ $(D_CROSS)/$(PF)/share/locale
+
+ mkdir -p $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+ set -e; \
+ d_src=$(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib; \
+ d_dst=$(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH); \
+ for lib in libbfd libopcodes; do \
+ so=$$(basename $$(echo $$d_src/$$lib*$**.so)); \
+ mv $$d_src/$$so $$d_dst/.; \
+ ln -sf ../../../lib/$(DEB_HOST_MULTIARCH)/$$so $$d_src/$$lib.so; \
+ mv $$d_src/$$lib.a $$d_dst/$${lib}-$(VERSION)-$*.a; \
+ ln -sf ../../../lib/$(DEB_HOST_MULTIARCH)/$$lib-$(VERSION)-$*.a $$d_src/$$lib.a; \
+ done
+ $(call strip_package, $(P_CROSS),$(D_CROSS),.)
+ chmod ugo-x $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so
+
+ : # Get rid of .la files since libtool obviously has no idea about transient paths
+ rm -f $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib/*.la
+
+ if which strip-nondeterminism >/dev/null 2>&1; then \
+ find $(D_CROSS) -name '*.a' -print0 \
+ | xargs -0r strip-nondeterminism --type ar; \
+ fi
+
+ : # no spu toolchain
+ rm -f $(D_CROSS)/$(PF)/bin/*embedspu
+
+ : # Remove windows related manpages
+ rm -f $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-{dlltool,nlmconv,windmc,windres}.1
+
+ : # symlink man pages
+ mv $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.1 \
+ $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.bfd.1
+ gzip -9n $(D_CROSS)/$(PF)/share/man/man1/*
+ for i in $(D_CROSS)/$(PF)/share/man/man1/*; do \
+ b=$$(basename $$i | sed 's/$(CROSS_GNU_TYPE)-//'); \
+ ln -sf $$b $$i; \
+ done
+ ln -sf $(CROSS_GNU_TYPE)-ld.bfd.1.gz \
+ $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.1.gz
+
+ : # gold man pages
+ $(if $(filter $*, $(gold_targets)), \
+ ln -sf ld.gold.1.gz $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.gold.1.gz; \
+ ln -sf dwp.1.gz $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-dwp.1.gz; \
+ )
+
+ : # Don't want /usr/<arch>-linux to exist in any package, don't ship development files
+ rm -rf $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)
+
+ rm -f $(D_CROSS)/$(PF)/lib/*.a $(D_CROSS)/$(PF)/lib/*/*.a
+ rm -f $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib/*.a
+
+ : # remove RPATH
+ chrpath -k -d $$(file $(D_CROSS)/usr/bin/*|awk -F: '/ ELF/ {print $$1}')
+ ln -sf $(CROSS_GNU_TYPE)-ld.bfd $(D_CROSS)/usr/bin/$(CROSS_GNU_TYPE)-ld
+
+ : # replace hard links with soft links
+ for i in $(D_CROSS)/usr/$(CROSS_GNU_TYPE)/bin/*; do \
+ ln -sf ../../bin/$(CROSS_GNU_TYPE)-$$(basename $$i) $$i; \
+ done
+
+# temporary i586-* symlinks for stretch/sid
+ compat=$$(echo $(CROSS_GNU_TYPE) | sed 's/i686/i586/'); \
+ case "$(CROSS_GNU_TYPE)" in i686-*) \
+ for i in \
+ addr2line ar as c++filt elfedit gprof ld ld.bfd \
+ $(if $(filter $*, $(gold_targets)),ld.gold dwp) \
+ nm objcopy objdump ranlib readelf size strings strip; \
+ do \
+ ln -sf $(CROSS_GNU_TYPE)-$$i $(D_CROSS)/$(PF)/bin/$$compat-$$i; \
+ ln -sf $(CROSS_GNU_TYPE)-$$i.1.gz $(D_CROSS)/$(PF)/share/man/man1/$$compat-$$i.1.gz; \
+ done; \
+ esac
+ touch $@
+
+###############################################################################
+
+#################
+# hppa64 target #
+#################
+
+stamps/configure-hppa64: stamps/patch
+ $(checkdir)
+ @echo BEGIN $@
+ rm -rf stamps/configure-hppa64 \
+ builddir-hppa64
+ mkdir builddir-hppa64
+ cd builddir-hppa64 \
+ && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ../configure \
+ $(filter-out --enable-targets=%, $(CONFARGS)) \
+ --target=hppa64-linux-gnu
+ $(MAKE) -C builddir-hppa64 configure-host
+ touch $@
+
+stamps/build-hppa64: stamps/configure-hppa64
+ $(checkdir)
+ @echo BEGIN $@
+ $(MAKE) -C builddir-hppa64/bfd headers
+ env MAKE="$(MAKE) VERSION=$(HPPA64_VERSION)" \
+ $(MAKE) $(NJOBS) -C builddir-hppa64 \
+ LDFLAGS="-Wl,-z,relro"
+ touch $@
+
+###############################################################################
+
+pre-build:
+#ifneq (,$(filter $(DEB_HOST_ARCH), armel powerpc))
+# @echo Build it ...
+#else
+# @echo Explicitely fail the build for architecture $(DEB_HOST_ARCH)
+# false
+#endif
+
+build_stamps = stamps/build-single
+ifeq ($(with_multiarch),yes)
+ build_stamps += stamps/build-multi
+endif
+ifeq ($(with_hppa64),yes)
+ build_stamps += stamps/build-hppa64
+endif
+ifeq ($(with_cross),yes)
+ build_stamps += $(foreach ca,$(CROSS_ARCHS), stamps/build.$(ca))
+endif
+ifneq (,$(TARGET))
+ ifneq (,$(findstring static-cross,$(DEB_BUILD_OPTIONS)))
+ build_stamps = stamps/build-static-cross
+ else
+ build_stamps = stamps/build-cross
+ endif
+endif
+ifeq ($(BACKPORT),true)
+ build_stamps :=
+ with_check := no
+endif
+
+build: pre-build stamps/build
+build-arch: pre-build stamps/build
+build-indep: pre-build stamps/build
+stamps/build: $(build_stamps)
+ touch $@
+
+###############################################################################
+
+##################
+# install target #
+##################
+
+install_stamps =
+ifeq ($(with_hppa64),yes)
+ install_stamps += stamps/install-hppa64
+endif
+ifeq ($(with_cross),yes)
+ install_stamps += $(foreach ca,$(CROSS_ARCHS), stamps/install.$(ca))
+endif
+
+ifneq (,$(TARGET))
+ ifneq (,$(findstring static-cross,$(DEB_BUILD_OPTIONS)))
+ install_stamps = stamps/install-static-cross
+ else
+ install_stamp = stamps/install-cross
+ endif
+else
+ install_stamp = stamps/install
+endif
+ifeq ($(BACKPORT),true)
+ install_stamps :=
+endif
+install: $(install_stamp)
+stamps/install: checkroot stamps/build $(install_stamps) $(if $(CROSS),debian/strip.cross)
+ $(checkdir)
+
+ rm -fr $(d_bin) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_src)
+ $(install_dir) $(d_bin) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_src)
+
+ : # install binutils and -dev stuff
+ env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \
+ $(MAKE) -C builddir-single \
+ CFLAGS="$(CFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" \
+ prefix=$(pwd)/$(d_bin)/$(PF) \
+ mandir=$(pwd)/$(d_bin)/$(PF)/share/man \
+ infodir=$(pwd)/$(d_doc)/$(PF)/share/info install
+
+ifeq ($(with_multiarch),yes)
+ : # now install binutils-multiarch stuff
+ env MAKE="$(MAKE) VERSION=$(MULTI_VERSION)" \
+ $(MAKE) -C builddir-multi \
+ CFLAGS="$(CFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" \
+ prefix=$(pwd)/$(d_mul)/$(PF) \
+ mandir=$(pwd)/$(d_mul)/$(PF)/share/man \
+ infodir=$(pwd)/$(d_doc)/$(PF)/share/info install
+endif
+
+ : # fix bfd.h, removing the safety inclusion guard
+ awk '/PR 14072/,/^#endif/ {next} {print}' $(d_bin)/$(PF)/include/bfd.h \
+ > $(d_bin)/$(PF)/include/bfd.h.new
+ mv $(d_bin)/$(PF)/include/bfd.h.new $(d_bin)/$(PF)/include/bfd.h
+
+ : # fix multilib conflicts of generated values by __WORDSIZE-based expressions
+ sed -i -e '/^#include "ansidecl.h"/{p;s~^.*$$~#include <bits/wordsize.h>~;}' \
+ -e 's/^#define BFD_DEFAULT_TARGET_SIZE \(32\|64\) *$$/#define BFD_DEFAULT_TARGET_SIZE __WORDSIZE/' \
+ -e 's/^#define BFD_HOST_64BIT_LONG [01] *$$/#define BFD_HOST_64BIT_LONG (__WORDSIZE == 64)/' \
+ -e 's/^#define BFD_HOST_64_BIT \(long \)\?long *$$/#if __WORDSIZE == 32\
+#define BFD_HOST_64_BIT long long\
+#else\
+#define BFD_HOST_64_BIT long\
+#endif/' \
+ -e 's/^#define BFD_HOST_U_64_BIT unsigned \(long \)\?long *$$/#define BFD_HOST_U_64_BIT unsigned BFD_HOST_64_BIT/' \
+ $(d_bin)/$(PF)/include/bfd.h
+
+ : # copy plugin-api.h ...
+ cp -f include/plugin-api.h $(d_bin)/$(PF)/include
+
+ : # We don't need to distribute everything in binutils and -dev
+ rm -rf $(d_bin)/$(PF)/include/obstack.h
+ rm -f $(d_bin)/$(PF)/man/man1/configure.1
+ rm -f $(d_doc)/$(PF)/share/info/configure.* $(d_doc)/$(PF)/share/info/standards.*
+ : # *sigh*, bugs.debian.org/213524
+ rm -f $(d_doc)/$(PF)/share/info/dir*
+
+ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe ppc64 ppc64el))
+ rm -f $(d_bin)/$(PF)/bin/embedspu
+endif
+
+ifeq ($(with_multiarch),yes)
+ : # Now get rid of just about everything in binutils-multiarch
+ rm -rf $(d_mul)/$(PF)/man $(d_mul)/$(PF)/info $(d_mul)/$(PF)/include
+ rm -rf $(d_mul)/$(PF)/share/man $(d_mul)/$(PF)/share/info $(d_mul)/$(PF)/share/locale
+
+ : # elfedit (even with its --input-mach option)
+ : # is the same for all targets.
+ rm -f $(d_mul)/$(PF)/bin/elfedit
+
+ : # c++filt does not link to libbfd for anything more than
+ : # the help message, and its behavior does not vary
+ : # between arches aside from the --version message.
+ rm -f $(d_mul)/$(PF)/bin/c++filt
+
+ : # As gas/README points out (search for --enable-targets),
+ : # multi-arch gas is not ready yet.
+ rm -f $(d_mul)/$(PF)/bin/as
+ rm -f $(d_mul)/$(PF)/bin/ld
+ rm -f $(d_mul)/$(PF)/bin/ld.bfd
+ rm -f $(d_mul)/$(PF)/bin/ld.gold
+
+ ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe ppc64 ppc64el))
+ rm -f $(d_mul)/$(PF)/bin/embedspu
+ endif
+
+# FIXME: the search paths for this config isn't correctly generated
+ ifeq (0,1)
+ : # move $(p_mul)'s ldscripts into $(p_bin)
+ for i in $(d_mul)/$(PF)/lib/ldscripts/*; do \
+ b=$$(basename $$i); \
+ if [ -f $(d_bin)/$(PF)/lib/ldscripts/$$b ]; then \
+ if diff -u $(d_bin)/$(PF)/lib/ldscripts/$$b $$i; then \
+ rm -f $$i; \
+ else \
+ echo "ERROR: files differ: $$b"; \
+ fi; \
+ else \
+ mv $$i $(d_bin)/$(PF)/lib/ldscripts/.; \
+ fi; \
+ done
+ : # $(p_mul)'s ldscript should be empty
+ -ls -l $(d_mul)/$(PF)/lib/ldscripts
+ rm -rf $(d_mul)/$(PF)/lib/ldscripts
+ else
+ rm -rf $(d_mul)/$(PF)/lib/ldscripts
+ endif
+endif
+
+ifeq ($(with_hppa64),yes)
+ : # move $(p_hppa64)'s ldscripts into $(p_bin)
+ for i in $(d_hppa64)/$(PF)/lib/ldscripts/*; do \
+ b=$$(basename $$i); \
+ if [ -f $(d_bin)/$(PF)/lib/ldscripts/$$b ]; then \
+ if diff -u $(d_bin)/$(PF)/lib/ldscripts/$$b $$i; then \
+ rm -f $$i; \
+ else \
+ echo "ERROR: files differ: $$b"; \
+ fi; \
+ else \
+ mv $$i $(d_bin)/$(PF)/lib/ldscripts/.; \
+ fi; \
+ done
+ : # $(p_hppa64)'s ldscripts should be empty
+ -ls -l $(d_hppa64)/$(PF)/lib/ldscripts
+ rm -rf $(d_hppa64)/$(PF)/lib/ldscripts
+endif
+
+# FIXME: some of these ldscripts are built for different cross targets
+# and differ ...
+ifeq (0,1)
+ : # move cross ldscripts into $(p_bin)
+ for i in debian/binutils-*-*-*/$(PF)/lib/ldscripts/*; do \
+ b=$$(basename $$i); \
+ if [ -f $(d_bin)/$(PF)/lib/ldscripts/$$b ]; then \
+ if diff -u $(d_bin)/$(PF)/lib/ldscripts/$$b $$i; then \
+ rm -f $$i; \
+ else \
+ echo "ERROR: files differ: $$b"; \
+ fi; \
+ else \
+ echo "ERROR: $$i should already exist"; \
+ mv $$i $(d_bin)/$(PF)/lib/ldscripts/.; \
+ fi; \
+ done
+ : # cross's ldscripts should be empty
+ -ls -l debian/binutils-*-*-*/$(PF)/lib/ldscripts
+ rm -rf debian/binutils-*-*-*/$(PF)/lib/ldscripts debian/binutils-*-gnu/$(PF)/lib/ldscripts
+else
+ rm -rf debian/binutils-*-*-*/$(PF)/lib/ldscripts debian/binutils-*-gnu/$(PF)/lib/ldscripts
+endif
+
+ $(install_dir) $(d_dev)/$(PF)/include
+ mv $(d_bin)/$(PF)/include/* $(d_dev)/$(PF)/include/
+
+ $(install_dir) $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH) $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+ mv $(d_bin)/$(PF)/lib/*.a $(d_bin)/$(PF)/lib/libbfd.so $(d_bin)/$(PF)/lib/libopcodes.so \
+ $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+ mv $(d_bin)/$(PF)/lib/*.so \
+ $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+
+ifeq ($(with_multiarch),yes)
+ $(install_dir) $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH) $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+ mv $(d_mul)/$(PF)/lib/libbfd.so \
+ $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd-multiarch.so
+ mv $(d_mul)/$(PF)/lib/libopcodes.so \
+ $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes-multiarch.so
+ mv $(d_mul)/$(PF)/lib/*.so \
+ $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/
+ rm -f $(d_mul)/$(PF)/lib/*.la $(d_mul)/$(PF)/lib/*.a
+ rm -f $(d_mul)/$(PF)/lib*/libiberty*
+endif
+
+ : # Get rid of .la files since libtool obviously has no idea about transient paths
+ rm -f $(d_bin)/$(PF)/lib/*.la
+
+ chmod ugo-x $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so
+ $(call strip_package, $(p_bin), $(d_bin))
+ifeq ($(with_multiarch),yes)
+ chmod ugo-x $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so
+ $(call strip_package, $(p_mul), $(d_mul))
+endif
+
+ if which strip-nondeterminism >/dev/null 2>&1; then \
+ find $(d_dev) -name '*.a' -print0 \
+ | xargs -0r strip-nondeterminism --type ar; \
+ fi
+
+ : # Don't want /usr/<arch>-linux to exist in any package
+ rm -rf $(d_bin)/$(PF)/$(DEB_HOST_GNU_TYPE)
+
+ : # Remove windows related manpages
+ rm -f $(d_bin)/$(PF)/share/man/man1/{dlltool,nlmconv,windmc,windres}.1
+
+ifeq ($(with_multiarch),yes)
+ rm -rf $(d_mul)/$(PF)/$(DEB_HOST_GNU_TYPE)
+ rm -f $(d_mul)/$(PF)/share/man/man1/{dlltool,nlmconv,windmc,windres}.1
+endif
+
+ rm -f $(d_bin)/$(PF)/bin/ld.bfd
+ mv $(d_bin)/$(PF)/bin/ld $(d_bin)/$(PF)/bin/ld.bfd
+ mv $(d_bin)/$(PF)/share/man/man1/ld.1 \
+ $(d_bin)/$(PF)/share/man/man1/ld.bfd.1
+ ln -sf ld.bfd $(d_bin)/$(PF)/bin/ld
+ ln -sf $(DEB_HOST_GNU_TYPE)-ld.bfd $(d_bin)/$(PF)/bin/$(DEB_HOST_GNU_TYPE)-ld
+ ln -sf ld.bfd.1.gz $(d_bin)/$(PF)/share/man/man1/ld.1.gz
+ ln -sf $(DEB_HOST_GNU_TYPE)-ld.bfd.1.gz $(d_bin)/$(PF)/share/man/man1/$(DEB_HOST_GNU_TYPE)-ld.1.gz
+ifeq ($(with_gold),yes)
+ ln -s ld.gold $(d_bin)/$(PF)/bin/gold
+ ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ if which help2man >/dev/null 2>&1; then \
+ help2man -N -n 'The GNU ELF linker' $(d_bin)/$(PF)/bin/ld.gold \
+ | sed 's,$(d_bin)/$(PF)/bin/,,g' > debian/ld.gold.1; \
+ help2man -N -n 'The DWARF packaging utility' $(d_bin)/$(PF)/bin/dwp \
+ | sed 's,$(d_bin)/$(PF)/bin/,,g' > debian/dwp.1; \
+ fi
+ endif
+ cp debian/dwp.1 $(d_bin)/$(PF)/share/man/man1/
+ cp debian/ld.gold.1 $(d_bin)/$(PF)/share/man/man1/
+ ln -s ld.gold.1.gz $(d_bin)/$(PF)/share/man/man1/gold.1.gz
+
+ : # install a symlink for the gold linker
+ $(install_dir) $(d_bin)/$(PF)/lib/gold-ld
+ ln -s ../../bin/ld.gold $(d_bin)/$(PF)/lib/gold-ld/ld
+endif
+ : # install a symlink for the bfd linker
+ $(install_dir) $(d_bin)/$(PF)/lib/compat-ld
+ ln -s ../../bin/ld.bfd $(d_bin)/$(PF)/lib/compat-ld/ld
+
+ : # Remove empty directory
+ rmdir $(d_bin)/$(PF)/include/
+
+ : # Rename non-prefixed binaries to $(DEB_HOST_GNU_TYPE)- prefixed binaries
+ : # and provide symlinks to the prefixed binaries.
+ for i in \
+ addr2line ar as c++filt elfedit gprof ld ld.bfd \
+ $(if $(with_gold),ld.gold dwp) \
+ nm objcopy objdump ranlib readelf size strings strip; \
+ do \
+ mv $(d_bin)/$(PF)/bin/$$i $(d_bin)/$(PF)/bin/$(DEB_HOST_GNU_TYPE)-$$i; \
+ ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_bin)/$(PF)/bin/$$i; \
+ mv $(d_bin)/$(PF)/share/man/man1/$$i.1 $(d_bin)/$(PF)/share/man/man1/$(DEB_HOST_GNU_TYPE)-$$i.1; \
+ ln -sf $(DEB_HOST_GNU_TYPE)-$$i.1.gz $(d_bin)/$(PF)/share/man/man1/$$i.1.gz; \
+ done
+ifeq ($(with_multiarch),yes)
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+ for i in \
+ addr2line ar gprof \
+ nm objcopy objdump ranlib readelf size strings strip; \
+ do \
+ mv $(d_mul)/$(PF)/bin/$$i $(d_mul)/$(PF)/bin/$(DEB_HOST_GNU_TYPE)-$$i; \
+ done
+ rm -f $(d_mul)/$(PF)/bin/embedspu
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),i386 kfreebsd-i386 hurd-i386))
+# temporary i586-* symlinks for stretch/sid
+ ifneq (,$(TRIPLET_SYMLINK))
+ for i in \
+ addr2line ar as c++filt elfedit gprof ld ld.bfd \
+ $(if $(with_gold),ld.gold dwp) \
+ nm objcopy objdump ranlib readelf size strings strip; \
+ do \
+ ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_bin)/$(PF)/bin/$(TRIPLET_SYMLINK)-$$i; \
+ ln -sf $(DEB_HOST_GNU_TYPE)-$$i.1.gz $(d_bin)/$(PF)/share/man/man1/$(TRIPLET_SYMLINK)-$$i.1.gz; \
+ done
+ endif
+# temporary i486-* symlinks for jessie/sid
+ ifeq ($(DEB_HOST_GNU_CPU),i586)
+ gnutype=$(subst i586,i486,$(DEB_HOST_GNU_TYPE)); \
+ for i in \
+ addr2line ar as c++filt elfedit gprof ld ld.bfd \
+ $(if $(with_gold),ld.gold dwp) \
+ nm objcopy objdump ranlib readelf size strings strip; \
+ do \
+ ln -sf $$i $(d_bin)/$(PF)/bin/$$gnutype-$$i; \
+ ln -sf $$i.1.gz $(d_bin)/$(PF)/share/man/man1/$$gnutype-$$i.1.gz; \
+ done
+ endif
+# for backports to wheezy and squeeze
+ ifeq ($(DEB_HOST_GNU_CPU),i486)
+ gnutype=$(subst i486,i586,$(DEB_HOST_GNU_TYPE)); \
+ for i in \
+ addr2line ar as c++filt elfedit gprof ld ld.bfd \
+ $(if $(with_gold),ld.gold dwp) \
+ nm objcopy objdump ranlib readelf size strings strip; \
+ do \
+ ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_bin)/$(PF)/bin/$$gnutype-$$i; \
+ ln -sf $(DEB_HOST_GNU_TYPE)-$$i.1.gz $(d_bin)/$(PF)/share/man/man1/$$gnutype-$$i.1.gz; \
+ done
+ endif
+endif
+
+ touch $@
+
+stamps/install-hppa64: checkroot stamps/build-hppa64 $(if $(CROSS),debian/strip.cross)
+ $(checkdir)
+
+ rm -fr $(d_hppa64)
+ $(install_dir) $(d_hppa64)
+ $(install_dir) $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+
+ : # install binutils-hppa64 stuff
+ env MAKE="$(MAKE) VERSION=$(HPPA64_VERSION)" \
+ $(MAKE) -C builddir-hppa64 \
+ CFLAGS="$(CFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" \
+ prefix=$(pwd)/$(d_hppa64)/$(PF)/ \
+ mandir=$(pwd)/$(d_hppa64)/$(PF)/share/man \
+ infodir=$(pwd)/$(d_hppa64)/$(PF)/share/info install
+
+ : # move shared libs to the standard path
+ mv $(d_hppa64)/$(PF)/$(DEB_HOST_GNU_TYPE)/hppa64-linux-gnu/lib/lib*-*.so \
+ $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/.
+
+ : # Now get rid of just about everything in binutils-hppa64
+ rm -rf $(d_hppa64)/$(PF)/man
+ rm -rf $(d_hppa64)/$(PF)/info
+ rm -rf $(d_hppa64)/$(PF)/include
+ rm -rf $(d_hppa64)/$(PF)/share
+ rm -rf $(d_hppa64)/$(PF)/hppa-linux-gnu
+ rm -rf $(d_hppa64)/$(PF)/lib/libiberty.a
+
+ $(call strip_package, $(p_hppa64), $(d_hppa64))
+ chmod ugo-x $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so
+
+ : # remove RPATH
+ chrpath -k -d $$(file $(d_hppa64)/usr/bin/*|awk -F: '/ ELF/ {print $$1}')
+
+ : # replace hard links with soft links
+ for i in $(d_hppa64)/usr/hppa64-linux-gnu/bin/*; do \
+ ln -sf ../../bin/hppa64-linux-gnu-$$(basename $$i) $$i; \
+ done
+
+ : # Don't want /usr/<arch>-linux to exist in any package
+ rm -rf $(d_hppa64)/$(PF)/$(DEB_HOST_GNU_TYPE)
+
+ touch $@
+
+###############################################################################
+
+#######################
+# binary-indep target #
+#######################
+
+binary-indep: checkroot build install
+ $(checkdir)
+
+ rm -f debian/files debian/substvars
+
+# Cross builds do not have documentation packages
+ifeq (,$(TARGET))
+
+ $(install_dir) $(d_doc)/DEBIAN
+
+ifeq ($(GFDL_INVARIANT_FREE),yes)
+ rm -f $(d_doc)/$(PF)/share/info/bfd.info*
+ rm -f $(d_doc)/$(PF)/share/info/bfdint.info*
+ rm -f $(d_doc)/$(PF)/share/info/ldint.info*
+endif
+
+ifneq ($(BACKPORT),true)
+ $(install_dir) $(d_doc)/$(PF)/share/doc/$(p_doc)/
+ $(install_file) debian/changelog $(d_doc)/$(PF)/share/doc/$(p_doc)/changelog.Debian
+ $(install_file) debian/copyright $(d_doc)/$(PF)/share/doc/$(p_doc)/
+ for i in bfd gas gprof ld; do \
+ ln -sf ../$(p_bin)/$$i $(d_doc)/$(PF)/share/doc/$(p_doc)/$$i; \
+ done
+ find $(d_doc)/$(PF)/share/doc/$(p_doc) -maxdepth 1 -type f ! -name copyright | xargs gzip -9n
+ gzip -9n $(d_doc)/$(PF)/share/info/*
+
+ dpkg-gencontrol -P$(d_doc) -p$(p_doc)
+ chown -R root:root $(d_doc)
+ chmod -R go=rX $(d_doc)
+ find $(d_doc) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_doc) ..
+
+ $(install_dir) $(d_src)/$(PF)/share/doc/$(p_src)/
+ $(install_file) debian/changelog $(d_src)/$(PF)/share/doc/$(p_src)/changelog.Debian
+ $(install_file) debian/copyright $(d_src)/$(PF)/share/doc/$(p_src)/
+ find $(d_src)/$(PF)/share/doc/$(p_src) -maxdepth 1 -type f ! -name copyright | xargs gzip -9n
+endif # ifndef BACKPORT
+
+ $(install_dir) $(d_src)/DEBIAN
+ $(install_dir) $(d_src)/$(PF)/src/binutils/patches
+ $(install_file) debian/patches/* $(d_src)/$(PF)/src/binutils/patches/
+ cd .. && find $(source_files) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)' && \
+ find $(source_files) -type f -print0 | LC_ALL=C sort -z | \
+ tar --null -T - -c --xz --exclude=CVS --mode=go=rX,u+rw,a-s \
+ -f $(pwd)/$(d_src)/$(PF)/src/binutils/binutils-$(VERSION).tar.xz \
+ $(source_files)
+
+ tar cf - $$(find './debian' -mindepth 1 \( \
+ -path './debian/binutils*' -type d -prune -o \
+ -path './debian/patches' -prune -o \
+ -path './debian/tmp*' -prune -o \
+ -path './debian/.bzr*' -prune -o \
+ -path './debian/files' -prune -o \
+ -print \) ) \
+ | tar -x -C $(d_src)/$(PF)/src/binutils -f -
+ -chmod 755 $(d_src)/$(PF)/src/binutils/debian/*.{pre,post}{inst,rm}
+ chmod 755 $(d_src)/$(PF)/src/binutils/debian/test-suite-compare.py
+
+ dpkg-gencontrol -P$(d_src) -p$(p_src)
+ chown -R root:root $(d_src)
+ chmod -R go=rX $(d_src)
+ find $(d_src) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_src) ..
+
+endif
+
+###############################################################################
+
+#######################
+# binary-arch target #
+#######################
+
+binary.%: stamps/install.% install
+ rm -rf $(D_CROSS)/$(PF)/share/info
+
+ rm -rf $(D_CROSS)/DEBIAN
+
+ : # make lintian happy
+ $(install_dir) $(D_CROSS)/$(PF)/share/lintian/overrides
+ sed 's/@PKG@/$(P_CROSS)/' debian/binutils-cross.overrides \
+ > $(D_CROSS)/$(PF)/share/lintian/overrides/$(P_CROSS)
+
+ : # install maintainer scrtips
+ $(install_dir) $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)
+ $(install_file) debian/changelog \
+ $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/changelog.Debian
+ $(install_file) debian/copyright debian/README.cross \
+ $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/
+ gzip -9nf $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/changelog.Debian
+
+ifeq ($(with_check),yes)
+ : # remove user and date from test-summary for reproducible builds
+ sed -i -e '/Test Run By/Id' test-summary-$*
+ $(install_file) test-summary-$* \
+ $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/test-summary
+ gzip -9nf $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/test-summary
+endif
+
+ for pkg in bfd gas gprof ld; do \
+ ln -sf ../binutils/$$pkg \
+ $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/$$pkg; \
+ done
+
+ $(install_dir) $(D_CROSS)/DEBIAN
+ if [ "$(is_rc)" = yes ]; then \
+ nver=$$(echo $(DEB_UPSTREAM) | awk -F. '{ OFS="."; NF--; $$NF=$$NF+1; print }'); \
+ else \
+ nver=$$(echo $(DEB_UPSTREAM) | awk -F. '{ OFS="."; $$NF=$$NF+1; print }'); \
+ fi; \
+ date_ext=$(DATE_EXT); \
+ [ "$(is_rc)" = yes ] && date_ext=; \
+ sed -e 's/@VER@/$(VERSION)/g' \
+ -e 's/@DEB_VER@/$(DEB_VERSION)/g' \
+ -e 's/@DEB_UVER@/$(DEB_UPSTREAM)/g' \
+ -e "s/@DEB_NVER@/$$nver/g" \
+ -e "s/@DATE_EXT@/$$date_ext/g" \
+ -e 's/@ARCH@/$*/g' \
+ -e "s/@PKG@/$(P_CROSS)/g" \
+ debian/binutils-cross.shlibs.in > $(D_CROSS)/DEBIAN/shlibs
+ $(install_file) debian/binutils.triggers $(D_CROSS)/DEBIAN/triggers
+
+ rm -f debian/substvars
+ dpkg-shlibdeps $(D_CROSS)/$(PF)/bin/*
+ dpkg-gencontrol -P$(D_CROSS) -p$(P_CROSS) \
+ -VBuilt-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W binutils-source)"
+ chown -R root:root $(D_CROSS)
+ chmod -R go=rX $(D_CROSS)
+ find $(D_CROSS) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(D_CROSS) ..
+
+binary-arch: checkroot build install \
+ $(if $(filter yes, $(with_cross)),$(foreach ca,$(CROSS_ARCHS), binary.$(ca)))
+ $(checkdir)
+
+ifneq ($(BACKPORT),true)
+# Process the following only if $(TARGET) is set
+ifneq (,$(TARGET))
+ test "" != "$(TARGET)"
+
+ rm -rf $(d_cross)/$(PF)/share/info $(d_cross)/$(PF)/share/man
+
+ $(install_dir) $(d_cross)/DEBIAN
+
+ $(install_dir) $(d_cross)/$(PF)/share/doc/$(p_cross)/
+ $(install_file) debian/changelog $(d_cross)/$(PF)/share/doc/$(p_cross)/changelog.Debian
+ $(install_file) debian/copyright debian/README.cross $(d_cross)/$(PF)/share/doc/$(p_cross)/
+ gzip -9nf $(d_cross)/$(PF)/share/doc/$(p_cross)/changelog.Debian
+
+ for pkg in bfd gas gprof ld; do \
+ ln -sf ../binutils/$$pkg $(d_cross)/$(PF)/share/doc/$(p_cross)/$$pkg; \
+ done
+
+ rm -f debian/substvars
+ dpkg-shlibdeps $(d_cross)/$(PF)/bin/*
+ dpkg-gencontrol -P$(d_cross) -p$(p_cross) \
+ -VBuilt-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W binutils-source)"
+ find $(d_cross) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_cross) ..
+
+else
+ : # generate some control & helper files
+ if [ "$(is_rc)" = yes ]; then \
+ nver=$$(echo $(DEB_UPSTREAM) | awk -F. '{ OFS="."; NF--; $$NF=$$NF+1; print }'); \
+ else \
+ nver=$$(echo $(DEB_UPSTREAM) | awk -F. '{ OFS="."; $$NF=$$NF+1; print }'); \
+ fi; \
+ for i in debian/*.in; do \
+ case "$$i" in debian/control.in|debian/control.cross.in) continue; esac; \
+ date_ext=$(DATE_EXT); \
+ case "$$i" in debian/*.shlibs.in) [ "$(is_rc)" = yes ] && date_ext=; esac; \
+ sed -e 's/@VER@/$(VERSION)/g' \
+ -e 's/@DEB_VER@/$(DEB_VERSION)/g' \
+ -e 's/@DEB_SVER@/$(DEB_SVERSION)/g' \
+ -e 's/@DEB_UVER@/$(DEB_UPSTREAM)/g' \
+ -e "s/@DEB_NVER@/$$nver/g" \
+ -e "s/@DATE_EXT@/$$date_ext/g" \
+ -e 's/@DEB_ARCH@/$(DEB_HOST_ARCH)/g' \
+ -e 's/@DEB_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \
+ -e 's/@DEB_TRIPLET@/$(DEB_HOST_GNU_TYPE)/g' \
+ -e "s/@dpkg_dev@/$(DPKG_DEV)/" \
+ $$i > $${i%*.in}; \
+ case "$$i" in *.post*|*.pre*) chmod 755 $${i%*.in}; esac; \
+ done
+
+ : # install bug reporting information
+ $(install_file) -D debian/$(p_bin).presubj \
+ $(d_bin)/$(PF)/share/bug/$(p_bin)/presubj
+ifeq ($(with_multiarch),yes)
+ $(install_dir) $(d_mul)/$(PF)/share/bug
+ ln -sf $(p_bin) $(d_mul)/$(PF)/share/bug/$(p_mul)
+endif
+ifeq ($(with_hppa64),yes)
+ $(install_dir) $(d_hppa64)/$(PF)/share/bug
+ ln -sf $(p_bin) $(d_hppa64)/$(PF)/share/bug/$(p_hppa64)
+endif
+
+ : # make lintian happy
+ $(install_file) -D debian/$(p_bin).overrides \
+ $(d_bin)/$(PF)/share/lintian/overrides/$(p_bin)
+ifeq ($(with_multiarch),yes)
+ $(install_file) -D debian/$(p_mul).overrides \
+ $(d_mul)/$(PF)/share/lintian/overrides/$(p_mul)
+ $(install_file) -D debian/$(p_mdev).overrides \
+ $(d_mdev)/$(PF)/share/lintian/overrides/$(p_mdev)
+endif
+ifeq ($(with_hppa64),yes)
+ $(install_file) -D debian/$(p_hppa64).overrides \
+ $(d_hppa64)/$(PF)/share/lintian/overrides/$(p_hppa64)
+endif
+
+ : # install maintainer scripts
+ $(install_dir) $(d_bin)/DEBIAN
+ $(install_file) debian/binutils.triggers $(d_bin)/DEBIAN/triggers
+ $(install_file) debian/binutils.shlibs $(d_bin)/DEBIAN/shlibs
+
+ $(install_dir) $(d_dev)/DEBIAN
+
+ifeq ($(with_multiarch),yes)
+ $(install_dir) $(d_mul)/DEBIAN
+ $(install_script) debian/binutils-multiarch.preinst $(d_mul)/DEBIAN/preinst
+ $(install_script) debian/binutils-multiarch.postinst $(d_mul)/DEBIAN/postinst
+ $(install_script) debian/binutils-multiarch.prerm $(d_mul)/DEBIAN/prerm
+ $(install_script) debian/binutils-multiarch.postrm $(d_mul)/DEBIAN/postrm
+ $(install_file) debian/binutils-multiarch.shlibs $(d_mul)/DEBIAN/shlibs
+ $(install_file) debian/binutils.triggers $(d_mul)/DEBIAN/triggers
+ $(install_dir) $(d_mdev)/DEBIAN
+endif
+
+ifeq ($(with_hppa64),yes)
+ $(install_dir) $(d_hppa64)/DEBIAN
+ $(install_file) debian/binutils.triggers $(d_hppa64)/DEBIAN/triggers
+ $(install_file) debian/$(p_hppa64).shlibs $(d_hppa64)/DEBIAN/shlibs
+endif
+
+ : # install docs
+ $(install_dir) $(d_bin)/$(PF)/share/doc/$(p_bin)/
+ $(install_file) debian/changelog $(d_bin)/$(PF)/share/doc/$(p_bin)/changelog.Debian
+ $(install_file) debian/copyright $(d_bin)/$(PF)/share/doc/$(p_bin)/
+
+ $(install_dir) $(d_dev)/$(PF)/share/doc/
+ ln -sf $(p_bin) $(d_dev)/$(PF)/share/doc/$(p_dev)
+ifeq ($(with_multiarch),yes)
+ $(install_dir) $(d_mul)/$(PF)/share/doc/
+ ln -sf $(p_bin) $(d_mul)/$(PF)/share/doc/$(p_mul)
+ $(install_dir) $(d_mdev)/$(PF)/share/doc/
+ ln -sf $(p_mul) $(d_mdev)/$(PF)/share/doc/$(p_mdev)
+endif
+ifeq ($(with_hppa64),yes)
+ $(install_dir) $(d_hppa64)/$(PF)/share/doc/
+ ln -sf $(p_bin) $(d_hppa64)/$(PF)/share/doc/$(p_hppa64)
+endif
+
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+ifeq ($(with_check),yes)
+ : # remove user and date from test-summary for reproducible builds
+ sed -i -e '/Test Run By/Id' $(pwd)/test-summary
+ $(install_file) $(pwd)/test-summary $(d_bin)/$(PF)/share/doc/$(p_bin)/
+endif
+endif
+ $(install_file) binutils/NEWS debian/README.cross \
+ $(d_bin)/$(PF)/share/doc/$(p_bin)/
+
+ $(install_file) binutils/ChangeLog $(d_bin)/$(PF)/share/doc/$(p_bin)/changelog
+
+ for pkg in bfd gas gprof ld; do \
+ $(install_dir) $(d_bin)/$(PF)/share/doc/$(p_bin)/$$pkg; \
+ done
+ $(install_file) bfd/ChangeLog bfd/PORTING bfd/TODO \
+ $(d_bin)/$(PF)/share/doc/$(p_bin)/bfd/
+ $(install_file) gas/ChangeLog gas/NEWS $(d_bin)/$(PF)/share/doc/$(p_bin)/gas/
+ $(install_file) gprof/ChangeLog gprof/TODO gprof/TEST \
+ $(d_bin)/$(PF)/share/doc/$(p_bin)/gprof/
+ $(install_file) ld/ChangeLog ld/TODO ld/NEWS \
+ $(d_bin)/$(PF)/share/doc/$(p_bin)/ld/
+
+ : # These only exist in H. J. Lu releases not GNU ones.
+ for dir in binutils bfd gas gprof ld; do \
+ if [ -f $$dir/ChangeLog.linux ]; then \
+ $(install_file) $$dir/ChangeLog.linux $(d_bin)/$(PF)/share/doc/$(p_bin)/$$dir/; \
+ fi; \
+ done
+
+ : # Copy bbconv.pl to the doc dir for use by interested people
+ $(install_file) gprof/bbconv.pl $(d_bin)/$(PF)/share/doc/$(p_bin)/gprof/.
+
+ : # Compress stuff that needs it
+ gzip -9n $(d_bin)/$(PF)/share/man/man1/*.1
+ find $(d_bin)/$(PF)/share/doc/$(p_bin)/ -type f ! -name copyright -a ! -name bbconv.pl | xargs gzip -9n
+
+ : # Finish it all up
+ find $(d_bin) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps
+ dpkg-gencontrol -P$(d_bin) -p$(p_bin) $(CONFLICTS_TARGET_$(DEB_HOST_ARCH)) $(gold_provides)
+ cd $(d_bin) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums
+
+ rm -f debian/substvars
+ dpkg-gencontrol -P$(d_dev) -p$(p_dev)
+ cd $(d_dev) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums
+
+ifeq ($(with_multiarch),yes)
+ rm -f debian/substvars
+ find $(d_mul) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps
+ dpkg-gencontrol -P$(d_mul) -p$(p_mul)
+ cd $(d_mul) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums
+
+ rm -f debian/substvars
+ mkdir -p $(d_mdev)/DEBIAN
+ dpkg-gencontrol -P$(d_mdev) -p$(p_mdev)
+ cd $(d_mdev) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs -r md5sum > DEBIAN/md5sums
+endif
+
+ifeq ($(with_hppa64),yes)
+ rm -f debian/substvars
+ find $(d_hppa64) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps
+ dpkg-gencontrol -P$(d_hppa64) -p$(p_hppa64)
+ cd $(d_hppa64) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums
+endif
+
+ chown -R root:root $(d_bin) $(d_dev)
+ chmod -R go=rX $(d_bin) $(d_dev)
+ find $(d_bin) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_bin) ..
+ find $(d_dev) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_dev) ..
+ifeq ($(with_multiarch),yes)
+ chown -R root:root $(d_mul)
+ chmod -R go=rX $(d_mul)
+ find $(d_mul) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_mul) ..
+
+ chown -R root:root $(d_mdev)
+ chmod -R go=rX $(d_mdev)
+ find $(d_mdev) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_mdev) ..
+endif
+ifeq ($(with_hppa64),yes)
+ chown -R root:root $(d_hppa64)
+ chmod -R go=rX $(d_hppa64)
+ find $(d_hppa64) -depth -newermt '$(BUILD_DATE)' -print0 | \
+ xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
+ dpkg --build $(d_hppa64) ..
+endif
+
+endif # Process the following only if $(TARGET) is set
+endif # ifndef BACKPORT
+###############################################################################
+
+#################
+# cross targets #
+#################
+
+# Process the following only if $(TARGET) is set
+ifneq (,$(TARGET))
+
+p_cross = $(subst _,-,binutils-$(TARGET))
+d_cross = debian/$(p_cross)
+
+#-----------------------------------------------------------------
+# sysroot options
+ifdef WITH_SYSROOT
+ with_sysroot = $(WITH_SYSROOT)
+endif
+ifdef WITH_BUILD_SYSROOT
+ with_build_sysroot = $(WITH_BUILD_SYSROOT)
+endif
+
+ifneq ($(with_sysroot),)
+ CONFARGS += --with-sysroot=$(with_sysroot)
+endif
+ifneq ($(with_build_sysroot),)
+ CONFARGS += --with-build-sysroot=$(with_build_sysroot)
+endif
+ifeq ($(with_gold),yes)
+ CONFARGS += --enable-ld=default --enable-gold
+endif
+
+stamps/configure-cross: stamps/patch
+ $(checkdir)
+ test "" != "$(TARGET)"
+ rm -rf stamps/configure-cross builddir-$(TARGET)
+ mkdir builddir-$(TARGET)
+ cd builddir-$(TARGET) \
+ && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ../configure \
+ $(CONFARGS) \
+ --target=$(TARGET)
+ touch $@
+
+stamps/build-cross: stamps/configure-cross
+ $(checkdir)
+ test "" != "$(TARGET)"
+ env MAKE="$(MAKE) VERSION=$(VERSION)-$(DEB_TARGET_ARCH)" \
+ $(MAKE) -C builddir-$(TARGET) $(NJOBS) \
+ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)"
+ touch $@
+
+stamps/install-cross: stamps/build-cross
+ $(checkdir)
+ test "" != "$(TARGET)"
+ rm -rf $(d_cross)
+ env MAKE="$(MAKE) VERSION=$(VERSION)-$(DEB_TARGET_ARCH)" \
+ $(MAKE) -C builddir-$(TARGET) prefix=$(pwd)/$(d_cross)/$(PF) \
+ mandir=$(pwd)/$(d_cross)/$(PF)/share/man install
+ rm -rf $(d_cross)/$(PF)/lib* $(d_cross)/$(PF)/info $(d_cross)/$(PF)/share/locale
+
+ mkdir -p $(d_cross)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+ mv $(d_cross)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(TARGET)/lib/*.so \
+ $(d_cross)/$(PF)/lib/$(DEB_HOST_MULTIARCH)
+ $(call strip_package, $(p_cross),$(d_cross))
+ chmod ugo-x $(d_cross)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so
+
+ : # Get rid of .la files since libtool obviously has no idea about transient paths
+ rm -f $(d_cross)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(TARGET)/lib/*.la
+
+ : # don't ship header files and static libs
+ rm -rf $(d_cross)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(TARGET)
+
+ gzip -9n $(d_cross)/$(PF)/share/man/man1/*
+ touch $@
+
+stamps/configure-host-cross: stamps/configure-cross
+ $(checkdir)
+ test "" != "$(TARGET)"
+ $(MAKE) configure-host -C builddir-$(TARGET) $(NJOBS) \
+ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)"
+ touch $@
+
+stamps/build-static-cross: stamps/configure-host-cross
+ $(checkdir)
+ test "" != "$(TARGET)"
+ $(MAKE) -C builddir-$(TARGET) $(NJOBS) \
+ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS) -all-static"
+ touch $@
+
+stamps/install-static-cross: stamps/build-static-cross stamps/install-cross
+
+binary-cross:
+ @echo "Please use dpkg-buildpackage instead of calling binary-cross directly; see README.cross"
+ @false
+
+endif # ifneq ($(TARGET),)
+
+###############################################################################
+
+define checkdir
+ test -f bfd/elf32.c -a -f debian/rules
+endef
+
+ifeq ($(with_strip),yes)
+# strip_package: <pkgname> <install-dir> <???>
+define strip_package
+ : # Strip shared libraries
+ if which pkg_create_dbgsym >/dev/null 2>&1; then \
+ pkg_create_dbgsym $1 $2; \
+ fi
+ $(STRIP) --strip-unneeded $2/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd-*so
+ $(STRIP) --strip-unneeded $2/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes-*so
+ $(STRIP) $$(file $2/$(PF)/bin/* |awk -F: '$$0 !~ /script/ {print $$1}')
+endef
+else
+define strip_package
+endef
+endif
+
+remove-gfdl-files:
+ rm -rf .git* .cvs* gdb libdecnumber readline sim
+ifeq ($(GFDL_INVARIANT_FREE),yes)
+ for i in $(gfdl_toplevel_texinfo_files); do \
+ if [ -f $$i ]; then \
+ sed "s/@name@/$$(basename $$i)/g" debian/gfdl.texi > $$i; \
+ fi; \
+ done
+ rm -f $(gfdl_generated_files)
+ rm -f zlib/contrib/dotzlib/DotZLib.chm
+endif
+
+# Below here is fairly generic really
+
+binary: binary-indep binary-arch
+
+checkroot:
+ $(checkdir)
+ test root = "`whoami`"
+
+.PHONY: binary binary-arch binary-indep clean checkroot
+
+.PRECIOUS: stamps/patch stamps/configure.% stamps/build.% stamps/install.%
--- /dev/null
+# handled via diversions
+binutils source: binaries-have-file-conflict
+
+# wrong positive
+binutils source: license-problem-gfdl-invariants
--- /dev/null
+#! /bin/sh
+
+__TARGET__strip --remove-section=.comment --remove-section=.note $*
--- /dev/null
+#!/usr/bin/python3
+
+# Quick'n'dirty regression check for dejagnu testsuites
+# Copyright (C) 2003, 2004, 2005, 2006, 2007 James Troup <james@nocrew.org>
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU;5B General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+################################################################################
+
+import optparse
+import os
+import sys
+
+################################################################################
+
+def fubar(msg, exit_code=1):
+ sys.stderr.write("E: %s\n" % (msg))
+ sys.exit(exit_code)
+
+def warn(msg):
+ sys.stderr.write("W: %s\n" % (msg))
+
+def info(msg):
+ sys.stderr.write("I: %s\n" % (msg))
+
+################################################################################
+
+def read_testsummary(filename):
+ results = {}
+ file = open(filename)
+ for line in file.readlines():
+ if not line:
+ continue
+ if line.startswith("Running"):
+ s = line.split()
+ if "/" in s[1]:
+ x = s[1]
+ if x.find("/testsuite/") == -1:
+ fubar("Can't find /testsuite/ in '%s'." % (x))
+ # 'Running /home/james/debian/packages/binutils/binutils-2.14.90.0.7/gas/testsuite/gas/hppa/unsorted/unsorted.exp ...' -> 'gas/hppa/unsorted/unsorted.exp'
+ # ... since using basename() isn't dupe safe.
+ section = x[x.find("/testsuite/"):].replace("/testsuite/","").split()[0]
+
+ # Tests can be duplicated, e.g. hppa/basic/basic.exp
+ # is run twice, once for hppa-linux and once for
+ # hppa64-linux. This is of course a horrible bodge,
+ # but I can't think of anything trivial and better off
+ # hand.
+
+ if section in results:
+ extra = 1
+ too_many = 10
+ while section in results and extra < too_many:
+ section = "%s.%s" % (section, extra)
+ extra += 1
+ if extra >= too_many:
+ fubar("gave up trying to unduplicate %s." % (section))
+
+ results[section] = {}
+ continue
+
+ got_state = 0
+ for state in [ "PASS", "XPASS", "FAIL", "XFAIL", "UNRESOLVED",
+ "UNTESTED", "UNSUPPORTED" ]:
+ if line.startswith(state):
+ s = line.split(':')
+ state = s[0]
+ test = ':'.join(s[1:]).strip()
+ if test in results:
+ warn("%s/%s is duplicated." % (section, test))
+ results[section][test] = state
+ got_state = 1
+ break
+
+ if got_state:
+ continue
+
+ return results
+
+################################################################################
+
+def compare_results(old, new):
+ total_num = 0
+ pass_count = 0
+ fail_count = 0
+ xfail_count = 0
+ untested_count = 0
+ regression_count = 0
+ progression_count = 0
+ change_count = 0
+
+ for section in list(new.keys()):
+ for test in list(new[section].keys()):
+ state = new[section][test]
+
+ # Stats pr0n
+ total_num += 1
+ if state == "PASS" or state == "XPASS":
+ pass_count += 1
+ elif state == "FAIL" or state == "UNRESOLVED":
+ fail_count += 1
+ elif state == "XFAIL":
+ xfail_count += 1
+ elif state == "UNTESTED":
+ untested_count += 1
+
+ # Compare to old
+ if section not in old:
+ continue
+ if test not in old[section]:
+ continue
+ old_state = old[section][test]
+ if state == "PASS":
+ if old_state != "PASS":
+ progression_count += 1
+ info("[%s] progression (%s -> %s): %s" % (section, old_state, state, test))
+ elif state == "XPASS":
+ if old_state != "XPASS" and old_state != "PASS":
+ progression_count += 1
+ warn("[%s] %s: %s" % (section, state, test))
+ elif state == "FAIL":
+ if old_state != "FAIL":
+ regression_count += 1
+ warn("[%s] REGRESSION (%s -> %s): %s" % (section, old_state, state, test))
+ elif state == "XFAIL":
+ if old_state != "XFAIL":
+ change_count += 1
+ info("[%s] change (%s -> %s): %s" % (section, old_state, state, test))
+ elif state == "UNRESOLVED":
+ if old_state != "UNRESOLVED" and old_state != "FAIL":
+ regression_count += 1
+ warn("[%s] REGRESSION (%s -> %s): %s" % (section, old_state, state, test))
+ if old_state == "FAIL":
+ change_count += 1
+ info("[%s] change (%s -> %s): %s" % (section, old_state, state, test))
+ elif state == "UNTESTED":
+ if old_state != "UNTESTED":
+ change_count += 1
+ warn("[%s] REGRESSION (%s -> %s): %s" % (section, old_state, state, test))
+
+ if regression_count:
+ print("%d REGRESSIONS (%.2f%%)." % (regression_count, (float(regression_count)/total_num)*100))
+ if progression_count:
+ print("%d progressions (%.2f%%)." % (progression_count, (float(progression_count)/total_num)*100))
+
+ if change_count:
+ print("%d changes (%.2f%%)." % (change_count, (float(change_count)/total_num)*100))
+
+ print("%d tests: %d pass (%.2f%%), %d fail (%.2f%%), %d xfail (%.2f%%) %d untested (%.2f%%)." \
+ % (total_num, pass_count, (float(pass_count)/total_num)*100,
+ fail_count, (float(fail_count)/total_num)*100,
+ xfail_count, (float(xfail_count)/total_num)*100,
+ untested_count, (float(untested_count)/total_num)*100))
+
+ if regression_count:
+ sys.exit(1)
+
+################################################################################
+
+def compare_multiple(directory, first_version, second_version):
+ architectures = [ "alpha", "arm", "hppa", "i386", "ia64", "mips",
+ "m68k", "mipsel", "powerpc", "s390", "sparc" ]
+
+ for arch in architectures:
+ print("*********************************** %s ******************************" % (arch))
+ second_filename = "%s/%s_%s" % (directory, second_version, arch)
+ if not os.path.exists(second_filename):
+ print(" -- NOT AVAILABLE --")
+ continue
+
+ new = read_testsummary(second_filename)
+ first_filename = "%s/%s_%s" % (directory, first_version, arch)
+ old = read_testsummary(first_filename)
+ compare_results(old, new)
+
+################################################################################
+
+def init():
+ """Initalization, including parsing of options."""
+
+ usage = """usage: %prog [OPTIONS] <OLD> <NEW>
+compare (binutils) dejagnu testsuite results.
+
+Example usage:
+
+ test-suite-compare.py binutils-2.17/test-summary binutils-2.18/test-summary
+
+Or to compare across all architectures (with test results stored in a
+'test-summary' directory):
+
+ test-suite-compare.py -mtest-summary 2.17-3 2.18-1"""
+ parser = optparse.OptionParser(usage)
+ parser.add_option("-m", "--multiple", dest="multiple",
+ nargs=1, type="string",
+ help="compare multiple architectures")
+ (options, args) = parser.parse_args()
+
+ if len(args) > 2 or len(args) < 2:
+ parser.error("takes 2 arguments (old and new)")
+ (old_version, new_version) = args
+
+ return options, old_version, new_version
+
+################################################################################
+
+def main():
+ (options, old_version, new_version) = init()
+ if options.multiple:
+ compare_multiple(options.multiple, old_version, new_version)
+ else:
+ old = read_testsummary(old_version)
+ new = read_testsummary(new_version)
+ compare_results(old, new)
+
+################################################################################
+
+if __name__ == '__main__':
+ main()
--- /dev/null
+#!/bin/true
--- /dev/null
+Tests: build
+Depends: build-essential
+Restrictions: build-needed
+
+Tests: libc-link
+Depends: build-essential
+
+Tests: shlib-build
+Depends: build-essential
--- /dev/null
+#!/bin/sh
+# autopkgtest check: Build and run a simple program against libc, to verify
+# basic binutils compile-time and run-time linking functionality.
+#
+# (C) 2012 Canonical Ltd.
+# Author: Martin Pitt <martin.pitt@ubuntu.com>
+
+set -e
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+cat <<EOF > libctest.c
+#include <string.h>
+#include <assert.h>
+
+int main()
+{
+ assert (1 > 0);
+ assert (strcmp ("hello", "hello") == 0);
+ return 0;
+}
+EOF
+
+gcc -o libctest libctest.c
+echo "build: OK"
+[ -x libctest ]
+./libctest
+echo "run: OK"
--- /dev/null
+#!/bin/sh
+# autopkgtest check: Build and link against a simple shared library, to test
+# basic binutils compile-time and run-time linking functionality.
+#
+# (C) 2012 Canonical Ltd.
+# Author: Martin Pitt <martin.pitt@ubuntu.com>
+
+set -e
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+cat <<EOF > testlib.c
+
+int ultimate_answer()
+{
+ return 42;
+}
+EOF
+
+gcc -Wall -Werror -shared -o libultimate.so testlib.c
+echo "library build: OK"
+
+# should export the symbol
+nm -D libultimate.so | grep -q 'T ultimate_answer'
+
+# link it against a program
+cat <<EOF > testprog.c
+#include <assert.h>
+
+int ultimate_answer();
+
+int main()
+{
+ assert (ultimate_answer() == 42);
+ return 0;
+}
+EOF
+
+gcc -Wall -Werror -L . -o testprog testprog.c -lultimate
+echo "program build: OK"
+[ -x testprog ]
+LD_LIBRARY_PATH=. ./testprog
+echo "run: OK"
--- /dev/null
+version=2
+http://ftp.gnu.org/gnu/binutils/binutils-([\d\.]*).tar.gz