2001-02-28 Philip Blundell <pb@futuretv.com>
authorPhil Blundell <philb@gnu.org>
Wed, 28 Feb 2001 10:15:57 +0000 (10:15 +0000)
committerPhil Blundell <philb@gnu.org>
Wed, 28 Feb 2001 10:15:57 +0000 (10:15 +0000)
* readelf.c (decode_ARM_machine_flags): Explicitly mention which
ABI is in use; remove ambiguity between the "unknown" EABI and
unrecognised ABIs.  Handle version 2 ARM EABI.  Update uses of
renamed EF_xx constants.

binutils/ChangeLog
binutils/readelf.c

index 25e815c..aa91011 100644 (file)
@@ -1,3 +1,10 @@
+2001-02-28  Philip Blundell  <pb@futuretv.com>
+
+       * readelf.c (decode_ARM_machine_flags): Explicitly mention which
+       ABI is in use; remove ambiguity between the "unknown" EABI and
+       unrecognised ABIs.  Handle version 2 ARM EABI.  Update uses of
+       renamed EF_xx constants.
+
 2001-02-27  Alan Modra  <alan@linuxcare.com.au>
 
        * configure.in (BFD_VERSION): New.
index b0fdcc3..18928c5 100644 (file)
@@ -1359,12 +1359,13 @@ decode_ARM_machine_flags (e_flags, buf)
   switch (eabi)
     {
     default:
-      strcat (buf, ", <unknown EABI>");
+      strcat (buf, ", <unrecognised EABI>");
       if (e_flags)
        unknown = 1;
       break;
 
     case EF_ARM_EABI_VER1:
+      strcat (buf, ", Version1 EABI");
       while (e_flags)
        {
          unsigned flag;
@@ -1375,7 +1376,7 @@ decode_ARM_machine_flags (e_flags, buf)
 
          switch (flag)
            {
-           case EF_ARM_SYMSARESORTED: /* Conflicts with EF_INTERWORK.  */
+           case EF_ARM_SYMSARESORTED: /* Conflicts with EF_ARM_INTERWORK.  */
              strcat (buf, ", sorted symbol tables");
              break;
 
@@ -1386,7 +1387,39 @@ decode_ARM_machine_flags (e_flags, buf)
        }
       break;
 
+    case EF_ARM_EABI_VER2:
+      strcat (buf, ", Version2 EABI");
+      while (e_flags)
+       {
+         unsigned flag;
+
+         /* Process flags one bit at a time.  */
+         flag = e_flags & - e_flags;
+         e_flags &= ~ flag;
+
+         switch (flag)
+           {
+           case EF_ARM_SYMSARESORTED: /* Conflicts with EF_ARM_INTERWORK.  */
+             strcat (buf, ", sorted symbol tables");
+             break;
+
+           case EF_ARM_DYNSYMSUSESEGIDX:
+             strcat (buf, ", dynamic symbols use segment index");
+             break;
+
+           case EF_ARM_MAPSYMSFIRST:
+             strcat (buf, ", mapping symbols precede others");
+             break;
+
+           default:
+             unknown = 1;
+             break;
+           }
+       }
+      break;
+
     case EF_ARM_EABI_UNKNOWN:
+      strcat (buf, ", GNU EABI");
       while (e_flags)
        {
          unsigned flag;
@@ -1397,35 +1430,35 @@ decode_ARM_machine_flags (e_flags, buf)
 
          switch (flag)
            {
-           case EF_INTERWORK:
+           case EF_ARM_INTERWORK:
              strcat (buf, ", interworking enabled");
              break;
 
-           case EF_APCS_26:
+           case EF_ARM_APCS_26:
              strcat (buf, ", uses APCS/26");
              break;
 
-           case EF_APCS_FLOAT:
+           case EF_ARM_APCS_FLOAT:
              strcat (buf, ", uses APCS/float");
              break;
 
-           case EF_PIC:
+           case EF_ARM_PIC:
              strcat (buf, ", position independent");
              break;
 
-           case EF_ALIGN8:
+           case EF_ARM_ALIGN8:
              strcat (buf, ", 8 bit structure alignment");
              break;
 
-           case EF_NEW_ABI:
+           case EF_ARM_NEW_ABI:
              strcat (buf, ", uses new ABI");
              break;
 
-           case EF_OLD_ABI:
+           case EF_ARM_OLD_ABI:
              strcat (buf, ", uses old ABI");
              break;
 
-           case EF_SOFT_FLOAT:
+           case EF_ARM_SOFT_FLOAT:
              strcat (buf, ", software FP");
              break;