1
0

initial import from Debian

version: 2.45-4 (UNRELEASED)
commit: bf4f75f17a4f370adc9bf9feca09710ce76ecc63
This commit is contained in:
2025-08-11 12:46:32 +03:00
commit 8c29d0a2c2
75 changed files with 19903 additions and 0 deletions

38
debian/README.cross vendored Normal file
View File

@@ -0,0 +1,38 @@
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 Add the binutils-<your-target> package to the control file:
rm -f stamps/control
debian/rules stamps/control TARGET=<your-target>
This change is permanent and will survive 'make clean'. If you
need to restore the original debian/control file:
rm -f stamps/control
debian/rules stamps/control TARGET=
o Then build the cross-binutils package:
TARGET=<your-target> dpkg-buildpackage -b -uc -us
or
echo arm >debian/target; dpkg-buildpackage -b -uc -us
(substitute your target name, e.g. "arm" or "m68k", instead of
"<your-target>")
--
Hector Oron <zumbi@debian.org>
Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Matthias Klose <doko@debian.org>
Nikita Youshchenko <yoush@cs.msu.su>

16
debian/README.source vendored Normal file
View File

@@ -0,0 +1,16 @@
This source package builds native packages and packages targeting
debian architectures. To shorten a test build, some of these builds
can be skipped.
DEB_BUILD_OPTIONS="parallel=<N> <option> ..." dpkg-buildpackage ...
Where <option> can be:
- nomult to disable the binutils-multilib build
- nohppa to disable the hppa64 build
- nopgo to disable the PGO/LTO build
- nocheck to disable running the testsuite
- nocross to disable all builds for other targets
To build only a subset of the target architectures, also
set CROSS_ARCHS in the env, e.g. CROSS_ARCHS="arm64 ppc64el"

1
debian/binutils-common.conffiles vendored Normal file
View File

@@ -0,0 +1 @@
remove-on-upgrade /etc/gprofng.rc

5
debian/binutils-common.overrides vendored Normal file
View File

@@ -0,0 +1,5 @@
# big tables
binutils-common binary: manpage-has-errors-from-man
# why? it's in /etc
binutils-common binary: non-etc-file-marked-as-conffile

13
debian/binutils-common.preinst vendored Normal file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
set -e
if [ "$1" = "upgrade" ]; then
if [ -f /etc/gprofng.rc ] && dpkg --compare-versions "$2" lt "2.39-8ubuntu1"; then
if [ "$(md5sum /etc/gprofng.rc | awk '{print $1}')" = "7750fca2f4e81015abe079c379c79fed" ]; then
rm /etc/gprofng.rc
fi
fi
fi
#DEBHELPER#

18
debian/binutils-cross.overrides vendored Normal file
View File

@@ -0,0 +1,18 @@
@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
# yes, libctf libs intended here
@PKG@ binary: link-to-shared-library-in-wrong-package

View File

@@ -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

View File

@@ -0,0 +1,2 @@
# package only has symlinks
binutils-multiarch-dev binary: control-file-is-empty md5sums

13
debian/binutils-multiarch.overrides vendored Normal file
View File

@@ -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

63
debian/binutils-multiarch.postinst.in vendored Normal file
View File

@@ -0,0 +1,63 @@
#! /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

47
debian/binutils-multiarch.postrm.in vendored Normal file
View File

@@ -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

29
debian/binutils-multiarch.preinst.in vendored Normal file
View File

@@ -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

81
debian/binutils-multiarch.prerm.in vendored Normal file
View File

@@ -0,0 +1,81 @@
#! /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

4
debian/binutils-multiarch.shlibs.in vendored Normal file
View File

@@ -0,0 +1,4 @@
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@)
libctf-multiarch 0 binutils-multiarch (>= @DEB_UVER@)
libctf-nobfd-multiarch 0 binutils-multiarch (>= @DEB_UVER@)

2
debian/binutils-triplet.overrides vendored Normal file
View File

@@ -0,0 +1,2 @@
# empty
@PKG@ binary: mismatched-override spelling-error-in-binary

1
debian/binutils.conffiles vendored Normal file
View File

@@ -0,0 +1 @@
/etc/gprofng.rc

2
debian/binutils.overrides vendored Normal file
View File

@@ -0,0 +1,2 @@
# manpages are in binutils-common
binutils binary: no-manual-page

14
debian/binutils.preinst vendored Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/sh
set -e
if test "$1" = upgrade &&
test -e /etc/gprofng.rc.dpkg-old &&
! test -e /etc/gprofng.rc &&
dpkg --compare-cversions "$2" lt "2.43.90"
then
# Moving gprofng.rc from binutils-common to binutils.
mv /etc/gprofng.rc.dpkg-old /etc/gprofng.rc
fi
exit 0

25
debian/binutils.presubj vendored Normal file
View File

@@ -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!

1
debian/binutils.triggers vendored Normal file
View File

@@ -0,0 +1 @@
activate-noawait ldconfig

7209
debian/changelog vendored Normal file

File diff suppressed because it is too large Load Diff

1202
debian/control vendored Normal file

File diff suppressed because it is too large Load Diff

28
debian/control.cross.in vendored Normal file
View File

@@ -0,0 +1,28 @@
Package: binutils-@target@
Priority: optional
Architecture: @host_archs@
Multi-Arch: allowed
Depends: binutils-common (= ${binary:Version}),
${shlibs:Depends}, ${extraDepends}, ${goldnat:Depends},
Suggests: binutils-doc (= ${source:Version}), ${goldnat:Suggests},
Provides: @binutils_alt_triplet@
Breaks: binutils (<< 2.29-6), binutils-dev (<< 2.38.50.20220609-2)
Replaces: binutils (<< 2.29-6), binutils-dev (<< 2.38.50.20220609-2)
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@.

311
debian/control.in vendored Normal file
View File

