aboutsummaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc.ca>2003-01-04 20:49:49 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2003-01-04 20:49:49 +0000
commit7057154564514095e32b55937b971f6c34856abe (patch)
tree84483d536b187a91b8cda299e02b47d3cfeba6d3 /configure.in
parent1bb2cc34af6af55bef26db2a771cff71908ab357 (diff)
downloadgcc-7057154564514095e32b55937b971f6c34856abe.zip
gcc-7057154564514095e32b55937b971f6c34856abe.tar.gz
gcc-7057154564514095e32b55937b971f6c34856abe.tar.bz2
configure.in (LD): Improve test for gcc.
* configure.in (LD): Improve test for gcc. Try to set LD to the ld used by gcc if LD is not defined and we are not doing a Canadian Cross. * configure: Rebuilt. From-SVN: r60891
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in35
1 files changed, 32 insertions, 3 deletions
diff --git a/configure.in b/configure.in
index 55c02bc..edf913e 100644
--- a/configure.in
+++ b/configure.in
@@ -1456,12 +1456,14 @@ else
YACC="\$(USUAL_YACC)"
# If CC is still not set, try to get gcc.
+ cc_prog_is_gcc=
if test -z "${CC}" ; then
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/gcc; then
CC="gcc"
+ cc_prog_is_gcc=yes
echo 'void f(){}' > conftest.c
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
CFLAGS=${CFLAGS-"-g -O2"}
@@ -1477,11 +1479,20 @@ else
IFS="$save_ifs"
CC=${CC-cc}
else
+ # Determine if we are using gcc.
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+ if ${CC} -E conftest.c | grep yes >/dev/null 2>&1; then
+ cc_prog_is_gcc=yes
+ fi
+ rm -f conftest.c
if test -z "${CFLAGS}"; then
# Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC
# is set to a version of gcc.
- case "${CC}" in
- *gcc)
+ if test "$cc_prog_is_gcc" = yes; then
echo 'void f(){}' > conftest.c
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
CFLAGS=${CFLAGS-"-g -O2"}
@@ -1491,7 +1502,25 @@ else
CXXFLAGS=${CXXFLAGS-"-O2"}
fi
rm -f conftest*
- ;;
+ fi
+ fi
+ fi
+
+ # We must set the default linker to the linker used by gcc for the correct
+ # operation of libtool. If LD is not defined and we are using gcc, try to
+ # set the LD default to the ld used by gcc.
+ if test -z "$LD"; then
+ if test "$cc_prog_is_gcc" = yes; then
+ case $build in
+ *-*-mingw*)
+ gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
+ *)
+ gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
+ esac
+ case $gcc_prog_ld in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ LD="$gcc_prog_ld" ;;
esac
fi
fi