diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8df7d40388..7f389af006 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2008-07-15 Jie Zhang + + * elf32-bfin.c (elf32_bfin_special_sections[]): New. + (elf_backend_special_sections): Define. + 2008-07-13 Craig Silverstein PR binutils/6743 diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c index f83abd28ac..b899b6e9ee 100644 --- a/bfd/elf32-bfin.c +++ b/bfd/elf32-bfin.c @@ -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 } +}; + #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 diff --git a/ld/ChangeLog b/ld/ChangeLog index ecc1a0a3d0..4c5f7aed29 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2008-07-15 Jie Zhang + + * emulparams/elf32bfinfd.sh (OTHER_SECTIONS): Define. + 2008-07-12 Craig Silverstein PR ld/6741 diff --git a/ld/emulparams/elf32bfinfd.sh b/ld/emulparams/elf32bfinfd.sh index 19ec748b7f..e3ae57b072 100644 --- a/ld/emulparams/elf32bfinfd.sh +++ b/ld/emulparams/elf32bfinfd.sh @@ -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) + } +"