@@ -0,0 +1,311 @@
Source: binutils
Section: devel
Priority: optional
Maintainer: Matthias Klose <doko@debian.org>
Uploaders: James Troup <binutils@elmo.tasta.io>
Standards-Version: 4.7.2
Build-Depends: autoconf (>= 2.64), @dpkg_dev@
bison, flex, gettext, texinfo, dejagnu, quilt, chrpath, dwz, debugedit (>= 4.16),
python3:any, file, xz-utils, lsb-release, zlib1g-dev, procps, help2man,
libjansson-dev, pkgconf, libzstd-dev,
default-jdk-headless [amd64 arm64 i386 riscv64 x32] <!pkg.binutils.nojava>,
# g++-aarch64-linux-gnu [amd64 i386 ppc64el s390x x32] <!nocheck>,
# g++-arm-linux-gnueabi [amd64 arm64 i386 x32] <!nocheck>,
# g++-arm-linux-gnueabihf [amd64 arm64 i386 ppc64el s390x x32] <!nocheck>,
# g++-powerpc64le-linux-gnu [amd64 arm64 i386 ppc64 s390x x32] <!nocheck>,
# g++-s390x-linux-gnu [amd64 arm64 i386 ppc64el x32] <!nocheck>,
# g++-alpha-linux-gnu [amd64 i386 x32] <!nocheck>,
# g++-hppa-linux-gnu [amd64 i386 x32] <!nocheck>,
# g++-m68k-linux-gnu [amd64 i386 x32] <!nocheck>,
# g++-powerpc-linux-gnu [amd64 i386 ppc64el s390x x32] <!nocheck>,
# g++-powerpc64-linux-gnu [amd64 i386 s390x x32] <!nocheck>,
# g++-riscv64-linux-gnu [amd64 arm64 i386 ppc64el s390x x32] <!nocheck>,
# g++-sh4-linux-gnu [amd64 i386 x32] <!nocheck>,
# g++-sparc64-linux-gnu [amd64 i386 x32] <!nocheck>,
# g++-i686-linux-gnu [amd64 arm64 ppc64el s390x x32] <!nocheck>,
# g++-x86-64-linux-gnu [arm64 i386 ppc64el s390x] <!nocheck>,
# g++-x86-64-linux-gnux32 [amd64 arm64 i386 ppc64el] <!nocheck>,
Build-Conflicts: libelf-dev
Rules-Requires-Root: no
Homepage: https://www.gnu.org/software/binutils/
Vcs-Browser: https://salsa.debian.org/toolchain-team/binutils/tree/binutils-2.45
Vcs-Git: https://salsa.debian.org/toolchain-team/binutils.git -b binutils-2.45
XS-Testsuite: autopkgtest
Package: binutils-for-host
Architecture: any
Depends: ${binutils:native}:any (>= ${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}),
${gold:Depends},
Conflicts: modutils (<< 2.4.19-1), ${extraConflicts},
binutils-multiarch (<< 2.27-8)
Provides: elf-binutils, ${gold:Provides}
Suggests: binutils-doc (>= ${source:Version}), gprofng-gui, ${gold:Suggests},
Breaks:
binutils-aarch64-linux-gnu (<< 2.43.90),
binutils-i686-linux-gnu (<< 2.43.90),
binutils-riscv64-linux-gnu (<< 2.43.90),
binutils-x86-64-linux-gnu (<< 2.43.90),
Replaces:
binutils-common (<< 2.43.90),
binutils-aarch64-linux-gnu (<< 2.43.90),
binutils-i686-linux-gnu (<< 2.43.90),
binutils-riscv64-linux-gnu (<< 2.43.90),
binutils-x86-64-linux-gnu (<< 2.43.90),
Description: GNU assembler, linker and binary utilities
The programs in this package are used to assemble, link and manipulate
binary and object files. They may be used in conjunction with a compiler
and various libraries to build programs.
Package: binutils-dbg
Section: debug
Priority: optional
Architecture: @gprofng_archs@
Depends: binutils (= ${binary:Version}), ${binutils:native}-dbg (= ${binary:Version})
Description: GNU assembler, linker and binary utilities(debug symbols)
This package provides debug symbols for binutils.
Package: libctf-nobfd0
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}
Breaks: libbinutils (<< 2.33.50.20191128-1~)
Replaces: libbinutils (<< 2.33.50.20191128-1~)
Description: Compact C Type Format library (runtime, no BFD dependency)
This package includes the libctf-nobfd shared library. The Compact C Type
Format (CTF) is a way of representing information about a binary program
Package: libctf-nobfd0-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libctf-nobfd0 (= ${binary:Version})
Description: Compact C Type Format library (debug symbols, no BFD dependency)
This package includes the libctf-nobfd shared library. The Compact C Type
Format (CTF) is a way of representing information about a binary program
Package: libctf0
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}, libbinutils (= ${binary:Version})
Description: Compact C Type Format library (runtime, BFD dependency)
This package includes the libctf shared library. The Compact C Type
Format (CTF) is a way of representing information about a binary program
Package: libctf0-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libctf0 (= ${binary:Version})
Description: Compact C Type Format library (debug symbols, BFD dependency)
This package includes the libctf shared library. The Compact C Type
Format (CTF) is a way of representing information about a binary program
Package: libgprofng0
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}, libbinutils (= ${binary:Version})
Description: GNU Next Generation profiler (runtime library)
Gprofng is the GNU Next Generation profiler for analyzing the performance
of Linux applications. Gprofng allows you to:
.
- Profile C / C++ / Java / Scala applications without needing to recompile
- Profile multi-threaded applications
- Analyze and compare multiple experiments
- Use time-based sampling and / or hardware event counters
.
This package includes the libgprofng shared library.
Package: libgprofng0-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libgprofng0 (= ${binary:Version})
Description: GNU Next Generation profiler (debug symbols)
Gprofng is the GNU Next Generation profiler for analyzing the performance
of Linux applications.
.
This package includes the debug symbols for the libgprofng shared library.
Package: libsframe-dev
Architecture: any
Multi-Arch: same
Priority: optional
Section: libdevel
Depends: libsframe2 (= ${binary:Version}), ${shlibs:Depends}
Conflicts: binutils (<< 2.45-1~)
Replaces: binutils (<< 2.45-1~)
Description: Library to handle the SFrame format (development files)
SFrame stands for Simple Frame format. SFrame format keeps track
of the minimal necessary information needed for generating stack traces.
.
This package includes the libsframe header files and static library.
Package: libsframe2
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends}
Description: Library to handle the SFrame format (runtime library)
SFrame stands for Simple Frame format. SFrame format keeps track
of the minimal necessary information needed for generating stack traces.
.
This package includes the libsframe shared library.
Package: libsframe2-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libsframe2 (= ${binary:Version})
Description: Library to handle the SFrame format (debug symbols)
SFrame stands for Simple Frame format. SFrame format keeps track
of the minimal necessary information needed for generating stack traces.
.
This package includes the debug symbols for the libsframe shared library.
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}),
libctf0 (= ${binary:Version}), libctf-nobfd0 (= ${binary:Version}),
libsframe-dev (= ${binary:Version}),
libgprofng0 (= ${binary:Version}) [amd64 arm64 i386 riscv64 x32],
Conflicts: libbfd-dev, binutils (<< 2.43.50.20240819)
Provides: libbfd-dev
Replaces: libbfd-dev, libc5-dev, binutils (<< 2.43.50.20240819)
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,
libjansson-dev, pkgconf, libzstd-dev,
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.38.50.20220527-2), binutils-multiarch (<< 2.38.50.20220527-2)
Replaces: binutils (<< 2.38.50.20220527-2), binutils-multiarch (<< 2.38.50.20220527-2)
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.

42
debian/copyright vendored Normal file
View File

@@ -0,0 +1,42 @@
This is the Debian GNU/Linux prepackaged version of the GNU assembler,
linker, and binary utilities.
This package was put together by me, James Troup <james@nocrew.org>,
from sources, which I obtained from:
ftp://ftp.gnu.org/pub/gnu/binutils/
and:
cvs://:pserver:anoncvs@sources.redhat.com:/cvs/src
It was previously maintained by Christopher C. Chimelis <chris@debian.org>
GNU Binutils is Copyright (C) 1990-2025 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'.

33
debian/dwp.1 vendored Normal file
View File

@@ -0,0 +1,33 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH DWP "1" "January 2025" "GNU dwp (GNU Binutils for Debian) 2.43.90.20250121" "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 <https://sourceware.org/bugzilla/>
.SH COPYRIGHT
Copyright \(co 2025 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.

41
debian/gfdl.texi vendored Normal file
View File

@@ -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

895
debian/ld.gold.1 vendored Normal file
View File

@@ -0,0 +1,895 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH GOLD "1" "January 2025" "GNU gold (GNU Binutils for Debian 2.43.90.20250121) 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\-Bno\-symbolic\fR
Don't bind default visibility defined symbols locally for \fB\-shared\fR (default)
.TP
\fB\-Bsymbolic\-functions\fR
Bind default visibility defined function symbols locally for \fB\-shared\fR
.TP
\fB\-Bsymbolic\fR
Bind default visibility defined symbols locally for \fB\-shared\fR
.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,zstd]
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\-\-dependency\-file\fR FILE
Write a dependency file listing all files read
.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\-\-enable\-linker\-version\fR
Put the linker version string into the .comment section
.TP
\fB\-\-disable\-linker\-version\fR
Put the linker version string into the .note.gnu.gold\-version section (default)
.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 3)
.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 on 64bit architectures)
.TP
\fB\-\-no\-keep\-files\-mapped\fR
Release mapped files after each pass (default on 32bit architectures)
.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 on 64bit architectures)
.TP
\fB\-\-no\-map\-whole\-files\fR
Map relevant file parts to memory (default on 32bit architectures)
.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\-\-package\-metadata\fR [=JSON]
Generate package metadata note
.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\-\-power10\-stubs\fR [=auto,no,yes]
(PowerPC64 only) stubs use power10 insns
.TP
\fB\-\-no\-power10\-stubs\fR
(PowerPC64 only) stubs do not use power10 insns
.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\-\-no\-rosegment\fR
Do not put read\-only non\-executable sections in their own segment (default)
.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 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 unique
Mark DSO to be loaded at most once, and only in the main namespace
.TP
\fB\-z\fR nounique
Do not mark the DSO as one to be loaded only in the main namespace (default)
.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 start\-stop\-visibility=[default,internal,hidden,protected]
ELF symbol visibility for synthesized __start_* and __stop_* symbols
.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
Run gold --help for a list of supported targets and emulations.
.SH "REPORTING BUGS"
Report bugs to <https://sourceware.org/bugzilla/>
.SH COPYRIGHT
Copyright \(co 2025 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.

5
debian/libbinutils.overrides vendored Normal file
View File

@@ -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

2
debian/libbinutils.shlibs.in vendored Normal file
View File

@@ -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@)

