Fixes building app-emulation/dxvk: FAILED: src/d3d10/d3d10.dll x86_64-w64-mingw32-g++ -m32 -mfpmath=sse -o src/d3d10/d3d10.dll ld: internal error: aborting at ldlang.c:527 in compare_section ld: please report this bug https://sourceware.org/PR30079 https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=b7eab2a9d4f4e92692daf14b09fc95ca11b72e30 From: Michael Matz Date: Thu, 9 Feb 2023 15:29:00 +0100 Subject: [PATCH] Fix PR30079: abort on mingw the early-out in wild_sort is not enough, it might still be that filenames are equal _and_ the wildcard list doesn't specify a sort order either. Don't call compare_section then. Tested on all targets. --- a/binutils/ld/ldlang.c +++ b/binutils/ld/ldlang.c @@ -649,7 +649,8 @@ wild_sort (lang_wild_statement_type *wild, looking at the sections for this file. */ /* Find the correct node to append this section. */ - if (compare_section (sec->spec.sorted, section, (*tree)->section) < 0) + if (sec && sec->spec.sorted != none && sec->spec.sorted != by_none + && compare_section (sec->spec.sorted, section, (*tree)->section) < 0) tree = &((*tree)->left); else tree = &((*tree)->right);