Rebase on FSF binutils 2.29.1 release.

- Retire: binutils-2.29-ppc64-plt-localentry0-disable.patch
- Retire: binutils-2.29-non-elf-orphan-skip.patch
This commit is contained in:
Nick Clifton 2017-09-26 11:51:07 +01:00
parent f9311f0bfc
commit 2ed6d815cc
5 changed files with 69 additions and 330 deletions

View File

@ -572,8 +572,8 @@ diff -rup binutils-2.26.orig/ld/emultempl/avrelf.em binutils-2.26/ld/emultempl/a
--- binutils-2.26.orig/ld/emultempl/avrelf.em 2016-02-19 09:35:36.698003274 +0000 --- binutils-2.26.orig/ld/emultempl/avrelf.em 2016-02-19 09:35:36.698003274 +0000
+++ binutils-2.26/ld/emultempl/avrelf.em 2016-02-19 09:35:54.915106577 +0000 +++ binutils-2.26/ld/emultempl/avrelf.em 2016-02-19 09:35:54.915106577 +0000
@@ -209,7 +209,7 @@ avr_finish (void) @@ -209,7 +209,7 @@ avr_finish (void)
else elf_elfheader (abfd)->e_flags &= ~EF_AVR_LINKRELAX_PREPARED;
elf_elfheader (abfd)->e_flags &= ~EF_AVR_LINKRELAX_PREPARED; }
- finish_default (); - finish_default ();
+ gld${EMULATION_NAME}_finish (); + gld${EMULATION_NAME}_finish ();
@ -592,7 +592,7 @@ diff -rup binutils-2.26.orig/ld/emultempl/elf32.em binutils-2.26/ld/emultempl/el
if [ "x${USE_LIBPATH}" = xyes ] ; then if [ "x${USE_LIBPATH}" = xyes ] ; then
@@ -1795,6 +1796,8 @@ output_rel_find (asection *sec, int isdy @@ -1795,6 +1796,8 @@ output_rel_find (asection *sec, int isdy
return last; in->owner, in);
} }
+static int orphan_init_done = 0; +static int orphan_init_done = 0;

View File

