diff options
author | John David Anglin <dave.anglin@nrc.ca> | 2003-01-04 20:49:49 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2003-01-04 20:49:49 +0000 |
commit | 7057154564514095e32b55937b971f6c34856abe (patch) | |
tree | 84483d536b187a91b8cda299e02b47d3cfeba6d3 /configure.in | |
parent | 1bb2cc34af6af55bef26db2a771cff71908ab357 (diff) | |
download | gcc-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.in | 35 |
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 |