Hi All, COFF_WITH_pex64 and COFF_WITH_peAArch64 can't be true at the same time. That means that two conditionals that control the sorting of the .pdata section became a falsum. The testsuite doesn't catch this because the linker does the sorting and to link you require library support from the unwinder so we can't test from binutils in isolation. Manually tested example in PR and works now. Cross-compiled and regtested on x86_64-w64-mingw32 and no issues. Committed as a trivial change. Thanks, Tamar bfd/ChangeLog: 2021-12-31 Tamar Christina PR ld/28682 * peXXigen.c: Fix conditional. --- inline copy of patch -- diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index 5f977ea32dce48843604e8d789ac1de72e380679..48e52b0904609fe3ff80b76a8f3b8ca7df1c780b 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -3088,7 +3088,7 @@ _bfd_XX_get_symbol_info (bfd * abfd, asymbol *symbol, symbol_info *ret) coff_get_symbol_info (abfd, symbol, ret); } -#if !defined(COFF_WITH_pep) && defined(COFF_WITH_pex64) && defined(COFF_WITH_peAArch64) +#if !defined(COFF_WITH_pep) && (defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64)) static int sort_x64_pdata (const void *l, const void *r) { @@ -4516,7 +4516,7 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo) /* If there is a .pdata section and we have linked pdata finally, we need to sort the entries ascending. */ -#if !defined(COFF_WITH_pep) && defined(COFF_WITH_pex64) && defined(COFF_WITH_peAArch64) +#if !defined(COFF_WITH_pep) && (defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64)) { asection *sec = bfd_get_section_by_name (abfd, ".pdata"); --