Re: [PATCH] objdump: Fix private header ('-p') import table output for pe-aarch64
Jon Turney <[email protected]>
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <[email protected]> |
On 26/06/2026 08:06, Jan Beulich wrote:
> On 19.06.2026 15:43, Jon Turney wrote:
>> The private header ('-p') import table output for pe-aarch64 (and
>> probably all other 64-bit arches apart from x86_64) is truncated after the
>> first import.
>>
>> The distinction between the conditional branches here should be between
>> PE32 (32-bit) and PE32+ (somewhat confusingly, the 64-bit version of the
>> PE format).
>>
>> PE file format specification [1] states under "Import Lookup Table":
>>
>> "An import lookup table is an array of 32-bit numbers for PE32 or an
>> array of 64-bit numbers for PE32+."
>>
>> [1] https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#import-lookup-table
>>
>> 2026-06-19 Jon Turney <[email protected]>
>>
>> * peXXigen.c (pe_print_idata): Fix conditional.
>
> Okay, albeit preferably with ...
>
>> --- a/bfd/peXXigen.c
>> +++ b/bfd/peXXigen.c
>> @@ -1462,7 +1462,7 @@ pe_print_idata (bfd * abfd, void * vfile)
>> }
>>
>> /* Print HintName vector entries. */
>> -#ifdef COFF_WITH_pex64
>> +#if defined COFF_WITH_pep || defined COFF_WITH_pex64 || defined COFF_WITH_peAArch64 || defined COFF_WITH_peLoongArch64 || defined COFF_WITH_peRiscV64
>
> ... this line split for each part to remain within 80 columns (no matter
I attach a revised patch since I'm not entirely sure of the desired
formatting and indentation here.
> that other such long lines exist). Perhaps they all should be consolidated
> into the checking of a single (new) manifest constant, such that mistakes
> like the one being fixed here are easier to avoid. But that's for later.
Yes, that seems like a very good idea.
This condition (or its negation) is repeated multiple times (along with
some almost similar conditions which would probably benefit from a
comment if they really are meant to be different).
0001-objdump-Fix-private-header-p-import-table-output-for.patch
(text/plain, 1.5 KB)
From 62c10c5d90a3f46f8e26edd2c1d4ff5545e8c55f Mon Sep 17 00:00:00 2001 From: Jon Turney <[email protected]> Date: Fri, 19 Jun 2026 13:47:03 +0100 Subject: [PATCH] objdump: Fix private header ('-p') import table output for pe-aarch64 The private header ('-p') import table output for pe-aarch64 (and probably all other 64-bit arches apart from x86_64) is truncated after the first import. The distinction between the conditional branches here should be between PE32 (32-bit) and PE32+ (somewhat confusingly, the 64-bit version of the PE format). PE file format specification [1] states under "Import Lookup Table": "An import lookup table is an array of 32-bit numbers for PE32 or an array of 64-bit numbers for PE32+." [1] https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#import-lookup-table 2026-06-19 Jon Turney <[email protected]> * peXXigen.c (pe_print_idata): Fix conditional. --- bfd/peXXigen.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index bdb23dcbcab..f604a84ec0a 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -1462,7 +1462,9 @@ pe_print_idata (bfd * abfd, void * vfile) } /* Print HintName vector entries. */ -#ifdef COFF_WITH_pex64 +#if defined COFF_WITH_pep || defined COFF_WITH_pex64 \ + || defined COFF_WITH_peAArch64 || defined COFF_WITH_peLoongArch64 \ + || defined COFF_WITH_peRiscV64 for (j = 0; idx + j + 8 <= datasize; j += 8) { bfd_size_type amt; -- 2.51.0