[ARM] Change noread to purecode.
authorAndre Vieria <andre.simoesdiasvieira@arm.com>
Tue, 5 Jul 2016 10:28:46 +0000 (11:28 +0100)
committerRichard Earnshaw <Richard.Earnshaw@arm.com>
Tue, 5 Jul 2016 10:28:46 +0000 (11:28 +0100)
bfd/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * bfd-in2.h (SEC_ELF_NOREAD): Rename to ...
          (SEC_ELF_PURECODE): ... this.
        * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD
          to SEC_ELF_NOREAD.
          (elf32_arm_fake_sections): Likewise.
          (elf_32_arm_section_flags): Likewise.
          (elf_32_arm_lookup_section_flags): Likewise.
        * section.c (SEC_ELF_NOREAD): Rename to ...
          (SEC_ELF_PURECODE): ... this.

binutils/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * objdump.c (dump_section_header): Rename SEC_ELF_NOREAD
          to SEC_ELF_NOREAD.
        * readelf.c (get_elf_section_flags): Rename ARM_NOREAD to
          ARM_PURECODE and SHF_ARM_NOREAD to SHF_ARM_PURECODE.
          (process_section_headers): Rename noread to purecode.

        * section.c (SEC_ELF_NOREAD): Rename to ...
          (SEC_ELF_PURECODE): ... this.

include/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * elf/arm.h (SHF_ARM_NOREAD): Rename to ...
          (SHF_ARM_PURECODE): ... this.

ld/ChangeLog
2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>

        * testsuite/ld-arm/arm_noread.ld: Renamed to ...
          testsuite/ld-arm/arm_purecode.ld: ... this, and replaced
          all noread's by purecode.

12 files changed:
bfd/ChangeLog
bfd/bfd-in2.h
bfd/elf32-arm.c
bfd/section.c
binutils/ChangeLog
binutils/objdump.c
binutils/readelf.c
include/ChangeLog
include/elf/arm.h
ld/ChangeLog
ld/testsuite/ld-arm/arm_noread.ld [deleted file]
ld/testsuite/ld-arm/arm_purecode.ld [new file with mode: 0644]

index adfed6f9e1fe029adcd7bba39b10f624b5d71217..cff9b323773c32f730504b645174507e69082dd5 100644 (file)
@@ -1,3 +1,15 @@
+2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
+
+       * bfd-in2.h (SEC_ELF_NOREAD): Rename to ...
+       (SEC_ELF_PURECODE): ... this.
+       * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD
+       to SEC_ELF_NOREAD.
+       (elf32_arm_fake_sections): Likewise.
+       (elf_32_arm_section_flags): Likewise.
+       (elf_32_arm_lookup_section_flags): Likewise.
+       * section.c (SEC_ELF_NOREAD): Rename to ...
+       (SEC_ELF_PURECODE): ... this.
+
 2016-07-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
        * elf32-arm.c (using_thumb2_bl): New function.
index 30513c4c3f39f7829ad0ea0e87f21b374994ddb0..3f2d93b03cd477222914058b88dd49a23268fb87 100644 (file)
@@ -1428,8 +1428,8 @@ typedef struct bfd_section
      when memory read flag isn't set. */
 #define SEC_COFF_NOREAD 0x40000000
 
-  /* Indicate that section has the no read flag set.  */
-#define SEC_ELF_NOREAD 0x80000000
+  /* Indicate that section has the purecode flag set.  */
+#define SEC_ELF_PURECODE 0x80000000
 
   /*  End of section flags.  */
 
index b5e7ddb8995298e6132e2b80031d5a3060bdc944..93314710c79e320dad8d195ee9067d404f2a09b6 100644 (file)
@@ -15812,7 +15812,7 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT
     }
 
   /* Scan segment to set p_flags attribute if it contains only sections with
-     SHF_ARM_NOREAD flag.  */
+     SHF_ARM_PURECODE flag.  */
   for (m = elf_seg_map (abfd); m != NULL; m = m->next)
     {
       unsigned int j;
@@ -15821,7 +15821,7 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT
        continue;
       for (j = 0; j < m->count; j++)
        {
-         if (!(elf_section_flags (m->sections[j]) & SHF_ARM_NOREAD))
+         if (!(elf_section_flags (m->sections[j]) & SHF_ARM_PURECODE))
            break;
        }
       if (j == m->count)
@@ -15884,8 +15884,8 @@ elf32_arm_fake_sections (bfd * abfd, Elf_Internal_Shdr * hdr, asection * sec)
       hdr->sh_flags |= SHF_LINK_ORDER;
     }
 
-  if (sec->flags & SEC_ELF_NOREAD)
-    hdr->sh_flags |= SHF_ARM_NOREAD;
+  if (sec->flags & SEC_ELF_PURECODE)
+    hdr->sh_flags |= SHF_ARM_PURECODE;
 
   return TRUE;
 }
