AArch64: Revert setting of elf class in linker stub.
authorTamar Christina <tamar.christina@arm.com>
Fri, 10 Jan 2020 13:48:57 +0000 (13:48 +0000)
committerTamar Christina <tamar.christina@arm.com>
Fri, 10 Jan 2020 13:51:08 +0000 (13:51 +0000)
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.

bfd/ChangeLog
bfd/elfnn-aarch64.c

index 68b15198b196c2ef27e8fa17ee3f7b8cfa15483e..2aba654826d0025e9655e5f6521e39c8278ca4fb 100644 (file)
@@ -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.
index 756ffeb6bdad04ce7fc466e7f3c23c462c6a806a..5fabcd8f6462730aef10ec942b594d589759994e 100644 (file)
@@ -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);