aboutsummaryrefslogtreecommitdiff
path: root/binutils/readelf.c
diff options
context:
space:
mode:
authorPhil Blundell <philb@gnu.org>2001-02-28 10:15:57 +0000
committerPhil Blundell <philb@gnu.org>2001-02-28 10:15:57 +0000
commita5bcd848ff9f8a403f1f57644447ba136c0e29eb (patch)
treee881cc70be42e149654a124bd9033eff6db5814d /binutils/readelf.c
parentfd2ec33034e870c38a8e29c65939594b6ff5d63e (diff)
downloadgdb-a5bcd848ff9f8a403f1f57644447ba136c0e29eb.zip
gdb-a5bcd848ff9f8a403f1f57644447ba136c0e29eb.tar.gz
gdb-a5bcd848ff9f8a403f1f57644447ba136c0e29eb.tar.bz2
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.
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r--binutils/readelf.c53
1 files changed, 43 insertions, 10 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c
index b0fdcc3..18928c5 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -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;