@@ -18171,16 +18171,16 @@ elf32_arm_get_synthetic_symtab (bfd *abfd,
 static bfd_boolean
 elf32_arm_section_flags (flagword *flags, const Elf_Internal_Shdr * hdr)
 {
-  if (hdr->sh_flags & SHF_ARM_NOREAD)
-    *flags |= SEC_ELF_NOREAD;
+  if (hdr->sh_flags & SHF_ARM_PURECODE)
+    *flags |= SEC_ELF_PURECODE;
   return TRUE;
 }
 
 static flagword
 elf32_arm_lookup_section_flags (char *flag_name)
 {
-  if (!strcmp (flag_name, "SHF_ARM_NOREAD"))
-    return SHF_ARM_NOREAD;
+  if (!strcmp (flag_name, "SHF_ARM_PURECODE"))
+    return SHF_ARM_PURECODE;
 
   return SEC_NO_FLAGS;
 }
index f0a66b247e967f1275496b05b1b0f1142d4f1aa1..70cb267910a07c34435689f7f0a361637627efd1 100644 (file)
@@ -361,8 +361,8 @@ CODE_FRAGMENT
 .     when memory read flag isn't set. *}
 .#define SEC_COFF_NOREAD 0x40000000
 .
-.  {* Indicate that section has the no read flag set.  *}
-.#define SEC_ELF_NOREAD 0x80000000
+.  {* Indicate that section has the purecode flag set.  *}
+.#define SEC_ELF_PURECODE 0x80000000
 .
 .  {*  End of section flags.  *}
 .
index 4108b78c9b557362a76d430a483da9b01ff08b75..a854e6a45689ac5d436ab7af047c754ed903bf5a 100644 (file)
@@ -1,3 +1,14 @@
+2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
+
+       * objdump.c (dump_section_header): Rename SEC_ELF_NOREAD
+       to SEC_ELF_NOREAD.
+       * readelf.c (get_elf_section_flags): Rename ARM_NOREAD to
+       ARM_PURECODE and SHF_ARM_NOREAD to SHF_ARM_PURECODE.
+       (process_section_headers): Rename noread to purecode.
+
+       * section.c (SEC_ELF_NOREAD): Rename to ...
+       (SEC_ELF_PURECODE): ... this.
+
 2016-07-01  Nick Clifton  <nickc@redhat.com>
 
        * prdbg.c (pr_enum_type): Use a buffer big enough to hold an
index bf9c5923f17bfe2a6e1a36b8cd36c7a66eb97fc1..29d2276f6c27b9a9bfb157c587676872da8d964d 100644 (file)
@@ -493,12 +493,7 @@ dump_section_header (bfd *abfd, asection *section,
       PF (SEC_COFF_NOREAD, "NOREAD");
     }
   else if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
-    {
-      /* Note - sections can have both the READONLY and NOREAD attributes
-        set.  In this case the NOREAD takes precedence, but we report both
-        since the user may need to know that both bits are set.  */
-      PF (SEC_ELF_NOREAD, "NOREAD");
-    }
+    PF (SEC_ELF_PURECODE, "PURECODE");
   PF (SEC_THREAD_LOCAL, "THREAD_LOCAL");
   PF (SEC_GROUP, "GROUP");
   if (bfd_get_arch (abfd) == bfd_arch_mep)
index 274ddd17266aef6e4ad1f67af8a13a21500ff2af..4c7ad4c99c3e0e6dd1fa4849a3fceb1c53367211 100644 (file)
@@ -5399,7 +5399,7 @@ get_elf_section_flags (bfd_vma sh_flags)
       /* 20 */ { STRING_COMMA_LEN ("COMPRESSED") },
       /* ARM specific.  */
       /* 21 */ { STRING_COMMA_LEN ("ENTRYSECT") },
-      /* 22 */ { STRING_COMMA_LEN ("ARM_NOREAD") },
+      /* 22 */ { STRING_COMMA_LEN ("ARM_PURECODE") },
       /* 23 */ { STRING_COMMA_LEN ("COMDEF") }
     };
 
@@ -5475,7 +5475,7 @@ get_elf_section_flags (bfd_vma sh_flags)
                  switch (flag)
                    {
                    case SHF_ENTRYSECT: sindex = 21; break;
-                   case SHF_ARM_NOREAD: sindex = 22; break;
+                   case SHF_ARM_PURECODE: sindex = 22; break;
                    case SHF_COMDEF: sindex = 23; break;
                    default: break;
                    }
