summaryrefslogtreecommitdiff
path: root/bfd/peXXigen.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2023-03-22 09:02:57 +1030
committerAlan Modra <amodra@gmail.com>2023-03-22 09:02:57 +1030
commit6634b215662aa856c8df9ee0e56c0a2f7ad3684e (patch)
tree18efcb641d4219448872fad32860db655fc4167a /bfd/peXXigen.c
parent509ab0875d598dc36edb80d4d6a957b41540d992 (diff)
downloadbinutils-gdb-6634b215662aa856c8df9ee0e56c0a2f7ad3684e.tar.gz
PE fake section for C_SECTION syms
It's an odd thing to have objdump -x show a different section table to objdump -h, but that can happen if swapping in symbols leads to creating sections. Setting SEC_LINKER_CREATED stops the display of these sections, so that you get shown what is in the object file. * peXXigen.c (_bfd_XXi_swap_sym_in): Set SEC_LINKER_CREATED on fake section created for C_SECTION syms. Don't zero asection fields that are already zero.
Diffstat (limited to 'bfd/peXXigen.c')
-rw-r--r--bfd/peXXigen.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index d59a97f0d11..42f2d21cee3 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -189,7 +189,8 @@ _bfd_XXi_swap_sym_in (bfd * abfd, void * ext1, void * in1)
}
memcpy (sec_name, name, name_len);
- flags = SEC_HAS_CONTENTS | SEC_ALLOC | SEC_DATA | SEC_LOAD;
+ flags = (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_DATA | SEC_LOAD
+ | SEC_LINKER_CREATED);
sec = bfd_make_section_anyway_with_flags (abfd, sec_name, flags);
if (sec == NULL)
{
@@ -198,18 +199,7 @@ _bfd_XXi_swap_sym_in (bfd * abfd, void * ext1, void * in1)
return;
}
- sec->vma = 0;
- sec->lma = 0;
- sec->size = 0;
- sec->filepos = 0;
- sec->rel_filepos = 0;
- sec->reloc_count = 0;
- sec->line_filepos = 0;
- sec->lineno_count = 0;
- sec->userdata = NULL;
- sec->next = NULL;
sec->alignment_power = 2;
-
sec->target_index = unused_section_number;
in->n_scnum = unused_section_number;