aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog14
-rw-r--r--bfd/elf.c17
-rw-r--r--bfd/elf32-bfin.c27
3 files changed, 14 insertions, 44 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c37f13e..5c02856 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,19 @@
2008-07-12 Jie Zhang <jie.zhang@analog.com>
+ Revert
+ 2008-07-12 Jie Zhang <jie.zhang@analog.com>
+ * elf.c (_bfd_elf_map_sections_to_segments): Don't put
+ executable sections into the same segment with other
+ read only sections if --sep-code.
+ * elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
+ (elf32_bfin_data_in_l1): New variable.
+ (elf32_bfin_final_write_processing): New.
+ (elf32_bfin_special_sections[]): New.
+ (elf_backend_final_write_processing): Define.
+ (elf_backend_special_sections): Define.
+
+2008-07-12 Jie Zhang <jie.zhang@analog.com>
+
* elf.c (_bfd_elf_map_sections_to_segments): Don't put
executable sections into the same segment with other
read only sections if --sep-code.
diff --git a/bfd/elf.c b/bfd/elf.c
index f066c7c..d65c78d 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -3605,7 +3605,6 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
asection **hdrpp;
bfd_boolean phdr_in_segment = TRUE;
bfd_boolean writable;
- bfd_boolean executable;
int tls_count = 0;
asection *first_tls = NULL;
asection *dynsec, *eh_frame_hdr;
@@ -3677,7 +3676,6 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
phdr_index = 0;
maxpagesize = bed->maxpagesize;
writable = FALSE;
- executable = FALSE;
dynsec = bfd_get_section_by_name (abfd, ".dynamic");
if (dynsec != NULL
&& (dynsec->flags & SEC_LOAD) == 0)
@@ -3759,14 +3757,6 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
ends precisely on a page boundary. */
new_segment = TRUE;
}
- else if (info->sep_code
- && ((! executable && (hdr->flags & SEC_CODE) != 0)
- || (executable && (hdr->flags & SEC_CODE) == 0)))
- {
- /* We don't want to put a executable section in a non-executable
- segment. */
- new_segment = TRUE;
- }
else
{
/* Otherwise, we can use the same segment. */
@@ -3781,8 +3771,6 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
{
if ((hdr->flags & SEC_READONLY) == 0)
writable = TRUE;
- if ((hdr->flags & SEC_CODE) != 0)
- executable = TRUE;
last_hdr = hdr;
/* .tbss sections effectively have zero size. */
if ((hdr->flags & (SEC_THREAD_LOCAL | SEC_LOAD))
@@ -3808,11 +3796,6 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
else
writable = FALSE;
- if ((hdr->flags & SEC_CODE) != 0)
- executable = TRUE;
- else
- executable = FALSE;
-
last_hdr = hdr;
/* .tbss sections effectively have zero size. */
if ((hdr->flags & (SEC_THREAD_LOCAL | SEC_LOAD)) != SEC_THREAD_LOCAL)
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index 480feb2..f83abd2 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -1119,22 +1119,6 @@ bfin_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
return (reloc_howto_type *) NULL;
}
-/* Set by ld emulation if --code-in-l1. */
-bfd_boolean elf32_bfin_code_in_l1 = 0;
-
-/* Set by ld emulation if --data-in-l1. */
-bfd_boolean elf32_bfin_data_in_l1 = 0;
-
-static void
-elf32_bfin_final_write_processing (bfd *abfd,
- bfd_boolean linker ATTRIBUTE_UNUSED)
-{
- if (elf32_bfin_code_in_l1)
- elf_elfheader (abfd)->e_flags |= EF_BFIN_CODE_IN_L1;
- if (elf32_bfin_data_in_l1)
- elf_elfheader (abfd)->e_flags |= EF_BFIN_DATA_IN_L1;
-}
-
/* Return TRUE if the name is a local label.
bfin local labels begin with L$. */
static bfd_boolean
@@ -5588,14 +5572,6 @@ 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"
@@ -5642,11 +5618,8 @@ struct bfd_elf_special_section const elf32_bfin_special_sections[] =
elf32_bfin_set_private_flags
#define bfd_elf32_bfd_print_private_bfd_data \
elf32_bfin_print_private_bfd_data
-#define elf_backend_final_write_processing \
- elf32_bfin_final_write_processing
#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