OSDN Git Service

* arm/vxarm.h: Split out vxWorks support into separate headerfile
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index cfc7b28..4ab49ff 100644 (file)
@@ -149,7 +149,10 @@ if test x$local_prefix = x; then
        local_prefix=/usr/local
 fi
 
-gxx_include_dir=
+# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
+# passed in by the toplevel make and thus we'd get different behavior
+# depending on where we built the sources.
+gcc_gxx_include_dir=
 # Specify the g++ header file directory
 AC_ARG_WITH(gxx-include-dir,
 [  --with-gxx-include-dir=DIR
@@ -157,16 +160,16 @@ AC_ARG_WITH(gxx-include-dir,
 [case "${withval}" in
 yes)   AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
 no)    ;;
-*)     gxx_include_dir=$with_gxx_include_dir ;;
+*)     gcc_gxx_include_dir=$with_gxx_include_dir ;;
 esac])
 
-if test x${gxx_include_dir} = x; then
+if test x${gcc_gxx_include_dir} = x; then
   if test x${enable_version_specific_runtime_libs} = xyes; then
-    gxx_include_dir='${libsubdir}/include/g++'
+    gcc_gxx_include_dir='${libsubdir}/include/g++'
   else
     topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
 changequote(<<, >>)dnl
-    gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/g++"-${libstdcxx_interface}
+    gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/g++"-${libstdcxx_interface}
 changequote([, ])dnl
   fi
 fi
@@ -195,7 +198,7 @@ AC_ARG_ENABLE(c-cpplib,
 if test x$enable_c_cpplib != xno; then
   extra_c_objs="${extra_c_objs} libcpp.a"
   extra_cxx_objs="${extra_cxx_objs} ../libcpp.a"
-  extra_c_flags=-DUSE_CPPLIB=1
+  extra_c_flags="${extra_c_flags} -DUSE_CPPLIB=1"
   cpp_main=cppmain
 fi)
 
@@ -211,23 +214,6 @@ AC_ARG_ENABLE(haifa,
 [  --enable-haifa          use the experimental scheduler.
   --disable-haifa         don't use the experimental scheduler for the
                           targets which normally enable it.])
-# Fast fixincludes
-#
-# This is a work in progress...
-AC_ARG_WITH(fast-fixincludes,
-[  --with-fast-fixincludes use a faster fixinclude program (experimental)],
-fast_fixinc="$with_fast_fixincludes",
-fast_fixinc=no)
-
-# Enable init_priority.
-AC_ARG_ENABLE(init-priority,
-[  --enable-init-priority  use attributes to assign initialization order
-                         for static objects.
-  --disable-init-priority conform to ISO C++ rules for ordering static objects
-                         (i.e. initialized in order of declaration). ],
-if test x$enable_init_priority != xno; then
-  extra_c_flags=-DUSE_INIT_PRIORITY
-fi)
 
 # Enable threads
 # Pass with no value to take the default
@@ -384,11 +370,20 @@ AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen bcopy bzero bcmp \
 
 GCC_FUNC_VFPRINTF_DOPRNT
 GCC_FUNC_PRINTF_PTR
+
+case "${host}" in
+*-*-uwin*)
+  # Under some versions of uwin, vfork is notoriously buggy and the test 
+  # can hang configure; on other versions, vfork exists just as a stub.
+  # FIXME: This should be removed once vfork in uwin's runtime is fixed.
+  ac_cv_func_vfork_works=no
+  ;;
+esac
 AC_FUNC_VFORK
 
 GCC_NEED_DECLARATIONS(malloc realloc calloc free bcopy bzero bcmp \
        index rindex getenv atol sbrk abort atof strerror getcwd getwd \
-       strsignal)
+       strsignal putc_unlocked fputs_unlocked)
 
 GCC_NEED_DECLARATIONS(getrlimit setrlimit, [
 #include <sys/types.h>
@@ -415,6 +410,9 @@ host_xmake_file=
 host_truncate_target=
 host_exeext=
 
+# It is relative to $prefix.
+cpp_install_dir=
+
 # Decode the host machine, then the target machine.
 # For the host machine, we save the xm_file variable as host_xm_file;
 # then we decode the target machine and forget everything else
@@ -437,10 +435,6 @@ for machine in $build $host $target; do
        use_collect2=
        # Set this to override the default target model.
        target_cpu_default=
-       # Set this to control which fixincludes program to use.
-       if test x$fast_fixinc != xyes; then
-               fixincludes=fixincludes
-       else fixincludes=fixinc.sh ; fi
        # Set this to control how the header file directory is installed.
        install_headers_dir=install-headers-tar
        # Set this to a non-empty list of args to pass to cpp if the target
@@ -502,11 +496,23 @@ changequote([,])dnl
        tm_file=${cpu_type}/${cpu_type}.h
        xm_file=${cpu_type}/xm-${cpu_type}.h
        
-       # Set the default macros to define for GNU/Linux systems.
+       # Common parts for linux-gnu and openbsd systems
        case $machine in
        *-*-linux-gnu*)
                xm_defines="HAVE_ATEXIT POSIX BSTRING"
                ;;
+       *-*-openbsd*)
+               tm_file=${cpu_type}/openbsd.h
+               # On OpenBSD systems, the headers are okay
+               fixincludes=Makefile.in
+               tmake_file="t-libc-ok t-openbsd"
+               # avoid surprises, always provide an xm-openbsd file 
+               xm_file=${cpu_type}/xm-openbsd.h
+               if test x$enable_threads = xyes; then
+                       thread_file='posix'
+                       tmake_file="${tmake_file} t-openbsd-thread"
+               fi
+               ;;
        esac
 
        case $machine in
