Housekeeping: Delete retired patches. Renumber patches.

Increase version number past F24 because F24 update is blocked by a version number comparison.
This commit is contained in:
Nick Clifton 2016-04-22 09:08:24 +01:00
parent 2fa80847e2
commit b3fd2f8ff9
8 changed files with 21 additions and 2679 deletions

View File

@ -1,26 +0,0 @@
--- a/ld/emultempl/aarch64elf.em 2013-06-05 09:46:17.499278813 +0100
+++ b/ld/emultempl/aarch64elf.em 2013-06-05 09:54:36.981292659 +0100
@@ -271,7 +271,7 @@ gld${EMULATION_NAME}_after_allocation (v
}
static void
-gld${EMULATION_NAME}_finish (void)
+gld${EMULATION_NAME}_local_finish (void)
{
if (!bfd_link_relocatable (&link_info))
{
@@ -276,7 +276,7 @@
}
}
- finish_default ();
+ gld${EMULATION_NAME}_finish ();
}
/* This is a convenient point to tell BFD about target specific flags.
@@ -413,4 +413,4 @@
LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse
# Call the extra arm-elf function
-LDEMUL_FINISH=gld${EMULATION_NAME}_finish
+LDEMUL_FINISH=gld${EMULATION_NAME}_local_finish

File diff suppressed because it is too large Load Diff

View File

@ -1,70 +0,0 @@
--- binutils-2.25.1.orif/bfd/elfnn-aarch64.c 2015-09-11 18:23:24.318028989 +0100
+++ binutils-2.25.1/bfd/elfnn-aarch64.c 2015-09-11 18:23:35.510092848 +0100
@@ -2207,9 +2207,11 @@ aarch64_type_of_stub (struct bfd_link_in
globals = elf_aarch64_hash_table (info);
via_plt_p = (globals->root.splt != NULL && hash != NULL
&& hash->root.plt.offset != (bfd_vma) - 1);
-
+ /* Make sure call to plt stub can fit into the branch range. */
if (via_plt_p)
- return stub_type;
+ destination = (globals->root.splt->output_section->vma
+ + globals->root.splt->output_offset
+ + hash->root.plt.offset);
/* Determine where the call point is. */
location = (input_sec->output_offset
@@ -4392,38 +4394,25 @@ elfNN_aarch64_final_link_relocate (reloc
/* If the call goes through a PLT entry, make sure to
check distance to the right destination address. */
if (via_plt_p)
- {
- value = (splt->output_section->vma
- + splt->output_offset + h->plt.offset);
- *unresolved_reloc_p = FALSE;
- }
+ value = (splt->output_section->vma
+ + splt->output_offset + h->plt.offset);
- /* If the target symbol is global and marked as a function the
- relocation applies a function call or a tail call. In this
- situation we can veneer out of range branches. The veneers
- use IP0 and IP1 hence cannot be used arbitrary out of range
- branches that occur within the body of a function. */
- if (h && h->type == STT_FUNC)
- {
- /* Check if a stub has to be inserted because the destination
- is too far away. */
- if (! aarch64_valid_branch_p (value, place))
- {
- /* The target is out of reach, so redirect the branch to
- the local stub for this function. */
- struct elf_aarch64_stub_hash_entry *stub_entry;
- stub_entry = elfNN_aarch64_get_stub_entry (input_section,
- sym_sec, h,
- rel, globals);
- if (stub_entry != NULL)
- value = (stub_entry->stub_offset
- + stub_entry->stub_sec->output_offset
- + stub_entry->stub_sec->output_section->vma);
- }
- }
+ /* Check if a stub has to be inserted because the destination
+ is too far away. */
+ struct elf_aarch64_stub_hash_entry *stub_entry = NULL;
+ if (! aarch64_valid_branch_p (value, place))
+ /* The target is out of reach, so redirect the branch to
+ the local stub for this function. */
+ stub_entry = elfNN_aarch64_get_stub_entry (input_section, sym_sec, h,
+ rel, globals);
+ if (stub_entry != NULL)
+ value = (stub_entry->stub_offset
+ + stub_entry->stub_sec->output_offset
+ + stub_entry->stub_sec->output_section->vma);
}
value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
signed_addend, weak_undef_p);
+ *unresolved_reloc_p = FALSE;
break;
case BFD_RELOC_AARCH64_ADR_LO21_PCREL:

View File

