diff options
author | Alexander Fedotov-B55613 <b55613@freescale.com> | 2017-09-05 08:22:17 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-09-05 08:42:27 +0930 |
commit | 83eef883581525d04df3a8e53a82c01d0d12b56a (patch) | |
tree | 0b0f139532eacf737ad092c9ea64d26e3fde211e /binutils/readelf.c | |
parent | 31cf148787509fcf33bc6adb05bbf16bee48835d (diff) | |
download | fsf-binutils-gdb-83eef883581525d04df3a8e53a82c01d0d12b56a.zip fsf-binutils-gdb-83eef883581525d04df3a8e53a82c01d0d12b56a.tar.gz fsf-binutils-gdb-83eef883581525d04df3a8e53a82c01d0d12b56a.tar.bz2 |
Missing relocation R_PPC_VLE_ADDR20 and add VLE flag to details in readelf
include/
* elf/ppc.h (R_PPC_VLE_ADDR20): New relocation.
bfd/
* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_VLE_ADDR20.
(ppc_elf_check_relocs): Handle it.
(ppc_elf_vle_split20): New function.
(ppc_elf_relocate_section): Handle R_PPC_VLE_ADDR20.
binutils/
* readelf.c (get_elf_section_flags): Add VLE.
(process_section_headers): Add VLE key to details.
gas/
* config/tc-ppc.c (md_parse_option): Handle "mno-vle" flag.
(ppc_elf_section_letter): New function.
* config/tc-ppc.h (md_elf_section_letter): New.
* testsuite/gas/elf/section10.d: Adjust for VLE.
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r-- | binutils/readelf.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c index db3fc03..571da2c 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -5587,6 +5587,8 @@ get_elf_section_flags (bfd_vma sh_flags) /* 23 */ { STRING_COMMA_LEN ("COMDEF") }, /* GNU specific. */ /* 24 */ { STRING_COMMA_LEN ("GNU_MBIND") }, + /* VLE specific. */ + /* 25 */ { STRING_COMMA_LEN ("VLE") }, }; if (do_section_details) @@ -5667,6 +5669,10 @@ get_elf_section_flags (bfd_vma sh_flags) default: break; } break; + case EM_PPC: + if (flag == SHF_PPC_VLE) + sindex = 25; + break; default: break; @@ -5724,6 +5730,9 @@ get_elf_section_flags (bfd_vma sh_flags) else if (elf_header.e_machine == EM_ARM && flag == SHF_ARM_PURECODE) *p = 'y'; + else if (elf_header.e_machine == EM_PPC + && flag == SHF_PPC_VLE) + *p = 'v'; else if (flag & SHF_MASKOS) { *p = 'o'; @@ -6460,6 +6469,8 @@ process_section_headers (FILE * file) printf (_("l (large), ")); else if (elf_header.e_machine == EM_ARM) printf (_("y (purecode), ")); + else if (elf_header.e_machine == EM_PPC) + printf (_("v (VLE), ")); printf ("p (processor specific)\n"); } |