This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] Add string representation of ELF e_flags for AVR.
- From: Andrew Burgess <andrew dot burgess at embecosm dot com>
- To: binutils at sourceware dot org
- Cc: Denis Chertykov <denisc at overta dot ru>, Marek Michalkiewicz <marekm at amelek dot gda dot pl>
- Date: Tue, 2 Dec 2014 09:05:04 +0000
- Subject: Re: [PATCH] Add string representation of ELF e_flags for AVR.
- Authentication-results: sourceware.org; auth=none
- References: <1416828550-12898-1-git-send-email-andrew dot burgess at embecosm dot com>
Ping.
* Andrew Burgess <andrew.burgess@embecosm.com> [2014-11-24 11:29:10 +0000]:
> Adds a string representation of the ELF e_flags field for AVR in
> readelf output, like lots of other targets.
>
> OK to apply?
>
> Thanks,
> Andrew
>
> ---
> binutils/ChangeLog:
>
> * readelf.c (decode_AVR_machine_flags): New function.
> (get_machine_flags): Add EM_AVR case.
> ---
> binutils/ChangeLog | 5 ++++
> binutils/readelf.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 80 insertions(+)
>
> diff --git a/binutils/ChangeLog b/binutils/ChangeLog
> index dbf07f9..c652555 100644
> --- a/binutils/ChangeLog
> +++ b/binutils/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-24 Andrew Burgess <andrew.burgess@embecosm.com>
> +
> + * readelf.c (decode_AVR_machine_flags): New function.
> + (get_machine_flags): Add EM_AVR case.
> +
> 2014-11-21 Nick Clifton <nickc@redhat.com>
>
> PR binutils/17512
> diff --git a/binutils/readelf.c b/binutils/readelf.c
> index e8ce279..9b86ff8 100644
> --- a/binutils/readelf.c
> +++ b/binutils/readelf.c
> @@ -2400,6 +2400,77 @@ decode_ARM_machine_flags (unsigned e_flags, char buf[])
> }
>
> 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)
> {
> unsigned abi;
> @@ -2620,6 +2691,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");
> --
> 1.9.3
>