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:
parent
2fa80847e2
commit
b3fd2f8ff9
@ -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
@ -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:
|
@ -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 $@ $<
|
||||
|
@ -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
|
@ -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);
|
||||
|
@ -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)
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user