summaryrefslogtreecommitdiff
path: root/binutils
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
commit114db3533e61bcb8043cbd67da22f6fb1b719d93 (patch)
tree2319c023b1e14efcb429ead23af3815c2090bed0 /binutils
parent7867bdabef225be8af331d5b88234fe8ef34c177 (diff)
downloadbinutils-redhat-114db3533e61bcb8043cbd67da22f6fb1b719d93.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/ChangeLog7
-rw-r--r--binutils/readelf.c53
2 files changed, 50 insertions, 10 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 25e815c644..aa9101115a 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 b0fdcc39ee..18928c5e11 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;