This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add string representation of ELF e_flags for AVR.


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
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]