aboutsummaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorDave Anglin <dave.anglin@nrc.ca>2003-01-04 22:36:41 +0000
committerDave Anglin <dave.anglin@nrc.ca>2003-01-04 22:36:41 +0000
commit46ca2cc2aa172416b15c91bf0751f03fd896ac59 (patch)
treef6a6592092d0e1f10f3e836a537b1ddd1bd64bf1 /configure.in
parent147ff08c6bd7dbd5043e45580973d07b1199d676 (diff)
downloadfsf-binutils-gdb-46ca2cc2aa172416b15c91bf0751f03fd896ac59.zip
fsf-binutils-gdb-46ca2cc2aa172416b15c91bf0751f03fd896ac59.tar.gz
fsf-binutils-gdb-46ca2cc2aa172416b15c91bf0751f03fd896ac59.tar.bz2
* 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.
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