diff options
author | obrien <obrien@FreeBSD.org> | 2002-10-11 06:01:20 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-10-11 06:01:20 +0000 |
commit | aae950e69caf1dc3f308b74fe6d066a645a7ed09 (patch) | |
tree | fc657a1fb5e0ceeb952b5e5ad8744fec0332849c /contrib/binutils/bfd/elf-eh-frame.c | |
parent | dcf134d53b2ddea66d0fe9fba4e8950a7c07b312 (diff) | |
download | FreeBSD-src-aae950e69caf1dc3f308b74fe6d066a645a7ed09.zip FreeBSD-src-aae950e69caf1dc3f308b74fe6d066a645a7ed09.tar.gz |
Import of Binutils from the FSF 2.13 branch (just pre-.1 release).
These bits are taken from the FSF anoncvs repo on 11-Oct-2002 22:39:35 PDT.
Diffstat (limited to 'contrib/binutils/bfd/elf-eh-frame.c')
-rw-r--r-- | contrib/binutils/bfd/elf-eh-frame.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/contrib/binutils/bfd/elf-eh-frame.c b/contrib/binutils/bfd/elf-eh-frame.c index 6a23edb..713dc8f 100644 --- a/contrib/binutils/bfd/elf-eh-frame.c +++ b/contrib/binutils/bfd/elf-eh-frame.c @@ -627,11 +627,11 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec, ehdrsec, goto free_no_table; if ((*reloc_symbol_deleted_p) (buf - ehbuf, cookie)) { - cookie->rel = rel; /* This is a FDE against discarded section, it should be deleted. */ new_size -= hdr.length + 4; sec_info->entry[sec_info->count].removed = 1; + memset (rel, 0, sizeof (*rel)); } else { @@ -787,7 +787,7 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info) struct eh_frame_hdr_info *hdr_info; sec = bfd_get_section_by_name (elf_hash_table (info)->dynobj, ".eh_frame_hdr"); - if (sec == NULL) + if (sec == NULL || bfd_is_abs_section (sec->output_section)) return true; hdr_info @@ -805,7 +805,7 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info) /* Count only sections which have at least a single CIE or FDE. There cannot be any CIE or FDE <= 8 bytes. */ o = bfd_get_section_by_name (abfd, ".eh_frame"); - if (o && o->_raw_size > 8) + if (o && o->_raw_size > 8 && !bfd_is_abs_section (o->output_section)) break; } |