[binutils-gdb] AArch64: Revert setting of elf class in linker stub.

Tamar Christina tnfchris@sourceware.org
Fri Jan 10 13:52:00 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8cd0e5e93145699736a370b271ff03f3f41670b0

commit 8cd0e5e93145699736a370b271ff03f3f41670b0
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Fri Jan 10 13:48:57 2020 +0000

    AArch64: Revert setting of elf class in linker stub.
    
    This changes the fix to PR 25210 by removing the ELF class change.
    As it turns out the correct change was only the change in compress.c.
    
    Everything else is unneeded and setting the elf class is making the linker
    behave very oddly under LTO.  The first stub is correctly written out but for
    the rest the suddenly don't have a pointer to the stub section anymore.
    
    This caused SPEC to fail as the program would branch to the stub and it wouldn't
    be filled in.
    
    Committed to master under the trivial rule as this is partially reverting a previous commit.
    
    bfd/ChangeLog:
    
    	PR 25210
    	* elfnn-aarch64.c (_bfd_aarch64_create_stub_section): Remove elfclass.

Diff:
---
 bfd/ChangeLog       | 5 +++++
 bfd/elfnn-aarch64.c | 4 ----
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 68b1519..2aba654 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2020-01-10  Tamar Christina  <tamar.christina@arm.com>
+
+	PR 25210
+	* elfnn-aarch64.c (_bfd_aarch64_create_stub_section): Remove elfclass.
+
 2020-01-10  Alan Modra  <amodra@gmail.com>
 
 	* coff-alpha.c (alpha_ecoff_object_p): Calculate size in bfd_size_type.
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 756ffeb..5fabcd8 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -3177,10 +3177,6 @@ _bfd_aarch64_create_stub_section (asection *section,
   if (s_name == NULL)
     return NULL;
 
-  /* PR 25210.  Set the right class on the stub_bfd.  */
-  elf_elfheader (htab->stub_bfd)->e_ident[EI_CLASS] = ELFCLASSNN;
-  BFD_ASSERT (ELFCLASSNN == get_elf_backend_data (htab->stub_bfd)->s->elfclass);
-
   memcpy (s_name, section->name, namelen);
   memcpy (s_name + namelen, STUB_SUFFIX, sizeof (STUB_SUFFIX));
   return (*htab->add_stub_section) (s_name, section);



More information about the Binutils-cvs mailing list