@@ -558,7 +564,6 @@ changequote([,])dnl
                target_cpu_default="MASK_GAS"
                tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe"
                extra_parts="crtbegin.o crtend.o"
-               fixincludes=fixinc.wrap
                xmake_file=none
                gas=yes gnu_ld=yes
                if test x$enable_threads = xyes; then
@@ -571,7 +576,6 @@ changequote([,])dnl
                tmake_file="t-linux alpha/t-linux alpha/t-crtbe"
                extra_parts="crtbegin.o crtend.o"
                xmake_file=none
-               fixincludes=Makefile.in
                gas=yes gnu_ld=yes
                if test x$enable_threads = xyes; then
                        thread_file='posix'
@@ -583,9 +587,14 @@ changequote([,])dnl
                tmake_file="alpha/t-crtbe"
                extra_parts="crtbegin.o crtend.o"
                xmake_file=none
-               fixincludes=fixinc.wrap
                gas=yes gnu_ld=yes
                ;;
+
+       alpha*-*-openbsd*)
+               # default x-alpha is only appropriate for dec-osf.
+               target_cpu_default="MASK_GAS"
+               xmake_file=none
+               ;;
                
        alpha*-dec-osf*)
                if test x$stabs = xyes
@@ -636,7 +645,6 @@ changequote([,])dnl
                xmake_file=winnt/x-winnt
                extra_host_objs=oldnames.o
                extra_gcc_objs="spawnv.o oldnames.o"
-               fixincludes=fixinc.winnt
                if test x$gnu_ld != xyes
                then
                        extra_programs=ld.exe
@@ -649,7 +657,6 @@ changequote([,])dnl
                tm_file=alpha/vms.h
                xm_file="${xm_file} alpha/xm-vms.h"
                tmake_file=alpha/t-vms
-               fixincludes=Makefile.in
                ;;
        arc-*-elf*)
                extra_parts="crtinit.o crtfini.o"
@@ -658,6 +665,10 @@ changequote([,])dnl
                tm_file=arm/coff.h
                tmake_file=arm/t-bare
                ;;
+       arm-*-vxworks*)
+               tm_file="arm/coff.h arm/vxarm.h"
+               tmake_file=arm/t-bare
+               ;;
 changequote(,)dnl
        arm-*-riscix1.[01]*)            # Acorn RISC machine (early versions)
 changequote([,])dnl
@@ -678,26 +689,21 @@ changequote([,])dnl
        arm-semi-aout | armel-semi-aout)
                tm_file=arm/semi.h
                tmake_file=arm/t-semi
-               fixincludes=Makefile.in # There is nothing to fix
                ;;
        arm-semi-aof | armel-semi-aof)
                tm_file=arm/semiaof.h
                tmake_file=arm/t-semiaof
-               fixincludes=Makefile.in # There is nothing to fix
                ;;
        arm*-*-netbsd*)
                tm_file=arm/netbsd.h
                xm_file="arm/xm-netbsd.h ${xm_file}"
                tmake_file="t-netbsd arm/t-netbsd"
-               # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                ;;
        arm*-*-linux-gnuaout*)          # ARM GNU/Linux with a.out
                cpu_type=arm
                xmake_file=x-linux
                tm_file=arm/linux-aout.h
                tmake_file=arm/t-linux
-               fixincludes=Makefile.in
                gnu_ld=yes
                ;;
        arm*-*-linux-gnu*)              # ARM GNU/Linux with ELF
@@ -713,7 +719,6 @@ changequote([,])dnl
                esac
                tmake_file="t-linux arm/t-linux"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in         # Nothing to fix
                gnu_ld=yes
                ;;
        arm*-*-aout)
@@ -735,27 +740,22 @@ changequote([,])dnl
        c1-convex-*)                    # Convex C1
                target_cpu_default=1
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        c2-convex-*)                    # Convex C2
                target_cpu_default=2
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        c32-convex-*)
                target_cpu_default=4
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        c34-convex-*)
                target_cpu_default=8
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        c38-convex-*)
                target_cpu_default=16           
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        c4x-*)
                cpu_type=c4x
@@ -780,6 +780,10 @@ changequote([,])dnl
        h8300-*-*)
                float_format=i32
                ;;
+       hppa*-*-openbsd*)
+               target_cpu_default="MASK_SNAKE"
+               tmake_file=pa/t-openbsd
+               ;;
        hppa1.1-*-pro*)
                tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h"
                xm_file=pa/xm-papro.h
@@ -789,7 +793,6 @@ changequote([,])dnl
                target_cpu_default="MASK_SNAKE"
                tm_file="${tm_file} pa/pa-osf.h"
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        hppa1.1-*-rtems*)
                tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h pa/rtems.h"
@@ -799,16 +802,13 @@ changequote([,])dnl
        hppa1.0-*-osf*)
                tm_file="${tm_file} pa/pa-osf.h"
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        hppa1.1-*-bsd*)
                target_cpu_default="MASK_SNAKE"
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        hppa1.0-*-bsd*)
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        hppa1.0-*-hpux7*)
                tm_file="pa/pa-oldas.h ${tm_file} pa/pa-hpux7.h"
