diff --git a/configure.ac b/configure.ac index d369382..ffc6151 100644 --- a/configure.ac +++ b/configure.ac @@ -924,6 +924,16 @@ AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in AC_CHECK_PROG_VER(AS, $AS, --version, [GNU assembler.* \([0-9]*\.[0-9.]*\)], [2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], AS=: critic_missing="$critic_missing as") +# If the system defaulted to using gold, and the compiler has suggested +# we use a linker that is actually gold, then we ignore the suggestion +# and use ld.bfd instead. This won't fix the implicit uses of gold by +# the compiler, but it will correctly use the bfd ld for assembling +# the library. +gnu_ld_name="`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`" +if test "$gnu_ld_name" = "gold"; then + AC_MSG_NOTICE([$LD is actually gold using ld.bfd instead]) + LD=ld.bfd +fi AC_CHECK_PROG_VER(LD, $LD, --version, [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)], [2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], LD=: critic_missing="$critic_missing ld")