[binutils-gdb] PE fake section for C_SECTION syms
Alan Modra
amodra@sourceware.org
Tue Mar 21 22:48:40 GMT 2023
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6634b215662aa856c8df9ee0e56c0a2f7ad3684e
commit 6634b215662aa856c8df9ee0e56c0a2f7ad3684e
Author: Alan Modra <amodra@gmail.com>
Date: Wed Mar 22 09:02:57 2023 +1030
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.
Diff:
---
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;
More information about the Binutils-cvs
mailing list