@@ -963,7 +963,6 @@ changequote([,])dnl
        hppa*-*-lites*)
                target_cpu_default="MASK_SNAKE"
                use_collect2=yes
-               fixincludes=Makefile.in
                ;;
        i370-*-mvs*)
                ;;
@@ -1029,7 +1028,6 @@ changequote([,])dnl
                xmake_file=i386/x-sysv3
                tm_file=i386/seq-sysv3.h
                tmake_file=i386/t-crtstuff
-               fixincludes=fixinc.ptx
                extra_parts="crtbegin.o crtend.o"
                install_headers_dir=install-headers-cpio
                ;;
@@ -1041,7 +1039,6 @@ changequote([,])dnl
                tm_file=i386/seq2-sysv3.h
                tmake_file=i386/t-crtstuff
                extra_parts="crtbegin.o crtend.o"
-               fixincludes=fixinc.ptx
                install_headers_dir=install-headers-cpio
                ;;
 changequote(,)dnl
@@ -1053,7 +1050,6 @@ changequote([,])dnl
                tm_file=i386/ptx4-i.h
                tmake_file=t-svr4
                extra_parts="crtbegin.o crtend.o"
-               fixincludes=fixinc.ptx
                install_headers_dir=install-headers-cpio
                ;;
        i386-sun-sunos*)                # Sun i386 roadrunner
@@ -1103,21 +1099,22 @@ changequote(,)dnl
        i[34567]86-*-freebsd*)
 changequote([,])dnl
                tm_file=i386/freebsd.h
-               # On FreeBSD, the headers are already ok, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=i386/t-freebsd
                ;;
-       # We are hoping OpenBSD is still close enough to NetBSD that we can
-       # share the configurations.
 changequote(,)dnl
-       i[34567]86-*-netbsd* | i[34567]86-*-openbsd*)
+       i[34567]86-*-netbsd*)
 changequote([,])dnl
                tm_file=i386/netbsd.h
-               # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
 changequote(,)dnl
+       i[34567]86-*-openbsd*)
+changequote([,])dnl
+               # Remove when the math emulator is fixed
+               # we need collect2 until our bug is fixed...
+               use_collect2=yes
+               ;;
+changequote(,)dnl
        i[34567]86-*-coff*)
 changequote([,])dnl
                tm_file=i386/i386-coff.h
@@ -1157,7 +1154,6 @@ changequote([,])dnl                       # with a.out format using
                xmake_file=x-linux-aout
                tmake_file="t-linux-aout i386/t-crtstuff"
                tm_file=i386/linux-oldld.h
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                float_format=i386
                ;;
@@ -1167,7 +1163,6 @@ changequote([,])dnl                       # with a.out format
                xmake_file=x-linux-aout
                tmake_file="t-linux-aout i386/t-crtstuff"
                tm_file=i386/linux-aout.h
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                float_format=i386
                ;;
@@ -1179,7 +1174,6 @@ changequote([,])dnl                       # with ELF format using the
                tm_file=i386/linux.h    
                tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                float_format=i386
                if test x$enable_threads = xyes; then
@@ -1194,7 +1188,6 @@ changequote([,])dnl                       # with ELF format using glibc 2
                tm_file=i386/linux.h
                tmake_file="t-linux i386/t-crtstuff"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                float_format=i386
                if test x$enable_threads = xyes; then
@@ -1209,22 +1202,20 @@ changequote([,])dnl
 changequote(,)dnl
        i[34567]86-go32-msdos | i[34567]86-*-go32*)
 changequote([,])dnl
-               xm_file=i386/xm-go32.h
-               tm_file=i386/go32.h
-               tmake_file=i386/t-go32
+               echo "GO32/DJGPP V1.X is no longer supported. Use *-pc-msdosdjgpp for DJGPP V2.X instead."
+               exit 1
                ;;
 changequote(,)dnl
        i[34567]86-pc-msdosdjgpp*)
 changequote([,])dnl
-               xm_file=i386/xm-go32.h
-               tm_file=i386/go32.h
-               tmake_file=i386/t-go32
-                xmake_file=i386/x-go32
+               xm_file=i386/xm-djgpp.h
+               tm_file=i386/djgpp.h
+               tmake_file=i386/t-djgpp
+               xmake_file=i386/x-djgpp
                gnu_ld=yes
                gas=yes
                exeext=.exe
-               case $host in
-               *pc-msdosdjgpp*)
+               case $host in *pc-msdosdjgpp*)
                        target_alias=djgpp
                        ;;
                esac
@@ -1234,7 +1225,6 @@ changequote(,)dnl
 changequote([,])dnl
                tm_file=i386/moss.h
                tmake_file=t-libc-ok
-               fixincludes=Makefile.in
                gnu_ld=yes
                gas=yes
                ;;
@@ -1302,7 +1292,6 @@ changequote([,])dnl
                xm_file="xm-siglist.h xm-alloca.h ${xm_file} i386/xm-sco5.h"
                xm_defines="USG SVR3"
                xmake_file=i386/x-sco5
-               fixincludes=fixinc.sco
                install_headers_dir=install-headers-cpio
                tm_file=i386/sco5.h
                if test x$gas = xyes
@@ -1312,7 +1301,7 @@ changequote([,])dnl
                else
                        tmake_file=i386/t-sco5
                fi
-               extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+               extra_parts="crti.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
                ;;
 changequote(,)dnl
        i[34567]86-*-sco3.2v4*)         # 80386 running SCO 3.2v4 system
