Blame m4/lib-ld.m4

Packit Service 3e5a5a
# lib-ld.m4 serial 6
Packit Service 3e5a5a
dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc.
Packit Service 3e5a5a
dnl This file is free software; the Free Software Foundation
Packit Service 3e5a5a
dnl gives unlimited permission to copy and/or distribute it,
Packit Service 3e5a5a
dnl with or without modifications, as long as this notice is preserved.
Packit Service 3e5a5a
Packit Service 3e5a5a
dnl Subroutines of libtool.m4,
Packit Service 3e5a5a
dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
Packit Service 3e5a5a
dnl collision with libtool.m4.
Packit Service 3e5a5a
Packit Service 3e5a5a
dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
Packit Service 3e5a5a
AC_DEFUN([AC_LIB_PROG_LD_GNU],
Packit Service 3e5a5a
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
Packit Service 3e5a5a
[# I'd rather use --version here, but apparently some GNU lds only accept -v.
Packit Service 3e5a5a
case `$LD -v 2>&1 
Packit Service 3e5a5a
*GNU* | *'with BFD'*)
Packit Service 3e5a5a
  acl_cv_prog_gnu_ld=yes
Packit Service 3e5a5a
  ;;
Packit Service 3e5a5a
*)
Packit Service 3e5a5a
  acl_cv_prog_gnu_ld=no
Packit Service 3e5a5a
  ;;
Packit Service 3e5a5a
esac])
Packit Service 3e5a5a
with_gnu_ld=$acl_cv_prog_gnu_ld
Packit Service 3e5a5a
])
Packit Service 3e5a5a
Packit Service 3e5a5a
dnl From libtool-2.4. Sets the variable LD.
Packit Service 3e5a5a
AC_DEFUN([AC_LIB_PROG_LD],
Packit Service 3e5a5a
[AC_REQUIRE([AC_PROG_CC])dnl
Packit Service 3e5a5a
AC_REQUIRE([AC_CANONICAL_HOST])dnl
Packit Service 3e5a5a
Packit Service 3e5a5a
AC_ARG_WITH([gnu-ld],
Packit Service 3e5a5a
    [AS_HELP_STRING([--with-gnu-ld],
Packit Service 3e5a5a
        [assume the C compiler uses GNU ld [default=no]])],
Packit Service 3e5a5a
    [test "$withval" = no || with_gnu_ld=yes],
Packit Service 3e5a5a
    [with_gnu_ld=no])dnl
Packit Service 3e5a5a
Packit Service 3e5a5a
# Prepare PATH_SEPARATOR.
Packit Service 3e5a5a
# The user is always right.
Packit Service 3e5a5a
if test "${PATH_SEPARATOR+set}" != set; then
Packit Service 3e5a5a
  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
Packit Service 3e5a5a
  # contains only /bin. Note that ksh looks also at the FPATH variable,
Packit Service 3e5a5a
  # so we have to set that as well for the test.
Packit Service 3e5a5a
  PATH_SEPARATOR=:
Packit Service 3e5a5a
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
Packit Service 3e5a5a
    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
Packit Service 3e5a5a
           || PATH_SEPARATOR=';'
Packit Service 3e5a5a
       }
Packit Service 3e5a5a
fi
Packit Service 3e5a5a
Packit Service 3e5a5a
ac_prog=ld
Packit Service 3e5a5a
if test "$GCC" = yes; then
Packit Service 3e5a5a
  # Check if gcc -print-prog-name=ld gives a path.
Packit Service 3e5a5a
  AC_MSG_CHECKING([for ld used by $CC])
Packit Service 3e5a5a
  case $host in
Packit Service 3e5a5a
  *-*-mingw*)
Packit Service 3e5a5a
    # gcc leaves a trailing carriage return which upsets mingw
Packit Service 3e5a5a
    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
Packit Service 3e5a5a
  *)
Packit Service 3e5a5a
    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
Packit Service 3e5a5a
  esac
Packit Service 3e5a5a
  case $ac_prog in
Packit Service 3e5a5a
    # Accept absolute paths.
Packit Service 3e5a5a
    [[\\/]]* | ?:[[\\/]]*)
Packit Service 3e5a5a
      re_direlt='/[[^/]][[^/]]*/\.\./'
Packit Service 3e5a5a
      # Canonicalize the pathname of ld
Packit Service 3e5a5a
      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
Packit Service 3e5a5a
      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
Packit Service 3e5a5a
        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
Packit Service 3e5a5a
      done
Packit Service 3e5a5a
      test -z "$LD" && LD="$ac_prog"
Packit Service 3e5a5a
      ;;
Packit Service 3e5a5a
  "")
Packit Service 3e5a5a
    # If it fails, then pretend we aren't using GCC.
Packit Service 3e5a5a
    ac_prog=ld
Packit Service 3e5a5a
    ;;
Packit Service 3e5a5a
  *)
Packit Service 3e5a5a
    # If it is relative, then search for the first ld in PATH.
Packit Service 3e5a5a
    with_gnu_ld=unknown
Packit Service 3e5a5a
    ;;
Packit Service 3e5a5a
  esac
Packit Service 3e5a5a
elif test "$with_gnu_ld" = yes; then
Packit Service 3e5a5a
  AC_MSG_CHECKING([for GNU ld])
Packit Service 3e5a5a
else
Packit Service 3e5a5a
  AC_MSG_CHECKING([for non-GNU ld])
Packit Service 3e5a5a
fi
Packit Service 3e5a5a
AC_CACHE_VAL([acl_cv_path_LD],
Packit Service 3e5a5a
[if test -z "$LD"; then
Packit Service 3e5a5a
  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
Packit Service 3e5a5a
  for ac_dir in $PATH; do
Packit Service 3e5a5a
    IFS="$acl_save_ifs"
Packit Service 3e5a5a
    test -z "$ac_dir" && ac_dir=.
Packit Service 3e5a5a
    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
Packit Service 3e5a5a
      acl_cv_path_LD="$ac_dir/$ac_prog"
Packit Service 3e5a5a
      # Check to see if the program is GNU ld.  I'd rather use --version,
Packit Service 3e5a5a
      # but apparently some variants of GNU ld only accept -v.
Packit Service 3e5a5a
      # Break only if it was the GNU/non-GNU ld that we prefer.
Packit Service 3e5a5a
      case `"$acl_cv_path_LD" -v 2>&1 
Packit Service 3e5a5a
      *GNU* | *'with BFD'*)
Packit Service 3e5a5a
        test "$with_gnu_ld" != no && break
Packit Service 3e5a5a
        ;;
Packit Service 3e5a5a
      *)
Packit Service 3e5a5a
        test "$with_gnu_ld" != yes && break
Packit Service 3e5a5a
        ;;
Packit Service 3e5a5a
      esac
Packit Service 3e5a5a
    fi
Packit Service 3e5a5a
  done
Packit Service 3e5a5a
  IFS="$acl_save_ifs"
Packit Service 3e5a5a
else
Packit Service 3e5a5a
  acl_cv_path_LD="$LD" # Let the user override the test with a path.
Packit Service 3e5a5a
fi])
Packit Service 3e5a5a
LD="$acl_cv_path_LD"
Packit Service 3e5a5a
if test -n "$LD"; then
Packit Service 3e5a5a
  AC_MSG_RESULT([$LD])
Packit Service 3e5a5a
else
Packit Service 3e5a5a
  AC_MSG_RESULT([no])
Packit Service 3e5a5a
fi
Packit Service 3e5a5a
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
Packit Service 3e5a5a
AC_LIB_PROG_LD_GNU
Packit Service 3e5a5a
])