1
debian/libctf-nobfd0.shlibs vendored Normal file
View File

@@ -0,0 +1 @@
libctf-nobfd 0 libctf-nobfd0

5
debian/libctf-nobfd0.symbols vendored Normal file
View File

@@ -0,0 +1,5 @@
libctf-nobfd.so.0 libctf-nobfd0 #MINVER#
(symver)LIBCTF_1.0 2.34
(symver)LIBCTF_1.1 2.36
(symver)LIBCTF_1.2 2.37
(symver)LIBCTF_1.3 2.42.90

1
debian/libctf0.shlibs vendored Normal file
View File

@@ -0,0 +1 @@
libctf 0 libctf0

5
debian/libctf0.symbols vendored Normal file
View File

@@ -0,0 +1,5 @@
libctf.so.0 libctf0 #MINVER#
(symver)LIBCTF_1.0 2.34
(symver)LIBCTF_1.1 2.36
(symver)LIBCTF_1.2 2.37
(symver)LIBCTF_1.3 2.42.90

1
debian/libgprofng0.shlibs.in vendored Normal file
View File

@@ -0,0 +1 @@
libgprofng 0 libgprofng0 (>= @DEB_UVER@)

2743
debian/libgprofng0.symbols vendored Normal file

File diff suppressed because it is too large Load Diff

1
debian/libsframe2.shlibs vendored Normal file
View File

@@ -0,0 +1 @@
libsframe 2 libsframe2

3
debian/libsframe2.symbols vendored Normal file
View File

@@ -0,0 +1,3 @@
libsframe.so.2 libsframe2 #MINVER#
(symver)LIBSFRAME_0.0 2.41
(symver)LIBSFRAME_2.0 2.44.90

View File

@@ -0,0 +1,27 @@
Author:
Description: Description: correct where ld scripts are installed
Author: Chris Chimelis <chris@debian.org>
Upstream status: N/A
Date: ??
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -50,7 +50,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS)
# 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@
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -583,7 +583,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CFLAGS)
# 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

View File

@@ -0,0 +1,27 @@
Author: Chris Chimelis <chris@debian.org>
Description: Add more documentation about profiling and -fprofile-arcs.
--- a/gprof/gprof.texi
+++ b/gprof/gprof.texi
@@ -145,6 +145,10 @@ its symbol table and the call graph prof
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 @@ to do the linking, simply specify @samp{
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

View File

@@ -0,0 +1,13 @@
Author: Chris Chimelis <chris@debian.org>
Description: Don't mention monitor(3) which doesn't exist in Debian. (#160654)
--- a/gprof/gprof.texi
+++ b/gprof/gprof.texi
@@ -193,7 +193,7 @@ summarized dynamic call graph and profil
@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;

View File

@@ -0,0 +1,19 @@
Author: David Kimdon <dwhedon@gordian.com>
Description: Specify which filename is causing an error if the filename is a
directory. (#45832)
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -234,6 +234,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)

View File

@@ -0,0 +1,13 @@
Author: Matthias Klose <doko@ubuntu.com>
Description: Explicitly use bash for the ld testsuite.
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -200,7 +200,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
}

View File

@@ -0,0 +1,15 @@
--- 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

View File

@@ -0,0 +1,261 @@
# DP: Add multiarch directories to linker search path for ld and gold.
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -244,6 +244,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
@@ -262,6 +360,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}"
@@ -269,24 +374,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

View File

@@ -0,0 +1,45 @@
Author:
Description: Description: Fix ld-bootstrap testsuite when configured with --enable-plugins
Author: Rafael Espindola
Upstream status: proposed patch
--- a/ld/testsuite/ld-bootstrap/bootstrap.exp
+++ b/ld/testsuite/ld-bootstrap/bootstrap.exp
@@ -56,6 +56,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
@@ -130,6 +139,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 {
@@ -184,6 +198,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"} {

38
debian/patches/135_bfd_soversion.patch vendored Normal file
View File

@@ -0,0 +1,38 @@
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -986,14 +986,14 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
$(AM_V_GEN)\
bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
bfd_version_string="\"$(VERSION)\"" ;\
- bfd_soversion="$(VERSION)" ;\
+ bfd_soversion="$(VERSION)$(BFD_SOVER_EXT)" ;\
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_soversion="$(VERSION).$${bfd_version_date}" ;\
+ bfd_soversion="$(VERSION)$(BFD_SOVER_EXT).$${bfd_version_date}" ;\
fi ;\
$(SED) -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -2455,14 +2455,14 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
$(AM_V_GEN)\
bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
bfd_version_string="\"$(VERSION)\"" ;\
- bfd_soversion="$(VERSION)" ;\
+ bfd_soversion="$(VERSION)$(BFD_SOVER_EXT)" ;\
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_soversion="$(VERSION).$${bfd_version_date}" ;\
+ bfd_soversion="$(VERSION)$(BFD_SOVER_EXT).$${bfd_version_date}" ;\
fi ;\
$(SED) -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \

25
debian/patches/136_bfd_pic.patch vendored Normal file
View File

@@ -0,0 +1,25 @@
Author: Balint Reczey <balint@balintreczey.hu>
Description: Build libbfd with -fPIC to allow linking with PIE binaries
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -57,7 +57,7 @@ ZLIBINC = @zlibinc@
WARN_CFLAGS = @WARN_CFLAGS@
NO_WERROR = @NO_WERROR@
-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(ZSTD_CFLAGS)
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(ZSTD_CFLAGS) -fPIC
AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' @LARGEFILE_CPPFLAGS@
if PLUGINS
bfdinclude_HEADERS += $(INCDIR)/plugin-api.h
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -524,7 +524,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel
# case both are empty.
ZLIB = @zlibdir@ -lz
ZLIBINC = @zlibinc@
-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(ZSTD_CFLAGS)
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(ZSTD_CFLAGS) -fPIC
AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' \
@LARGEFILE_CPPFLAGS@ @HDEFINES@ @COREFLAG@ @TDEFINES@ \
$(CSEARCH) $(CSWITCHES) $(HAVEVECS) @INCINTL@

View File

@@ -0,0 +1,11 @@
--- 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;
}

42
debian/patches/158_ld_system_root.patch vendored Normal file
View File

@@ -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);

View File

@@ -0,0 +1,14 @@
# DP: In ld.texi, remove cross reference to BFD internals documentation.
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -9717,7 +9717,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

25
debian/patches/aarch64-libpath.diff vendored Normal file
View File

@@ -0,0 +1,25 @@
--- a/ld/emulparams/aarch64linux.sh
+++ b/ld/emulparams/aarch64linux.sh
@@ -40,12 +40,15 @@ PLT=".plt ${RELOCATING-0} : ALI
# 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\"

30
debian/patches/armhf-64k-alignment.diff vendored Normal file
View File

