Add string representation of ELF e_flags for AVR.

binutils/ChangeLog:

	* readelf.c (decode_AVR_machine_flags): New function.
	(get_machine_flags): Add EM_AVR case.
This commit is contained in:
Andrew Burgess 2014-12-05 21:05:33 +00:00
parent 238309aab1
commit 343433dfd7
2 changed files with 80 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2014-12-05 Andrew Burgess <andrew.burgess@embecosm.com>
* readelf.c (decode_AVR_machine_flags): New function.
(get_machine_flags): Add EM_AVR case.
2014-12-03 Nick Clifton <nickc@redhat.com>
PR binutils/17512

View File

@ -2437,6 +2437,77 @@ decode_ARM_machine_flags (unsigned e_flags, char buf[])
strcat (buf,_(", <unknown>"));
}
static void
decode_AVR_machine_flags (unsigned e_flags, char buf[], size_t size)
{
--size; /* Leave space for null terminator. */
switch (e_flags & EF_AVR_MACH)
{
case E_AVR_MACH_AVR1:
strncat (buf, ", avr:1", size);
break;
case E_AVR_MACH_AVR2:
strncat (buf, ", avr:2", size);
break;
case E_AVR_MACH_AVR25:
strncat (buf, ", avr:25", size);
break;
case E_AVR_MACH_AVR3:
strncat (buf, ", avr:3", size);
break;
case E_AVR_MACH_AVR31:
strncat (buf, ", avr:31", size);
break;
case E_AVR_MACH_AVR35:
strncat (buf, ", avr:35", size);
break;
case E_AVR_MACH_AVR4:
strncat (buf, ", avr:4", size);
break;
case E_AVR_MACH_AVR5:
strncat (buf, ", avr:5", size);
break;
case E_AVR_MACH_AVR51:
strncat (buf, ", avr:51", size);
break;
case E_AVR_MACH_AVR6:
strncat (buf, ", avr:6", size);
break;
case E_AVR_MACH_AVRTINY:
strncat (buf, ", avr:100", size);
break;
case E_AVR_MACH_XMEGA1:
strncat (buf, ", avr:101", size);
break;
case E_AVR_MACH_XMEGA2:
strncat (buf, ", avr:102", size);
break;
case E_AVR_MACH_XMEGA3:
strncat (buf, ", avr:103", size);
break;
case E_AVR_MACH_XMEGA4:
strncat (buf, ", avr:104", size);
break;
case E_AVR_MACH_XMEGA5:
strncat (buf, ", avr:105", size);
break;
case E_AVR_MACH_XMEGA6:
strncat (buf, ", avr:106", size);
break;
case E_AVR_MACH_XMEGA7:
strncat (buf, ", avr:107", size);
break;
default:
strncat (buf, ", avr:<unknown>", size);
break;
}
size -= strlen (buf);
if (e_flags & EF_AVR_LINKRELAX_PREPARED)
strncat (buf, ", link-relax", size);
}
static void
decode_NDS32_machine_flags (unsigned e_flags, char buf[], size_t size)
{
@ -2658,6 +2729,10 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
decode_ARM_machine_flags (e_flags, buf);
break;
case EM_AVR:
decode_AVR_machine_flags (e_flags, buf, sizeof buf);
break;
case EM_BLACKFIN:
if (e_flags & EF_BFIN_PIC)
strcat (buf, ", PIC");