Annotate patches with reason and lifetime expectances.
- Retire: binutils-2.24-ldforcele.patch - Retire: binutils-2.25-set-long-long.patch - Retire: binutils-2.25.1-cleansweep.patch - Retire: binutils-2.26-fix-compile-warnings.patch - Retire: binutils-2.28-ignore-gold-duplicates.patch
This commit is contained in:
parent
b4e0b0f1cb
commit
1ba745a89f
@ -1,54 +0,0 @@
|
|||||||
Common subdirectories: ../binutils-2.24.orig/ld/emulparams and ld/emulparams
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/emultempl and ld/emultempl
|
|
||||||
diff -up ../binutils-2.24.orig/ld/ldlang.c ld/ldlang.c
|
|
||||||
--- a/ld/ldlang.c 2014-05-09 10:35:04.589504928 +0100
|
|
||||||
+++ b/ld/ldlang.c 2014-05-09 10:35:55.515661478 +0100
|
|
||||||
@@ -7096,6 +7096,18 @@
|
|
||||||
&& little != NULL)
|
|
||||||
format = little;
|
|
||||||
|
|
||||||
+ if (getenv ("LD_FORCE_LE") != NULL)
|
|
||||||
+ {
|
|
||||||
+ if (strcmp (format, "elf64-powerpc") == 0)
|
|
||||||
+ format = "elf64-powerpcle";
|
|
||||||
+ else if (strcmp (format, "elf32-powerpc") == 0)
|
|
||||||
+ format = "elf32-powerpcle";
|
|
||||||
+ else if (strcmp (format, "elf64-big") == 0)
|
|
||||||
+ format = "elf64-little";
|
|
||||||
+ else if (strcmp (format, "elf32-big") == 0)
|
|
||||||
+ format = "elf32-little";
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
output_target = format;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Only in ld: ldlang.c.orig
|
|
||||||
diff -up ../binutils-2.24.orig/ld/ldmain.c ld/ldmain.c
|
|
||||||
--- a/ld/ldmain.c 2014-05-09 10:35:04.593504941 +0100
|
|
||||||
+++ b/ld/ldmain.c 2014-05-09 10:35:55.515661478 +0100
|
|
||||||
@@ -603,6 +603,18 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if ((strncmp (emulation, "elf64ppc", 8) == 0
|
|
||||||
+ || strncmp (emulation, "elf32ppc", 8) == 0)
|
|
||||||
+ && getenv ("LD_FORCE_LE") != NULL)
|
|
||||||
+ {
|
|
||||||
+ size_t len = strlen (emulation);
|
|
||||||
+ char *le = xmalloc (len + 2);
|
|
||||||
+ memcpy (le, emulation, 5);
|
|
||||||
+ le[5] = 'l';
|
|
||||||
+ memcpy (le + 6, emulation + 5, len - 4);
|
|
||||||
+ emulation = le;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return emulation;
|
|
||||||
}
|
|
||||||
|
|
||||||
Only in ld: ldmain.c.orig
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/ldscripts and ld/ldscripts
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/.libs and ld/.libs
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/po and ld/po
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/scripttempl and ld/scripttempl
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/testsuite and ld/testsuite
|
|
||||||
Common subdirectories: ../binutils-2.24.orig/ld/tmpdir and ld/tmpdir
|
|
@ -1,38 +0,0 @@
|
|||||||
diff -up binutils-2.25.orig/bfd/configure.ac binutils-2.25/bfd/configure.ac
|
|
||||||
--- binutils-2.25.orig/bfd/configure.ac 2014-12-24 10:34:45.590491143 +0000
|
|
||||||
+++ binutils-2.25/bfd/configure.ac 2014-12-24 10:36:12.997981992 +0000
|
|
||||||
@@ -183,11 +183,13 @@ if test "x${ac_cv_sizeof_long}" = "x8";
|
|
||||||
BFD_HOST_64BIT_LONG=1
|
|
||||||
test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
|
|
||||||
test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
|
|
||||||
-elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
|
|
||||||
+fi
|
|
||||||
+if test "x${ac_cv_sizeof_long_long}" = "x8"; then
|
|
||||||
BFD_HOST_64BIT_LONG_LONG=1
|
|
||||||
test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
|
|
||||||
test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
|
|
||||||
- if test "x${ac_cv_sizeof_void_p}" = "x8"; then
|
|
||||||
+ if test "x${ac_cv_sizeof_void_p}" = "x8" \
|
|
||||||
+ -a "x${ac_cv_sizeof_long}" != "x8"; then
|
|
||||||
BFD_HOSTPTR_T="unsigned long long"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
diff -up ../binutils-2.20.51.0.7.original/bfd/configure ./bfd/configure
|
|
||||||
--- a/bfd/configure 2010-04-08 15:23:58.000000000 +0100
|
|
||||||
+++ b/bfd/configure 2010-04-08 15:24:06.000000000 +0100
|
|
||||||
@@ -12819,11 +12819,13 @@
|
|
||||||
BFD_HOST_64BIT_LONG=1
|
|
||||||
test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long"
|
|
||||||
test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long"
|
|
||||||
-elif test "x${ac_cv_sizeof_long_long}" = "x8"; then
|
|
||||||
+fi
|
|
||||||
+if test "x${ac_cv_sizeof_long_long}" = "x8"; then
|
|
||||||
BFD_HOST_64BIT_LONG_LONG=1
|
|
||||||
test -n "${HOST_64BIT_TYPE}" || HOST_64BIT_TYPE="long long"
|
|
||||||
test -n "${HOST_U_64BIT_TYPE}" || HOST_U_64BIT_TYPE="unsigned long long"
|
|
||||||
- if test "x${ac_cv_sizeof_void_p}" = "x8"; then
|
|
||||||
+ if test "x${ac_cv_sizeof_void_p}" = "x8" \
|
|
||||||
+ -a "x${ac_cv_sizeof_long}" != "x8"; then
|
|
||||||
BFD_HOSTPTR_T="unsigned long long"
|
|
||||||
fi
|
|
||||||
fi
|
|
@ -1,63 +0,0 @@
|
|||||||
--- ../binutils-2.25.1.orig/ld/testsuite/ld-plugin/lto.exp 2016-01-08 15:24:58.241083264 +0000
|
|
||||||
+++ ld/testsuite/ld-plugin/lto.exp 2016-01-08 16:30:51.845827089 +0000
|
|
||||||
@@ -386,6 +386,11 @@ if { [at_least_gcc_version 4 7] } {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+# Fedora specific binutils patches break some of the tests that follow...
|
|
||||||
+restore_notify
|
|
||||||
+return
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# Run "ld -r" to generate inputs for complex LTO tests.
|
|
||||||
run_dump_test "lto-3r"
|
|
||||||
remote_exec host "mv" "tmpdir/dump tmpdir/lto-3.o"
|
|
||||||
--- ../binutils-2.26.orig/ld/testsuite/ld-size/size.exp 2016-01-27 15:51:27.223093570 +0000
|
|
||||||
+++ ld/testsuite/ld-size/size.exp 2016-01-27 16:00:04.262015016 +0000
|
|
||||||
@@ -113,37 +113,6 @@ run_cc_link_tests [list \
|
|
||||||
"libsize-6b.so" \
|
|
||||||
] \
|
|
||||||
[list \
|
|
||||||
- "Build libsize-7.so" \
|
|
||||||
- "-shared" \
|
|
||||||
- "-fPIC" \
|
|
||||||
- {size-7b.c} \
|
|
||||||
- {} \
|
|
||||||
- "libsize-7.so" \
|
|
||||||
- ] \
|
|
||||||
- [list \
|
|
||||||
- "Build size-7" \
|
|
||||||
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libsize-7.so" \
|
|
||||||
- "$NOPIE_CFLAGS" \
|
|
||||||
- {size-7a.c} \
|
|
||||||
- {{readelf -rW size-7.rd}} \
|
|
||||||
- "size-7.exe" \
|
|
||||||
- ] \
|
|
||||||
- [list \
|
|
||||||
- "Build libsize-8.so" \
|
|
||||||
- "-shared" "-fPIC" \
|
|
||||||
- {size-8b.c} \
|
|
||||||
- {} \
|
|
||||||
- "libsize-8.so" \
|
|
||||||
- ] \
|
|
||||||
- [list \
|
|
||||||
- "Build size-8" \
|
|
||||||
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libsize-8.so" \
|
|
||||||
- "$NOPIE_CFLAGS" \
|
|
||||||
- {size-8a.c} \
|
|
||||||
- {{readelf -rW size-8.rd}} \
|
|
||||||
- "size-8.exe" \
|
|
||||||
- ] \
|
|
||||||
- [list \
|
|
||||||
"Build libsize-9.so" \
|
|
||||||
"-shared" \
|
|
||||||
"-fPIC" \
|
|
||||||
@@ -161,6 +130,8 @@ run_cc_link_tests [list \
|
|
||||||
] \
|
|
||||||
]
|
|
||||||
|
|
||||||
+return
|
|
||||||
+
|
|
||||||
# Check if size relocation works at run-time.
|
|
||||||
catch "exec tmpdir/size-7.exe > tmpdir/dump.out" exec_output
|
|
||||||
if ![string match "" $exec_output] then {
|
|
@ -1,38 +0,0 @@
|
|||||||
--- binutils-2.26.orig/gold/dirsearch.cc 2016-02-04 10:31:45.228796199 +0000
|
|
||||||
+++ binutils-2.26/gold/dirsearch.cc 2016-02-04 11:33:15.875824355 +0000
|
|
||||||
@@ -122,6 +122,7 @@ class Dir_caches
|
|
||||||
Cache_hash caches_;
|
|
||||||
};
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
Dir_caches::~Dir_caches()
|
|
||||||
{
|
|
||||||
for (Cache_hash::iterator p = this->caches_.begin();
|
|
||||||
@@ -129,6 +130,7 @@ Dir_caches::~Dir_caches()
|
|
||||||
++p)
|
|
||||||
delete p->second;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
void
|
|
||||||
Dir_caches::add(const char* dirname)
|
|
||||||
--- binutils-2.26.orig/gold/arm.cc 2016-02-04 10:31:45.227796193 +0000
|
|
||||||
+++ binutils-2.26/gold/arm.cc 2016-02-04 12:02:43.897996168 +0000
|
|
||||||
@@ -4493,7 +4493,7 @@ Stub::do_fixed_endian_write(unsigned cha
|
|
||||||
// Reloc_stub::Key methods.
|
|
||||||
|
|
||||||
// Dump a Key as a string for debugging.
|
|
||||||
-
|
|
||||||
+#if 0
|
|
||||||
std::string
|
|
||||||
Reloc_stub::Key::name() const
|
|
||||||
{
|
|
||||||
@@ -4524,7 +4524,7 @@ Reloc_stub::Key::name() const
|
|
||||||
return std::string(buffer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+#endif
|
|
||||||
// Reloc_stub methods.
|
|
||||||
|
|
||||||
// Determine the type of stub needed, if any, for a relocation of R_TYPE at
|
|
@ -1,14 +0,0 @@
|
|||||||
diff -rup binutils.orig/ld/ldmain.c binutils-2.28/ld/ldmain.c
|
|
||||||
--- binutils.orig/ld/ldmain.c 2017-06-09 09:08:26.954016429 +0100
|
|
||||||
+++ binutils-2.28/ld/ldmain.c 2017-06-09 09:09:11.307490976 +0100
|
|
||||||
@@ -923,6 +923,10 @@ multiple_definition (struct bfd_link_inf
|
|
||||||
obfd = h->u.def.section->owner;
|
|
||||||
break;
|
|
||||||
case bfd_link_hash_indirect:
|
|
||||||
+ /* PR 21074: The GOLD linker can produce multiple indirect
|
|
||||||
+ refences to the same symbol. These can be ignored. */
|
|
||||||
+ if (bfd_is_ind_section (nsec))
|
|
||||||
+ return;
|
|
||||||
osec = bfd_ind_section_ptr;
|
|
||||||
oval = 0;
|
|
||||||
obfd = NULL;
|
|
198
binutils.spec
198
binutils.spec
@ -1,19 +1,14 @@
|
|||||||
# rpmbuild parameters:
|
# Binutils SPEC file. Can be invoked with the following parameters:
|
||||||
|
|
||||||
# --define "binutils_target arm-linux-gnu" to create arm-linux-gnu-binutils.
|
# --define "binutils_target arm-linux-gnu" to create arm-linux-gnu-binutils.
|
||||||
# --with=bootstrap: Build with minimal dependencies.
|
# --with=bootstrap: Build with minimal dependencies.
|
||||||
# --with=debug: Build without optimizations and without splitting the debuginfo.
|
# --with=debug: Build without optimizations and without splitting the debuginfo.
|
||||||
# --without=docs: Skip building documentation.
|
# --without=docs: Skip building documentation.
|
||||||
# --without=testsuite: Do not run the testsuite.
|
# --without=testsuite: Do not run the testsuite. Default is to run it.
|
||||||
|
# --with=testsuite: Run the testsuite. Default when --with=debug is not to run it.
|
||||||
|
|
||||||
|
#---Start of Configure Options-----------------------------------------------------------------------
|
||||||
|
|
||||||
%if 0%{!?binutils_target:1}
|
|
||||||
%define binutils_target %{_target_platform}
|
|
||||||
%define isnative 1
|
|
||||||
%define enable_shared 1
|
|
||||||
%else
|
|
||||||
%define cross %{binutils_target}-
|
|
||||||
%define isnative 0
|
|
||||||
%define enable_shared 0
|
|
||||||
%endif
|
|
||||||
# BZ 1124342: Provide a way to enable deterministic archives.
|
# BZ 1124342: Provide a way to enable deterministic archives.
|
||||||
# BZ 1195883: But do not do this by default.
|
# BZ 1195883: But do not do this by default.
|
||||||
%define enable_deterministic_archives 0
|
%define enable_deterministic_archives 0
|
||||||
@ -21,6 +16,8 @@
|
|||||||
%define enable_lto 1
|
%define enable_lto 1
|
||||||
# Disable the default generation of compressed debug sections.
|
# Disable the default generation of compressed debug sections.
|
||||||
%define default_compress_debug 0
|
%define default_compress_debug 0
|
||||||
|
# Default to read-only-relocations (relro) in shared binaries.
|
||||||
|
%define default_relro 1
|
||||||
|
|
||||||
# Default: Not bootstrapping.
|
# Default: Not bootstrapping.
|
||||||
%bcond_with bootstrap
|
%bcond_with bootstrap
|
||||||
@ -40,10 +37,24 @@
|
|||||||
%undefine with_testsuite
|
%undefine with_testsuite
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
#----End of Configure Options-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
%if 0%{!?binutils_target:1}
|
||||||
|
%define binutils_target %{_target_platform}
|
||||||
|
%define isnative 1
|
||||||
|
%define enable_shared 1
|
||||||
|
%else
|
||||||
|
%define cross %{binutils_target}-
|
||||||
|
%define isnative 0
|
||||||
|
%define enable_shared 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
Summary: A GNU collection of binary utilities
|
Summary: A GNU collection of binary utilities
|
||||||
Name: %{?cross}binutils%{?_with_debug:-debug}
|
Name: %{?cross}binutils%{?_with_debug:-debug}
|
||||||
Version: 2.29
|
Version: 2.29
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: http://sources.redhat.com/binutils
|
URL: http://sources.redhat.com/binutils
|
||||||
@ -56,35 +67,63 @@ Source: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
|
|||||||
|
|
||||||
Source2: binutils-2.19.50.0.1-output-format.sed
|
Source2: binutils-2.19.50.0.1-output-format.sed
|
||||||
|
|
||||||
|
# Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the
|
||||||
|
# default library search path of 64-bit targets.
|
||||||
|
# Lifetime: Permanent, but it should not be. This is a bug in the libtool
|
||||||
|
# sources used in both binutils and gcc, (specifically the libtool.m4
|
||||||
|
# file). These are based on a version released in 2009 (2.2.6?) rather
|
||||||
|
# than the latest version. (Definitely fixed in libtool version 2.4.6).
|
||||||
Patch01: binutils-2.20.51.0.2-libtool-lib64.patch
|
Patch01: binutils-2.20.51.0.2-libtool-lib64.patch
|
||||||
|
|
||||||
|
# Purpose: Appends a RHEL or Fedora release string to the generic binutils version string.
|
||||||
|
# Lifetime: Permanent. This is a RHEL/Fedora specific patch.
|
||||||
Patch02: binutils-2.25-version.patch
|
Patch02: binutils-2.25-version.patch
|
||||||
Patch03: binutils-2.25-set-long-long.patch
|
|
||||||
|
# Purpose: Prevent a seg-fault when attempting to pad a section with a NULL padding pointer.
|
||||||
|
# Lifetime: Permanent - but should be contributed upstream and fixed.
|
||||||
|
# FIXME: Need a test case to reproduce the potential bug so
|
||||||
|
# that the patch can be contributes.
|
||||||
Patch04: binutils-2.20.51.0.10-sec-merge-emit.patch
|
Patch04: binutils-2.20.51.0.10-sec-merge-emit.patch
|
||||||
# Enable -zrelro by default: BZ #621983
|
|
||||||
Patch05: binutils-2.22.52.0.1-relro-on-by-default.patch
|
# Purpose: Exports the demangle.h header file (associated with the libiberty sources) with
|
||||||
# Local patch - export demangle.h with the binutils-devel rpm.
|
# the binutils-devel rpm.
|
||||||
|
# Lifetime: Permanent. This is a RHEL/Fedora specific patch.
|
||||||
Patch06: binutils-2.22.52.0.1-export-demangle.h.patch
|
Patch06: binutils-2.22.52.0.1-export-demangle.h.patch
|
||||||
# Disable checks that config.h has been included before system headers. BZ #845084
|
|
||||||
|
# Purpose: Disables the check in the BFD library's header file that config.h has been
|
||||||
|
# included before the bfd.h header. See BZ #845084 for more details.
|
||||||
|
# Lifetime: Permanent - but it should not be. The bfd.h header defines various types that
|
||||||
|
# are dependent upon configuration options, so he order of inclusion is important.
|
||||||
|
# FIXME: It would be better if the packages using the BFD header were fixed so
|
||||||
|
# that they do include the header files in the correct order. It may also be
|
||||||
|
# necessary to add a way for a package to tell the bfd.h header that this check
|
||||||
|
# is not necessary.
|
||||||
Patch07: binutils-2.22.52.0.4-no-config-h-check.patch
|
Patch07: binutils-2.22.52.0.4-no-config-h-check.patch
|
||||||
# Fix detections little endian PPC shared libraries
|
|
||||||
Patch08: binutils-2.24-ldforcele.patch
|
# Purpose: Import H.J.Lu's Kernel LTO patch.
|
||||||
Patch09: binutils-2.25.1-cleansweep.patch
|
# Lifetime: Permanent, but needs continual updating.
|
||||||
Patch10: binutils-2.26-fix-compile-warnings.patch
|
|
||||||
# Import H.J.Lu's Kernel LTO patch.
|
|
||||||
Patch11: binutils-2.26-lto.patch
|
Patch11: binutils-2.26-lto.patch
|
||||||
# Skip PR14918 linker test for ARM native targets.
|
|
||||||
|
# Purpose: Skip PR14918 linker test for ARM native targets.
|
||||||
|
# Lifetime: Permanent - but it should not be.
|
||||||
|
# FIXME: This patch should be contributed upstream.
|
||||||
Patch12: binutils-2.29-skip-rp14918-test-for-arm.patch
|
Patch12: binutils-2.29-skip-rp14918-test-for-arm.patch
|
||||||
# Include the filename concerned in readelf error messages.
|
|
||||||
|
# Purpose: Include the filename concerned in readelf error messages.
|
||||||
|
# Lifetime: Permanent. This patch changes the format of readelf's output, making it
|
||||||
|
# better (IMHO) but also potentially breaking tools that depend upon readelf's
|
||||||
|
# current format. Hence it remains a local patch.
|
||||||
Patch13: binutils-2.29-filename-in-error-messages.patch
|
Patch13: binutils-2.29-filename-in-error-messages.patch
|
||||||
# Ignore duplicate indirect symbols generated by GOLD.
|
|
||||||
Patch14: binutils-2.28-ignore-gold-duplicates.patch
|
# Purpose: Do not enable the PPC64 plt-localentry0 linker optimization by default.
|
||||||
# Do not enable the PPC64 plt-localentry0 linker optimization by default.
|
# Lifetime: Fixed in 2.29.1.
|
||||||
Patch15: binutils-2.29-ppc64-plt-localentry0-disable.patch
|
Patch15: binutils-2.29-ppc64-plt-localentry0-disable.patch
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
Provides: bundled(libiberty)
|
Provides: bundled(libiberty)
|
||||||
|
|
||||||
# BZ 1173780: Building GOLD for PPC is not working at the moment.
|
# BZ 1173780: Building GOLD for PPC is not working at the moment.
|
||||||
# %define gold_arches %ix86 x86_64 %arm aarch64 ppc* %{power64}
|
|
||||||
%define gold_arches %ix86 x86_64 %arm aarch64
|
%define gold_arches %ix86 x86_64 %arm aarch64
|
||||||
|
|
||||||
%if %{with bootstrap}
|
%if %{with bootstrap}
|
||||||
@ -155,6 +194,8 @@ Requires(preun): %{_sbindir}/alternatives
|
|||||||
%define _gnu %{nil}
|
%define _gnu %{nil}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Binutils is a collection of binary utilities, including ar (for
|
Binutils is a collection of binary utilities, including ar (for
|
||||||
creating, modifying and extracting from archives), as (a family of GNU
|
creating, modifying and extracting from archives), as (a family of GNU
|
||||||
@ -168,6 +209,8 @@ of an object or archive file), strings (for listing printable strings
|
|||||||
from files), strip (for discarding symbols), and addr2line (for
|
from files), strip (for discarding symbols), and addr2line (for
|
||||||
converting addresses to file and line).
|
converting addresses to file and line).
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: BFD and opcodes static and dynamic libraries and header files
|
Summary: BFD and opcodes static and dynamic libraries and header files
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -195,24 +238,18 @@ dynamic libraries.
|
|||||||
Developers starting new projects are strongly encouraged to consider
|
Developers starting new projects are strongly encouraged to consider
|
||||||
using libelf instead of BFD.
|
using libelf instead of BFD.
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n binutils-%{version}
|
%setup -q -n binutils-%{version}
|
||||||
%patch01 -p1 -b .libtool-lib64~
|
%patch01 -p1
|
||||||
%patch02 -p1 -b .version~
|
%patch02 -p1
|
||||||
%patch03 -p1 -b .set-long-long~
|
%patch04 -p1
|
||||||
%patch04 -p1 -b .sec-merge-emit~
|
%patch06 -p1
|
||||||
%patch05 -p1 -b .relro~
|
%patch07 -p1
|
||||||
%patch06 -p1 -b .export-demangle-h~
|
|
||||||
%patch07 -p1 -b .no-config-h-check~
|
|
||||||
%ifarch ppc64le
|
|
||||||
%patch08 -p1 -b .ldforcele~
|
|
||||||
%endif
|
|
||||||
%patch09 -p0
|
|
||||||
%patch10 -p1
|
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch14 -p1
|
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
|
|
||||||
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
|
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
|
||||||
@ -251,15 +288,17 @@ touch */configure
|
|||||||
%define _target_platform %{_arch}-%{_vendor}-%{_host_os}
|
%define _target_platform %{_arch}-%{_vendor}-%{_host_os}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%build
|
%build
|
||||||
echo target is %{binutils_target}
|
echo target is %{binutils_target}
|
||||||
|
|
||||||
%ifarch %{power64}
|
%ifarch %{power64}
|
||||||
#CFLAGS=`echo $RPM_OPT_FLAGS | sed -e -s "s/-Werror//g"`
|
|
||||||
#export CFLAGS
|
|
||||||
export CFLAGS="$RPM_OPT_FLAGS -Wno-error"
|
export CFLAGS="$RPM_OPT_FLAGS -Wno-error"
|
||||||
%else
|
%else
|
||||||
export CFLAGS="$RPM_OPT_FLAGS"
|
export CFLAGS="$RPM_OPT_FLAGS"
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
CARGS=
|
CARGS=
|
||||||
|
|
||||||
case %{binutils_target} in i?86*|sparc*|ppc*|s390*|sh*|arm*|aarch64*)
|
case %{binutils_target} in i?86*|sparc*|ppc*|s390*|sh*|arm*|aarch64*)
|
||||||
@ -300,6 +339,7 @@ CFLAGS="$CFLAGS -O0 -ggdb2 -Wno-error -D_FORTIFY_SOURCE=0"
|
|||||||
# We could optimize the cross builds size by --enable-shared but the produced
|
# We could optimize the cross builds size by --enable-shared but the produced
|
||||||
# binaries may be less convenient in the embedded environment.
|
# binaries may be less convenient in the embedded environment.
|
||||||
%configure \
|
%configure \
|
||||||
|
--quiet \
|
||||||
--build=%{_target_platform} --host=%{_target_platform} \
|
--build=%{_target_platform} --host=%{_target_platform} \
|
||||||
--target=%{binutils_target} \
|
--target=%{binutils_target} \
|
||||||
%ifarch %gold_arches
|
%ifarch %gold_arches
|
||||||
@ -333,6 +373,11 @@ CFLAGS="$CFLAGS -O0 -ggdb2 -Wno-error -D_FORTIFY_SOURCE=0"
|
|||||||
--enable-compressed-debug-sections=all \
|
--enable-compressed-debug-sections=all \
|
||||||
%else
|
%else
|
||||||
--enable-compressed-debug-sections=none \
|
--enable-compressed-debug-sections=none \
|
||||||
|
%endif
|
||||||
|
%if %{default_relro}
|
||||||
|
--enable-relro=yes \
|
||||||
|
%else
|
||||||
|
--enable-relro=no \
|
||||||
%endif
|
%endif
|
||||||
$CARGS \
|
$CARGS \
|
||||||
--enable-plugins \
|
--enable-plugins \
|
||||||
@ -363,6 +408,8 @@ uuencode binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}.tar.b
|
|||||||
rm -f binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log}
|
rm -f binutils-%{_target_platform}.tar.bz2 binutils-%{_target_platform}-*.{sum,log}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
%if %{with docs}
|
%if %{with docs}
|
||||||
@ -372,7 +419,7 @@ make install DESTDIR=%{buildroot} MAKEINFO=true
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{isnative}
|
%if %{isnative}
|
||||||
%if %{with info}
|
%if %{with docs}
|
||||||
make prefix=%{buildroot}%{_prefix} infodir=%{buildroot}%{_infodir} install-info
|
make prefix=%{buildroot}%{_prefix} infodir=%{buildroot}%{_infodir} install-info
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -400,7 +447,7 @@ rm -f %{buildroot}%{_mandir}/man1/{dlltool,nlmconv,windres,windmc}*
|
|||||||
|
|
||||||
%if %{enable_shared}
|
%if %{enable_shared}
|
||||||
chmod +x %{buildroot}%{_libdir}/lib*.so*
|
chmod +x %{buildroot}%{_libdir}/lib*.so*
|
||||||
%endif
|
%endif # isnative
|
||||||
|
|
||||||
# Prevent programs from linking against libbfd and libopcodes
|
# Prevent programs from linking against libbfd and libopcodes
|
||||||
# dynamically, as they are change far too often.
|
# dynamically, as they are change far too often.
|
||||||
@ -453,14 +500,14 @@ $OUTPUT_FORMAT
|
|||||||
INPUT ( %{_libdir}/libopcodes.a -lbfd )
|
INPUT ( %{_libdir}/libopcodes.a -lbfd )
|
||||||
EOH
|
EOH
|
||||||
|
|
||||||
%else # !%{isnative}
|
%else # !isnative
|
||||||
# For cross-binutils we drop the documentation.
|
# For cross-binutils we drop the documentation.
|
||||||
rm -rf %{buildroot}%{_infodir}
|
rm -rf %{buildroot}%{_infodir}
|
||||||
# We keep these as one can have native + cross binutils of different versions.
|
# We keep these as one can have native + cross binutils of different versions.
|
||||||
#rm -rf %{buildroot}%{_prefix}/share/locale
|
#rm -rf {buildroot}{_prefix}/share/locale
|
||||||
#rm -rf %{buildroot}%{_mandir}
|
#rm -rf {buildroot}{_mandir}
|
||||||
rm -rf %{buildroot}%{_libdir}/libiberty.a
|
rm -rf %{buildroot}%{_libdir}/libiberty.a
|
||||||
%endif # !%{isnative}
|
%endif # !isnative
|
||||||
|
|
||||||
# This one comes from gcc
|
# This one comes from gcc
|
||||||
rm -f %{buildroot}%{_infodir}/dir
|
rm -f %{buildroot}%{_infodir}/dir
|
||||||
@ -485,9 +532,13 @@ if [ -x gold/ld-new ]; then
|
|||||||
cat %{?cross}gold.lang >> %{?cross}binutils.lang
|
cat %{?cross}gold.lang >> %{?cross}binutils.lang
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%post
|
%post
|
||||||
%if "%{build_gold}" == "both"
|
%if "%{build_gold}" == "both"
|
||||||
%__rm -f %{_bindir}/%{?cross}ld
|
%__rm -f %{_bindir}/%{?cross}ld
|
||||||
@ -496,7 +547,8 @@ rm -rf %{buildroot}
|
|||||||
%{_sbindir}/alternatives --install %{_bindir}/%{?cross}ld %{?cross}ld \
|
%{_sbindir}/alternatives --install %{_bindir}/%{?cross}ld %{?cross}ld \
|
||||||
%{_bindir}/%{?cross}ld.gold %{ld_gold_priority}
|
%{_bindir}/%{?cross}ld.gold %{ld_gold_priority}
|
||||||
%{_sbindir}/alternatives --auto %{?cross}ld
|
%{_sbindir}/alternatives --auto %{?cross}ld
|
||||||
%endif
|
%endif # both ld.gold and ld.bfd
|
||||||
|
|
||||||
%if %{isnative}
|
%if %{isnative}
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%if %{with docs}
|
%if %{with docs}
|
||||||
@ -505,16 +557,20 @@ rm -rf %{buildroot}
|
|||||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
|
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
|
||||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
||||||
%endif # with docs
|
%endif # with docs
|
||||||
%endif # %{isnative}
|
%endif # isnative
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%if "%{build_gold}" == "both"
|
%if "%{build_gold}" == "both"
|
||||||
if [ $1 = 0 ]; then
|
if [ $1 = 0 ]; then
|
||||||
%{_sbindir}/alternatives --remove %{?cross}ld %{_bindir}/%{?cross}ld.bfd
|
%{_sbindir}/alternatives --remove %{?cross}ld %{_bindir}/%{?cross}ld.bfd
|
||||||
%{_sbindir}/alternatives --remove %{?cross}ld %{_bindir}/%{?cross}ld.gold
|
%{_sbindir}/alternatives --remove %{?cross}ld %{_bindir}/%{?cross}ld.gold
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif # both ld.gold and ld.bfd
|
||||||
|
|
||||||
%if %{isnative}
|
%if %{isnative}
|
||||||
if [ $1 = 0 ]; then
|
if [ $1 = 0 ]; then
|
||||||
if [ -e %{_infodir}/binutils.info.gz ]
|
if [ -e %{_infodir}/binutils.info.gz ]
|
||||||
@ -525,9 +581,12 @@ if [ $1 = 0 ]; then
|
|||||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif # isnative
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%if %{isnative}
|
%if %{isnative}
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
@ -538,29 +597,36 @@ exit 0
|
|||||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
|
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
|
||||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
||||||
fi
|
fi
|
||||||
%endif # %{isnative}
|
%endif # isnative
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%files -f %{?cross}binutils.lang
|
%files -f %{?cross}binutils.lang
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%license COPYING COPYING3 COPYING3.LIB COPYING.LIB
|
%license COPYING COPYING3 COPYING3.LIB COPYING.LIB
|
||||||
%doc README
|
%doc README
|
||||||
%{_bindir}/%{?cross}[!l]*
|
%{_bindir}/%{?cross}[!l]*
|
||||||
|
|
||||||
%if "%{build_gold}" == "both"
|
%if "%{build_gold}" == "both"
|
||||||
%{_bindir}/%{?cross}ld.*
|
%{_bindir}/%{?cross}ld.*
|
||||||
%ghost %{_bindir}/%{?cross}ld
|
%ghost %{_bindir}/%{?cross}ld
|
||||||
%else
|
%else
|
||||||
%{_bindir}/%{?cross}ld*
|
%{_bindir}/%{?cross}ld*
|
||||||
%endif
|
%endif # both ld.gold and ld.bfd
|
||||||
|
|
||||||
|
%if %{with docs}
|
||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
%{_infodir}/as.info.gz
|
%{_infodir}/as.info.gz
|
||||||
%{_infodir}/binutils.info.gz
|
%{_infodir}/binutils.info.gz
|
||||||
%{_infodir}/gprof.info.gz
|
%{_infodir}/gprof.info.gz
|
||||||
%{_infodir}/ld.info.gz
|
%{_infodir}/ld.info.gz
|
||||||
|
%endif # with docs
|
||||||
|
|
||||||
%if %{enable_shared}
|
%if %{enable_shared}
|
||||||
%{_libdir}/lib*.so
|
%{_libdir}/lib*.so
|
||||||
%exclude %{_libdir}/libbfd.so
|
%exclude %{_libdir}/libbfd.so
|
||||||
%exclude %{_libdir}/libopcodes.so
|
%exclude %{_libdir}/libopcodes.so
|
||||||
%endif
|
%endif # enable_shared
|
||||||
|
|
||||||
%if %{isnative}
|
%if %{isnative}
|
||||||
%if %{with docs}
|
%if %{with docs}
|
||||||
@ -577,9 +643,19 @@ exit 0
|
|||||||
%if %{with docs}
|
%if %{with docs}
|
||||||
%{_infodir}/bfd*info*
|
%{_infodir}/bfd*info*
|
||||||
%endif # with docs
|
%endif # with docs
|
||||||
%endif # %{isnative}
|
%endif # isnative
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Sep 10 2017 Nick Clifton <nickc@redhat.com> - 2.29-7
|
||||||
|
- Annotate patches with reason and lifetime expectances.
|
||||||
|
- Retire: binutils-2.24-ldforcele.patch
|
||||||
|
- Retire: binutils-2.25-set-long-long.patch
|
||||||
|
- Retire: binutils-2.25.1-cleansweep.patch
|
||||||
|
- Retire: binutils-2.26-fix-compile-warnings.patch
|
||||||
|
- Retire: binutils-2.28-ignore-gold-duplicates.patch
|
||||||
|
|
||||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.29-6
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.29-6
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
@ -686,7 +762,7 @@ exit 0
|
|||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Feb 02 2017 Stephen Gallagher <sgallagh@redhat.com> 2.27-16
|
* Thu Feb 02 2017 Stephen Gallagher <sgallagh@redhat.com> 2.27-16
|
||||||
- Install COPYING[*] files using the %license macro.
|
- Install COPYING[*] files using the % license macro.
|
||||||
(#1418430)
|
(#1418430)
|
||||||
|
|
||||||
* Tue Jan 31 2017 Nick Clifton <nickc@redhat.com> 2.27-15
|
* Tue Jan 31 2017 Nick Clifton <nickc@redhat.com> 2.27-15
|
||||||
@ -1018,7 +1094,7 @@ exit 0
|
|||||||
- Fix compiling using gcc 4.9 (#1087374)
|
- Fix compiling using gcc 4.9 (#1087374)
|
||||||
|
|
||||||
* Thu Mar 27 2014 Nick Clifton <nickc@redhat.com> - 2.24-11
|
* Thu Mar 27 2014 Nick Clifton <nickc@redhat.com> - 2.24-11
|
||||||
- Use %{version} in Source string. Delete unused patches.
|
- Use {version} in Source string. Delete unused patches.
|
||||||
|
|
||||||
* Tue Jan 28 2014 Nick Clifton <nickc@redhat.com> - 2.24-10
|
* Tue Jan 28 2014 Nick Clifton <nickc@redhat.com> - 2.24-10
|
||||||
- Fix decoding of abbrevs using a DW_FORM_ref_addr attribute. (#1056797)
|
- Fix decoding of abbrevs using a DW_FORM_ref_addr attribute. (#1056797)
|
||||||
@ -1233,10 +1309,8 @@ exit 0
|
|||||||
* Fri Apr 27 2012 Nick Clifton <nickc@redhat.com> - 2.22.52.0.1-12
|
* Fri Apr 27 2012 Nick Clifton <nickc@redhat.com> - 2.22.52.0.1-12
|
||||||
- Include demangle.h in the devel rpm.
|
- Include demangle.h in the devel rpm.
|
||||||
|
|
||||||
%if 0%{?rhel} >= 7
|
|
||||||
* Tue Apr 03 2012 Nick Clifton <nickc@redhat.com> - 2.22.52.0.1-11
|
* Tue Apr 03 2012 Nick Clifton <nickc@redhat.com> - 2.22.52.0.1-11
|
||||||
- Enable -zrelro by default for RHEL 7+. (#807831)
|
- Enable -zrelro by default for RHEL 7+. (#807831)
|
||||||
%endif
|
|
||||||
|
|
||||||
* Fri Mar 16 2012 Jakub Jelinek <jakub@redhat.com> - 2.22.52.0.1-10
|
* Fri Mar 16 2012 Jakub Jelinek <jakub@redhat.com> - 2.22.52.0.1-10
|
||||||
- Fix up handling of hidden ifunc relocs on i?86
|
- Fix up handling of hidden ifunc relocs on i?86
|
||||||
@ -1248,10 +1322,8 @@ exit 0
|
|||||||
- Fix up handling of hidden ifunc relocs on x86_64
|
- Fix up handling of hidden ifunc relocs on x86_64
|
||||||
- Add Intel TSX support
|
- Add Intel TSX support
|
||||||
|
|
||||||
%if 0%{?fedora} >= 18
|
|
||||||
* Tue Mar 06 2012 Nick Clifton <nickc@redhat.com> - 2.22.52.0.1-7
|
* Tue Mar 06 2012 Nick Clifton <nickc@redhat.com> - 2.22.52.0.1-7
|
||||||
- Enable -zrelro by default. (#621983 #807831)
|
- Enable -zrelro by default. (#621983 #807831)
|
||||||
%endif
|
|
||||||
|
|
||||||
* Mon Feb 27 2012 Jeff Law <law@redhat.com> - 2.22.52.0.1-6
|
* Mon Feb 27 2012 Jeff Law <law@redhat.com> - 2.22.52.0.1-6
|
||||||
- Fix c++filt docs (#797752)
|
- Fix c++filt docs (#797752)
|
||||||
|
Loading…
Reference in New Issue
Block a user