From 548aae128fa8a2a209c9400480fc551eb0022b84 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 19 Oct 2004 06:02:46 +0000 Subject: [PATCH] * elfarm-nabi.c (ELF_DYNAMIC_SEC_FLAGS): Add comment. * elflink.c (_bfd_elf_create_dynamic_sections): For a loaded PLT, set SEC_ALLOC and SEC_LOAD. --- bfd/ChangeLog | 6 ++++++ bfd/elfarm-nabi.c | 2 ++ bfd/elflink.c | 6 +++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index de596386d..6fb4b0537 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-10-18 Mark Mitchell + + * elfarm-nabi.c (ELF_DYNAMIC_SEC_FLAGS): Add comment. + * elflink.c (_bfd_elf_create_dynamic_sections): For a loaded PLT, + set SEC_ALLOC and SEC_LOAD. + 2004-10-18 Nick Clifton * elf32-xstormy16.c (xstormy16_elf_relocate_section): Compute diff --git a/bfd/elfarm-nabi.c b/bfd/elfarm-nabi.c index 3eb2cbdf5..8b09cea6b 100644 --- a/bfd/elfarm-nabi.c +++ b/bfd/elfarm-nabi.c @@ -1011,6 +1011,8 @@ elf32_arm_symbian_modify_segment_map (abfd, info) #undef elf32_bed #define elf32_bed elf32_arm_symbian_bed +/* The dynamic sections are not allocated on SymbianOS; the postlinker + will process them and then discard them. */ #undef ELF_DYNAMIC_SEC_FLAGS #define ELF_DYNAMIC_SEC_FLAGS \ (SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED) diff --git a/bfd/elflink.c b/bfd/elflink.c index 68435bb23..6e3f91ff8 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -252,9 +252,13 @@ _bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) flags = bed->dynamic_sec_flags; pltflags = flags; - pltflags |= SEC_CODE; if (bed->plt_not_loaded) + /* We do not clear SEC_ALLOC here because we still want the OS to + allocate space for the section; it's just that there's nothing + to read in from the object file. */ pltflags &= ~ (SEC_CODE | SEC_LOAD | SEC_HAS_CONTENTS); + else + pltflags |= SEC_ALLOC | SEC_CODE | SEC_LOAD; if (bed->plt_readonly) pltflags |= SEC_READONLY; -- 2.11.4.GIT