@@ -5534,7 +5534,7 @@ get_elf_section_flags (bfd_vma sh_flags)
                  && flag == SHF_X86_64_LARGE)
                *p = 'l';
              else if (elf_header.e_machine == EM_ARM
-                      && flag == SHF_ARM_NOREAD)
+                      && flag == SHF_ARM_PURECODE)
                  *p = 'y';
              else if (flag & SHF_MASKOS)
                {
@@ -6118,7 +6118,7 @@ process_section_headers (FILE * file)
          || elf_header.e_machine == EM_K1OM)
        printf (_("l (large), "));
       else if (elf_header.e_machine == EM_ARM)
-       printf (_("y (noread), "));
+       printf (_("y (purecode), "));
       printf ("p (processor specific)\n");
     }
 
index e4db8b8aea9d5d391528fd8a7e9fc01c4ef1dac2..7e8cd9fd2273f48e811c23c83d6c3a7168a37810 100644 (file)
@@ -1,3 +1,8 @@
+2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
+
+       * include/elf/arm.h (SHF_ARM_NOREAD): Rename to ...
+       (SHF_ARM_PURECODE): ... this.
+
 2016-07-01  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
        * opcode/aarch64.h (AARCH64_CPU_HAS_ALL_FEATURES): New.
index bafc03c52ee686671e847eff272ab5cc8a79398c..27ce6b88ce5110e737573458af887b92ea4c1ffc 100644 (file)
@@ -82,7 +82,7 @@
 
 /* ARM-specific values for sh_flags.  */
 #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point.  */
-#define SHF_ARM_NOREAD     0x20000000   /* Section contains code that can be place on no read memory area.  */
+#define SHF_ARM_PURECODE   0x20000000   /* Section contains only code and no data.  */
 #define SHF_COMDEF         0x80000000   /* Section may be multiply defined in the input to a link step.  */
 
 /* ARM-specific program header flags.  */
index 53f24280adb4243380a2f1d2a6094ad7587af487..cc598af62063ec803c92a64cc4906078fce489fe 100644 (file)
@@ -1,3 +1,9 @@
+2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
+
+       * testsuite/ld-arm/arm_noread.ld: Renamed to ...
+       testsuite/ld-arm/arm_purecode.ld: ... this, and replaced
+       all noread's by purecode.
+
 2016-07-05  Jan Beulich  <jbeulich@suse.com>
 
        * ldexp.c (exp_fold_tree_1): Set linker_def field based on
diff --git a/ld/testsuite/ld-arm/arm_noread.ld b/ld/testsuite/ld-arm/arm_noread.ld
deleted file mode 100644 (file)
index 3ff17bc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Script for ld testsuite.  */
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-MEMORY
-{
- read_memory   (rx)   : ORIGIN = 0x00008000, LENGTH = 4M
- noread_memory (!rx)  : ORIGIN = 0x00800000, LENGTH = 4M
-}
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  PROVIDE (__executable_start = 0x8000); . = 0x8000;
-  .text.noread      :
-    {
-        INPUT_SECTION_FLAGS (SHF_ARM_NOREAD) *(.text*)
-    } > noread_memory
-  .text           :
-  {
-    *(.before)
-    *(.text)
-    *(.after)
-    *(.ARM.extab*)
-    *(.glue_7)
-    *(.v4_bx)
-  } > read_memory
-  .ARM.exidx : { *(.ARM.exidx*) }
-  . = 0x9000;
-  .got            : { *(.got) *(.got.plt)}
-  . = 0x12340000;
-  .far : { *(.far) }
-  .ARM.attribues 0 : { *(.ARM.atttributes) }
-}
diff --git a/ld/testsuite/ld-arm/arm_purecode.ld b/ld/testsuite/ld-arm/arm_purecode.ld
new file mode 100644 (file)
index 0000000..195aca1
--- /dev/null
@@ -0,0 +1,32 @@
+/* Script for ld testsuite.  */
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+MEMORY
+{
+ read_memory   (rx)   : ORIGIN = 0x00008000, LENGTH = 4M
+ purecode_memory (!rx)  : ORIGIN = 0x00800000, LENGTH = 4M
+}
+SECTIONS
+{
+  /* Read-only sections, merged into text segment: */
+  PROVIDE (__executable_start = 0x8000); . = 0x8000;
+  .text.purecode      :
+    {
+        INPUT_SECTION_FLAGS (SHF_ARM_PURECODE) *(.text*)
+    } > purecode_memory
+  .text           :
+  {
+    *(.before)
+    *(.text)
+    *(.after)
+    *(.ARM.extab*)
+    *(.glue_7)
+    *(.v4_bx)
+  } > read_memory
+  .ARM.exidx : { *(.ARM.exidx*) }
+  . = 0x9000;
+  .got            : { *(.got) *(.got.plt)}
+  . = 0x12340000;
+  .far : { *(.far) }
+  .ARM.attribues 0 : { *(.ARM.atttributes) }
+}