@ -1,70 +0,0 @@
diff -up binutils-2.25.1/gold/layout.cc.dynamic_list~ binutils-2.25.1/gold/layout.cc
--- binutils-2.25.1/gold/layout.cc.dynamic_list~ 2014-10-14 02:32:04.000000000 -0500
+++ binutils-2.25.1/gold/layout.cc 2015-08-06 10:45:35.022531546 -0500
@@ -4857,7 +4857,8 @@ Layout::finish_dynamic_section(const Inp
flags |= elfcpp::DF_STATIC_TLS;
if (parameters->options().origin())
flags |= elfcpp::DF_ORIGIN;
- if (parameters->options().Bsymbolic())
+ if (parameters->options().Bsymbolic()
+ && !parameters->options().have_dynamic_list())
{
flags |= elfcpp::DF_SYMBOLIC;
// Add DT_SYMBOLIC for compatibility with older loaders.
diff -up binutils-2.25.1/gold/options.cc.dynamic_list~ binutils-2.25.1/gold/options.cc
--- binutils-2.25.1/gold/options.cc.dynamic_list~ 2014-10-14 02:32:04.000000000 -0500
+++ binutils-2.25.1/gold/options.cc 2015-08-06 10:45:35.023531554 -0500
@@ -1200,13 +1200,6 @@ General_options::finalize()
// in the path, as appropriate.
this->add_sysroot();
- // --dynamic-list overrides -Bsymbolic and -Bsymbolic-functions.
- if (this->have_dynamic_list())
- {
- this->set_Bsymbolic(false);
- this->set_Bsymbolic_functions(false);
- }
-
// Now that we've normalized the options, check for contradictory ones.
if (this->shared() && this->is_static())
gold_fatal(_("-shared and -static are incompatible"));
diff -up binutils-2.25.1/gold/symtab.h.dynamic_list~ binutils-2.25.1/gold/symtab.h
--- binutils-2.25.1/gold/symtab.h.dynamic_list~ 2014-10-14 02:32:04.000000000 -0500
+++ binutils-2.25.1/gold/symtab.h 2015-08-06 10:45:35.023531554 -0500
@@ -604,10 +604,8 @@ class Symbol
if (parameters->options().in_dynamic_list(this->name()))
return true;
- // If the user used -Bsymbolic or provided a --dynamic-list script,
- // then nothing (else) is preemptible.
- if (parameters->options().Bsymbolic()
- || parameters->options().have_dynamic_list())
+ // If the user used -Bsymbolic, then nothing (else) is preemptible.
+ if (parameters->options().Bsymbolic())
return false;
// If the user used -Bsymbolic-functions, then functions are not
diff -up binutils-2.25.1/gold/testsuite/Makefile.am.dynamic_list~ binutils-2.25.1/gold/testsuite/Makefile.am
--- binutils-2.25.1/gold/testsuite/Makefile.am.dynamic_list~ 2015-07-21 03:20:58.000000000 -0500
+++ binutils-2.25.1/gold/testsuite/Makefile.am 2015-08-06 10:45:35.024531563 -0500
@@ -1516,7 +1516,7 @@ dynamic_list_lib1.o: dynamic_list_lib1.c
$(CXXCOMPILE) -c -fpic -o $@ $<
dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
dynamic_list_lib2.o: dynamic_list_lib2.cc
$(CXXCOMPILE) -c -fpic -o $@ $<
diff -up binutils-2.25.1/gold/testsuite/Makefile.in.dynamic_list~ binutils-2.25.1/gold/testsuite/Makefile.in
--- binutils-2.25.1/gold/testsuite/Makefile.in.dynamic_list~ 2015-07-21 03:20:58.000000000 -0500
+++ binutils-2.25.1/gold/testsuite/Makefile.in 2015-08-06 10:45:35.025531571 -0500
@@ -5277,7 +5277,7 @@ uninstall-am:
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
@GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
@GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.o: dynamic_list_lib2.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<

View File

@ -1,55 +0,0 @@
diff -rup binutils-2.25.1.orig/bfd/ihex.c binutils-2.25.1/bfd/ihex.c
--- binutils-2.25.1.orig/bfd/ihex.c 2015-08-04 17:10:24.766693094 +0100
+++ binutils-2.25.1/bfd/ihex.c 2015-08-04 17:10:44.824807881 +0100
@@ -219,7 +219,7 @@ ihex_bad_byte (bfd *abfd, unsigned int l
char buf[10];
if (! ISPRINT (c))
- sprintf (buf, "\\%03o", (unsigned int) c);
+ sprintf (buf, "\\%03o", (unsigned int) c & 0xff);
else
{
buf[0] = c;
@@ -276,7 +276,7 @@ ihex_scan (bfd *abfd)
else
{
file_ptr pos;
- char hdr[8];
+ unsigned char hdr[8];
unsigned int i;
unsigned int len;
bfd_vma addr;
@@ -553,7 +553,7 @@ ihex_read_section (bfd *abfd, asection *
error = FALSE;
while ((c = ihex_get_byte (abfd, &error)) != EOF)
{
- char hdr[8];
+ unsigned char hdr[8];
unsigned int len;
unsigned int type;
unsigned int i;
diff -rup binutils-2.25.1.orig/bfd/srec.c binutils-2.25.1/bfd/srec.c
--- binutils-2.25.1.orig/bfd/srec.c 2015-08-04 17:10:24.774693139 +0100
+++ binutils-2.25.1/bfd/srec.c 2015-08-04 17:10:44.824807881 +0100
@@ -249,7 +249,7 @@ srec_bad_byte (bfd *abfd,
char buf[40];
if (! ISPRINT (c))
- sprintf (buf, "\\%03o", (unsigned int) c);
+ sprintf (buf, "\\%03o", (unsigned int) c & 0xff);
else
{
buf[0] = c;
diff -rup binutils-2.25.1.orig/binutils/readelf.c binutils-2.25.1/binutils/readelf.c
--- binutils-2.25.1.orig/binutils/readelf.c 2015-08-04 17:10:24.856693609 +0100
+++ binutils-2.25.1/binutils/readelf.c 2015-08-04 17:10:44.829807910 +0100
@@ -13838,7 +13838,7 @@ process_mips_specific (FILE * file)
len = sizeof (* eopt);
while (len < option->size)
{
- char datum = * ((char *) eopt + offset + len);
+ unsigned char datum = * ((unsigned char *) eopt + offset + len);
if (ISPRINT (datum))
printf ("%c", datum);
Only in binutils-2.25.1/binutils: readelf.c.orig

View File

@ -1,60 +0,0 @@
diff -rup binutils-2.25.1.orig/bfd/plugin.c binutils-2.25.1/bfd/plugin.c
--- binutils-2.25.1.orig/bfd/plugin.c 2015-11-05 11:40:58.400941923 +0000
+++ binutils-2.25.1/bfd/plugin.c 2015-11-05 15:50:37.046908541 +0000
@@ -135,8 +135,9 @@ static asection bfd_plugin_fake_common_s
= BFD_FAKE_SECTION (bfd_plugin_fake_common_section, SEC_IS_COMMON, 0,
NULL, 0);
-/* Get symbols from object only section. */
+static bfd_boolean in_get_symbols = FALSE;
+/* Get symbols from object only section. */
static void
bfd_plugin_get_symbols_in_object_only (bfd *abfd)
{
@@ -153,7 +154,8 @@ bfd_plugin_get_symbols_in_object_only (b
if (abfd->sections == NULL && abfd->my_archive == NULL)
{
nbfd = bfd_openr (abfd->filename, NULL);
- if (nbfd == NULL || !bfd_check_format (nbfd, bfd_object))
+
+ if (nbfd == NULL)
{
(*_bfd_error_handler)
(_("%s: failed to open to extract object only section: %s"),
@@ -161,6 +163,22 @@ bfd_plugin_get_symbols_in_object_only (b
bfd_close (nbfd);
return;
}
+ else
+ {
+ /* Note that we are calling bfd_check_format from inside
+ bfd_plugin_get_symbols_in_object_only. bfd_check_format
+ will iterate through the known list of formats, including
+ the "plugin" format, and we do not want to end up in a
+ recursive loop. */
+ in_get_symbols = TRUE;
+ if (!bfd_check_format (nbfd, bfd_object))
+ {
+ in_get_symbols = FALSE;
+ bfd_close (nbfd);
+ return;
+ }
+ in_get_symbols = FALSE;
+ }
}
else
{
@@ -515,6 +515,12 @@ load_plugin (bfd *abfd)
static const bfd_target *
bfd_plugin_object_p (bfd *abfd)
{
+ /* If in_get_symbols is TRUE then this function is being called from
+ bfd_check_format. We do not want to iterate again - we will just
+ end up in an infinite loop. So return NULL here. */
+ if (in_get_symbols)
+ return NULL;
+
if (ld_plugin_object_p)
return ld_plugin_object_p (abfd);

View File

@ -1,26 +0,0 @@
diff -Nrup a/bfd/elf.c b/bfd/elf.c
--- a/bfd/elf.c 2015-07-28 10:52:10.941754850 -0600
+++ b/bfd/elf.c 2015-07-28 10:53:34.725982912 -0600
@@ -4081,11 +4081,18 @@ _bfd_elf_map_sections_to_segments (bfd *
new_segment = TRUE;
}
else if ((last_hdr->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) == 0
- && (hdr->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) != 0)
+ && (hdr->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) != 0
+ && ((abfd->flags & D_PAGED) == 0
+ || (((last_hdr->lma + last_size - 1) & -maxpagesize)
+ != (hdr->lma & -maxpagesize))))
{
- /* We don't want to put a loadable section after a
- nonloadable section in the same segment.
- Consider .tbss sections as loadable for this purpose. */
+ /* We don't want to put a loaded section after a
+ nonloaded (ie. bss style) section in the same segment
+ as that will force the non-loaded section to be loaded.
+ Consider .tbss sections as loaded for this purpose.
+ However, like the writable/non-writable case below,
+ if they are on the same page then they must be put
+ in the same segment. */
new_segment = TRUE;
}
else if ((abfd->flags & D_PAGED) == 0)

View File

@ -20,7 +20,7 @@
Summary: A GNU collection of binary utilities
Name: %{?cross}binutils%{?_with_debug:-debug}
Version: 2.26
Release: 16%{?dist}
Release: 20%{?dist}
License: GPLv3+
Group: Development/Tools
URL: http://sources.redhat.com/binutils
@ -48,28 +48,23 @@ Patch09: binutils-2.22.52.0.1-export-demangle.h.patch
Patch10: binutils-2.22.52.0.4-no-config-h-check.patch
# Fix addr2line to use the dynamic symbol table if it could not find any ordinary symbols.
Patch11: binutils-2.23.52.0.1-addr2line-dynsymtab.patch
# H.J's convoluted kernel building patch.
# Patch12: binutils-2.25-kernel-ld-r.patch
# Correct bug introduced by patch 12
# Patch13: binutils-2.23.2-aarch64-em.patch
# Fix detections little endian PPC shared libraries
Patch14: binutils-2.24-ldforcele.patch
# Patch15: binutils-2.25.1-plugin-format-checking.patch
Patch16: binutils-2.25.1-cleansweep.patch
Patch17: binutils-2.26-formatting.patch
Patch18: binutils-2.26-fix-compile-warnings.patch
Patch12: binutils-2.24-ldforcele.patch
Patch13: binutils-2.25.1-cleansweep.patch
Patch14: binutils-2.26-formatting.patch
Patch15: binutils-2.26-fix-compile-warnings.patch
# Enable -Bsymbolic and -Bsymbolic-functions to PIE
Patch19: binutils-2.26-Bsymbolic_PIE.patch
Patch16: binutils-2.26-Bsymbolic_PIE.patch
# Import H.J.Lu's Kernel LTO patch.
Patch20: binutils-2.26-lto.patch
Patch17: binutils-2.26-lto.patch
# Import fix for PR 19698
Patch21: binutils-rh1312151.patch
Patch18: binutils-rh1312151.patch
# Import fix for PR 19601
Patch22: binutils-2.26-fix-GOT-offset-calculation.patch
Patch19: binutils-2.26-fix-GOT-offset-calculation.patch
# Import fix for PR 19579
Patch23: binutils-2.26-common-definitions.patch
Patch20: binutils-2.26-common-definitions.patch
# Import fix for PR 19827
Patch24: binutils-2.26-x86-PIE-relocations.patch
Patch21: binutils-2.26-x86-PIE-relocations.patch
Provides: bundled(libiberty)
@ -187,21 +182,18 @@ using libelf instead of BFD.
%patch09 -p1 -b .export-demangle-h~
%patch10 -p1 -b .no-config-h-check~
%patch11 -p1 -b .addr2line~
# %patch12 -p1 -b .kernel-ld-r~
# %patch13 -p1 -b .aarch64~
%ifarch ppc64le
%patch14 -p1 -b .ldforcele~
%patch12 -p1 -b .ldforcele~
%endif
# %patch15 -p1
%patch16 -p0
%patch17 -p0
%patch13 -p0
%patch14 -p0
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
@ -521,6 +513,10 @@ exit 0
%endif # %{isnative}
%changelog
* Fri Apr 22 2016 Nick Clifton <nickc@redhat.com> 2.26-20
- Housekeeping: Delete retired patches. Renumber patches.
- Increase version number past F24 because F24 update is blocked by a version number comparison.
* Fri Mar 18 2016 Nick Clifton <nickc@redhat.com> 2.26-16
- Import patch to fix generation of x86 relocs in PIE mode. (PR 19827)