diff options
author | Jim Wilson <wilson@tuliptree.org> | 2000-10-05 22:22:27 +0000 |
---|---|---|
committer | Jim Wilson <wilson@tuliptree.org> | 2000-10-05 22:22:27 +0000 |
commit | fa152c49304b325b423b55f8be8f00855fe9ed26 (patch) | |
tree | 162d7cbd9fac38d2d7bc496f508cf78af04b342a /bfd/elf.c | |
parent | afa680f89a3834ec51fe371a7819b1247b6308b3 (diff) | |
download | gdb-fa152c49304b325b423b55f8be8f00855fe9ed26.zip gdb-fa152c49304b325b423b55f8be8f00855fe9ed26.tar.gz gdb-fa152c49304b325b423b55f8be8f00855fe9ed26.tar.bz2 |
Preserve machine dependent section header flags when reading ELF object file.
* elf-bfd.h (struct elf_backend_data): Add elf_backend_section_flags
field.
* elf.c (_bfd_elf_make_section_from_shdr): Call the
elf_backend_section_flags function.
* elf64-ia64.c (elf64_ia64_section_from_shdr): Delete flag conversion
code.
(elf64_ia64_section_flags): New function containing flag conversion
code.
(elf_backend_section_flags): Define to elf64_ia64_section_flags.
* elfxx-target.h (elf_backend_section_flags): Define.
(elfNN_bed): Initialize elf_backend_section_flags field.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -345,6 +345,7 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name) { asection *newsect; flagword flags; + struct elf_backend_data *bed; if (hdr->bfd_section != NULL) { @@ -410,6 +411,11 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name) if (strncmp (name, ".gnu.linkonce", sizeof ".gnu.linkonce" - 1) == 0) flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD; + bed = get_elf_backend_data (abfd); + if (bed->elf_backend_section_flags) + if (! bed->elf_backend_section_flags (&flags, hdr)) + return false; + if (! bfd_set_section_flags (abfd, newsect, flags)) return false; |