diff options
author | Phil Blundell <philb@gnu.org> | 2001-02-28 10:15:57 +0000 |
---|---|---|
committer | Phil Blundell <philb@gnu.org> | 2001-02-28 10:15:57 +0000 |
commit | a5bcd848ff9f8a403f1f57644447ba136c0e29eb (patch) | |
tree | e881cc70be42e149654a124bd9033eff6db5814d /binutils | |
parent | fd2ec33034e870c38a8e29c65939594b6ff5d63e (diff) | |
download | binutils-gdb-a5bcd848ff9f8a403f1f57644447ba136c0e29eb.tar.gz |
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')
-rw-r--r-- | binutils/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/readelf.c | 53 |
2 files changed, 50 insertions, 10 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 25e815c644d..aa9101115a1 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -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. diff --git a/binutils/readelf.c b/binutils/readelf.c index b0fdcc39ee3..18928c5e11a 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; |