@@ -1320,7 +1309,6 @@ changequote([,])dnl
                xm_file="${xm_file} i386/xm-sco.h"
                xm_defines="USG SVR3 BROKEN_LDEXP SMALL_ARG_MAX NO_SYS_SIGLIST"
                xmake_file=i386/x-sco4
-               fixincludes=fixinc.sco
                install_headers_dir=install-headers-cpio
                 if test x$stabs = xyes
                then
@@ -1366,14 +1354,6 @@ changequote([,])dnl
                tmake_file=i386/t-sol2
                extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
                xmake_file=x-svr4
-               case $machine in
-changequote(,)dnl
-               *-*-solaris2.[0-4])
-changequote([,])dnl
-                       fixincludes=fixinc.svr4;;
-               *)
-                       fixincludes=fixinc.wrap;;
-               esac
                if test x$enable_threads = xyes; then
                        thread_file='solaris'
                fi
@@ -1391,7 +1371,6 @@ changequote([,])dnl
                tmake_file=i386/t-crtpic
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
-               fixincludes=fixinc.svr4
                ;;
 changequote(,)dnl
        i[34567]86-*-sysv4*)            # Intel 80386's running system V.4
@@ -1416,7 +1395,6 @@ changequote([,])dnl
                tmake_file="i386/t-crtpic i386/t-udk"
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
-               fixincludes="fixinc.svr4"
                ;;
 changequote(,)dnl
        i[34567]86-*-osf1*)             # Intel 80386's running OSF/1 1.3+
@@ -1424,7 +1402,6 @@ changequote([,])dnl
                cpu_type=i386
                xm_file="${xm_file} xm-svr4.h i386/xm-sysv4.h i386/xm-osf1elf.h"
                xm_defines="USE_C_ALLOCA SMALL_ARG_MAX"
-               fixincludes=Makefile.in #Don't do it on OSF/1
                if test x$stabs = xyes
                then
                        tm_file=i386/osf1elfgdb.h
@@ -1472,7 +1449,6 @@ changequote([,])dnl
                tm_file=i386/win32.h
                xmake_file=i386/x-cygwin
                extra_objs=winnt.o
-               fixincludes=Makefile.in
                if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
@@ -1486,7 +1462,6 @@ changequote([,])dnl
                tm_file=i386/cygwin.h
                xmake_file=i386/x-cygwin
                extra_objs=winnt.o
-               fixincludes=Makefile.in
                if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
@@ -1500,7 +1475,6 @@ changequote([,])dnl
                tmake_file="i386/t-cygwin i386/t-mingw32"
                extra_objs=winnt.o
                xmake_file=i386/x-cygwin
-               fixincludes=Makefile.in
                if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
@@ -1514,6 +1488,38 @@ changequote([,])dnl
                esac
                ;;
 changequote(,)dnl
+       i[34567]86-*-uwin*)
+changequote([,])dnl
+               tm_file=i386/uwin.h
+               xm_file="${xm_file} i386/xm-uwin.h"
+               xm_defines="USG NO_STAB_H NO_SYS_SIGLIST"
+               tmake_file="i386/t-cygwin i386/t-uwin"
+               extra_objs=winnt.o
+               xmake_file=i386/x-cygwin
+               fixincludes=Makefile.in
+               if test x$enable_threads = xyes; then
+                       thread_file='win32'
+               fi
+               exeext=.exe
+               ;;
+changequote(,)dnl
+       i[34567]86-*-interix*)
+changequote([,])dnl
+               tm_file=i386/interix.h
+               xm_file="${xm_file} xm-interix.h"
+               xm_defines="USG NO_SYS_SIGLIST"
+               tmake_file="i386/t-interix"
+               extra_objs=interix.o
+               xmake_file=x-interix
+               fixincludes=fixinc.interix
+               if [[ x$enable_threads = xyes ]]; then
+                       thread_file='posix'
+               fi
+               if [[ x$stabs = xyes ]]; then
+                       tm_file="${tm_file} dbxcoff.h"
+               fi
+               ;;
+changequote(,)dnl
        i[34567]86-*-winnt3*)
 changequote([,])dnl
                tm_file=i386/win-nt.h
@@ -1523,7 +1529,6 @@ changequote([,])dnl
                tmake_file=i386/t-winnt
                extra_host_objs="winnt.o oldnames.o"
                extra_gcc_objs="spawnv.o oldnames.o"
-               fixincludes=fixinc.winnt
                if test x$gnu_ld != xyes
                then
                        extra_programs=ld.exe
@@ -1541,7 +1546,6 @@ changequote([,])dnl
                tm_file=i386/dgux.h
                tmake_file=i386/t-dgux
                xmake_file=i386/x-dgux
-               fixincludes=fixinc.dgux
                install_headers_dir=install-headers-cpio
               ;;
        i860-alliant-*)         # Alliant FX/2800
@@ -1975,11 +1979,14 @@ changequote([,])dnl
                ;;
        m68k*-*-netbsd*)
                tm_file=m68k/netbsd.h
-               # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                float_format=m68k
                ;;
+       m68k*-*-openbsd*)
+               float_format=m68k
+               # we need collect2 until our bug is fixed...
+               use_collect2=yes
+               ;;
        m68k-*-sysv3*)                  # Motorola m68k's running system V.3
                xm_file="xm-alloca.h ${xm_file}"
                xm_defines=USG
