From 313884494ae8759e3079e1c8adbc1627077e50f7 Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Wed, 27 Feb 2019 21:30:21 +0000 Subject: [PATCH] Import binutils_2.31.1-15.debian.tar.xz [dgit import tarball binutils 2.31.1-15 binutils_2.31.1-15.debian.tar.xz] --- README.cross | 27 + binutils-common.overrides | 2 + binutils-cross.overrides | 15 + binutils-hppa64-linux-gnu.overrides | 10 + binutils-multiarch-dev.overrides | 2 + binutils-multiarch.overrides | 13 + binutils-multiarch.postinst.in | 80 + binutils-multiarch.postrm.in | 47 + binutils-multiarch.preinst.in | 29 + binutils-multiarch.prerm.in | 98 + binutils-multiarch.shlibs.in | 2 + binutils-triplet.overrides | 4 + binutils.overrides | 6 + binutils.presubj | 25 + binutils.triggers | 1 + changelog | 5545 ++++++++++++++++ control | 1048 +++ control.cross.in | 27 + control.in | 190 + copyright | 44 + dwp.1 | 33 + gfdl.texi | 41 + ld.gold.1 | 869 +++ libbinutils.overrides | 5 + libbinutils.shlibs.in | 2 + patches/001_ld_makefile_patch.patch | 31 + patches/002_gprof_profile_arcs.patch | 29 + patches/003_gprof_see_also_monitor.patch | 15 + patches/006_better_file_error.patch | 21 + patches/012_check_ldrunpath_length.patch | 25 + patches/013_bash_in_ld_testsuite.patch | 15 + patches/014_hash_style-both.patch | 30 + patches/014_hash_style-gnu.patch | 31 + patches/127_x86_64_i386_biarch.patch | 20 + patches/128_build_id.patch | 42 + patches/128_ppc64_powerpc_biarch.patch | 17 + patches/129_multiarch_libpath.patch | 353 + .../130_gold_disable_testsuite_build.patch | 30 + patches/131_ld_bootstrap_testsuite.patch | 47 + patches/135_bfd_version.patch | 49 + patches/136_bfd_pic.patch | 29 + patches/157_ar_scripts_with_tilde.patch | 13 + patches/158_ld_system_root.patch | 42 + patches/161_gold_dummy_zoption.diff | 29 + patches/164_ld_doc_remove_xref.diff | 16 + patches/aarch64-libpath.diff | 27 + patches/binutils-no-development.diff | 10 + patches/branch-no-development.diff | 10 + patches/branch-updates.diff | 5663 +++++++++++++++++ patches/branch-version.diff | 652 ++ patches/gold-mips.diff | 39 + patches/gold-no-keep-files-mapped.diff | 16 + patches/gprof-build.diff | 16 + patches/i18n-fr.diff | 13 + patches/infinity-notes.diff | 187 + patches/mips64-default-n64.diff | 79 + patches/pr-ld-16428.diff | 158 + patches/pr24276.diff | 131 + patches/series | 37 + rules | 1845 ++++++ source.lintian-overrides | 8 + source/format | 1 + test-suite-compare.py | 230 + tests/build | 12 + tests/control | 17 + tests/libc-link | 29 + tests/shlib-build | 44 + watch | 2 + 68 files changed, 18275 insertions(+) create mode 100644 README.cross create mode 100644 binutils-common.overrides create mode 100644 binutils-cross.overrides create mode 100644 binutils-hppa64-linux-gnu.overrides create mode 100644 binutils-multiarch-dev.overrides create mode 100644 binutils-multiarch.overrides create mode 100644 binutils-multiarch.postinst.in create mode 100644 binutils-multiarch.postrm.in create mode 100644 binutils-multiarch.preinst.in create mode 100644 binutils-multiarch.prerm.in create mode 100644 binutils-multiarch.shlibs.in create mode 100644 binutils-triplet.overrides create mode 100644 binutils.overrides create mode 100644 binutils.presubj create mode 100644 binutils.triggers create mode 100644 changelog create mode 100644 control create mode 100644 control.cross.in create mode 100644 control.in create mode 100644 copyright create mode 100644 dwp.1 create mode 100644 gfdl.texi create mode 100644 ld.gold.1 create mode 100644 libbinutils.overrides create mode 100644 libbinutils.shlibs.in create mode 100644 patches/001_ld_makefile_patch.patch create mode 100644 patches/002_gprof_profile_arcs.patch create mode 100644 patches/003_gprof_see_also_monitor.patch create mode 100644 patches/006_better_file_error.patch create mode 100644 patches/012_check_ldrunpath_length.patch create mode 100644 patches/013_bash_in_ld_testsuite.patch create mode 100644 patches/014_hash_style-both.patch create mode 100644 patches/014_hash_style-gnu.patch create mode 100644 patches/127_x86_64_i386_biarch.patch create mode 100644 patches/128_build_id.patch create mode 100644 patches/128_ppc64_powerpc_biarch.patch create mode 100644 patches/129_multiarch_libpath.patch create mode 100644 patches/130_gold_disable_testsuite_build.patch create mode 100644 patches/131_ld_bootstrap_testsuite.patch create mode 100644 patches/135_bfd_version.patch create mode 100644 patches/136_bfd_pic.patch create mode 100644 patches/157_ar_scripts_with_tilde.patch create mode 100644 patches/158_ld_system_root.patch create mode 100644 patches/161_gold_dummy_zoption.diff create mode 100644 patches/164_ld_doc_remove_xref.diff create mode 100644 patches/aarch64-libpath.diff create mode 100644 patches/binutils-no-development.diff create mode 100644 patches/branch-no-development.diff create mode 100644 patches/branch-updates.diff create mode 100644 patches/branch-version.diff create mode 100644 patches/gold-mips.diff create mode 100644 patches/gold-no-keep-files-mapped.diff create mode 100644 patches/gprof-build.diff create mode 100644 patches/i18n-fr.diff create mode 100644 patches/infinity-notes.diff create mode 100644 patches/mips64-default-n64.diff create mode 100644 patches/pr-ld-16428.diff create mode 100644 patches/pr24276.diff create mode 100644 patches/series create mode 100755 rules create mode 100644 source.lintian-overrides create mode 100644 source/format create mode 100644 test-suite-compare.py create mode 100644 tests/build create mode 100644 tests/control create mode 100644 tests/libc-link create mode 100644 tests/shlib-build create mode 100644 watch diff --git a/README.cross b/README.cross new file mode 100644 index 000000000..f118d3b36 --- /dev/null +++ b/README.cross @@ -0,0 +1,27 @@ +Cross-binutils debian packages are directly built from the binutils +source package together with the native binutils packages. + +To build a cross-binutils package which is not yet built: + + 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= 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 + "") + +-- +Hector Oron +Marcin Juszkiewicz +Matthias Klose +Nikita Youshchenko diff --git a/binutils-common.overrides b/binutils-common.overrides new file mode 100644 index 000000000..65ee8dc90 --- /dev/null +++ b/binutils-common.overrides @@ -0,0 +1,2 @@ +# big tables +binutils-common binary: manpage-has-errors-from-man diff --git a/binutils-cross.overrides b/binutils-cross.overrides new file mode 100644 index 000000000..e5e9ca5df --- /dev/null +++ b/binutils-cross.overrides @@ -0,0 +1,15 @@ +@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: no-shlibs-control-file + +# yes, intended +@PKG@ binary: shlib-in-multi-arch-foreign-package +@PKG@ binary: triplet-dir-and-architecture-mismatch + +# some triplets are long ... +@PKG@ binary: extended-description-line-too-long diff --git a/binutils-hppa64-linux-gnu.overrides b/binutils-hppa64-linux-gnu.overrides new file mode 100644 index 000000000..ce5267c97 --- /dev/null +++ b/binutils-hppa64-linux-gnu.overrides @@ -0,0 +1,10 @@ +# 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 + +# private library. no -dev package is provided, nothing can link it +binutils-hppa64-linux-gnu binary: no-shlibs-control-file diff --git a/binutils-multiarch-dev.overrides b/binutils-multiarch-dev.overrides new file mode 100644 index 000000000..1a81c37e4 --- /dev/null +++ b/binutils-multiarch-dev.overrides @@ -0,0 +1,2 @@ +# package only has symlinks +binutils-multiarch-dev binary: control-file-is-empty md5sums diff --git a/binutils-multiarch.overrides b/binutils-multiarch.overrides new file mode 100644 index 000000000..010ad55bc --- /dev/null +++ b/binutils-multiarch.overrides @@ -0,0 +1,13 @@ +# 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 + diff --git a/binutils-multiarch.postinst.in b/binutils-multiarch.postinst.in new file mode 100644 index 000000000..a1a460ec3 --- /dev/null +++ b/binutils-multiarch.postinst.in @@ -0,0 +1,80 @@ +#! /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 diff --git a/binutils-multiarch.postrm.in b/binutils-multiarch.postrm.in new file mode 100644 index 000000000..7b9438597 --- /dev/null +++ b/binutils-multiarch.postrm.in @@ -0,0 +1,47 @@ +#! /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 diff --git a/binutils-multiarch.preinst.in b/binutils-multiarch.preinst.in new file mode 100644 index 000000000..385f62568 --- /dev/null +++ b/binutils-multiarch.preinst.in @@ -0,0 +1,29 @@ +#! /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 diff --git a/binutils-multiarch.prerm.in b/binutils-multiarch.prerm.in new file mode 100644 index 000000000..45e273b4a --- /dev/null +++ b/binutils-multiarch.prerm.in @@ -0,0 +1,98 @@ +#! /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 diff --git a/binutils-multiarch.shlibs.in b/binutils-multiarch.shlibs.in new file mode 100644 index 000000000..a5bdd99b5 --- /dev/null +++ b/binutils-multiarch.shlibs.in @@ -0,0 +1,2 @@ +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@) diff --git a/binutils-triplet.overrides b/binutils-triplet.overrides new file mode 100644 index 000000000..9fba6aa37 --- /dev/null +++ b/binutils-triplet.overrides @@ -0,0 +1,4 @@ +# empty + +# silence lintian stupidity +@PKG@ binary: spelling-error-in-binary usr/bin/as mmnemonic mnemonic diff --git a/binutils.overrides b/binutils.overrides new file mode 100644 index 000000000..38c836419 --- /dev/null +++ b/binutils.overrides @@ -0,0 +1,6 @@ +# manpages are in binutils-common +binutils binary: binary-without-manpage usr/bin/ld.bfd +binutils binary: binary-without-manpage usr/bin/ld.gold + +# silence lintian stupidity +binutils binary: spelling-error-in-binary usr/bin/as mmnemonic mnemonic diff --git a/binutils.presubj b/binutils.presubj new file mode 100644 index 000000000..430e6e44c --- /dev/null +++ b/binutils.presubj @@ -0,0 +1,25 @@ +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! diff --git a/binutils.triggers b/binutils.triggers new file mode 100644 index 000000000..dd8660367 --- /dev/null +++ b/binutils.triggers @@ -0,0 +1 @@ +activate-noawait ldconfig diff --git a/changelog b/changelog new file mode 100644 index 000000000..6823ec59a --- /dev/null +++ b/changelog @@ -0,0 +1,5545 @@ +binutils (2.31.1-15) unstable; urgency=high + + * Fix PR ld/24276, taken from the trunk. Closes: #923246. + + -- Matthias Klose Wed, 27 Feb 2019 22:30:21 +0100 + +binutils (2.31.1-14) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20190219). + - PR binutils/23919 from the 2.32 branch. + - PR gas/24165, x86: Rewrite NOP generation for fill and alignment. + - SPARC: fix PR ld/18841, skip PR ld/23169 on SPARC. + - Fix some Visium issues. + * PR binutils/23919 fixes an alignment issue with compressed debug + sections. A corresponding gdb upload is needed to correctly read + the fixed sections. + Debhelper should never have enabled compressed debug sections in + the first place ... No savings, only added pain for tools not + supporting those. + * Drop the test dependencies for mips64 and powerpcspe. + + -- Matthias Klose Tue, 19 Feb 2019 13:40:50 +0100 + +binutils (2.31.1-12) unstable; urgency=medium + + * Stop building cross packages now built by binutils-mipsen. + * Bump standards version. + + -- Matthias Klose Thu, 07 Feb 2019 14:51:45 +0100 + +binutils (2.31.1-11) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20181214). + - Fix PR ld/23929, elf: Don't merge .note.gnu.property section in IR. + - x86: Put back BFD_RELOC_X86_64_GOTPCREL. + - PR binutils/23788, objcopy: failed to find link section. + + -- Matthias Klose Fri, 14 Dec 2018 20:22:21 +0100 + +binutils (2.31.1-10) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20181130). + - Fix PR ld/23937, powerpc64le local ifunc IRELATIVE relocs are wrong. + + -- Matthias Klose Fri, 30 Nov 2018 13:20:30 +0100 + +binutils (2.31.1-9) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20181127). + - Fix Pr ld/23904, regression in Cortex A53 erratum with PIE. + Closes: #911497. + + -- Matthias Klose Tue, 27 Nov 2018 14:25:35 +0100 + +binutils (2.31.1-8) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20181121). + - Fix PR gas/23854 (x86): Disable GOT relaxation with data prefix. + - Fix PR ld/23818, when assigning symbol version, hide debug symbols defined + in discarded sections from IR objects so that they can be removed later. + - ARC updates. + - ARM: Skip new binary decode tests on pe targets. + - ARM: Fix disassembler crashing on -b binary when thumb file and thumb not + forced. + + -- Matthias Klose Fri, 23 Nov 2018 09:02:12 +0100 + +binutils (2.31.1-7) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20181018). + - AArch64: Fix error checking for SIMD udot (by element). + - x86: Add Intel ENCLV to assembler and disassembler. + + -- Matthias Klose Thu, 18 Oct 2018 08:54:07 +0200 + +binutils (2.31.1-6) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20180919). + - PR ld/23499: elf: Check for corrupt symbol version info. + - Fix Aarch64 bug in warning filtering. + - Improve the code in the assembler to detect and reject a duplicate + input and output file. + * Don't reset CROSS_ARCHS when building in an autopkg tests (as done by + the cross-toolchain-base build test). + + -- Matthias Klose Wed, 19 Sep 2018 13:48:13 +0200 + +binutils (2.31.1-5) unstable; urgency=medium + + * Fix the "build" autopkg test, depending on fakeroot and allowing output + on stderr. + + -- Matthias Klose Fri, 31 Aug 2018 11:56:41 +0200 + +binutils (2.31.1-4) unstable; urgency=medium + + * Rewrite. the "build" autopkg tests not to use the "build-needed" + restriction until #906125 is fixed. Closes: #884117. + * Build armel and armhf cross binutils on ppc64el. + + -- Matthias Klose Tue, 14 Aug 2018 20:43:44 +0200 + +binutils (2.31.1-3) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20180814). + - Fix PR ld/23428, properly add X86_ISA_1_NEEDED property. + - Fix PR ld/23486, properly merge GNU_PROPERTY_X86_ISA_1_USED. + - x32: Align the .note.gnu.property section to 4 bytes. + - PowerPC64 __tls_get_addr_opt stub .eh_frame fix. + - PowerPC64: __tls_get_addr_opt stubs and tocsave optimization. + - PR gas/23465, x86: don't mistakenly scale non-8-bit displacements. + - PR gold/23455, add --warn-drop-version option; by default, do not warn + when discarding version info. + - hppa: Fix unwind offset for call_info->start_symbol. + * Build arm64 cross binutils on ppc64el. + + -- Matthias Klose Tue, 14 Aug 2018 07:33:39 +0200 + +binutils (2.31.1-2) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20180726). + - S/390: Set the htm flag on PPA. + - x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed. + - x86: Split vcvtps2{,u}qq and vcvttps2{,u}qq. + + -- Matthias Klose Thu, 26 Jul 2018 12:23:07 +0200 + +binutils (2.31.1-1) unstable; urgency=medium + + * Binutils 2.31.1 release. + * Remove the riscv64 build hack. Closes: #903857. + + -- Matthias Klose Wed, 18 Jul 2018 11:58:00 +0200 + +binutils (2.31-1) unstable; urgency=medium + + * Binutils 2.31 release. + + -- Matthias Klose Mon, 16 Jul 2018 11:40:18 +0200 + +binutils (2.30.90.20180710-1) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20180710). + - Fix PR ld/23388, configuration with --enable-separate-code on i386. + Closes: #903376. + - Fix PR ld/23372, Remove x86 ISA properties with empty bits. + - Fix PR binutils/23369, read/write flag for these registers on AArch64. + - Fix PR binutils/23242, SBO bit in disassembly mask for ldrah on AArch64. + - [GOLD] PowerPC .gnu.attributes support. + - CVE-2018-8945: PR binutils/22809, objdump segfault. + + -- Matthias Klose Tue, 10 Jul 2018 11:44:16 +0200 + +binutils (2.30.90.20180705-1) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20180705). + - Install the diagnostics.h header. Closes: #902765, #902823. + + -- Matthias Klose Thu, 05 Jul 2018 17:55:14 +0200 + +binutils (2.30.90.20180627-1) unstable; urgency=medium + + * Snapshot, taken from the 2.31 branch (20180627). + - CVE-2018-10372: PR binutils/23064, Fix illegal memory access when parsing + corrupt DWARF information. + - CVE-2018-10373: PR binutils/23065, nm segfault. + - CVE-2018-10534: PR binutils/23110, objcopy segfault. + - CVE-2018-10535: PR binutils/23113, objcopy segfault. + + -- Matthias Klose Wed, 27 Jun 2018 21:55:43 +0200 + +binutils (2.30.52.20180613-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20180613). + + -- Matthias Klose Wed, 13 Jun 2018 14:20:30 +0200 + +binutils (2.30.51.20180512-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20180512). + + -- Matthias Klose Sat, 12 May 2018 11:45:10 -0400 + +binutils (2.30-22) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180622. + - x86 gas: Replace CET bit with IBT and SHSTK bits. + + -- Matthias Klose Fri, 22 Jun 2018 08:11:21 +0200 + +binutils (2.30-21) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180529. + - x86-64: Add TLSDESC fields to elf_x86_lazy_plt_layout. + - PR binutils/23199, mark section in a section group with SHF_GROUP. + - PR ld/23194, x86: Don't set eh->local_ref to 1 for versioned symbol. + - PR ld/23189, x86: Don't set eh->local_ref to 1 for linker defined symbols. + - PR binutils/23199, Invalid SHT_GROUP entry leads to group confusion. + * Fix PR gprof/23056, memory corruption in gprof. LP: #1763098. + * Fix PR binutils/23054, memory corruption in as. LP: #1763096. + * Fix PR ld/23055, memory corruption in ld. LP: #1763094. + + -- Matthias Klose Tue, 29 May 2018 15:46:35 +0200 + +binutils (2.30-20) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180516. + - Fix PR binutils/23109, disassembly mask for vector sdot on AArch64. + - Fix uninitialised memory acccess in COFF bfd backend. + - Update Portuguese translations. + + -- Matthias Klose Wed, 16 May 2018 10:21:19 -0400 + +binutils (2.30-19) unstable; urgency=medium + + * Build-depend on procps. + + -- Matthias Klose Thu, 03 May 2018 07:44:55 +0200 + +binutils (2.30-17) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180502. + - Fix PR ld/23123, PR ld/22374, PowerPC32 ifunc regression. + - AArch64: Fix the mask for the sqrdml(a|s)h instructions. + * Fix unintialized memory in aarch64 opcodes, taken from the trunk. + + -- Matthias Klose Wed, 02 May 2018 14:11:28 +0200 + +binutils (2.30-16) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180425. + - Fix PR ld 22782, x86: Remove the unused _GLOBAL_OFFSET_TABLE_. + - Update spanish and russian translations. + * Add amd64, i386, x32 and riscv64 cross compilers as build (test) + dependencies. + + -- Matthias Klose Wed, 25 Apr 2018 06:53:58 +0200 + +binutils (2.30-15) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180408. + * Only build the basic package when running the autopkg tests. + Closes: #884117. + + -- Matthias Klose Sun, 08 Apr 2018 22:55:34 +0200 + +binutils (2.30-14) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180405. + - Fix PR binutils/23025, Clear vex instead of vex.evex (x86). + * Fix PR gold/22770, MIPS: Fix GOT page counter in multi-got links, + taken from the trunk. Closes: #886222. + * Fix PR ld/23030 (stop the IA64 linker from removing unwind tables + when garbage collecting), taken from the trunk. Closes: #894915, #894719. + * More work arounds to build natively on riscv64. + + -- Matthias Klose Thu, 05 Apr 2018 19:13:24 +0200 + +binutils (2.30-13) unstable; urgency=medium + + * Build cross binutils for i386 and x32 on arm64 and ppc64el. + + -- Matthias Klose Wed, 04 Apr 2018 10:32:15 +0200 + +binutils (2.30-11) unstable; urgency=medium + + * Filter out the host architecture when passed as a cross architecture. + + -- Matthias Klose Sun, 01 Apr 2018 17:01:49 +0200 + +binutils (2.30-10) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180330. + - Fix PR 22773, ARM assembler's parsing of an illegal ORR instruction. + - Fix PR gold/22868, PR ld/22972 on SPARC, . + - PR ld/23000, x86-64: Add ENDBR64 to the TLSDESC PLT entry. + + -- Matthias Klose Fri, 30 Mar 2018 18:55:59 +0800 + +binutils (2.30-9) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180325. + - Fix PowerPC64 out-of-line save/restore functions. + - Remove unnecessary power9 group terminating nop. + - Set non_ir_ref_dynamic if a symbol is made dynamic. + - Fix PR ld/22836, "-r -s" doesn't work with -g3 using GCC 7. + * Fix amd64, i386 and x32 cross builds. + + -- Matthias Klose Sun, 25 Mar 2018 14:53:41 +0800 + +binutils (2.30-8) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180318. + - [ARM] Fix bxns mask. + - Extend the fix for PR ld/20882. + * Fix PowerPC64 out-of-line save/restore functions. Closes: #886264. + * Revert the 2.30-7 change. + + -- Matthias Klose Sun, 18 Mar 2018 12:51:40 +0800 + +binutils (2.30-7) unstable; urgency=medium + + * Upload without build dependencies on the cross compilers and don't run + the testsuite for this upload. + + -- Matthias Klose Thu, 08 Mar 2018 12:04:10 +0700 + +binutils (2.30-6) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180308. + - Fix PR ld/15904, linker error with --no-keep-memory. + - Enable link time garbage collection for the IA64 target. Closes: #890909. + - Fix PR gas/22014, memory corruption in MIPS assembler. + - Fix PR ld/22758, a bug that would place executable and non-executables + pages in the same segment. + - Fix PR ld/22832 on SPARC. + - Fix AArch32 build attributes for Armv8.4-A. + - Update translations. + * CVE-2018-7208: Fix PR binutils/22741, taken from the trunk. + * CVE-2018-7568: Fix PR binutils/22894, taken from the trunk. + * CVE-2018-7569: Fix PR binutils/22895, taken from the trunk. + * CVE-2018-7642: Fix PR binutils/22887, taken from the trunk. + * CVE-2018-7643: Fix PR binutils/22905, taken from the trunk. + * CVE-2018-7570: PR binutils/22881 needs a proper backport. + * Update package descriptions for binutils-. Closes: #891377. + * Build binutils-for-host for TARGET (Helmut Grohne). Closes: #891863. + + -- Matthias Klose Thu, 08 Mar 2018 09:56:54 +0700 + +binutils (2.30-5) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180215. + - gas: xtensa: fix trampoline placement. + - Fix PR gas/22738 (.dc.a directive has wrong size on SPARC 64-bit). + - Fix GOT relocation overflow on SPARC. Closes: #890359. + * strings --include-all-whitespace doesn't take an argument. Closes: #887894. + + -- Matthias Klose Thu, 15 Feb 2018 08:20:04 +0700 + +binutils (2.30-4) unstable; urgency=high + + * Update, taken from the 2.30 branch 20180209. + - Fix PR binutils/22788 (CVE-2018-6872). + * binutils-multiarch: Add riscv64 support. + * Bump dpkg version to a version supporting riscv64. + + -- Matthias Klose Fri, 09 Feb 2018 19:24:28 +0100 + +binutils (2.30-3) unstable; urgency=high + + * Update, taken from the 2.30 branch 20180208. + - Remove speculation barrier support, remove --speculate-indirect-jumps + support (PPC). + - Fix PR ld/22764. + * CVE-2018-6323: Fix PR binutils/22746, taken from the trunk. + * CVE-2018-6543: Fix PR binutils/22769, taken from the trunk. + * CVE-2018-6759: Fix PR binutils/22794, taken from the trunk. + * Build riscv64 cross packages. This is using a hack, making binutils + not building natively on riscv64. At the mercy of a dpkg update + to handle riscv64 in stretch ... + + -- Matthias Klose Thu, 08 Feb 2018 10:22:10 +0100 + +binutils (2.30-2) unstable; urgency=medium + + * Update, taken from the 2.30 branch 20180205. + - Fix PR ld/22762. + - gold: Add support for DWARF-4 line number tables. + - Update Brazillian portuguese and Russian translations. + * Apply approved patch for PR ld/22764 (AArch64). LP: #1746765. + Closes: #888789. + * Fix PR binutils/22734, taken from the trunk. Closes: #887729. + + -- Matthias Klose Mon, 05 Feb 2018 16:22:40 +0100 + +binutils (2.30-1) unstable; urgency=medium + + * Binutils 2.30 release. + + -- Matthias Klose Mon, 29 Jan 2018 14:29:38 +0100 + +binutils (2.29.90.20180122-1) unstable; urgency=medium + + * Snapshot, taken from the binutils 2.30 branch (20180122). + * Security issues addressed in 2.30: CVE-2017-13716, CVE-2017-14930, + CVE-2017-14932, CVE-2017-14933, CVE-2017-14934, CVE-2017-14938, + CVE-2017-14939, CVE-2017-14940, CVE-2017-15020, CVE-2017-15021, + CVE-2017-15022, CVE-2017-15023, CVE-2017-15024, CVE-2017-15025, + CVE-2017-15225, CVE-2017-15938, CVE-2017-15996, CVE-2017-16826, + CVE-2017-16827, CVE-2017-16828, CVE-2017-16829, CVE-2017-16830, + CVE-2017-16831, CVE-2017-16832, CVE-2017-17080, CVE-2017-17121, + CVE-2017-17122, CVE-2017-17123, CVE-2017-17124, CVE-2017-17125, + CVE-2017-17126. + + -- Matthias Klose Tue, 23 Jan 2018 04:11:38 +0100 + +binutils (2.29.51.20180110-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20180110). + + -- Matthias Klose Wed, 10 Jan 2018 16:54:44 +0100 + +binutils (2.29.51.20171219-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20171219). + + -- Matthias Klose Tue, 19 Dec 2017 14:50:11 +0100 + +binutils (2.29.51.20171208-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20171208). + * binutils-source: Depend on python3 instead of python. + * Override m68k, powerpcspe and m68k buildd admins to run the testsuite. + * Build binutils-x86-64-linux-gnu on arm64 and ppc64el. See #883769. + * Revived from the tombs, build a binutils-ia64-linux-gnu package. + + -- Matthias Klose Fri, 08 Dec 2017 15:19:09 +0100 + +binutils (2.29.51.20171128-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20171128). + + -- Matthias Klose Tue, 28 Nov 2017 08:59:33 +0100 + +binutils (2.29.1-13) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20180105. + - Fix PR ld/22626, invalid dynindx used for dynamic relocs against + section symbols. + * Fix cross builds, use host tools (Helmut Grohne). Closes: #883865. + + -- Matthias Klose Fri, 05 Jan 2018 23:44:48 +0100 + +binutils (2.29.1-12) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171212. + - Fix PR binutils/21118, don't mask X_add_number containing + a register number. + * Revived from the tombs, build a binutils-ia64-linux-gnu package. + + -- Matthias Klose Wed, 13 Dec 2017 01:10:25 +0100 + +binutils (2.29.1-11) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171208. + - Fix PR gold/22309. + * Build binutils-x86-64-linux-gnu on arm64 and ppc64el. See #883769. + + -- Matthias Klose Fri, 08 Dec 2017 12:41:16 +0100 + +binutils (2.29.1-10) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171201. + - Fix PR gold/22233, segfault in relocate_erratum_stub on aarch64. + - Update local fix for PR gold/20765, internal error in fix_errata on + aarch64 (Peter Smith). LP: #1638902. + * binutils-source: Depend on python3 instead of python. + * Override m68k, powerpcspe and m68k buildd admins to run the testsuite. + + -- Matthias Klose Fri, 01 Dec 2017 02:34:24 +0100 + +binutils (2.29.1-9) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171128. + - Fix PR ld/22431, powerpc64 ld segfault when .plt discarded. + - Fix DWARF reader to use correct size for DW_FORM_ref_addr. + + -- Matthias Klose Tue, 28 Nov 2017 07:02:24 +0100 + +binutils (2.29.1-8) unstable; urgency=medium + + * Apply proposed patch for PR gold/22233. Closes: #876786. + + -- Matthias Klose Mon, 13 Nov 2017 15:45:39 +0100 + +binutils (2.29.1-7) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171107. + - Fix PR ld/22397, PR ld/22300, PR binutils/22348. + * Use dwz -m to compress the -dbg packages. + * Add a plethora of mips r6 packages ... Closes: #881060. + * Provide "long" description for -dbg packages. Closes: #880001. + + -- Matthias Klose Wed, 08 Nov 2017 12:17:38 +0100 + +binutils (2.29.1-6) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171022. + - [GOLD] Fix powerpc64 optimization of TOC accesses. + * Do the extra/optional dance ... + * Build debug packages. Closes: #863728. + * Fix stripping the binutils- packages. + + -- Matthias Klose Sun, 22 Oct 2017 22:41:34 +0200 + +binutils (2.29.1-5) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171017. + - Fix PR binutils/22245, undefined behavior in bfd_set_error. + - Correct ctor/dtor in init_array/fini_array error value. + * Stop installing i586 compat links for i386 builds. Closes: #877791. + * Build a binutils-i686-linux-gnu package on amd64 and x32 too. + + -- Matthias Klose Tue, 17 Oct 2017 11:29:33 +0200 + +binutils (2.29.1-4) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20171001. + - PR ld/22220, BFD linker wrongly marks symbols as PREVAILING_DEF_IRONLY. + - PR ld/22199, x86-64: Don't pass output_bfd to info->callbacks->minfo. + - [GOLD] Set non-exec stack for ppc64. + * Move man/{go,}ld.1.gz to binutils-common (Helmut Grohne). Closes: #877266. + * Build-depend on target g++ compilers instead of target gcc compilers. + * Fail when string merge can't alloc memory, taken from the trunk. + Closes: #874674. + * Fix legacy cross builds. Closes: #876677. + + -- Matthias Klose Sun, 01 Oct 2017 20:16:22 +0200 + +binutils (2.29.1-3) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170923. + - gold: Add --no-relax option. + - readelf: Handle E_MIPS_MACH_5900. + - gold: PowerPC function address in non-PIC. + - Fix PR binutils/22163, PR binutils/22170. + * libbinutils: Fix generation of upper dependency for two-number versions. + * debian/rules. Remove the old cross build targets. + + -- Matthias Klose Sat, 23 Sep 2017 14:00:50 +0200 + +binutils (2.29.1-1) unstable; urgency=medium + + * binutils 2.29.1 release. + * Convert to package source format 3.0 (quilt). + + -- Matthias Klose Wed, 20 Sep 2017 10:11:56 +0200 + +binutils (2.29-13) unstable; urgency=medium + + * Build again all cross packages. + + -- Matthias Klose Tue, 19 Sep 2017 13:11:06 +0200 + +binutils (2.29-12) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170919. + - Fix PR ld/21441, PowerPC64 stubs don't match calculated size. + Closes: #876134. + - Fix PR ld/22048, Incorrect .eh_frame section in libc.so. + - Fix PR ld/22150, ld keeps a version reference for gc'd symbols. + Closes: #874585. LP: #1715641. + - Fix PR ld/22148, Integer overflow in elf64-x86-64.c. + - Fix PR ld/21924, Require GCC 5 or above for 3 x86 tests. + * Fix installation of test summaries. + * Compare test summaries for cross builds. + + -- Matthias Klose Tue, 19 Sep 2017 13:04:07 +0200 + +binutils (2.29-10) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170915. + - Fix PR binutils/22047 (CVE-2017-14129), PR binutils/22018. + * gold on 32bit archs: Release mapped files after each pass. + * Build-depend on cross compilers to run the tests for the binutils + cross packages. + * Install the ldscripts into /usr/lib//ldscripts and move + ldscripts into the binutils- packages. + * Install the unprefixed manual packages into binutils-common and + derive the timestamps from the debian/changelog entry. + * binutils-: Remove dependency on binutils. + + -- Matthias Klose Fri, 15 Sep 2017 11:55:58 +0200 + +binutils (2.29-9) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170906. + - Fix PR binutils/22032, PR binutils/21786 (CVE-2017-12451), + PR binutils/21787 (CVE-2017-12448), PR binutils/21813 (CVE-2017-12450, + CVE-2017-12452, CVE-2017-12453, CVE-2017-12454), PR ld/21824, + PR binutils/21916, PR ld/21441, PR ld/22067, PR ld/22064, PR ld/22061, + PR binutils/22059 (CVE-2017-14128), PR binutils/21933 (CVE-2017-12799), + PR binutils/22060, PR binutils/22058 (CVE-2017-14130), PR binutils/21995, + PR binutils/21861, PR binutils/21813 (CVE-2017-12456), PR binutils/21909, + PR binutils/21820, PR binutils/21990, PR binutils/21994, PR ld/21441, + PR ld/22064, PR ld/22061, PR lto/81968, PR lto/81968, PR lto/81925. + * Fix typo in control.in interpolation when TARGET is non-empty (Helmut + Grohne). Addresses: #873387. + + -- Matthias Klose Wed, 06 Sep 2017 08:14:12 +0200 + +binutils (2.29-8) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170830. + - Fix PR gold/21868. Closes: #830540, #869768. + - Fix address violation issues when parsing corrupt binaries. + - PR gold/21847: Provide symbol flag for PowerPC64 localentry:0 tracking. + + -- Matthias Klose Wed, 30 Aug 2017 08:03:09 +0200 + +binutils (2.29-7) unstable; urgency=high + + * Fix binutils dependency on binutils- on non amd64 architectures. + + -- Matthias Klose Wed, 23 Aug 2017 23:51:26 +0200 + +binutils (2.29-6) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170823. + - Fix PR ld/21988, PR ld/21964, PR ld/21910. + * readelf: Add patch to read Infinity notes. + * Reorganize packages to provide binutils-for-host/binutils-for-build + packages (Helmut Grohne). Closes: #842439. + - Break out a binutils-common package. + - Refactor code to build with DEB_BUILD_OPTIONS=nogold. + - Rename gold, ld.gold, ld.bfd to their triplet prefixed equivalents. + - Remove shlibs files for hppa64 and cross packages. + - Set NATIVE_ARCHS explicitly. + - Split out a libbinutils package and binutils- packages. + - Build binutils-for-host and binutils-for-build packages. + * Fix some issues in the above patches. + * Mark binutils-common and libbinutils as M-A: same. + * Remove obsolete Breaks/Conflicts/Replaces. + * Replace FIXME markers with TODO markers. Silly lintian ... + + -- Matthias Klose Wed, 23 Aug 2017 12:01:12 +0200 + +binutils (2.29-5) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170820. + - Fix PR binutils/21962, buffer overrun when parsing a corrupt tekhex + binary. + - Fix PR ld/18808: [AArch64] Skip IFUNC relocations in debug sections. + - Fix PR ld/18841: [AArch64] ifunc relocation ordering. + - [AArch64] Turn lr, fp, ip0 and ip1 into proper aliases. + - Fix PR ld/21923. + * Build gold on s390x. LP: #1709873. + + -- Matthias Klose Sun, 20 Aug 2017 19:00:03 +0200 + +binutils (2.29-4) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170804. + * Fix PR ld/21884, taken from the trunk. Do not choose a non-ELF format + input file to hold the linker created GOT sections. Closes: #870611. + + -- Matthias Klose Mon, 07 Aug 2017 08:46:12 -0400 + +binutils (2.29-3) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170802. + - S390 testsuite fixes. + * Fix PR ld/21884, taken from the trunk. Closes: #870343. + + -- Matthias Klose Wed, 02 Aug 2017 14:16:35 +0200 + +binutils (2.29-2) unstable; urgency=medium + + * Update, taken from the 2.29 branch 20170731. + - Fix PR 21847, PowerPC64 --plt-localentry issues. + - Fix PR gold/21857, PR ld/21849 (AVR). + * Remove Daniel as an uploader. Closes: #869305. + + -- Matthias Klose Mon, 31 Jul 2017 09:17:30 +0200 + +binutils (2.29-1) unstable; urgency=medium + + * binutils 2.29 release. + + -- Matthias Klose Tue, 25 Jul 2017 11:02:19 +0200 + +binutils (2.28.90.20170718-1) experimental; urgency=medium + + * Snapshot, taken from the 2.29 branch (20170718). + + -- Matthias Klose Tue, 18 Jul 2017 11:26:15 +0200 + +binutils (2.28.51.20170703-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20170703). + - Addresses CVE-2017-9040, CVE-2017-9042, CVE-2017-9043, CVE-2017-9044, + CVE-2017-9742, CVE-2017-9743, CVE-2017-9744, CVE-2017-9745, + CVE-2017-9746, CVE-2017-9747, CVE-2017-9748, CVE-2017-9749, + CVE-2017-9750, CVE-2017-9751, CVE-2017-9752, CVE-2017-9753, + CVE-2017-9754, CVE-2017-9755, CVE-2017-9756, CVE-2017-9954, + CVE-2017-9955. Closes: #863674. + + -- Matthias Klose Mon, 03 Jul 2017 16:08:53 +0200 + +binutils (2.28.51.20170627-1) experimental; urgency=high + + * Snapshot, taken from the trunk (20170627). + + -- Matthias Klose Tue, 27 Jun 2017 14:53:24 +0200 + +binutils (2.28.51.20170620-1) experimental; urgency=medium + + * Snapshot, taken from the trunk (20170620). + - Addresses issues CVE-2017-9040, CVE-2017-9042, CVE-2017-9043. + - ILP32 patches applied upstream. Closes: #861833. + - Fixes PR ld/21334 (MIPS), undefined hidden symbols causing assertion + failure. Closes: #858898. + * Configure with --enable-new-dtags. + * Don't revert the commit causing PR 21074. + + -- Matthias Klose Tue, 20 Jun 2017 15:32:31 +0200 + +binutils (2.28-6) unstable; urgency=medium + + * Update, taken from the 2.28 branch 20170615. + - Fix PR ld/19579 (AArch64), handling of relocations against common symbols. + Closes: #863152. + - Fix PR ld/21523 (ARM32). + - Fix PR ld/21529 (ARM32), internal error in linker. + - Fix PR ld/21404 (AVR). + - Fix PR binutils/21034. + - Fix PR gold/21503, gold not creating linker stub symbols on ppc64. + - Remove linker option: -z prefix-nop (x86). + * Fix several crashes. Addresses: #863674. + - PR binutils/21343, readelf crash. CVE-2017-9038. + - PR binutils/21345, readelf crash. CVE-2017-9039. + - PR binutils/21344, readelf crash. CVE-2017-9041. + + -- Matthias Klose Thu, 15 Jun 2017 17:46:47 +0200 + +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Fri, 12 Aug 2016 09:27:17 +0200 + +binutils (2.27-4) unstable; urgency=medium + + * Fix gold on mipsr6 targets (Aurelian Jarno). + + -- Matthias Klose 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 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 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 Sun, 07 Aug 2016 13:38:27 +0200 + +binutils (2.26.1-1) unstable; urgency=medium + + * binutils 2.26.1 release. + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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//lib*. + * Run the testsuite for all cross targets. + * Configure with --disable-compressed-debug-sections. + + -- Matthias Klose 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 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 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 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 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 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 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 Tue, 15 Sep 2015 01:54:21 +0200 + +binutils (2.25.1-1) unstable; urgency=medium + + * Binutils 2.25.1 release. + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 18 Aug 2014 13:49:01 +0200 + +binutils (2.24.51.20140814-2) unstable; urgency=medium + + * Still provide i486-* symlinks. + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Fri, 27 Sep 2013 14:05:44 +0200 + +binutils (2.23.52.20130828-1) unstable; urgency=low + + * New upstream snapshot. + + -- Matthias Klose Wed, 28 Aug 2013 15:22:51 +0200 + +binutils (2.23.52.20130727-1) unstable; urgency=low + + * New upstream snapshot. + + -- Matthias Klose 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 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 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 Wed, 12 Jun 2013 11:35:05 +0200 + +binutils (2.23.52.20130522-1) experimental; urgency=low + + * New upstream snapshot. + + -- Matthias Klose 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 Tue, 16 Apr 2013 02:21:44 +0200 + +binutils (2.23.2-1) experimental; urgency=low + + * binutils 2.23.2 release. + + -- Matthias Klose 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 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 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 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 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 Wed, 21 Nov 2012 13:47:06 +0100 + +binutils (2.23.1-1~exp1) experimental; urgency=low + + * binutils 2.23.1 release. + + -- Matthias Klose 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 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 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 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 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 Thu, 13 Sep 2012 20:35:08 +0200 + +binutils (2.22.90.20120907-2) experimental; urgency=low + + * Fix build failure on kfreebsd. + + -- Matthias Klose 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 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 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 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 Tue, 31 Jul 2012 22:20:22 +0200 + +binutils (2.22.52.20120704-1) experimental; urgency=low + + * New upstream snapshot. + + -- Matthias Klose 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 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 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 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 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 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 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 Sun, 11 Dec 2011 16:30:14 +0000 + +binutils (2.22-1) unstable; urgency=low + + * Binutils 2.22 release. + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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- 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 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 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 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 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 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 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 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 Wed, 27 Apr 2011 18:14:39 +0200 + +binutils (2.21.51.20110419-2) unstable; urgency=low + + * Fix powerpcspe and sparc builds. + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 Wed, 02 Mar 2011 02:41:17 +0100 + +binutils (2.21.0.20110216-2) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose 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 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 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 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 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 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 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 Sun, 21 Nov 2010 14:03:14 +0100 + +binutils (2.20.90.20101105-2) experimental; urgency=low + + * binutils 2.21 prerelease 1. + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 Wed, 28 Apr 2010 10:07:28 +0200 + +binutils (2.20.51.20100418-2) experimental; urgency=low + + * Add upper dependency + + -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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= 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 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= in DEB_BUILD_OPTIONS (see #209008). + * debian/*.shlibs: Update to snapshot version. + + -- Matthias Klose 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 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 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 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 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 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 Mon, 14 May 2007 10:51:40 +0200 + +binutils (2.17cvs20070426-5) unstable; urgency=low + + * Fix PR ld/4454. + + -- Matthias Klose 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 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 Mon, 30 Apr 2007 07:47:09 +0200 + +binutils (2.17cvs20070426-2) unstable; urgency=low + + * Fix typo preparing the binutils-hppa64 package. + + -- Matthias Klose 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 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 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 + 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 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 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 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 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 + . Closes: #315290 + + * Integrate most of a patch to build arbitrary binutils-$TARGET + cross-packages from #231707. Thanks to Nikita V. Youshchenko + and Josh Triplett . + + * 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 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 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 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 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 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 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 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 . + Closes: #318344 + + -- James Troup 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 + , objcopy --only-keep-debug and readelf SHT_NOBITS + fixes. + + -- James Troup 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 + . 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 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 + to fix fmoveml disassembly and associated + testsuite regression on m68k. + + -- James Troup 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 + to fix ld segfault on powerpc. Thanks to + Josselin Mouette for the report. Closes: #219187 + + -- James Troup 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 + . + + * 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 and Daniel + Jacobowitz 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 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 + to fix regressions on alpha caused by + 103_static_linking_elf_eh_frame. Thanks to Thimo Neubauer + for the original report. Closes: #215636 + + -- James Troup 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 + 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 to enable + mips64 support. Closes: #213448 + + -- James Troup 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 + 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 + 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 + to fix an as regression where it refused to + compile utils.S from Linux/PPC 2.6. Closes: #211668 + + -- James Troup 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 + 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 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 - this is obsolete, it was working around a + bug in ld since fixed by Daniel Jacobowitz 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 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 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 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 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 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 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 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 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) 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 + 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) 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 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 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 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 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 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 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 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 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 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 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 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 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 (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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Thu, 24 Aug 2000 16:52:44 -0400 + +binutils (2.10.0.18-3) unstable; urgency=low + + * Added build depends stuff. + + -- Christopher C. Chimelis 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sun, 6 Jun 1999 01:27:10 -0400 + +binutils (2.9.4.0.1-0.1) unstable; urgency=low + + * New upstream version. + + -- Daniel Jacobowitz 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 5 Oct 1998 23:02:08 -0500 + +binutils (2.9.1-0.2) frozen unstable; urgency=low + + * Fixed binutils-dev dependencies. + + -- Joel Klecker 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 + diff --git a/control b/control new file mode 100644 index 000000000..2361daa3e --- /dev/null +++ b/control @@ -0,0 +1,1048 @@ +Source: binutils +Section: devel +Priority: optional +Maintainer: Matthias Klose +Uploaders: James Troup +Standards-Version: 4.3.0 +Build-Depends: autoconf (>= 2.64), dpkg-dev (>= 1.19.0.5), + bison, flex, gettext, texinfo, dejagnu, quilt, chrpath, dwz, + python3:any, file, xz-utils, lsb-release, zlib1g-dev, procps, + g++-aarch64-linux-gnu [amd64 i386 x32] , + g++-arm-linux-gnueabi [amd64 arm64 i386 x32] , + g++-arm-linux-gnueabihf [amd64 arm64 i386 x32] , + g++-mips-linux-gnu [amd64 i386 x32] , + g++-mips64el-linux-gnuabi64 [amd64 i386 x32] , + g++-mipsel-linux-gnu [amd64 i386 x32] , + g++-powerpc64le-linux-gnu [amd64 i386 ppc64 x32] , + g++-s390x-linux-gnu [amd64 i386 x32] , + g++-alpha-linux-gnu [amd64 i386 x32] , + g++-hppa-linux-gnu [amd64 i386 x32] , + g++-m68k-linux-gnu [amd64 i386 x32] , + g++-powerpc-linux-gnu [amd64 i386 ppc64el x32] , + g++-powerpc64-linux-gnu [amd64 i386 x32] , + g++-riscv64-linux-gnu [amd64 i386 x32] , + g++-sh4-linux-gnu [amd64 i386 x32] , + g++-sparc64-linux-gnu [amd64 i386 x32] , + g++-i686-linux-gnu [amd64 arm64 ppc64el x32] , + g++-x86-64-linux-gnu [arm64 i386 ppc64el x32] , + g++-x86-64-linux-gnux32 [amd64 arm64 i386 ppc64el] , +Build-Conflicts: libelf-dev +Homepage: https://www.gnu.org/software/binutils/ +Vcs-Browser: https://salsa.debian.org/toolchain-team/binutils/tree/binutils-2.31 +Vcs-Svn: https://salsa.debian.org/toolchain-team/binutils.git +XS-Testsuite: autopkgtest + +Package: binutils-for-host +Architecture: any +Depends: ${binutils:native} (>= ${binutils:minver}), + binutils-common (= ${binary:Version}), +Multi-Arch: same +Description: GNU assembler, linker and binary utilities for the host architecture + The programs in this package are used to assemble, link and manipulate + binary and object files for the architecture of this package. They may be + used in conjunction with a matching compiler and various libraries to build + programs. When using binutils through this metapackage, all tools must be + used with an architecture prefix. + +Package: binutils-for-build +Architecture: all +Depends: binutils (>= ${binutils:minver}), + binutils-common (>= ${binutils:minver}) +Multi-Arch: foreign +Description: GNU assembler, linker and binary utilities for the build architecture + The programs in this package are used to assemble, link and manipulate + binary and object files for the native architecture. They may be used in + conjunction with a build architecture compiler and various libraries to build + programs. When using binutils through this metapackage, tools without an + architecture prefix must be used. + +Package: binutils +Architecture: any +Depends: ${shlibs:Depends}, binutils-common (= ${binary:Version}), + libbinutils (= ${binary:Version}), ${binutils:native} (= ${binary:Version}) +Conflicts: modutils (<< 2.4.19-1), ${extraConflicts}, + binutils-multiarch (<< 2.27-8) +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: libbinutils +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, binutils-common (= ${binary:Version}) +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities (private shared library) + This package includes the private shared libraries libbfd and libopcodes. + +Package: libbinutils-dbg +Section: debug +Architecture: any +Multi-Arch: same +Depends: libbinutils (= ${binary:Version}) +Description: GNU binary utilities (private shared library, debug symbols) + This package provides debug symbols for libbinutils. + +Package: binutils-dev +Architecture: any +Priority: optional +Depends: binutils (= ${binary:Version}), libbinutils (= ${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: optional +Depends: ${shlibs:Depends}, binutils (= ${binary:Version}), + binutils-common (= ${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-dbg +Section: debug +Architecture: any +Priority: optional +Depends: binutils-multiarch (= ${binary:Version}) +Description: Binary utilities that support multi-arch targets (debug symbols) + This package provides debug symbols for binutils-multiarch. + +Package: binutils-multiarch-dev +Architecture: any +Priority: optional +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}), + binutils-common (= ${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-hppa64-linux-gnu-dbg +Section: debug +Architecture: amd64 i386 x32 hppa +Depends: binutils-hppa64-linux-gnu (= ${binary:Version}) +Description: GNU binutils targeted for hppa64-linux (debug symbols) + This package provides debug symbols for binutils-hppa64-linux-gnu. + +Package: binutils-doc +Section: doc +Architecture: all +Multi-Arch: foreign +Priority: optional +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, python3 +Description: GNU assembler, linker and binary utilities (source) + This package contains the sources and patches which are needed to + build binutils. + +Package: binutils-common +Architecture: any +Multi-Arch: same +Breaks: binutils (<< 2.29.1-3.1~) +Replaces: binutils (<< 2.29.1-3.1~) +Description: Common files for the GNU assembler, linker and binary utilities + This package contains the localization files used by binutils packages for + various target architectures and parts of the binutils documentation. It is + not useful on its own. + +Package: binutils-x86-64-linux-gnu +Priority: optional +Architecture: amd64 arm64 i386 ppc64el x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for x86-64-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the x86-64-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for x86-64-linux-gnu and x86-64-linux-gnu is not your native platform. + +Package: binutils-x86-64-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: amd64 arm64 i386 ppc64el x32 +Multi-Arch: foreign +Depends: binutils-x86-64-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for x86-64-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-x86-64-linux-gnu. + +Package: binutils-i686-linux-gnu +Priority: optional +Architecture: i386 amd64 arm64 ppc64el x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: binutils-i586-linux-gnu +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for i686-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the i686-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for i686-linux-gnu and i686-linux-gnu is not your native platform. + +Package: binutils-i686-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: i386 amd64 arm64 ppc64el x32 +Multi-Arch: foreign +Depends: binutils-i686-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for i686-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-i686-linux-gnu. + +Package: binutils-aarch64-linux-gnu +Priority: optional +Architecture: arm64 amd64 i386 x32 ppc64el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for aarch64-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the aarch64-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for aarch64-linux-gnu and aarch64-linux-gnu is not your native platform. + +Package: binutils-aarch64-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: arm64 amd64 i386 x32 ppc64el +Multi-Arch: foreign +Depends: binutils-aarch64-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for aarch64-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-aarch64-linux-gnu. + +Package: binutils-arm-linux-gnueabihf +Priority: optional +Architecture: armhf amd64 i386 x32 arm64 ppc64el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for arm-linux-gnueabihf target + This package provides GNU assembler, linker and binary utilities + for the arm-linux-gnueabihf target. + . + You don't need this package unless you plan to cross-compile programs + for arm-linux-gnueabihf and arm-linux-gnueabihf is not your native platform. + +Package: binutils-arm-linux-gnueabihf-dbg +Section: debug +Priority: optional +Architecture: armhf amd64 i386 x32 arm64 ppc64el +Multi-Arch: foreign +Depends: binutils-arm-linux-gnueabihf (= ${binary:Version}) +Description: GNU binary utilities, for arm-linux-gnueabihf target (debug symbols) + This package provides debug symbols for binutils-arm-linux-gnueabihf. + +Package: binutils-arm-linux-gnueabi +Priority: optional +Architecture: armel amd64 i386 x32 arm64 ppc64el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for arm-linux-gnueabi target + This package provides GNU assembler, linker and binary utilities + for the arm-linux-gnueabi target. + . + You don't need this package unless you plan to cross-compile programs + for arm-linux-gnueabi and arm-linux-gnueabi is not your native platform. + +Package: binutils-arm-linux-gnueabi-dbg +Section: debug +Priority: optional +Architecture: armel amd64 i386 x32 arm64 ppc64el +Multi-Arch: foreign +Depends: binutils-arm-linux-gnueabi (= ${binary:Version}) +Description: GNU binary utilities, for arm-linux-gnueabi target (debug symbols) + This package provides debug symbols for binutils-arm-linux-gnueabi. + +Package: binutils-mips-linux-gnu +Priority: optional +Architecture: mips amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mips-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the mips-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for mips-linux-gnu and mips-linux-gnu is not your native platform. + +Package: binutils-mips-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: mips amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-mips-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for mips-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-mips-linux-gnu. + +Package: binutils-mipsel-linux-gnu +Priority: optional +Architecture: mipsel amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsel-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the mipsel-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for mipsel-linux-gnu and mipsel-linux-gnu is not your native platform. + +Package: binutils-mipsel-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: mipsel amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-mipsel-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for mipsel-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-mipsel-linux-gnu. + +Package: binutils-mips64el-linux-gnuabi64 +Priority: optional +Architecture: mips64el amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mips64el-linux-gnuabi64 target + This package provides GNU assembler, linker and binary utilities + for the mips64el-linux-gnuabi64 target. + . + You don't need this package unless you plan to cross-compile programs + for mips64el-linux-gnuabi64 and mips64el-linux-gnuabi64 is not your native platform. + +Package: binutils-mips64el-linux-gnuabi64-dbg +Section: debug +Priority: optional +Architecture: mips64el amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-mips64el-linux-gnuabi64 (= ${binary:Version}) +Description: GNU binary utilities, for mips64el-linux-gnuabi64 target (debug symbols) + This package provides debug symbols for binutils-mips64el-linux-gnuabi64. + +Package: binutils-powerpc64le-linux-gnu +Priority: optional +Architecture: ppc64el amd64 i386 x32 ppc64 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for powerpc64le-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the powerpc64le-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for powerpc64le-linux-gnu and powerpc64le-linux-gnu is not your native platform. + +Package: binutils-powerpc64le-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: ppc64el amd64 i386 x32 ppc64 +Multi-Arch: foreign +Depends: binutils-powerpc64le-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for powerpc64le-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-powerpc64le-linux-gnu. + +Package: binutils-s390x-linux-gnu +Priority: optional +Architecture: s390x amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for s390x-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the s390x-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for s390x-linux-gnu and s390x-linux-gnu is not your native platform. + +Package: binutils-s390x-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: s390x amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-s390x-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for s390x-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-s390x-linux-gnu. + +Package: binutils-alpha-linux-gnu +Priority: optional +Architecture: alpha amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for alpha-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the alpha-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for alpha-linux-gnu and alpha-linux-gnu is not your native platform. + +Package: binutils-alpha-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: alpha amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-alpha-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for alpha-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-alpha-linux-gnu. + +Package: binutils-hppa-linux-gnu +Priority: optional +Architecture: hppa amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for hppa-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the hppa-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for hppa-linux-gnu and hppa-linux-gnu is not your native platform. + +Package: binutils-hppa-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: hppa amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-hppa-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for hppa-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-hppa-linux-gnu. + +Package: binutils-ia64-linux-gnu +Priority: optional +Architecture: ia64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for ia64-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the ia64-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for ia64-linux-gnu and ia64-linux-gnu is not your native platform. + +Package: binutils-ia64-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: ia64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-ia64-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for ia64-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-ia64-linux-gnu. + +Package: binutils-m68k-linux-gnu +Priority: optional +Architecture: m68k amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for m68k-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the m68k-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for m68k-linux-gnu and m68k-linux-gnu is not your native platform. + +Package: binutils-m68k-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: m68k amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-m68k-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for m68k-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-m68k-linux-gnu. + +Package: binutils-mips64-linux-gnuabi64 +Priority: optional +Architecture: mips64 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mips64-linux-gnuabi64 target + This package provides GNU assembler, linker and binary utilities + for the mips64-linux-gnuabi64 target. + . + You don't need this package unless you plan to cross-compile programs + for mips64-linux-gnuabi64 and mips64-linux-gnuabi64 is not your native platform. + +Package: binutils-mips64-linux-gnuabi64-dbg +Section: debug +Priority: optional +Architecture: mips64 +Multi-Arch: foreign +Depends: binutils-mips64-linux-gnuabi64 (= ${binary:Version}) +Description: GNU binary utilities, for mips64-linux-gnuabi64 target (debug symbols) + This package provides debug symbols for binutils-mips64-linux-gnuabi64. + +Package: binutils-powerpc-linux-gnu +Priority: optional +Architecture: powerpc amd64 i386 x32 ppc64el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for powerpc-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the powerpc-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for powerpc-linux-gnu and powerpc-linux-gnu is not your native platform. + +Package: binutils-powerpc-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: powerpc amd64 i386 x32 ppc64el +Multi-Arch: foreign +Depends: binutils-powerpc-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for powerpc-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-powerpc-linux-gnu. + +Package: binutils-powerpc-linux-gnuspe +Priority: optional +Architecture: powerpcspe amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for powerpc-linux-gnuspe target + This package provides GNU assembler, linker and binary utilities + for the powerpc-linux-gnuspe target. + . + You don't need this package unless you plan to cross-compile programs + for powerpc-linux-gnuspe and powerpc-linux-gnuspe is not your native platform. + +Package: binutils-powerpc-linux-gnuspe-dbg +Section: debug +Priority: optional +Architecture: powerpcspe amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-powerpc-linux-gnuspe (= ${binary:Version}) +Description: GNU binary utilities, for powerpc-linux-gnuspe target (debug symbols) + This package provides debug symbols for binutils-powerpc-linux-gnuspe. + +Package: binutils-powerpc64-linux-gnu +Priority: optional +Architecture: ppc64 amd64 i386 x32 ppc64el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for powerpc64-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the powerpc64-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for powerpc64-linux-gnu and powerpc64-linux-gnu is not your native platform. + +Package: binutils-powerpc64-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: ppc64 amd64 i386 x32 ppc64el +Multi-Arch: foreign +Depends: binutils-powerpc64-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for powerpc64-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-powerpc64-linux-gnu. + +Package: binutils-riscv64-linux-gnu +Priority: optional +Architecture: riscv64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for riscv64-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the riscv64-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for riscv64-linux-gnu and riscv64-linux-gnu is not your native platform. + +Package: binutils-riscv64-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: riscv64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-riscv64-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for riscv64-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-riscv64-linux-gnu. + +Package: binutils-sh4-linux-gnu +Priority: optional +Architecture: sh4 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for sh4-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the sh4-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for sh4-linux-gnu and sh4-linux-gnu is not your native platform. + +Package: binutils-sh4-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: sh4 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-sh4-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for sh4-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-sh4-linux-gnu. + +Package: binutils-sparc64-linux-gnu +Priority: optional +Architecture: sparc64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for sparc64-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the sparc64-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for sparc64-linux-gnu and sparc64-linux-gnu is not your native platform. + +Package: binutils-sparc64-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: sparc64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-sparc64-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for sparc64-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-sparc64-linux-gnu. + +Package: binutils-x86-64-linux-gnux32 +Priority: optional +Architecture: x32 amd64 arm64 i386 ppc64el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for x86-64-linux-gnux32 target + This package provides GNU assembler, linker and binary utilities + for the x86-64-linux-gnux32 target. + . + You don't need this package unless you plan to cross-compile programs + for x86-64-linux-gnux32 and x86-64-linux-gnux32 is not your native platform. + +Package: binutils-x86-64-linux-gnux32-dbg +Section: debug +Priority: optional +Architecture: x32 amd64 arm64 i386 ppc64el +Multi-Arch: foreign +Depends: binutils-x86-64-linux-gnux32 (= ${binary:Version}) +Description: GNU binary utilities, for x86-64-linux-gnux32 target (debug symbols) + This package provides debug symbols for binutils-x86-64-linux-gnux32. + +Package: binutils-i686-gnu +Priority: optional +Architecture: hurd-i386 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: binutils-i586-gnu +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for i686-gnu target + This package provides GNU assembler, linker and binary utilities + for the i686-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for i686-gnu and i686-gnu is not your native platform. + +Package: binutils-i686-gnu-dbg +Section: debug +Priority: optional +Architecture: hurd-i386 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-i686-gnu (= ${binary:Version}) +Description: GNU binary utilities, for i686-gnu target (debug symbols) + This package provides debug symbols for binutils-i686-gnu. + +Package: binutils-x86-64-kfreebsd-gnu +Priority: optional +Architecture: kfreebsd-amd64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for x86-64-kfreebsd-gnu target + This package provides GNU assembler, linker and binary utilities + for the x86-64-kfreebsd-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for x86-64-kfreebsd-gnu and x86-64-kfreebsd-gnu is not your native platform. + +Package: binutils-x86-64-kfreebsd-gnu-dbg +Section: debug +Priority: optional +Architecture: kfreebsd-amd64 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-x86-64-kfreebsd-gnu (= ${binary:Version}) +Description: GNU binary utilities, for x86-64-kfreebsd-gnu target (debug symbols) + This package provides debug symbols for binutils-x86-64-kfreebsd-gnu. + +Package: binutils-i686-kfreebsd-gnu +Priority: optional +Architecture: kfreebsd-i386 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: binutils-i586-kfreebsd-gnu +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for i686-kfreebsd-gnu target + This package provides GNU assembler, linker and binary utilities + for the i686-kfreebsd-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for i686-kfreebsd-gnu and i686-kfreebsd-gnu is not your native platform. + +Package: binutils-i686-kfreebsd-gnu-dbg +Section: debug +Priority: optional +Architecture: kfreebsd-i386 amd64 i386 x32 +Multi-Arch: foreign +Depends: binutils-i686-kfreebsd-gnu (= ${binary:Version}) +Description: GNU binary utilities, for i686-kfreebsd-gnu target (debug symbols) + This package provides debug symbols for binutils-i686-kfreebsd-gnu. + +Package: binutils-mips64-linux-gnuabin32 +Priority: optional +Architecture: mipsn32 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mips64-linux-gnuabin32 target + This package provides GNU assembler, linker and binary utilities + for the mips64-linux-gnuabin32 target. + . + You don't need this package unless you plan to cross-compile programs + for mips64-linux-gnuabin32 and mips64-linux-gnuabin32 is not your native platform. + +Package: binutils-mips64-linux-gnuabin32-dbg +Section: debug +Priority: optional +Architecture: mipsn32 +Multi-Arch: foreign +Depends: binutils-mips64-linux-gnuabin32 (= ${binary:Version}) +Description: GNU binary utilities, for mips64-linux-gnuabin32 target (debug symbols) + This package provides debug symbols for binutils-mips64-linux-gnuabin32. + +Package: binutils-mips64el-linux-gnuabin32 +Priority: optional +Architecture: mipsn32el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mips64el-linux-gnuabin32 target + This package provides GNU assembler, linker and binary utilities + for the mips64el-linux-gnuabin32 target. + . + You don't need this package unless you plan to cross-compile programs + for mips64el-linux-gnuabin32 and mips64el-linux-gnuabin32 is not your native platform. + +Package: binutils-mips64el-linux-gnuabin32-dbg +Section: debug +Priority: optional +Architecture: mipsn32el +Multi-Arch: foreign +Depends: binutils-mips64el-linux-gnuabin32 (= ${binary:Version}) +Description: GNU binary utilities, for mips64el-linux-gnuabin32 target (debug symbols) + This package provides debug symbols for binutils-mips64el-linux-gnuabin32. + +Package: binutils-mipsisa64r6-linux-gnuabin32 +Priority: optional +Architecture: mipsn32r6 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsisa64r6-linux-gnuabin32 target + This package provides GNU assembler, linker and binary utilities + for the mipsisa64r6-linux-gnuabin32 target. + . + You don't need this package unless you plan to cross-compile programs + for mipsisa64r6-linux-gnuabin32 and mipsisa64r6-linux-gnuabin32 is not your native platform. + +Package: binutils-mipsisa64r6-linux-gnuabin32-dbg +Section: debug +Priority: optional +Architecture: mipsn32r6 +Multi-Arch: foreign +Depends: binutils-mipsisa64r6-linux-gnuabin32 (= ${binary:Version}) +Description: GNU binary utilities, for mipsisa64r6-linux-gnuabin32 target (debug symbols) + This package provides debug symbols for binutils-mipsisa64r6-linux-gnuabin32. + +Package: binutils-mipsisa64r6el-linux-gnuabin32 +Priority: optional +Architecture: mipsn32r6el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsisa64r6el-linux-gnuabin32 target + This package provides GNU assembler, linker and binary utilities + for the mipsisa64r6el-linux-gnuabin32 target. + . + You don't need this package unless you plan to cross-compile programs + for mipsisa64r6el-linux-gnuabin32 and mipsisa64r6el-linux-gnuabin32 is not your native platform. + +Package: binutils-mipsisa64r6el-linux-gnuabin32-dbg +Section: debug +Priority: optional +Architecture: mipsn32r6el +Multi-Arch: foreign +Depends: binutils-mipsisa64r6el-linux-gnuabin32 (= ${binary:Version}) +Description: GNU binary utilities, for mipsisa64r6el-linux-gnuabin32 target (debug symbols) + This package provides debug symbols for binutils-mipsisa64r6el-linux-gnuabin32. + +Package: binutils-mipsisa32r6-linux-gnu +Priority: optional +Architecture: mipsr6 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsisa32r6-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the mipsisa32r6-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for mipsisa32r6-linux-gnu and mipsisa32r6-linux-gnu is not your native platform. + +Package: binutils-mipsisa32r6-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: mipsr6 +Multi-Arch: foreign +Depends: binutils-mipsisa32r6-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for mipsisa32r6-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-mipsisa32r6-linux-gnu. + +Package: binutils-mipsisa32r6el-linux-gnu +Priority: optional +Architecture: mipsr6el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsisa32r6el-linux-gnu target + This package provides GNU assembler, linker and binary utilities + for the mipsisa32r6el-linux-gnu target. + . + You don't need this package unless you plan to cross-compile programs + for mipsisa32r6el-linux-gnu and mipsisa32r6el-linux-gnu is not your native platform. + +Package: binutils-mipsisa32r6el-linux-gnu-dbg +Section: debug +Priority: optional +Architecture: mipsr6el +Multi-Arch: foreign +Depends: binutils-mipsisa32r6el-linux-gnu (= ${binary:Version}) +Description: GNU binary utilities, for mipsisa32r6el-linux-gnu target (debug symbols) + This package provides debug symbols for binutils-mipsisa32r6el-linux-gnu. + +Package: binutils-mipsisa64r6-linux-gnuabi64 +Priority: optional +Architecture: mips64r6 +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsisa64r6-linux-gnuabi64 target + This package provides GNU assembler, linker and binary utilities + for the mipsisa64r6-linux-gnuabi64 target. + . + You don't need this package unless you plan to cross-compile programs + for mipsisa64r6-linux-gnuabi64 and mipsisa64r6-linux-gnuabi64 is not your native platform. + +Package: binutils-mipsisa64r6-linux-gnuabi64-dbg +Section: debug +Priority: optional +Architecture: mips64r6 +Multi-Arch: foreign +Depends: binutils-mipsisa64r6-linux-gnuabi64 (= ${binary:Version}) +Description: GNU binary utilities, for mipsisa64r6-linux-gnuabi64 target (debug symbols) + This package provides debug symbols for binutils-mipsisa64r6-linux-gnuabi64. + +Package: binutils-mipsisa64r6el-linux-gnuabi64 +Priority: optional +Architecture: mips64r6el +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities, for mipsisa64r6el-linux-gnuabi64 target + This package provides GNU assembler, linker and binary utilities + for the mipsisa64r6el-linux-gnuabi64 target. + . + You don't need this package unless you plan to cross-compile programs + for mipsisa64r6el-linux-gnuabi64 and mipsisa64r6el-linux-gnuabi64 is not your native platform. + +Package: binutils-mipsisa64r6el-linux-gnuabi64-dbg +Section: debug +Priority: optional +Architecture: mips64r6el +Multi-Arch: foreign +Depends: binutils-mipsisa64r6el-linux-gnuabi64 (= ${binary:Version}) +Description: GNU binary utilities, for mipsisa64r6el-linux-gnuabi64 target (debug symbols) + This package provides debug symbols for binutils-mipsisa64r6el-linux-gnuabi64. diff --git a/control.cross.in b/control.cross.in new file mode 100644 index 000000000..6da56f8b7 --- /dev/null +++ b/control.cross.in @@ -0,0 +1,27 @@ + +Package: binutils-@target@ +Priority: optional +Architecture: @host_archs@ +Multi-Arch: foreign +Depends: binutils-common (= ${binary:Version}), + ${shlibs:Depends}, ${extraDepends} +Suggests: binutils-doc (= ${source:Version}) +Provides: @binutils_alt_triplet@ +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Built-Using: ${Built-Using} +Description: GNU binary utilities, for @target@ target + This package provides GNU assembler, linker and binary utilities + for the @target@ target. + . + You don't need this package unless you plan to cross-compile programs + for @target@ and @target@ is not your native platform. + +Package: binutils-@target@-dbg +Section: debug +Priority: optional +Architecture: @host_archs@ +Multi-Arch: foreign +Depends: binutils-@target@ (= ${binary:Version}) +Description: GNU binary utilities, for @target@ target (debug symbols) + This package provides debug symbols for binutils-@target@. diff --git a/control.in b/control.in new file mode 100644 index 000000000..5eea50824 --- /dev/null +++ b/control.in @@ -0,0 +1,190 @@ +Source: binutils +Section: devel +Priority: optional +Maintainer: Matthias Klose +Uploaders: James Troup +Standards-Version: 4.3.0 +Build-Depends: autoconf (>= 2.64), @dpkg_dev@ + bison, flex, gettext, texinfo, dejagnu, quilt, chrpath, dwz, + python3:any, file, xz-utils, lsb-release, zlib1g-dev, procps, + g++-aarch64-linux-gnu [amd64 i386 x32] , + g++-arm-linux-gnueabi [amd64 arm64 i386 x32] , + g++-arm-linux-gnueabihf [amd64 arm64 i386 x32] , + g++-mips-linux-gnu [amd64 i386 x32] , + g++-mips64el-linux-gnuabi64 [amd64 i386 x32] , + g++-mipsel-linux-gnu [amd64 i386 x32] , + g++-powerpc64le-linux-gnu [amd64 i386 ppc64 x32] , + g++-s390x-linux-gnu [amd64 i386 x32] , + g++-alpha-linux-gnu [amd64 i386 x32] , + g++-hppa-linux-gnu [amd64 i386 x32] , + g++-m68k-linux-gnu [amd64 i386 x32] , + g++-powerpc-linux-gnu [amd64 i386 ppc64el x32] , + g++-powerpc64-linux-gnu [amd64 i386 x32] , + g++-riscv64-linux-gnu [amd64 i386 x32] , + g++-sh4-linux-gnu [amd64 i386 x32] , + g++-sparc64-linux-gnu [amd64 i386 x32] , + g++-i686-linux-gnu [amd64 arm64 ppc64el x32] , + g++-x86-64-linux-gnu [arm64 i386 ppc64el x32] , + g++-x86-64-linux-gnux32 [amd64 arm64 i386 ppc64el] , +Build-Conflicts: libelf-dev +Homepage: https://www.gnu.org/software/binutils/ +Vcs-Browser: https://salsa.debian.org/toolchain-team/binutils/tree/binutils-2.31 +Vcs-Svn: https://salsa.debian.org/toolchain-team/binutils.git +XS-Testsuite: autopkgtest + +Package: binutils-for-host +Architecture: any +Depends: ${binutils:native} (>= ${binutils:minver}), + binutils-common (= ${binary:Version}), +Multi-Arch: same +Description: GNU assembler, linker and binary utilities for the host architecture + The programs in this package are used to assemble, link and manipulate + binary and object files for the architecture of this package. They may be + used in conjunction with a matching compiler and various libraries to build + programs. When using binutils through this metapackage, all tools must be + used with an architecture prefix. + +Package: binutils-for-build +Architecture: all +Depends: binutils (>= ${binutils:minver}), + binutils-common (>= ${binutils:minver}) +Multi-Arch: foreign +Description: GNU assembler, linker and binary utilities for the build architecture + The programs in this package are used to assemble, link and manipulate + binary and object files for the native architecture. They may be used in + conjunction with a build architecture compiler and various libraries to build + programs. When using binutils through this metapackage, tools without an + architecture prefix must be used. + +Package: binutils +Architecture: any +Depends: ${shlibs:Depends}, binutils-common (= ${binary:Version}), + libbinutils (= ${binary:Version}), ${binutils:native} (= ${binary:Version}) +Conflicts: modutils (<< 2.4.19-1), ${extraConflicts}, + binutils-multiarch (<< 2.27-8) +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: libbinutils +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, binutils-common (= ${binary:Version}) +Breaks: binutils (<< 2.29-6) +Replaces: binutils (<< 2.29-6) +Description: GNU binary utilities (private shared library) + This package includes the private shared libraries libbfd and libopcodes. + +Package: libbinutils-dbg +Section: debug +Architecture: any +Multi-Arch: same +Depends: libbinutils (= ${binary:Version}) +Description: GNU binary utilities (private shared library, debug symbols) + This package provides debug symbols for libbinutils. + +Package: binutils-dev +Architecture: any +Priority: optional +Depends: binutils (= ${binary:Version}), libbinutils (= ${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: optional +Depends: ${shlibs:Depends}, binutils (= ${binary:Version}), + binutils-common (= ${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-dbg +Section: debug +Architecture: any +Priority: optional +Depends: binutils-multiarch (= ${binary:Version}) +Description: Binary utilities that support multi-arch targets (debug symbols) + This package provides debug symbols for binutils-multiarch. + +Package: binutils-multiarch-dev +Architecture: any +Priority: optional +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}), + binutils-common (= ${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-hppa64-linux-gnu-dbg +Section: debug +Architecture: amd64 i386 x32 hppa +Depends: binutils-hppa64-linux-gnu (= ${binary:Version}) +Description: GNU binutils targeted for hppa64-linux (debug symbols) + This package provides debug symbols for binutils-hppa64-linux-gnu. + +Package: binutils-doc +Section: doc +Architecture: all +Multi-Arch: foreign +Priority: optional +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, python3 +Description: GNU assembler, linker and binary utilities (source) + This package contains the sources and patches which are needed to + build binutils. + +Package: binutils-common +Architecture: any +Multi-Arch: same +Breaks: binutils (<< 2.29.1-3.1~) +Replaces: binutils (<< 2.29.1-3.1~) +Description: Common files for the GNU assembler, linker and binary utilities + This package contains the localization files used by binutils packages for + various target architectures and parts of the binutils documentation. It is + not useful on its own. diff --git a/copyright b/copyright new file mode 100644 index 000000000..50efc00ae --- /dev/null +++ b/copyright @@ -0,0 +1,44 @@ +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 , +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 + +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'. diff --git a/dwp.1 b/dwp.1 new file mode 100644 index 000000000..0b5d45388 --- /dev/null +++ b/dwp.1 @@ -0,0 +1,33 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.8. +.TH DWP "1" "February 2019" "dwp (GNU Binutils for Debian) 2.31.1" "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 +.SH COPYRIGHT +Copyright \(co 2018 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. diff --git a/gfdl.texi b/gfdl.texi new file mode 100644 index 000000000..695e4ae72 --- /dev/null +++ b/gfdl.texi @@ -0,0 +1,41 @@ +\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 diff --git a/ld.gold.1 b/ld.gold.1 new file mode 100644 index 000000000..de1783ec0 --- /dev/null +++ b/ld.gold.1 @@ -0,0 +1,869 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.8. +.TH GOLD "1" "February 2019" "gold (GNU Binutils for Debian 2.31.1) 1.16" "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 +.TP +\fB\-\-emit\-stub\-syms\fR +(PowerPC only) Label linker stubs with a symbol (default) +.TP +\fB\-\-no\-emit\-stub\-syms\fR +(PowerPC only) Do not label linker stubs with a symbol +.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 [gold,bfd] +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] +(PowerPC only) Align PLT call stubs to fit cache lines +.TP +\fB\-\-plt\-localentry\fR +(PowerPC64 only) Optimize calls to ELFv2 localentry:0 functions +.TP +\fB\-\-no\-plt\-localentry\fR +(PowerPC64 only) Don't optimize ELFv2 calls (default) +.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\-\-no\-relax\fR +Do not relax branches (default) +.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 (default) +.TP +\fB\-\-no\-stub\-group\-multi\fR +(PowerPC only) Each output section has its own stubs +.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\-\-tls\-optimize\fR +(PowerPC/64 only) Optimize GD/LD/IE code to IE/LE (default) +.TP +\fB\-\-no\-tls\-optimize\fR +(PowerPC/64 only) Don'''t try to optimize TLS accesses +.TP +\fB\-\-tls\-get\-addr\-optimize\fR +(PowerPC/64 only) Use a special __tls_get_addr call (default) +.TP +\fB\-\-no\-tls\-get\-addr\-optimize\fR +(PowerPC/64 only) Don't use a special __tls_get_addr call +.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\-drop\-version\fR +Warn when discarding version information +.TP +\fB\-\-no\-warn\-drop\-version\fR +Do not warn when discarding version information (default) +.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) +.TP +\fB\-z\fR text\-unlikely\-segment +Move .text.unlikely sections to a separate segment. +.TP +\fB\-z\fR notext\-unlikely\-segment +Do not move .text.unlikely sections to a separate segment. (default) +.HP +\fB\-z\fR keep\-text\-section\-prefix Keep .text.hot, .text.startup, .text.exit and .text.unlikely as separate sections in the final binary. +.TP +\fB\-z\fR nokeep\-text\-section\-prefix +Merge all .text.* prefix sections. (default) +.PP +debian/tmp/usr/bin/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 +debian/tmp/usr/bin/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 +.SH COPYRIGHT +Copyright \(co 2018 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. diff --git a/libbinutils.overrides b/libbinutils.overrides new file mode 100644 index 000000000..67e71e719 --- /dev/null +++ b/libbinutils.overrides @@ -0,0 +1,5 @@ +# the API of the shared libs is not public, don't care about the name +libbinutils binary: package-name-doesnt-match-sonames + +# the upstream name, we don't care +libbinutils binary: dev-pkg-without-shlib-symlink diff --git a/libbinutils.shlibs.in b/libbinutils.shlibs.in new file mode 100644 index 000000000..6964e2919 --- /dev/null +++ b/libbinutils.shlibs.in @@ -0,0 +1,2 @@ +libbfd @VER@-system@DATE_EXT@ libbinutils (>= @DEB_UVER@), libbinutils (<< @DEB_NVER@) +libopcodes @VER@-system@DATE_EXT@ libbinutils (>= @DEB_UVER@), libbinutils (<< @DEB_NVER@) diff --git a/patches/001_ld_makefile_patch.patch b/patches/001_ld_makefile_patch.patch new file mode 100644 index 000000000..b1685cad3 --- /dev/null +++ b/patches/001_ld_makefile_patch.patch @@ -0,0 +1,31 @@ +Author: +Description: Description: correct where ld scripts are installed +Author: Chris Chimelis +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 +@@ -563,7 +563,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 diff --git a/patches/002_gprof_profile_arcs.patch b/patches/002_gprof_profile_arcs.patch new file mode 100644 index 000000000..a97f4db9e --- /dev/null +++ b/patches/002_gprof_profile_arcs.patch @@ -0,0 +1,29 @@ +Author: Chris Chimelis +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 diff --git a/patches/003_gprof_see_also_monitor.patch b/patches/003_gprof_see_also_monitor.patch new file mode 100644 index 000000000..38f91561b --- /dev/null +++ b/patches/003_gprof_see_also_monitor.patch @@ -0,0 +1,15 @@ +Author: Chris Chimelis +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; diff --git a/patches/006_better_file_error.patch b/patches/006_better_file_error.patch new file mode 100644 index 000000000..2c4e0015d --- /dev/null +++ b/patches/006_better_file_error.patch @@ -0,0 +1,21 @@ +Author: David Kimdon +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) diff --git a/patches/012_check_ldrunpath_length.patch b/patches/012_check_ldrunpath_length.patch new file mode 100644 index 000000000..b4e3b6cbf --- /dev/null +++ b/patches/012_check_ldrunpath_length.patch @@ -0,0 +1,25 @@ +Author: Chris Chimelis +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 +@@ -1471,6 +1471,8 @@ fragment <link.next) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) diff --git a/patches/013_bash_in_ld_testsuite.patch b/patches/013_bash_in_ld_testsuite.patch new file mode 100644 index 000000000..ed642cfee --- /dev/null +++ b/patches/013_bash_in_ld_testsuite.patch @@ -0,0 +1,15 @@ +Author: Matthias Klose +Description: Explicitly 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 +@@ -117,7 +117,7 @@ load_lib ld-lib.exp + 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 + } diff --git a/patches/014_hash_style-both.patch b/patches/014_hash_style-both.patch new file mode 100644 index 000000000..61c3e6132 --- /dev/null +++ b/patches/014_hash_style-both.patch @@ -0,0 +1,30 @@ +# 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"}); + diff --git a/patches/014_hash_style-gnu.patch b/patches/014_hash_style-gnu.patch new file mode 100644 index 000000000..b43b718e9 --- /dev/null +++ b/patches/014_hash_style-gnu.patch @@ -0,0 +1,31 @@ +# 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"}); + diff --git a/patches/127_x86_64_i386_biarch.patch b/patches/127_x86_64_i386_biarch.patch new file mode 100644 index 000000000..b75ac8271 --- /dev/null +++ b/patches/127_x86_64_i386_biarch.patch @@ -0,0 +1,20 @@ +Author: +Description: Description: Add (/usr)/lib32 to the search paths on x86_64. +Author: Aurelien Jarno +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 diff --git a/patches/128_build_id.patch b/patches/128_build_id.patch new file mode 100644 index 000000000..cba02de07 --- /dev/null +++ b/patches/128_build_id.patch @@ -0,0 +1,42 @@ +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; diff --git a/patches/128_ppc64_powerpc_biarch.patch b/patches/128_ppc64_powerpc_biarch.patch new file mode 100644 index 000000000..a72fb513f --- /dev/null +++ b/patches/128_ppc64_powerpc_biarch.patch @@ -0,0 +1,17 @@ +Index: b/ld/emulparams/elf32ppccommon.sh +=================================================================== +--- a/ld/emulparams/elf32ppccommon.sh ++++ b/ld/emulparams/elf32ppccommon.sh +@@ -56,3 +56,12 @@ case `echo "$target" | sed -e 's/-.*//'` + *:*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 diff --git a/patches/129_multiarch_libpath.patch b/patches/129_multiarch_libpath.patch new file mode 100644 index 000000000..f8858663c --- /dev/null +++ b/patches/129_multiarch_libpath.patch @@ -0,0 +1,353 @@ +# 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 +@@ -207,6 +305,13 @@ if [ "${LIB_PATH}" != ":" ] ; then + 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 + done + libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}" +@@ -214,24 +319,124 @@ if [ "${LIB_PATH}" != ":" ] ; then + 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 ++ + # 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 +@@ -42,6 +42,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 +@@ -625,6 +625,7 @@ LTLIBOBJS + MAINT + MAINTAINER_MODE_FALSE + MAINTAINER_MODE_TRUE ++MULTIARCH_DIRNAME + DLOPEN_LIBS + CXXCPP + HAVE_NO_USE_LINKER_PLUGIN_FALSE +@@ -10170,6 +10171,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 +@@ -682,6 +682,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 +@@ -1232,8 +1232,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 +@@ -685,6 +685,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 diff --git a/patches/130_gold_disable_testsuite_build.patch b/patches/130_gold_disable_testsuite_build.patch new file mode 100644 index 000000000..e22d0dae0 --- /dev/null +++ b/patches/130_gold_disable_testsuite_build.patch @@ -0,0 +1,30 @@ +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 +@@ -667,7 +667,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 + diff --git a/patches/131_ld_bootstrap_testsuite.patch b/patches/131_ld_bootstrap_testsuite.patch new file mode 100644 index 000000000..dda9c2c7b --- /dev/null +++ b/patches/131_ld_bootstrap_testsuite.patch @@ -0,0 +1,47 @@ +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 +@@ -46,6 +46,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 +@@ -110,6 +119,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 { +@@ -154,6 +168,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"} { diff --git a/patches/135_bfd_version.patch b/patches/135_bfd_version.patch new file mode 100644 index 000000000..81dbb02a1 --- /dev/null +++ b/patches/135_bfd_version.patch @@ -0,0 +1,49 @@ +Author: +Description: Description: Fix bfd version handling for extra builds + +Index: b/bfd/Makefile.am +=================================================================== +--- a/bfd/Makefile.am ++++ b/bfd/Makefile.am +@@ -949,15 +949,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 +@@ -2060,15 +2060,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," \ diff --git a/patches/136_bfd_pic.patch b/patches/136_bfd_pic.patch new file mode 100644 index 000000000..7c66fbaf7 --- /dev/null +++ b/patches/136_bfd_pic.patch @@ -0,0 +1,29 @@ +Author: Balint Reczey +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 +@@ -475,7 +475,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)"' @HDEFINES@ @COREFLAG@ @TDEFINES@ \ + $(CSEARCH) $(CSWITCHES) $(HAVEVECS) @INCINTL@ + @PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@ diff --git a/patches/157_ar_scripts_with_tilde.patch b/patches/157_ar_scripts_with_tilde.patch new file mode 100644 index 000000000..b1cb8b773 --- /dev/null +++ b/patches/157_ar_scripts_with_tilde.patch @@ -0,0 +1,13 @@ +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; + } diff --git a/patches/158_ld_system_root.patch b/patches/158_ld_system_root.patch new file mode 100644 index 000000000..27c07a636 --- /dev/null +++ b/patches/158_ld_system_root.patch @@ -0,0 +1,42 @@ +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); diff --git a/patches/161_gold_dummy_zoption.diff b/patches/161_gold_dummy_zoption.diff new file mode 100644 index 000000000..73d0c8e08 --- /dev/null +++ b/patches/161_gold_dummy_zoption.diff @@ -0,0 +1,29 @@ +# DP: let gold accept a dummy -z buildd- option. + +Index: b/gold/options.h +=================================================================== +--- a/gold/options.h ++++ b/gold/options.h +@@ -1386,6 +1386,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 +@@ -965,6 +965,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); diff --git a/patches/164_ld_doc_remove_xref.diff b/patches/164_ld_doc_remove_xref.diff new file mode 100644 index 000000000..f0a75663b --- /dev/null +++ b/patches/164_ld_doc_remove_xref.diff @@ -0,0 +1,16 @@ +# DP: In ld.texi, remove cross reference to BFD internals documentation. + +Index: b/ld/ld.texi +=================================================================== +--- a/ld/ld.texi ++++ b/ld/ld.texi +@@ -8307,7 +8307,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 diff --git a/patches/aarch64-libpath.diff b/patches/aarch64-libpath.diff new file mode 100644 index 000000000..ef43bf786 --- /dev/null +++ b/patches/aarch64-libpath.diff @@ -0,0 +1,27 @@ +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\" diff --git a/patches/binutils-no-development.diff b/patches/binutils-no-development.diff new file mode 100644 index 000000000..9eba2f07f --- /dev/null +++ b/patches/binutils-no-development.diff @@ -0,0 +1,10 @@ +Index: b/bfd/development.sh +=================================================================== +--- a/bfd/development.sh ++++ b/bfd/development.sh +@@ -16,4 +16,4 @@ + # along with this program. If not, see . + + # Controls whether to enable development-mode features by default. +-development=true ++development=false diff --git a/patches/branch-no-development.diff b/patches/branch-no-development.diff new file mode 100644 index 000000000..9eba2f07f --- /dev/null +++ b/patches/branch-no-development.diff @@ -0,0 +1,10 @@ +Index: b/bfd/development.sh +=================================================================== +--- a/bfd/development.sh ++++ b/bfd/development.sh +@@ -16,4 +16,4 @@ + # along with this program. If not, see . + + # Controls whether to enable development-mode features by default. +-development=true ++development=false diff --git a/patches/branch-updates.diff b/patches/branch-updates.diff new file mode 100644 index 000000000..d1bccbc64 --- /dev/null +++ b/patches/branch-updates.diff @@ -0,0 +1,5663 @@ +# DP: updates from the binutils-2.31 branch + +# git diff 0860693812fff944ab0602e72b762a4a2078da5b 88739f776b733b0b84600b283417f862a010bb5d + +diff --git a/bfd/ChangeLog b/bfd/ChangeLog +index 5ec906aa8e..4582b8c508 100644 +--- a/bfd/ChangeLog ++++ b/bfd/ChangeLog +@@ -1,8 +1,228 @@ ++2019-02-18 Nick Clifton ++ ++ Import from the mainline: ++ 2018-11-27 Mark Wielaard ++ ++ PR binutils/23919 ++ * bfd.c (bfd_update_compression_header): Explicitly set alignment. ++ (bfd_check_compression_header): Add uncompressed_alignment_power ++ argument. Check ch_addralign is a power of 2. ++ * bfd-in2.h: Regenerated. ++ * compress.c (bfd_compress_section_contents): Get and set ++ orig_uncompressed_alignment_pow if section is decompressed. ++ (bfd_is_section_compressed_with_header): Add and get ++ uncompressed_align_pow_p argument. ++ (bfd_is_section_compressed): Add uncompressed_align_power argument ++ to bfd_is_section_compressed_with_header call. ++ (bfd_init_section_decompress_status): Get and set ++ uncompressed_alignment_power. ++ * elf.c (_bfd_elf_make_section_from_shdr): Add ++ uncompressed_align_power argument to ++ bfd_is_section_compressed_with_header call. ++ ++ 2018-11-27 H.J. Lu ++ ++ PR binutils/23919 ++ * compress.c (bfd_is_section_compressed_with_header): Initialize ++ * uncompressed_align_pow_p to 0. ++ ++2019-02-10 H.J. Lu ++ ++ PR ld/24151 ++ * elf64-x86-64.c (elf_x86_64_need_pic): Check ++ SYMBOL_DEFINED_NON_SHARED_P instead of def_regular. ++ (elf_x86_64_relocate_section): Move PIC check for PC-relative ++ relocations to ... ++ (elf_x86_64_check_relocs): Here. ++ (elf_x86_64_finish_dynamic_symbol): Use SYMBOL_DEFINED_NON_SHARED_P ++ to check if a symbol is defined in a non-shared object. ++ * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): New. ++ ++2019-02-07 Eric Botcazou ++ ++ PR ld/18841 ++ * elf32-sparc.c (elf32_sparc_reloc_type_class): Return ++ reloc_class_ifunc for ifunc symbols. ++ * elf64-sparc.c (elf64_sparc_reloc_type_class): Likewise. ++ ++2019-02-07 Eric Botcazou ++ ++ * elf32-visium.c (visium_elf_howto_parity_reloc): Minor tweak. ++ : Use explicit range test to detect an overflow. ++ ++2018-12-12 Alan Modra ++ ++ Apply from master ++ 2018-10-20 Alan Modra ++ PR 23788 ++ * elf.c (section_match): Don't require a size match for SHT_SYMTAB ++ or SHT_STRTAB. ++ ++2018-12-01 H.J. Lu ++ ++ PR ld/23929 ++ * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Don't ++ merge .note.gnu.property section in IR inputs. ++ ++2018-11-30 Alan Modra ++ ++ PR 23937 ++ * elf64-ppc.c (write_plt_relocs_for_local_syms): Don't add local ++ entry offset for ifuncs. ++ ++2018-11-27 Tamar Christina ++ ++ Backport from mainline ++ PR ld/23904 ++ * elfnn-aarch64.c (_bfd_aarch64_adrp_p): Use existing constants. ++ (_bfd_aarch64_erratum_843419_branch_to_stub): Use _bfd_aarch64_adrp_p. ++ (struct erratum_835769_branch_to_stub_clear_data): New. ++ (_bfd_aarch64_erratum_843419_clear_stub): New. ++ (clear_erratum_843419_entry): New. ++ (elfNN_aarch64_tls_relax): Use it. ++ (elfNN_aarch64_relocate_section): Pass input_section. ++ (aarch64_map_one_stub): Handle branch type none as valid. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-11-09 Cupertino Miranda ++ * arc-got.h (arc_got_entry_type_for_reloc): Changed to ++ correct static TLS relocs. ++ * elf32-arc.c (elf_arc_check_relocs): Introduced warning to ++ TLS relocs which require -fPIC. ++ (arc_create_forced_local_got_entries_for_tls): Created. ++ Traverses list of GOT entries to be resolved statically ++ when needed. ++ (elf_arc_finish_dynamic_sections): Changed. Calls ++ arc_create_forced_local_got_entries_for_tls for each known ++ possibly GOT symbol. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-11-09 Claudiu Zissulescu ++ * arc-got.h (arc_get_local_got_ents): Revamp it; use ++ elf_local_got_ents to store the local got list. ++ (get_got_entry_list_for_symbo): Restructure it. ++ * elf32-arc.c (elf_arc_relocate_section): Correct the call to ++ get_got_entry_list_for_symbol. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-09-06 Cupertino Miranda ++ * arc-got.h (relocate_fix_got_relocs_for_got_info): Changed. Take ++ TLS section alignment in consideration for this relocation. ++ * elf32-arc.c (FINAL_SECTSTART): Added this formula macro. ++ (ARC_TLS_DTPOFF) Updated reloc to use new created macro instead. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-08-01 Cupertino Miranda ++ * arc-got.h (relocate_fix_got_relocs_for_got_info): Changed, fixed ++ TCB_SIZE offsize to include section alignment. ++ * elf32-arc.c (arc_special_overflow_checks): Likewise. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-03-02 Cupertino Miranda ++ * elf32-arc.c (elf_arc_check_relocs): Changed. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-03-02 Cupertino Miranda ++ * elf32-arc.c (elf_arc_check_relocs): Changed. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-03-02 Cupertino Miranda ++ * elf32-arc.c (elf_arc_finish_dynamic_symbol) Return FALSE in case ++ arc_htab is NULL. ++ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-03-02 Cupertino Miranda a ++ * arc-got.h (get_got_entry_list_for_symbol): Changed. ++ * ef32-arc.c (struct elf_arc_link_hash_entry): Moved and changed. ++ (elf_arc_link_hash_newfunc): Changed. ++ (arc_elf_link_hash_table_create): Removed old initializations. ++ (elf_arc_relocate_section, elf_arc_finish_dynamic_symbol): Changed. ++ ++2018-11-06 H.J. Lu ++ ++ PR ld/23818 ++ * elflink.c (_bfd_elf_link_assign_sym_version): Hide symbols ++ defined in discarded input sections. ++ ++2018-09-12 H.J. Lu ++ ++ PR ld/23499 ++ * elf.c (_bfd_elf_get_symbol_version_string): Return ++ _("") for corrupt symbol version info. ++ ++2018-09-12 H.J. Lu ++ ++ PR ld/23499 ++ * elflink.c (bfd_elf_record_link_assignment): Always clear ++ h->verinfo.verdef when overriding a dynamic definition. ++ ++2018-08-12 H.J. Lu ++ ++ PR ld/23428 ++ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't ++ add X86_ISA_1_NEEDED property only if existing properties won't ++ be removed. ++ ++2018-08-10 H.J. Lu ++ ++ PR ld/23486 ++ * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove ++ GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it. ++ (_bfd_x86_elf_link_setup_gnu_properties): Adding the ++ GNU_PROPERTY_X86_ISA_1_NEEDED, instead of ++ GNU_PROPERTY_X86_ISA_1_USED, property. ++ ++2018-08-07 Alan Modra ++ ++ * elf64-ppc.c (ppc64_elf_relocate_section): Don't skip first ++ instruction of __tls_get_addr_opt stub. ++ (plt_stub_size): Omit ALWAYS_EMIT_R2SAVE condition when ++ dealing with __tls_get_addr_opt stub. ++ (build_tls_get_addr_stub, ppc_size_one_stub): Likewise. ++ ++2018-08-01 Alan Modra ++ ++ * elf64-ppc.c (plt_stub_pad): Delay plt_stub_size call until needed. ++ (ppc_build_one_stub): Don't set stub_offset, instead assert that ++ it is sane. Don't adjust stub_offset for alignment. Adjust size ++ calculation. Use "targ" temp when calculating offsets. ++ (ppc_size_one_stub): Set stub_offset here. Use "targ" temp when ++ calculating offsets. Adjust for alignment before setting ++ tls_get_addr_opt_bctrl. ++ ++2018-07-23 H.J. Lu ++ ++ PR ld/23428 ++ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the ++ separate code program header is needed, make sure that the first ++ read-only PT_LOAD segment has no code by adding a ++ GNU_PROPERTY_X86_ISA_1_USED note. ++ ++2018-07-18 Nick Clifton ++ ++ * development.sh: Set to true. ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. + * version.m4: Set to 2.31.1 +- * development.sh: Set to true. ++ * development.sh: Set to false. + * configure: Regenerate. + * po/bfd.pot: Regenerate. + +diff --git a/bfd/arc-got.h b/bfd/arc-got.h +index a86061bcb3..253578b90c 100644 +--- a/bfd/arc-got.h ++++ b/bfd/arc-got.h +@@ -24,6 +24,9 @@ + + #define TCB_SIZE (8) + ++#define align_power(addr, align) \ ++ (((addr) + ((bfd_vma) 1 << (align)) - 1) & (-((bfd_vma) 1 << (align)))) ++ + enum tls_type_e + { + GOT_UNKNOWN = 0, +@@ -51,27 +54,26 @@ struct got_entry + enum tls_got_entries existing_entries; + }; + ++/* Return the local got list, if not defined, create an empty one. */ ++ + static struct got_entry ** + arc_get_local_got_ents (bfd * abfd) + { +- static struct got_entry **local_got_ents = NULL; +- +- if (local_got_ents == NULL) ++ if (elf_local_got_ents (abfd) == NULL) + { +- size_t size; +- Elf_Internal_Shdr *symtab_hdr = &((elf_tdata (abfd))->symtab_hdr); +- +- size = symtab_hdr->sh_info * sizeof (bfd_vma); +- local_got_ents = (struct got_entry **) +- bfd_alloc (abfd, sizeof (struct got_entry *) * size); +- if (local_got_ents == NULL) +- return FALSE; +- +- memset (local_got_ents, 0, sizeof (struct got_entry *) * size); +- elf_local_got_ents (abfd) = local_got_ents; ++ bfd_size_type amt = (elf_tdata (abfd)->symtab_hdr.sh_info ++ * sizeof (*elf_local_got_ents (abfd))); ++ elf_local_got_ents (abfd) = bfd_zmalloc (amt); ++ if (elf_local_got_ents (abfd) == NULL) ++ { ++ _bfd_error_handler (_("%pB: cannot allocate memory for local " ++ "GOT entries"), abfd); ++ bfd_set_error (bfd_error_bad_value); ++ return NULL; ++ } + } + +- return local_got_ents; ++ return elf_local_got_ents (abfd); + } + + static struct got_entry * +@@ -156,15 +158,15 @@ get_got_entry_list_for_symbol (bfd *abfd, + unsigned long r_symndx, + struct elf_link_hash_entry *h) + { +- if (h != NULL) ++ struct elf_arc_link_hash_entry *h1 = ++ ((struct elf_arc_link_hash_entry *) h); ++ if (h1 != NULL) + { +- return &h->got.glist; ++ return &h1->got_ents; + } + else + { +- struct got_entry **local_got_ents +- = arc_get_local_got_ents (abfd); +- return &local_got_ents[r_symndx]; ++ return arc_get_local_got_ents (abfd) + r_symndx; + } + } + +@@ -206,7 +208,7 @@ arc_got_entry_type_for_reloc (reloc_howto_type *howto) + __LINE__, name_for_global_symbol (H)); \ + } \ + if (H) \ +- if (h->dynindx == -1 && !h->forced_local) \ ++ if (H->dynindx == -1 && !H->forced_local) \ + if (! bfd_elf_link_record_dynamic_symbol (info, H)) \ + return FALSE; \ + htab->s##SECNAME->size += 4; \ +@@ -282,6 +284,7 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p, + BFD_ASSERT (entry); + + if (h == NULL ++ || h->forced_local == TRUE + || (! elf_hash_table (info)->dynamic_sections_created + || (bfd_link_pic (info) + && SYMBOL_REFERENCES_LOCAL (info, h)))) +@@ -329,23 +332,31 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p, + BFD_ASSERT (tls_sec && tls_sec->output_section); + bfd_vma sec_vma = tls_sec->output_section->vma; + +- bfd_put_32 (output_bfd, +- sym_value - sec_vma, ++ if (h == NULL || h->forced_local ++ || !elf_hash_table (info)->dynamic_sections_created) ++ { ++ bfd_put_32 (output_bfd, ++ sym_value - sec_vma ++ + (elf_hash_table (info)->dynamic_sections_created ++ ? 0 ++ : (align_power (0, ++ tls_sec->alignment_power))), + htab->sgot->contents + entry->offset + + (entry->existing_entries == TLS_GOT_MOD_AND_OFF + ? 4 : 0)); + +- ARC_DEBUG ("arc_info: FIXED -> %s value = %#lx " +- "@ %lx, for symbol %s\n", +- (entry->type == GOT_TLS_GD ? "GOT_TLS_GD" : +- "GOT_TLS_IE"), +- (long) (sym_value - sec_vma), +- (long) (htab->sgot->output_section->vma +- + htab->sgot->output_offset->vma +- + entry->offset +- + (entry->existing_entries == TLS_GOT_MOD_AND_OFF +- ? 4 : 0)), +- symbol_name); ++ ARC_DEBUG ("arc_info: FIXED -> %s value = %#lx " ++ "@ %lx, for symbol %s\n", ++ (entry->type == GOT_TLS_GD ? "GOT_TLS_GD" : ++ "GOT_TLS_IE"), ++ (long) (sym_value - sec_vma), ++ (long) (htab->sgot->output_section->vma ++ + htab->sgot->output_offset ++ + entry->offset ++ + (entry->existing_entries == TLS_GOT_MOD_AND_OFF ++ ? 4 : 0)), ++ symbol_name); ++ } + } + break; + +@@ -357,7 +368,10 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p, + + bfd_put_32 (output_bfd, + sym_value - sec_vma +- + (elf_hash_table (info)->dynamic_sections_created ? 0 : TCB_SIZE), ++ + (elf_hash_table (info)->dynamic_sections_created ++ ? 0 ++ : (align_power (TCB_SIZE, ++ tls_sec->alignment_power))), + htab->sgot->contents + entry->offset + + (entry->existing_entries == TLS_GOT_MOD_AND_OFF + ? 4 : 0)); +@@ -368,7 +382,7 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p, + "GOT_TLS_IE"), + (long) (sym_value - sec_vma), + (long) (htab->sgot->output_section->vma +- + htab->sgot->output_offset->vma ++ + htab->sgot->output_offset + + entry->offset + + (entry->existing_entries == TLS_GOT_MOD_AND_OFF + ? 4 : 0)), +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index f53dbb5e8c..d0c2190d0b 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -7279,7 +7279,8 @@ void bfd_update_compression_header + + bfd_boolean bfd_check_compression_header + (bfd *abfd, bfd_byte *contents, asection *sec, +- bfd_size_type *uncompressed_size); ++ bfd_size_type *uncompressed_size, ++ unsigned int *uncompressed_alignment_power); + + int bfd_get_compression_header_size (bfd *abfd, asection *sec); + +@@ -7855,7 +7856,8 @@ void bfd_cache_section_contents + bfd_boolean bfd_is_section_compressed_with_header + (bfd *abfd, asection *section, + int *compression_header_size_p, +- bfd_size_type *uncompressed_size_p); ++ bfd_size_type *uncompressed_size_p, ++ unsigned int *uncompressed_alignment_power_p); + + bfd_boolean bfd_is_section_compressed + (bfd *abfd, asection *section); +diff --git a/bfd/bfd.c b/bfd/bfd.c +index 851710401e..b859d65e0e 100644 +--- a/bfd/bfd.c ++++ b/bfd/bfd.c +@@ -2332,6 +2332,8 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, + bfd_put_32 (abfd, sec->size, &echdr->ch_size); + bfd_put_32 (abfd, 1 << sec->alignment_power, + &echdr->ch_addralign); ++ /* bfd_log2 (alignof (Elf32_Chdr)). */ ++ bfd_set_section_alignment (abfd, sec, 2); + } + else + { +@@ -2342,6 +2344,8 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, + bfd_put_64 (abfd, sec->size, &echdr->ch_size); + bfd_put_64 (abfd, 1 << sec->alignment_power, + &echdr->ch_addralign); ++ /* bfd_log2 (alignof (Elf64_Chdr)). */ ++ bfd_set_section_alignment (abfd, sec, 3); + } + } + else +@@ -2354,6 +2358,8 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, + order. */ + memcpy (contents, "ZLIB", 4); + bfd_putb64 (sec->size, contents + 4); ++ /* No way to keep the original alignment, just use 1 always. */ ++ bfd_set_section_alignment (abfd, sec, 0); + } + } + } +@@ -2368,12 +2374,15 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, + SYNOPSIS + bfd_boolean bfd_check_compression_header + (bfd *abfd, bfd_byte *contents, asection *sec, +- bfd_size_type *uncompressed_size); ++ bfd_size_type *uncompressed_size, ++ unsigned int *uncompressed_alignment_power); ++ + + DESCRIPTION + Check the compression header at CONTENTS of SEC in ABFD and +- store the uncompressed size in UNCOMPRESSED_SIZE if the +- compression header is valid. ++ store the uncompressed size in UNCOMPRESSED_SIZE and the ++ uncompressed data alignment in UNCOMPRESSED_ALIGNMENT_POWER ++ if the compression header is valid. + + RETURNS + Return TRUE if the compression header is valid. +@@ -2382,7 +2391,8 @@ RETURNS + bfd_boolean + bfd_check_compression_header (bfd *abfd, bfd_byte *contents, + asection *sec, +- bfd_size_type *uncompressed_size) ++ bfd_size_type *uncompressed_size, ++ unsigned int *uncompressed_alignment_power) + { + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour + && (elf_section_flags (sec) & SHF_COMPRESSED) != 0) +@@ -2404,9 +2414,10 @@ bfd_check_compression_header (bfd *abfd, bfd_byte *contents, + chdr.ch_addralign = bfd_get_64 (abfd, &echdr->ch_addralign); + } + if (chdr.ch_type == ELFCOMPRESS_ZLIB +- && chdr.ch_addralign == 1U << sec->alignment_power) ++ && chdr.ch_addralign == (1U << bfd_log2 (chdr.ch_addralign))) + { + *uncompressed_size = chdr.ch_size; ++ *uncompressed_alignment_power = bfd_log2 (chdr.ch_addralign); + return TRUE; + } + } +diff --git a/bfd/compress.c b/bfd/compress.c +index 53e566e498..38803eb057 100644 +--- a/bfd/compress.c ++++ b/bfd/compress.c +@@ -84,11 +84,13 @@ bfd_compress_section_contents (bfd *abfd, sec_ptr sec, + int zlib_size = 0; + int orig_compression_header_size; + bfd_size_type orig_uncompressed_size; ++ unsigned int orig_uncompressed_alignment_pow; + int header_size = bfd_get_compression_header_size (abfd, NULL); + bfd_boolean compressed + = bfd_is_section_compressed_with_header (abfd, sec, + &orig_compression_header_size, +- &orig_uncompressed_size); ++ &orig_uncompressed_size, ++ &orig_uncompressed_alignment_pow); + + /* Either ELF compression header or the 12-byte, "ZLIB" + 8-byte size, + overhead in .zdebug* section. */ +@@ -153,6 +155,8 @@ bfd_compress_section_contents (bfd *abfd, sec_ptr sec, + return 0; + } + free (uncompressed_buffer); ++ bfd_set_section_alignment (abfd, sec, ++ orig_uncompressed_alignment_pow); + sec->contents = buffer; + sec->compress_status = COMPRESS_SECTION_DONE; + return orig_uncompressed_size; +@@ -364,20 +368,25 @@ SYNOPSIS + bfd_boolean bfd_is_section_compressed_with_header + (bfd *abfd, asection *section, + int *compression_header_size_p, +- bfd_size_type *uncompressed_size_p); ++ bfd_size_type *uncompressed_size_p, ++ unsigned int *uncompressed_alignment_power_p); ++ + + DESCRIPTION + Return @code{TRUE} if @var{section} is compressed. Compression +- header size is returned in @var{compression_header_size_p} and +- uncompressed size is returned in @var{uncompressed_size_p}. If +- compression is unsupported, compression header size is returned +- with -1 and uncompressed size is returned with 0. ++ header size is returned in @var{compression_header_size_p}, ++ uncompressed size is returned in @var{uncompressed_size_p} ++ and the uncompressed data alignement power is returned in ++ @var{uncompressed_align_pow_p}. If compression is ++ unsupported, compression header size is returned with -1 ++ and uncompressed size is returned with 0. + */ + + bfd_boolean + bfd_is_section_compressed_with_header (bfd *abfd, sec_ptr sec, + int *compression_header_size_p, +- bfd_size_type *uncompressed_size_p) ++ bfd_size_type *uncompressed_size_p, ++ unsigned int *uncompressed_align_pow_p) + { + bfd_byte header[MAX_COMPRESSION_HEADER_SIZE]; + int compression_header_size; +@@ -385,6 +394,8 @@ bfd_is_section_compressed_with_header (bfd *abfd, sec_ptr sec, + unsigned int saved = sec->compress_status; + bfd_boolean compressed; + ++ *uncompressed_align_pow_p = 0; ++ + compression_header_size = bfd_get_compression_header_size (abfd, sec); + if (compression_header_size > MAX_COMPRESSION_HEADER_SIZE) + abort (); +@@ -412,7 +423,8 @@ bfd_is_section_compressed_with_header (bfd *abfd, sec_ptr sec, + if (compression_header_size != 0) + { + if (!bfd_check_compression_header (abfd, header, sec, +- uncompressed_size_p)) ++ uncompressed_size_p, ++ uncompressed_align_pow_p)) + compression_header_size = -1; + } + /* Check for the pathalogical case of a debug string section that +@@ -449,9 +461,11 @@ bfd_is_section_compressed (bfd *abfd, sec_ptr sec) + { + int compression_header_size; + bfd_size_type uncompressed_size; ++ unsigned int uncompressed_align_power; + return (bfd_is_section_compressed_with_header (abfd, sec, + &compression_header_size, +- &uncompressed_size) ++ &uncompressed_size, ++ &uncompressed_align_power) + && compression_header_size >= 0 + && uncompressed_size > 0); + } +@@ -480,6 +494,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) + int compression_header_size; + int header_size; + bfd_size_type uncompressed_size; ++ unsigned int uncompressed_alignment_power = 0; + + compression_header_size = bfd_get_compression_header_size (abfd, sec); + if (compression_header_size > MAX_COMPRESSION_HEADER_SIZE) +@@ -508,7 +523,8 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) + uncompressed_size = bfd_getb64 (header + 4); + } + else if (!bfd_check_compression_header (abfd, header, sec, +- &uncompressed_size)) ++ &uncompressed_size, ++ &uncompressed_alignment_power)) + { + bfd_set_error (bfd_error_wrong_format); + return FALSE; +@@ -516,6 +532,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) + + sec->compressed_size = sec->size; + sec->size = uncompressed_size; ++ bfd_set_section_alignment (abfd, sec, uncompressed_alignment_power); + sec->compress_status = DECOMPRESS_SECTION_SIZED; + + return TRUE; +diff --git a/bfd/development.sh b/bfd/development.sh +index 918150f30b..27a7150e6d 100644 +--- a/bfd/development.sh ++++ b/bfd/development.sh +@@ -16,4 +16,4 @@ + # along with this program. If not, see . + + # Controls whether to enable development-mode features by default. +-development=false ++development=true +diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c +index 50c0e9d703..944e1744a8 100644 +--- a/bfd/elf-properties.c ++++ b/bfd/elf-properties.c +@@ -350,7 +350,8 @@ _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info) + + /* Merge .note.gnu.property sections. */ + for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next) +- if (abfd != first_pbfd && (abfd->flags & DYNAMIC) == 0) ++ if (abfd != first_pbfd ++ && (abfd->flags & (DYNAMIC | BFD_PLUGIN)) == 0) + { + elf_property_list *null_ptr = NULL; + elf_property_list **listp = &null_ptr; +diff --git a/bfd/elf.c b/bfd/elf.c +index 0f75375128..dfeedf91c7 100644 +--- a/bfd/elf.c ++++ b/bfd/elf.c +@@ -1177,10 +1177,12 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, + enum { nothing, compress, decompress } action = nothing; + int compression_header_size; + bfd_size_type uncompressed_size; ++ unsigned int uncompressed_align_power; + bfd_boolean compressed + = bfd_is_section_compressed_with_header (abfd, newsect, + &compression_header_size, +- &uncompressed_size); ++ &uncompressed_size, ++ &uncompressed_align_power); + + if (compressed) + { +@@ -1299,15 +1301,15 @@ static bfd_boolean + section_match (const Elf_Internal_Shdr * a, + const Elf_Internal_Shdr * b) + { +- return +- a->sh_type == b->sh_type +- && (a->sh_flags & ~ SHF_INFO_LINK) +- == (b->sh_flags & ~ SHF_INFO_LINK) +- && a->sh_addralign == b->sh_addralign +- && a->sh_size == b->sh_size +- && a->sh_entsize == b->sh_entsize +- /* FIXME: Check sh_addr ? */ +- ; ++ if (a->sh_type != b->sh_type ++ || ((a->sh_flags ^ b->sh_flags) & ~SHF_INFO_LINK) != 0 ++ || a->sh_addralign != b->sh_addralign ++ || a->sh_entsize != b->sh_entsize) ++ return FALSE; ++ if (a->sh_type == SHT_SYMTAB ++ || a->sh_type == SHT_STRTAB) ++ return TRUE; ++ return a->sh_size == b->sh_size; + } + + /* Find a section in OBFD that has the same characteristics +@@ -1877,7 +1879,7 @@ _bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol, + { + Elf_Internal_Verneed *t; + +- version_string = ""; ++ version_string = _(""); + for (t = elf_tdata (abfd)->verref; + t != NULL; + t = t->vn_nextref) +diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c +index a48ef0ca15..495fa342d3 100644 +--- a/bfd/elf32-arc.c ++++ b/bfd/elf32-arc.c +@@ -160,6 +160,18 @@ struct arc_relocation_data + const char * symbol_name; + }; + ++/* ARC ELF linker hash entry. */ ++struct elf_arc_link_hash_entry ++{ ++ struct elf_link_hash_entry root; ++ ++ /* Track dynamic relocs copied for this symbol. */ ++ struct elf_dyn_relocs *dyn_relocs; ++ ++ struct got_entry *got_ents; ++}; ++ ++ + /* Should be included at this location due to static declarations + defined before this point. */ + #include "arc-got.h" +@@ -281,15 +293,6 @@ struct arc_reloc_map + unsigned char elf_reloc_val; + }; + +-/* ARC ELF linker hash entry. */ +-struct elf_arc_link_hash_entry +-{ +- struct elf_link_hash_entry root; +- +- /* Track dynamic relocs copied for this symbol. */ +- struct elf_dyn_relocs *dyn_relocs; +-}; +- + /* ARC ELF linker hash table. */ + struct elf_arc_link_hash_table + { +@@ -301,28 +304,28 @@ elf_arc_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) + { ++ struct elf_arc_link_hash_entry * ret = ++ (struct elf_arc_link_hash_entry *) entry; ++ + /* Allocate the structure if it has not already been allocated by a + subclass. */ +- if (entry == NULL) +- { +- entry = (struct bfd_hash_entry *) +- bfd_hash_allocate (table, +- sizeof (struct elf_arc_link_hash_entry)); +- if (entry == NULL) +- return entry; +- } ++ if (ret == NULL) ++ ret = (struct elf_arc_link_hash_entry *) ++ bfd_hash_allocate (table, sizeof (struct elf_arc_link_hash_entry)); ++ if (ret == NULL) ++ return (struct bfd_hash_entry *) ret; + + /* Call the allocation method of the superclass. */ +- entry = _bfd_elf_link_hash_newfunc (entry, table, string); +- if (entry != NULL) ++ ret = ((struct elf_arc_link_hash_entry *) ++ _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret, ++ table, string)); ++ if (ret != NULL) + { +- struct elf_arc_link_hash_entry *eh; +- +- eh = (struct elf_arc_link_hash_entry *) entry; +- eh->dyn_relocs = NULL; ++ ret->dyn_relocs = NULL; ++ ret->got_ents = NULL; + } + +- return entry; ++ return (struct bfd_hash_entry *) ret; + } + + /* Destroy an ARC ELF linker hash table. */ +@@ -352,11 +355,6 @@ arc_elf_link_hash_table_create (bfd *abfd) + return NULL; + } + +- ret->elf.init_got_refcount.refcount = 0; +- ret->elf.init_got_refcount.glist = NULL; +- ret->elf.init_got_offset.offset = 0; +- ret->elf.init_got_offset.glist = NULL; +- + ret->elf.root.hash_table_free = elf_arc_link_hash_table_free; + + return &ret->elf.root; +@@ -1200,11 +1198,14 @@ arc_special_overflow_checks (const struct arc_relocation_data reloc_data, + + (reloc_data.reloc_offset)))) + #define SECTSTART (bfd_signed_vma) (reloc_data.sym_section->output_section->vma \ + + reloc_data.sym_section->output_offset) ++#define FINAL_SECTSTART \ ++ (bfd_signed_vma) (reloc_data.sym_section->output_section->vma) + #define JLI (bfd_signed_vma) (reloc_data.sym_section->output_section->vma) + #define _SDA_BASE_ (bfd_signed_vma) (reloc_data.sdata_begin_symbol_vma) + #define TLS_REL (bfd_signed_vma) \ + ((elf_hash_table (info))->tls_sec->output_section->vma) +-#define TLS_TBSS (8) ++#define TLS_TBSS (align_power(TCB_SIZE, \ ++ reloc_data.sym_section->alignment_power)) + + #define none (0) + +@@ -1615,10 +1616,14 @@ elf_arc_relocate_section (bfd * output_bfd, + while (h->root.type == bfd_link_hash_indirect + || h->root.type == bfd_link_hash_warning) + { +- struct elf_link_hash_entry *h_old = h; ++ struct elf_arc_link_hash_entry *ah_old = ++ (struct elf_arc_link_hash_entry *) h; + h = (struct elf_link_hash_entry *) h->root.u.i.link; +- if (h->got.glist == 0 && h_old->got.glist != h->got.glist) +- h->got.glist = h_old->got.glist; ++ struct elf_arc_link_hash_entry *ah = ++ (struct elf_arc_link_hash_entry *) h; ++ ++ if (ah->got_ents == 0 && ah_old->got_ents != ah->got_ents) ++ ah->got_ents = ah_old->got_ents; + } + + /* TODO: Need to validate what was the intention. */ +@@ -1636,6 +1641,8 @@ elf_arc_relocate_section (bfd * output_bfd, + + if (is_reloc_for_GOT (howto) && !bfd_link_pic (info)) + { ++ struct elf_arc_link_hash_entry *ah = ++ (struct elf_arc_link_hash_entry *) h; + /* TODO: Change it to use arc_do_relocation with + ARC_32 reloc. Try to use ADD_RELA macro. */ + bfd_vma relocation = +@@ -1645,8 +1652,8 @@ elf_arc_relocate_section (bfd * output_bfd, + + reloc_data.sym_section->output_section->vma) + : 0); + +- BFD_ASSERT (h->got.glist); +- bfd_vma got_offset = h->got.glist->offset; ++ BFD_ASSERT (ah->got_ents); ++ bfd_vma got_offset = ah->got_ents->offset; + bfd_put_32 (output_bfd, relocation, + htab->sgot->contents + got_offset); + } +@@ -1717,7 +1724,7 @@ elf_arc_relocate_section (bfd * output_bfd, + reloc_data.should_relocate = TRUE; + + struct got_entry **list +- = get_got_entry_list_for_symbol (output_bfd, r_symndx, h); ++ = get_got_entry_list_for_symbol (input_bfd, r_symndx, h); + + reloc_data.got_offset_value + = relocate_fix_got_relocs_for_got_info (list, +@@ -1956,40 +1963,45 @@ elf_arc_check_relocs (bfd * abfd, + if (r_symndx < symtab_hdr->sh_info) /* Is a local symbol. */ + h = NULL; + else /* Global one. */ +- h = sym_hashes[r_symndx - symtab_hdr->sh_info]; ++ { ++ h = sym_hashes[r_symndx - symtab_hdr->sh_info]; ++ while (h->root.type == bfd_link_hash_indirect ++ || h->root.type == bfd_link_hash_warning) ++ h = (struct elf_link_hash_entry *) h->root.u.i.link; ++ } ++ + + switch (r_type) + { +- case R_ARC_32: +- case R_ARC_32_ME: +- /* During shared library creation, these relocs should not +- appear in a shared library (as memory will be read only +- and the dynamic linker can not resolve these. However +- the error should not occur for e.g. debugging or +- non-readonly sections. */ +- if (h != NULL +- && (bfd_link_dll (info) && !bfd_link_pie (info)) +- && (sec->flags & SEC_ALLOC) != 0 +- && (sec->flags & SEC_READONLY) != 0 +- && ((sec->flags & SEC_CODE) != 0 +- || (sec->flags & SEC_DEBUGGING) != 0)) +- { +- const char *name; +- if (h) +- name = h->root.root.string; +- else +- /* bfd_elf_sym_name (abfd, symtab_hdr, isym, NULL); */ +- name = "UNKNOWN"; +- _bfd_error_handler +- /* xgettext:c-format */ +- (_("%pB: relocation %s against `%s' can not be used" +- " when making a shared object; recompile with -fPIC"), +- abfd, +- arc_elf_howto (r_type)->name, +- name); +- bfd_set_error (bfd_error_bad_value); +- return FALSE; +- } ++ case R_ARC_32: ++ case R_ARC_32_ME: ++ /* During shared library creation, these relocs should not ++ appear in a shared library (as memory will be read only ++ and the dynamic linker can not resolve these. However ++ the error should not occur for e.g. debugging or ++ non-readonly sections. */ ++ if (h != NULL ++ && (bfd_link_dll (info) && !bfd_link_pie (info)) ++ && (sec->flags & SEC_ALLOC) != 0 ++ && (sec->flags & SEC_READONLY) != 0 ++ && ((sec->flags & SEC_CODE) != 0 ++ || (sec->flags & SEC_DEBUGGING) != 0)) ++ { ++ const char *name; ++ if (h) ++ name = h->root.root.string; ++ else ++ name = "UNKNOWN"; ++ _bfd_error_handler ++ /* xgettext:c-format */ ++ (_("%pB: relocation %s against `%s' can not be used" ++ " when making a shared object; recompile with -fPIC"), ++ abfd, ++ arc_elf_howto (r_type)->name, ++ name); ++ bfd_set_error (bfd_error_bad_value); ++ return FALSE; ++ } + + /* In some cases we are not setting the 'non_got_ref' + flag, even though the relocations don't require a GOT +@@ -2031,13 +2043,33 @@ elf_arc_check_relocs (bfd * abfd, + if (h == NULL) + continue; + else +- h->needs_plt = 1; ++ if (h->forced_local == 0) ++ h->needs_plt = 1; + } + + /* Add info to the symbol got_entry_list. */ + if (is_reloc_for_GOT (howto) + || is_reloc_for_TLS (howto)) + { ++ if (bfd_link_dll (info) && !bfd_link_pie (info) ++ && (r_type == R_ARC_TLS_LE_32 || r_type == R_ARC_TLS_LE_S9)) ++ { ++ const char *name; ++ if (h) ++ name = h->root.root.string; ++ else ++ /* bfd_elf_sym_name (abfd, symtab_hdr, isym, NULL); */ ++ name = "UNKNOWN"; ++ _bfd_error_handler ++ /* xgettext:c-format */ ++ (_("%pB: relocation %s against `%s' can not be used" ++ " when making a shared object; recompile with -fPIC"), ++ abfd, ++ arc_elf_howto (r_type)->name, ++ name); ++ bfd_set_error (bfd_error_bad_value); ++ return FALSE; ++ } + if (! _bfd_elf_create_got_section (dynobj, info)) + return FALSE; + +@@ -2404,7 +2436,9 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd, + create respective dynamic relocs. */ + /* TODO: Make function to get list and not access the list directly. */ + /* TODO: Move function to relocate_section create this relocs eagerly. */ +- create_got_dynrelocs_for_got_info (&h->got.glist, ++ struct elf_arc_link_hash_entry *ah = ++ (struct elf_arc_link_hash_entry *) h; ++ create_got_dynrelocs_for_got_info (&ah->got_ents, + output_bfd, + info, + h); +@@ -2413,6 +2447,9 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd, + { + struct elf_arc_link_hash_table *arc_htab = elf_arc_hash_table (info); + ++ if (arc_htab == NULL) ++ return FALSE; ++ + if (h->dynindx == -1 + || (h->root.type != bfd_link_hash_defined + && h->root.type != bfd_link_hash_defweak) +@@ -2455,6 +2492,39 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd, + s = bfd_get_linker_section (dynobj, SECTION); \ + break; + ++ ++struct obfd_info_group { ++ bfd *output_bfd; ++ struct bfd_link_info *info; ++}; ++ ++static bfd_boolean ++arc_create_forced_local_got_entries_for_tls (struct bfd_hash_entry *bh, ++ void *data) ++{ ++ struct elf_arc_link_hash_entry * h = ++ (struct elf_arc_link_hash_entry *) bh; ++ struct obfd_info_group *tmp = (struct obfd_info_group *) data; ++ ++ if (h->got_ents != NULL) ++ { ++ BFD_ASSERT (h); ++ ++ struct got_entry *list = h->got_ents; ++ ++ while (list != NULL) ++ { ++ create_got_dynrelocs_for_single_entry (list, tmp->output_bfd, ++ tmp->info, ++ (struct elf_link_hash_entry *) h); ++ list = list->next; ++ } ++ } ++ ++ return TRUE; ++} ++ ++ + /* Function : elf_arc_finish_dynamic_sections + Brief : Finish up the dynamic sections handling. + Args : output_bfd : +@@ -2588,6 +2658,12 @@ elf_arc_finish_dynamic_sections (bfd * output_bfd, + } + } + ++ struct obfd_info_group group; ++ group.output_bfd = output_bfd; ++ group.info = info; ++ bfd_hash_traverse (&info->hash->table, ++ arc_create_forced_local_got_entries_for_tls, &group); ++ + return TRUE; + } + +diff --git a/bfd/elf32-sparc.c b/bfd/elf32-sparc.c +index 4378b6177c..80e807f862 100644 +--- a/bfd/elf32-sparc.c ++++ b/bfd/elf32-sparc.c +@@ -157,13 +157,44 @@ elf32_sparc_final_write_processing (bfd *abfd, + } + } + ++/* Used to decide how to sort relocs in an optimal manner for the ++ dynamic linker, before writing them out. */ ++ + static enum elf_reloc_type_class +-elf32_sparc_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED, ++elf32_sparc_reloc_type_class (const struct bfd_link_info *info, + const asection *rel_sec ATTRIBUTE_UNUSED, + const Elf_Internal_Rela *rela) + { ++ bfd *abfd = info->output_bfd; ++ const struct elf_backend_data *bed = get_elf_backend_data (abfd); ++ struct _bfd_sparc_elf_link_hash_table *htab ++ = _bfd_sparc_elf_hash_table (info); ++ BFD_ASSERT (htab != NULL); ++ ++ if (htab->elf.dynsym != NULL ++ && htab->elf.dynsym->contents != NULL) ++ { ++ /* Check relocation against STT_GNU_IFUNC symbol if there are ++ dynamic symbols. */ ++ unsigned long r_symndx = htab->r_symndx (rela->r_info); ++ if (r_symndx != STN_UNDEF) ++ { ++ Elf_Internal_Sym sym; ++ if (!bed->s->swap_symbol_in (abfd, ++ (htab->elf.dynsym->contents ++ + r_symndx * bed->s->sizeof_sym), ++ 0, &sym)) ++ abort (); ++ ++ if (ELF_ST_TYPE (sym.st_info) == STT_GNU_IFUNC) ++ return reloc_class_ifunc; ++ } ++ } ++ + switch ((int) ELF32_R_TYPE (rela->r_info)) + { ++ case R_SPARC_IRELATIVE: ++ return reloc_class_ifunc; + case R_SPARC_RELATIVE: + return reloc_class_relative; + case R_SPARC_JMP_SLOT: +diff --git a/bfd/elf32-visium.c b/bfd/elf32-visium.c +index e8f1c4c9e4..2846140e4c 100644 +--- a/bfd/elf32-visium.c ++++ b/bfd/elf32-visium.c +@@ -312,7 +312,6 @@ visium_elf_howto_parity_reloc (bfd * input_bfd, arelent *reloc_entry, + bfd_vma relocation; + bfd_byte *inplace_address; + bfd_vma insn; +- const bfd_vma signmask = 0xffff8000; + + /* This part is from bfd_elf_generic_reloc. + If we're relocating, and this an external symbol, we don't want +@@ -351,19 +350,19 @@ visium_elf_howto_parity_reloc (bfd * input_bfd, arelent *reloc_entry, + + if (reloc_entry->howto->pc_relative) + { +- relocation -= input_section->output_section->vma +- + input_section->output_offset; ++ relocation -= input_section->output_section->vma; ++ relocation -= input_section->output_offset; + relocation -= reloc_entry->address; + } + + switch (reloc_entry->howto->type) + { + case R_VISIUM_PC16: +- relocation >>= 2; +- if (ret == bfd_reloc_ok && (relocation & signmask) != 0 +- && (relocation & signmask) != signmask) ++ if (ret == bfd_reloc_ok ++ && ((bfd_signed_vma) relocation < -0x20000 ++ || (bfd_signed_vma) relocation > 0x1ffff)) + ret = bfd_reloc_overflow; +- relocation &= 0xffff; ++ relocation = (relocation >> 2) & 0xffff; + break; + case R_VISIUM_HI16: + case R_VISIUM_HI16_PCREL: +diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c +index 45d81777eb..746506ef09 100644 +--- a/bfd/elf64-ppc.c ++++ b/bfd/elf64-ppc.c +@@ -10810,8 +10810,7 @@ plt_stub_size (struct ppc_link_hash_table *htab, + && htab->params->tls_get_addr_opt) + { + size += 7 * 4; +- if (ALWAYS_EMIT_R2SAVE +- || stub_entry->stub_type == ppc_stub_plt_call_r2save) ++ if (stub_entry->stub_type == ppc_stub_plt_call_r2save) + size += 6 * 4; + } + return size; +@@ -10829,7 +10828,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab, + bfd_vma plt_off) + { + int stub_align; +- unsigned stub_size = plt_stub_size (htab, stub_entry, plt_off); ++ unsigned stub_size; + bfd_vma stub_off = stub_entry->group->stub_sec->size; + + if (htab->params->plt_stub_align >= 0) +@@ -10841,6 +10840,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab, + } + + stub_align = 1 << -htab->params->plt_stub_align; ++ stub_size = plt_stub_size (htab, stub_entry, plt_off); + if (((stub_off + stub_size - 1) & -stub_align) - (stub_off & -stub_align) + > ((stub_size - 1) & -stub_align)) + return stub_align - (stub_off & (stub_align - 1)); +@@ -11055,8 +11055,7 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab, + bfd_put_32 (obfd, MR_R3_R0, p), p += 4; + if (r != NULL) + r[0].r_offset += 7 * 4; +- if (!ALWAYS_EMIT_R2SAVE +- && stub_entry->stub_type != ppc_stub_plt_call_r2save) ++ if (stub_entry->stub_type != ppc_stub_plt_call_r2save) + return build_plt_stub (htab, stub_entry, p, offset, r); + + bfd_put_32 (obfd, MFLR_R11, p), p += 4; +@@ -11148,7 +11147,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + struct ppc_link_hash_table *htab; + bfd_byte *loc; + bfd_byte *p; +- bfd_vma dest, off; ++ bfd_vma targ, off; + Elf_Internal_Rela *r; + asection *plt; + +@@ -11160,8 +11159,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + if (htab == NULL) + return FALSE; + +- /* Make a note of the offset within the stubs for this entry. */ +- stub_entry->stub_offset = stub_entry->group->stub_sec->size; ++ BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size); + loc = stub_entry->group->stub_sec->contents + stub_entry->stub_offset; + + htab->stub_count[stub_entry->stub_type - 1] += 1; +@@ -11170,16 +11168,16 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + case ppc_stub_long_branch: + case ppc_stub_long_branch_r2off: + /* Branches are relative. This is where we are going to. */ +- dest = (stub_entry->target_value ++ targ = (stub_entry->target_value + + stub_entry->target_section->output_offset + + stub_entry->target_section->output_section->vma); +- dest += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other); +- off = dest; ++ targ += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other); + + /* And this is where we are coming from. */ +- off -= (stub_entry->stub_offset +- + stub_entry->group->stub_sec->output_offset +- + stub_entry->group->stub_sec->output_section->vma); ++ off = (stub_entry->stub_offset ++ + stub_entry->group->stub_sec->output_offset ++ + stub_entry->group->stub_sec->output_section->vma); ++ off = targ - off; + + p = loc; + if (stub_entry->stub_type == ppc_stub_long_branch_r2off) +@@ -11226,7 +11224,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + return FALSE; + r->r_offset = p - 4 - stub_entry->group->stub_sec->contents; + r->r_info = ELF64_R_INFO (0, R_PPC64_REL24); +- r->r_addend = dest; ++ r->r_addend = targ; + if (stub_entry->h != NULL) + { + struct elf_link_hash_entry **hashes; +@@ -11278,13 +11276,13 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + return FALSE; + } + +- dest = (stub_entry->target_value ++ targ = (stub_entry->target_value + + stub_entry->target_section->output_offset + + stub_entry->target_section->output_section->vma); + if (stub_entry->stub_type != ppc_stub_plt_branch_r2off) +- dest += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other); ++ targ += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other); + +- bfd_put_64 (htab->brlt->owner, dest, ++ bfd_put_64 (htab->brlt->owner, targ, + htab->brlt->contents + br_entry->offset); + + if (br_entry->iter == htab->stub_iteration) +@@ -11301,7 +11299,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + + htab->brlt->output_offset + + htab->brlt->output_section->vma); + rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); +- rela.r_addend = dest; ++ rela.r_addend = targ; + + rl = htab->relbrlt->contents; + rl += (htab->relbrlt->reloc_count++ +@@ -11321,17 +11319,17 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + + htab->brlt->output_offset + + htab->brlt->output_section->vma); + r->r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); +- r->r_addend = dest; ++ r->r_addend = targ; + } + } + +- dest = (br_entry->offset ++ targ = (br_entry->offset + + htab->brlt->output_offset + + htab->brlt->output_section->vma); + +- off = (dest +- - elf_gp (info->output_bfd) +- - htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ off = (elf_gp (info->output_bfd) ++ + htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ off = targ - off; + + if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) + { +@@ -11354,7 +11352,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + if (stub_entry->stub_type == ppc_stub_plt_branch_r2off) + r[0].r_offset += 4; + r[0].r_info = ELF64_R_INFO (0, R_PPC64_TOC16_DS); +- r[0].r_addend = dest; ++ r[0].r_addend = targ; + if (PPC_HA (off) != 0) + { + r[0].r_info = ELF64_R_INFO (0, R_PPC64_TOC16_HA); +@@ -11439,8 +11437,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + } + + /* Now build the stub. */ +- dest = stub_entry->plt_ent->plt.offset & ~1; +- if (dest >= (bfd_vma) -2) ++ targ = stub_entry->plt_ent->plt.offset & ~1; ++ if (targ >= (bfd_vma) -2) + abort (); + + plt = htab->elf.splt; +@@ -11453,12 +11451,11 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + else + plt = htab->pltlocal; + } ++ targ += plt->output_offset + plt->output_section->vma; + +- dest += plt->output_offset + plt->output_section->vma; +- +- off = (dest +- - elf_gp (info->output_bfd) +- - htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ off = (elf_gp (info->output_bfd) ++ + htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ off = targ - off; + + if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) + { +@@ -11473,15 +11470,6 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + return FALSE; + } + +- if (htab->params->plt_stub_align != 0) +- { +- unsigned pad = plt_stub_pad (htab, stub_entry, off); +- +- stub_entry->group->stub_sec->size += pad; +- stub_entry->stub_offset = stub_entry->group->stub_sec->size; +- loc += pad; +- } +- + r = NULL; + if (info->emitrelocations) + { +@@ -11496,7 +11484,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + r[0].r_offset = loc - stub_entry->group->stub_sec->contents; + if (bfd_big_endian (info->output_bfd)) + r[0].r_offset += 2; +- r[0].r_addend = dest; ++ r[0].r_addend = targ; + } + if (stub_entry->h != NULL + && (stub_entry->h == htab->tls_get_addr_fd +@@ -11515,7 +11503,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + return FALSE; + } + +- stub_entry->group->stub_sec->size += p - loc; ++ stub_entry->group->stub_sec->size = stub_entry->stub_offset + (p - loc); + + if (htab->params->emit_stub_syms) + { +@@ -11567,7 +11555,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + struct ppc_stub_hash_entry *stub_entry; + struct bfd_link_info *info; + struct ppc_link_hash_table *htab; +- bfd_vma off; ++ bfd_vma targ, off; + int size; + + /* Massage our args to the form they really have. */ +@@ -11578,6 +11566,9 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + if (htab == NULL) + return FALSE; + ++ /* Make a note of the offset within the stubs for this entry. */ ++ stub_entry->stub_offset = stub_entry->group->stub_sec->size; ++ + if (stub_entry->h != NULL + && stub_entry->h->save_res + && stub_entry->h->elf.root.type == bfd_link_hash_defined +@@ -11594,8 +11585,8 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + || stub_entry->stub_type == ppc_stub_plt_call_r2save) + { + asection *plt; +- off = stub_entry->plt_ent->plt.offset & ~(bfd_vma) 1; +- if (off >= (bfd_vma) -2) ++ targ = stub_entry->plt_ent->plt.offset & ~(bfd_vma) 1; ++ if (targ >= (bfd_vma) -2) + abort (); + plt = htab->elf.splt; + if (!htab->elf.dynamic_sections_created +@@ -11607,23 +11598,30 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + else + plt = htab->pltlocal; + } +- off += (plt->output_offset +- + plt->output_section->vma +- - elf_gp (info->output_bfd) +- - htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ targ += plt->output_offset + plt->output_section->vma; ++ ++ off = (elf_gp (info->output_bfd) ++ + htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ off = targ - off; ++ ++ if (htab->params->plt_stub_align != 0) ++ { ++ unsigned pad = plt_stub_pad (htab, stub_entry, off); ++ ++ stub_entry->group->stub_sec->size += pad; ++ stub_entry->stub_offset = stub_entry->group->stub_sec->size; ++ } + + size = plt_stub_size (htab, stub_entry, off); ++ + if (stub_entry->h != NULL + && (stub_entry->h == htab->tls_get_addr_fd + || stub_entry->h == htab->tls_get_addr) + && htab->params->tls_get_addr_opt +- && (ALWAYS_EMIT_R2SAVE +- || stub_entry->stub_type == ppc_stub_plt_call_r2save)) ++ && stub_entry->stub_type == ppc_stub_plt_call_r2save) + stub_entry->group->tls_get_addr_opt_bctrl +- = stub_entry->group->stub_sec->size + size - 5 * 4; ++ = stub_entry->stub_offset + size - 5 * 4; + +- if (htab->params->plt_stub_align) +- size += plt_stub_pad (htab, stub_entry, off); + if (info->emitrelocations) + { + stub_entry->group->stub_sec->reloc_count +@@ -11642,12 +11640,12 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + bfd_vma r2off = 0; + bfd_vma local_off = 0; + +- off = (stub_entry->target_value +- + stub_entry->target_section->output_offset +- + stub_entry->target_section->output_section->vma); +- off -= (stub_entry->group->stub_sec->size +- + stub_entry->group->stub_sec->output_offset +- + stub_entry->group->stub_sec->output_section->vma); ++ targ = (stub_entry->target_value ++ + stub_entry->target_section->output_offset ++ + stub_entry->target_section->output_section->vma); ++ off = (stub_entry->stub_offset ++ + stub_entry->group->stub_sec->output_offset ++ + stub_entry->group->stub_sec->output_section->vma); + + /* Reset the stub type from the plt variant in case we now + can reach with a shorter stub. */ +@@ -11668,8 +11666,9 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + size += 4; + if (PPC_LO (r2off) != 0) + size += 4; +- off -= size - 4; ++ off += size - 4; + } ++ off = targ - off; + + local_off = PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other); + +@@ -11709,11 +11708,12 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + } + + stub_entry->stub_type += ppc_stub_plt_branch - ppc_stub_long_branch; +- off = (br_entry->offset +- + htab->brlt->output_offset +- + htab->brlt->output_section->vma +- - elf_gp (info->output_bfd) +- - htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ targ = (br_entry->offset ++ + htab->brlt->output_offset ++ + htab->brlt->output_section->vma); ++ off = (elf_gp (info->output_bfd) ++ + htab->sec_info[stub_entry->group->link_sec->id].toc_off); ++ off = targ - off; + + if (info->emitrelocations) + { +@@ -13530,7 +13530,8 @@ write_plt_relocs_for_local_syms (struct bfd_link_info *info) + } + + val = sym->st_value + ent->addend; +- val += PPC64_LOCAL_ENTRY_OFFSET (sym->st_other); ++ if (ELF_ST_TYPE (sym->st_info) != STT_GNU_IFUNC) ++ val += PPC64_LOCAL_ENTRY_OFFSET (sym->st_other); + if (sym_sec != NULL && sym_sec->output_section != NULL) + val += sym_sec->output_offset + sym_sec->output_section->vma; + +@@ -14877,10 +14878,13 @@ ppc64_elf_relocate_section (bfd *output_bfd, + addend = 0; + reloc_dest = DEST_STUB; + +- if ((stub_entry->stub_type == ppc_stub_plt_call ++ if (((stub_entry->stub_type == ppc_stub_plt_call ++ && ALWAYS_EMIT_R2SAVE) + || stub_entry->stub_type == ppc_stub_plt_call_r2save) +- && (ALWAYS_EMIT_R2SAVE +- || stub_entry->stub_type == ppc_stub_plt_call_r2save) ++ && !(h != NULL ++ && (h == htab->tls_get_addr_fd ++ || h == htab->tls_get_addr) ++ && htab->params->tls_get_addr_opt) + && rel + 1 < relend + && rel[1].r_offset == rel->r_offset + 4 + && ELF64_R_TYPE (rel[1].r_info) == R_PPC64_TOCSAVE) +diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c +index 8c45d3257e..86004d1d87 100644 +--- a/bfd/elf64-sparc.c ++++ b/bfd/elf64-sparc.c +@@ -784,13 +784,44 @@ elf64_sparc_print_symbol_all (bfd *abfd ATTRIBUTE_UNUSED, void * filep, + return symbol->name; + } + ++/* Used to decide how to sort relocs in an optimal manner for the ++ dynamic linker, before writing them out. */ ++ + static enum elf_reloc_type_class +-elf64_sparc_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED, ++elf64_sparc_reloc_type_class (const struct bfd_link_info *info, + const asection *rel_sec ATTRIBUTE_UNUSED, + const Elf_Internal_Rela *rela) + { ++ bfd *abfd = info->output_bfd; ++ const struct elf_backend_data *bed = get_elf_backend_data (abfd); ++ struct _bfd_sparc_elf_link_hash_table *htab ++ = _bfd_sparc_elf_hash_table (info); ++ BFD_ASSERT (htab != NULL); ++ ++ if (htab->elf.dynsym != NULL ++ && htab->elf.dynsym->contents != NULL) ++ { ++ /* Check relocation against STT_GNU_IFUNC symbol if there are ++ dynamic symbols. */ ++ unsigned long r_symndx = htab->r_symndx (rela->r_info); ++ if (r_symndx != STN_UNDEF) ++ { ++ Elf_Internal_Sym sym; ++ if (!bed->s->swap_symbol_in (abfd, ++ (htab->elf.dynsym->contents ++ + r_symndx * bed->s->sizeof_sym), ++ 0, &sym)) ++ abort (); ++ ++ if (ELF_ST_TYPE (sym.st_info) == STT_GNU_IFUNC) ++ return reloc_class_ifunc; ++ } ++ } ++ + switch ((int) ELF64_R_TYPE (rela->r_info)) + { ++ case R_SPARC_IRELATIVE: ++ return reloc_class_ifunc; + case R_SPARC_RELATIVE: + return reloc_class_relative; + case R_SPARC_JMP_SLOT: +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index c3a6c31ed2..e265cf324e 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -1426,7 +1426,7 @@ elf_x86_64_need_pic (struct bfd_link_info *info, + break; + } + +- if (!h->def_regular && !h->def_dynamic) ++ if (!SYMBOL_DEFINED_NON_SHARED_P (h) && !h->def_dynamic) + und = _("undefined "); + } + else +@@ -1855,6 +1855,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, + const char *name; + bfd_boolean size_reloc; + bfd_boolean converted_reloc; ++ bfd_boolean do_check_pic; + + r_symndx = htab->r_sym (rel->r_info); + r_type = ELF32_R_TYPE (rel->r_info); +@@ -2130,6 +2131,13 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, + size_reloc = TRUE; + goto do_size; + ++ case R_X86_64_PC8: ++ case R_X86_64_PC16: ++ case R_X86_64_PC32: ++ case R_X86_64_PC32_BND: ++ do_check_pic = TRUE; ++ goto check_pic; ++ + case R_X86_64_32: + if (!ABI_64_P (abfd)) + goto pointer; +@@ -2153,13 +2161,11 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, + &x86_64_elf_howto_table[r_type]); + /* Fall through. */ + +- case R_X86_64_PC8: +- case R_X86_64_PC16: +- case R_X86_64_PC32: +- case R_X86_64_PC32_BND: + case R_X86_64_PC64: + case R_X86_64_64: + pointer: ++ do_check_pic = FALSE; ++check_pic: + if (eh != NULL && (sec->flags & SEC_CODE) != 0) + eh->zero_undefweak |= 0x2; + /* We are called after all symbols have been resolved. Only +@@ -2223,6 +2229,67 @@ pointer: + } + } + ++ if (do_check_pic) ++ { ++ /* Don't complain about -fPIC if the symbol is undefined ++ when building executable unless it is unresolved weak ++ symbol, references a dynamic definition in PIE or ++ -z nocopyreloc is used. */ ++ bfd_boolean no_copyreloc_p ++ = (info->nocopyreloc ++ || (h != NULL ++ && eh->def_protected ++ && elf_has_no_copy_on_protected (h->root.u.def.section->owner))); ++ if ((sec->flags & SEC_ALLOC) != 0 ++ && (sec->flags & SEC_READONLY) != 0 ++ && h != NULL ++ && ((bfd_link_executable (info) ++ && ((h->root.type == bfd_link_hash_undefweak ++ && (eh == NULL ++ || !UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, ++ eh))) ++ || (bfd_link_pie (info) ++ && !SYMBOL_DEFINED_NON_SHARED_P (h) ++ && h->def_dynamic) ++ || (no_copyreloc_p ++ && h->def_dynamic ++ && !(h->root.u.def.section->flags & SEC_CODE)))) ++ || bfd_link_dll (info))) ++ { ++ bfd_boolean fail = FALSE; ++ if (SYMBOL_REFERENCES_LOCAL_P (info, h)) ++ { ++ /* Symbol is referenced locally. Make sure it is ++ defined locally. */ ++ fail = !SYMBOL_DEFINED_NON_SHARED_P (h); ++ } ++ else if (bfd_link_pie (info)) ++ { ++ /* We can only use PC-relative relocations in PIE ++ from non-code sections. */ ++ if (h->type == STT_FUNC ++ && (sec->flags & SEC_CODE) != 0) ++ fail = TRUE; ++ } ++ else if (no_copyreloc_p || bfd_link_dll (info)) ++ { ++ /* Symbol doesn't need copy reloc and isn't ++ referenced locally. Don't allow PC-relative ++ relocations against default and protected ++ symbols since address of protected function ++ and location of protected data may not be in ++ the shared object. */ ++ fail = (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT ++ || ELF_ST_VISIBILITY (h->other) == STV_PROTECTED); ++ } ++ ++ if (fail) ++ return elf_x86_64_need_pic (info, abfd, sec, h, ++ symtab_hdr, isym, ++ &x86_64_elf_howto_table[r_type]); ++ } ++ } ++ + size_reloc = FALSE; + do_size: + if (NEED_DYNAMIC_RELOCATION_P (info, TRUE, h, sec, r_type, +@@ -3066,56 +3133,14 @@ use_plt: + case R_X86_64_PC16: + case R_X86_64_PC32: + case R_X86_64_PC32_BND: +- /* Don't complain about -fPIC if the symbol is undefined when +- building executable unless it is unresolved weak symbol, +- references a dynamic definition in PIE or -z nocopyreloc +- is used. */ +- if ((input_section->flags & SEC_ALLOC) != 0 +- && (input_section->flags & SEC_READONLY) != 0 +- && h != NULL +- && ((bfd_link_executable (info) +- && ((h->root.type == bfd_link_hash_undefweak +- && !resolved_to_zero) +- || (bfd_link_pie (info) +- && !h->def_regular +- && h->def_dynamic) +- || ((info->nocopyreloc +- || (eh->def_protected +- && elf_has_no_copy_on_protected (h->root.u.def.section->owner))) +- && h->def_dynamic +- && !(h->root.u.def.section->flags & SEC_CODE)))) +- || bfd_link_dll (info))) +- { +- bfd_boolean fail = FALSE; +- if (SYMBOL_REFERENCES_LOCAL_P (info, h)) +- { +- /* Symbol is referenced locally. Make sure it is +- defined locally. */ +- fail = !(h->def_regular || ELF_COMMON_DEF_P (h)); +- } +- else if (!(bfd_link_pie (info) +- && (h->needs_copy || eh->needs_copy))) +- { +- /* Symbol doesn't need copy reloc and isn't referenced +- locally. Address of protected function may not be +- reachable at run-time. */ +- fail = (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT +- || (ELF_ST_VISIBILITY (h->other) == STV_PROTECTED +- && h->type == STT_FUNC)); +- } +- +- if (fail) +- return elf_x86_64_need_pic (info, input_bfd, input_section, +- h, NULL, NULL, howto); +- } + /* Since x86-64 has PC-relative PLT, we can use PLT in PIE + as function address. */ +- else if (h != NULL +- && (input_section->flags & SEC_CODE) == 0 +- && bfd_link_pie (info) +- && h->type == STT_FUNC +- && !h->def_regular +- && h->def_dynamic) ++ if (h != NULL ++ && (input_section->flags & SEC_CODE) == 0 ++ && bfd_link_pie (info) ++ && h->type == STT_FUNC ++ && !h->def_regular ++ && h->def_dynamic) + goto use_plt; + /* Fall through. */ + +@@ -4272,7 +4297,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd, + else if (bfd_link_pic (info) + && SYMBOL_REFERENCES_LOCAL_P (info, h)) + { +- if (!(h->def_regular || ELF_COMMON_DEF_P (h))) ++ if (!SYMBOL_DEFINED_NON_SHARED_P (h)) + return FALSE; + BFD_ASSERT((h->got.offset & 1) != 0); + rela.r_info = htab->r_info (0, R_X86_64_RELATIVE); +diff --git a/bfd/elflink.c b/bfd/elflink.c +index b24fb95848..46091b6341 100644 +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -686,13 +686,11 @@ bfd_elf_record_link_assignment (bfd *output_bfd, + && !h->def_regular) + h->root.type = bfd_link_hash_undefined; + +- /* If this symbol is not being provided by the linker script, and it is +- currently defined by a dynamic object, but not by a regular object, +- then clear out any version information because the symbol will not be +- associated with the dynamic object any more. */ +- if (!provide +- && h->def_dynamic +- && !h->def_regular) ++ /* If this symbol is currently defined by a dynamic object, but not ++ by a regular object, then clear out any version information because ++ the symbol will not be associated with the dynamic object any ++ more. */ ++ if (h->def_dynamic && !h->def_regular) + h->verinfo.verdef = NULL; + + /* Make sure this symbol is not garbage collected. */ +@@ -2360,10 +2358,19 @@ _bfd_elf_link_assign_sym_version (struct elf_link_hash_entry *h, void *data) + return FALSE; + } + ++ bed = get_elf_backend_data (info->output_bfd); ++ + /* We only need version numbers for symbols defined in regular + objects. */ + if (!h->def_regular) +- return TRUE; ++ { ++ /* Hide symbols defined in discarded input sections. */ ++ if ((h->root.type == bfd_link_hash_defined ++ || h->root.type == bfd_link_hash_defweak) ++ && discarded_section (h->root.u.def.section)) ++ (*bed->elf_backend_hide_symbol) (info, h, TRUE); ++ return TRUE; ++ } + + hide = FALSE; + bed = get_elf_backend_data (info->output_bfd); +diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c +index cf321f32c2..d4964b1b11 100644 +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -3845,7 +3845,7 @@ _bfd_aarch64_erratum_835769_scan (bfd *input_bfd, + static bfd_boolean + _bfd_aarch64_adrp_p (uint32_t insn) + { +- return ((insn & 0x9f000000) == 0x90000000); ++ return ((insn & AARCH64_ADRP_OP_MASK) == AARCH64_ADRP_OP); + } + + +@@ -5074,7 +5074,7 @@ _bfd_aarch64_erratum_843419_branch_to_stub (struct bfd_hash_entry *gen_entry, + + stub_entry->adrp_offset); + insn = bfd_getl32 (contents + stub_entry->adrp_offset); + +- if ((insn & AARCH64_ADRP_OP_MASK) != AARCH64_ADRP_OP) ++ if (!_bfd_aarch64_adrp_p (insn)) + abort (); + + bfd_signed_vma imm = +@@ -5939,6 +5939,64 @@ bad_ifunc_reloc: + # define movz_hw_R0 (0x52c00000) + #endif + ++/* Structure to hold payload for _bfd_aarch64_erratum_843419_clear_stub, ++ it is used to identify the stub information to reset. */ ++ ++struct erratum_843419_branch_to_stub_clear_data ++{ ++ bfd_vma adrp_offset; ++ asection *output_section; ++}; ++ ++/* Clear the erratum information for GEN_ENTRY if the ADRP_OFFSET and ++ section inside IN_ARG matches. The clearing is done by setting the ++ stub_type to none. */ ++ ++static bfd_boolean ++_bfd_aarch64_erratum_843419_clear_stub (struct bfd_hash_entry *gen_entry, ++ void *in_arg) ++{ ++ struct elf_aarch64_stub_hash_entry *stub_entry ++ = (struct elf_aarch64_stub_hash_entry *) gen_entry; ++ struct erratum_843419_branch_to_stub_clear_data *data ++ = (struct erratum_843419_branch_to_stub_clear_data *) in_arg; ++ ++ if (stub_entry->target_section != data->output_section ++ || stub_entry->stub_type != aarch64_stub_erratum_843419_veneer ++ || stub_entry->adrp_offset != data->adrp_offset) ++ return TRUE; ++ ++ /* Change the stub type instead of removing the entry, removing from the hash ++ table would be slower and we have already reserved the memory for the entry ++ so there wouldn't be much gain. Changing the stub also keeps around a ++ record of what was there before. */ ++ stub_entry->stub_type = aarch64_stub_none; ++ ++ /* We're done and there could have been only one matching stub at that ++ particular offset, so abort further traversal. */ ++ return FALSE; ++} ++ ++/* TLS Relaxations may relax an adrp sequence that matches the erratum 843419 ++ sequence. In this case the erratum no longer applies and we need to remove ++ the entry from the pending stub generation. This clears matching adrp insn ++ at ADRP_OFFSET in INPUT_SECTION in the stub table defined in GLOBALS. */ ++ ++static void ++clear_erratum_843419_entry (struct elf_aarch64_link_hash_table *globals, ++ bfd_vma adrp_offset, asection *input_section) ++{ ++ if (globals->fix_erratum_843419) ++ { ++ struct erratum_843419_branch_to_stub_clear_data data; ++ data.adrp_offset = adrp_offset; ++ data.output_section = input_section; ++ ++ bfd_hash_traverse (&globals->stub_hash_table, ++ _bfd_aarch64_erratum_843419_clear_stub, &data); ++ } ++} ++ + /* Handle TLS relaxations. Relaxing is possible for symbols that use + R_AARCH64_TLSDESC_ADR_{PAGE, LD64_LO12_NC, ADD_LO12_NC} during a static + link. +@@ -5949,8 +6007,9 @@ bad_ifunc_reloc: + + static bfd_reloc_status_type + elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals, +- bfd *input_bfd, bfd_byte *contents, +- Elf_Internal_Rela *rel, struct elf_link_hash_entry *h) ++ bfd *input_bfd, asection *input_section, ++ bfd_byte *contents, Elf_Internal_Rela *rel, ++ struct elf_link_hash_entry *h) + { + bfd_boolean is_local = h == NULL; + unsigned int r_type = ELFNN_R_TYPE (rel->r_info); +@@ -5971,6 +6030,9 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals, + + Where R is x for LP64, and w for ILP32. */ + bfd_putl32 (movz_R0, contents + rel->r_offset); ++ /* We have relaxed the adrp into a mov, we may have to clear any ++ pending erratum fixes. */ ++ clear_erratum_843419_entry (globals, rel->r_offset, input_section); + return bfd_reloc_continue; + } + else +@@ -6261,6 +6323,9 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals, + { + insn = bfd_getl32 (contents + rel->r_offset); + bfd_putl32 (movz_R0 | (insn & 0x1f), contents + rel->r_offset); ++ /* We have relaxed the adrp into a mov, we may have to clear any ++ pending erratum fixes. */ ++ clear_erratum_843419_entry (globals, rel->r_offset, input_section); + } + return bfd_reloc_continue; + +@@ -6485,7 +6550,8 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, + howto = elfNN_aarch64_howto_from_bfd_reloc (bfd_r_type); + BFD_ASSERT (howto != NULL); + r_type = howto->type; +- r = elfNN_aarch64_tls_relax (globals, input_bfd, contents, rel, h); ++ r = elfNN_aarch64_tls_relax (globals, input_bfd, input_section, ++ contents, rel, h); + unresolved_reloc = 0; + } + else +@@ -8076,6 +8142,8 @@ aarch64_map_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) + if (!elfNN_aarch64_output_map_sym (osi, AARCH64_MAP_INSN, addr)) + return FALSE; + break; ++ case aarch64_stub_none: ++ break; + + default: + abort (); +diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c +index a2497aab86..2d8f7b640b 100644 +--- a/bfd/elfxx-x86.c ++++ b/bfd/elfxx-x86.c +@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info, + switch (pr_type) + { + case GNU_PROPERTY_X86_ISA_1_USED: ++ if (aprop == NULL || bprop == NULL) ++ { ++ /* Only one of APROP and BPROP can be NULL. */ ++ if (aprop != NULL) ++ { ++ /* Remove this property since the other input file doesn't ++ have it. */ ++ aprop->pr_kind = property_remove; ++ updated = TRUE; ++ } ++ break; ++ } ++ goto or_property; ++ + case GNU_PROPERTY_X86_ISA_1_NEEDED: + if (aprop != NULL && bprop != NULL) + { ++or_property: + number = aprop->u.number; + aprop->u.number = number | bprop->u.number; +- /* Remove the property if ISA bits are empty. */ ++ /* Remove the property if all bits are empty. */ + if (aprop->u.number == 0) + { + aprop->pr_kind = property_remove; +@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info, + { + if (aprop->u.number == 0) + { +- /* Remove APROP if ISA bits are empty. */ ++ /* Remove APROP if all bits are empty. */ + aprop->pr_kind = property_remove; + updated = TRUE; + } + } + else + { +- /* Return TRUE if APROP is NULL and ISA bits of BPROP ++ /* Return TRUE if APROP is NULL and all bits of BPROP + aren't empty to indicate that BPROP should be added + to ABFD. */ + updated = bprop->u.number != 0; +@@ -2524,6 +2539,7 @@ _bfd_x86_elf_link_setup_gnu_properties + const struct elf_backend_data *bed; + unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2; + unsigned int got_align; ++ bfd_boolean has_text = FALSE; + + features = 0; + if (info->ibt) +@@ -2538,24 +2554,75 @@ _bfd_x86_elf_link_setup_gnu_properties + if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour + && bfd_count_sections (pbfd) != 0) + { ++ if (!has_text) ++ { ++ /* Check if there is no non-empty text section. */ ++ sec = bfd_get_section_by_name (pbfd, ".text"); ++ if (sec != NULL && sec->size != 0) ++ has_text = TRUE; ++ } ++ + ebfd = pbfd; + + if (elf_properties (pbfd) != NULL) + break; + } + +- if (ebfd != NULL && features) ++ bed = get_elf_backend_data (info->output_bfd); ++ ++ htab = elf_x86_hash_table (info, bed->target_id); ++ if (htab == NULL) ++ return pbfd; ++ ++ if (ebfd != NULL) + { +- /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and +- GNU_PROPERTY_X86_FEATURE_1_SHSTK. */ +- prop = _bfd_elf_get_property (ebfd, +- GNU_PROPERTY_X86_FEATURE_1_AND, +- 4); +- prop->u.number |= features; +- prop->pr_kind = property_number; ++ prop = NULL; ++ if (features) ++ { ++ /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and ++ GNU_PROPERTY_X86_FEATURE_1_SHSTK. */ ++ prop = _bfd_elf_get_property (ebfd, ++ GNU_PROPERTY_X86_FEATURE_1_AND, ++ 4); ++ prop->u.number |= features; ++ prop->pr_kind = property_number; ++ } ++ else if (has_text ++ && elf_tdata (info->output_bfd)->o->build_id.sec == NULL ++ && !htab->elf.dynamic_sections_created ++ && !info->traditional_format ++ && (info->output_bfd->flags & D_PAGED) != 0 ++ && info->separate_code) ++ { ++ /* If the separate code program header is needed, make sure ++ that the first read-only PT_LOAD segment has no code by ++ adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */ ++ elf_property_list *list; ++ bfd_boolean need_property = TRUE; ++ ++ for (list = elf_properties (ebfd); list; list = list->next) ++ switch (list->property.pr_type) ++ { ++ case GNU_PROPERTY_STACK_SIZE: ++ case GNU_PROPERTY_NO_COPY_ON_PROTECTED: ++ case GNU_PROPERTY_X86_ISA_1_NEEDED: ++ /* These properties won't be removed during merging. */ ++ need_property = FALSE; ++ break; ++ } ++ ++ if (need_property) ++ { ++ prop = _bfd_elf_get_property (ebfd, ++ GNU_PROPERTY_X86_ISA_1_NEEDED, ++ 4); ++ prop->u.number = GNU_PROPERTY_X86_ISA_1_486; ++ prop->pr_kind = property_number; ++ } ++ } + + /* Create the GNU property note section if needed. */ +- if (pbfd == NULL) ++ if (prop != NULL && pbfd == NULL) + { + sec = bfd_make_section_with_flags (ebfd, + NOTE_GNU_PROPERTY_SECTION_NAME, +@@ -2581,12 +2648,6 @@ error_alignment: + + pbfd = _bfd_elf_link_setup_gnu_properties (info); + +- bed = get_elf_backend_data (info->output_bfd); +- +- htab = elf_x86_hash_table (info, bed->target_id); +- if (htab == NULL) +- return pbfd; +- + htab->r_info = init_table->r_info; + htab->r_sym = init_table->r_sym; + +diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h +index 6a5609467d..1f757fda0c 100644 +--- a/bfd/elfxx-x86.h ++++ b/bfd/elfxx-x86.h +@@ -162,6 +162,13 @@ + || (ELF_ST_VISIBILITY ((H)->other) \ + && (H)->root.type == bfd_link_hash_undefweak)) + ++/* TRUE if this symbol isn't defined by a shared object. */ ++#define SYMBOL_DEFINED_NON_SHARED_P(H) \ ++ ((H)->def_regular \ ++ || (H)->root.linker_def \ ++ || (H)->root.ldscript_def \ ++ || ELF_COMMON_DEF_P (H)) ++ + /* TRUE if relative relocation should be generated. GOT reference to + global symbol in PIC will lead to dynamic symbol. It becomes a + problem when "time" or "times" is defined as a variable in an +diff --git a/bfd/version.h b/bfd/version.h +index 222d2e62c3..38bee253c8 100644 +--- a/bfd/version.h ++++ b/bfd/version.h +@@ -16,7 +16,7 @@ + + In releases, the date is not included in either version strings or + sonames. */ +-#define BFD_VERSION_DATE 20180718 ++#define BFD_VERSION_DATE 20190122 + #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/binutils/ChangeLog b/binutils/ChangeLog +index 32f47d5e07..2bb000a3c5 100644 +--- a/binutils/ChangeLog ++++ b/binutils/ChangeLog +@@ -1,3 +1,21 @@ ++2019-02-18 Nick Clifton ++ ++ Import from the mainline: ++ 2018-11-27 Mark Wielaard ++ ++ PR binutils/23919 ++ * readelf.c (dump_sections_as_strings): Remove bogus addralign check. ++ (dump_sections_as_bytes): Likewise. ++ (load_specific_debug_sections): Likewise. ++ * testsuite/binutils-all/dw2-3.rS: Adjust alignment. ++ * testsuite/binutils-all/dw2-3.rt: Likewise. ++ ++2018-09-12 H.J. Lu ++ ++ PR ld/23499 ++ * readelf.c (get_symbol_version_string): Return _("") ++ for corrupt symbol version info. ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. +diff --git a/binutils/readelf.c b/binutils/readelf.c +index 1b50ba7631..4b0efa884f 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -11252,6 +11252,7 @@ get_symbol_version_string (Filedata * filedata, + unsigned char data[2]; + unsigned short vers_data; + unsigned long offset; ++ unsigned short max_vd_ndx; + + if (!is_dynsym + || version_info[DT_VERSIONTAGIDX (DT_VERSYM)] == 0) +@@ -11269,6 +11270,8 @@ get_symbol_version_string (Filedata * filedata, + if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data == 0) + return NULL; + ++ max_vd_ndx = 0; ++ + /* Usually we'd only see verdef for defined symbols, and verneed for + undefined symbols. However, symbols defined by the linker in + .dynbss for variables copied from a shared library in order to +@@ -11311,6 +11314,9 @@ get_symbol_version_string (Filedata * filedata, + ivd.vd_flags = BYTE_GET (evd.vd_flags); + } + ++ if ((ivd.vd_ndx & VERSYM_VERSION) > max_vd_ndx) ++ max_vd_ndx = ivd.vd_ndx & VERSYM_VERSION; ++ + off += ivd.vd_next; + } + while (ivd.vd_ndx != (vers_data & VERSYM_VERSION) && ivd.vd_next != 0); +@@ -11402,6 +11408,9 @@ get_symbol_version_string (Filedata * filedata, + return (ivna.vna_name < strtab_size + ? strtab + ivna.vna_name : _("")); + } ++ else if ((max_vd_ndx || (vers_data & VERSYM_VERSION) != 1) ++ && (vers_data & VERSYM_VERSION) > max_vd_ndx) ++ return _(""); + } + return NULL; + } +@@ -13336,12 +13345,6 @@ dump_section_as_strings (Elf_Internal_Shdr * section, Filedata * filedata) + printable_section_name (filedata, section), chdr.ch_type); + return FALSE; + } +- else if (chdr.ch_addralign != section->sh_addralign) +- { +- warn (_("compressed section '%s' is corrupted\n"), +- printable_section_name (filedata, section)); +- return FALSE; +- } + uncompressed_size = chdr.ch_size; + start += compression_header_size; + new_size -= compression_header_size; +@@ -13483,12 +13486,6 @@ dump_section_as_bytes (Elf_Internal_Shdr * section, + printable_section_name (filedata, section), chdr.ch_type); + return FALSE; + } +- else if (chdr.ch_addralign != section->sh_addralign) +- { +- warn (_("compressed section '%s' is corrupted\n"), +- printable_section_name (filedata, section)); +- return FALSE; +- } + uncompressed_size = chdr.ch_size; + start += compression_header_size; + new_size -= compression_header_size; +@@ -13658,12 +13655,6 @@ load_specific_debug_section (enum dwarf_section_display_enum debug, + section->name, chdr.ch_type); + return FALSE; + } +- else if (chdr.ch_addralign != sec->sh_addralign) +- { +- warn (_("compressed section '%s' is corrupted\n"), +- section->name); +- return FALSE; +- } + uncompressed_size = chdr.ch_size; + start += compression_header_size; + size -= compression_header_size; +diff --git a/binutils/testsuite/binutils-all/dw2-3.rS b/binutils/testsuite/binutils-all/dw2-3.rS +index f1637e9149..86bc73d9a2 100644 +--- a/binutils/testsuite/binutils-all/dw2-3.rS ++++ b/binutils/testsuite/binutils-all/dw2-3.rS +@@ -1,3 +1,3 @@ + #... +- +\[[ 0-9]+\] .debug_info +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +C +0 +0 +1 ++ +\[[ 0-9]+\] .debug_info +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +C +0 +0 +(4|8) + #pass +diff --git a/binutils/testsuite/binutils-all/dw2-3.rt b/binutils/testsuite/binutils-all/dw2-3.rt +index f59cbaa22b..74e7f8deca 100644 +--- a/binutils/testsuite/binutils-all/dw2-3.rt ++++ b/binutils/testsuite/binutils-all/dw2-3.rt +@@ -1,6 +1,6 @@ + #... + +\[[ 0-9]+\] .debug_info +- +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ +[0-9a-f]+ +0 +0 +1 ++ +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ +[0-9a-f]+ +0 +0 +(4|8) + +\[0+800\]: COMPRESSED + +ZLIB, 0+9d, 1 + #pass +diff --git a/gas/ChangeLog b/gas/ChangeLog +index bb4541900d..97d370dad3 100644 +--- a/gas/ChangeLog ++++ b/gas/ChangeLog +@@ -1,3 +1,112 @@ ++2019-02-10 H.J. Lu ++ ++ PR gas/24165 ++ * config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Set to ++ (alignment ? ((1 << alignment) - 1) : 1) ++ (i386_tc_frag_data): Add max_bytes. ++ (TC_FRAG_INIT): Track max_chars in max_bytes. ++ (HANDLE_ALIGN): Replace MAX_MEM_FOR_RS_ALIGN_CODE with ++ fragP->tc_frag_data.max_bytes. ++ ++2019-02-07 Eric Botcazou ++ ++ * config/tc-visium.c (md_assemble) : Align instruction on ++ 64-bit boundaries for the GR6. ++ * testsuite/gas/visium/allinsn_gr6.s: Tweak. ++ * testsuite/gas/visium/allinsn_gr6.d: Likewise. ++ * testsuite/gas/visium/bra-1.d: New test. ++ * testsuite/gas/visium/bra-1.s: Likewise. ++ * testsuite/gas/visium/visium.exp: Run bra-1 test. ++ ++2018-12-09 H.J. Lu ++ ++ PR gas/23968 ++ * config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Put back ++ BFD_RELOC_X86_64_GOTPCREL. ++ * testsuite/gas/i386/i386.exp: Run x86-64-gotpcrel-2. ++ * testsuite/gas/i386/x86-64-gotpcrel-2.d: New file. ++ * testsuite/gas/i386/x86-64-gotpcrel-2.s: Likewise. ++ * testsuite/gas/i386/ilp32/x86-64-gotpcrel-2.d: Likewise. ++ ++2018-11-05 H.J. Lu ++ ++ PR gas/23854 ++ * config/tc-i386.c (output_disp): Disable GOT relaxation with ++ data prefix. ++ * testsuite/gas/i386/mixed-mode-reloc32.d: Updated. ++ ++2018-10-19 Tamar Christina ++ ++ * testsuite/gas/arm/undefined-insn-arm.d: Widen pe skip. ++ * testsuite/gas/arm/undefined-insn-thumb.d: Likewise. ++ ++2018-10-19 Tamar Christina ++ ++ * testsuite/gas/arm/undefined-insn-arm.d: New test. ++ * testsuite/gas/arm/undefined-insn-thumb.d: New test. ++ * testsuite/gas/arm/undefined-insn.s: New test. ++ ++2018-10-16 Matthew Malcomson ++ ++ * testsuite/gas/aarch64/illegal-dotproduct.d: New test. ++ * testsuite/gas/aarch64/illegal-dotproduct.l: New test. ++ * testsuite/gas/aarch64/illegal-dotproduct.s: New test. ++ ++2018-10-05 H.J. Lu ++ ++ * testsuite/gas/i386/se1.s: Add enclv. ++ * testsuite/gas/i386/x86-64-se1.s: Likewise. ++ * testsuite/gas/i386/se1.d: Updated. ++ * testsuite/gas/i386/x86-64-se1.d: Likewise. ++ ++2018-09-18 Tamar Christina ++ ++ * config/tc-aarch64.c (output_operand_error_report): Apply filtering to ++ current instead of head message. ++ ++2018-09-17 Nick Clifton ++ ++ backport from mainline: ++ * 2018-08-14 Robert Yang ++ ++ * as.c (main): Improve check for input file matching output file. ++ ++2018-08-10 H.J. Lu ++ ++ * testsuite/gas/i386/evex-no-scale.s: Removed. ++ * testsuite/gas/i386/evex-no-scale-32.d: Don't use ++ evex-no-scale.s. ++ * testsuite/gas/i386/evex-no-scale-64.d: Likewise. ++ * testsuite/gas/i386/evex-no-scale-32.s: New file. ++ * testsuite/gas/i386/evex-no-scale-64.s: Likewise. ++ ++2018-08-10 H.J. Lu ++ ++ * testsuite/gas/i386/i386.exp: Run evex-no-scale-32 and ++ evex-no-scale-64 only for ELF targets. ++ ++2018-07-31 Jan Beulich ++ ++ PR gas/23465 ++ * config/tc-i386.c (output_disp): Restrict scaling. ++ * testsuite/gas/i386/evex-no-scale.s, ++ testsuite/gas/i386/evex-no-scale-32.d ++ testsuite/gas/i386/evex-no-scale-64.d: New. ++ * testsuite/gas/i386/i386.exp: Run new tests. ++ ++2018-07-30 John David Anglin ++ ++ * config/tc-hppa.c: Include "struc-symbol.h". ++ (pa_build_unwind_subspace): Use call_info->start_symbol->sy_frag ++ instead of frag_now for local symbol replacement. ++ ++2018-07-18 H.J. Lu ++ ++ PR gas/23418 ++ * testsuite/gas/i386/xmmword.s: Add tests for vcvtps2qq, ++ vcvtps2uqq, vcvttps2qq and vcvttps2uqq. ++ * testsuite/gas/i386/xmmword.l: Updated. ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. +diff --git a/gas/as.c b/gas/as.c +index 02c7d2970b..919c24a24a 100644 +--- a/gas/as.c ++++ b/gas/as.c +@@ -1254,14 +1254,27 @@ main (int argc, char ** argv) + { + struct stat sib; + +- if (stat (argv[i], &sib) == 0) ++ /* Check that the input file and output file are different. */ ++ if (stat (argv[i], &sib) == 0 ++ && sib.st_ino == sob.st_ino ++ /* POSIX emulating systems may support stat() but if the ++ underlying file system does not support a file serial number ++ of some kind then they will return 0 for the inode. So ++ two files with an inode of 0 may not actually be the same. ++ On real POSIX systems no ordinary file will ever have an ++ inode of 0. */ ++ && sib.st_ino != 0 ++ /* Different files may have the same inode number if they ++ reside on different devices, so check the st_dev field as ++ well. */ ++ && sib.st_dev == sob.st_dev) + { +- if (sib.st_ino == sob.st_ino && sib.st_ino != 0) +- { +- /* Don't let as_fatal remove the output file! */ +- out_file_name = NULL; +- as_fatal (_("The input and output files must be distinct")); +- } ++ const char *saved_out_file_name = out_file_name; ++ ++ /* Don't let as_fatal remove the output file! */ ++ out_file_name = NULL; ++ as_fatal (_("The input '%s' and output '%s' files are the same"), ++ argv[i], saved_out_file_name); + } + } + } +diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c +index 31985963e3..c77de21d19 100644 +--- a/gas/config/tc-aarch64.c ++++ b/gas/config/tc-aarch64.c +@@ -4809,7 +4809,7 @@ output_operand_error_report (char *str, bfd_boolean non_fatal_only) + /* If we don't want to print non-fatal errors then don't consider them + at all. */ + if (curr->detail.kind != kind +- || (non_fatal_only && !head->detail.non_fatal)) ++ || (non_fatal_only && !curr->detail.non_fatal)) + continue; + /* If there are multiple errors, pick up the one with the highest + mismatching operand index. In the case of multiple errors with +diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c +index e69fdb2b39..ccae68cb40 100644 +--- a/gas/config/tc-hppa.c ++++ b/gas/config/tc-hppa.c +@@ -23,6 +23,7 @@ + + #include "as.h" + #include "safe-ctype.h" ++#include "struc-symbol.h" + #include "subsegs.h" + #include "dw2gencfi.h" + +@@ -5989,7 +5990,8 @@ pa_build_unwind_subspace (struct call_info *call_info) + else + { + symbolP = symbol_new (name, now_seg, +- S_GET_VALUE (call_info->start_symbol), frag_now); ++ S_GET_VALUE (call_info->start_symbol), ++ call_info->start_symbol->sy_frag); + gas_assert (symbolP); + S_CLEAR_EXTERNAL (symbolP); + symbol_table_insert (symbolP); +diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c +index 2d20f1cae9..a288a31844 100644 +--- a/gas/config/tc-i386.c ++++ b/gas/config/tc-i386.c +@@ -7857,7 +7857,8 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off) + int size = disp_size (n); + offsetT val = i.op[n].disps->X_add_number; + +- val = offset_in_range (val >> i.memshift, size); ++ val = offset_in_range (val >> (size == 1 ? i.memshift : 0), ++ size); + p = frag_more (size); + md_number_to_chars (p, val, size); + } +@@ -7942,12 +7943,13 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off) + /* Check for "call/jmp *mem", "mov mem, %reg", + "test %reg, mem" and "binop mem, %reg" where binop + is one of adc, add, and, cmp, or, sbb, sub, xor +- instructions. Always generate R_386_GOT32X for +- "sym*GOT" operand in 32-bit mode. */ +- if ((generate_relax_relocations +- || (!object_64bit +- && i.rm.mode == 0 +- && i.rm.regmem == 5)) ++ instructions without data prefix. Always generate ++ R_386_GOT32X for "sym*GOT" operand in 32-bit mode. */ ++ if (i.prefix[DATA_PREFIX] == 0 ++ && (generate_relax_relocations ++ || (!object_64bit ++ && i.rm.mode == 0 ++ && i.rm.regmem == 5)) + && (i.rm.mode == 2 + || (i.rm.mode == 0 && i.rm.regmem == 5)) + && ((i.operands == 1 +diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h +index 833047980b..46a0381777 100644 +--- a/gas/config/tc-i386.h ++++ b/gas/config/tc-i386.h +@@ -174,6 +174,7 @@ extern int tc_i386_fix_adjustable (struct fix *); + (GENERIC_FORCE_RELOCATION_LOCAL (FIX) \ + || (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \ + || (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \ ++ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL \ + || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX \ + || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX) + +@@ -205,7 +206,7 @@ if ((n) \ + goto around; \ + } + +-#define MAX_MEM_FOR_RS_ALIGN_CODE 4095 ++#define MAX_MEM_FOR_RS_ALIGN_CODE (alignment ? ((1 << alignment) - 1) : 1) + + void i386_print_statistics (FILE *); + #define tc_print_statistics i386_print_statistics +@@ -250,6 +251,7 @@ struct i386_tc_frag_data + enum processor_type isa; + i386_cpu_flags isa_flags; + enum processor_type tune; ++ unsigned int max_bytes; + }; + + /* We need to emit the right NOP pattern in .align frags. This is +@@ -257,12 +259,14 @@ struct i386_tc_frag_data + the isa/tune settings at the time the .align was assembled. */ + #define TC_FRAG_TYPE struct i386_tc_frag_data + ++/* NB: max_chars is a local variable in frag_var_init. */ + #define TC_FRAG_INIT(FRAGP) \ + do \ + { \ + (FRAGP)->tc_frag_data.isa = cpu_arch_isa; \ + (FRAGP)->tc_frag_data.isa_flags = cpu_arch_isa_flags; \ + (FRAGP)->tc_frag_data.tune = cpu_arch_tune; \ ++ (FRAGP)->tc_frag_data.max_bytes = max_chars; \ + } \ + while (0) + +@@ -279,7 +283,8 @@ if (fragP->fr_type == rs_align_code) \ + offsetT __count = (fragP->fr_next->fr_address \ + - fragP->fr_address \ + - fragP->fr_fix); \ +- if (__count > 0 && __count <= MAX_MEM_FOR_RS_ALIGN_CODE) \ ++ if (__count > 0 \ ++ && (unsigned int) __count <= fragP->tc_frag_data.max_bytes) \ + md_generate_nops (fragP, fragP->fr_literal + fragP->fr_fix, \ + __count, 0); \ + } +diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c +index 0bcb6e3af4..409ea99aaf 100644 +--- a/gas/config/tc-visium.c ++++ b/gas/config/tc-visium.c +@@ -1368,6 +1368,10 @@ md_assemble (char *str0) + if (previous_mode == mode_cad || previous_mode == mode_ci) + as_bad ("branch instruction in delay slot"); + ++ /* For the GR6, BRA insns must be aligned on 64-bit boundaries. */ ++ if (visium_arch == VISIUM_ARCH_GR6) ++ do_align (3, NULL, 0, 0); ++ + this_dest = r3; + condition_code = cc; + break; +diff --git a/gas/testsuite/gas/aarch64/illegal-dotproduct.d b/gas/testsuite/gas/aarch64/illegal-dotproduct.d +new file mode 100644 +index 0000000000..8d8b1b8506 +--- /dev/null ++++ b/gas/testsuite/gas/aarch64/illegal-dotproduct.d +@@ -0,0 +1,4 @@ ++#as: -march=armv8.2-a+dotprod ++#name: Invalid dotproduct instructions. ++#source: illegal-dotproduct.s ++#error-output: illegal-dotproduct.l +diff --git a/gas/testsuite/gas/aarch64/illegal-dotproduct.l b/gas/testsuite/gas/aarch64/illegal-dotproduct.l +new file mode 100644 +index 0000000000..06d0d78b8d +--- /dev/null ++++ b/gas/testsuite/gas/aarch64/illegal-dotproduct.l +@@ -0,0 +1,13 @@ ++[^:]+: Assembler messages: ++[^:]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `udot V0.2S,V0.8B,V0.4B\[4\]' ++[^:]+:[0-9]+: Error: operand mismatch -- `udot V0.4S,V0.8B,V0.4B\[4\]' ++[^:]+:[0-9]+: Info: did you mean this\? ++[^:]+:[0-9]+: Info: udot v0.2s, v0.8b, v0.4b\[4\] ++[^:]+:[0-9]+: Info: other valid variant\(s\): ++[^:]+:[0-9]+: Info: udot v0.4s, v0.16b, v0.4b\[4\] ++[^:]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `sdot V0.2S,V0.8B,V0.4B\[4\]' ++[^:]+:[0-9]+: Error: operand mismatch -- `sdot V0.2S,V0.8B,V0.4H\[4\]' ++[^:]+:[0-9]+: Info: did you mean this\? ++[^:]+:[0-9]+: Info: sdot v0.2s, v0.8b, v0.4b\[4\] ++[^:]+:[0-9]+: Info: other valid variant\(s\): ++[^:]+:[0-9]+: Info: sdot v0.4s, v0.16b, v0.4b\[4\] +diff --git a/gas/testsuite/gas/aarch64/illegal-dotproduct.s b/gas/testsuite/gas/aarch64/illegal-dotproduct.s +new file mode 100644 +index 0000000000..9c714ae54d +--- /dev/null ++++ b/gas/testsuite/gas/aarch64/illegal-dotproduct.s +@@ -0,0 +1,4 @@ ++UDOT V0.2S, V0.8B, V0.4B[4] ++UDOT V0.4S, V0.8B, V0.4B[4] ++SDOT V0.2S, V0.8B, V0.4B[4] ++SDOT V0.2S, V0.8B, V0.4H[4] +diff --git a/gas/testsuite/gas/arm/undefined-insn-arm.d b/gas/testsuite/gas/arm/undefined-insn-arm.d +new file mode 100644 +index 0000000000..175e778b50 +--- /dev/null ++++ b/gas/testsuite/gas/arm/undefined-insn-arm.d +@@ -0,0 +1,5 @@ ++#name: Undefined binary printing in arm mode ++#skip: *-*-pe *-*-vxworks ++#source: undefined-insn.s ++#objdump: -D -b binary -m armv5te ++#... +diff --git a/gas/testsuite/gas/arm/undefined-insn-thumb.d b/gas/testsuite/gas/arm/undefined-insn-thumb.d +new file mode 100644 +index 0000000000..a5b4159f1e +--- /dev/null ++++ b/gas/testsuite/gas/arm/undefined-insn-thumb.d +@@ -0,0 +1,5 @@ ++#name: Undefined binary printing in thumb mode ++#skip: *-*-pe *-*-vxworks ++#source: undefined-insn.s ++#objdump: -D -b binary -m armv5te -M force-thumb ++#... +diff --git a/gas/testsuite/gas/arm/undefined-insn.s b/gas/testsuite/gas/arm/undefined-insn.s +new file mode 100644 +index 0000000000..cf59a03d1d +--- /dev/null ++++ b/gas/testsuite/gas/arm/undefined-insn.s +@@ -0,0 +1 @@ ++ .inst 0xffffffff +diff --git a/gas/testsuite/gas/i386/evex-no-scale-32.d b/gas/testsuite/gas/i386/evex-no-scale-32.d +new file mode 100644 +index 0000000000..0a2860d32e +--- /dev/null ++++ b/gas/testsuite/gas/i386/evex-no-scale-32.d +@@ -0,0 +1,12 @@ ++#objdump: -dw ++#name: ix86 EVEX no disp scaling ++ ++.*: +file format .* ++ ++Disassembly of section .text: ++ ++0+ : ++ +[a-f0-9]+: 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%eax,1\),%zmm0 ++ +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40\(,%eiz,1\),%zmm0 ++ +[a-f0-9]+: 62 f1 7c 48 28 05 40 00 00 00 vmovaps 0x40,%zmm0 ++ +[a-f0-9]+: 67 62 f1 7c 48 28 06 40 00 vmovaps 0x40,%zmm0 +diff --git a/gas/testsuite/gas/i386/evex-no-scale-32.s b/gas/testsuite/gas/i386/evex-no-scale-32.s +new file mode 100644 +index 0000000000..e28c73f2a3 +--- /dev/null ++++ b/gas/testsuite/gas/i386/evex-no-scale-32.s +@@ -0,0 +1,7 @@ ++ .allow_index_reg ++ .text ++disp: ++ vmovaps 64(,%eax), %zmm0 ++ vmovaps 64(,%eiz), %zmm0 ++ vmovaps 64, %zmm0 ++ addr16 vmovaps 64, %zmm0 +diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.d b/gas/testsuite/gas/i386/evex-no-scale-64.d +new file mode 100644 +index 0000000000..d52d947ab3 +--- /dev/null ++++ b/gas/testsuite/gas/i386/evex-no-scale-64.d +@@ -0,0 +1,14 @@ ++#objdump: -dw ++#name: x86-64 EVEX no disp scaling ++ ++.*: +file format .* ++ ++Disassembly of section .text: ++ ++0+ : ++ +[a-f0-9]+: 62 f1 7c 48 28 05 00 fc ff ff vmovaps -0x400\(%rip\),%zmm0 # .* ++ +[a-f0-9]+: 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%rax,1\),%zmm0 ++ +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0 ++ +[a-f0-9]+: 67 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%eax,1\),%zmm0 ++ +[a-f0-9]+: 67 62 f1 7c 48 28 04 25 40 00 00 00 addr32 vmovaps 0x40,%zmm0 ++ +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0 +diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.s b/gas/testsuite/gas/i386/evex-no-scale-64.s +new file mode 100644 +index 0000000000..bc3749cc0c +--- /dev/null ++++ b/gas/testsuite/gas/i386/evex-no-scale-64.s +@@ -0,0 +1,9 @@ ++ .allow_index_reg ++ .text ++disp: ++ vmovaps -1024(%rip), %zmm0 ++ vmovaps 64(,%rax), %zmm0 ++ vmovaps 64(,%riz), %zmm0 ++ vmovaps 64(,%eax), %zmm0 ++ vmovaps 64(,%eiz), %zmm0 ++ vmovaps 64, %zmm0 +diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp +index 9cc927a962..952902cbb6 100644 +--- a/gas/testsuite/gas/i386/i386.exp ++++ b/gas/testsuite/gas/i386/i386.exp +@@ -525,6 +525,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] + run_dump_test "nop-5" + run_dump_test "nop-6" + ++ run_dump_test "evex-no-scale-32" ++ + if { [gas_64_check] } then { + run_dump_test "att-regs" + run_dump_test "intel-regs" +@@ -1011,12 +1013,15 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t + + run_dump_test "x86-64-gotpcrel" + run_dump_test "x86-64-gotpcrel-no-relax" ++ run_dump_test "x86-64-gotpcrel-2" + + run_dump_test "x86-64-addend" + run_dump_test "x86-64-nop-3" + run_dump_test "x86-64-nop-4" + run_dump_test "x86-64-nop-5" + run_dump_test "x86-64-nop-6" ++ ++ run_dump_test "evex-no-scale-64" + } + + set ASFLAGS "$old_ASFLAGS" +diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-gotpcrel-2.d b/gas/testsuite/gas/i386/ilp32/x86-64-gotpcrel-2.d +new file mode 100644 +index 0000000000..41b9ac2cc3 +--- /dev/null ++++ b/gas/testsuite/gas/i386/ilp32/x86-64-gotpcrel-2.d +@@ -0,0 +1,13 @@ ++#source: ../x86-64-gotpcrel-2.s ++#as: --x32 -mrelax-relocations=no ++#objdump: -dwr ++#name: x86-64 (ILP32) gotpcrel (2) ++ ++.*: +file format .* ++ ++ ++Disassembly of section .text: ++ ++0+ : ++ +[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax # 7 3: R_X86_64_GOTPCREL foo-0x4 ++#pass +diff --git a/gas/testsuite/gas/i386/mixed-mode-reloc32.d b/gas/testsuite/gas/i386/mixed-mode-reloc32.d +index a2ef6a0b85..59234bc9be 100644 +--- a/gas/testsuite/gas/i386/mixed-mode-reloc32.d ++++ b/gas/testsuite/gas/i386/mixed-mode-reloc32.d +@@ -7,7 +7,7 @@ + + RELOCATION RECORDS FOR \[.text\]: + OFFSET[ ]+TYPE[ ]+VALUE[ ]* +-[0-9a-f]+[ ]+R_386_GOT32X[ ]+xtrn[ ]* ++[0-9a-f]+[ ]+R_386_GOT32[ ]+xtrn[ ]* + [0-9a-f]+[ ]+R_386_PLT32[ ]+xtrn[ ]* + [0-9a-f]+[ ]+R_386_GOT32X[ ]+xtrn[ ]* + [0-9a-f]+[ ]+R_386_PLT32[ ]+xtrn[ ]* +diff --git a/gas/testsuite/gas/i386/se1.d b/gas/testsuite/gas/i386/se1.d +index ff2685c781..d7800ab885 100644 +--- a/gas/testsuite/gas/i386/se1.d ++++ b/gas/testsuite/gas/i386/se1.d +@@ -10,4 +10,5 @@ Disassembly of section .text: + 0+ <_start>: + [ ]*[a-f0-9]+: 0f 01 cf encls + [ ]*[a-f0-9]+: 0f 01 d7 enclu ++[ ]*[a-f0-9]+: 0f 01 c0 enclv + #pass +diff --git a/gas/testsuite/gas/i386/se1.s b/gas/testsuite/gas/i386/se1.s +index 1b57ac87fe..92d57952c0 100644 +--- a/gas/testsuite/gas/i386/se1.s ++++ b/gas/testsuite/gas/i386/se1.s +@@ -5,3 +5,4 @@ _start: + + encls + enclu ++ enclv +diff --git a/gas/testsuite/gas/i386/x86-64-gotpcrel-2.d b/gas/testsuite/gas/i386/x86-64-gotpcrel-2.d +new file mode 100644 +index 0000000000..3d07631bd6 +--- /dev/null ++++ b/gas/testsuite/gas/i386/x86-64-gotpcrel-2.d +@@ -0,0 +1,11 @@ ++#as: -mrelax-relocations=no ++#objdump: -dwr ++ ++.*: +file format .* ++ ++ ++Disassembly of section .text: ++ ++0+ : ++ +[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax # 7 3: R_X86_64_GOTPCREL foo-0x4 ++#pass +diff --git a/gas/testsuite/gas/i386/x86-64-gotpcrel-2.s b/gas/testsuite/gas/i386/x86-64-gotpcrel-2.s +new file mode 100644 +index 0000000000..db5ddf579a +--- /dev/null ++++ b/gas/testsuite/gas/i386/x86-64-gotpcrel-2.s +@@ -0,0 +1,3 @@ ++ .text ++foo: ++ movq foo@GOTPCREL(%rip), %rax +diff --git a/gas/testsuite/gas/i386/x86-64-se1.d b/gas/testsuite/gas/i386/x86-64-se1.d +index 29494f0090..a515219406 100644 +--- a/gas/testsuite/gas/i386/x86-64-se1.d ++++ b/gas/testsuite/gas/i386/x86-64-se1.d +@@ -10,4 +10,5 @@ Disassembly of section .text: + 0+ <_start>: + [ ]*[a-f0-9]+: 0f 01 cf encls + [ ]*[a-f0-9]+: 0f 01 d7 enclu ++[ ]*[a-f0-9]+: 0f 01 c0 enclv + #pass +diff --git a/gas/testsuite/gas/i386/x86-64-se1.s b/gas/testsuite/gas/i386/x86-64-se1.s +index 1b57ac87fe..92d57952c0 100644 +--- a/gas/testsuite/gas/i386/x86-64-se1.s ++++ b/gas/testsuite/gas/i386/x86-64-se1.s +@@ -5,3 +5,4 @@ _start: + + encls + enclu ++ enclv +diff --git a/gas/testsuite/gas/i386/xmmword.l b/gas/testsuite/gas/i386/xmmword.l +index ce3af8d150..7d25cb3de2 100644 +--- a/gas/testsuite/gas/i386/xmmword.l ++++ b/gas/testsuite/gas/i386/xmmword.l +@@ -99,3 +99,7 @@ + .*:127: Error: .* `vpmovzxwq' + .*:128: Error: .* `vpmovzxwq' + .*:129: Error: .* `vpmovzxwq' ++.*:131: Error: .* `vcvtps2qq' ++.*:132: Error: .* `vcvtps2uqq' ++.*:133: Error: .* `vcvttps2qq' ++.*:134: Error: .* `vcvttps2uqq' +diff --git a/gas/testsuite/gas/i386/xmmword.s b/gas/testsuite/gas/i386/xmmword.s +index 47d2d8d595..ffe7aca3cb 100644 +--- a/gas/testsuite/gas/i386/xmmword.s ++++ b/gas/testsuite/gas/i386/xmmword.s +@@ -127,3 +127,8 @@ xmmword: + vpmovzxwq xmm0{k7}, xmmword ptr [eax] + vpmovzxwq ymm0, xmmword ptr [eax] + vpmovzxwq ymm0{k7}, xmmword ptr [eax] ++ ++ vcvtps2qq xmm0, xmmword ptr [rax] ++ vcvtps2uqq xmm0, xmmword ptr [rax] ++ vcvttps2qq xmm0, xmmword ptr [rax] ++ vcvttps2uqq xmm0, xmmword ptr [rax] +diff --git a/gas/testsuite/gas/visium/allinsn_gr6.d b/gas/testsuite/gas/visium/allinsn_gr6.d +index bb198eca8e..c7f627bb34 100644 +--- a/gas/testsuite/gas/visium/allinsn_gr6.d ++++ b/gas/testsuite/gas/visium/allinsn_gr6.d +@@ -86,10 +86,10 @@ Disassembly of section .text: + 120: 06 a5 1a 02 asr.w r6,r5,0 + 124: 86 a5 1a 12 asr.w r6,r5,1 + 128: 86 a7 23 f1 asr.b r8,r7,31 +- 12c: 0f 89 28 04 bra eq,r9,r10 +- 130: 07 a0 00 04 rflag r0 +- 134: af 87 04 04 bra ne,r7,r1 +- 138: 07 e0 ae 04 readmda r11 ++ 12c: 07 a0 00 04 rflag r0 ++ 130: 0f 89 28 04 bra eq,r9,r10 ++ 134: 07 e0 ae 04 readmda r11 ++ 138: af 87 04 04 bra ne,r7,r1 + 13c: 07 e0 b3 f4 eamread r12,31 + 140: 87 cd 30 04 extb.l r12,r13 + 144: 87 cf 38 02 extb.w r14,r15 +@@ -130,8 +130,8 @@ Disassembly of section .text: + 1d0: 84 a7 7f ff moviu r7,0x7FFF + 1d4: 04 c6 00 01 moviq r6,1 + 1d8: 84 47 ff ff subi r7,65535 +- 1dc: ff 86 00 04 bra tr,r6,r0 +- 1e0: 86 00 00 04 add.l r0,r0,r0 ++ 1dc: 86 00 00 04 add.l r0,r0,r0 ++ 1e0: ff 86 00 04 bra tr,r6,r0 + 1e4: d3 e3 84 5c fpinst 10,f1,f3,f5 + 1e8: db e4 88 6c fpinst 11,f2,f4,f6 + 1ec: 7b ed ac fc fpinst 15,f11,f13,f15 +diff --git a/gas/testsuite/gas/visium/allinsn_gr6.s b/gas/testsuite/gas/visium/allinsn_gr6.s +index 32953fbfb8..11006b836b 100644 +--- a/gas/testsuite/gas/visium/allinsn_gr6.s ++++ b/gas/testsuite/gas/visium/allinsn_gr6.s +@@ -93,11 +93,10 @@ sreg: + asr.w r6,r5,1 + asr.b r8,r7,31 + +- bra eq,r9,r10 + rflag r0 +- bra ne,r7,r1 +- ++ bra eq,r9,r10 + eamread r11,0 ++ bra ne,r7,r1 + eamread r12,31 + + extb.l r12,r13 +@@ -151,8 +150,8 @@ sreg: + moviq r6,1 + subi r7,65535 + +- bra tr,r6,r0 + add.l r0,r0,r0 ++ bra tr,r6,r0 + + + fpinst 10,f1,f3,f5 +diff --git a/gas/testsuite/gas/visium/bra-1.d b/gas/testsuite/gas/visium/bra-1.d +new file mode 100644 +index 0000000000..483b36bc8f +--- /dev/null ++++ b/gas/testsuite/gas/visium/bra-1.d +@@ -0,0 +1,12 @@ ++#as: -mtune=gr6 ++#objdump: -d ++#name: bra-1 ++ ++.*: +file format .* ++ ++Disassembly of section .text: ++ ++00000000 : ++ ... ++ 8: ff 95 54 04 bra tr,r21,r21 ++ c: 00 00 00 00 nop +diff --git a/gas/testsuite/gas/visium/bra-1.s b/gas/testsuite/gas/visium/bra-1.s +new file mode 100644 +index 0000000000..11544b887d +--- /dev/null ++++ b/gas/testsuite/gas/visium/bra-1.s +@@ -0,0 +1,5 @@ ++ .text ++foo: ++ nop ++ bra tr,r21,r21 ++ nop +diff --git a/gas/testsuite/gas/visium/visium.exp b/gas/testsuite/gas/visium/visium.exp +index 1451d5865c..659728462d 100644 +--- a/gas/testsuite/gas/visium/visium.exp ++++ b/gas/testsuite/gas/visium/visium.exp +@@ -24,6 +24,7 @@ if [istarget visium-*-*] { + run_dump_test "allinsn_def" + run_dump_test "allinsn_gr5" + run_dump_test "allinsn_gr6" ++ run_dump_test "bra-1" + run_dump_test "brr-1" + run_dump_test "brr-2" + run_dump_test "high-1" +diff --git a/gold/ChangeLog b/gold/ChangeLog +index 18af5e69b1..10ebc76325 100644 +--- a/gold/ChangeLog ++++ b/gold/ChangeLog +@@ -1,3 +1,34 @@ ++2019-02-18 Nick Clifton ++ ++ Import from the mainline: ++ 2018-12-02 H.J. Lu ++ ++ PR binutils/23919 ++ * merge.cc (Output_merge_string::do_add_input_section): ++ Get addralign from decompressed_section_contents. ++ * object.cc (build_compressed_section_map): Set info.addralign. ++ (Object::decompressed_section_contents): Add a palign ++ argument and store p->second.addralign in *palign if it isn't ++ NULL. ++ * object.h (Compressed_section_info): Add addralign. ++ (section_is_compressed): Add a palign argument, default it ++ to NULL, store p->second.addralign in *palign if it isn't NULL. ++ (Object::decompressed_section_contents): Likewise. ++ * output.cc (Output_section::add_input_section): Get addralign ++ from section_is_compressed. ++ ++2018-08-06 Cary Coutant ++ ++ PR gold/23455 ++ * options.h (General_options): Add --warn-drop-version option. ++ * symtab.cc (Symbol_table::set_dynsym_indexes): Check it. ++ ++2018-08-06 Cary Coutant ++ ++ * target.h (Sized_target::record_gnu_property): Change first two ++ parameters to unsigned int. ++ * x86_64.cc (Target_x86_64::record_gnu_property): Likewise. ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. +diff --git a/gold/merge.cc b/gold/merge.cc +index de00ee9ae9..d7de11789f 100644 +--- a/gold/merge.cc ++++ b/gold/merge.cc +@@ -440,9 +440,11 @@ Output_merge_string::do_add_input_section(Relobj* object, + { + section_size_type sec_len; + bool is_new; ++ uint64_t addralign = this->addralign(); + const unsigned char* pdata = object->decompressed_section_contents(shndx, + &sec_len, +- &is_new); ++ &is_new, ++ &addralign); + + const Char_type* p = reinterpret_cast(pdata); + const Char_type* pend = p + sec_len / sizeof(Char_type); +@@ -494,7 +496,7 @@ Output_merge_string::do_add_input_section(Relobj* object, + // aligned, so each string within the section must retain the same + // modulo. + uintptr_t init_align_modulo = (reinterpret_cast(pdata) +- & (this->addralign() - 1)); ++ & (addralign - 1)); + bool has_misaligned_strings = false; + + while (p < pend) +@@ -503,7 +505,7 @@ Output_merge_string::do_add_input_section(Relobj* object, + + // Within merge input section each string must be aligned. + if (len != 0 +- && ((reinterpret_cast(p) & (this->addralign() - 1)) ++ && ((reinterpret_cast(p) & (addralign - 1)) + != init_align_modulo)) + has_misaligned_strings = true; + +diff --git a/gold/object.cc b/gold/object.cc +index 374340fa16..711793e5e4 100644 +--- a/gold/object.cc ++++ b/gold/object.cc +@@ -751,11 +751,13 @@ build_compressed_section_map( + const unsigned char* contents = + obj->section_contents(i, &len, false); + uint64_t uncompressed_size; ++ Compressed_section_info info; + if (is_zcompressed) + { + // Skip over the ".zdebug" prefix. + name += 7; + uncompressed_size = get_uncompressed_size(contents, len); ++ info.addralign = shdr.get_sh_addralign(); + } + else + { +@@ -763,8 +765,8 @@ build_compressed_section_map( + name += 6; + elfcpp::Chdr chdr(contents); + uncompressed_size = chdr.get_ch_size(); ++ info.addralign = chdr.get_ch_addralign(); + } +- Compressed_section_info info; + info.size = convert_to_section_size_type(uncompressed_size); + info.flag = shdr.get_sh_flags(); + info.contents = NULL; +@@ -3060,7 +3062,8 @@ const unsigned char* + Object::decompressed_section_contents( + unsigned int shndx, + section_size_type* plen, +- bool* is_new) ++ bool* is_new, ++ uint64_t* palign) + { + section_size_type buffer_size; + const unsigned char* buffer = this->do_section_contents(shndx, &buffer_size, +@@ -3087,6 +3090,8 @@ Object::decompressed_section_contents( + { + *plen = uncompressed_size; + *is_new = false; ++ if (palign != NULL) ++ *palign = p->second.addralign; + return p->second.contents; + } + +@@ -3108,6 +3113,8 @@ Object::decompressed_section_contents( + // once in this pass. + *plen = uncompressed_size; + *is_new = true; ++ if (palign != NULL) ++ *palign = p->second.addralign; + return uncompressed_data; + } + +diff --git a/gold/object.h b/gold/object.h +index 0b786a5471..b99548463d 100644 +--- a/gold/object.h ++++ b/gold/object.h +@@ -373,6 +373,7 @@ struct Compressed_section_info + { + section_size_type size; + elfcpp::Elf_Xword flag; ++ uint64_t addralign; + const unsigned char* contents; + }; + typedef std::map Compressed_section_map; +@@ -808,7 +809,8 @@ class Object + + bool + section_is_compressed(unsigned int shndx, +- section_size_type* uncompressed_size) const ++ section_size_type* uncompressed_size, ++ elfcpp::Elf_Xword* palign = NULL) const + { + if (this->compressed_sections_ == NULL) + return false; +@@ -818,6 +820,8 @@ class Object + { + if (uncompressed_size != NULL) + *uncompressed_size = p->second.size; ++ if (palign != NULL) ++ *palign = p->second.addralign; + return true; + } + return false; +@@ -828,7 +832,7 @@ class Object + // by the caller. + const unsigned char* + decompressed_section_contents(unsigned int shndx, section_size_type* plen, +- bool* is_cached); ++ bool* is_cached, uint64_t* palign = NULL); + + // Discard any buffers of decompressed sections. This is done + // at the end of the Add_symbols task. +diff --git a/gold/options.h b/gold/options.h +index 98d6be8009..11054981c9 100644 +--- a/gold/options.h ++++ b/gold/options.h +@@ -1361,6 +1361,10 @@ class General_options + DEFINE_bool_ignore(warn_constructors, options::TWO_DASHES, '\0', + N_("Ignored"), N_("Ignored")); + ++ DEFINE_bool(warn_drop_version, options::TWO_DASHES, '\0', false, ++ N_("Warn when discarding version information"), ++ N_("Do not warn when discarding version information")); ++ + DEFINE_bool(warn_execstack, options::TWO_DASHES, '\0', false, + N_("Warn if the stack is executable"), + N_("Do not warn if the stack is executable")); +diff --git a/gold/output.cc b/gold/output.cc +index 1701db1c99..51836db80e 100644 +--- a/gold/output.cc ++++ b/gold/output.cc +@@ -2448,7 +2448,14 @@ Output_section::add_input_section(Layout* layout, + unsigned int reloc_shndx, + bool have_sections_script) + { ++ section_size_type input_section_size = shdr.get_sh_size(); ++ section_size_type uncompressed_size; + elfcpp::Elf_Xword addralign = shdr.get_sh_addralign(); ++ ++ if (object->section_is_compressed(shndx, &uncompressed_size, ++ &addralign)) ++ input_section_size = uncompressed_size; ++ + if ((addralign & (addralign - 1)) != 0) + { + object->error(_("invalid alignment %lu for section \"%s\""), +@@ -2498,11 +2505,6 @@ Output_section::add_input_section(Layout* layout, + } + } + +- section_size_type input_section_size = shdr.get_sh_size(); +- section_size_type uncompressed_size; +- if (object->section_is_compressed(shndx, &uncompressed_size)) +- input_section_size = uncompressed_size; +- + off_t offset_in_section; + + if (this->has_fixed_layout()) +diff --git a/gold/symtab.cc b/gold/symtab.cc +index aa7644156f..759e0d0222 100644 +--- a/gold/symtab.cc ++++ b/gold/symtab.cc +@@ -2623,11 +2623,12 @@ Symbol_table::set_dynsym_indexes(unsigned int index, + versions->record_version(this, dynpool, sym); + else + { +- gold_warning(_("discarding version information for " +- "%s@%s, defined in unused shared library %s " +- "(linked with --as-needed)"), +- sym->name(), sym->version(), +- sym->object()->name().c_str()); ++ if (parameters->options().warn_drop_version()) ++ gold_warning(_("discarding version information for " ++ "%s@%s, defined in unused shared library %s " ++ "(linked with --as-needed)"), ++ sym->name(), sym->version(), ++ sym->object()->name().c_str()); + sym->clear_version(); + } + } +diff --git a/gold/target.h b/gold/target.h +index bb312067b5..bbc87396f6 100644 +--- a/gold/target.h ++++ b/gold/target.h +@@ -1147,7 +1147,8 @@ class Sized_target : public Target + // Record a target-specific program property in the .note.gnu.property + // section. + virtual void +- record_gnu_property(int, int, size_t, const unsigned char*, const Object*) ++ record_gnu_property(unsigned int, unsigned int, size_t, ++ const unsigned char*, const Object*) + { } + + // Merge the target-specific program properties from the current object. +diff --git a/gold/x86_64.cc b/gold/x86_64.cc +index 27f273d64b..9d742f6f13 100644 +--- a/gold/x86_64.cc ++++ b/gold/x86_64.cc +@@ -1307,7 +1307,8 @@ class Target_x86_64 : public Sized_target + // Record a target-specific program property in the .note.gnu.property + // section. + void +- record_gnu_property(int, int, size_t, const unsigned char*, const Object*); ++ record_gnu_property(unsigned int, unsigned int, size_t, ++ const unsigned char*, const Object*); + + // Merge the target-specific program properties from the current object. + void +@@ -1579,7 +1580,7 @@ Target_x86_64::rela_irelative_section(Layout* layout) + template + void + Target_x86_64::record_gnu_property( +- int, int pr_type, ++ unsigned int, unsigned int pr_type, + size_t pr_datasz, const unsigned char* pr_data, + const Object* object) + { +diff --git a/include/ChangeLog b/include/ChangeLog +index 7decb4fd7b..e0b82bc338 100644 +--- a/include/ChangeLog ++++ b/include/ChangeLog +@@ -1,3 +1,9 @@ ++2018-11-15 Claudiu Zissulescu ++ ++ Backport from mainline ++ 2018-08-01 Cupertino Miranda ++ * arc-reloc.def (ARC_TLS_LE_32): Updated reloc formula. ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. +diff --git a/include/elf/arc-reloc.def b/include/elf/arc-reloc.def +index a6db724da9..61edd6e67a 100644 +--- a/include/elf/arc-reloc.def ++++ b/include/elf/arc-reloc.def +@@ -468,7 +468,7 @@ ARC_RELOC_HOWTO(ARC_TLS_DTPOFF, 67, \ + 32, \ + replace_word32, \ + dont, \ +- ( ME ( S - SECTSTART ) + A )) ++ ( ME ( S - FINAL_SECTSTART ) + A )) + + ARC_RELOC_HOWTO(ARC_TLS_DTPOFF_S9, 73, \ + 2, \ +@@ -489,7 +489,7 @@ ARC_RELOC_HOWTO(ARC_TLS_LE_32, 75, \ + 32, \ + replace_word32, \ + dont, \ +- ( ME ( ( ( ( S + A ) + TCB_SIZE ) - TLS_REL ) ) )) ++ ( ME ( ( ( ( S + A ) + TLS_TBSS ) - TLS_REL ) ) )) + + ARC_RELOC_HOWTO(ARC_S25W_PCREL_PLT, 76, \ + 2, \ +diff --git a/ld/ChangeLog b/ld/ChangeLog +index c07e442c84..00c0785ede 100644 +--- a/ld/ChangeLog ++++ b/ld/ChangeLog +@@ -1,3 +1,146 @@ ++2019-02-10 H.J. Lu ++ ++ PR ld/24151 ++ * testsuite/ld-x86-64/pr24151a-x32.d: New file. ++ * testsuite/ld-x86-64/pr24151a.d: Likewise. ++ * testsuite/ld-x86-64/pr24151a.s: Likewise. ++ * testsuite/ld-x86-64/x86-64.exp: Run pr24151a and pr24151a-x32. ++ ++2019-01-29 Eric Botcazou ++ ++ * testsuite/ld-ifunc/ifunc.exp: Skip pr23169 on SPARC. ++ ++2018-11-30 Alan Modra ++ ++ * testsuite/ld-powerpc/pr23937.d, ++ * testsuite/ld-powerpc/pr23937.s: New test. ++ * testsuite/ld-powerpc/powerpc.exp: Run it. ++ ++2018-11-27 Tamar Christina ++ ++ PR ld/23904 ++ * testsuite/ld-aarch64/aarch64-elf.exp: Add erratum843419_tls_ie. ++ * testsuite/ld-aarch64/erratum843419_tls_ie.d: New test. ++ * testsuite/ld-aarch64/erratum843419_tls_ie.s: New test. ++ ++2018-11-06 H.J. Lu ++ ++ PR gas/23854 ++ * testsuite/ld-i386/i386.exp: Run pr23854. ++ * testsuite/ld-x86-64/x86-64.exp: Likewwise. ++ * testsuite/ld-i386/pr23854.d: New file. ++ * testsuite/ld-i386/pr23854.s: Likewwise. ++ * testsuite/ld-i386/pr23854.d: Likewwise. ++ * testsuite/ld-x86-64/pr23854.d: Likewwise. ++ * testsuite/ld-x86-64/pr23854.s: Likewwise. ++ ++2018-11-06 H.J. Lu ++ ++ PR ld/23818 ++ * testsuite/ld-plugin/lto.exp: Run PR ld/23818 test. ++ * testsuite/ld-plugin/pr23818.d: New file. ++ * testsuite/ld-plugin/pr23818.t: Likewise. ++ * testsuite/ld-plugin/pr23818a.c: Likewise. ++ * testsuite/ld-plugin/pr23818b.c: Likewise. ++ ++2018-08-12 H.J. Lu ++ ++ * testsuite/ld-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s. ++ ++2018-08-12 H.J. Lu ++ ++ PR ld/23428 ++ * testsuite/ld-elf/dummy.s: New file. ++ * testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property. ++ * testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428. ++ ++2018-08-10 H.J. Lu ++ ++ PR ld/23486 ++ * testsuite/ld-i386/i386.exp: Run PR ld/23486 tests. ++ * testsuite/ld-x86-64/x86-64.exp: Likewise. ++ * testsuite/ld-i386/pr23486a.d: New file. ++ * testsuite/ld-i386/pr23486b.d: Likewise. ++ * testsuite/ld-x86-64/pr23486a-x32.d: Likewise. ++ * testsuite/ld-x86-64/pr23486a.d: Likewise. ++ * testsuite/ld-x86-64/pr23486a.s: Likewise. ++ * testsuite/ld-x86-64/pr23486b-x32.d: Likewise. ++ * testsuite/ld-x86-64/pr23486b.d: Likewise. ++ * testsuite/ld-x86-64/pr23486b.s: Likewise. ++ * testsuite/ld-i386/property-3.r: Remove "x86 ISA used". ++ * testsuite/ld-i386/property-4.r: Likewise. ++ * testsuite/ld-i386/property-5.r: Likewise. ++ * testsuite/ld-i386/property-x86-ibt3a.d: Likewise. ++ * testsuite/ld-i386/property-x86-ibt3b.d: Likewise. ++ * testsuite/ld-i386/property-x86-shstk3a.d: Likewise. ++ * testsuite/ld-i386/property-x86-shstk3b.d: Likewise. ++ * testsuite/ld-x86-64/property-3.r: Likewise. ++ * testsuite/ld-x86-64/property-4.r: Likewise. ++ * testsuite/ld-x86-64/property-5.r: Likewise. ++ * testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise. ++ * testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise. ++ ++2018-08-10 H.J. Lu ++ ++ * testsuite/ld-x86-64/property-x86-3.s: Use ".p2align 2" to ++ align .note.gnu.property section if __64_bit__ is undefined. ++ ++2018-08-01 Alan Modra ++ ++ * testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with hash-style ++ specified. ++ ++2018-08-01 Alan Modra ++ ++ * testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with plt alignment. ++ * testsuite/ld-powerpc/tlsopt5.s: Add extra call. ++ * testsuite/ld-powerpc/tlsopt5.wf: Adjust expected output. ++ * testsuite/ld-powerpc/tlsopt5.d: Likewise. ++ ++2018-08-07 Nick Clifton ++ ++ * po/bg.po: Updated Bulgarian translation. ++ ++2018-08-01 Roland McGrath ++ ++ * testsuite/ld-aarch64/ifunc-1-local.d: Adjust regexps to match ++ the offsets emitted by aarch64-elf configurations. ++ * testsuite/ld-aarch64/ifunc-1.d: Likewise. ++ * testsuite/ld-aarch64/ifunc-2-local.d: Likewise. ++ * testsuite/ld-aarch64/ifunc-2.d: Likewise. ++ * testsuite/ld-aarch64/ifunc-21.d: Likewise. ++ * testsuite/ld-aarch64/ifunc-3a.d: Likewise. ++ ++2018-07-23 H.J. Lu ++ ++ PR ld/23428 ++ * testsuite/ld-elf/linux-x86.S: New file. ++ * testsuite/ld-elf/linux-x86.exp: Likewise. ++ * testsuite/ld-elf/pr23428.c: Likewise. ++ * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld ++ for Linux/x86 targets. ++ * testsuite/ld-i386/abs-iamcu.d: Likewise. ++ * testsuite/ld-i386/abs.d: Likewise. ++ * testsuite/ld-i386/pr12718.d: Likewise. ++ * testsuite/ld-i386/pr12921.d: Likewise. ++ * testsuite/ld-x86-64/abs-k1om.d: Likewise. ++ * testsuite/ld-x86-64/abs-l1om.d: Likewise. ++ * testsuite/ld-x86-64/abs.d: Likewise. ++ * testsuite/ld-x86-64/pr12718.d: Likewise. ++ * testsuite/ld-x86-64/pr12921.d: Likewise. ++ * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property ++ section. ++ * testsuite/ld-scripts/print-memory-usage.t: Likewise. ++ * testsuite/ld-scripts/size-2.t: Likewise. ++ * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld to ++ create executable if language is "asm". ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. +diff --git a/ld/po/bg.po b/ld/po/bg.po +index 5e8e818818..bf6ecd9b61 100644 +--- a/ld/po/bg.po ++++ b/ld/po/bg.po +@@ -13,7 +13,7 @@ msgstr "" + "Project-Id-Version: ld 2.30.90\n" + "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" + "POT-Creation-Date: 2018-06-24 19:43+0100\n" +-"PO-Revision-Date: 2018-06-28 22:58+0300\n" ++"PO-Revision-Date: 2018-07-26 20:34+0300\n" + "Last-Translator: Румен Петров \n" + "Language-Team: Bulgarian \n" + "Language: bg\n" +@@ -33,7 +33,7 @@ msgstr "%X%P: cref_hash_lookup не успя: %E\n" + + #: ldcref.c:186 + msgid "%X%P: cref alloc failed: %E\n" +-msgstr "%X%P: пропадна заделяне(на памет) за cref: %E\n" ++msgstr "%X%P: не успя заделянето на памет в cref: %E\n" + + #: ldcref.c:371 + #, c-format +@@ -62,7 +62,7 @@ msgstr "Без имена\n" + + #: ldcref.c:413 ldcref.c:565 + msgid "%P: symbol `%pT' missing from main hash table\n" +-msgstr "%P: име '%pT' липсва в главната хеш-таблица\n" ++msgstr "%P: в главния речник липсва името '%pT'\n" + + #: ldcref.c:517 ldcref.c:628 ldmain.c:1211 ldmisc.c:335 pe-dll.c:715 + #: pe-dll.c:1296 pe-dll.c:1417 pe-dll.c:1535 earm_wince_pe.c:1430 +@@ -87,7 +87,7 @@ msgstr "%X%P: %C: забранено е кръстосана отпратка о + + #: ldctor.c:83 + msgid "%X%P: different relocs used in set %s\n" +-msgstr "%X%P: различни \"преместванията\" се използват в множеството %s\n" ++msgstr "%X%P: различни \"премествания\" се използват в набора %s\n" + + #: ldctor.c:101 + msgid "%X%P: different object file formats composing set %s\n" +@@ -103,7 +103,7 @@ msgstr "%X%P: раздел %s не поддържа преместване %s з + + #: ldctor.c:321 + msgid "%X%P: unsupported size %d for set %s\n" +-msgstr "%X%P: неподдържан размер %d за множеството %s\n" ++msgstr "%X%P: неподдържан размер %d за набор %s\n" + + #: ldctor.c:344 + msgid "" +@@ -202,7 +202,7 @@ msgstr "%F%P:%pS не може да се върне обратно брояч н + + #: ldexp.c:1167 + msgid "%F%P:%s: hash creation failed\n" +-msgstr "%F%P:%s: пропадна създаването на хеш\n" ++msgstr "%F%P:%s: не успя създаването на хеш\n" + + #: ldexp.c:1519 ldexp.c:1545 ldexp.c:1605 + msgid "%F%P:%pS: nonconstant expression for %s\n" +@@ -210,7 +210,7 @@ msgstr "%F%P:%pS: не е константен изразът за %s\n" + + #: ldexp.c:1631 ldlang.c:1234 ldlang.c:3187 ldlang.c:7174 + msgid "%F%P: can not create hash table: %E\n" +-msgstr "%F%P: не може да се създаде хеш-таблицата: %E\n" ++msgstr "%F%P: не може да се създаде речник: %E\n" + + #: ldfile.c:132 eaarch64cloudabi.c:656 eaarch64cloudabib.c:656 + #: eaarch64elf.c:656 eaarch64elf32.c:656 eaarch64elf32b.c:656 +@@ -286,12 +286,12 @@ msgstr "%F%P: не може да се създаде хеш-таблицата: + #: eshlelf_vxworks.c:370 ev850.c:387 ev850_rh850.c:387 exgateelf.c:341 + #, c-format + msgid "attempt to open %s failed\n" +-msgstr "опита да се отвори %s не успя\n" ++msgstr "опитът да се отвори %s не успя\n" + + #: ldfile.c:134 + #, c-format + msgid "attempt to open %s succeeded\n" +-msgstr "опита да се отвори %s успя\n" ++msgstr "опитът да се отвори %s успя\n" + + #: ldfile.c:140 + msgid "%F%P: invalid BFD target `%s'\n" +@@ -353,7 +353,7 @@ msgstr "%F%P:%pS: грешка: синоним за област памет по + + #: ldlang.c:1372 + msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n" +-msgstr "%F%P:%pS: грешка: повторен определение на синоним за област памет '%s'\n" ++msgstr "%F%P:%pS: грешка: повторено определение на синоним за област памет '%s'\n" + + #: ldlang.c:1379 + msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n" +@@ -361,7 +361,7 @@ msgstr "%F%P:%pS: грешка: област памет '%s' за синоним + + #: ldlang.c:1438 ldlang.c:1477 + msgid "%F%P: failed creating section `%s': %E\n" +-msgstr "%F%P: пропадна създаването на раздел '%s': %E\n" ++msgstr "%F%P: не успя създаването на раздел '%s': %E\n" + + #: ldlang.c:1998 + msgid "" +@@ -439,7 +439,7 @@ msgstr "%F%P: %pB: файлът не е разпознат: %E\n" + + #: ldlang.c:2854 + msgid "%F%P: %pB: member %pB in archive is not an object\n" +-msgstr "%F%P: %pB: членът, на архива %pB, не е обект\n" ++msgstr "%F%P: %pB: членът на архива %pB не е обект\n" + + #: ldlang.c:2869 ldlang.c:2883 eaarch64cloudabi.c:776 eaarch64cloudabib.c:776 + #: eaarch64elf.c:776 eaarch64elf32.c:776 eaarch64elf32b.c:776 +@@ -518,7 +518,7 @@ msgstr "%F%P: %pB: грешка при добавяне на имената: %E\ + + #: ldlang.c:3157 + msgid "%P: warning: could not find any targets that match endianness requirement\n" +-msgstr "%P: предупреждение: не може да се открие резултат, който да отговаря на изискванията за подредба(на байтовете)\n" ++msgstr "%P: предупреждение: не може да се открие резултат, който да отговаря на изискванията за подредба на байтовете\n" + + #: ldlang.c:3171 + msgid "%F%P: target %s not found\n" +@@ -546,7 +546,7 @@ msgstr "%X%P: не е определено задължителното име ' + + #: ldlang.c:3770 + msgid "%F%P: %s not found for insert\n" +-msgstr "%F%P: %s не е намерен(за добавяне)\n" ++msgstr "%F%P: %s не е намерен за добавяне\n" + + #: ldlang.c:4011 + msgid " load address 0x%V" +@@ -598,7 +598,7 @@ msgstr "%X%P: %pB раздел '%s' не се побира в област '%s'\ + + #: ldlang.c:5050 + msgid "%F%P:%pS: non constant or forward reference address expression for section %s\n" +-msgstr "%F%P:%pS: адресния израз не е константен или отпратка за по нататък при раздел %s\n" ++msgstr "%F%P:%pS: адресният израз не е константен или е отпратка за по нататък при раздел %s\n" + + #: ldlang.c:5075 + msgid "%X%P: internal error on COFF shared library section %s\n" +@@ -664,7 +664,7 @@ msgstr "%X%P: %s архитектурата на входен файл '%pB' е + + #: ldlang.c:6332 + msgid "%X%P: failed to merge target specific data of file %pB\n" +-msgstr "%X%P: пропадна сливането, на специфични за резултата данни, от файл %pB\n" ++msgstr "%X%P: не успя сливането на целеви данни от файл %pB\n" + + #: ldlang.c:6403 + msgid "%F%P: could not define common symbol `%pT': %E\n" +@@ -704,7 +704,7 @@ msgstr "%F%P:%pS: грешка: зададено е подравняване с + + #: ldlang.c:7198 + msgid "%F%P: %s: plugin reported error after all symbols read\n" +-msgstr "%F%P: %s: приставката рапортува грешка, след прочитане на всички имена\n" ++msgstr "%F%P: %s: приставката отчете грешка след прочитане на всички имена\n" + + #: ldlang.c:7602 + msgid "%F%P: multiple STARTUP files\n" +@@ -805,11 +805,11 @@ msgstr "%P: грешка при свързване, изтриване на из + + #: ldmain.c:490 + msgid "%F%P: %pB: final close failed: %E\n" +-msgstr "%F%P: %pB: пропадна заключителното затваряне: %E\n" ++msgstr "%F%P: %pB: не успя заключителното затваряне: %E\n" + + #: ldmain.c:517 + msgid "%F%P: unable to open for source of copy `%s'\n" +-msgstr "%F%P: не можа да се отвори източника на копието '%s'\n" ++msgstr "%F%P: не можа да се отвори източникът на копието '%s'\n" + + #: ldmain.c:520 + msgid "%F%P: unable to open for destination of copy `%s'\n" +@@ -1017,7 +1017,7 @@ msgstr "%P: вътрешна грешка: прекратяване на %s:%d\n + + #: ldmisc.c:703 + msgid "%F%P: please report this bug\n" +-msgstr "%F%P: моля, рапортувайте този проблем\n" ++msgstr "%F%P: моля, докладвайте този проблем\n" + + #. Output for noisy == 2 is intended to follow the GNU standards. + #: ldver.c:37 +@@ -1048,7 +1048,7 @@ msgstr " Поддържани подражавания:\n" + + #: ldwrite.c:60 ldwrite.c:206 ldwrite.c:258 ldwrite.c:299 + msgid "%F%P: bfd_new_link_order failed\n" +-msgstr "%F%P: пропадна bfd_new_link_order\n" ++msgstr "%F%P: bfd_new_link_order не успя\n" + + #: ldwrite.c:368 + msgid "%F%P: cannot create split section name for %s\n" +@@ -1056,7 +1056,7 @@ msgstr "%F%P: при разцепване на раздел, не можа да + + #: ldwrite.c:380 + msgid "%F%P: clone section failed: %E\n" +-msgstr "%F%P: пропадна копирането на раздел: %E\n" ++msgstr "%F%P: не успя раздвояването на раздел: %E\n" + + #: ldwrite.c:418 + #, c-format +@@ -1065,7 +1065,7 @@ msgstr "%8x други\n" + + #: ldwrite.c:588 + msgid "%F%P: final link failed: %E\n" +-msgstr "%F%P: пропадна заключителното свързване: %E\n" ++msgstr "%F%P: не успя заключителното свързване: %E\n" + + #: lexsup.c:102 lexsup.c:276 + msgid "KEYWORD" +@@ -1490,7 +1490,7 @@ msgstr "" + + #: lexsup.c:350 + msgid "Set default hash table size close to " +-msgstr "Установява размер по подразбиране на таблицат за хеш близък до <ЧИСЛО>" ++msgstr "Установява размер, по подразбиране, на речника близък до <ЧИСЛО>" + + #: lexsup.c:353 + msgid "Print option help" +@@ -1776,15 +1776,15 @@ msgstr "Предупреждение, ако споделен обект съд + + #: lexsup.c:518 + msgid "Warn if an object has alternate ELF machine code" +-msgstr "Предупреждение ако обекта е с друг ELF ELF код за машина" ++msgstr "Предупреждение, ако обекта е с друг ELF код за машина" + + #: lexsup.c:522 + msgid "Report unresolved symbols as warnings" +-msgstr "Рапортуване като предупреждения, на несвързани имена" ++msgstr "Докладване на несвързани имена като предупреждения" + + #: lexsup.c:525 + msgid "Report unresolved symbols as errors" +-msgstr "Рапортуване, като грешки, на несвързани имена" ++msgstr "Докладване на несвързани имена като грешки" + + #: lexsup.c:527 + msgid "Include all objects from following archives" +@@ -2332,12 +2332,12 @@ msgstr "%X%P: не може да се създаде раздел .reloc: %E\n" + #: pe-dll.c:1100 + #, c-format + msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n" +-msgstr "%X%P: грешка, номера е използван два пъти: %d (%s с/у %s)\n" ++msgstr "%X%P: грешка, номерът е използван два пъти: %d (%s с/у %s)\n" + + #: pe-dll.c:1136 + #, c-format + msgid "%X%P: error: export ordinal too large: %d\n" +-msgstr "%X%P: грешка: номера е твърде голям: %d\n" ++msgstr "%X%P: грешка: номерът е твърде голям: %d\n" + + #: pe-dll.c:1452 + #, c-format +@@ -2346,7 +2346,7 @@ msgstr "Сведение: разрешаване на %s със свързван + + #: pe-dll.c:1458 + msgid "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n" +-msgstr "%P: предупреждение: автоматично внасяне е задействано без да се зададе --enable-auto-import на командния ред.Това работи, освен ако не е свързано с константни структури за данни, които указват към имена от автоматично внасяни DLL-ли.\n" ++msgstr "%P: предупреждение: автоматично внасяне е задействано без да се зададе --enable-auto-import на командния ред. Това работи, освен ако не е свързано с константни структури за данни, които указват към имена от автоматично внасяни DLL-ли.\n" + + #. Huh? Shouldn't happen, but punt if it does. + #: pe-dll.c:1527 +@@ -2370,7 +2370,7 @@ msgstr "; липсва съдържание\n" + + #: pe-dll.c:2780 + msgid "%X%P: %C: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n" +-msgstr "%X%P: %C: променливата '%pT' не може да се внесе автоматично. Да се прочете в документацията на свързващата програма за повече сведения относно --enable-auto-import.\n" ++msgstr "%X%P: %C: променливата '%pT' не може да се внесе автоматично. Да се провери в документацията на свързващата програма за повече сведения относно --enable-auto-import.\n" + + #: pe-dll.c:2807 + #, c-format +@@ -2469,7 +2469,7 @@ msgstr "%F%P: приставката не можа да задели памет + + #: plugin.c:1138 + msgid "%F%P: %s: plugin reported error claiming file\n" +-msgstr "%F%P: %s: приставката рапортува грешка, при твърденията за файла\n" ++msgstr "%F%P: %s: приставката отчете грешка при твърденията за файла\n" + + #: plugin.c:1248 + msgid "%P: %s: error in plugin cleanup: %d (ignored)\n" +@@ -2547,7 +2547,7 @@ msgstr "%P: %s: грешка при почистване на приставка + #: eshlelf_nto.c:81 eshlelf_vxworks.c:81 ev850.c:81 ev850_rh850.c:81 + #: exgateelf.c:81 + msgid "%F%P: map sections to segments failed: %E\n" +-msgstr "%F%P: пропадна свързването на раздел към част: %E\n" ++msgstr "%F%P: не успя свързването на раздел към част: %E\n" + + #: eaarch64cloudabi.c:101 eaarch64cloudabib.c:101 eaarch64elf.c:101 + #: eaarch64elf32.c:101 eaarch64elf32b.c:101 eaarch64elfb.c:101 +@@ -5051,31 +5051,31 @@ msgstr "%F%P: не се чете %s\n" + + #: eaix5ppc.c:390 eaix5rs6.c:390 eaixppc.c:390 eaixrs6.c:390 eppcmacos.c:390 + msgid "%P: warning: ignoring invalid -D number %s\n" +-msgstr "%P: предупреждение: изоставяне на неправилно число за -D %s\n" ++msgstr "%P: предупреждение: пропускане на неправилно число за -D %s\n" + + #: eaix5ppc.c:398 eaix5rs6.c:398 eaixppc.c:398 eaixrs6.c:398 eppcmacos.c:398 + msgid "%P: warning: ignoring invalid -H number %s\n" +-msgstr "%P: предупреждение: изоставяне на неправилно число за -H %s\n" ++msgstr "%P: предупреждение: пропускане на неправилно число за -H %s\n" + + #: eaix5ppc.c:510 eaix5rs6.c:510 eaixppc.c:510 eaixrs6.c:510 eppcmacos.c:510 + msgid "%P: warning: ignoring invalid -bmaxdata number %s\n" +-msgstr "%P: предупреждение: изоставяне на неправилно число за -bmaxdata %s\n" ++msgstr "%P: предупреждение: пропускане на неправилно число за -bmaxdata %s\n" + + #: eaix5ppc.c:519 eaix5rs6.c:519 eaixppc.c:519 eaixrs6.c:519 eppcmacos.c:519 + msgid "%P: warning: ignoring invalid -bmaxstack number %s\n" +-msgstr "%P: предупреждение: изоставяне на неправилно число за -bmaxstack %s\n" ++msgstr "%P: предупреждение: пропускане на неправилно число за -bmaxstack %s\n" + + #: eaix5ppc.c:532 eaix5rs6.c:532 eaixppc.c:532 eaixrs6.c:532 eppcmacos.c:532 + msgid "%P: warning: ignoring invalid module type %s\n" +-msgstr "%P: предупреждение: изоставяне на неправиен тип на модул %s\n" ++msgstr "%P: предупреждение: пропускане на неправиен тип на модул %s\n" + + #: eaix5ppc.c:562 eaix5rs6.c:562 eaixppc.c:562 eaixrs6.c:562 eppcmacos.c:562 + msgid "%P: warning: ignoring invalid -pD number %s\n" +-msgstr "%P: предупреждение: изоставяне на неправилно число за -pD %s\n" ++msgstr "%P: предупреждение: пропускане на неправилно число за -pD %s\n" + + #: eaix5ppc.c:585 eaix5rs6.c:585 eaixppc.c:585 eaixrs6.c:585 eppcmacos.c:585 + msgid "%P: warning: ignoring invalid -pT number %s\n" +-msgstr "%P: предупреждение: изоставяне на неправилно число за -pT %s\n" ++msgstr "%P: предупреждение: пропускане на неправилно число за -pT %s\n" + + #: eaix5ppc.c:714 eaix5rs6.c:714 eaixppc.c:714 eaixrs6.c:714 eppcmacos.c:714 + msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n" +@@ -5252,7 +5252,7 @@ msgstr " --[no-]leading-underscore Изрично установява + #: emcorepe.c:392 eppcpe.c:392 eshpe.c:392 + #, c-format + msgid " --thumb-entry= Set the entry point to be Thumb \n" +-msgstr " --thumb-entry=<знак> Установяване на входяща точка да е отбелязания <знак>\n" ++msgstr " --thumb-entry=<знак> Установяване на входяща точка на отбелязания <знак>\n" + + #: earm_wince_pe.c:393 earmpe.c:393 ei386pe.c:393 ei386pe_posix.c:393 + #: emcorepe.c:393 eppcpe.c:393 eshpe.c:393 +@@ -5264,7 +5264,7 @@ msgstr " --[no-]insert-timestamp Използва истинска + #: ei386pep.c:375 emcorepe.c:394 eppcpe.c:394 eshpe.c:394 + #, c-format + msgid " This makes binaries non-deterministic\n" +-msgstr " Това прави двоичните файлове неопределяеми\n" ++msgstr " Това прави двоичните файлове несравними\n" + + #: earm_wince_pe.c:396 earmpe.c:396 ei386pe.c:396 ei386pe_posix.c:396 + #: ei386pep.c:377 emcorepe.c:396 eppcpe.c:396 eshpe.c:396 +@@ -5440,7 +5440,7 @@ msgid "" + " greater than 2 gigabytes\n" + msgstr "" + " --large-address-aware Програмата поддържа виртуални адреси\n" +-" по-голями от 2 гигабайта\n" ++" по-големи от 2 гигабайта\n" + + #: earm_wince_pe.c:420 earmpe.c:420 ei386pe.c:420 ei386pe_posix.c:420 + #: emcorepe.c:420 eppcpe.c:420 eshpe.c:420 +@@ -5450,7 +5450,7 @@ msgid "" + " addresses greater than 2 gigabytes\n" + msgstr "" + " --disable-large-address-aware Програмата не поддържа виртуални\n" +-" адреси по-голями от 2 гигабайта\n" ++" адреси по-големи от 2 гигабайта\n" + + #: earm_wince_pe.c:421 earmpe.c:421 ei386pe.c:421 ei386pe_posix.c:421 + #: ei386pep.c:399 emcorepe.c:421 eppcpe.c:421 eshpe.c:421 +@@ -5479,7 +5479,7 @@ msgid "" + " --dynamicbase Image base address may be relocated using\n" + " address space layout randomization (ASLR)\n" + msgstr "" +-" --dynamicbase Основния адрес на образа може да бъде преместен\n" ++" --dynamicbase Основният адрес на образа може да бъде преместен\n" + " като се използва случаен адрес\n" + + #: earm_wince_pe.c:424 earmpe.c:424 ei386pe.c:424 ei386pe_posix.c:424 +@@ -5492,13 +5492,13 @@ msgstr " --forceinteg Налагане на проверка за + #: ei386pep.c:404 emcorepe.c:425 eppcpe.c:425 eshpe.c:425 + #, c-format + msgid " --nxcompat Image is compatible with data execution prevention\n" +-msgstr " --nxcompat Образа е съвместим с предотвратяване на изпълнение на данни\n" ++msgstr " --nxcompat Образът е съвместим с предотвратяване на изпълнение на данни\n" + + #: earm_wince_pe.c:426 earmpe.c:426 ei386pe.c:426 ei386pe_posix.c:426 + #: ei386pep.c:405 emcorepe.c:426 eppcpe.c:426 eshpe.c:426 + #, c-format + msgid " --no-isolation Image understands isolation but do not isolate the image\n" +-msgstr " --no-isolation Образа поддържа изолиране, но да не се изолира\n" ++msgstr " --no-isolation Образът поддържа изолиране, но да не се изолира\n" + + #: earm_wince_pe.c:427 earmpe.c:427 ei386pe.c:427 ei386pe_posix.c:427 + #: emcorepe.c:427 eppcpe.c:427 eshpe.c:427 +@@ -5507,7 +5507,7 @@ msgid "" + " --no-seh Image does not use SEH. No SE handler may\n" + " be called in this image\n" + msgstr "" +-" --no-seh Образа не използва SEH. В този образ не\n" ++" --no-seh Образът не използва SEH. В този образ не\n" + " може да се извиква SE подръжка\n" + + #: earm_wince_pe.c:428 earmpe.c:428 ei386pe.c:428 ei386pe_posix.c:428 +@@ -5526,7 +5526,7 @@ msgstr " --wdmdriver Използване на WDM модел з + #: ei386pep.c:409 emcorepe.c:430 eppcpe.c:430 eshpe.c:430 + #, c-format + msgid " --tsaware Image is Terminal Server aware\n" +-msgstr " --tsaware Образа поддържа \"Terminal Server\"\n" ++msgstr " --tsaware Образът поддържа \"Terminal Server\"\n" + + #: earm_wince_pe.c:431 earmpe.c:431 ei386pe.c:431 ei386pe_posix.c:431 + #: ei386pep.c:410 emcorepe.c:431 eppcpe.c:431 eshpe.c:431 +@@ -5603,7 +5603,7 @@ msgstr "" + #: earm_wince_pe.c:1302 earmpe.c:1302 ei386pe.c:1302 ei386pe_posix.c:1302 + #: ei386pep.c:1305 emcorepe.c:1302 eppcpe.c:1302 eshpe.c:1302 + msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n" +-msgstr "%F%P: не може да се извърши \"PE\"-операции на изходен файл '%pB', който не е \"PE\"\n" ++msgstr "%F%P: не може да се извършат \"PE\"-операции на изходен файл '%pB', който не е \"PE\"\n" + + #: earm_wince_pe.c:1442 earmpe.c:1442 ei386pe.c:1442 ei386pe_posix.c:1442 + #: ei386pep.c:1426 emcorepe.c:1442 eppcpe.c:1442 eshpe.c:1442 +@@ -5649,7 +5649,7 @@ msgstr "%P: предупреждение: '--thumb-entry %s' прегазва '- + #: earmnto.c:577 earmpe.c:1876 earmsymbian.c:577 ei386pe.c:1876 + #: ei386pe_posix.c:1876 emcorepe.c:1876 eppcpe.c:1876 eshpe.c:1876 + msgid "%P: warning: cannot find thumb start symbol %s\n" +-msgstr "%P: предупреждение: не е намерен, като начален, отбелязания знак %s\n" ++msgstr "%P: предупреждение: не е намерен, като начален, отбелязаният знак %s\n" + + #: earmelf.c:603 earmelf_fbsd.c:603 earmelf_fuchsia.c:603 earmelf_linux.c:603 + #: earmelf_linux_eabi.c:603 earmelf_linux_fdpiceabi.c:603 earmelf_nacl.c:603 +@@ -5700,7 +5700,7 @@ msgstr "%P: неразпознат вид STM32L4XX поправка '%s'\n" + #: earmelfb_nacl.c:2851 earmelfb_nbsd.c:2851 earmnto.c:2826 earmsymbian.c:2851 + #, c-format + msgid " --thumb-entry= Set the entry point to be Thumb symbol \n" +-msgstr " --thumb-entry=<знак> Установява входяща точка да е отбелязания <знак>\n" ++msgstr " --thumb-entry=<знак> Установява входяща точка на отбелязания <знак>\n" + + #: earmelf.c:2852 earmelf_fbsd.c:2859 earmelf_fuchsia.c:2852 + #: earmelf_linux.c:2852 earmelf_linux_eabi.c:2852 +@@ -6667,7 +6667,7 @@ msgstr "" + + #: eelf32xtensa.c:561 + msgid "%F%P: failed to create .xtensa.info section\n" +-msgstr "%F%P: пропадна създаването на раздел .xtensa.info\n" ++msgstr "%F%P: не успя създаването на раздел .xtensa.info\n" + + #: eelf32xtensa.c:4073 + #, c-format +@@ -6945,7 +6945,7 @@ msgid "" + " --no-seh Image does not use SEH; no SE handler may\n" + " be called in this image\n" + msgstr "" +-" --no-seh Образа не използва SEH. В този образ не може\n" ++" --no-seh Образът не използва SEH. В този образ не може\n" + " да се извиква SE подръжка\n" + + #: ei386pep.c:908 +diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp +index 1bbc064857..3912ef1cdd 100644 +--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp ++++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp +@@ -86,6 +86,7 @@ run_ld_link_tests $aarch64elftests + run_ld_link_tests eh-frame-merge-lp64 + + run_dump_test "erratum843419" ++run_dump_test "erratum843419_tls_ie" + + # Relocation Tests + run_dump_test_lp64 "weak-undefined" +diff --git a/ld/testsuite/ld-aarch64/erratum843419_tls_ie.d b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.d +new file mode 100644 +index 0000000000..eba5a20217 +--- /dev/null ++++ b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.d +@@ -0,0 +1,49 @@ ++#source: erratum843419_tls_ie.s ++#as: ++#ld: --fix-cortex-a53-843419 -e0 --section-start .e843419=0x20000000 -Ttext=0x400000 -Tdata=0x40000000 ++#objdump: -dr ++#... ++ ++Disassembly of section .e843419: ++ ++0*20000000 : ++[ ]*20000000: d10043ff sub sp, sp, #0x10 ++[ ]*20000004: d28001a7 mov x7, #0xd // #13 ++[ ]*20000008: b9000fe7 str w7, \[sp, #12\] ++[ ]*2000000c: 140003fb b 20000ff8 ++ ... ++ ++0*20000ff8 : ++[ ]*20000ff8: d2a00000 movz x0, #0x0, lsl #16 ++[ ]*20000ffc: f800c007 stur x7, \[x0, #12\] ++[ ]*20001000: d2800128 mov x8, #0x9 // #9 ++[ ]*20001004: f2800208 movk x8, #0x10 ++[ ]*20001008: 8b050020 add x0, x1, x5 ++[ ]*2000100c: b9400fe7 ldr w7, \[sp, #12\] ++[ ]*20001010: 0b0700e0 add w0, w7, w7 ++[ ]*20001014: 910043ff add sp, sp, #0x10 ++[ ]*20001018: d65f03c0 ret ++[ ]*2000101c: 00000000 .inst 0x00000000 ; undefined ++[ ]*20001020: 14000400 b 20002020 ++[ ]*20001024: d503201f nop ++[ ]*20001028: 00000000 .inst 0x00000000 ; undefined ++[ ]*2000102c: 17fffff7 b 20001008 ++ ... ++ ++Disassembly of section .text: ++ ++0*400000
: ++[ ]*400000: d10043ff sub sp, sp, #0x10 ++[ ]*400004: d28001a7 mov x7, #0xd // #13 ++[ ]*400008: b9000fe7 str w7, \[sp, #12\] ++[ ]*40000c: 14000005 b 400020 <__farbranch_veneer> ++[ ]*400010: d65f03c0 ret ++[ ]*400014: d503201f nop ++[ ]*400018: 14000400 b 401018 <__farbranch_veneer\+0xff8> ++[ ]*40001c: d503201f nop ++ ++0*400020 <__farbranch_veneer>: ++[ ]*400020: 900fe010 adrp x16, 20000000 ++[ ]*400024: 91000210 add x16, x16, #0x0 ++[ ]*400028: d61f0200 br x16 ++ ... +diff --git a/ld/testsuite/ld-aarch64/erratum843419_tls_ie.s b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.s +new file mode 100644 +index 0000000000..60322445c5 +--- /dev/null ++++ b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.s +@@ -0,0 +1,43 @@ ++ .text ++ .align 2 ++ .global main ++ .type main, %function ++main: ++ sub sp, sp, #16 ++ mov x7, 13 ++ str w7, [sp,12] ++ b farbranch ++ ret ++ .size main, .-main ++ ++ .section .e843419, "xa" ++ .align 2 ++ .global farbranch ++ .type farbranch, %function ++farbranch: ++ sub sp, sp, #16 ++ mov x7, 13 ++ str w7, [sp,12] ++ b e843419 ++ .fill 4072,1,0 ++e843419: ++ adrp x0, :gottprel:l_tlsievar ++ str x7, [x0,12] ++ mov x8, 9 ++ str x8, [x0, :gottprel_lo12:l_tlsievar] ++ ++ add x0, x1, x5 ++ ldr w7, [sp,12] ++ add w0, w7, w7 ++ add sp, sp, 16 ++ ret ++ .size farbranch, .-farbranch ++ ++# --- ++ ++ .section .tbss,"awT",%nobits ++ .align 2 ++ .type l_tlsievar, %object ++ .size l_tlsievar, 4 ++l_tlsievar: ++ .zero 4 +diff --git a/ld/testsuite/ld-aarch64/ifunc-1-local.d b/ld/testsuite/ld-aarch64/ifunc-1-local.d +index bcba0aa025..1783637865 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-1-local.d ++++ b/ld/testsuite/ld-aarch64/ifunc-1-local.d +@@ -3,7 +3,7 @@ + #target: aarch64*-*-* + + #... +-0+(110|180) <__GI_foo>: ++0+(110|180|1a0) <(__GI_)?foo>: + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180|0x1a0)@plt> + #pass +diff --git a/ld/testsuite/ld-aarch64/ifunc-1.d b/ld/testsuite/ld-aarch64/ifunc-1.d +index f408bfff78..0274ac0094 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-1.d ++++ b/ld/testsuite/ld-aarch64/ifunc-1.d +@@ -3,7 +3,7 @@ + #target: aarch64*-*-* + + #... +-0+(130|1a0) : ++0+(130|1a0|1c8) : + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt> + #pass +diff --git a/ld/testsuite/ld-aarch64/ifunc-2-local.d b/ld/testsuite/ld-aarch64/ifunc-2-local.d +index fb1bb40e38..a3d9e15f8b 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-2-local.d ++++ b/ld/testsuite/ld-aarch64/ifunc-2-local.d +@@ -3,9 +3,9 @@ + #target: aarch64*-*-* + + #... +-0+(110|180) <__GI_foo>: ++0+(110|180|1a0) <__GI_foo>: + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180|1a0)@plt> + [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*> +-[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170) ++[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170|190) + #pass +diff --git a/ld/testsuite/ld-aarch64/ifunc-2.d b/ld/testsuite/ld-aarch64/ifunc-2.d +index 16c75ead40..eb6fa0ccf0 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-2.d ++++ b/ld/testsuite/ld-aarch64/ifunc-2.d +@@ -3,9 +3,9 @@ + #target: aarch64*-*-* + + #... +-0+(130|1a0) : ++0+(130|1a0|1c8) : + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt> + [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*> +-[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190) ++[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190|1b8) + #pass +diff --git a/ld/testsuite/ld-aarch64/ifunc-21.d b/ld/testsuite/ld-aarch64/ifunc-21.d +index b501bd6712..a16186b587 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-21.d ++++ b/ld/testsuite/ld-aarch64/ifunc-21.d +@@ -11,7 +11,7 @@ Contents of section .text: + [0-9a-f]+ .* + Contents of section .got.plt: + [0-9a-f]+ 0+ 0+ 0+ 0+ .* +- 10298 0+ 0+ [0-9a-f]+ [0-9a-f]+ .* ++ (10298|102b8) 0+ 0+ [0-9a-f]+ [0-9a-f]+ .* + + Disassembly of section .text: + +@@ -20,7 +20,7 @@ Disassembly of section .text: + + .* : + .*: 90000080 adrp x0, 10000 <.*> +- .*: .* ldr x0, \[x0, #672\] ++ .*: .* ldr x0, \[x0, #(672|704)\] + .*: d65f03c0 ret + + #pass +diff --git a/ld/testsuite/ld-aarch64/ifunc-3a.d b/ld/testsuite/ld-aarch64/ifunc-3a.d +index a01a75c904..4919d96892 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-3a.d ++++ b/ld/testsuite/ld-aarch64/ifunc-3a.d +@@ -4,7 +4,7 @@ + #target: aarch64*-*-* + + #... +-0+(150|1d0) <__GI_foo>: ++0+(150|1d0|1e8) <__GI_foo>: + #... +-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0)@plt> ++[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0|1e8)@plt> + #pass +diff --git a/ld/testsuite/ld-aarch64/ifunc-9.d b/ld/testsuite/ld-aarch64/ifunc-9.d +index 3b4e995254..e921591275 100644 +--- a/ld/testsuite/ld-aarch64/ifunc-9.d ++++ b/ld/testsuite/ld-aarch64/ifunc-9.d +@@ -1,3 +1,4 @@ + #ld: --export-dynamic +-#error: .*dynamic STT_GNU_IFUNC symbol `foo' with pointer equality in `.*.o' can not be used when making an executable; recompile with -fPIE and relink with -pie ++#objdump: -dr + #target: aarch64*-*-* ++#... +diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s +new file mode 100644 +index 0000000000..403f98000d +--- /dev/null ++++ b/ld/testsuite/ld-elf/dummy.s +@@ -0,0 +1 @@ ++# Dummy +diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S +new file mode 100644 +index 0000000000..d94abc1106 +--- /dev/null ++++ b/ld/testsuite/ld-elf/linux-x86.S +@@ -0,0 +1,91 @@ ++ .text ++ .globl _start ++ .type _start,@function ++ .p2align 4 ++_start: ++ xorl %ebp, %ebp ++#ifdef __LP64__ ++ popq %rdi ++ movq %rsp, %rsi ++ andq $~15, %rsp ++#elif defined __x86_64__ ++ mov (%rsp),%edi ++ addl $4,%esp ++ movl %esp, %esi ++ andl $~15, %esp ++#else ++ popl %esi ++ movl %esp, %ecx ++ andl $~15, %esp ++ ++ subl $8,%esp ++ pushl %ecx ++ pushl %esi ++#endif ++ ++ call main ++ ++ hlt ++ ++ .type syscall, @function ++ .globl syscall ++ .p2align 4 ++syscall: ++#ifdef __x86_64__ ++ movq %rdi, %rax /* Syscall number -> rax. */ ++ movq %rsi, %rdi /* shift arg1 - arg5. */ ++ movq %rdx, %rsi ++ movq %rcx, %rdx ++ movq %r8, %r10 ++ movq %r9, %r8 ++ movq 8(%rsp),%r9 /* arg6 is on the stack. */ ++ syscall /* Do the system call. */ ++#else ++ push %ebp ++ push %edi ++ push %esi ++ push %ebx ++ mov 0x2c(%esp),%ebp ++ mov 0x28(%esp),%edi ++ mov 0x24(%esp),%esi ++ mov 0x20(%esp),%edx ++ mov 0x1c(%esp),%ecx ++ mov 0x18(%esp),%ebx ++ mov 0x14(%esp),%eax ++ int $0x80 ++ pop %ebx ++ pop %esi ++ pop %edi ++ pop %ebp ++#endif ++ ret /* Return to caller. */ ++ .size syscall, .-syscall ++ .section .note.GNU-stack,"",@progbits ++ ++ .section ".note.gnu.property", "a" ++#ifdef __LP64__ ++ .p2align 3 ++#else ++ .p2align 2 ++#endif ++ .long 1f - 0f /* name length */ ++ .long 5f - 2f /* data length */ ++ .long 5 /* note type */ ++0: .asciz "GNU" /* vendor name */ ++1: ++#ifdef __LP64__ ++ .p2align 3 ++#else ++ .p2align 2 ++#endif ++2: .long 0xc0000002 /* pr_type. */ ++ .long 4f - 3f /* pr_datasz. */ ++3: ++ .long 0x2 ++4: ++#ifdef __LP64__ ++ .p2align 3 ++#else ++ .p2align 2 ++#endif ++5: +diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp +new file mode 100644 +index 0000000000..f6f5a80853 +--- /dev/null ++++ b/ld/testsuite/ld-elf/linux-x86.exp +@@ -0,0 +1,46 @@ ++# Expect script for simple native Linux/x86 tests. ++# Copyright (C) 2018 Free Software Foundation, Inc. ++# ++# This file is part of the GNU Binutils. ++# ++# 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. ++# ++ ++# Test very simple native Linux/x86 programs with linux-x86.S. ++if { ![isnative] || [which $CC] == 0 \ ++ || (![istarget "i?86-*-linux*"] \ ++ && ![istarget "x86_64-*-linux*"] \ ++ && ![istarget "amd64-*-linux*"]) } { ++ return ++} ++ ++# Add $PLT_CFLAGS if PLT is expected. ++global PLT_CFLAGS ++# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required. ++global NOPIE_CFLAGS NOPIE_LDFLAGS ++ ++run_ld_link_exec_tests [list \ ++ [list \ ++ "Run PR ld/23428 test" \ ++ "--no-dynamic-linker -z separate-code" \ ++ "" \ ++ { linux-x86.S pr23428.c dummy.s } \ ++ "pr23428" \ ++ "pass.out" \ ++ "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \ ++ "asm" \ ++ ] \ ++] +diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c +new file mode 100644 +index 0000000000..3631ed7926 +--- /dev/null ++++ b/ld/testsuite/ld-elf/pr23428.c +@@ -0,0 +1,43 @@ ++#include ++#include ++#include ++ ++#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1) ++ ++int ++main (int argc, char **argv) ++{ ++ char **ev = &argv[argc + 1]; ++ char **evp = ev; ++ ElfW(auxv_t) *av; ++ const ElfW(Phdr) *phdr = NULL; ++ size_t phnum = 0; ++ size_t loadnum = 0; ++ int fd = STDOUT_FILENO; ++ size_t i; ++ ++ while (*evp++ != NULL) ++ ; ++ ++ av = (ElfW(auxv_t) *) evp; ++ ++ for (; av->a_type != AT_NULL; ++av) ++ switch (av->a_type) ++ { ++ case AT_PHDR: ++ phdr = (const void *) av->a_un.a_val; ++ break; ++ case AT_PHNUM: ++ phnum = av->a_un.a_val; ++ break; ++ } ++ ++ for (i = 0; i < phnum; i++, phdr++) ++ if (phdr->p_type == PT_LOAD) ++ loadnum++; ++ ++ syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n")); ++ ++ syscall (SYS_exit, !loadnum); ++ return 0; ++} +diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp +index b58139e9dd..3909c0eaa1 100644 +--- a/ld/testsuite/ld-elf/sec64k.exp ++++ b/ld/testsuite/ld-elf/sec64k.exp +@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"] + foreach sfile $sfiles { puts $ofd "#source: $sfile" } + if { [istarget spu*-*-*] } { + puts $ofd "#ld: --local-store 0:0" ++ } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } { ++ puts $ofd "#ld: -z noseparate-code" + } else { + puts $ofd "#ld:" + } +diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d +index ac9beff2e5..aba7d6b03f 100644 +--- a/ld/testsuite/ld-i386/abs-iamcu.d ++++ b/ld/testsuite/ld-i386/abs-iamcu.d +@@ -2,7 +2,7 @@ + #source: abs.s + #source: zero.s + #as: --32 -march=iamcu +-#ld: -m elf_iamcu ++#ld: -m elf_iamcu -z noseparate-code + #objdump: -rs -j .text + + .*: file format .* +diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d +index e660aca524..191ee4456a 100644 +--- a/ld/testsuite/ld-i386/abs.d ++++ b/ld/testsuite/ld-i386/abs.d +@@ -2,7 +2,7 @@ + #as: --32 + #source: abs.s + #source: zero.s +-#ld: -melf_i386 ++#ld: -melf_i386 -z noseparate-code + #objdump: -rs + + .*: file format .* +diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp +index 6d794fe653..56c95367e1 100644 +--- a/ld/testsuite/ld-i386/i386.exp ++++ b/ld/testsuite/ld-i386/i386.exp +@@ -462,6 +462,9 @@ run_dump_test "pr23189" + run_dump_test "pr23194" + run_dump_test "pr23372a" + run_dump_test "pr23372b" ++run_dump_test "pr23486a" ++run_dump_test "pr23486b" ++run_dump_test "pr23854" + + if { !([istarget "i?86-*-linux*"] + || [istarget "i?86-*-gnu*"] +diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d +index ec51540a42..7eba52d95e 100644 +--- a/ld/testsuite/ld-i386/pr12718.d ++++ b/ld/testsuite/ld-i386/pr12718.d +@@ -1,6 +1,6 @@ + #name: PR ld/12718 + #as: --32 +-#ld: -melf_i386 ++#ld: -melf_i386 -z noseparate-code + #readelf: -S + + There are 5 section headers, starting at offset 0x[0-9a-f]+: +diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d +index e49079b3c8..ea2da3eb51 100644 +--- a/ld/testsuite/ld-i386/pr12921.d ++++ b/ld/testsuite/ld-i386/pr12921.d +@@ -1,6 +1,6 @@ + #name: PR ld/12921 + #as: --32 +-#ld: -melf_i386 ++#ld: -melf_i386 -z noseparate-code + #readelf: -S --wide + + There are 7 section headers, starting at offset 0x[0-9a-f]+: +diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d +new file mode 100644 +index 0000000000..41a6dcf7d5 +--- /dev/null ++++ b/ld/testsuite/ld-i386/pr23486a.d +@@ -0,0 +1,10 @@ ++#source: ../ld-x86-64/pr23486a.s ++#source: ../ld-x86-64/pr23486b.s ++#as: --32 ++#ld: -r -m elf_i386 ++#readelf: -n ++ ++Displaying notes found in: .note.gnu.property ++ Owner Data size Description ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586 +diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d +new file mode 100644 +index 0000000000..08019b7274 +--- /dev/null ++++ b/ld/testsuite/ld-i386/pr23486b.d +@@ -0,0 +1,10 @@ ++#source: ../ld-x86-64/pr23486b.s ++#source: ../ld-x86-64/pr23486a.s ++#as: --32 ++#ld: -r -m elf_i386 ++#readelf: -n ++ ++Displaying notes found in: .note.gnu.property ++ Owner Data size Description ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586 +diff --git a/ld/testsuite/ld-i386/pr23854.d b/ld/testsuite/ld-i386/pr23854.d +new file mode 100644 +index 0000000000..3ed9c206e5 +--- /dev/null ++++ b/ld/testsuite/ld-i386/pr23854.d +@@ -0,0 +1,28 @@ ++#as: --32 -mrelax-relocations=yes ++#ld: -melf_i386 ++#objdump: -dw ++ ++.*: +file format .* ++ ++Disassembly of section .text: ++ ++[a-f0-9]+ <_start>: ++ +[a-f0-9]+: 66 13 81 f8 ff ff ff adc -0x8\(%ecx\),%ax ++ +[a-f0-9]+: 66 03 99 f8 ff ff ff add -0x8\(%ecx\),%bx ++ +[a-f0-9]+: 66 23 89 f8 ff ff ff and -0x8\(%ecx\),%cx ++ +[a-f0-9]+: 66 3b 91 f8 ff ff ff cmp -0x8\(%ecx\),%dx ++ +[a-f0-9]+: 66 0b b9 f8 ff ff ff or -0x8\(%ecx\),%di ++ +[a-f0-9]+: 66 1b b1 f8 ff ff ff sbb -0x8\(%ecx\),%si ++ +[a-f0-9]+: 66 2b a9 f8 ff ff ff sub -0x8\(%ecx\),%bp ++ +[a-f0-9]+: 66 33 a1 f8 ff ff ff xor -0x8\(%ecx\),%sp ++ +[a-f0-9]+: 66 85 89 f8 ff ff ff test %cx,-0x8\(%ecx\) ++ +[a-f0-9]+: 66 13 81 fc ff ff ff adc -0x4\(%ecx\),%ax ++ +[a-f0-9]+: 66 03 99 fc ff ff ff add -0x4\(%ecx\),%bx ++ +[a-f0-9]+: 66 23 89 fc ff ff ff and -0x4\(%ecx\),%cx ++ +[a-f0-9]+: 66 3b 91 fc ff ff ff cmp -0x4\(%ecx\),%dx ++ +[a-f0-9]+: 66 0b b9 fc ff ff ff or -0x4\(%ecx\),%di ++ +[a-f0-9]+: 66 1b b1 fc ff ff ff sbb -0x4\(%ecx\),%si ++ +[a-f0-9]+: 66 2b a9 fc ff ff ff sub -0x4\(%ecx\),%bp ++ +[a-f0-9]+: 66 33 a1 fc ff ff ff xor -0x4\(%ecx\),%sp ++ +[a-f0-9]+: 66 85 89 fc ff ff ff test %cx,-0x4\(%ecx\) ++#pass +diff --git a/ld/testsuite/ld-i386/pr23854.s b/ld/testsuite/ld-i386/pr23854.s +new file mode 100644 +index 0000000000..565e747be0 +--- /dev/null ++++ b/ld/testsuite/ld-i386/pr23854.s +@@ -0,0 +1,33 @@ ++ .data ++ .type bar, @object ++bar: ++ .byte 1 ++ .size bar, .-bar ++ .globl foo ++ .type foo, @object ++foo: ++ .byte 1 ++ .size foo, .-foo ++ .text ++ .globl _start ++ .type _start, @function ++_start: ++ adcw bar@GOT(%ecx), %ax ++ addw bar@GOT(%ecx), %bx ++ andw bar@GOT(%ecx), %cx ++ cmpw bar@GOT(%ecx), %dx ++ orw bar@GOT(%ecx), %di ++ sbbw bar@GOT(%ecx), %si ++ subw bar@GOT(%ecx), %bp ++ xorw bar@GOT(%ecx), %sp ++ testw %cx, bar@GOT(%ecx) ++ adcw foo@GOT(%ecx), %ax ++ addw foo@GOT(%ecx), %bx ++ andw foo@GOT(%ecx), %cx ++ cmpw foo@GOT(%ecx), %dx ++ orw foo@GOT(%ecx), %di ++ sbbw foo@GOT(%ecx), %si ++ subw foo@GOT(%ecx), %bp ++ xorw foo@GOT(%ecx), %sp ++ testw %cx, foo@GOT(%ecx) ++ .size _start, .-_start +diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r +index 0ed91f5922..d03203c1e5 100644 +--- a/ld/testsuite/ld-i386/property-3.r ++++ b/ld/testsuite/ld-i386/property-3.r +@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 + Properties: stack size: 0x800000 +- x86 ISA used: 586, SSE + x86 ISA needed: i486, 586 + #pass +diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r +index cb2bc15d9a..da295eb6c7 100644 +--- a/ld/testsuite/ld-i386/property-4.r ++++ b/ld/testsuite/ld-i386/property-4.r +@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 + Properties: stack size: 0x800000 +- x86 ISA used: i486, 586, SSE + x86 ISA needed: i486, 586, SSE + #pass +diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r +index 552965058c..e4141594b3 100644 +--- a/ld/testsuite/ld-i386/property-5.r ++++ b/ld/testsuite/ld-i386/property-5.r +@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 + Properties: stack size: 0x900000 +- x86 ISA used: i486, 586, SSE + x86 ISA needed: i486, 586, SSE + #pass +diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d +index 4bb35b00fb..0aedea1614 100644 +--- a/ld/testsuite/ld-i386/property-x86-ibt3a.d ++++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: i486, 586, SSE2, SSE3 +- x86 ISA needed: 586, SSE, SSE3, SSE4_1 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 +diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d +index 418d58a8f7..bd69ac6478 100644 +--- a/ld/testsuite/ld-i386/property-x86-ibt3b.d ++++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: i486, 586, SSE2, SSE3 +- x86 ISA needed: 586, SSE, SSE3, SSE4_1 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 +diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d +index e261038f60..76d2a39f2c 100644 +--- a/ld/testsuite/ld-i386/property-x86-shstk3a.d ++++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: i486, 586, SSE2, SSE3 +- x86 ISA needed: 586, SSE, SSE3, SSE4_1 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 +diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d +index 25f3d2361e..e770ecffa5 100644 +--- a/ld/testsuite/ld-i386/property-x86-shstk3b.d ++++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: i486, 586, SSE2, SSE3 +- x86 ISA needed: 586, SSE, SSE3, SSE4_1 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 +diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp +index 612d91402f..2b97af79e5 100644 +--- a/ld/testsuite/ld-ifunc/ifunc.exp ++++ b/ld/testsuite/ld-ifunc/ifunc.exp +@@ -713,7 +713,9 @@ run_ld_link_exec_tests [list \ + # That does not happen for the pr23169 testcase where the resolver is + # in the executable (which is relocated last by ld.so). + if { [isnative] +- && ![istarget "powerpc-*-*"] } { ++ && !([istarget "powerpc-*-*"] ++ || [istarget "aarch64*-*-*"] ++ || [istarget "sparc*-*-*"]) } { + run_ld_link_exec_tests [list \ + [list \ + "Run pr23169a" \ +diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld +index b22eaa12c9..f89855a08f 100644 +--- a/ld/testsuite/ld-linkonce/zeroeh.ld ++++ b/ld/testsuite/ld-linkonce/zeroeh.ld +@@ -2,4 +2,5 @@ SECTIONS { + .text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) } + .gcc_except_table 0x2000 : { *(.gcc_except_table) } + .eh_frame 0x4000 : { *(.eh_frame) } ++ /DISCARD/ : { *(.note.gnu.property) } + } +diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp +index 7c50b0f102..4ce74f2587 100644 +--- a/ld/testsuite/ld-plugin/lto.exp ++++ b/ld/testsuite/ld-plugin/lto.exp +@@ -219,6 +219,12 @@ set lto_link_tests [list \ + [list "Build pr22751.a" \ + "$plug_opt" "-flto $lto_no_fat $INT128_CFLAGS" \ + {pr22751.c} {} "pr22751.a"] \ ++ [list "Build libpr23818.so" \ ++ "-shared -flto -g -Wl,-version-script,pr23818.t" \ ++ "-g -flto $lto_fat" \ ++ {pr23818a.c pr23818b.c} \ ++ {{"readelf" {-s --wide} "pr23818.d"}} \ ++ "libpr23818.so"] \ + ] + + if { [at_least_gcc_version 4 7] } { +diff --git a/ld/testsuite/ld-plugin/pr23818.d b/ld/testsuite/ld-plugin/pr23818.d +new file mode 100644 +index 0000000000..5753cd64fd +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr23818.d +@@ -0,0 +1,4 @@ ++#failif ++#... ++.*0+ +[A-Z]+ +GLOBAL +DEFAULT +ABS foo ++#... +diff --git a/ld/testsuite/ld-plugin/pr23818.t b/ld/testsuite/ld-plugin/pr23818.t +new file mode 100644 +index 0000000000..45bca5580e +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr23818.t +@@ -0,0 +1,4 @@ ++{ ++ global: bar; ++ local: *; ++}; +diff --git a/ld/testsuite/ld-plugin/pr23818a.c b/ld/testsuite/ld-plugin/pr23818a.c +new file mode 100644 +index 0000000000..5b5ccbf7cb +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr23818a.c +@@ -0,0 +1,4 @@ ++void ++foo () ++{ ++} +diff --git a/ld/testsuite/ld-plugin/pr23818b.c b/ld/testsuite/ld-plugin/pr23818b.c +new file mode 100644 +index 0000000000..d4be333a39 +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr23818b.c +@@ -0,0 +1,7 @@ ++void foo (void); ++ ++void ++bar (void) ++{ ++ foo (); ++} +diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp +index 0359ba28cb..5ec3850787 100644 +--- a/ld/testsuite/ld-powerpc/powerpc.exp ++++ b/ld/testsuite/ld-powerpc/powerpc.exp +@@ -221,7 +221,7 @@ set ppc64elftests { + "tlsopt4"} + {"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s} + {} "tlsdll.so"} +- {"TLS opt 5" "-melf64ppc --no-plt-align -shared --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s} ++ {"TLS opt 5" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s} + {{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}} + "tlsopt5"} + {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s} +@@ -328,6 +328,7 @@ if [ supports_ppc64 ] then { + run_dump_test "dotsym2" + run_dump_test "dotsym3" + run_dump_test "dotsym4" ++ run_dump_test "pr23937" + } + + run_dump_test "tlsld32" +diff --git a/ld/testsuite/ld-powerpc/pr23937.d b/ld/testsuite/ld-powerpc/pr23937.d +new file mode 100644 +index 0000000000..6ef79e81cf +--- /dev/null ++++ b/ld/testsuite/ld-powerpc/pr23937.d +@@ -0,0 +1,10 @@ ++#as: -a64 ++#ld: -melf64ppc --defsym puts=0 --defsym _start=0 ++#readelf: -srW ++# Check that the IRELATIVE addend is magic+0, not magic+8 ++ ++#... ++.* R_PPC64_IRELATIVE +10000180 ++#... ++.*: 0+10000180 +20 IFUNC +LOCAL +DEFAULT .* magic ++#pass +diff --git a/ld/testsuite/ld-powerpc/pr23937.s b/ld/testsuite/ld-powerpc/pr23937.s +new file mode 100644 +index 0000000000..155e53adb7 +--- /dev/null ++++ b/ld/testsuite/ld-powerpc/pr23937.s +@@ -0,0 +1,65 @@ ++ .abiversion 2 ++ .text ++ .p2align 4,,15 ++ .type implementation, @function ++implementation: ++.LCF0: ++ addis 2,12,.TOC.-.LCF0@ha ++ addi 2,2,.TOC.-.LCF0@l ++ .localentry implementation,.-implementation ++ mflr 0 ++ addis 3,2,.LC0@toc@ha ++ addi 3,3,.LC0@toc@l ++ std 0,16(1) ++ stdu 1,-32(1) ++ bl puts ++ nop ++ addi 1,1,32 ++ li 3,0 ++ ld 0,16(1) ++ mtlr 0 ++ blr ++ .size implementation,.-implementation ++ ++ .p2align 4,,15 ++ .type resolver, @function ++resolver: ++.LCF1: ++ addis 2,12,.TOC.-.LCF1@ha ++ addi 2,2,.TOC.-.LCF1@l ++ .localentry resolver,.-resolver ++ addis 3,2,implementation@toc@ha ++ addi 3,3,implementation@toc@l ++ blr ++ .size resolver,.-resolver ++ ++ .type magic, @gnu_indirect_function ++ .set magic,resolver ++ ++ .section .text.startup,"ax",@progbits ++ .p2align 4,,15 ++ .globl main ++ .type main, @function ++main: ++.LCF2: ++ addis 2,12,.TOC.-.LCF2@ha ++ addi 2,2,.TOC.-.LCF2@l ++ .localentry main,.-main ++ mflr 0 ++ std 0,16(1) ++ stdu 1,-32(1) ++ bl magic ++ nop ++ addi 1,1,32 ++ cntlzw 3,3 ++ ld 0,16(1) ++ srwi 3,3,5 ++ mtlr 0 ++ xori 3,3,0x1 ++ blr ++ .size main,.-main ++ ++ .section .rodata.str1.8,"aMS",@progbits,1 ++ .p2align 3 ++.LC0: ++ .string "'ere I am JH" +diff --git a/ld/testsuite/ld-powerpc/tlsopt5.d b/ld/testsuite/ld-powerpc/tlsopt5.d +index 4521a9b427..4caf1832ea 100644 +--- a/ld/testsuite/ld-powerpc/tlsopt5.d ++++ b/ld/testsuite/ld-powerpc/tlsopt5.d +@@ -8,6 +8,13 @@ + + Disassembly of section \.text: + ++.* <.*\.plt_call\.foo>: ++.*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\) ++.*: (28 80 82 e9|e9 82 80 28) ld r12,-32728\(r2\) ++.*: (a6 03 89 7d|7d 89 03 a6) mtctr r12 ++.*: (20 04 80 4e|4e 80 04 20) bctr ++ \.\.\. ++ + .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>: + .*: (00 00 63 e9|e9 63 00 00) ld r11,0\(r3\) + .*: (08 00 83 e9|e9 83 00 08) ld r12,8\(r3\) +@@ -19,17 +26,21 @@ Disassembly of section \.text: + .*: (a6 02 68 7d|7d 68 02 a6) mflr r11 + .*: (08 00 61 f9|f9 61 00 08) std r11,8\(r1\) + .*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\) +-.*: (28 80 82 e9|e9 82 80 28) ld r12,-32728\(r2\) ++.*: (30 80 82 e9|e9 82 80 30) ld r12,-32720\(r2\) + .*: (a6 03 89 7d|7d 89 03 a6) mtctr r12 + .*: (21 04 80 4e|4e 80 04 21) bctrl + .*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\) + .*: (08 00 61 e9|e9 61 00 08) ld r11,8\(r1\) + .*: (a6 03 68 7d|7d 68 03 a6) mtlr r11 + .*: (20 00 80 4e|4e 80 00 20) blr ++ \.\.\. + + .* <_start>: + .*: (08 80 62 38|38 62 80 08) addi r3,r2,-32760 +-.*: (b9 ff ff 4b|4b ff ff b9) bl .* ++.*: (9d ff ff 4b|4b ff ff 9d) bl .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22> ++.*: (00 00 00 60|60 00 00 00) nop ++.*: (75 ff ff 4b|4b ff ff 75) bl .* <.*\.plt_call\.foo> ++.*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\) + .*: (00 00 00 60|60 00 00 00) nop + .* + .* +@@ -50,5 +61,8 @@ Disassembly of section \.text: + .*: (08 00 6b e9|e9 6b 00 08) ld r11,8\(r11\) + .*: (20 04 80 4e|4e 80 04 20) bctr + ++.* : ++.* (c8 ff ff 4b|4b ff ff c8) b .* ++ + .* <__tls_get_addr_opt@plt>: +-.*: (c8 ff ff 4b|4b ff ff c8) b .* ++.*: (c4 ff ff 4b|4b ff ff c4) b .* +diff --git a/ld/testsuite/ld-powerpc/tlsopt5.s b/ld/testsuite/ld-powerpc/tlsopt5.s +index 70902ef96a..7cb82db1f6 100644 +--- a/ld/testsuite/ld-powerpc/tlsopt5.s ++++ b/ld/testsuite/ld-powerpc/tlsopt5.s +@@ -1,7 +1,10 @@ + .globl _start ++ .weak foo + _start: + .cfi_startproc + addi 3,2,gd@got@tlsgd + bl __tls_get_addr(gd@tlsgd) + nop ++ bl foo ++ nop + .cfi_endproc +diff --git a/ld/testsuite/ld-powerpc/tlsopt5.wf b/ld/testsuite/ld-powerpc/tlsopt5.wf +index af8cb76d1c..f0453610e0 100644 +--- a/ld/testsuite/ld-powerpc/tlsopt5.wf ++++ b/ld/testsuite/ld-powerpc/tlsopt5.wf +@@ -7,11 +7,10 @@ Contents of the \.eh_frame section: + Data alignment factor: -8 + Return address column: 65 + Augmentation data: 1b +- + DW_CFA_def_cfa: r1 ofs 0 + + 0+14 0+14 0+18 FDE cie=0+ pc=.* +- DW_CFA_advance_loc: 48 to .* ++ DW_CFA_advance_loc: 80 to .* + DW_CFA_offset_extended_sf: r65 at cfa\+8 + DW_CFA_advance_loc: 16 to .* + DW_CFA_restore_extended: r65 +diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t +index 5ff057a5e3..6eda1d2dc4 100644 +--- a/ld/testsuite/ld-scripts/print-memory-usage.t ++++ b/ld/testsuite/ld-scripts/print-memory-usage.t +@@ -11,4 +11,6 @@ SECTIONS + *(.data) + *(.rw) + } ++ ++ /DISCARD/ : { *(.note.gnu.property) } + } +diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t +index 723863995e..c3c4eddab4 100644 +--- a/ld/testsuite/ld-scripts/size-2.t ++++ b/ld/testsuite/ld-scripts/size-2.t +@@ -18,4 +18,5 @@ SECTIONS + LONG (SIZEOF (.tdata)) + LONG (SIZEOF (.tbss)) + } :image ++ /DISCARD/ : { *(.note.gnu.property) } + } +diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d +index 2c26639fc0..6b0fde0eed 100644 +--- a/ld/testsuite/ld-x86-64/abs-k1om.d ++++ b/ld/testsuite/ld-x86-64/abs-k1om.d +@@ -2,7 +2,7 @@ + #source: ../ld-i386/abs.s + #source: ../ld-i386/zero.s + #as: --64 -march=k1om +-#ld: -m elf_k1om ++#ld: -m elf_k1om -z noseparate-code + #objdump: -rs -j .text + + .*: file format .* +diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d +index 1fb96d44b7..f87869f9d0 100644 +--- a/ld/testsuite/ld-x86-64/abs-l1om.d ++++ b/ld/testsuite/ld-x86-64/abs-l1om.d +@@ -2,7 +2,7 @@ + #source: ../ld-i386/abs.s + #source: ../ld-i386/zero.s + #as: --64 -march=l1om +-#ld: -m elf_l1om ++#ld: -m elf_l1om -z noseparate-code + #objdump: -rs -j .text + #target: x86_64-*-linux* + +diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d +index b24b018639..d99ab4685d 100644 +--- a/ld/testsuite/ld-x86-64/abs.d ++++ b/ld/testsuite/ld-x86-64/abs.d +@@ -1,7 +1,7 @@ + #name: Absolute non-overflowing relocs + #source: ../ld-i386/abs.s + #source: ../ld-i386/zero.s +-#ld: ++#ld: -z noseparate-code + #objdump: -rs + + .*: file format .* +diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d +index 07d17325d0..2c503ffbaa 100644 +--- a/ld/testsuite/ld-x86-64/pr12718.d ++++ b/ld/testsuite/ld-x86-64/pr12718.d +@@ -1,6 +1,6 @@ + #name: PR ld/12718 + #as: --64 +-#ld: -melf_x86_64 ++#ld: -melf_x86_64 -z noseparate-code + #readelf: -S --wide + + There are 5 section headers, starting at offset 0x[0-9a-f]+: +diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d +index 6fe6abee09..1162d55818 100644 +--- a/ld/testsuite/ld-x86-64/pr12921.d ++++ b/ld/testsuite/ld-x86-64/pr12921.d +@@ -1,6 +1,6 @@ + #name: PR ld/12921 + #as: --64 +-#ld: -melf_x86_64 ++#ld: -melf_x86_64 -z noseparate-code + #readelf: -S --wide + + There are 7 section headers, starting at offset 0x[0-9a-f]+: +diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d +new file mode 100644 +index 0000000000..6d9fa68cdb +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d +@@ -0,0 +1,10 @@ ++#source: pr23486a.s ++#source: pr23486b.s ++#as: --x32 ++#ld: -r -m elf32_x86_64 ++#readelf: -n ++ ++Displaying notes found in: .note.gnu.property ++ Owner Data size Description ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586 +diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d +new file mode 100644 +index 0000000000..dc2b7bf760 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23486a.d +@@ -0,0 +1,10 @@ ++#source: pr23486a.s ++#source: pr23486b.s ++#as: --64 -defsym __64_bit__=1 ++#ld: -r -m elf_x86_64 ++#readelf: -n ++ ++Displaying notes found in: .note.gnu.property ++ Owner Data size Description ++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586 +diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s +new file mode 100644 +index 0000000000..a07d0c7ced +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23486a.s +@@ -0,0 +1,30 @@ ++ .section ".note.gnu.property", "a" ++.ifdef __64_bit__ ++ .p2align 3 ++.else ++ .p2align 2 ++.endif ++ .long 1f - 0f /* name length. */ ++ .long 4f - 1f /* data length. */ ++ /* NT_GNU_PROPERTY_TYPE_0 */ ++ .long 5 /* note type. */ ++0: ++ .asciz "GNU" /* vendor name. */ ++1: ++.ifdef __64_bit__ ++ .p2align 3 ++.else ++ .p2align 2 ++.endif ++ /* GNU_PROPERTY_X86_ISA_1_USED */ ++ .long 0xc0000000 /* pr_type. */ ++ .long 3f - 2f /* pr_datasz. */ ++2: ++ .long 0xa ++3: ++.ifdef __64_bit__ ++ .p2align 3 ++.else ++ .p2align 2 ++.endif ++4: +diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d +new file mode 100644 +index 0000000000..0445e69d82 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d +@@ -0,0 +1,10 @@ ++#source: pr23486b.s ++#source: pr23486a.s ++#as: --x32 ++#ld: -r -m elf32_x86_64 ++#readelf: -n ++ ++Displaying notes found in: .note.gnu.property ++ Owner Data size Description ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586 +diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d +new file mode 100644 +index 0000000000..dd0fe88143 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23486b.d +@@ -0,0 +1,10 @@ ++#source: pr23486b.s ++#source: pr23486a.s ++#as: --64 -defsym __64_bit__=1 ++#ld: -r -m elf_x86_64 ++#readelf: -n ++ ++Displaying notes found in: .note.gnu.property ++ Owner Data size Description ++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586 +diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s +new file mode 100644 +index 0000000000..c5167eeb65 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23486b.s +@@ -0,0 +1,30 @@ ++ .section ".note.gnu.property", "a" ++.ifdef __64_bit__ ++ .p2align 3 ++.else ++ .p2align 2 ++.endif ++ .long 1f - 0f /* name length. */ ++ .long 4f - 1f /* data length. */ ++ /* NT_GNU_PROPERTY_TYPE_0 */ ++ .long 5 /* note type. */ ++0: ++ .asciz "GNU" /* vendor name. */ ++1: ++.ifdef __64_bit__ ++ .p2align 3 ++.else ++ .p2align 2 ++.endif ++ /* GNU_PROPERTY_X86_ISA_1_NEEDED */ ++ .long 0xc0000001 /* pr_type. */ ++ .long 3f - 2f /* pr_datasz. */ ++2: ++ .long 0x3 ++3: ++.ifdef __64_bit__ ++ .p2align 3 ++.else ++ .p2align 2 ++.endif ++4: +diff --git a/ld/testsuite/ld-x86-64/pr23854.d b/ld/testsuite/ld-x86-64/pr23854.d +new file mode 100644 +index 0000000000..95770d3cef +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23854.d +@@ -0,0 +1,28 @@ ++#as: --64 -mrelax-relocations=yes ++#ld: -melf_x86_64 ++#objdump: -dw ++ ++.*: +file format .* ++ ++Disassembly of section .text: ++ ++[a-f0-9]+ <_start>: ++ +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> ++ +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got\+0x8> ++ +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got\+0x8> ++#pass +diff --git a/ld/testsuite/ld-x86-64/pr23854.s b/ld/testsuite/ld-x86-64/pr23854.s +new file mode 100644 +index 0000000000..b720154fb2 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr23854.s +@@ -0,0 +1,33 @@ ++ .data ++ .type bar, @object ++bar: ++ .byte 1 ++ .size bar, .-bar ++ .globl foo ++ .type foo, @object ++foo: ++ .byte 1 ++ .size foo, .-foo ++ .text ++ .globl _start ++ .type _start, @function ++_start: ++ adcw bar@GOTPCREL(%rip), %ax ++ addw bar@GOTPCREL(%rip), %bx ++ andw bar@GOTPCREL(%rip), %cx ++ cmpw bar@GOTPCREL(%rip), %dx ++ orw bar@GOTPCREL(%rip), %di ++ sbbw bar@GOTPCREL(%rip), %si ++ subw bar@GOTPCREL(%rip), %bp ++ xorw bar@GOTPCREL(%rip), %r8w ++ testw %cx, bar@GOTPCREL(%rip) ++ adcw foo@GOTPCREL(%rip), %ax ++ addw foo@GOTPCREL(%rip), %bx ++ andw foo@GOTPCREL(%rip), %cx ++ cmpw foo@GOTPCREL(%rip), %dx ++ orw foo@GOTPCREL(%rip), %di ++ sbbw foo@GOTPCREL(%rip), %si ++ subw foo@GOTPCREL(%rip), %bp ++ xorw foo@GOTPCREL(%rip), %r8w ++ testw %cx, foo@GOTPCREL(%rip) ++ .size _start, .-_start +diff --git a/ld/testsuite/ld-x86-64/pr24151a-x32.d b/ld/testsuite/ld-x86-64/pr24151a-x32.d +new file mode 100644 +index 0000000000..130611ddf4 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr24151a-x32.d +@@ -0,0 +1,4 @@ ++#source: pr24151a.s ++#as: --x32 ++#ld: -shared -melf32_x86_64 ++#error: .*relocation R_X86_64_PC32 against protected symbol `foo' can not be used when making a shared object +diff --git a/ld/testsuite/ld-x86-64/pr24151a.d b/ld/testsuite/ld-x86-64/pr24151a.d +new file mode 100644 +index 0000000000..783b85a1a6 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr24151a.d +@@ -0,0 +1,3 @@ ++#as: --64 ++#ld: -shared -melf_x86_64 ++#error: .*relocation R_X86_64_PC32 against protected symbol `foo' can not be used when making a shared object +diff --git a/ld/testsuite/ld-x86-64/pr24151a.s b/ld/testsuite/ld-x86-64/pr24151a.s +new file mode 100644 +index 0000000000..e4ec7c8ce4 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr24151a.s +@@ -0,0 +1,9 @@ ++ .text ++ .globl bar ++ .type bar,@function ++bar: ++ movl $30, foo(%rip) ++ .size bar, .-bar ++ .protected foo ++ .type foo,@object ++ .comm foo,4,4 +diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r +index 0ed91f5922..d03203c1e5 100644 +--- a/ld/testsuite/ld-x86-64/property-3.r ++++ b/ld/testsuite/ld-x86-64/property-3.r +@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 + Properties: stack size: 0x800000 +- x86 ISA used: 586, SSE + x86 ISA needed: i486, 586 + #pass +diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r +index cb2bc15d9a..da295eb6c7 100644 +--- a/ld/testsuite/ld-x86-64/property-4.r ++++ b/ld/testsuite/ld-x86-64/property-4.r +@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 + Properties: stack size: 0x800000 +- x86 ISA used: i486, 586, SSE + x86 ISA needed: i486, 586, SSE + #pass +diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r +index 552965058c..e4141594b3 100644 +--- a/ld/testsuite/ld-x86-64/property-5.r ++++ b/ld/testsuite/ld-x86-64/property-5.r +@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 + Properties: stack size: 0x900000 +- x86 ISA used: i486, 586, SSE + x86 ISA needed: i486, 586, SSE + #pass +diff --git a/ld/testsuite/ld-x86-64/property-x86-3.s b/ld/testsuite/ld-x86-64/property-x86-3.s +index be8cc9efb1..239cf622ff 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-3.s ++++ b/ld/testsuite/ld-x86-64/property-x86-3.s +@@ -41,7 +41,11 @@ + 3: + + .section ".note.gnu.property", "a" ++.ifdef __64_bit__ + .p2align 3 ++.else ++ .p2align 2 ++.endif + .long 1f - 0f /* name length. */ + .long 3f - 1f /* data length. */ + /* NT_GNU_PROPERTY_TYPE_0 */ +diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d +index 011426f5a4..4cec728dc7 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d ++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d +index 1b4229a037..a8df49a351 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d ++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d +index 290ed6abf1..c112626711 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d ++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d +index 1142e03272..f10dffdc2c 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d ++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d +index 819542d181..0147a3c7b6 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d ++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d +index 4c5d0e0a18..1f8c2dc929 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d ++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d +index ba181e0bc5..7ca2539ca5 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d ++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d +index 5216f385dd..f66a40e449 100644 +--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d ++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d +@@ -6,6 +6,5 @@ + + Displaying notes found in: .note.gnu.property + Owner Data size Description +- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0 +- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1 +- x86 ISA needed: i486, 586, SSE2, SSE3 ++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 ++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3 +diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp +index 6edb9e86f4..ac41d8ea49 100644 +--- a/ld/testsuite/ld-x86-64/x86-64.exp ++++ b/ld/testsuite/ld-x86-64/x86-64.exp +@@ -403,6 +403,13 @@ run_dump_test "pr23372a" + run_dump_test "pr23372a-x32" + run_dump_test "pr23372b" + run_dump_test "pr23372b-x32" ++run_dump_test "pr23486a" ++run_dump_test "pr23486a-x32" ++run_dump_test "pr23486b" ++run_dump_test "pr23486b-x32" ++run_dump_test "pr23854" ++run_dump_test "pr24151a" ++run_dump_test "pr24151a-x32" + + if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} { + return +diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp +index cfbefe9028..1095091882 100644 +--- a/ld/testsuite/lib/ld-lib.exp ++++ b/ld/testsuite/lib/ld-lib.exp +@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } { + continue + } + +- if { [ string match "c++" $lang ] } { ++ if { [ string match "asm" $lang ] } { ++ set link_proc ld_link ++ set link_cmd $ld ++ } elseif { [ string match "c++" $lang ] } { + set link_proc ld_link + set link_cmd $CXX + } else { +diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog +index d04963a9fa..8f89565935 100644 +--- a/opcodes/ChangeLog ++++ b/opcodes/ChangeLog +@@ -1,3 +1,36 @@ ++2018-10-19 Tamar Christina ++ ++ * arm-dis.c (UNKNOWN_INSTRUCTION_32BIT): Format specifier for arm mode. ++ (UNKNOWN_INSTRUCTION_16BIT): Format specifier for thumb mode. ++ (print_insn_arm, print_insn_thumb16, print_insn_thumb32): Use them. ++ ++2018-10-16 Matthew Malcomson ++ ++ * aarch64-opc.c (struct operand_qualifier_data): Change qualifier data ++ corresponding to AARCH64_OPND_QLF_S_4B qualifier. ++ ++2018-10-05 H.J. Lu ++ ++ * i386-dis.c (rm_table): Add enclv. ++ * i386-opc.tbl: Add enclv. ++ * i386-tbl.h: Regenerated. ++ ++2018-07-18 H.J. Lu ++ ++ PR gas/23418 ++ * i386-opc.h (Byte): Update comments. ++ (Word): Likewise. ++ (Dword): Likewise. ++ (Fword): Likewise. ++ (Qword): Likewise. ++ (Tbyte): Likewise. ++ (Xmmword): Likewise. ++ (Ymmword): Likewise. ++ (Zmmword): Likewise. ++ * i386-opc.tbl: Split vcvtps2qq, vcvtps2uqq, vcvttps2qq and ++ vcvttps2uqq. ++ * i386-tbl.h: Regenerated. ++ + 2018-07-18 Nick Clifton + + 2.31.1 Release point. +diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c +index ba2af7bfc2..e59240c98d 100644 +--- a/opcodes/aarch64-opc.c ++++ b/opcodes/aarch64-opc.c +@@ -698,7 +698,7 @@ struct operand_qualifier_data aarch64_opnd_qualifiers[] = + {4, 1, 0x2, "s", OQK_OPD_VARIANT}, + {8, 1, 0x3, "d", OQK_OPD_VARIANT}, + {16, 1, 0x4, "q", OQK_OPD_VARIANT}, +- {1, 4, 0x0, "4b", OQK_OPD_VARIANT}, ++ {4, 1, 0x0, "4b", OQK_OPD_VARIANT}, + + {1, 4, 0x0, "4b", OQK_OPD_VARIANT}, + {1, 8, 0x0, "8b", OQK_OPD_VARIANT}, +@@ -2501,6 +2501,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, + else + num = 16; + num = num / aarch64_get_qualifier_esize (qualifier) - 1; ++ assert (aarch64_get_qualifier_nelem (qualifier) == 1); + + /* Index out-of-range. */ + if (!value_in_range_p (opnd->reglane.index, 0, num)) +diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c +index b6cccc5233..bc97bc2617 100644 +--- a/opcodes/arm-dis.c ++++ b/opcodes/arm-dis.c +@@ -141,6 +141,8 @@ enum opcode_sentinel_enum + } opcode_sentinels; + + #define UNDEFINED_INSTRUCTION "\t\t; instruction: %0-31x" ++#define UNKNOWN_INSTRUCTION_32BIT "\t\t; instruction: %08x" ++#define UNKNOWN_INSTRUCTION_16BIT "\t\t; instruction: %04x" + #define UNPREDICTABLE_INSTRUCTION "\t; " + + /* Common coprocessor opcodes shared between Arm and Thumb-2. */ +@@ -5188,7 +5190,8 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info, long given) + return; + } + } +- abort (); ++ func (stream, UNKNOWN_INSTRUCTION_32BIT, (unsigned)given); ++ return; + } + + /* Print one 16-bit Thumb instruction from PC on INFO->STREAM. */ +@@ -5459,7 +5462,8 @@ print_insn_thumb16 (bfd_vma pc, struct disassemble_info *info, long given) + } + + /* No match. */ +- abort (); ++ func (stream, UNKNOWN_INSTRUCTION_16BIT, (unsigned)given); ++ return; + } + + /* Return the name of an V7M special register. */ +@@ -6083,7 +6087,8 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given) + } + + /* No match. */ +- abort (); ++ func (stream, UNKNOWN_INSTRUCTION_32BIT, (unsigned)given); ++ return; + } + + /* Print data bytes on INFO->STREAM. */ +diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c +index 42d219cb11..78436879fb 100644 +--- a/opcodes/i386-dis.c ++++ b/opcodes/i386-dis.c +@@ -12321,7 +12321,7 @@ static const struct dis386 rm_table[][8] = { + }, + { + /* RM_0F01_REG_0 */ +- { Bad_Opcode }, ++ { "enclv", { Skip_MODRM }, 0 }, + { "vmcall", { Skip_MODRM }, 0 }, + { "vmlaunch", { Skip_MODRM }, 0 }, + { "vmresume", { Skip_MODRM }, 0 }, +diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h +index 9a22b3c95f..f43b5e11eb 100644 +--- a/opcodes/i386-opc.h ++++ b/opcodes/i386-opc.h +@@ -736,23 +736,23 @@ enum + RegMem, + /* Memory. */ + Mem, +- /* BYTE memory. */ ++ /* BYTE size. */ + Byte, +- /* WORD memory. 2 byte */ ++ /* WORD size. 2 byte */ + Word, +- /* DWORD memory. 4 byte */ ++ /* DWORD size. 4 byte */ + Dword, +- /* FWORD memory. 6 byte */ ++ /* FWORD size. 6 byte */ + Fword, +- /* QWORD memory. 8 byte */ ++ /* QWORD size. 8 byte */ + Qword, +- /* TBYTE memory. 10 byte */ ++ /* TBYTE size. 10 byte */ + Tbyte, +- /* XMMWORD memory. */ ++ /* XMMWORD size. */ + Xmmword, +- /* YMMWORD memory. */ ++ /* YMMWORD size. */ + Ymmword, +- /* ZMMWORD memory. */ ++ /* ZMMWORD size. */ + Zmmword, + /* Unspecified memory size. */ + Unspecified, +diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl +index fad588ae3f..99f4d6635a 100644 +--- a/opcodes/i386-opc.tbl ++++ b/opcodes/i386-opc.tbl +@@ -4100,6 +4100,7 @@ xsavec64, 1, 0xfc7, 0x4, 2, CpuXSAVEC|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No + + encls, 0, 0xf01cf, None, 3, CpuSE1, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 } + enclu, 0, 0xf01d7, None, 3, CpuSE1, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 } ++enclv, 0, 0xf01c0, None, 3, CpuSE1, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 } + + // SGX instructions end. + +@@ -5408,11 +5409,13 @@ vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3| + vcvtpd2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM } + + vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM } +-vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM } ++vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM } ++vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM } + vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM } + vcvtps2qq, 3, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegYMM, RegZMM } + vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM } +-vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM } ++vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM } ++vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM } + vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM } + vcvtps2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegYMM, RegZMM } + +@@ -5442,11 +5445,13 @@ vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3 + vcvttpd2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM } + + vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM } +-vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM } ++vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM } ++vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM } + vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM } + vcvttps2qq, 3, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM } + vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM } +-vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM } ++vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM } ++vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM } + vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM } + vcvttps2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM } + +diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h +index d513275deb..42ac313eca 100644 +--- a/opcodes/i386-tbl.h ++++ b/opcodes/i386-tbl.h +@@ -83658,6 +83658,20 @@ const insn_template i386_optab[] = + { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0 } } } }, ++ { "enclv", 0, 0xf01c0, None, 3, ++ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0 } }, ++ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, ++ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0 }, ++ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0 } } } }, + { "vcvtpd2udqx", 2, 0x79, None, 1, + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, +@@ -87881,6 +87895,23 @@ const insn_template i386_optab[] = + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0 } } } }, ++ { "vcvtps2qq", 2, 0x667B, None, 1, ++ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0 } }, ++ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, ++ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0 }, ++ { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } }, ++ { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } } } }, + { "vcvtps2qq", 2, 0x667B, None, 1, + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, +@@ -87892,8 +87923,8 @@ const insn_template i386_optab[] = + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0 }, +- { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, +- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, ++ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, ++ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, + 0, 0, 0 } }, + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, +@@ -87952,6 +87983,23 @@ const insn_template i386_optab[] = + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0 } } } }, ++ { "vcvtps2uqq", 2, 0x6679, None, 1, ++ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0 } }, ++ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, ++ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0 }, ++ { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } }, ++ { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } } } }, + { "vcvtps2uqq", 2, 0x6679, None, 1, + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, +@@ -87963,8 +88011,8 @@ const insn_template i386_optab[] = + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0 }, +- { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, +- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, ++ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, ++ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, + 0, 0, 0 } }, + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, +@@ -88412,6 +88460,23 @@ const insn_template i386_optab[] = + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0 } } } }, ++ { "vcvttps2qq", 2, 0x667A, None, 1, ++ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0 } }, ++ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, ++ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0 }, ++ { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } }, ++ { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } } } }, + { "vcvttps2qq", 2, 0x667A, None, 1, + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, +@@ -88423,8 +88488,8 @@ const insn_template i386_optab[] = + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0 }, +- { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, +- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, ++ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, ++ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, + 0, 0, 0 } }, + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, +@@ -88483,6 +88548,23 @@ const insn_template i386_optab[] = + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0 } } } }, ++ { "vcvttps2uqq", 2, 0x6678, None, 1, ++ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0 } }, ++ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, ++ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0 }, ++ { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } }, ++ { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ++ 0, 0, 0 } } } }, + { "vcvttps2uqq", 2, 0x6678, None, 1, + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, +@@ -88494,8 +88576,8 @@ const insn_template i386_optab[] = + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 0 }, +- { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, +- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, ++ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, ++ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, + 0, 0, 0 } }, + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, +diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt +index ef75e38e7e..d8a9cce1e2 100644 +--- a/opcodes/s390-opc.txt ++++ b/opcodes/s390-opc.txt +@@ -1126,7 +1126,7 @@ e561 tbeginc SIL_RDU "constrained transaction begin" zEC12 zarch htm + b2f8 tend S_00 "transaction end" zEC12 zarch htm + c7 bpp SMI_U0RDP "branch prediction preload" zEC12 zarch + c5 bprp MII_UPP "branch prediction relative preload" zEC12 zarch +-b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch ++b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch htm + b2fa niai IE_UU "next instruction access intent" zEC12 zarch + b98f crdte RRF_RURR2 "compare and replace DAT table entry" zEC12 zarch optparm + e3000000009f lat RXY_RRRD "load and trap 32 bit" zEC12 zarch diff --git a/patches/branch-version.diff b/patches/branch-version.diff new file mode 100644 index 000000000..0e898b88e --- /dev/null +++ b/patches/branch-version.diff @@ -0,0 +1,652 @@ +# DP: Don't bump the version when doing distro builds + +git diff e43d51b14d0039506ec42941001f3ca56387a80e 8db5daf9efe8a6174d3b10ac7bba8c178836e9ce + +Index: b/bfd/ChangeLog +=================================================================== +--- a/bfd/ChangeLog ++++ b/bfd/ChangeLog +@@ -80,15 +80,6 @@ + + 2018-01-27 Nick Clifton + +- Back to development. +- +- * version.m4 (BFD_VERSION): Set to 2.30.0 +- * development.sh: Set to true. +- * configure: Regenerate. +- * po/bfd.pot: Regenerate. +- +-2018-01-27 Nick Clifton +- + This is the 2.30 release: + + * version.m4 (BFD_VERSION): Set to 2.30 +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.30.0. ++# Generated by GNU Autoconf 2.64 for bfd 2.30. + # + # 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.30.0' +-PACKAGE_STRING='bfd 2.30.0' ++PACKAGE_VERSION='2.30' ++PACKAGE_STRING='bfd 2.30' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1354,7 +1354,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.30.0 to adapt to many kinds of systems. ++\`configure' configures bfd 2.30 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1425,7 +1425,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of bfd 2.30.0:";; ++ short | recursive ) echo "Configuration of bfd 2.30:";; + esac + cat <<\_ACEOF + +@@ -1546,7 +1546,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-bfd configure 2.30.0 ++bfd configure 2.30 + generated by GNU Autoconf 2.64 + + Copyright (C) 2009 Free Software Foundation, Inc. +@@ -2188,7 +2188,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.30.0, which was ++It was created by bfd $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + $ $0 $@ +@@ -3997,7 +3997,7 @@ fi + + # Define the identity of the package. + PACKAGE='bfd' +- VERSION='2.30.0' ++ VERSION='2.30' + + + cat >>confdefs.h <<_ACEOF +@@ -16666,7 +16666,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.30.0, which was ++This file was extended by bfd $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -16730,7 +16730,7 @@ Report bugs to the package provider." + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ +-bfd config.status 2.30.0 ++bfd config.status 2.30 + 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 . + + # Controls whether to enable development-mode features by default. +-development=true ++development=false +Index: b/bfd/po/bfd.pot +=================================================================== +--- a/bfd/po/bfd.pot ++++ b/bfd/po/bfd.pot +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" +-"POT-Creation-Date: 2018-01-27 15:36+0000\n" ++"POT-Creation-Date: 2018-01-27 14:58+0000\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +Index: b/bfd/version.m4 +=================================================================== +--- a/bfd/version.m4 ++++ b/bfd/version.m4 +@@ -1 +1 @@ +-m4_define([BFD_VERSION], [2.30.0]) ++m4_define([BFD_VERSION], [2.30]) +Index: b/binutils/ChangeLog +=================================================================== +--- a/binutils/ChangeLog ++++ b/binutils/ChangeLog +@@ -6,12 +6,6 @@ + + 2018-01-27 Nick Clifton + +- Back to development. +- +- * configure: Regenerate. +- +-2018-01-27 Nick Clifton +- + This is the 2.30 release: + + * configure: Regenerate. +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.30.0. ++# Generated by GNU Autoconf 2.64 for binutils 2.30. + # + # 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.30.0' +-PACKAGE_STRING='binutils 2.30.0' ++PACKAGE_VERSION='2.30' ++PACKAGE_STRING='binutils 2.30' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1338,7 +1338,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.30.0 to adapt to many kinds of systems. ++\`configure' configures binutils 2.30 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1409,7 +1409,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of binutils 2.30.0:";; ++ short | recursive ) echo "Configuration of binutils 2.30:";; + esac + cat <<\_ACEOF + +@@ -1530,7 +1530,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-binutils configure 2.30.0 ++binutils configure 2.30 + generated by GNU Autoconf 2.64 + + Copyright (C) 2009 Free Software Foundation, Inc. +@@ -2172,7 +2172,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.30.0, which was ++It was created by binutils $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + $ $0 $@ +@@ -3981,7 +3981,7 @@ fi + + # Define the identity of the package. + PACKAGE='binutils' +- VERSION='2.30.0' ++ VERSION='2.30' + + + cat >>confdefs.h <<_ACEOF +@@ -15233,7 +15233,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.30.0, which was ++This file was extended by binutils $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -15297,7 +15297,7 @@ Report bugs to the package provider." + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ +-binutils config.status 2.30.0 ++binutils config.status 2.30 + 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 +@@ -50,12 +50,6 @@ + + 2018-01-27 Nick Clifton + +- Back to development. +- +- * configure: Regenerate. +- +-2018-01-27 Nick Clifton +- + This is the 2.30 release: + + * 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.30.0. ++# Generated by GNU Autoconf 2.64 for gas 2.30. + # + # 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.30.0' +-PACKAGE_STRING='gas 2.30.0' ++PACKAGE_VERSION='2.30' ++PACKAGE_STRING='gas 2.30' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1330,7 +1330,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.30.0 to adapt to many kinds of systems. ++\`configure' configures gas 2.30 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1401,7 +1401,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of gas 2.30.0:";; ++ short | recursive ) echo "Configuration of gas 2.30:";; + esac + cat <<\_ACEOF + +@@ -1523,7 +1523,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-gas configure 2.30.0 ++gas configure 2.30 + generated by GNU Autoconf 2.64 + + Copyright (C) 2009 Free Software Foundation, Inc. +@@ -1933,7 +1933,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.30.0, which was ++It was created by gas $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + $ $0 $@ +@@ -3742,7 +3742,7 @@ fi + + # Define the identity of the package. + PACKAGE='gas' +- VERSION='2.30.0' ++ VERSION='2.30' + + + cat >>confdefs.h <<_ACEOF +@@ -15224,7 +15224,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.30.0, which was ++This file was extended by gas $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -15288,7 +15288,7 @@ Report bugs to the package provider." + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ +-gas config.status 2.30.0 ++gas config.status 2.30 + configured by $0, generated by GNU Autoconf 2.64, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +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.30.0. ++# Generated by GNU Autoconf 2.64 for gprof 2.30. + # + # 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.30.0' +-PACKAGE_STRING='gprof 2.30.0' ++PACKAGE_VERSION='2.30' ++PACKAGE_STRING='gprof 2.30' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1302,7 +1302,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.30.0 to adapt to many kinds of systems. ++\`configure' configures gprof 2.30 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1373,7 +1373,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of gprof 2.30.0:";; ++ short | recursive ) echo "Configuration of gprof 2.30:";; + esac + cat <<\_ACEOF + +@@ -1479,7 +1479,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-gprof configure 2.30.0 ++gprof configure 2.30 + generated by GNU Autoconf 2.64 + + Copyright (C) 2009 Free Software Foundation, Inc. +@@ -1844,7 +1844,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.30.0, which was ++It was created by gprof $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + $ $0 $@ +@@ -3653,7 +3653,7 @@ fi + + # Define the identity of the package. + PACKAGE='gprof' +- VERSION='2.30.0' ++ VERSION='2.30' + + + cat >>confdefs.h <<_ACEOF +@@ -12787,7 +12787,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.30.0, which was ++This file was extended by gprof $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -12851,7 +12851,7 @@ Report bugs to the package provider." + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ +-gprof config.status 2.30.0 ++gprof config.status 2.30 + 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 +@@ -41,12 +41,6 @@ + + 2018-01-27 Nick Clifton + +- Back to development. +- +- * configure: Regenerate. +- +-2018-01-27 Nick Clifton +- + This is the 2.30 release: + + * configure: Regenerate. +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.30.0. ++# Generated by GNU Autoconf 2.64 for ld 2.30. + # + # 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.30.0' +-PACKAGE_STRING='ld 2.30.0' ++PACKAGE_VERSION='2.30' ++PACKAGE_STRING='ld 2.30' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1352,7 +1352,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.30.0 to adapt to many kinds of systems. ++\`configure' configures ld 2.30 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1423,7 +1423,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of ld 2.30.0:";; ++ short | recursive ) echo "Configuration of ld 2.30:";; + esac + cat <<\_ACEOF + +@@ -1551,7 +1551,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-ld configure 2.30.0 ++ld configure 2.30 + generated by GNU Autoconf 2.64 + + Copyright (C) 2009 Free Software Foundation, Inc. +@@ -2260,7 +2260,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.30.0, which was ++It was created by ld $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + $ $0 $@ +@@ -4070,7 +4070,7 @@ fi + + # Define the identity of the package. + PACKAGE='ld' +- VERSION='2.30.0' ++ VERSION='2.30' + + + cat >>confdefs.h <<_ACEOF +@@ -17870,7 +17870,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.30.0, which was ++This file was extended by ld $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -17934,7 +17934,7 @@ Report bugs to the package provider." + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ +-ld config.status 2.30.0 ++ld config.status 2.30 + 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 +@@ -4,13 +4,6 @@ + + 2018-01-27 Nick Clifton + +- Back to development. +- +- * configure: Regenerate. +- * po/opcodes.pot: Regenerate. +- +-2018-01-27 Nick Clifton +- + This is the 2.30 release: + + * 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.30.0. ++# Generated by GNU Autoconf 2.64 for opcodes 2.30. + # + # 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.30.0' +-PACKAGE_STRING='opcodes 2.30.0' ++PACKAGE_VERSION='2.30' ++PACKAGE_STRING='opcodes 2.30' + PACKAGE_BUGREPORT='' + PACKAGE_URL='' + +@@ -1322,7 +1322,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.30.0 to adapt to many kinds of systems. ++\`configure' configures opcodes 2.30 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1393,7 +1393,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of opcodes 2.30.0:";; ++ short | recursive ) echo "Configuration of opcodes 2.30:";; + esac + cat <<\_ACEOF + +@@ -1500,7 +1500,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-opcodes configure 2.30.0 ++opcodes configure 2.30 + generated by GNU Autoconf 2.64 + + Copyright (C) 2009 Free Software Foundation, Inc. +@@ -1910,7 +1910,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.30.0, which was ++It was created by opcodes $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + $ $0 $@ +@@ -3719,7 +3719,7 @@ fi + + # Define the identity of the package. + PACKAGE='opcodes' +- VERSION='2.30.0' ++ VERSION='2.30' + + + cat >>confdefs.h <<_ACEOF +@@ -13307,7 +13307,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.30.0, which was ++This file was extended by opcodes $as_me 2.30, which was + generated by GNU Autoconf 2.64. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -13371,7 +13371,7 @@ Report bugs to the package provider." + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ +-opcodes config.status 2.30.0 ++opcodes config.status 2.30 + configured by $0, generated by GNU Autoconf 2.64, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Index: b/opcodes/po/opcodes.pot +=================================================================== +--- a/opcodes/po/opcodes.pot ++++ b/opcodes/po/opcodes.pot +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" +-"POT-Creation-Date: 2018-01-27 15:37+0000\n" ++"POT-Creation-Date: 2018-01-27 14:59+0000\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" diff --git a/patches/gold-mips.diff b/patches/gold-mips.diff new file mode 100644 index 000000000..291a2aae6 --- /dev/null +++ b/patches/gold-mips.diff @@ -0,0 +1,39 @@ +# DP: Fix gold on mips64 targets. + +gold/ + +2016-08-09 Aurelien Jarno + + * 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 diff --git a/patches/gold-no-keep-files-mapped.diff b/patches/gold-no-keep-files-mapped.diff new file mode 100644 index 000000000..cdf1bf647 --- /dev/null +++ b/patches/gold-no-keep-files-mapped.diff @@ -0,0 +1,16 @@ +# DP: gold on 32bit archs: Release mapped files after each pass. + +Index: b/gold/options.h +=================================================================== +--- a/gold/options.h ++++ b/gold/options.h +@@ -999,7 +999,8 @@ class General_options + + // k + +- DEFINE_bool(keep_files_mapped, options::TWO_DASHES, '\0', true, ++ DEFINE_bool(keep_files_mapped, options::TWO_DASHES, '\0', ++ sizeof(void*) >= 8, + N_("Keep files mapped across passes"), + N_("Release mapped files after each pass")); + diff --git a/patches/gprof-build.diff b/patches/gprof-build.diff new file mode 100644 index 000000000..82377ee3c --- /dev/null +++ b/patches/gprof-build.diff @@ -0,0 +1,16 @@ +# 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 +- + /* Enable large inode numbers on Mac OS X 10.5. */ + #ifndef _DARWIN_USE_64_BIT_INODE + # define _DARWIN_USE_64_BIT_INODE 1 diff --git a/patches/i18n-fr.diff b/patches/i18n-fr.diff new file mode 100644 index 000000000..ac53b3876 --- /dev/null +++ b/patches/i18n-fr.diff @@ -0,0 +1,13 @@ +Index: b/bfd/po/fr.po +=================================================================== +--- a/bfd/po/fr.po ++++ b/bfd/po/fr.po +@@ -4613,7 +4613,7 @@ msgstr "symbole " + + #: elf64-x86-64.c:1383 elf64-x86-64.c:1393 + msgid "; recompile with -fPIC" +-msgstr "; recompilé avec -fPIC" ++msgstr "; recompilez avec -fPIC" + + #: elf64-x86-64.c:1388 + msgid "undefined " diff --git a/patches/infinity-notes.diff b/patches/infinity-notes.diff new file mode 100644 index 000000000..2f3e34f97 --- /dev/null +++ b/patches/infinity-notes.diff @@ -0,0 +1,187 @@ +# git clone https://gitlab.com/gbenson/binutils-gdb.git gdb/src +# git diff 1f1c02597cc199227226251a2ea51fe5f44b4d6d ec7642f5d7ba9bdbc35f08f3ffa3c360bd4618d0 + +Index: b/include/elf/common.h +=================================================================== +--- a/include/elf/common.h ++++ b/include/elf/common.h +@@ -709,6 +709,7 @@ + #define NT_GNU_BUILD_ID 3 /* Generated by ld --build-id. */ + #define NT_GNU_GOLD_VERSION 4 /* Generated by gold. */ + #define NT_GNU_PROPERTY_TYPE_0 5 /* Generated by gcc. */ ++#define NT_GNU_INFINITY 8995 /* Generated by i8c. */ + + #define NT_GNU_BUILD_ATTRIBUTE_OPEN 0x100 + #define NT_GNU_BUILD_ATTRIBUTE_FUNC 0x101 +Index: b/binutils/readelf.c +=================================================================== +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -16788,6 +16788,8 @@ get_gnu_elf_note_type (unsigned e_type) + return _("NT_GNU_BUILD_ATTRIBUTE_OPEN"); + case NT_GNU_BUILD_ATTRIBUTE_FUNC: + return _("NT_GNU_BUILD_ATTRIBUTE_FUNC"); ++ case NT_GNU_INFINITY: ++ return _("NT_GNU_INFINITY (Infinity function)"); + default: + { + static char buff[64]; +@@ -16997,6 +16999,133 @@ next: + printf ("\n"); + } + ++#define I8_CHUNK_SIGNATURE 1 ++#define I8_CHUNK_STRINGS 4 ++ ++typedef enum ++{ ++ I8_NOTE_OK, ++ I8_NOTE_CORRUPT, ++ I8_NOTE_UNHANDLED, ++} ++i8_err_e; ++ ++static i8_err_e ++infinity_get_string (const char **result, ++ unsigned char **ptr, unsigned char *limit, ++ unsigned char *table_start, ++ unsigned char *table_limit) ++{ ++ dwarf_vma offset; ++ unsigned int length; ++ const char *c; ++ ++ /* Read the offset. */ ++ if (*ptr > limit) ++ return I8_NOTE_CORRUPT; ++ ++ offset = read_uleb128 (*ptr, &length, limit); ++ *ptr += length; ++ if (*ptr > limit) ++ return I8_NOTE_CORRUPT; ++ ++ /* Get the string. */ ++ *result = (const char *) (table_start + offset); ++ ++ /* Check the result. */ ++ for (c = *result; c < (const char *) table_limit; c++) ++ { ++ if (*c == '\0') ++ return I8_NOTE_OK; ++ ++ if (*c < ' ' || *c > '~') ++ return I8_NOTE_UNHANDLED; ++ } ++ ++ return I8_NOTE_CORRUPT; ++} ++ ++static i8_err_e ++print_infinity_note (Elf_Internal_Note *pnote) ++{ ++ unsigned char *ptr = (unsigned char *) pnote->descdata; ++ unsigned char *limit = ptr + pnote->descsz; ++ unsigned char *sig_start = NULL; ++ unsigned char *str_start = NULL; ++ unsigned char *sig_limit, *str_limit; ++ const char *provider, *name, *ptypes, *rtypes; ++ i8_err_e status; ++ ++ /* Locate the info and string table chunks. */ ++ while (ptr < limit) ++ { ++ dwarf_vma type_id, version, size; ++ unsigned int length; ++ ++ type_id = read_uleb128 (ptr, &length, limit); ++ ptr += length; ++ if (ptr >= limit) ++ return I8_NOTE_CORRUPT; ++ ++ version = read_uleb128 (ptr, &length, limit); ++ ptr += length; ++ if (ptr >= limit) ++ return I8_NOTE_CORRUPT; ++ ++ size = read_uleb128 (ptr, &length, limit); ++ ptr += length; ++ if (ptr + size > limit) ++ return I8_NOTE_CORRUPT; ++ ++ switch (type_id) ++ { ++ case I8_CHUNK_SIGNATURE: ++ if (sig_start != NULL || (version != 1 && version != 2)) ++ return I8_NOTE_UNHANDLED; ++ ++ sig_start = ptr; ++ sig_limit = ptr + size; ++ break; ++ ++ case I8_CHUNK_STRINGS: ++ if (str_start != NULL || version != 1) ++ return I8_NOTE_UNHANDLED; ++ ++ str_start = ptr; ++ str_limit = ptr + size; ++ break; ++ } ++ ++ ptr += size; ++ } ++ if (sig_start == NULL || str_start == NULL) ++ return I8_NOTE_UNHANDLED; ++ ++ ptr = sig_start; ++ status = infinity_get_string (&provider, ++ &ptr, sig_limit, ++ str_start, str_limit); ++ if (status != I8_NOTE_OK) ++ return status; ++ status = infinity_get_string (&name, &ptr, sig_limit, ++ str_start, str_limit); ++ if (status != I8_NOTE_OK) ++ return status; ++ status = infinity_get_string (&ptypes, &ptr, sig_limit, ++ str_start, str_limit); ++ if (status != I8_NOTE_OK) ++ return status; ++ status = infinity_get_string (&rtypes, &ptr, sig_limit, ++ str_start, str_limit); ++ if (status != I8_NOTE_OK) ++ return status; ++ ++ printf (_(" Signature: %s::%s(%s)%s\n"), ++ provider, name, ptypes, rtypes); ++ ++ return I8_NOTE_OK; ++} ++ + static bfd_boolean + print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote) + { +@@ -17114,6 +17243,24 @@ print_gnu_note (Filedata * filedata, Elf + printf ("\n"); + } + break; ++ ++ case NT_GNU_INFINITY: ++ { ++ switch (print_infinity_note (pnote)) ++ { ++ case I8_NOTE_OK: ++ break; ++ ++ case I8_NOTE_CORRUPT: ++ printf (_(" \n")); ++ break; ++ ++ case I8_NOTE_UNHANDLED: ++ printf (_(" \n")); ++ break; ++ } ++ break; ++ } + } + + return TRUE; diff --git a/patches/mips64-default-n64.diff b/patches/mips64-default-n64.diff new file mode 100644 index 000000000..a6bdc7f64 --- /dev/null +++ b/patches/mips64-default-n64.diff @@ -0,0 +1,79 @@ +Index: b/bfd/config.bfd +=================================================================== +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -912,11 +912,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 +@@ -344,6 +344,9 @@ changequote([,])dnl + esac + # Decide which ABI to target by default. + case ${target} in ++ mips*64*-linux-gnuabi64) ++ mips_default_abi=N64_ABI ++ ;; + mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ + | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) + mips_default_abi=N32_ABI +Index: b/ld/configure.tgt +=================================================================== +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -464,10 +464,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 +@@ -12725,6 +12725,9 @@ _ACEOF + esac + # Decide which ABI to target by default. + case ${target} in ++ mips*64*-linux-gnuabi64) ++ mips_default_abi=N64_ABI ++ ;; + mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ + | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) + mips_default_abi=N32_ABI diff --git a/patches/pr-ld-16428.diff b/patches/pr-ld-16428.diff new file mode 100644 index 000000000..85f21dd79 --- /dev/null +++ b/patches/pr-ld-16428.diff @@ -0,0 +1,158 @@ +# DP: Proposed patch for PR ld/16428, disallow -shared/-pie, -shared/-static, -pie/-static. + +2014-01-10 H.J. Lu + + 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 + + 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 diff --git a/patches/pr24276.diff b/patches/pr24276.diff new file mode 100644 index 000000000..594a84ddf --- /dev/null +++ b/patches/pr24276.diff @@ -0,0 +1,131 @@ + +Skip symbol defined by linker when checking copy reloc on protected +symbol. + +bfd/ + + PR ld/24276 + * elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined + by linker when checking copy reloc on protected symbol. + +ld/ + + PR ld/24276 + * testsuite/ld-i386/i386.exp: Run PR ld/24276 test. + * testsuite/ld-x86-64/x86-64.exp: Likewise. + * testsuite/ld-i386/pr24276.dso: New file. + * testsuite/ld-i386/pr24276.warn: Likewise. + * testsuite/ld-x86-64/pr24276.dso: Likewise. + * testsuite/ld-x86-64/pr24276.warn: Likewise. +--- + bfd/elf64-x86-64.c | 2 ++ + ld/testsuite/ld-i386/i386.exp | 9 +++++++++ + ld/testsuite/ld-i386/pr24276.dso | 9 +++++++++ + ld/testsuite/ld-i386/pr24276.warn | 1 + + ld/testsuite/ld-x86-64/pr24276.dso | 9 +++++++++ + ld/testsuite/ld-x86-64/pr24276.warn | 1 + + ld/testsuite/ld-x86-64/x86-64.exp | 9 +++++++++ + 7 files changed, 40 insertions(+) + create mode 100644 ld/testsuite/ld-i386/pr24276.dso + create mode 100644 ld/testsuite/ld-i386/pr24276.warn + create mode 100644 ld/testsuite/ld-x86-64/pr24276.dso + create mode 100644 ld/testsuite/ld-x86-64/pr24276.warn + +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index 6a4b366fdd..e193f44e93 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2238,6 +2238,8 @@ check_pic: + bfd_boolean no_copyreloc_p + = (info->nocopyreloc + || (h != NULL ++ && !h->root.linker_def ++ && !h->root.ldscript_def + && eh->def_protected + && elf_has_no_copy_on_protected (h->root.u.def.section->owner))); + if ((sec->flags & SEC_ALLOC) != 0 +diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp +index 5b90362cb0..e51a4c30f6 100644 +--- a/ld/testsuite/ld-i386/i386.exp ++++ b/ld/testsuite/ld-i386/i386.exp +@@ -804,6 +804,15 @@ if { [isnative] + {{objdump {-dw} pr19319.dd}} \ + "pr19319" \ + ] \ ++ [list \ ++ "Build pr24276.so" \ ++ "-shared -nostdlib -nostartfiles \ ++ -Ltmpdir $srcdir/$subdir/pr24276.dso" \ ++ "-Wa,-mx86-used-note=yes" \ ++ { pr19319b.S } \ ++ {{warning_output pr24276.warn}} \ ++ "pr24276.so" \ ++ ] \ + [list \ + "Build property 1" \ + "" \ +diff --git a/ld/testsuite/ld-i386/pr24276.dso b/ld/testsuite/ld-i386/pr24276.dso +new file mode 100644 +index 0000000000..9add115e1c +--- /dev/null ++++ b/ld/testsuite/ld-i386/pr24276.dso +@@ -0,0 +1,9 @@ ++INPUT(pr19319.so) ++SECTIONS { ++ my_section : { ++ __start_my_section = .; ++ *(my_section); ++ __stop_my_section = .; ++ ++ } ++} +diff --git a/ld/testsuite/ld-i386/pr24276.warn b/ld/testsuite/ld-i386/pr24276.warn +new file mode 100644 +index 0000000000..5fcfa343c1 +--- /dev/null ++++ b/ld/testsuite/ld-i386/pr24276.warn +@@ -0,0 +1 @@ ++.*contains output sections.* +diff --git a/ld/testsuite/ld-x86-64/pr24276.dso b/ld/testsuite/ld-x86-64/pr24276.dso +new file mode 100644 +index 0000000000..9add115e1c +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr24276.dso +@@ -0,0 +1,9 @@ ++INPUT(pr19319.so) ++SECTIONS { ++ my_section : { ++ __start_my_section = .; ++ *(my_section); ++ __stop_my_section = .; ++ ++ } ++} +diff --git a/ld/testsuite/ld-x86-64/pr24276.warn b/ld/testsuite/ld-x86-64/pr24276.warn +new file mode 100644 +index 0000000000..5fcfa343c1 +--- /dev/null ++++ b/ld/testsuite/ld-x86-64/pr24276.warn +@@ -0,0 +1 @@ ++.*contains output sections.* +diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp +index 5eb556515f..b03aaced91 100644 +--- a/ld/testsuite/ld-x86-64/x86-64.exp ++++ b/ld/testsuite/ld-x86-64/x86-64.exp +@@ -940,6 +940,15 @@ if { [isnative] && [which $CC] != 0 } { + {{objdump {-dw} pr19319.dd}} \ + "pr19319" \ + ] \ ++ [list \ ++ "Build pr24276.so" \ ++ "-shared -nostdlib -nostartfiles \ ++ -Ltmpdir $srcdir/$subdir/pr24276.dso" \ ++ "-Wa,-mx86-used-note=yes" \ ++ { pr19319b.S } \ ++ {{warning_output pr24276.warn}} \ ++ "pr24276.so" \ ++ ] \ + [list \ + "Build property 1" \ + "" \ + diff --git a/patches/series b/patches/series new file mode 100644 index 000000000..5e80eefa5 --- /dev/null +++ b/patches/series @@ -0,0 +1,37 @@ +branch-updates.diff +#branch-version.diff +branch-no-development.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 +i18n-fr.diff +gold-no-keep-files-mapped.diff + +# trunk backports +pr24276.diff + +# experimental ... +infinity-notes.diff +#binutils-no-development.diff diff --git a/rules b/rules new file mode 100755 index 000000000..f9e3c1ef9 --- /dev/null +++ b/rules @@ -0,0 +1,1845 @@ +#!/usr/bin/make -f +# debian/rules file - for binutils (2.29) +# 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-2017 Canonical Ltd. +# Portions Copyright 2008-2017 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 + +############################################################################### + +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 + +p_bin = binutils +p_com = $(p_bin)-common +p_lib = lib$(p_bin) +p_nat = $(p_bin)-$(subst _,-,$(DEB_HOST_GNU_TYPE)) +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 + +p_hst = $(p_bin)-for-host +p_bld = $(p_bin)-for-build + +p_cross = $(p_bin)-$(subst _,-,$(TARGET)) + +# version used for p_bld/p_hst dependencies +min_ver = 2.30-2 + +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_com = debian/$(p_com) +d_lib = debian/$(p_lib) +d_nat = debian/$(p_nat) +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) + +d_hst = debian/$(p_hst) +d_bld = debian/$(p_bld) + +d_cross = debian/$(p_cross) + +install_dir = install -d -m 755 +install_file = install -m 644 +install_script = install -m 755 +install_binary = install -m 755 -s --strip-program="$(STRIP)" + +NATIVE_ARCHS ?= amd64 i386 arm64 armhf armel mips mipsel mips64el \ + ppc64el s390x +NATIVE_ARCHS += alpha hppa ia64 m68k mips64 powerpc powerpcspe ppc64 \ + riscv64 sh4 sparc64 x32 +NATIVE_ARCHS += hurd-i386 kfreebsd-amd64 kfreebsd-i386 +NATIVE_ARCHS += mipsn32 mipsn32el +NATIVE_ARCHS += mipsn32r6 mipsn32r6el mipsr6 mipsr6el mips64r6 mips64r6el +#NATIVE_ARCHS += nios2 or1k s390 sparc + +src_name := $(shell dpkg-parsechangelog -S Source) +ifeq ($(src_name),binutils) + with_native = yes + with_cross = yes + same_source = yes + ifeq (,$(CROSS_ARCHS)) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32)) + CROSS_ARCHS = s390x ppc64el arm64 armhf armel + CROSS_ARCHS += mips mipsel mips64el + CROSS_ARCHS += alpha hppa m68k + CROSS_ARCHS += powerpc powerpcspe ppc64 sh4 sparc64 + CROSS_ARCHS += ia64 riscv64 + CROSS_ARCHS += kfreebsd-amd64 kfreebsd-i386 hurd-i386 + ifneq (,$(filter $(DEB_HOST_ARCH), i386 x32)) + CROSS_ARCHS += amd64 + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 x32)) + CROSS_ARCHS += i386 + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386)) + CROSS_ARCHS += x32 + endif + else ifeq ($(DEB_HOST_ARCH),arm64) + CROSS_ARCHS = armel armhf amd64 i386 x32 + else ifeq ($(DEB_HOST_ARCH),ppc64) + CROSS_ARCHS = ppc64el + else ifeq ($(DEB_HOST_ARCH),ppc64el) + CROSS_ARCHS = powerpc ppc64 amd64 i386 x32 arm64 armel armhf + else + CROSS_ARCHS = + endif + else + # c-t-b passes this one ... + CROSS_ARCHS := $(filter-out $(DEB_HOST_ARCH),$(CROSS_ARCHS)) + endif +else ifeq ($(src_name),binutils-mipsen) + with_native = + with_cross = yes + same_source = + ifeq (,$(CROSS_ARCHS)) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32 arm64 ppc64el)) + CROSS_ARCHS = mips64 mipsn32 mipsn32el + CROSS_ARCHS += mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el + else + CROSS_ARCHS = + endif + else + # c-t-b passes this one ... + CROSS_ARCHS := $(filter-out $(DEB_HOST_ARCH),$(CROSS_ARCHS)) + endif +else + # binutils-ports ... + with_cross = yes + ifeq (,$(CROSS_ARCHS)) + CROSS_ARCHS ?= m68k sh4 mips64 mips64el + endif +endif + +ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386 x32 hppa)) + with_hppa64 = yes +endif + +with_multiarch := yes + +# disabled: no build-needed restriction used in the autopkg test +ifeq (0,1) +# only build the basic package when running the autopkg tests +ifneq (,$(ADT_TEST_TRIGGERS)) + # c-t-b sets CROSS_ARCHS which has to be respected, can't unset it here + #CROSS_ARCHS := + with_hppa64 := + with_multiarch := +endif +endif + +HOST_ARCHS_armhf = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_armel = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_arm64 = amd64 i386 x32 ppc64el +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_amd64 = arm64 i386 ppc64el x32 +HOST_ARCHS_i386 = amd64 arm64 ppc64el x32 +HOST_ARCHS_ia64 = amd64 i386 x32 +HOST_ARCHS_riscv64 = 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_x32 = amd64 arm64 i386 ppc64el + +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 + +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) + for_target = dpkg-architecture -f -t$(TARGET) -c +else + DEB_TARGET_MULTIARCH = $(DEB_HOST_MULTIARCH) + DEB_TARGET_ARCH = $(DEB_HOST_ARCH) + for_target = +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 s390x \ + x32 kfreebsd-amd64 kfreebsd-i386 hurd-i386 + +ifneq (,$(filter $(DEB_HOST_ARCH), $(gold_targets))) + with_gold = yes + gold_provides = -Vgold:Provides=binutils-gold +endif + +CFLAGS = -g -O2 +CXXFLAGS = -g -O2 +LDFLAGS = +CROSS := $(DEB_HOST_GNU_TYPE)- +CC = $(CROSS)gcc +CXX = $(CROSS)g++ +STRIP = $(CROSS)strip --remove-section=.comment --remove-section=.note + +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') +BUILD_DAY := $(shell date -Idate -u -d "$(BUILD_DATE)") + +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),squeeze wheezy precise trusty)) + DPKG_DEV = dpkg-dev (>= 1.17.11), +endif +ifeq (,$(filter $(distrelease),squeeze wheezy stretch precise trusty xenial zesty artful)) + DPKG_DEV = dpkg-dev (>= 1.19.0.5), +endif + +NJOBS = +# Support parallel= 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 + +programs = addr2line ar as c++filt elfedit gprof ld ld.bfd +programs += nm objcopy objdump ranlib readelf size strings strip +ifeq ($(with_gold),yes) +programs += gold ld.gold dwp +endif + +######################################## + +CONFARGS = \ + --enable-shared \ + --enable-plugins \ + --enable-threads \ + --with-system-zlib \ + --prefix=/$(PF) \ + --enable-deterministic-archives \ + --disable-compressed-debug-sections \ + --enable-new-dtags \ + --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))) + # override buildd admins to run the testsuite anyway ... + ifeq (,$(filter $(DEB_HOST_ARCH), m68k powerpcspe sh4)) + with_check := disabled through DEB_BUILD_OPTIONS + endif +endif +#with_check := disabled for this upload +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 *))) + +############################################################################### + +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: + $(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 test-summary* + rm -rf $(d_bin) $(d_com) $(d_lib) $(d_lib)-dbg $(d_nat) $(d_nat)-dbg \ + $(d_hst) $(d_dev) $(d_mul) $(d_mul)-dbg $(d_mdev) $(d_doc) \ + $(d_hppa64) $(d_hppa64)-dbg $(d_src) $(d_bld) + $(foreach ca,$(CROSS_ARCHS), rm -rf debian/binutils-$(shell echo $(call _gnu_type,$(ca)) | sed 's/_/-/g;s/i586/i686/'){,-dbg}; ) + rm -rf 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 -n -e 's/@dpkg_dev@/$(DPKG_DEV)/;/^Package: binutils-for-build$$/q;p' \ + < 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 + $(foreach ca,$(NATIVE_ARCHS), \ + sed \ + -e 's/@host_archs@/$(ca)$(if $(and $(filter yes,$(with_cross)),$(filter $(ca),$(DEB_HOST_ARCH) $(CROSS_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 + @mkdir -p stamps + touch $@ + +####################### +# 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: + $(checkdir) + env + @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=/ \ + --libdir=/$(PF)/lib/$(DEB_HOST_MULTIARCH) \ + $(SINGLE_CONFARGS) + $(MAKE) -C builddir-single configure-host + @mkdir -p stamps + 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; \ + tsi=test-summary-installed; \ + rm -f $$tsi; \ + if [ -f /usr/share/doc/binutils/test-summary-$(DEB_HOST_ARCH).gz ]; then \ + zcat /usr/share/doc/binutils/test-summary-$(DEB_HOST_ARCH).gz > $$tsi; \ + elif [ -f /usr/share/doc/binutils/test-summary.gz ]; then \ + zcat /usr/share/doc/binutils/test-summary.gz > $$tsi; \ + elif [ -f /usr/share/doc/binutils/test-summary ]; then \ + cat /usr/share/doc/binutils/test-summary > $$tsi; \ + fi; \ + if [ ! -f $$tsi ]; then \ + echo "No test results available for the installed binutils version"; \ + elif [ -x /usr/bin/python3 ]; then \ + echo "Test results, compared with installed binutils:"; \ + if python3 debian/test-suite-compare.py $$tsi 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 \ + riscv64-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: + $(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=/ \ + --libdir=/$(PF)/lib/$(DEB_HOST_MULTIARCH) \ + --enable-targets=$(subst $(SPACE),$(COMMA),$(multiarch_targets)) + $(MAKE) -C builddir-multi configure-host + @mkdir -p stamps + 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.%: + $(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=/ \ + --libdir=/$(PF)/lib/$(call _multiarch,$*) \ + $(if $(filter $*, $(gold_targets)),--enable-ld=default --enable-gold,--disable-gold) \ + --target=$(CROSS_GNU_TYPE) + @mkdir -p stamps + 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-$* + set -e; \ + tsi=test-summary-$*-installed; \ + rm -f $$tsi; \ + if [ -f /usr/share/doc/$(P_CROSS)/test-summary.gz ]; then \ + zcat /usr/share/doc/$(P_CROSS)/test-summary.gz > $$tsi; \ + elif [ -f /usr/share/doc/binutils/test-summary-$*.gz ]; then \ + zcat /usr/share/doc/binutils/test-summary-$*.gz > $$tsi; \ + fi; \ + if [ ! -f $$tsi ]; then \ + echo "No test results available for the installed $(P_CROSS) version"; \ + elif [ -x /usr/bin/python3 ]; then \ + echo "Test results, compared with installed binutils:"; \ + if python3 debian/test-suite-compare.py $$tsi 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 $@ + +stamps/install.%: stamps/build.% + $(checkdir) + @echo BEGIN $@ + rm -rf $(D_CROSS) + env MAKE="$(MAKE) VERSION=$(VERSION)-$*" \ + $(MAKE) -C builddir-$* DESTDIR=$(CURDIR)/$(D_CROSS) 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 + + : # 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 + ln -sf $(CROSS_GNU_TYPE)-ld.bfd $(D_CROSS)/usr/bin/$(CROSS_GNU_TYPE)-ld + + $(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/-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}') + +ifneq (,$(filter $(distrelease),lenny etch squeeze wheezy jessie stretch)) + : # temporary i586-* symlinks for stretch + compat=$$(echo $(CROSS_GNU_TYPE) | sed 's/i686/i586/'); \ + case "$(CROSS_GNU_TYPE)" in i686-*) \ + for i in $(programs); 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 +endif + touch $@ + +############################################################################### + +################# +# hppa64 target # +################# + +stamps/configure-hppa64: + $(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)) \ + --libdir=/$(PF)/lib/hppa64-linux-gnu \ + --target=hppa64-linux-gnu + $(MAKE) -C builddir-hppa64 configure-host + @mkdir -p stamps + 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)) + ifeq ($(TARGET),hppa64-linux-gnu) + build_stamps = stamps/build-hppa64 + else + build_stamps = stamps/build.$(DEB_TARGET_ARCH) + 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)) + ifeq ($(TARGET),hppa64-linux-gnu) + install_stamp = stamps/install-hppa64 + else + install_stamp = stamps/install.$(DEB_TARGET_ARCH) + endif +else + install_stamp = stamps/install +endif +ifeq ($(BACKPORT),true) + install_stamps := +endif +install: $(install_stamp) +stamps/install: checkroot stamps/build $(install_stamps) + $(checkdir) + + rm -fr $(d_bin) $(d_com) $(d_lib) $(d_nat) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_src) $(d_bld) + $(install_dir) $(d_bin) $(d_com) $(d_lib) $(d_nat) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_src) $(d_bld) + + : # install binutils and -dev stuff + env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \ + $(MAKE) -C builddir-single \ + CFLAGS="$(CFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + DESTDIR=$(CURDIR)/$(d_bin) install + + $(install_dir) $(d_com)/$(PF)/share + mv $(d_bin)/$(PF)/share/locale $(d_com)/$(PF)/share/locale + + $(install_dir) $(d_doc)/$(PF)/share + mv $(d_bin)/$(PF)/share/info $(d_doc)/$(PF)/share/info + + $(install_dir) $(d_nat)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts \ + $(d_nat)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + + $(install_dir) $(d_com)/$(PF)/share/man + mv $(d_bin)/$(PF)/share/man/man1 $(d_com)/$(PF)/share/man/. + for f in $(d_com)/$(PF)/share/man/man1/*.1; do \ + sed -i -e '/^\.TH /s/[0-9]*-[0-9]*-[0-9]*/$(BUILD_DAY)/' $$f; \ + done + +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)" \ + DESTDIR=$(CURDIR)/$(d_mul) 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 ~;}' \ + -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_doc)/$(PF)/share/info/configure.* $(d_doc)/$(PF)/share/info/standards.* + +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 + rm -rf $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts +endif + +# rm -rf debian/binutils-*-*-*/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts \ +# debian/binutils-*-gnu/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts + + $(install_dir) $(d_dev)/$(PF)/include + mv $(d_bin)/$(PF)/include/* $(d_dev)/$(PF)/include/ + + $(install_dir) $(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH) $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a \ + $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd.so \ + $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes.so \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so \ + $(d_lib)/$(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/$(DEB_HOST_MULTIARCH)/libbfd.so \ + $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd-multiarch.so + mv $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes.so \ + $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes-multiarch.so + rm -f $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.la \ + $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a + rm -f $(d_mul)/$(PF)/lib*/$(DEB_HOST_MULTIARCH)/libiberty* +endif + + : # Get rid of .la files since libtool obviously has no idea about transient paths + rm -f $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.la + + chmod ugo-x $(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so + $(call strip_package, $(p_lib), $(d_lib)) +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/-linux to exist in any package + rm -rf $(d_bin)/$(PF)/$(DEB_HOST_GNU_TYPE) + + : # Remove windows related manpages + rm -f $(d_com)/$(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_com)/$(PF)/share/man/man1/ld.1 \ + $(d_com)/$(PF)/share/man/man1/ld.bfd.1 + ln -sf $(DEB_HOST_GNU_TYPE)-ld.bfd $(d_bin)/$(PF)/bin/ld + $(install_dir) $(d_com)/$(PF)/share/man/man1 + ln -sf ld.bfd.1.gz $(d_com)/$(PF)/share/man/man1/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)) + find debian -name '*gold' -o -name '*dwp' + if which help2man >/dev/null 2>&1; then \ + help2man -N -n 'The GNU ELF linker' \ + $(d_bin)/$(PF)/bin/ld.gold \ + | sed -e 's,debian/.*-ld.gold,ld.gold,g' \ + -e 's/$(DEB_HOST_GNU_TYPE)-//g' \ + > debian/ld.gold.1; \ + help2man -N -n 'The DWARF packaging utility' \ + $(d_bin)/$(PF)/bin/dwp \ + | sed -e 's,debian/.*-dwp,dwp,g' \ + -e 's/$(DEB_HOST_GNU_TYPE)-//g' \ + > debian/dwp.1; \ + fi + endif + cp debian/dwp.1 $(d_com)/$(PF)/share/man/man1/ + cp debian/ld.gold.1 $(d_com)/$(PF)/share/man/man1/ + ln -s ld.gold.1.gz $(d_com)/$(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. + $(install_dir) $(d_nat)/$(PF)/bin $(d_nat)/$(PF)/share/man/man1 + for i in $(programs); do \ + mv $(d_bin)/$(PF)/bin/$$i $(d_nat)/$(PF)/bin/$(DEB_HOST_GNU_TYPE)-$$i; \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_bin)/$(PF)/bin/$$i; \ + done + ln -sf $(DEB_HOST_GNU_TYPE)-ld.gold $(d_nat)/usr/bin/$(DEB_HOST_GNU_TYPE)-gold + for i in $(programs); do \ + ln -sf $$i.1.gz $(d_nat)/$(PF)/share/man/man1/$(DEB_HOST_GNU_TYPE)-$$i.1.gz; \ + done + $(call strip_package, $(p_nat), $(d_nat)) +ifeq ($(with_multiarch),yes) + 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 $(programs); do \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_nat)/$(PF)/bin/$(TRIPLET_SYMLINK)-$$i; \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i.1.gz $(d_nat)/$(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 $(programs); do \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_nat)/$(PF)/bin/$$gnutype-$$i; \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i.1.gz $(d_nat)/$(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 $(programs); do \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_nat)/$(PF)/bin/$$gnutype-$$i; \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i.1.gz $(d_nat)/$(PF)/share/man/man1/$$gnutype-$$i.1.gz; \ + done + endif +endif + touch $@ + +stamps/install-hppa64: checkroot stamps/build-hppa64 + $(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)" \ + DESTDIR=$(CURDIR)/$(d_hppa64) 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 + + : # 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 + ln -sf hppa64-linux-gnu-ld.bfd $(d_hppa64)/usr/bin/hppa64-linux-gnu-ld + + $(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}') + + : # Don't want /usr/-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/libbinutils' -type d -prune -o \ + -path './debian/binutils*-dbg' -type d -prune -o \ + -path './debian/libbinutils-dbg' -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) .. + + + $(install_dir) $(d_bld)/DEBIAN $(d_bld)/$(PF)/share/doc/ + ln -sf $(p_com) $(d_bld)/$(PF)/share/doc/$(p_bld) + dpkg-gencontrol -P$(d_bld) -p$(p_bld) -Vbinutils:minver=$(min_ver) + chown -R root:root $(d_bld) + chmod -R go=rX $(d_bld) + find $(d_bld) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_bld) .. +endif + +############################################################################### + +####################### +# binary-arch target # +####################### + +binary.%: stamps/install.% install + rm -rf $(D_CROSS)/$(PF)/share/info + + rm -rf $(D_CROSS)/DEBIAN $(D_CROSS)-dbg/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 + $(install_dir) $(D_CROSS)/$(PF)/share/doc/$(p_bin) + ln -sf ../$(P_CROSS)/test-summary.gz \ + $(D_CROSS)/$(PF)/share/doc/$(p_bin)/test-summary-$*.gz +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 $(D_CROSS)-dbg/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="."; if (NF > 2) $$NF=$$NF+1; else $$++NF=1; print }'); \ + fi; \ + date_ext=$(DATE_EXT); \ + [ "$(is_rc)" = yes ] && date_ext=; \ + $(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)" + cd $(D_CROSS) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(D_CROSS)-dbg -p$(P_CROSS)-dbg + cd $(D_CROSS)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + chown -R root:root $(D_CROSS) $(D_CROSS)-dbg + chmod -R go=rX $(D_CROSS) $(D_CROSS)-dbg + find $(D_CROSS) $(D_CROSS)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(D_CROSS) .. + dpkg --build $(D_CROSS)-dbg .. + +binary-for-host: checkroot + $(checkdir) + + rm -fr $(d_hst) + $(install_dir) $(d_hst)/DEBIAN/ $(d_hst)/$(PF)/share/doc/ + ln -sf $(p_com) $(d_hst)/$(PF)/share/doc/$(p_hst) + + rm -f debian/substvars + $(for_target) dpkg-gencontrol -P$(d_hst) -p$(p_hst) \ + -Vbinutils:native=$(if $(TARGET),$(p_cross),$(p_nat)) \ + -Vbinutils:minver=$(min_ver) + + chown -R root:root $(d_hst) + chmod -R go=rX $(d_hst) + + find $(d_hst) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_hst) .. + +binary-arch: checkroot build install binary-for-host \ + $(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="."; if (NF > 2) $$NF=$$NF+1; else $$++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_com).overrides \ + $(d_com)/$(PF)/share/lintian/overrides/$(p_com) + $(install_file) -D debian/$(p_lib).overrides \ + $(d_lib)/$(PF)/share/lintian/overrides/$(p_lib) + $(install_file) -D debian/binutils.overrides \ + $(d_bin)/$(PF)/share/lintian/overrides/$(p_bin) + $(install_dir) $(d_nat)/$(PF)/share/lintian/overrides + sed 's/@PKG@/$(p_nat)/' debian/binutils-triplet.overrides \ + > $(d_nat)/$(PF)/share/lintian/overrides/$(p_nat) +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_dir) $(d_lib)/DEBIAN $(d_lib)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_lib)/DEBIAN/triggers + $(install_file) debian/libbinutils.shlibs $(d_lib)/DEBIAN/shlibs + + $(install_dir) $(d_com)/DEBIAN + + $(install_dir) $(d_nat)/DEBIAN $(d_nat)-dbg/DEBIAN + + $(install_dir) $(d_dev)/DEBIAN + +ifeq ($(with_multiarch),yes) + $(install_dir) $(d_mul)/DEBIAN $(d_mul)-dbg/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 $(d_hppa64)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_hppa64)/DEBIAN/triggers +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_com)/$(PF)/share/doc/$(p_com)/ + $(install_file) debian/changelog $(d_com)/$(PF)/share/doc/$(p_com)/changelog.Debian + $(install_file) debian/copyright $(d_com)/$(PF)/share/doc/$(p_com)/ + + $(install_dir) $(d_lib)/$(PF)/share/doc/ + ln -sf $(p_com) $(d_lib)/$(PF)/share/doc/$(p_lib) + + $(install_dir) $(d_nat)/$(PF)/share/doc/ + ln -sf $(p_lib) $(d_nat)/$(PF)/share/doc/$(p_nat) + + $(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_dir) $(d_nat)/$(PF)/share/doc/$(p_bin) + $(install_file) test-summary \ + $(d_nat)/$(PF)/share/doc/$(p_bin)/test-summary-$(DEB_HOST_ARCH) + gzip -9nf \ + $(d_nat)/$(PF)/share/doc/$(p_bin)/test-summary-$(DEB_HOST_ARCH) +endif +endif + $(install_dir) $(d_com)/$(PF)/share/doc/$(p_bin) + $(install_file) binutils/NEWS debian/README.cross \ + $(d_com)/$(PF)/share/doc/$(p_bin)/ + + $(install_file) binutils/ChangeLog $(d_com)/$(PF)/share/doc/$(p_bin)/changelog + + for pkg in bfd gas gprof ld; do \ + $(install_dir) $(d_com)/$(PF)/share/doc/$(p_bin)/$$pkg; \ + done + $(install_file) bfd/ChangeLog bfd/PORTING bfd/TODO \ + $(d_com)/$(PF)/share/doc/$(p_bin)/bfd/ + $(install_file) gas/ChangeLog gas/NEWS $(d_com)/$(PF)/share/doc/$(p_bin)/gas/ + $(install_file) gprof/ChangeLog gprof/TODO gprof/TEST \ + $(d_com)/$(PF)/share/doc/$(p_bin)/gprof/ + $(install_file) ld/ChangeLog ld/TODO ld/NEWS \ + $(d_com)/$(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_com)/$(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_com)/$(PF)/share/doc/$(p_bin)/gprof/. + + : # Compress stuff that needs it + gzip -9n $(d_bin)/$(PF)/share/doc/$(p_bin)/changelog.Debian + find $(d_com)/$(PF)/share/doc/$(p_bin)/ -type f ! -name bbconv.pl | xargs gzip -9n + gzip -9n $(d_com)/$(PF)/share/doc/$(p_com)/changelog.Debian + gzip -9n $(d_com)/$(PF)/share/man/man1/*.1 + + : # Finish it all up + dpkg-gencontrol -P$(d_bin) -p$(p_bin) \ + $(CONFLICTS_TARGET_$(DEB_HOST_ARCH)) $(gold_provides) \ + -Vbinutils:native=$(p_nat) + cd $(d_bin) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + find $(d_lib) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_lib) -p$(p_lib) + cd $(d_lib) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_lib)-dbg -p$(p_lib)-dbg + cd $(d_lib)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + dpkg-gencontrol -P$(d_com) -p$(p_com) + cd $(d_com) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + find $(d_nat) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_nat) -p$(p_nat) -VextraDepends='libbinutils (= $${binary:Version})' + cd $(d_nat) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_nat)-dbg -p$(p_nat)-dbg -VextraDepends='libbinutils (= $${binary:Version})' + cd $(d_nat)-dbg && 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 + dpkg-gencontrol -P$(d_mul)-dbg -p$(p_mul)-dbg + cd $(d_mul)-dbg && 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 + dpkg-gencontrol -P$(d_hppa64)-dbg -p$(p_hppa64)-dbg + cd $(d_hppa64)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums +endif + + chown -R root:root $(d_bin) $(d_com) $(d_lib) $(d_lib)-dbg $(d_nat) $(d_nat)-dbg $(d_dev) + chmod -R go=rX $(d_bin) $(d_com) $(d_lib) $(d_lib)-dbg $(d_nat) $(d_nat)-dbg $(d_dev) + find $(d_bin) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_bin) .. + find $(d_com) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_com) .. + find $(d_lib) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_lib) .. + find $(d_lib)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_lib)-dbg .. + find $(d_nat) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_nat) .. + find $(d_nat)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_nat)-dbg .. + 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) $(d_mul)-dbg + chmod -R go=rX $(d_mul) $(d_mul)-dbg + find $(d_mul) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_mul) .. + find $(d_mul)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_mul)-dbg .. + + 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)-dbg + chmod -R go=rX $(d_hppa64) $(d_hppa64)-dbg + find $(d_hppa64) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_hppa64) .. + find $(d_hppa64)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + dpkg --build $(d_hppa64)-dbg .. +endif + @echo '==================== Build finished ====================' + ps aux + +endif # Process the following only if $(TARGET) is set +endif # ifndef BACKPORT + +############################################################################### + +define checkdir + test -f bfd/elf32.c -a -f debian/rules +endef + +# if which pkg_create_dbgsym >/dev/null 2>&1; then \ +# pkg_create_dbgsym $1 $2; \ +# fi + +ifeq ($(with_strip),yes) +# strip_package: +define strip_package + $(install_dir) $(strip $2)-dbg/usr/share/doc/ + ln -sf $(strip $1) $(strip $2)-dbg/usr/share/doc/$(strip $1)-dbg + : # Strip shared libraries and binaries + set -e; \ + for i in \ + $(strip $2)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd-*so \ + $(strip $2)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes-*so \ + $$(file $(strip $2)/$(PF)/bin/* |awk -F: '$$0 !~ /script/ {print $$1}'); \ + do \ + test ! -h $$i || continue; test -f $$i || continue; \ + files="$$files $$i"; \ + done; \ + mkdir -p $(strip $2)-dbg/usr/lib/debug/.dwz/$(DEB_HOST_MULTIARCH); \ + dwz=usr/lib/debug/.dwz/$(DEB_HOST_MULTIARCH)/$(strip $1).debug; \ + dwz -m $(strip $2)-dbg/$$dwz -M /$$dwz \ + $$files; \ + $(CROSS)objcopy --compress-debug-sections $(strip $2)-dbg/$$dwz; \ + for i in $$files; do \ + b_id=$$(LC_ALL=C $(CROSS)readelf -n $$i | sed -n 's/ *Build ID: *\([0-9a-f][0-9a-f]*\)/\1/p'); \ + if [ -z "$$b_id" ]; then \ + id=$$(echo $$i | sed -r 's,debian/[^/]+,$2-dbg/usr/lib/debug,'); \ + echo strip $$i; \ + mkdir -p $$(dirname $$id); \ + $(CROSS)objcopy --only-keep-debug $$i $$id; \ + chmod 644 $$id; \ + $(STRIP) $$i; \ + $(CROSS)objcopy --add-gnu-debuglink $$id $$i; \ + else \ + echo "ID: $${b_id} -> $$(echo $$i | sed 's,$(strip $2),,')"; \ + d=usr/lib/debug/.build-id/$${b_id:0:2}; \ + f=$${b_id:2}.debug; \ + mkdir -p $(strip $2)-dbg/$$d; \ + $(CROSS)objcopy --only-keep-debug --compress-debug-sections $$i $(strip $2)-dbg/$$d/$$f; \ + chmod 644 $(strip $2)-dbg/$$d/$$f; \ + $(STRIP) $$i; \ + fi; \ + done +endef +else +define strip_package + $(install_dir) $(strip $2)-dbg/usr/share/doc/ + ln -sf $(strip $1) $(strip $2)-dbg/usr/share/doc/$(strip $1)-dbg +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/configure.% stamps/build.% stamps/install.% diff --git a/source.lintian-overrides b/source.lintian-overrides new file mode 100644 index 000000000..67607c4ec --- /dev/null +++ b/source.lintian-overrides @@ -0,0 +1,8 @@ +# handled via diversions +binutils source: binaries-have-file-conflict + +# wrong positive +binutils source: license-problem-gfdl-invariants + +# yes, we know what we are doing +debian-rules-sets-dpkg-architecture-variable diff --git a/source/format b/source/format new file mode 100644 index 000000000..163aaf8d8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/test-suite-compare.py b/test-suite-compare.py new file mode 100644 index 000000000..737303950 --- /dev/null +++ b/test-suite-compare.py @@ -0,0 +1,230 @@ +#!/usr/bin/python3 + +# Quick'n'dirty regression check for dejagnu testsuites +# Copyright (C) 2003, 2004, 2005, 2006, 2007 James Troup + +# 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] +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() diff --git a/tests/build b/tests/build new file mode 100644 index 000000000..01b124825 --- /dev/null +++ b/tests/build @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +CPUS=$(getconf _NPROCESSORS_ONLN) +case "$CPUS" in + [0-9]|[0-9][0-9]|[0-9][0-9][0-9]) ;; + *) CPUS=1 +esac + +set -x +DEB_BUILD_OPTIONS="parallel=$CPUS nohppa nomult nocross" dpkg-buildpackage -d -B --no-sign diff --git a/tests/control b/tests/control new file mode 100644 index 000000000..9b8825fc1 --- /dev/null +++ b/tests/control @@ -0,0 +1,17 @@ +Tests: build +# this doesn't work well, without building -hppa, -multiarch and -cross packages +#Depends: build-essential +#Restrictions: build-needed +Depends: build-essential, + fakeroot, + autoconf (>= 2.64), + bison, flex, gettext, texinfo, dejagnu, quilt, chrpath, dwz, + python3, file, xz-utils, lsb-release, zlib1g-dev, procps +# build process emits warnings on stderr +Restrictions: allow-stderr + +Tests: libc-link +Depends: build-essential + +Tests: shlib-build +Depends: build-essential diff --git a/tests/libc-link b/tests/libc-link new file mode 100644 index 000000000..09bfc8d81 --- /dev/null +++ b/tests/libc-link @@ -0,0 +1,29 @@ +#!/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 + +set -e + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < libctest.c +#include +#include + +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" diff --git a/tests/shlib-build b/tests/shlib-build new file mode 100644 index 000000000..a2145639c --- /dev/null +++ b/tests/shlib-build @@ -0,0 +1,44 @@ +#!/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 + +set -e + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < 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 < testprog.c +#include + +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" diff --git a/watch b/watch new file mode 100644 index 000000000..69cbc8aeb --- /dev/null +++ b/watch @@ -0,0 +1,2 @@ +version=2 +http://ftp.gnu.org/gnu/binutils/binutils-([\d\.]*).tar.gz -- 2.30.2