2004-12-01 Paul Brook <paul@codesourcery.com>
authorPaul Brook <paul@codesourcery.com>
Thu, 2 Dec 2004 15:05:34 +0000 (15:05 +0000)
committerPaul Brook <paul@codesourcery.com>
Thu, 2 Dec 2004 15:05:34 +0000 (15:05 +0000)
* elf32-arm.c (elf32_arm_copy_private_bfd_data): Set EI_OSABI.
(elf32_arm_post_process_headers): Set EI_OSABI depending on ABI
version.

bfd/ChangeLog
bfd/elf32-arm.c

index dc0d93308dfdf431255f96b3207749e09ab454ff..699732418c890e0e49da84e729a46117d48e6af0 100644 (file)
@@ -1,3 +1,9 @@
+2004-12-01  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_copy_private_bfd_data): Set EI_OSABI.
+       (elf32_arm_post_process_headers): Set EI_OSABI depending on ABI
+       version.
+
 2004-12-01  Paul Brook  <paul@codesourcery.com>
 
        * elflink.c (elf_link_add_object_symbols): Make symbols from discarded
index 0b031e0a08bdcec4066796a19299d24c2904436d..325d2e86251cb8094b5f6ded7c8d481c7f015231 100644 (file)
@@ -3428,6 +3428,10 @@ elf32_arm_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
   elf_elfheader (obfd)->e_flags = in_flags;
   elf_flags_init (obfd) = TRUE;
 
+  /* Also copy the EI_OSABI field.  */
+  elf_elfheader (obfd)->e_ident[EI_OSABI] =
+    elf_elfheader (ibfd)->e_ident[EI_OSABI];
+
   return TRUE;
 }
 
@@ -5352,7 +5356,10 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT
 
   i_ehdrp = elf_elfheader (abfd);
 
-  i_ehdrp->e_ident[EI_OSABI]      = ARM_ELF_OS_ABI_VERSION;
+  if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_UNKNOWN)
+    i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_ARM;
+  else
+    i_ehdrp->e_ident[EI_OSABI] = 0;
   i_ehdrp->e_ident[EI_ABIVERSION] = ARM_ELF_ABI_VERSION;
 
   if (link_info)