OSDN Git Service

bfd/
authorjiez <jiez>
Tue, 15 Jul 2008 13:09:46 +0000 (13:09 +0000)
committerjiez <jiez>
Tue, 15 Jul 2008 13:09:46 +0000 (13:09 +0000)
* elf32-bfin.c (elf32_bfin_special_sections[]): New.
(elf_backend_special_sections): Define.

ld/
* emulparams/elf32bfinfd.sh (OTHER_SECTIONS): Define.

bfd/ChangeLog
bfd/elf32-bfin.c
ld/ChangeLog
ld/emulparams/elf32bfinfd.sh

index 8df7d40..7f389af 100644 (file)
@@ -1,3 +1,8 @@
+2008-07-15  Jie Zhang  <jie.zhang@analog.com>
+
+       * elf32-bfin.c (elf32_bfin_special_sections[]): New.
+       (elf_backend_special_sections): Define.
+
 2008-07-13  Craig Silverstein  <csilvers@google.com>
 
        PR binutils/6743
index f83abd2..b899b6e 100644 (file)
@@ -5572,6 +5572,14 @@ error_return:
     free (internal_relocs);
   return FALSE;
 }
+
+struct bfd_elf_special_section const elf32_bfin_special_sections[] =
+{
+  { ".l1.text",                8, -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { ".l1.data",                8, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { NULL,              0,  0, 0,            0 }
+};
+
 \f
 #define TARGET_LITTLE_SYM              bfd_elf32_bfin_vec
 #define TARGET_LITTLE_NAME             "elf32-bfin"
@@ -5620,6 +5628,7 @@ error_return:
                                         elf32_bfin_print_private_bfd_data
 #define elf_backend_reloc_type_class    elf32_bfin_reloc_type_class
 #define elf_backend_can_gc_sections 1
+#define elf_backend_special_sections   elf32_bfin_special_sections
 #define elf_backend_can_refcount 1
 #define elf_backend_want_got_plt 0
 #define elf_backend_plt_readonly 1
index ecc1a0a..4c5f7ae 100644 (file)
@@ -1,3 +1,7 @@
+2008-07-15  Jie Zhang  <jie.zhang@analog.com>
+
+       * emulparams/elf32bfinfd.sh (OTHER_SECTIONS): Define.
+
 2008-07-12  Craig Silverstein  <csilvers@google.com>
 
        PR ld/6741
index 19ec748..e3ae57b 100644 (file)
@@ -14,3 +14,23 @@ OTHER_READONLY_SECTIONS="
     ${RELOCATING+__ROFIXUP_END__ = .;}
   }
 "
+# 0xff700000, 0xff800000, 0xff900000 and 0xffa00000 are also used in
+# Dynamic linker and linux kernel. They need to be keep synchronized.
+OTHER_SECTIONS="
+  .l1.data 0xff700000  :
+  {
+    *(.l1.data)
+  }
+  .l1.data.A 0xff800000        :
+  {
+    *(.l1.data.A)
+  }
+  .l1.data.B 0xff900000        :
+  {
+    *(.l1.data.B)
+  }
+  .l1.text  0xffa00000 :
+  {
+    *(.l1.text)
+  }
+"