@@ -2002,7 +2009,6 @@ changequote([,])dnl
                xmake_file=x-linux
                tm_file=m68k/linux-aout.h
                tmake_file="t-linux-aout m68k/t-linux-aout"
-               fixincludes=Makefile.in # The headers are ok already.
                extra_headers=math-68881.h
                float_format=m68k
                gnu_ld=yes
@@ -2014,7 +2020,6 @@ changequote([,])dnl
                tm_file=m68k/linux.h
                tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in # The headers are ok already.
                extra_headers=math-68881.h
                float_format=m68k
                gnu_ld=yes
@@ -2026,7 +2031,6 @@ changequote([,])dnl
                tm_file=m68k/linux.h
                tmake_file="t-linux m68k/t-linux"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in # The headers are ok already.
                extra_headers=math-68881.h
                float_format=m68k
                gnu_ld=yes
@@ -2064,7 +2068,6 @@ changequote([,])dnl
                then
                        tmake_file=m88k/t-dgux-gas
                fi
-               fixincludes=fixinc.dgux
                ;;
        m88k-dolphin-sysv3*)
                tm_file=m88k/dolph.h
@@ -2103,6 +2106,9 @@ changequote([,])dnl
                        tmake_file=m88k/t-luna
                fi
                ;;
+       m88k-*-openbsd*)
+               tmake_file="${tmake_file} m88k/t-luna-gas"
+               ;;
        m88k-*-sysv3*)
                tm_file=m88k/sysv3.h
                extra_parts="crtbegin.o crtend.o"
@@ -2122,7 +2128,6 @@ changequote([,])dnl
        mips-sgi-irix6*)                # SGI System V.4., IRIX 6
                tm_file=mips/iris6.h
                xm_file=mips/xm-iris6.h
-               fixincludes=fixinc.irix
                xmake_file=mips/x-iris6
                tmake_file=mips/t-iris6
 #              if test x$enable_threads = xyes; then
@@ -2135,13 +2140,12 @@ changequote([,])dnl
                gas=yes
                gnu_ld=yes
                extra_parts="crtbegin.o crtend.o"
-#              thread_file='vxworks'
+               thread_file='vxworks'
                ;;
        mips-sgi-irix5cross64)          # Irix5 host, Irix 6 target, cross64
                tm_file="mips/iris6.h mips/cross64.h"
                xm_defines=USG
                xm_file="mips/xm-iris5.h"
-               fixincludes=Makefile.in
                xmake_file=mips/x-iris
                tmake_file=mips/t-cross64
                # See comment in mips/iris[56].h files.
@@ -2183,7 +2187,6 @@ changequote([,])dnl
                fi
                xm_defines=USG
                xm_file="mips/xm-iris5.h"
-               fixincludes=fixinc.irix
                xmake_file=mips/x-iris
                # mips-tfile doesn't work yet
                tmake_file=mips/t-mips-gas
@@ -2280,7 +2283,6 @@ changequote([,])dnl
                ;;
        mips-dec-bsd*)                  # Decstation running 4.4 BSD
               tm_file=mips/dec-bsd.h
-              fixincludes=
              if test x$gas = xyes
              then
                        tmake_file=mips/t-mips-gas
@@ -2296,7 +2298,6 @@ changequote([,])dnl
        mipsel-*-netbsd* | mips-dec-netbsd*)    # Decstation running NetBSD
                tm_file=mips/netbsd.h
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
        mips*-*-linux*)                         # Linux MIPS, either endian.
@@ -2311,6 +2312,16 @@ changequote([,])dnl
                gas=yes
                fixincludes=Makefile.in 
                ;;
+       mips*el-*-openbsd*)     # mips little endian
+               target_cpu_default="MASK_GAS|MASK_ABICALLS"
+               tm_file=mips/openbsd.h
+               xmake_file=none
+               ;;
+       mips*-*-openbsd*)               # mips big endian
+               target_cpu_default="MASK_GAS|MASK_ABICALLS"
+               tm_file=mips/openbsd-be.h
+               xmake_file=none
+               ;;
        mips-sony-bsd* | mips-sony-newsos*)     # Sony NEWS 3600 or risc/news.
                tm_file="mips/news4.h ${tm_file}"
                if test x$stabs = xyes; then
@@ -2653,7 +2664,6 @@ changequote([,])dnl
                tm_file=ns32k/netbsd.h
                xm_file="ns32k/xm-netbsd.h ${xm_file}"
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
         pdp11-*-bsd)
@@ -2661,6 +2671,9 @@ changequote([,])dnl
                 ;;
         pdp11-*-*)
                ;;
+       ns32k-*-openbsd*)
+               # Nothing special
+               ;;
        pyramid-*-*)
                cpu_type=pyr
                xmake_file=pyr/x-pyr
@@ -2673,6 +2686,13 @@ changequote([,])dnl
                xmake_file=romp/x-mach
                use_collect2=yes
                ;;
+       romp-*-openbsd*)
+               # Nothing special
+               ;;
+       powerpc-*-openbsd*)
+               tmake_file="${tmake_file} rs6000/t-rs6000 rs6000/t-openbsd"
+               xmake_file=none
+               ;;
        powerpc-*-beos*)
                cpu_type=rs6000
                tm_file=rs6000/beos.h
@@ -2696,13 +2716,11 @@ changequote([,])dnl
        powerpc-*-eabiaix*)
                tm_file=rs6000/eabiaix.h
                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
