From 6634b215662aa856c8df9ee0e56c0a2f7ad3684e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 22 Mar 2023 09:02:57 +1030 Subject: [PATCH] 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. --- bfd/peXXigen.c | 14 ++------------ 1 file 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; -- 2.30.2