OSDN Git Service

* configure.in: Move default CC setting out of config/mh-* fragments
[pf3gnuchains/gcc-fork.git] / configure.in
index b3d28b9..e93e9c1 100644 (file)
@@ -123,30 +123,47 @@ appdirs=""
 # per-host:
 
 # Work in distributions that contain no compiler tools, like Autoconf.
+tentative_cc=""
 if [ -d ${srcdir}/config ]; then
 case "${host}" in
   m68k-hp-hpux*)
+    # Avoid "too much defining" errors from HPUX compiler.
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hp300"
     ;;
   m68k-apollo-sysv*)
+    tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
     host_makefile_frag="${host_makefile_frag} config/mh-apollo68"
     ;;
   m68k-apollo-bsd*)
+    #None of the Apollo compilers can compile gas or binutils.  The preprocessor
+    # chokes on bfd, the compiler won't let you assign integers to enums, and
+    # other problems.  Defining CC to gcc is a questionable way to say "don't use
+    # the apollo compiler" (the preferred version of GCC could be called cc,
+    # or whatever), but I'm not sure leaving CC as cc is any better...
+    #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
+    tentative_cc=gcc
     host_makefile_frag="${host_makefile_frag} config/mh-a68bsd"
     ;;
   m88k-dg-dgux*)
+    tentative_cc="gcc -Wall -ansi -D__using_DGUX"
     host_makefile_frag="${host_makefile_frag} config/mh-dgux"
     ;;
   m88k-harris-cxux*)
+    # Under CX/UX, we want to tell the compiler to use ANSI mode.
+    tentative_cc="cc -Xa"
     host_makefile_frag="${host_makefile_frag} config/mh-cxux"
     ;;
   m88k-motorola-sysv*)
     host_makefile_frag="${host_makefile_frag} config/mh-delta88"
     ;;
   mips*-dec-ultrix*)
+    tentative_cc="cc -Wf,-XNg1000"
     host_makefile_frag="${host_makefile_frag} config/mh-decstation"
     ;;
   mips*-nec-sysv4*)
+    # The C compiler on NEC MIPS SVR4 needs bigger tables.
+    tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
     host_makefile_frag="${host_makefile_frag} config/mh-necv4"
     ;;
   mips*-sgi-irix6*)
@@ -156,6 +173,10 @@ case "${host}" in
     host_makefile_frag="${host_makefile_frag} config/mh-irix5"
     ;;
   mips*-sgi-irix4*)
+    # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
+    # environment.  Also bump switch table size so that cp-parse will
+    # compile.  Bump string length limit so linker builds.
+    tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
     host_makefile_frag="${host_makefile_frag} config/mh-irix4"
     ;;
   mips*-sgi-irix3*)
@@ -165,27 +186,54 @@ case "${host}" in
     host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
     ;;
   mips*-*-sysv*)
+    # This is for a MIPS running RISC/os 4.52C.
+
+    # This is needed for GDB, but needs to be in the top-level make because
+    # if a library is compiled with the bsd headers and gets linked with the
+    # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
+    # a different size).
+    # ptrace(2) apparently has problems in the BSD environment.  No workaround is
+    # known except to select the sysv environment.  Could we use /proc instead?
+    # These "sysv environments" and "bsd environments" often end up being a pain.
+    #
+    # This is not part of CFLAGS because perhaps not all C compilers have this
+    # option.
+    tentative_cc="cc -systype sysv"
     host_makefile_frag="${host_makefile_frag} config/mh-riscos"
     ;;
   i370-ibm-opened*)
+    tentative_cc="c89"
     host_makefile_frag="${host_makefile_frag} config/mh-openedition"
     ;;
   i[3456]86-*-sysv5*)
     host_makefile_frag="${host_makefile_frag} config/mh-sysv5"
     ;;
   i[3456]86-*-dgux*)
+    tentative_cc="gcc -Wall -ansi -D__using_DGUX"
     host_makefile_frag="${host_makefile_frag} config/mh-dgux386"
     ;;
   i[3456]86-ncr-sysv4.3*)
+    # The MetaWare compiler will generate a copyright message unless you
+    # turn it off by adding the -Hnocopyr flag.
+    tentative_cc="cc -Hnocopyr"
     host_makefile_frag="${host_makefile_frag} config/mh-ncrsvr43"
     ;;
   i[3456]86-ncr-sysv4*)
+    # for an NCR 3000 (i486/SVR4) system.
+    # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
+    # This compiler not only emits obnoxious copyright messages every time
+    # you run it, but it chokes and dies on a whole bunch of GNU source
+    # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
+    tentative_cc="/usr/ccs/ATT/cc"
     host_makefile_frag="${host_makefile_frag} config/mh-ncr3000"
     ;;
   i[3456]86-*-sco3.2v5*)
     host_makefile_frag="${host_makefile_frag} config/mh-sysv"
     ;;
   i[3456]86-*-sco*)
+    # The native C compiler botches some simple uses of const.  Unfortunately,
+    # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
+    tentative_cc="cc -Dconst="
     host_makefile_frag="${host_makefile_frag} config/mh-sco"
     ;;
   i[3456]86-*-udk*)
@@ -216,27 +264,39 @@ case "${host}" in
     host_makefile_frag="${host_makefile_frag} config/mh-windows"
     ;;
   vax-*-ultrix2*)
+    # The old BSD pcc isn't up to compiling parts of gdb so use gcc
+    tentative_cc=gcc
     host_makefile_frag="${host_makefile_frag} config/mh-vaxult2"
     ;;
   *-*-solaris2*)
     host_makefile_frag="${host_makefile_frag} config/mh-solaris"
     ;;
   m68k-sun-sunos*)
+    # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
+    # without overflowing the jump tables (-J says to use a 32 bit table)
+    tentative_cc="cc -J"
     host_makefile_frag="${host_makefile_frag} config/mh-sun3"
     ;;
   *-hp-hpux[78]*)
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hpux8"
     ;;
   *-hp-hpux*)
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hpux"
     ;;
   *-*-hiux*)
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hpux"
     ;;
   rs6000-*-lynxos*)
+    # /bin/cc is less than useful for our purposes.  Always use GCC
+    tentative_cc="/usr/cygnus/progressive/bin/gcc"
     host_makefile_frag="${host_makefile_frag} config/mh-lynxrs6k"
     ;;
   *-*-lynxos*)
+    # /bin/cc is less than useful for our purposes.  Always use GCC
+    tentative_cc="/bin/gcc"
     host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
     ;;
   *-*-sysv4*)
@@ -250,6 +310,7 @@ fi
 
 # If we aren't going to be using gcc, see if we can extract a definition
 # of CC from the fragment.
+# Actually, use the 'pre-extracted' version above.
 if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then
   IFS="${IFS=  }"; save_ifs="$IFS"; IFS="${IFS}:"
   found=
@@ -261,11 +322,8 @@ if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then
     fi
   done
   IFS="$save_ifs"
-  if [ -z "${found}" ] && [ -n "${host_makefile_frag}" ] && [ -f "${srcdir}/${host_makefile_frag}" ]; then
-    xx=`sed -n -e 's/^[        ]*CC[   ]*=[    ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
-    if [ -n "${xx}" ] ; then
-      CC=$xx
-    fi
+  if [ -z "${found}" ] && [ -n "${tentative_cc}" ] ; then
+    CC=$tentative_cc
   fi
 fi