-               fixincludes=Makefile.in
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-eabisim*)
                tm_file=rs6000/eabisim.h
                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
-               fixincludes=Makefile.in
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-eabi*)
@@ -2713,7 +2731,6 @@ changequote([,])dnl
                else
                        tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
                fi
-               fixincludes=Makefile.in
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-rtems*)
@@ -2724,7 +2741,6 @@ changequote([,])dnl
                else
                     tmake_file="rs6000/t-ppc t-rtems rs6000/t-ppccomm"
                fi
-               fixincludes=Makefile.in
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-linux-gnulibc1)
@@ -2738,7 +2754,6 @@ changequote([,])dnl
                        tmake_file="rs6000/t-ppc t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
                fi
                xmake_file=x-linux
-               fixincludes=Makefile.in
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                extra_headers=ppc-asm.h
                if test x$enable_threads = xyes; then
@@ -2757,7 +2772,6 @@ changequote([,])dnl
                        tmake_file="rs6000/t-ppc t-linux rs6000/t-ppccomm"
                fi
                xmake_file=x-linux
-               fixincludes=Makefile.in
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                extra_headers=ppc-asm.h
                if test x$enable_threads = xyes; then
@@ -2789,7 +2803,6 @@ changequote([,])dnl
        powerpcle-*-eabisim*)
                tm_file=rs6000/eabilesim.h
                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
-               fixincludes=Makefile.in
                extra_headers=ppc-asm.h
                ;;
        powerpcle-*-eabi*)
@@ -2800,14 +2813,12 @@ changequote([,])dnl
                else
                        tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
                fi
-               fixincludes=Makefile.in
                extra_headers=ppc-asm.h
                ;;
         powerpcle-*-winnt* )
                 tm_file=rs6000/win-nt.h
                 tmake_file=rs6000/t-winnt
 #               extra_objs=pe.o
-               fixincludes=Makefile.in
                if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
@@ -2819,7 +2830,6 @@ changequote([,])dnl
                tmake_file=rs6000/t-winnt
                xmake_file=rs6000/x-cygwin
 #              extra_objs=pe.o
-               fixincludes=Makefile.in
                if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
@@ -2837,14 +2847,6 @@ changequote([,])dnl
                        tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
                fi
                xmake_file=rs6000/x-sysv4
-               case $machine in
-changequote(,)dnl
-               *-*-solaris2.[0-4])
-changequote([,])dnl
-                       fixincludes=fixinc.svr4;;
-               *)
-                       fixincludes=fixinc.wrap;;
-               esac
                extra_headers=ppc-asm.h
                ;;
 changequote(,)dnl
@@ -2852,6 +2854,7 @@ changequote(,)dnl
 changequote([,])dnl
                tm_file=rs6000/aix31.h
                xmake_file=rs6000/x-aix31
+               float_format=none
                use_collect2=yes
                ;;
 changequote(,)dnl
@@ -2864,6 +2867,7 @@ changequote([,])dnl
                else
                        tmake_file=rs6000/t-newas
                fi
+               float_format=none
                use_collect2=yes
                ;;
 changequote(,)dnl
@@ -2882,6 +2886,7 @@ changequote([,])dnl
                        tmake_file=rs6000/t-newas
                fi
                xmake_file=rs6000/x-aix41
+               float_format=none
                use_collect2=yes
                ;;
 changequote(,)dnl
@@ -2895,6 +2900,7 @@ changequote([,])dnl
                        tmake_file=rs6000/t-aix43
                fi
                xmake_file=rs6000/x-aix43
+               float_format=none
                use_collect2=yes
                ;;
 changequote(,)dnl
@@ -2908,12 +2914,15 @@ changequote([,])dnl
                        tmake_file=rs6000/t-aix43
                fi
                xmake_file=rs6000/x-aix43
+               float_format=none
                use_collect2=yes
                ;;
        rs6000-ibm-aix*)
+               float_format=none
                use_collect2=yes
                ;;
        rs6000-bull-bosx)
+               float_format=none
                use_collect2=yes
                ;;
        rs6000-*-mach*)
@@ -2963,10 +2972,12 @@ changequote([,])dnl
                ;;
        sparc-*-netbsd*)
                tm_file=sparc/netbsd.h
-               # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
+       sparc-*-openbsd*)
+               # we need collect2 until our bug is fixed...
+               use_collect2=yes
+               ;;
        sparc-*-bsd*)
                tm_file=sparc/bsd.h
                ;;
@@ -2981,7 +2992,6 @@ changequote([,])dnl
                xm_file="${xm_file} sparc/xm-linux.h"
                tm_file=sparc/linux-aout.h
                xmake_file=x-linux
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                ;;
        sparc-*-linux-gnulibc1*)        # Sparc's running GNU/Linux, libc5
@@ -2990,7 +3000,6 @@ changequote([,])dnl
                tm_file=sparc/linux.h
                tmake_file="t-linux t-linux-gnulibc1"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                ;;
        sparc-*-linux-gnu*)             # Sparc's running GNU/Linux, libc6
@@ -2999,7 +3008,6 @@ changequote([,])dnl
                tm_file=sparc/linux.h
                tmake_file="t-linux"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
                if test x$enable_threads = xyes; then
                        thread_file='posix'
@@ -3027,8 +3035,7 @@ changequote([,])dnl
                tmake_file="sparc/t-sol2 sparc/t-sol2-64"
                xmake_file=sparc/x-sysv4
                extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
