From b0a0b9787e4bb82a555a54077f5df26a96e105a7 Mon Sep 17 00:00:00 2001 From: Jie Zhang Date: Tue, 15 Jul 2008 13:09:47 +0000 Subject: [PATCH] bfd/ * elf32-bfin.c (elf32_bfin_special_sections[]): New. (elf_backend_special_sections): Define. ld/ * emulparams/elf32bfinfd.sh (OTHER_SECTIONS): Define. --- bfd/ChangeLog | 5 +++++ bfd/elf32-bfin.c | 9 +++++++++ ld/ChangeLog | 4 ++++ ld/emulparams/elf32bfinfd.sh | 20 ++++++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8df7d40388c..7f389af0063 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 f83abd28acc..b899b6e9eea 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 ecc1a0a3d0b..4c5f7aed293 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 19ec748b7fb..e3ae57b072e 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) + } +" -- 2.30.2