@ -1,147 +0,0 @@
--- binutils.orig/ld/emultempl/elf32.em 2017-09-14 15:35:45.971100712 +0100
+++ binutils-2.29/ld/emultempl/elf32.em 2017-09-14 15:40:30.315782167 +0100
@@ -2011,6 +2011,29 @@ output_rel_find (asection *sec, int isdy
static int orphan_init_done = 0;
+/* Return whether IN is suitable to be part of OUT. */
+
+static bfd_boolean
+elf_orphan_compatible (asection *in, asection *out)
+{
+ /* Non-zero sh_info implies a section with SHF_INFO_LINK with
+ unknown semantics for the generic linker, or a SHT_REL/SHT_RELA
+ section where sh_info specifies a symbol table. (We won't see
+ SHT_GROUP, SHT_SYMTAB or SHT_DYNSYM sections here.) We clearly
+ can't merge SHT_REL/SHT_RELA using differing symbol tables, and
+ shouldn't merge sections with differing unknown semantics. */
+ if (elf_section_data (out)->this_hdr.sh_info
+ != elf_section_data (in)->this_hdr.sh_info)
+ return FALSE;
+ /* We can't merge two sections with differing SHF_EXCLUDE when doing
+ a relocatable link. */
+ if (bfd_link_relocatable (&link_info)
+ && ((elf_section_flags (out) ^ elf_section_flags (in)) & SHF_EXCLUDE) != 0)
+ return FALSE;
+ return _bfd_elf_match_sections_by_type (link_info.output_bfd, out,
+ in->owner, in);
+}
+
/* Place an orphan section. We use this to put random SHF_ALLOC
sections in the right segment. */
@@ -2067,8 +2090,9 @@ gld${EMULATION_NAME}_place_orphan (asect
lang_output_section_statement_type *os;
lang_output_section_statement_type *match_by_name = NULL;
int isdyn = 0;
- int iself = s->owner->xvec->flavour == bfd_target_elf_flavour;
- unsigned int sh_type = iself ? elf_section_type (s) : SHT_NULL;
+ int elfinput = s->owner->xvec->flavour == bfd_target_elf_flavour;
+ int elfoutput = link_info.output_bfd->xvec->flavour == bfd_target_elf_flavour;
+ unsigned int sh_type = elfinput ? elf_section_type (s) : SHT_NULL;
flagword flags;
asection *nexts;
@@ -2076,7 +2100,7 @@ gld${EMULATION_NAME}_place_orphan (asect
&& link_info.combreloc
&& (s->flags & SEC_ALLOC))
{
- if (iself)
+ if (elfinput)
switch (sh_type)
{
case SHT_RELA:
@@ -2098,6 +2122,8 @@ gld${EMULATION_NAME}_place_orphan (asect
}
if (!bfd_link_relocatable (&link_info)
+ && elfinput
+ && elfoutput
&& (s->flags & SEC_ALLOC) != 0
&& (elf_section_flags (s) & SHF_GNU_MBIND) != 0)
{
@@ -2148,23 +2174,18 @@ gld${EMULATION_NAME}_place_orphan (asect
lang_insert_orphan to create a new output section. */
constraint = SPECIAL;
- /* SEC_EXCLUDE is cleared when doing a relocatable link. But
- we can't merge 2 input sections with the same name when only
- one of them has SHF_EXCLUDE. Don't merge 2 sections with
- different sh_info. */
+ /* Check to see if we already have an output section statement
+ with this name, and its bfd section has compatible flags.
+ If the section already exists but does not have any flags
+ set, then it has been created by the linker, possibly as a
+ result of a --section-start command line switch. */
if (os->bfd_section != NULL
- && (elf_section_data (os->bfd_section)->this_hdr.sh_info
- == elf_section_data (s)->this_hdr.sh_info)
&& (os->bfd_section->flags == 0
- || ((!bfd_link_relocatable (&link_info)
- || (iself && (((elf_section_flags (s)
- ^ elf_section_flags (os->bfd_section))
- & SHF_EXCLUDE) == 0)))
- && ((s->flags ^ os->bfd_section->flags)
+ || (((s->flags ^ os->bfd_section->flags)
& (SEC_LOAD | SEC_ALLOC)) == 0
- && _bfd_elf_match_sections_by_type (link_info.output_bfd,
- os->bfd_section,
- s->owner, s))))
+ && (!elfinput
+ || !elfoutput
+ || elf_orphan_compatible (s, os->bfd_section)))))
{
/* We already have an output section statement with this
name, and its bfd section has compatible flags.
@@ -2253,8 +2274,8 @@ gld${EMULATION_NAME}_place_orphan (asect
else if ((flags & SEC_ALLOC) == 0)
;
else if ((flags & SEC_LOAD) != 0
- && ((iself && sh_type == SHT_NOTE)
- || (!iself && CONST_STRNEQ (secname, ".note"))))
+ && ((elfinput && sh_type == SHT_NOTE)
+ || (!elfinput && CONST_STRNEQ (secname, ".note"))))
place = &hold[orphan_interp];
else if ((flags & (SEC_LOAD | SEC_HAS_CONTENTS | SEC_THREAD_LOCAL)) == 0)
place = &hold[orphan_bss];
@@ -2264,8 +2285,8 @@ gld${EMULATION_NAME}_place_orphan (asect
place = &hold[orphan_tdata];
else if ((flags & SEC_READONLY) == 0)
place = &hold[orphan_data];
- else if (((iself && (sh_type == SHT_RELA || sh_type == SHT_REL))
- || (!iself && CONST_STRNEQ (secname, ".rel")))
+ else if (((elfinput && (sh_type == SHT_RELA || sh_type == SHT_REL))
+ || (!elfinput && CONST_STRNEQ (secname, ".rel")))
&& (flags & SEC_LOAD) != 0)
place = &hold[orphan_rel];
else if ((flags & SEC_CODE) == 0)
diff -rup binutils.orig/bfd/elf32-i386.c binutils-2.29/bfd/elf32-i386.c
--- binutils.orig/bfd/elf32-i386.c 2017-09-15 10:27:16.828950825 +0100
+++ binutils-2.29/bfd/elf32-i386.c 2017-09-15 10:27:38.962692771 +0100
@@ -6921,8 +6921,9 @@ elf_i386_link_setup_gnu_properties (stru
for (abfd = info->input_bfds;
abfd != NULL;
abfd = abfd->link.next)
- if ((abfd->flags
- & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
+ && (abfd->flags
+ & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0)
{
htab->elf.dynobj = abfd;
dynobj = abfd;
diff -rup binutils.orig/bfd/elf64-x86-64.c binutils-2.29/bfd/elf64-x86-64.c
--- binutils.orig/bfd/elf64-x86-64.c 2017-09-15 10:27:16.820950918 +0100
+++ binutils-2.29/bfd/elf64-x86-64.c 2017-09-15 10:28:02.621416935 +0100
@@ -7466,8 +7466,9 @@ error_alignment:
for (abfd = info->input_bfds;
abfd != NULL;
abfd = abfd->link.next)
- if ((abfd->flags
- & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
+ && (abfd->flags
+ & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0)
{
htab->elf.dynobj = abfd;
dynobj = abfd;

View File

@ -1,116 +0,0 @@
diff -rup binutils.orig/bfd/elf64-ppc.c binutils-2.29/bfd/elf64-ppc.c
--- binutils.orig/bfd/elf64-ppc.c 2017-07-31 10:48:13.642980052 +0100
+++ binutils-2.29/bfd/elf64-ppc.c 2017-07-31 10:48:37.386711582 +0100
@@ -4010,6 +4010,10 @@ struct ppc_link_hash_entry
with non-standard calling convention. */
unsigned int save_res:1;
+ /* Set if a duplicate symbol with non-zero localentry is detected,
+ even when the duplicate symbol does not provide a definition. */
+ unsigned int non_zero_localentry:1;
+
/* Contexts in which symbol is used in the GOT (or TOC).
TLS_GD .. TLS_EXPLICIT bits are or'd into the mask as the
corresponding relocs are encountered during check_relocs.
@@ -5018,7 +5022,7 @@ ppc64_elf_merge_symbol_attribute (struct
static bfd_boolean
ppc64_elf_merge_symbol (struct elf_link_hash_entry *h,
- const Elf_Internal_Sym *isym ATTRIBUTE_UNUSED,
+ const Elf_Internal_Sym *isym,
asection **psec ATTRIBUTE_UNUSED,
bfd_boolean newdef ATTRIBUTE_UNUSED,
bfd_boolean olddef ATTRIBUTE_UNUSED,
@@ -5026,6 +5030,8 @@ ppc64_elf_merge_symbol (struct elf_link_
const asection *oldsec ATTRIBUTE_UNUSED)
{
((struct ppc_link_hash_entry *) h)->fake = 0;
+ if ((STO_PPC64_LOCAL_MASK & isym->st_other) != 0)
+ ((struct ppc_link_hash_entry *) h)->non_zero_localentry = 1;
return TRUE;
}
@@ -6332,6 +6338,7 @@ is_elfv2_localentry0 (struct elf_link_ha
&& h->type == STT_FUNC
&& h->root.type == bfd_link_hash_defined
&& (STO_PPC64_LOCAL_MASK & h->other) == 0
+ && !((struct ppc_link_hash_entry *) h)->non_zero_localentry
&& is_ppc64_elf (h->root.u.def.section->owner)
&& abiversion (h->root.u.def.section->owner) >= 2);
}
@@ -8346,10 +8353,28 @@ ppc64_elf_tls_setup (struct bfd_link_inf
else if (!htab->do_multi_toc)
htab->params->no_multi_toc = 1;
+ /* Default to --no-plt-localentry, as this option can cause problems
+ with symbol interposition. For example, glibc libpthread.so and
+ libc.so duplicate many pthread symbols, with a fallback
+ implementation in libc.so. In some cases the fallback does more
+ work than the pthread implementation. __pthread_condattr_destroy
+ is one such symbol: the libpthread.so implementation is
+ localentry:0 while the libc.so implementation is localentry:8.
+ An app that "cleverly" uses dlopen to only load necessary
+ libraries at runtime may omit loading libpthread.so when not
+ running multi-threaded, which then results in the libc.so
+ fallback symbols being used and ld.so complaining. Now there
+ are workarounds in ld (see non_zero_localentry) to detect the
+ pthread situation, but that may not be the only case where
+ --plt-localentry can cause trouble. */
if (htab->params->plt_localentry0 < 0)
- htab->params->plt_localentry0
- = elf_link_hash_lookup (&htab->elf, "GLIBC_2.26",
- FALSE, FALSE, FALSE) != NULL;
+ htab->params->plt_localentry0 = 0;
+ if (htab->params->plt_localentry0
+ && elf_link_hash_lookup (&htab->elf, "GLIBC_2.26",
+ FALSE, FALSE, FALSE) == NULL)
+ info->callbacks->einfo
+ (_("%P: warning: --plt-localentry is especially dangerous without "
+ "ld.so support to detect ABI violations.\n"));
htab->tls_get_addr = ((struct ppc_link_hash_entry *)
elf_link_hash_lookup (&htab->elf, ".__tls_get_addr",
diff -rup binutils.orig/gold/powerpc.cc binutils-2.29/gold/powerpc.cc
--- binutils.orig/gold/powerpc.cc 2017-07-31 10:48:13.621980289 +0100
+++ binutils-2.29/gold/powerpc.cc 2017-07-31 10:48:37.387711571 +0100
@@ -7660,8 +7660,10 @@ Target_powerpc<size, big_endian>::scan_r
{
if (parameters->options().user_set_plt_localentry())
plt_localentry0 = parameters->options().plt_localentry();
- else
- plt_localentry0 = symtab->lookup("GLIBC_2.26", NULL) != NULL;
+ if (plt_localentry0
+ && symtab->lookup("GLIBC_2.26", NULL) == NULL)
+ gold_warning(_("--plt-localentry is especially dangerous without "
+ "ld.so support to detect ABI violations"));
}
this->plt_localentry0_ = plt_localentry0;
this->plt_localentry0_init_ = true;
diff -rup binutils.orig/ld/ld.texinfo binutils-2.29/ld/ld.texinfo
--- binutils.orig/ld/ld.texinfo 2017-07-31 10:48:13.601980515 +0100
+++ binutils-2.29/ld/ld.texinfo 2017-07-31 10:48:37.388711559 +0100
@@ -7600,6 +7600,24 @@ barrier in the call stub, or use LD_BIND
looks for calls to commonly used functions that create threads, and if
seen, adds the necessary barriers. Use these options to change the
default behaviour.
+
+@cindex PowerPC64 ELFv2 PLT localentry optimization
+@kindex --plt-localentry
+@kindex --no-plt-localentry
+@item --plt-localentry
+@itemx --no-localentry
+ELFv2 functions with localentry:0 are those with a single entry point,
+ie. global entry == local entry, and that have no requirement on r2
+(the TOC/GOT pointer) or r12, and guarantee r2 is unchanged on return.
+Such an external function can be called via the PLT without saving r2
+or restoring it on return, avoiding a common load-hit-store for small
+functions. The optimization is attractive, with up to 40% reduction
+in execution time for a small function, but can result in symbol
+interposition failures. Also, minor changes in a shared library,
+including system libraries, can cause a function that was localentry:0
+to become localentry:8. This will result in a dynamic loader
+complaint and failure to run. The option is experimental, use with
+care. @option{--no-plt-localentry} is the default.
@end table
@ifclear GENERIC

BIN
binutils-2.29.1.tar.xz Normal file

Binary file not shown.

View File

@ -7,7 +7,7 @@
# --without=testsuite: Do not run the testsuite. Default is to run it. # --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. # --with=testsuite: Run the testsuite. Default when --with=debug is not to run it.
#---Start of Configure Options----------------------------------------------------------------------- #---Start of Configure Options-----------------------------------------------
# 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.
@ -37,7 +37,7 @@
%undefine with_testsuite %undefine with_testsuite
%endif %endif
#----End of Configure Options----------------------------------------------------------------------- #----End of Configure Options------------------------------------------------
%if 0%{!?binutils_target:1} %if 0%{!?binutils_target:1}
%define binutils_target %{_target_platform} %define binutils_target %{_target_platform}
@ -49,12 +49,12 @@
%define enable_shared 0 %define enable_shared 0
%endif %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.1
Release: 9%{?dist} Release: 1%{?dist}
License: GPLv3+ License: GPLv3+
Group: Development/Tools Group: Development/Tools
URL: http://sources.redhat.com/binutils URL: http://sources.redhat.com/binutils
@ -67,65 +67,62 @@ 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 # Purpose: Use /lib64 and /usr/lib64 instead of /lib and /usr/lib in the
# default library search path of 64-bit targets. # default library search path of 64-bit targets.
# Lifetime: Permanent, but it should not be. This is a bug in the libtool # 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 # sources used in both binutils and gcc, (specifically the
# file). These are based on a version released in 2009 (2.2.6?) rather # libtool.m4 file). These are based on a version released in 2009
# than the latest version. (Definitely fixed in libtool version 2.4.6). # (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. # Purpose: Appends a RHEL or Fedora release string to the generic binutils
# version string.
# Lifetime: Permanent. This is a RHEL/Fedora specific patch. # Lifetime: Permanent. This is a RHEL/Fedora specific patch.
Patch02: binutils-2.25-version.patch Patch02: binutils-2.25-version.patch
# Purpose: Prevent a seg-fault when attempting to pad a section with a NULL padding pointer. # 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. # Lifetime: Permanent - but should be contributed upstream and fixed.
# FIXME: Need a test case to reproduce the potential bug so # FIXME: Need a test case to reproduce the potential bug so
# that the patch can be contributes. # that the patch can be contributes.
Patch04: binutils-2.20.51.0.10-sec-merge-emit.patch Patch03: binutils-2.20.51.0.10-sec-merge-emit.patch
# Purpose: Exports the demangle.h header file (associated with the libiberty sources) with # Purpose: Exports the demangle.h header file (associated with the libiberty
# the binutils-devel rpm. # sources) with the binutils-devel rpm.
# Lifetime: Permanent. This is a RHEL/Fedora specific patch. # Lifetime: Permanent. This is a RHEL/Fedora specific patch.
Patch06: binutils-2.22.52.0.1-export-demangle.h.patch Patch04: binutils-2.22.52.0.1-export-demangle.h.patch
# Purpose: Disables the check in the BFD library's header file that config.h has been # Purpose: Disables the check in the BFD library's header file that config.h
# included before the bfd.h header. See BZ #845084 for more details. # has been included before the bfd.h header. See BZ #845084 for
# Lifetime: Permanent - but it should not be. The bfd.h header defines various types that # more details.
# are dependent upon configuration options, so he order of inclusion is important. # Lifetime: Permanent - but it should not be. The bfd.h header defines
# FIXME: It would be better if the packages using the BFD header were fixed so # various types that are dependent upon configuration options, so
# that they do include the header files in the correct order. It may also be # the order of inclusion is important.
# necessary to add a way for a package to tell the bfd.h header that this check # FIXME: It would be better if the packages using the BFD header were
# is not necessary. # fixed so that they do include the header files in the correct
Patch07: binutils-2.22.52.0.4-no-config-h-check.patch # 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.
Patch05: binutils-2.22.52.0.4-no-config-h-check.patch
# Purpose: Import H.J.Lu's Kernel LTO patch. # Purpose: Import H.J.Lu's Kernel LTO patch.
# Lifetime: Permanent, but needs continual updating. # Lifetime: Permanent, but needs continual updating.
# FIXME: Try removing.... # FIXME: Try removing....
Patch11: binutils-2.26-lto.patch Patch06: binutils-2.26-lto.patch
# Purpose: Skip PR14918 linker test for ARM native targets. # Purpose: Skip PR14918 linker test for ARM native targets.
# Lifetime: Permanent - but it should not be. # Lifetime: Permanent - but it should not be.
# FIXME: This patch should be contributed upstream. # FIXME: This patch should be contributed upstream.
Patch12: binutils-2.29-skip-rp14918-test-for-arm.patch Patch07: binutils-2.29-skip-rp14918-test-for-arm.patch
# Purpose: 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 # Lifetime: Permanent. This patch changes the format of readelf's output,
# better (IMHO) but also potentially breaking tools that depend upon readelf's # making it better (IMHO) but also potentially breaking tools that
# current format. Hence it remains a local patch. # depend upon readelf's current format. Hence it remains a local
Patch13: binutils-2.29-filename-in-error-messages.patch # patch.
Patch08: binutils-2.29-filename-in-error-messages.patch
# Purpose: 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
# Purpose: Prevent a seg-fault in the linker by not attempting to place orphan ELF
# sections into a non-ELF output section.
# Lifetime: Fixed in 2.29.1.
Patch16: binutils-2.29-non-elf-orphan-skip.patch
#---------------------------------------------------------------------------------
Provides: bundled(libiberty) Provides: bundled(libiberty)
@ -200,7 +197,7 @@ 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
@ -215,7 +212,7 @@ 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
@ -244,20 +241,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 %patch01 -p1
%patch02 -p1 %patch02 -p1
%patch03 -p1
%patch04 -p1 %patch04 -p1
%patch06 -p1 %patch05 -p1
%patch07 -p1 %patch06 -p1
%patch11 -p1 %patch07 -p1
%patch12 -p1 %patch08 -p1
%patch13 -p1
%patch15 -p1
%patch16 -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.
@ -295,7 +290,7 @@ 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}
@ -415,7 +410,7 @@ 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}
@ -539,12 +534,12 @@ 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"
@ -568,7 +563,7 @@ rm -rf %{buildroot}
exit 0 exit 0
#--------------------------------------------------------------------------------- #----------------------------------------------------------------------------
%preun %preun
%if "%{build_gold}" == "both" %if "%{build_gold}" == "both"
@ -592,7 +587,7 @@ fi
exit 0 exit 0
#--------------------------------------------------------------------------------- #----------------------------------------------------------------------------
%if %{isnative} %if %{isnative}
%postun %postun
@ -606,7 +601,7 @@ exit 0
fi fi
%endif # isnative %endif # isnative
#--------------------------------------------------------------------------------- #----------------------------------------------------------------------------
%files -f %{?cross}binutils.lang %files -f %{?cross}binutils.lang
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -636,10 +631,11 @@ exit 0
%endif # enable_shared %endif # enable_shared
%if %{isnative} %if %{isnative}
%if %{with docs} %if %{with docs}
%{_infodir}/[^b]*info* %{_infodir}/[^b]*info*
%{_infodir}/binutils*info* %{_infodir}/binutils*info*
%endif %endif # with docs
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -647,14 +643,20 @@ exit 0
%{_libdir}/lib*.a %{_libdir}/lib*.a
%{_libdir}/libbfd.so %{_libdir}/libbfd.so
%{_libdir}/libopcodes.so %{_libdir}/libopcodes.so
%if %{with docs} %if %{with docs}
%{_infodir}/bfd*info* %{_infodir}/bfd*info*
%endif # with docs %endif # with docs
%endif # isnative %endif # isnative
#--------------------------------------------------------------------------------- #----------------------------------------------------------------------------
%changelog %changelog
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> 2.29.1-1
- Rebase on FSF binutils 2.29.1 release.
- Retire: binutils-2.29-ppc64-plt-localentry0-disable.patch
- Retire: binutils-2.29-non-elf-orphan-skip.patch
* Thu Sep 14 2017 Nick Clifton <nickc@redhat.com> 2.29-10 * Thu Sep 14 2017 Nick Clifton <nickc@redhat.com> 2.29-10
- Extend fix for PR 21884. - Extend fix for PR 21884.
(#1491023) (#1491023)