From a5a58ba4dea996f5de695836aa73e00e5e2a80cb Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 6 Apr 2004 00:59:22 +0000 Subject: [PATCH] 2004-04-05 H.J. Lu * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Always reserve the memory for dynamic linker --- bfd/ChangeLog | 5 +++++ bfd/elfxx-ia64.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a6ba2a3d13..778a8e4036 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-04-05 H.J. Lu + + * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Always + reserve the memory for dynamic linker + 2004-04-05 Mark Kettenis * netbsd-core.c (CORE_WCOOKIE_OFFSET): New define. diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index b8527a91c7..b19aac2c55 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -2941,8 +2941,12 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info) data.ofs = (data.ofs + 31) & (bfd_vma) -32; elfNN_ia64_dyn_sym_traverse (ia64_info, allocate_plt2_entries, &data); - if (data.ofs != 0) + if (data.ofs != 0 || ia64_info->root.dynamic_sections_created) { + /* FIXME: we always reserve the memory for dynamic linker even if + there are no PLT entries since dynamic linker may assume the + reserved memory always exists. */ + BFD_ASSERT (ia64_info->root.dynamic_sections_created); ia64_info->plt_sec->_raw_size = data.ofs;