* elf32-arm.c (elf32_arm_symbian_special_sections): Do not set
authorMark Mitchell <mark@codesourcery.com>
Mon, 31 Jan 2005 17:50:20 +0000 (17:50 +0000)
committerMark Mitchell <mark@codesourcery.com>
Mon, 31 Jan 2005 17:50:20 +0000 (17:50 +0000)
SHF_WRITE for .init_array, .fini_array, and .preinit_array.

bfd/ChangeLog
bfd/elf32-arm.c

index 9a9785f7f401beb2591ac6022d732e215e9898b8..f8b51e1306ec1cd1912fdc63ed21aeb32ef882f5 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-31  Mark Mitchell  <mark@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_symbian_special_sections): Do not set
+       SHF_WRITE for .init_array, .fini_array, and .preinit_array.
+       
 2005-01-31  Nick Clifton  <nickc@redhat.com>
 
        * confg.bfd: Make targets scheduled for obsoletion (m68k-lynxos,
index 69feb32e811376973bbab5c8432cbbd261469f5c..032b05c5b74d210e56169bfad224597bb98a8612 100644 (file)
@@ -5849,18 +5849,24 @@ elf32_arm_symbian_link_hash_table_create (bfd *abfd)
   return ret;
 }     
 
-/* In a BPABI executable, the dynamic linking sections do not go in
-   the loadable read-only segment.  The post-linker may wish to refer
-   to these sections, but they are not part of the final program
-   image.  */
 static struct bfd_elf_special_section const 
   elf32_arm_symbian_special_sections[]=
 {
+  /* In a BPABI executable, the dynamic linking sections do not go in
+     the loadable read-only segment.  The post-linker may wish to
+     refer to these sections, but they are not part of the final
+     program image.  */
   { ".dynamic",        8,  0, SHT_DYNAMIC,  0 },
   { ".dynstr",         7,  0, SHT_STRTAB,   0 },
   { ".dynsym",         7,  0, SHT_DYNSYM,   0 },
   { ".got",            4,  0, SHT_PROGBITS, 0 },
   { ".hash",           5,  0, SHT_HASH,     0 },
+  /* These sections do not need to be writable as the SymbianOS
+     postlinker will arrange things so that no dynamic relocation is
+     required.  */
+  { ".init_array",    11,  0, SHT_INIT_ARRAY, SHF_ALLOC },
+  { ".fini_array",    11,  0, SHT_FINI_ARRAY, SHF_ALLOC },
+  { ".preinit_array", 14,  0, SHT_PREINIT_ARRAY, SHF_ALLOC },
   { NULL,              0,  0, 0,            0 }
 };