summaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorAlexander Fedotov-B55613 <b55613@freescale.com>2017-09-05 08:22:17 +0930
committerAlan Modra <amodra@gmail.com>2017-09-05 08:42:27 +0930
commit83eef883581525d04df3a8e53a82c01d0d12b56a (patch)
tree0b0f139532eacf737ad092c9ea64d26e3fde211e /binutils
parent31cf148787509fcf33bc6adb05bbf16bee48835d (diff)
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')
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/readelf.c11
2 files changed, 17 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 6d6aeee61b..92d8602546 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2017-09-05 Alexander Fedotov <alexander.fedotov@nxp.com>
+ Edmar Wienskoski <edmar.wienskoski@nxp.com
+
+ * readelf.c (get_elf_section_flags): Add VLE.
+ (process_section_headers): Add VLE key to details.
+
2017-08-25 Alan Modra <amodra@gmail.com>
PR 21994
diff --git a/binutils/readelf.c b/binutils/readelf.c
index db3fc037d6..571da2cf7c 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");
}