Do not initialise flags in output bfd if the input bfd is the default
authorNick Clifton <nickc@redhat.com>
Sat, 9 Sep 2000 00:40:08 +0000 (00:40 +0000)
committerNick Clifton <nickc@redhat.com>
Sat, 9 Sep 2000 00:40:08 +0000 (00:40 +0000)
architecture with the default flags.

bfd/ChangeLog
bfd/elf32-arm.h

index 17167b4656ee5a5388416f4ff6c6551153c8f4c1..651a5ae6b8f90c51a60cf27fb578c3495a5e4d1c 100644 (file)
@@ -1,3 +1,9 @@
+2000-09-08  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-arm.h (elf32_arm_merge_private_bfd_data): Do not
+       initialise flags in output bfd if the input bfd is the default
+       architecture with the default flags.
+
 2000-09-08  Kazu Hirata  <kazu@hxi.com>
 
        * archive.c: Fix formatting.
index f3b2a44ecbd21aaa9b99cfb80291f1a6723abc6b..46f8ff623704bacdc39640fa597f8d742967c905 100644 (file)
@@ -2038,13 +2038,14 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
 
   if (!elf_flags_init (obfd))
     {
-      /* If the input is the default architecture then do not
-         bother setting the flags for the output architecture,
-         instead allow future merges to do this.  If no future
-         merges ever set these flags then they will retain their
-         unitialised values, which surprise surprise, correspond
+      /* If the input is the default architecture and had the default
+        flags then do not bother setting the flags for the output
+        architecture, instead allow future merges to do this.  If no
+        future merges ever set these flags then they will retain their
+         uninitialised values, which surprise surprise, correspond
          to the default values.  */
-      if (bfd_get_arch_info (ibfd)->the_default)
+      if (bfd_get_arch_info (ibfd)->the_default
+         && elf_elfheader (ibfd)->e_flags == 0)
        return true;
 
       elf_flags_init (obfd) = true;