-               fixincludes=fixinc.wrap
-               float_format=i128
+               float_format=none
                if test x${enable_threads} = x ; then
                    enable_threads=$have_pthread_h
                    if test x${enable_threads} = x ; then
@@ -3068,11 +3075,12 @@ changequote([,])dnl
 changequote(,)dnl
                *-*-solaris2.[0-4])
 changequote([,])dnl
-                       fixincludes=fixinc.svr4;;
+                       float_format=i128
+                       ;;
                *)
-                       fixincludes=fixinc.wrap;;
+                       float_format=none
+                       ;;
                esac
-               float_format=i128
                if test x${enable_threads} = x; then
                    enable_threads=$have_pthread_h
                    if test x${enable_threads} = x; then
@@ -3145,7 +3153,6 @@ changequote([,])dnl
                xm_file="sparc/xm-sp64.h sparc/xm-linux.h"
                tm_file=sparc/linux64.h
                xmake_file=x-linux
-               fixincludes=Makefile.in # The headers are ok already.
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                gnu_ld=yes
                ;;
@@ -3161,7 +3168,6 @@ changequote([,])dnl
                xm_file=arm/xm-thumb.h
                md_file=arm/thumb.md
                tmake_file=arm/t-thumb
-               fixincludes=Makefile.in # There is nothing to fix
                ;;
 # This hasn't been upgraded to GCC 2.
 #      tron-*-*)
@@ -3190,11 +3196,12 @@ changequote([,])dnl
                ;;
        vax-*-netbsd*)
                tm_file="${tm_file} netbsd.h vax/netbsd.h"
-               # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                float_format=vax
                ;;
+       vax-*-openbsd*)
+               tmake_file="${tm_file} vax/t-openbsd"
+               ;;
        vax-*-ultrix*)                  # vaxen running ultrix
                tm_file="${tm_file} vax/ultrix.h"
                use_collect2=yes
@@ -3233,13 +3240,10 @@ changequote([,])dnl
                # GNU tools are the only tools.
                gnu_ld=yes
                gas=yes
-               # On GNU, the headers are already okay.
-               fixincludes=Makefile.in
                xmake_file=x-linux      # These details are the same as Linux.
                tmake_file=t-gnu        # These are not.
                ;;
        *-*-sysv4*)
-               fixincludes=fixinc.svr4
                xmake_try_sysv=x-sysv
                install_headers_dir=install-headers-cpio
                ;;
@@ -3265,7 +3269,7 @@ changequote([,])dnl
        alpha*-*-*)
                case $machine in
                        alphaev6*)
-                               target_cpu_default2="MASK_CPU_EV6|MASK_BXW|MASK_CIX|MASK_MAX"
+                               target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_CIX|MASK_MAX"
                                ;;
                        alphapca56*)
                                target_cpu_default2="MASK_CPU_EV5|MASK_BWX|MASK_MAX"
@@ -3300,7 +3304,7 @@ changequote([,])dnl
                        xarm[23678] | xarm250 | xarm[67][01]0 \
                        | xarm7m | xarm7dm | xarm7dmi | xarm7tdmi \
                        | xarm7100 | xarm7500 | xarm7500fe | xarm810 \
-                       | xstrongarm | xstrongarm110)
+                       | xstrongarm | xstrongarm110 | xstrongarm1100)
                                target_cpu_default2="TARGET_CPU_$with_cpu"
                                ;;
 
@@ -3464,6 +3468,11 @@ if test x$float_format = x
 then float_format=i64
 fi
 
+if test $float_format = none
+then float_h_file=Makefile.in
+else float_h_file=float-$float_format.h
+fi
+
 if test x$enable_haifa = x
 then
   case $target in
@@ -3472,6 +3481,12 @@ then
   esac
 fi
 
+# Handle cpp installation.
+if [[ x$enable_cpp != x ]]
+then
+  tmake_file="$tmake_file t-install-cpp"
+fi
+
 # Say what files are being used for the output code and MD file.
 echo "Using \`$srcdir/config/$out_file' to output insns."
 echo "Using \`$srcdir/config/$md_file' as machine description file."
@@ -4008,7 +4023,7 @@ all_boot_languages=
 all_compilers=
 all_stagestuff=
 all_diff_excludes=
-all_outputs='Makefile intl/Makefile po/Makefile.in'
+all_outputs='Makefile intl/Makefile po/Makefile.in fixinc/Makefile'
 # List of language makefile fragments.
 all_lang_makefiles=
 all_headers=
@@ -4145,25 +4160,44 @@ if test x$enable_haifa != x; then
     done
 fi
 
-# if $(exec_prefix) is not the same as $(prefix), then do not use a relative
-# directory to get to $gcc_tooldir.  Also handle the case where the user did
-# not specify a value for exec_prefix.
+# If $(exec_prefix) exists and is not the same as $(prefix), then compute an
+# absolute path for gcc_tooldir based on inserting the number of up-directory
+# movements required to get from $(exec_prefix) to $(prefix) into the basic
+# $(libsubdir)/@(unlibsubdir) based path.
 # Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
 # make and thus we'd get different behavior depending on where we built the
 # sources.
 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
     gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
 else
