aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/elf-eh-frame.c3
-rw-r--r--bfd/elflink.h2
3 files changed, 12 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a48ac88..9b54028 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2001-12-31 Jakub Jelinek <jakub@redhat.com>
+
+ * elflink.h (elf_bfd_final_link): Check if dynobj is not NULL
+ before looking for .eh_frame_hdr section.
+ * elf-eh-frame.c (_bfd_elf_write_section_eh_frame_hdr): If
+ .eh_frame_hdr section is being stripped from output, don't do
+ anything.
+
2001-12-27 Tom Rix <trix@redhat.com>
* coff-rs6000.c (xcoff_generate_rtinit): Clean data_buffer alloc/free.
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index d39e549..cc653f7 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -1149,6 +1149,9 @@ _bfd_elf_write_section_eh_frame_hdr (abfd, sec)
== ELF_INFO_TYPE_EH_FRAME_HDR);
hdr_info = (struct eh_frame_hdr_info *)
elf_section_data (sec)->sec_info;
+ if (hdr_info->strip)
+ return true;
+
size = EH_FRAME_HDR_SIZE;
if (hdr_info->array && hdr_info->array_count == hdr_info->fde_count)
size += 4 + hdr_info->fde_count * 8;
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 0087260..9a3bfd3 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -5670,7 +5670,7 @@ elf_bfd_final_link (abfd, info)
goto error_return;
}
- if (info->eh_frame_hdr)
+ if (info->eh_frame_hdr && elf_hash_table (info)->dynobj)
{
o = bfd_get_section_by_name (elf_hash_table (info)->dynobj,
".eh_frame_hdr");