diff options
author | Mark Mitchell <mark@codesourcery.com> | 2004-10-19 06:02:46 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2004-10-19 06:02:46 +0000 |
commit | 6df4d94c68f19ff89a25fdbc3d9df60cadf1876f (patch) | |
tree | cfdc1bfca0bff70a19fe4256ee8737ab4b5deaee /bfd | |
parent | cad5e2c2ac6b2dc861b8ffaf3d4d3b755c5ab83d (diff) | |
download | ppe42-binutils-6df4d94c68f19ff89a25fdbc3d9df60cadf1876f.tar.gz ppe42-binutils-6df4d94c68f19ff89a25fdbc3d9df60cadf1876f.zip |
* 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.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elfarm-nabi.c | 2 | ||||
-rw-r--r-- | bfd/elflink.c | 6 |
3 files changed, 13 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index de596386d9..6fb4b0537d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2004-10-18 Mark Mitchell <mark@codesourcery.com> + + * 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 <nickc@redhat.com> * elf32-xstormy16.c (xstormy16_elf_relocate_section): Compute diff --git a/bfd/elfarm-nabi.c b/bfd/elfarm-nabi.c index 3eb2cbdf59..8b09cea6bc 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 68435bb233..6e3f91ff8a 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; |