From 83eef883581525d04df3a8e53a82c01d0d12b56a Mon Sep 17 00:00:00 2001 From: Alexander Fedotov-B55613 Date: Tue, 5 Sep 2017 08:22:17 +0930 Subject: 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. --- binutils/readelf.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'binutils/readelf.c') 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"); } -- cgit v1.1