https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121458
Bug ID: 121458 Summary: HAVE_LD_SOL2_EMULATION check broken Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sjames at gcc dot gnu.org CC: ro at gcc dot gnu.org Target Milestone: --- In gcc/configure.ac: ``` # In binutils 2.21, GNU ld gained support for new emulations fully # supporting the Solaris 2 ABI. Detect their presence in the linker used. AC_CACHE_CHECK(linker *_sol2 emulation support, gcc_cv_ld_sol2_emulation, [gcc_cv_ld_sol2_emulation=no if test $in_tree_ld = yes ; then if test "$gcc_cv_gld_major_version" -eq 2 -a \ "$gcc_cv_gld_minor_version" -ge 21 -o \ "$gcc_cv_gld_major_version" -gt 2 \ && test $in_tree_ld_is_elf = yes; then gcc_cv_ld_sol2_emulation=yes fi elif test x$gcc_cv_ld != x; then if $gcc_cv_ld -V 2>/dev/null | sed -e '1,/Supported emulations/d;q' | \ grep _sol2 > /dev/null; then gcc_cv_ld_sol2_emulation=yes fi fi]) if test x"$gcc_cv_ld_sol2_emulation" = xyes; then AC_DEFINE(HAVE_LD_SOL2_EMULATION, 1, [Define if your linker supports the *_sol2 emulations.]) fi ``` This is broken for me on x86_64-pc-linux-gnu with binutils trunk at least (surely a long time though) and --enable-targets=all: $ ld -V 2>/dev/null | sed -e '1,/Supported emulations/d;q' aix5ppc $ ld -V 2>/dev/null | grep _sol2 elf32_sparc_sol2 elf_i386_sol2 elf64_sparc_sol2 elf_x86_64_sol2 We shouldn't assume the output ordering is sorted like that. This leads to gcc_cv_ld_sol2_emulation=no. (Admittedly, I have no idea how much this matters in practice. I suspect not at all, but if the check *did* work, we could use it to fix PR121457.)