-    gcc_tooldir='$(exec_prefix)'/${target_alias}
+changequote(<<, >>)dnl
+# An explanation of the sed strings:
+#  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
+#  -e 's|/$||'            match a trailing forward slash and eliminates it
+#  -e 's|^[^/]|/|'        forces the string to start with a forward slash (*)
+#  -e 's|/[^/]*|../|g'    replaces each occurance of /<directory> with ../
+#
+# (*) Note this pattern overwrites the first character of the string
+# with a forward slash if one is not already present.  This is not a
+# problem because the exact names of the sub-directories concerned is
+# unimportant, just the number of them matters.
+#
+# The practical upshot of these patterns is like this:
+#
+#  prefix     exec_prefix        result
+#  ------     -----------        ------
+#   /foo        /foo/bar          ../
+#   /foo/       /foo/bar          ../
+#   /foo        /foo/bar/         ../
+#   /foo/       /foo/bar/         ../
+#   /foo        /foo/bar/ugg      ../../
+#
+    dollar='$$'
+    gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
+changequote([, ])dnl
 fi
 AC_SUBST(gcc_tooldir)
-
-# Warn if using init_priority.
-AC_MSG_CHECKING(whether to enable init_priority by default)
-if test x$enable_init_priority != xyes; then
-  enable_init_priority=no
-fi
-AC_MSG_RESULT($enable_init_priority)
+AC_SUBST(dollar)
 
 # Nothing to do for FLOAT_H, float_format already handled.
 objdir=`pwd`
@@ -4174,54 +4208,56 @@ ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xma
 
 # Substitute configuration variables
 AC_SUBST(subdirs)
-AC_SUBST(all_languages)
 AC_SUBST(all_boot_languages)
 AC_SUBST(all_compilers)
-AC_SUBST(all_lang_makefiles)
-AC_SUBST(all_stagestuff)
 AC_SUBST(all_diff_excludes)
-AC_SUBST(all_lib2funcs)
 AC_SUBST(all_headers)
+AC_SUBST(all_lang_makefiles)
+AC_SUBST(all_languages)
+AC_SUBST(all_lib2funcs)
+AC_SUBST(all_stagestuff)
+AC_SUBST(build_exeext)
+AC_SUBST(build_install_headers_dir)
+AC_SUBST(build_xm_file_list)
+AC_SUBST(cc_set_by_configure)
+AC_SUBST(cpp_install_dir)
 AC_SUBST(cpp_main)
-AC_SUBST(extra_passes)
-AC_SUBST(extra_programs)
-AC_SUBST(extra_parts)
+AC_SUBST(dep_host_xmake_file)
+AC_SUBST(dep_tmake_file)
+AC_SUBST(extra_c_flags)
 AC_SUBST(extra_c_objs)
-AC_SUBST(extra_cxx_objs)
 AC_SUBST(extra_cpp_objs)
-AC_SUBST(extra_c_flags)
+AC_SUBST(extra_cxx_objs)
+AC_SUBST(extra_headers_list)
 AC_SUBST(extra_objs)
+AC_SUBST(extra_parts)
+AC_SUBST(extra_passes)
+AC_SUBST(extra_programs)
+AC_SUBST(fixinc_defs)
+AC_SUBST(float_h_file)
+AC_SUBST(gcc_gxx_include_dir)
+AC_SUBST(gcc_version)
+AC_SUBST(gcc_version_trigger)
+AC_SUBST(host_exeext)
 AC_SUBST(host_extra_gcc_objs)
-AC_SUBST(extra_headers_list)
-AC_SUBST(dep_host_xmake_file)
-AC_SUBST(dep_tmake_file)
-AC_SUBST(out_file)
-AC_SUBST(out_object_file)
-AC_SUBST(md_file)
-AC_SUBST(tm_file_list)
-AC_SUBST(build_xm_file_list)
 AC_SUBST(host_xm_file_list)
-AC_SUBST(lang_specs_files)
+AC_SUBST(install)
+AC_SUBST(JAVAGC)
 AC_SUBST(lang_options_files)
+AC_SUBST(lang_specs_files)
 AC_SUBST(lang_tree_files)
-AC_SUBST(thread_file)
-AC_SUBST(objc_boehm_gc)
-AC_SUBST(JAVAGC)
-AC_SUBST(gcc_version)
-AC_SUBST(gcc_version_trigger)
 AC_SUBST(local_prefix)
-AC_SUBST(gxx_include_dir)
-AC_SUBST(fixincludes)
-AC_SUBST(build_install_headers_dir)
-AC_SUBST(build_exeext)
-AC_SUBST(host_exeext)
-AC_SUBST(float_format)
-AC_SUBST(will_use_collect2)
 AC_SUBST(maybe_use_collect2)
-AC_SUBST(cc_set_by_configure)
+AC_SUBST(md_file)
+AC_SUBST(objc_boehm_gc)
+AC_SUBST(out_file)
+AC_SUBST(out_object_file)
 AC_SUBST(stage_prefix_set_by_configure)
-AC_SUBST(install)
 AC_SUBST(symbolic_link)
+AC_SUBST(thread_file)
+AC_SUBST(tm_file_list)
+AC_SUBST(will_use_collect2)
+
 
 AC_SUBST_FILE(target_overrides)
 AC_SUBST_FILE(host_overrides)
@@ -4331,4 +4367,5 @@ host_overrides='${host_overrides}'
 cross_defines='${cross_defines}'
 cross_overrides='${cross_overrides}'
 build_overrides='${build_overrides}'
+cpp_install_dir='${cpp_install_dir}'
 ])