Select the highest known ARM architecture when an F_ARM_5 flag is detected,
authorNick Clifton <nickc@redhat.com>
Wed, 6 Feb 2002 16:29:28 +0000 (16:29 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 6 Feb 2002 16:29:28 +0000 (16:29 +0000)
since we cannot be sure exactly which architecture this represents.

bfd/ChangeLog
bfd/coffcode.h

index 71e5fbbaea3529610c55afad204563d1fce1ee92..6f2764be7db35b4c71326cd99a80c27ab4d88998 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * coffcode.h (coff_set_arch_mach_hook): Select the highest known
+       ARM architecture when an F_ARM_5 flag is detected, since we cannot
+       be sure exactly which architecture this represents.
+
 2002-02-05  Nick Clifton  <nickc@redhat.com>
 
        * po/tr.po: Updated translation.
index 976efe19c2b34efa640262988502d40f912c0de3..f0a2c5e3a6195876fecfb13cb222498ec5e3a78e 100644 (file)
@@ -1787,7 +1787,7 @@ coff_mkobject_hook (abfd, filehdr, aouthdr)
 #endif
 
 #ifdef ARM
-  /* Set the flags field from the COFF header read in */
+  /* Set the flags field from the COFF header read in */
   if (! _bfd_coff_arm_set_private_flags (abfd, internal_f->f_flags))
     coff->flags = 0;
 #endif
@@ -1871,7 +1871,12 @@ coff_set_arch_mach_hook (abfd, filehdr)
         case F_ARM_3M: machine = bfd_mach_arm_3M; break;
         case F_ARM_4:  machine = bfd_mach_arm_4;  break;
         case F_ARM_4T: machine = bfd_mach_arm_4T; break;
-        case F_ARM_5:  machine = bfd_mach_arm_5;  break;
+         /* The COFF header does not have enough bits available
+            to cover all the different ARM architectures.  So
+            we interpret F_ARM_5, the highest flag value to mean
+            "the highest ARM architecture known to BFD" which is
+            currently the XScale.  */
+        case F_ARM_5:  machine = bfd_mach_arm_XScale;  break;
        }
       break;
 #endif
@@ -2624,7 +2629,8 @@ coff_set_flags (abfd, magicp, flagsp)
        case bfd_mach_arm_4:  * flagsp |= F_ARM_4;  break;
        case bfd_mach_arm_4T: * flagsp |= F_ARM_4T; break;
        case bfd_mach_arm_5:  * flagsp |= F_ARM_5;  break;
-         /* FIXME: we do not have F_ARM vaues greater than F_ARM_5.  */
+         /* FIXME: we do not have F_ARM vaues greater than F_ARM_5.
+            See also the comment in coff_set_arch_mach_hook().  */
        case bfd_mach_arm_5T: * flagsp |= F_ARM_5;  break;
        case bfd_mach_arm_5TE: * flagsp |= F_ARM_5; break;
        case bfd_mach_arm_XScale: * flagsp |= F_ARM_5; break;