[binutils-gdb] objdump: Fix private header ('-p') import table output for pe-aarch64

Jon Turney via Binutils-cvs <[email protected]> Thu, 2 Jul 2026 14:26:44 +0000 (GMT)
Newsgroups gmane.comp.gnu.binutils.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=de5bd217372a41c119492ef90ebd53eaae78f248

commit de5bd217372a41c119492ef90ebd53eaae78f248
Author: Jon Turney <[email protected]>
Date:   Fri Jun 19 13:47:03 2026 +0100

    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.

Diff:
---
 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;