2006-12-04  Jan Beulich  <jbeulich@novell.com>

	* elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
	.eh_frame_hdr section from here anymore.
	(bfd_elf_size_dynamic_sections): Call _bfd_elf_maybe_strip_eh_frame_hdr
	a little earlier.

ld/
2006-12-04  Jan Beulich  <jbeulich@novell.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Create
	.eh_frame_hdr section here.

ld/testsuite/
2006-12-04  Jan Beulich  <jbeulich@novell.com>

	* ld-elf/eh-frame-hdr.d: New.
	* ld-elf/eh-frame-hdr.s: New.
	* ld-ia64/tlsbin.dd, ld-ia64/tlsbin.sd: Don't depend on exact linkage
	table layout.
This commit is contained in:
Jan Beulich
2006-12-04 08:57:09 +00:00
parent d807a492c6
commit eb3d5f3b94
9 changed files with 91 additions and 23 deletions

View File

@@ -185,16 +185,6 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
return FALSE;
}
if (! info->traditional_format)
{
s = bfd_make_section_with_flags (abfd, ".eh_frame_hdr",
flags | SEC_READONLY);
if (s == NULL
|| ! bfd_set_section_alignment (abfd, s, 2))
return FALSE;
elf_hash_table (info)->eh_info.hdr_sec = s;
}
/* Create sections to hold version informations. These are removed
if they are not needed. */
s = bfd_make_section_with_flags (abfd, ".gnu.version_d",
@@ -5281,6 +5271,9 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
&& ! (*bed->elf_backend_always_size_sections) (output_bfd, info))
return FALSE;
if (! _bfd_elf_maybe_strip_eh_frame_hdr (info))
return FALSE;
dynobj = elf_hash_table (info)->dynobj;
/* If there were no dynamic objects in the link, there is nothing to
@@ -5288,9 +5281,6 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
if (dynobj == NULL)
return TRUE;
if (! _bfd_elf_maybe_strip_eh_frame_hdr (info))
return FALSE;
if (elf_hash_table (info)->dynamic_sections_created)
{
struct elf_info_failed eif;