From a26c50352b4db457813ef86fb053bd838d310d30 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 17 Apr 2002 20:45:12 +0000 Subject: [PATCH] * configure.in: Move default CC setting out of config/mh-* fragments directly into here. --- ChangeLog | 5 ++++ configure.in | 68 ++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 101e8a17b..247ac4a5d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-04-17 Nathanael Nerode + + * configure.in: Move default CC setting out of config/mh-* fragments + directly into here. + 2002-04-17 Nathanael Nerode * configure.in: don't even try to configure or make a subdirectory diff --git a/configure.in b/configure.in index b3d28b971..e93e9c1fe 100644 --- a/configure.in +++ b/configure.in @@ -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