@@ -0,0 +1,30 @@
The upstream binutils commit below reduced the section alignment of
armhf executables (including shared libraries) from 64k to 4k, on the
basis that the additional bloat is not justified, given that arm64 hosts
running 64k pagesize kernels with armhf user space are not used in
practice.
However, the situation is slightly different today on Debian, where a
16k pagesize kernel is provided that enables compat support, and is
therefore able to execute armhf user space. The only impediment is the
fact that armhf binaries are no longer compatible with this, due to the
change below.
To accommodate this use case, revert the patch. This makes the generated
executables compatible with compat mode on arm64 systems running 16k
kernels.
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -20356,7 +20356,11 @@ elf32_arm_backend_symbol_processing (bfd
#define ELF_ARCH bfd_arch_arm
#define ELF_TARGET_ID ARM_ELF_DATA
#define ELF_MACHINE_CODE EM_ARM
+#ifdef __QNXTARGET__
#define ELF_MAXPAGESIZE 0x1000
+#else
+#define ELF_MAXPAGESIZE 0x10000
+#endif
#define ELF_COMMONPAGESIZE 0x1000
#define bfd_elf32_mkobject elf32_arm_mkobject

1369
debian/patches/branch-updates.diff vendored Normal file

File diff suppressed because it is too large Load Diff

540
debian/patches/branch-version.diff vendored Normal file
View File

@@ -0,0 +1,540 @@
# DP: Don't bump the version when doing distro builds
git diff 2a07e06e26918c83071cb7c5789439315f505430 2bc7af1ff7732451b6a7b09462a815c3284f9613
diff --git a/bfd/configure b/bfd/configure
index 86561b30ac4..ec09f5bc834 100755
--- 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.69 for bfd 2.45.0.
+# Generated by GNU Autoconf 2.69 for bfd 2.45.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.45.0'
-PACKAGE_STRING='bfd 2.45.0'
+PACKAGE_VERSION='2.45'
+PACKAGE_STRING='bfd 2.45'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1409,7 +1409,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.45.0 to adapt to many kinds of systems.
+\`configure' configures bfd 2.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1480,7 +1480,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bfd 2.45.0:";;
+ short | recursive ) echo "Configuration of bfd 2.45:";;
esac
cat <<\_ACEOF
@@ -1625,7 +1625,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bfd configure 2.45.0
+bfd configure 2.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2219,7 +2219,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.45.0, which was
+It was created by bfd $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3202,7 +3202,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
- VERSION='2.45.0'
+ VERSION='2.45'
cat >>confdefs.h <<_ACEOF
@@ -17754,7 +17754,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.45.0, which was
+This file was extended by bfd $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17820,7 +17820,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-bfd config.status 2.45.0
+bfd config.status 2.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/bfd/development.sh b/bfd/development.sh
index b8014261bfb..8b004da7d52 100644
--- a/bfd/development.sh
+++ b/bfd/development.sh
@@ -16,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Controls whether to enable development-mode features by default.
-development=true
+development=false
# Indicate whether this is a release branch.
experimental=false
diff --git a/bfd/version.m4 b/bfd/version.m4
index 848470098f5..00d03934d68 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.45.0])
+m4_define([BFD_VERSION], [2.45])
diff --git a/binutils/configure b/binutils/configure
index 0ff4539f458..94be22505d4 100755
--- 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.69 for binutils 2.45.0.
+# Generated by GNU Autoconf 2.69 for binutils 2.45.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='binutils'
PACKAGE_TARNAME='binutils'
-PACKAGE_VERSION='2.45.0'
-PACKAGE_STRING='binutils 2.45.0'
+PACKAGE_VERSION='2.45'
+PACKAGE_STRING='binutils 2.45'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1407,7 +1407,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.45.0 to adapt to many kinds of systems.
+\`configure' configures binutils 2.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1478,7 +1478,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of binutils 2.45.0:";;
+ short | recursive ) echo "Configuration of binutils 2.45:";;
esac
cat <<\_ACEOF
@@ -1640,7 +1640,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-binutils configure 2.45.0
+binutils configure 2.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2108,7 +2108,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.45.0, which was
+It was created by binutils $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3091,7 +3091,7 @@ fi
# Define the identity of the package.
PACKAGE='binutils'
- VERSION='2.45.0'
+ VERSION='2.45'
cat >>confdefs.h <<_ACEOF
@@ -16879,7 +16879,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.45.0, which was
+This file was extended by binutils $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16945,7 +16945,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-binutils config.status 2.45.0
+binutils config.status 2.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gas/configure b/gas/configure
index ca149e79195..9c640c870cd 100755
--- 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.69 for gas 2.45.0.
+# Generated by GNU Autoconf 2.69 for gas 2.45.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gas'
PACKAGE_TARNAME='gas'
-PACKAGE_VERSION='2.45.0'
-PACKAGE_STRING='gas 2.45.0'
+PACKAGE_VERSION='2.45'
+PACKAGE_STRING='gas 2.45'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1393,7 +1393,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.45.0 to adapt to many kinds of systems.
+\`configure' configures gas 2.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1464,7 +1464,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gas 2.45.0:";;
+ short | recursive ) echo "Configuration of gas 2.45:";;
esac
cat <<\_ACEOF
@@ -1621,7 +1621,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gas configure 2.45.0
+gas configure 2.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2032,7 +2032,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.45.0, which was
+It was created by gas $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3012,7 +3012,7 @@ fi
# Define the identity of the package.
PACKAGE='gas'
- VERSION='2.45.0'
+ VERSION='2.45'
cat >>confdefs.h <<_ACEOF
@@ -16548,7 +16548,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.45.0, which was
+This file was extended by gas $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16614,7 +16614,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gas config.status 2.45.0
+gas config.status 2.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gprof/configure b/gprof/configure
index e40de173a1e..36ac75e49b3 100755
--- 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.69 for gprof 2.45.0.
+# Generated by GNU Autoconf 2.69 for gprof 2.45.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gprof'
PACKAGE_TARNAME='gprof'
-PACKAGE_VERSION='2.45.0'
-PACKAGE_STRING='gprof 2.45.0'
+PACKAGE_VERSION='2.45'
+PACKAGE_STRING='gprof 2.45'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1351,7 +1351,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.45.0 to adapt to many kinds of systems.
+\`configure' configures gprof 2.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1422,7 +1422,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gprof 2.45.0:";;
+ short | recursive ) echo "Configuration of gprof 2.45:";;
esac
cat <<\_ACEOF
@@ -1541,7 +1541,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gprof configure 2.45.0
+gprof configure 2.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1906,7 +1906,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.45.0, which was
+It was created by gprof $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2886,7 +2886,7 @@ fi
# Define the identity of the package.
PACKAGE='gprof'
- VERSION='2.45.0'
+ VERSION='2.45'
cat >>confdefs.h <<_ACEOF
@@ -14255,7 +14255,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.45.0, which was
+This file was extended by gprof $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14321,7 +14321,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gprof config.status 2.45.0
+gprof config.status 2.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/ld/configure b/ld/configure
index 4afc58566fc..78b54b39eb2 100755
--- 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.69 for ld 2.45.0.
+# Generated by GNU Autoconf 2.69 for ld 2.45.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ld'
PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.45.0'
-PACKAGE_STRING='ld 2.45.0'
+PACKAGE_VERSION='2.45'
+PACKAGE_STRING='ld 2.45'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1436,7 +1436,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.45.0 to adapt to many kinds of systems.
+\`configure' configures ld 2.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1507,7 +1507,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ld 2.45.0:";;
+ short | recursive ) echo "Configuration of ld 2.45:";;
esac
cat <<\_ACEOF
@@ -1690,7 +1690,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ld configure 2.45.0
+ld configure 2.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2222,7 +2222,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.45.0, which was
+It was created by ld $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3206,7 +3206,7 @@ fi
# Define the identity of the package.
PACKAGE='ld'
- VERSION='2.45.0'
+ VERSION='2.45'
cat >>confdefs.h <<_ACEOF
@@ -19661,7 +19661,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.45.0, which was
+This file was extended by ld $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19727,7 +19727,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ld config.status 2.45.0
+ld config.status 2.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/opcodes/configure b/opcodes/configure
index 3dd6b692f89..d878234c88f 100755
--- 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.69 for opcodes 2.45.0.
+# Generated by GNU Autoconf 2.69 for opcodes 2.45.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='opcodes'
PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.45.0'
-PACKAGE_STRING='opcodes 2.45.0'
+PACKAGE_VERSION='2.45'
+PACKAGE_STRING='opcodes 2.45'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1368,7 +1368,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.45.0 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.45 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1439,7 +1439,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of opcodes 2.45.0:";;
+ short | recursive ) echo "Configuration of opcodes 2.45:";;
esac
cat <<\_ACEOF
@@ -1560,7 +1560,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-opcodes configure 2.45.0
+opcodes configure 2.45
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1971,7 +1971,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.45.0, which was
+It was created by opcodes $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2951,7 +2951,7 @@ fi
# Define the identity of the package.
PACKAGE='opcodes'
- VERSION='2.45.0'
+ VERSION='2.45'
cat >>confdefs.h <<_ACEOF
@@ -14623,7 +14623,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.45.0, which was
+This file was extended by opcodes $as_me 2.45, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14689,7 +14689,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-opcodes config.status 2.45.0
+opcodes config.status 2.45
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

435
debian/patches/env-package-metadata.diff vendored Normal file
View File

@@ -0,0 +1,435 @@
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -98,6 +98,18 @@ ldelf_after_parse (void)
fatal (_("%P: common page size (0x%v) > maximum page size (0x%v)\n"),
link_info.commonpagesize, link_info.maxpagesize);
}
+
+ if (!ldelf_emit_note_fdo_package_metadata)
+ {
+ char *package_metadata = getenv("ELF_PACKAGE_METADATA");
+
+ if (package_metadata)
+ {
+ char * const p = xmalloc (strlen (package_metadata) + 1);
+ strcpy (p, package_metadata);
+ ldelf_emit_note_fdo_package_metadata = (const char *)p;
+ }
+ }
}
/* Handle the generation of DT_NEEDED tags. */
--- a/Makefile.in
+++ b/Makefile.in
@@ -2823,6 +2823,8 @@ do-check:
@: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ echo "Unset ELF_PACKAGE_METADATA for tests"; \
+ export -n ELF_PACKAGE_METADATA; \
$(MAKE) $(RECURSE_FLAGS_TO_PASS) check-host check-target
# Automated reporting of test results.
@@ -4328,6 +4330,7 @@ check-bfd:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/bfd && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -5468,6 +5471,7 @@ check-opcodes:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/opcodes && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -6608,6 +6612,7 @@ check-binutils:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/binutils && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -7533,6 +7538,7 @@ check-cgen:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/cgen && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -8001,6 +8007,7 @@ check-dejagnu:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/dejagnu && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -8469,6 +8476,7 @@ check-etc:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/etc && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -10094,6 +10102,7 @@ check-fixincludes:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/fixincludes && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -11674,6 +11683,7 @@ check-gas:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gas && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -12823,6 +12833,7 @@ check-gcc:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gcc && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -13972,6 +13983,7 @@ check-gmp:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gmp && \
$(MAKE) $(FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -15109,6 +15121,7 @@ check-mpfr:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/mpfr && \
$(MAKE) $(FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -16246,6 +16259,7 @@ check-mpc:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/mpc && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -17383,6 +17397,7 @@ check-isl:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/isl && \
$(MAKE) $(FLAGS_TO_PASS) V=1 $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -18511,6 +18526,7 @@ check-gold:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gold && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -18965,6 +18981,7 @@ check-gprof:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gprof && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -19433,6 +19450,7 @@ check-gprofng:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gprofng && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -20596,6 +20614,7 @@ check-gettext:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gettext && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -20899,6 +20918,7 @@ check-tcl:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/tcl && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -21352,6 +21372,7 @@ check-itcl:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/itcl && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -22506,6 +22527,7 @@ check-ld:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/ld && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -23646,6 +23668,7 @@ check-libbacktrace:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libbacktrace && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -24786,6 +24809,7 @@ check-libcpp:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libcpp && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -25926,6 +25950,7 @@ check-libcody:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libcody && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -26915,6 +26940,7 @@ check-libdecnumber:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libdecnumber && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -27354,6 +27380,7 @@ check-libgui:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libgui && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -28517,6 +28544,7 @@ check-libiberty:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libiberty && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -29666,6 +29694,7 @@ check-libiberty-linker-plugin:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
$(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -30815,6 +30844,7 @@ check-libiconv:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libiconv && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -31164,6 +31194,7 @@ check-m4:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/m4 && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -31632,6 +31663,7 @@ check-readline:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/readline && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -32100,6 +32132,7 @@ check-sid:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/sid && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -32568,6 +32601,7 @@ check-sim:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/sim && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -33036,6 +33070,7 @@ check-texinfo:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/texinfo && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -34623,6 +34658,7 @@ check-gnulib:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gnulib && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -35091,6 +35127,7 @@ check-gdbsupport:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gdbsupport && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -35559,6 +35596,7 @@ check-gdbserver:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gdbserver && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -36027,6 +36065,7 @@ check-gdb:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gdb && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -36495,6 +36534,7 @@ check-expect:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/expect && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -36963,6 +37003,7 @@ check-guile:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/guile && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -37431,6 +37472,7 @@ check-tk:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/tk && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -38763,6 +38805,7 @@ check-c++tools:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/c++tools && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -39215,6 +39258,7 @@ check-gnattools:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gnattools && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -40378,6 +40422,7 @@ check-lto-plugin:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/lto-plugin && \
$(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -40832,6 +40877,7 @@ check-libcc1:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libcc1 && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -41300,6 +41346,7 @@ check-gotools:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/gotools && \
$(MAKE) $(FLAGS_TO_PASS) check)
@@ -42454,6 +42501,7 @@ check-libctf:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libctf && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -43594,6 +43642,7 @@ check-libsframe:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libsframe && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@@ -44048,6 +44097,7 @@ check-libgrust:
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/libgrust && \
$(MAKE) $(FLAGS_TO_PASS) check)
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -1008,6 +1008,8 @@ do-check:
@: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ echo "Unset ELF_PACKAGE_METADATA for tests"; \
+ export -n ELF_PACKAGE_METADATA; \
$(MAKE) $(RECURSE_FLAGS_TO_PASS) check-host check-target
# Automated reporting of test results.
@@ -1389,6 +1391,7 @@ check-[+module+]:
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) [+ IF bootstrap +]$(EXTRA_HOST_EXPORTS)[+
ENDIF bootstrap +] \
+ export -n ELF_PACKAGE_METADATA; \
(cd $(HOST_SUBDIR)/[+module+] && \
$(MAKE) $(FLAGS_TO_PASS) [+extra_make_flags+][+
IF bootstrap +] $(EXTRA_BOOTSTRAP_FLAGS)[+ ENDIF bootstrap +] check)

14
debian/patches/gprof-build.diff vendored Normal file
View File

@@ -0,0 +1,14 @@
# DP: Fix gprof build error.
--- a/gprof/gconfig.in
+++ b/gprof/gconfig.in
@@ -117,9 +117,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

54
debian/patches/gprofng-cross-build.diff vendored Normal file
View File

@@ -0,0 +1,54 @@
--- a/gprofng/configure.ac
+++ b/gprofng/configure.ac
@@ -212,24 +212,22 @@ AM_ZLIB
# Generate manpages, if possible.
build_man=false
build_doc=false
-if test $cross_compiling = no; then
- AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
- case "x$MAKEINFO" in
- x | */missing\ makeinfo*)
- AC_MSG_WARN([gprofng: makeinfo is missing. Info documentation will not be built.])
- ;;
- *)
- case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in
- x*\ [[1-5]].*|x*\ 6.[[0-4]].* )
- AC_MSG_WARN([gprofng: $MAKEINFO is too old. Info documentation will not be built.])
- MAKEINFO="@echo $MAKEINFO is too old, 6.5 or newer required; true"
- ;;
- x* ) build_doc=true ;;
- esac
- ;;
- esac
- AC_SUBST(MAKEINFO)
-fi
+AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
+case "x$MAKEINFO" in
+ x | */missing\ makeinfo*)
+ AC_MSG_WARN([gprofng: makeinfo is missing. Info documentation will not be built.])
+ ;;
+ *)
+ case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in
+ x*\ [[1-5]].*|x*\ 6.[[0-4]].* )
+ AC_MSG_WARN([gprofng: $MAKEINFO is too old. Info documentation will not be built.])
+ MAKEINFO="@echo $MAKEINFO is too old, 6.5 or newer required; true"
+ ;;
+ x* ) build_doc=true ;;
+ esac
+ ;;
+ esac
+AC_SUBST(MAKEINFO)
AM_CONDITIONAL([BUILD_MAN], [test x$build_man = xtrue])
AM_CONDITIONAL([BUILD_DOC], [test x$build_doc = xtrue])
--- a/gprofng/configure
+++ b/gprofng/configure
@@ -17011,7 +17011,7 @@ fi
# Generate manpages, if possible.
build_man=false
build_doc=false
-if test $cross_compiling = no; then
+if :; then
for ac_prog in makeinfo
do
# Extract the first word of "$ac_prog", so it can be a program name with args.

View File

@@ -0,0 +1,28 @@
Author: James Addison <jay@jp-hosting.net>
Description: Generate a deterministic gprofng example documentation tarball
Bug-Debian: https://bugs.debian.org/1090395
Bug-Debian: https://bugs.debian.org/1092870
Last-Update: 2025-01-13
--- a/gprofng/doc/Makefile.am
+++ b/gprofng/doc/Makefile.am
@@ -61,7 +61,7 @@ EXTRA_DIST = $(man_MANS) version.texi
info: $(man_MANS)
examples.tar.gz:
- $(AM_V_at)( tar czf $@ $(srcdir)/../examples )
+ $(AM_V_at)( tar czf $@ --sort=name --mtime="@${SOURCE_DATE_EPOCH}" --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime --mode=a=rX,u+w $(srcdir)/../examples )
.PHONY: install-data-local
--- a/gprofng/doc/Makefile.in
+++ b/gprofng/doc/Makefile.in
@@ -895,7 +895,7 @@ gprofng-display-text.1: $(srcdir)/gprofn
info: $(man_MANS)
examples.tar.gz:
- $(AM_V_at)( tar czf $@ $(srcdir)/../examples )
+ $(AM_V_at)( tar czf $@ --sort=name --mtime="@${SOURCE_DATE_EPOCH}" --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime --mode=a=rX,u+w $(srcdir)/../examples )
.PHONY: install-data-local

1030
debian/patches/libctf-soname.diff vendored Normal file

File diff suppressed because it is too large Load Diff

12
debian/patches/mips-hack.diff vendored Normal file
View File

@@ -0,0 +1,12 @@
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -16762,6 +16762,9 @@ parse_code_option (char * name)
else
return OPTION_TYPE_BAD;
+ if (mips_opts.isa == ISA_MIPS1 && mips_opts.fp == 0)
+ mips_opts.isa = ISA_MIPS2;
+
return isa_set ? OPTION_TYPE_ISA : OPTION_TYPE_NORMAL;
}

8
debian/patches/perl-shebang.diff vendored Normal file
View File

@@ -0,0 +1,8 @@
--- a/gprofng/gp-display-html/gp-display-html.in
+++ b/gprofng/gp-display-html/gp-display-html.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/usr/bin/perl
# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# Contributed by Oracle.
#

158
debian/patches/pr-ld-16428.diff vendored Normal file
View File

@@ -0,0 +1,158 @@
# DP: Proposed patch for PR ld/16428, disallow -shared/-pie, -shared/-static, -pie/-static.
2014-01-10 H.J. Lu <hongjiu.lu@intel.com>
PR ld/16428
* ld.texinfo: Updated for -static/-non_shared change.
* ldlex.h (option_values): Add OPTION_STATIC.
* lexsup.c (ld_options): Use OPTION_STATIC for -static/-non_shared.
(parse_args): Handle OPTION_STATIC. Disallow -shared and -pie,
-shared and -static, -pie and -static.
2014-01-10 H.J. Lu <hongjiu.lu@intel.com>
PR ld/16428
* ld-elf/pr16428a.d: New file.
* ld-elf/pr16428b.d: Likewise.
* ld-elf/pr16428c.d: Likewise.
* ld-elf/pr16428d.d: Likewise.
diff --git a/ld/ld.texinfo b/ld/ld.texinfo
index ae3d568..bddfdfe 100644
--- a/ld/ld.texinfo
+++ b/ld/ld.texinfo
@@ -1204,11 +1204,11 @@ platforms for which shared libraries are supported. The different
variants of this option are for compatibility with various systems. You
may use this option multiple times on the command line: it affects
library searching for @option{-l} options which follow it. This
-option also implies @option{--unresolved-symbols=report-all}. This
-option can be used with @option{-shared}. Doing so means that a
-shared library is being created but that all of the library's external
-references must be resolved by pulling in entries from static
-libraries.
+option also implies @option{--unresolved-symbols=report-all}.
+@option{-Bstatic} and @option{-dn} can be used with @option{-shared}.
+Doing so means that a shared library is being created but that all of
+the library's external references must be resolved by pulling in entries
+from static libraries.
@kindex -Bsymbolic
@item -Bsymbolic
diff --git a/ld/ldlex.h b/ld/ldlex.h
index 99f4282..6f237dc 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -49,6 +49,7 @@ enum option_values
OPTION_NO_WARN_SEARCH_MISMATCH,
OPTION_NOINHIBIT_EXEC,
OPTION_NON_SHARED,
+ OPTION_STATIC,
OPTION_NO_WHOLE_ARCHIVE,
OPTION_OFORMAT,
OPTION_RELAX,
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 2f71750..a366613 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -269,9 +269,9 @@ static const struct ld_option ld_options[] =
'\0', NULL, N_("Do not link against shared libraries"), ONE_DASH },
{ {"dn", no_argument, NULL, OPTION_NON_SHARED},
'\0', NULL, NULL, ONE_DASH },
- { {"non_shared", no_argument, NULL, OPTION_NON_SHARED},
+ { {"non_shared", no_argument, NULL, OPTION_STATIC},
'\0', NULL, NULL, ONE_DASH },
- { {"static", no_argument, NULL, OPTION_NON_SHARED},
+ { {"static", no_argument, NULL, OPTION_STATIC},
'\0', NULL, NULL, ONE_DASH },
{ {"Bsymbolic", no_argument, NULL, OPTION_SYMBOLIC},
'\0', NULL, N_("Bind global references locally"), ONE_DASH },
@@ -523,6 +523,7 @@ parse_args (unsigned argc, char **argv)
struct option *really_longopts;
int last_optind;
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
+ bfd_boolean seen_pie = FALSE, seen_shared = FALSE, seen_static = FALSE;
shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
longopts = (struct option *)
@@ -707,6 +708,8 @@ parse_args (unsigned argc, char **argv)
case OPTION_CALL_SHARED:
input_flags.dynamic = TRUE;
break;
+ case OPTION_STATIC:
+ seen_static = TRUE;
case OPTION_NON_SHARED:
input_flags.dynamic = FALSE;
break;
@@ -1087,6 +1090,7 @@ parse_args (unsigned argc, char **argv)
case OPTION_SHARED:
if (config.has_shared)
{
+ seen_shared = TRUE;
link_info.shared = TRUE;
/* When creating a shared library, the default
behaviour is to ignore any unresolved references. */
@@ -1101,6 +1105,7 @@ parse_args (unsigned argc, char **argv)
case OPTION_PIE:
if (config.has_shared)
{
+ seen_pie = TRUE;
link_info.shared = TRUE;
link_info.pie = TRUE;
}
@@ -1445,6 +1450,16 @@ parse_args (unsigned argc, char **argv)
}
}
+ if (seen_shared)
+ {
+ if (seen_pie)
+ einfo (_("%P%F: -shared and -pie are incompatible\n"));
+ if (seen_static)
+ einfo (_("%P%F: -shared and -static are incompatible\n"));
+ }
+ if (seen_pie && seen_static)
+ einfo (_("%P%F: -pie and -static are incompatible\n"));
+
while (ingroup)
{
lang_leave_group ();
diff --git a/ld/testsuite/ld-elf/pr16428a.d b/ld/testsuite/ld-elf/pr16428a.d
new file mode 100644
index 0000000..8f5e833
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr16428a.d
@@ -0,0 +1,4 @@
+#source: start.s
+#ld: -shared -static
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+#error: -shared and -static are incompatible
diff --git a/ld/testsuite/ld-elf/pr16428b.d b/ld/testsuite/ld-elf/pr16428b.d
new file mode 100644
index 0000000..f4ccba0
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr16428b.d
@@ -0,0 +1,4 @@
+#source: start.s
+#ld: -shared -non_shared
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+#error: -shared and -static are incompatible
diff --git a/ld/testsuite/ld-elf/pr16428c.d b/ld/testsuite/ld-elf/pr16428c.d
new file mode 100644
index 0000000..747e8da
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr16428c.d
@@ -0,0 +1,4 @@
+#source: start.s
+#ld: -shared -pie
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+#error: -shared and -pie are incompatible
diff --git a/ld/testsuite/ld-elf/pr16428d.d b/ld/testsuite/ld-elf/pr16428d.d
new file mode 100644
index 0000000..6e7a915
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr16428d.d
@@ -0,0 +1,4 @@
+#source: start.s
+#ld: -pie -static
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+#error: -pie and -static are incompatible

11
debian/patches/pr32392-workaround.diff vendored Normal file
View File

@@ -0,0 +1,11 @@
--- a/gprofng/libcollector/Makefile.in
+++ b/gprofng/libcollector/Makefile.in
@@ -441,7 +441,7 @@ CSOURCES = \
collector.c \
$(NULL)
-AM_CFLAGS = $(GPROFNG_CFLAGS) $(GPROFNG_NO_NONNULL_COMPARE_CFLAGS)
+AM_CFLAGS = $(GPROFNG_CFLAGS) $(GPROFNG_NO_NONNULL_COMPARE_CFLAGS) -Wno-incompatible-pointer-types
AM_CPPFLAGS = $(GPROFNG_CPPFLAGS) -I.. -I$(srcdir) \
-I$(srcdir)/../common -I$(srcdir)/../src \
-I$(srcdir)/../../include

37
debian/patches/series vendored Normal file
View File

@@ -0,0 +1,37 @@
branch-updates.diff
branch-version.diff
001_ld_makefile_patch.patch
002_gprof_profile_arcs.patch
003_gprof_see_also_monitor.patch
006_better_file_error.patch
013_bash_in_ld_testsuite.patch
128_ppc64_powerpc_biarch.patch
129_multiarch_libpath.patch
131_ld_bootstrap_testsuite.patch
135_bfd_soversion.patch
136_bfd_pic.patch
157_ar_scripts_with_tilde.patch
#158_ld_system_root.patch
# only applied for GFDL builds
164_ld_doc_remove_xref.diff
gprof-build.diff
aarch64-libpath.diff
#pr-ld-16428.diff
# trunk backports
libctf-soname.diff
mips-hack.diff
perl-shebang.diff
env-package-metadata.diff
pr32392-workaround.diff
# https://sourceware.org/bugzilla/show_bug.cgi?id=30033
armhf-64k-alignment.diff
gprofng-examples-tgz-deterministic.diff
gprofng-cross-build.diff

2066
debian/rules vendored Executable file

File diff suppressed because it is too large Load Diff

236
debian/rules.defs vendored Normal file
View File

@@ -0,0 +1,236 @@
# these macros are also used for binutils & gcc combined builds
# these must not conflict with definitions in the gcc packaging
# GCC must use: BINUTILS_GCCCONF BINUTILS_GCCENV
# macros that have to be defined before inclusion:
# DEB_HOST_ARCH, BASE_VERSION (GCC)
# only used in the GCC sources
bd_binutils_only = file, help2man, libjansson-dev,
# Map a Debian architecture alias to a GNU type or a multiarch path component.
run_dpkg_arch = $(or $(dpkg_arch_$1),$(eval \
dpkg_arch_$1 := $(shell dpkg-architecture -f -a$1))$(dpkg_arch_$1))
_gnu_type = $(call vafilt,$(run_dpkg_arch),DEB_HOST_GNU_TYPE)
_multiarch = $(call vafilt,$(run_dpkg_arch),DEB_HOST_MULTIARCH)
gprofng_archs = amd64 i386 arm64 x32 riscv64
ifneq (,$(filter $(DEB_HOST_ARCH), $(gprofng_archs)))
with_gprofng = yes
CONF_GPROFNG = --enable-gprofng
ifeq (,$(findstring pkg.binutils.nojava, $(DEB_BUILD_PROFILES)))
CONF_GPROFNG += --with-jdk=/usr/lib/jvm/default-java
endif
endif
gold_targets = \
amd64 arm64 armel armhf i386 \
powerpc ppc64 ppc64el sparc sparc64 s390x \
x32 hurd-amd64 hurd-i386
# cannot handles gnu hashstyle
#gold_targets += \
mips mipsel mipsn32 mipsn32el mips64 mips64el \
mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
gold_build = deprecated
ifeq ($(gold_build),included)
ifneq (,$(filter $(DEB_HOST_ARCH), $(gold_targets)))
with_gold = yes
gold_substvars = -Vgold:Provides=binutils-gold
gold_natsubstvars =
endif
else ifeq ($(gold_build),split)
ifneq (,$(filter $(DEB_HOST_ARCH), $(gold_targets)))
with_gold =
gold_substvars = -Vgold:Depends=binutils-gold
gold_natsubstvars = -Vgoldnat:Depends=binutils-gold-$(subst _,-,$(DEB_HOST_GNU_TYPE))
endif
else ifeq ($(gold_build),deprecated)
ifneq (,$(filter $(DEB_HOST_ARCH), $(gold_targets)))
with_gold =
gold_substvars = -Vgold:Suggests=binutils-gold
gold_natsubstvars = -Vgoldnat:Suggests=binutils-gold-$(subst _,-,$(DEB_HOST_GNU_TYPE))
endif
else ifeq ($(gold_build),removed)
with_gold =
gold_substvars =
gold_natsubstvars =
endif
binutils_programs = addr2line ar as c++filt elfedit gprof ld ld.bfd
binutils_programs += nm objcopy objdump ranlib readelf size strings strip
ifeq ($(with_gold),yes)
binutils_programs += gold ld.gold dwp
endif
BINUTILS_BASECONF = \
--disable-silent-rules \
--enable-obsolete \
--enable-plugins \
--enable-threads \
--enable-jansson \
--enable-default-hash-style=gnu \
--enable-deterministic-archives \
--disable-compressed-debug-sections \
--enable-new-dtags \
--disable-x86-used-note \
--disable-default-execstack \
--with-gold-ldflags=-static-libstdc++
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_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_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_BINUTILS_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))
# see https://bugs.debian.org/1098970,
# --enable-warn-rwx-segments not enabled on hppa, sparc, sparc64
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 \
--enable-warn-rwx-segments
CONFARGS_TARGET_ppc64 = --enable-targets=powerpc-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_ppc64el = --enable-targets=powerpc-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_s390 = --enable-targets=s390x-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_s390x = --enable-targets=s390-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_amd64 = --enable-targets=i686-linux-gnu,x86_64-linux-gnux32,x86_64-pep \
--enable-warn-rwx-segments
CONFARGS_TARGET_i386 = --enable-targets=x86_64-linux-gnu,x86_64-linux-gnux32,x86_64-pep \
--enable-warn-rwx-segments
CONFARGS_TARGET_x32 = --enable-targets=i686-linux-gnu,x86_64-linux-gnu,x86_64-pep \
--enable-warn-rwx-segments
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_riscv64 = --with-isa-spec=2.2 --enable-warn-rwx-segments
CONFARGS_TARGET_mips = --enable-targets=mips64-linux-gnuabi64,mips64-linux-gnuabin32 \
--enable-warn-rwx-segments
CONFARGS_TARGET_mipsel = --enable-targets=mips64el-linux-gnuabi64,mips64el-linux-gnuabin32 \
--enable-mips-fix-loongson3-llsc=yes --enable-warn-rwx-segments
CONFARGS_TARGET_mipsn32 = --enable-targets=mips64-linux-gnuabi64,mips-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_mipsn32el = --enable-targets=mips64el-linux-gnuabi64,mipsel-linux-gnu \
--enable-mips-fix-loongson3-llsc=yes --enable-warn-rwx-segments
CONFARGS_TARGET_mips64 = --enable-targets=mips64-linux-gnuabin32,mips-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_mips64el = --enable-targets=mips64el-linux-gnuabin32,mipsel-linux-gnu \
--enable-mips-fix-loongson3-llsc=yes --enable-warn-rwx-segments
CONFARGS_TARGET_mipsr6 = --enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa64r6-linux-gnuabin32 \
--enable-warn-rwx-segments
CONFARGS_TARGET_mipsr6el = --enable-targets=mipsisa64r6el-linux-gnuabi64,mipsisa64r6el-linux-gnuabin32 \
--enable-warn-rwx-segments
CONFARGS_TARGET_mipsn32r6 = --enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa32r6-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_mipsn32r6el = --enable-targets=mipsisa64r6el-linux-gnuabi64,mipsisa32r6el-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_mips64r6 = --enable-targets=mipsisa64r6-linux-gnuabin32,mipsisa32r6-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_mips64r6el = --enable-targets=mipsisa64r6el-linux-gnuabin32,mipsisa32r6el-linux-gnu \
--enable-warn-rwx-segments
CONFARGS_TARGET_aarch64 = --enable-targets=aarch64_be-linux-gnu --enable-warn-rwx-segments
CONFARGS_TARGET_arc = --with-cpu=hs38_linux --enable-warn-rwx-segments
CONFARGS_TARGET_hppa = --enable-targets=hppa64-linux-gnu
BINUTILS_GCCCONF = $(BINUTILS_BASECONF) $(CONFARGS_TARGET_$(DEB_HOST_ARCH))
ifeq ($(with_gold),yes)
BINUTILS_GCCCONF += --enable-ld=default --enable-gold
endif
BINUTILS_GCCCONF += $(CONF_GPROFNG)
BINUTILS_GCCENV = BFD_SOVER_EXT=-tc$(BASE_VERSION) CTF_SOVER_EXT=-tc$(BASE_VERSION)

12
debian/source.lintian-overrides vendored Normal file
View File

@@ -0,0 +1,12 @@
# 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
# test data
binutils source: source-is-missing [binutils/testsuite/binutils-all/nfp/test1_nfp6000.nffw]
binutils source: source-is-missing [binutils/testsuite/binutils-all/nfp/test2_nfp6000.nffw]

1
debian/source/format vendored Normal file
View File

@@ -0,0 +1 @@
3.0 (quilt)

259
debian/test-suite-compare.py vendored Normal file
View File

@@ -0,0 +1,259 @@
#!/usr/bin/python3
# Quick'n'dirty regression check for dejagnu testsuites
# Copyright (C) 2003, 2004, 2005, 2006, 2007 James Troup <james@nocrew.org>
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU;5B General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
import optparse
import os
import sys
################################################################################
ignored_regressions = {
# 'gprofng.display/gp-collect-app_F.exp': ('tmpdir/gp-collect-app_F',),
'gprofng.display/display.exp': ('mttest', 'synprog',),
# 'ld-bootstrap/bootstrap.exp': ('*',),
# 'ld-ifunc/ifunc.exp': ('Run pr18841 with libpr18841c.so', 'Run pr18841 with libpr18841cn.so (-z now)'),
# 'ld-loongarch-elf/pic.exp': ('nopic link exec test',),
# 'ld-x86-64/x86-64.exp': ('*',),
}
#ignored_regressions = {}
def ignore_regression(section, test):
ign_tests = ignored_regressions.get(section)
if ign_tests == None:
return False
return ign_tests[0] == '*' or test in ign_tests
################################################################################
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
ign_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":
if ignore_regression(section, test):
ign_regression_count += 1
warn("[%s] IGNORED REGRESSION (%s -> %s): %s" % (section, old_state, state, test))
else:
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":
if ignore_regression(section, test):
ign_regression_count += 1
warn("[%s] IGNORED REGRESSION (%s -> %s): %s" % (section, old_state, state, test))
else:
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 ign_regression_count:
print("%d IGNORED REGRESSIONS (%.2f%%)." % (ign_regression_count, (float(ign_regression_count)/total_num)*100))
if regression_count:
print("%d REGRESSIONS (%.2f%%)." % (regression_count, (float(regression_count)/total_num)*100))
if progression_count:
print("%d progressions (%.2f%%)." % (progression_count, (float(progression_count)/total_num)*100))
if change_count:
print("%d changes (%.2f%%)." % (change_count, (float(change_count)/total_num)*100))
print("%d tests: %d pass (%.2f%%), %d fail (%.2f%%), %d xfail (%.2f%%) %d untested (%.2f%%)." \
% (total_num, pass_count, (float(pass_count)/total_num)*100,
fail_count, (float(fail_count)/total_num)*100,
xfail_count, (float(xfail_count)/total_num)*100,
untested_count, (float(untested_count)/total_num)*100))
if regression_count:
sys.exit(1)
################################################################################
def compare_multiple(directory, first_version, second_version):
architectures = [ "alpha", "arm", "hppa", "i386", "ia64", "mips",
"m68k", "mipsel", "powerpc", "s390", "sparc" ]
for arch in architectures:
print("*********************************** %s ******************************" % (arch))
second_filename = "%s/%s_%s" % (directory, second_version, arch)
if not os.path.exists(second_filename):
print(" -- NOT AVAILABLE --")
continue
new = read_testsummary(second_filename)
first_filename = "%s/%s_%s" % (directory, first_version, arch)
old = read_testsummary(first_filename)
compare_results(old, new)
################################################################################
def init():
"""Initalization, including parsing of options."""
usage = """usage: %prog [OPTIONS] <OLD> <NEW>
compare (binutils) dejagnu testsuite results.
Example usage:
test-suite-compare.py binutils-2.17/test-summary binutils-2.18/test-summary
Or to compare across all architectures (with test results stored in a
'test-summary' directory):
test-suite-compare.py -mtest-summary 2.17-3 2.18-1"""
parser = optparse.OptionParser(usage)
parser.add_option("-m", "--multiple", dest="multiple",
nargs=1, type="string",
help="compare multiple architectures")
(options, args) = parser.parse_args()
if len(args) > 2 or len(args) < 2:
parser.error("takes 2 arguments (old and new)")
(old_version, new_version) = args
return options, old_version, new_version
################################################################################
def main():
(options, old_version, new_version) = init()
if options.multiple:
compare_multiple(options.multiple, old_version, new_version)
else:
old = read_testsummary(old_version)
new = read_testsummary(new_version)
compare_results(old, new)
################################################################################
if __name__ == '__main__':
main()

21
debian/tests/build vendored Normal file
View File

@@ -0,0 +1,21 @@
#!/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
if [ -n "${DEB_HOST_ARCH:-}" ]; then
CROSS="-a$DEB_HOST_ARCH"
else
CROSS=
fi
echo "Memory on this machine:"
egrep '^(Mem|Swap)' /proc/meminfo || true
set -x
DEB_BUILD_OPTIONS="parallel=$CPUS nohppa nomult nocross" dpkg-buildpackage -d -B --no-sign $CROSS

19
debian/tests/control vendored Normal file
View File

@@ -0,0 +1,19 @@
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, debugedit (>= 4.16),
python3:any, file, xz-utils, lsb-release, zlib1g-dev, procps, libstdc++-dev,
libjansson-dev, pkg-config,
default-jdk-headless [amd64 arm64 i386 riscv64 x32],
# build process emits warnings on stderr
Restrictions: allow-stderr
Tests: libc-link
Depends: build-essential
Tests: shlib-build
Depends: build-essential

29
debian/tests/libc-link vendored Normal file
View File

@@ -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 <martin.pitt@ubuntu.com>
set -e
WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
cat <<EOF > libctest.c
#include <string.h>
#include <assert.h>
int main()
{
assert (1 > 0);
assert (strcmp ("hello", "hello") == 0);
return 0;
}
EOF
gcc -o libctest libctest.c
echo "build: OK"
[ -x libctest ]
./libctest
echo "run: OK"

44
debian/tests/shlib-build vendored Normal file
View File

@@ -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 <martin.pitt@ubuntu.com>
set -e
WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
cat <<EOF > testlib.c
int ultimate_answer()
{
return 42;
}
EOF
gcc -Wall -Werror -shared -o libultimate.so testlib.c
echo "library build: OK"
# should export the symbol
nm -D libultimate.so | grep -q 'T ultimate_answer'
# link it against a program
cat <<EOF > testprog.c
#include <assert.h>
int ultimate_answer();
int main()
{
assert (ultimate_answer() == 42);
return 0;
}
EOF
gcc -Wall -Werror -L . -o testprog testprog.c -lultimate
echo "program build: OK"
[ -x testprog ]
LD_LIBRARY_PATH=. ./testprog
echo "run: OK"

2
debian/watch vendored Normal file
View File

@@ -0,0 +1,2 @@
version=4
http://ftp.gnu.org/gnu/binutils/binutils-([\d\.]*).tar.gz