OSDN Git Service

* config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index 580e16a..3b67c37 100644 (file)
@@ -187,15 +187,17 @@ AC_ARG_ENABLE(checking,
 [  --enable-checking[=LIST]
                          enable expensive run-time checks.  With LIST,
                          enable only specific categories of checks.
-                         Categories are: misc,tree,rtl,gc,gcac; default
-                         is misc,tree,gc],
+                         Categories are: misc,tree,rtl,rtlflag,gc,gcac;
+                         default is misc,tree,gc,rtlflag],
 [ac_checking=
 ac_tree_checking=
 ac_rtl_checking=
+ac_rtlflag_checking=
 ac_gc_checking=
 ac_gc_always_collect=
 case "${enableval}" in
-yes)   ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;;
+yes)   ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;
+       ac_rtlflag_checking=1 ;;
 no)    ;;
 *)     IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
        set fnord $enableval; shift
@@ -205,6 +207,7 @@ no) ;;
                case $check in
                misc)   ac_checking=1 ;;
                tree)   ac_tree_checking=1 ;;
+               rtlflag)        ac_rtlflag_checking=1 ;;
                rtl)    ac_rtl_checking=1 ;;
                gc)     ac_gc_checking=1 ;;
                gcac)   ac_gc_always_collect=1 ;;
@@ -215,7 +218,7 @@ no) ;;
 esac
 ], 
 # Enable some checks by default for development versions of GCC
-[ac_checking=1; ac_tree_checking=1; ac_gc_checking=1;])
+[ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;])
 if test x$ac_checking != x ; then
   AC_DEFINE(ENABLE_CHECKING, 1,
 [Define if you want more run-time sanity checks.  This one gets a grab
@@ -233,6 +236,12 @@ if test x$ac_rtl_checking != x ; then
    of the optimizer and back end) to be checked for dynamic type safety
    at runtime.  This is quite expensive.])
 fi
+if test x$ac_rtlflag_checking != x ; then
+  AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
+[Define if you want RTL flag accesses to be checked against the RTL
+   codes that are supported for each access macro.  This is relatively
+   cheap.])
+fi
 if test x$ac_gc_checking != x ; then
   AC_DEFINE(ENABLE_GC_CHECKING, 1,
 [Define if you want the garbage collector to do object poisoning and
@@ -245,11 +254,6 @@ if test x$ac_gc_always_collect != x ; then
    every opportunity.  This is extremely expensive.])
 fi
 
-
-AC_ARG_ENABLE(cpp,
-[  --disable-cpp           don't provide a user-visible C preprocessor],
-[], [enable_cpp=yes])
-
 AC_ARG_WITH(cpp_install_dir,
 [  --with-cpp-install-dir=DIR
                           install the user visible C preprocessor in DIR
@@ -350,6 +354,9 @@ fi
 AC_SUBST(NO_MINUS_C_MINUS_O)
 AC_SUBST(OUTPUT_OPTION)
 
+# See if GNAT has been installed
+gcc_AC_PROG_GNAT
+
 AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-long-long,
 ac_cv_prog_cc_no_long_long,
 [save_CFLAGS="$CFLAGS"
@@ -357,8 +364,26 @@ CFLAGS="-Wno-long-long"
 AC_TRY_COMPILE(,,ac_cv_prog_cc_no_long_long=yes,
               ac_cv_prog_cc_no_long_long=no)
 CFLAGS="$save_CFLAGS"])
+
+if test x$have_gnat != xno ; then 
+AC_CACHE_CHECK(whether ${ADAC} accepts -Wno-long-long,
+ac_cv_prog_adac_no_long_long,
+[cat >conftest.adb <<EOF
+procedure conftest is begin null; end conftest;
+EOF
+if $ADAC -Wno-long-long -c conftest.adb 1>&5 2>&5 ; then
+  ac_cv_prog_adac_no_long_long=yes
+else
+  ac_cv_prog_adac_no_long_long=no
+fi
+rm -f conftest*])
+else
+  ac_cv_prog_adac_no_long_long=yes
+fi
+
 strict1_warn=
-if test $ac_cv_prog_cc_no_long_long = yes; then
+if test $ac_cv_prog_cc_no_long_long = yes && \
+    test $ac_cv_prog_adac_no_long_long = yes ; then
   strict1_warn="-pedantic -Wno-long-long"
 fi
 AC_SUBST(strict1_warn)
@@ -478,9 +503,6 @@ gcc_AC_C_CHAR_BIT
 gcc_AC_C_COMPILE_ENDIAN
 gcc_AC_C_FLOAT_FORMAT
 
-# See if GNAT has been installed
-gcc_AC_PROG_GNAT
-
 # See if we have the mktemp command.
 AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
 
@@ -587,7 +609,8 @@ dnl gcc_AC_C_ENUM_BF_UNSIGNED
 
 AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
        sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
-       fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat)
+       fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
+        scandir alphasort)
 
 AC_CHECK_TYPE(ssize_t, int)
 
@@ -696,6 +719,7 @@ objext='.o'
 AC_SUBST(manext)
 AC_SUBST(objext)
 
+config_gtfiles=
 build_xm_file=
 build_xm_defines=
 build_install_headers_dir=install-headers-tar
@@ -746,12 +770,6 @@ then float_h_file=Makefile.in
 else float_h_file=float-$float_format.h
 fi
 
-# Handle cpp installation.
-if test x$enable_cpp != xno
-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' for machine-specific logic."
 echo "Using \`$srcdir/config/$md_file' as machine description file."
@@ -864,7 +882,7 @@ else
        saved_CFLAGS="${CFLAGS}"
        CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
        ${realsrcdir}/configure \
-               --target=$target --host=$build --build=$build
+               --target=$target_alias --host=$build_alias --build=$build_alias
        CFLAGS="${saved_CFLAGS}"
 
        # We just finished tests for the build machine, so rename
@@ -981,9 +999,9 @@ fi
 esac
 
 # Get an absolute path to the GCC top-level source directory
-holddir=`pwd`
+holddir=`${PWDCMD-pwd}`
 cd $srcdir
-topdir=`pwd`
+topdir=`${PWDCMD-pwd}`
 cd $holddir
 
 # Conditionalize the makefile for this host machine.
@@ -1045,7 +1063,7 @@ for f in $tm_file; do
     ansidecl.h )
        tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
     defaults.h )
-       tm_file_list="${tm_file_list} $f" ;;
+       tm_file_list="${tm_file_list} \$(srcdir)/$f" ;;
     *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
   esac
 done
@@ -1060,8 +1078,10 @@ for f in $host_xm_file; do
   case $f in
     ansidecl.h )
        host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
-    auto-host.h | defaults.h )
+    auto-host.h )
        host_xm_file_list="${host_xm_file_list} $f" ;;
+    defaults.h )
+       host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
     *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
   esac
 done
@@ -1071,8 +1091,10 @@ for f in $build_xm_file; do
   case $f in
     ansidecl.h )
        build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
-    auto-build.h | auto-host.h | defaults.h )
+    auto-build.h | auto-host.h )
        build_xm_file_list="${build_xm_file_list} $f" ;;
+    defaults.h )
+       host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
     *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
   esac
 done
@@ -1087,6 +1109,11 @@ then
        CROSS="-DCROSS_COMPILE"
        ALL=all.cross
        SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
+       case "$host","$target" in
+           i?86-*-*,x86_64-*-* \
+           | powerpc*-*-*,powerpc64*-*-*)
+               CROSS="$CROSS -DNATIVE_CROSS" ;;
+       esac
 fi
 
 # If this is a cross-compiler that does not
@@ -1113,8 +1140,8 @@ AC_SUBST(inhibit_libc)
 # FIXME.
 
 # These are the normal (build=host) settings:
-HOST_PREFIX=                   AC_SUBST(HOST_PREFIX)
-HOST_PREFIX_1=ignore-          AC_SUBST(HOST_PREFIX_1)
+BUILD_PREFIX=                  AC_SUBST(BUILD_PREFIX)
+BUILD_PREFIX_1=ignore-         AC_SUBST(BUILD_PREFIX_1)
 HOST_CC='$(CC)'                        AC_SUBST(HOST_CC)
 HOST_CFLAGS='$(ALL_CFLAGS)'    AC_SUBST(HOST_CFLAGS)
 
@@ -1124,8 +1151,8 @@ STMP_FIXPROTO=stmp-fixproto       AC_SUBST(STMP_FIXPROTO)
 # And these apply if build != host.
 if test x$build != x$host
 then
-    HOST_PREFIX=build-
-    HOST_PREFIX_1=build-
+    BUILD_PREFIX=build-
+    BUILD_PREFIX_1=build-
     HOST_CC='$(CC_FOR_BUILD)'
     HOST_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
 
@@ -1201,11 +1228,11 @@ changequote([,])dnl
 changequote(,)dnl
        gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
        gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
+       gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.[0-9]*\.\([0-9]*\)"`
 changequote([,])dnl
 fi
 
-if test "x$gcc_cv_as" = x -a x$host = x$target; then
-       # Native build.
+if test "x$gcc_cv_as" = x; then
        # Search the same directories that the installed compiler will
        # search.  Else we may find the wrong assembler and lose.  If we
        # do not find a suitable assembler binary, then try the user's
@@ -1230,14 +1257,21 @@ if test "x$gcc_cv_as" = x -a x$host = x$target; then
        # If the loop below does not find an assembler, then use whatever
        # one we can find in the users's path.
        # user's path.
-       gcc_cv_as=as$host_exeext
-
-       test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
-                  $test_prefix/lib/gcc-lib/$target \
-                  /usr/lib/gcc/$target/$gcc_version \
-                  /usr/lib/gcc/$target \
-                  $test_prefix/$target/bin/$target/$gcc_version \
-                  $test_prefix/$target/bin \
+       if test "x$program_prefix" != xNONE; then
+               gcc_cv_as=${program_prefix}as$host_exeext
+       else
+               gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
+       fi
+
+       test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
+                  $test_prefix/lib/gcc-lib/$target_alias \
+                  /usr/lib/gcc/$target_alias/$gcc_version \
+                  /usr/lib/gcc/$target_alias \
+                  $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
+                  $test_prefix/$target_alias/bin"
+
+       if test x$host = x$target; then
+           test_dirs="$test_dirs \
                   /usr/libexec \
                   /usr/ccs/gcc \
                   /usr/ccs/bin \
@@ -1248,9 +1282,10 @@ if test "x$gcc_cv_as" = x -a x$host = x$target; then
                   /sysv/usr/lib/cmplrs/cc \
                   /svr4/usr/lib/cmplrs/cc \
                   /usr/bin"
+       fi
 
        for dir in $test_dirs; do
-               if test -f $dir/as$host_exeext; then
+               if test -x $dir/as$host_exeext; then
                        gcc_cv_as=$dir/as$host_exeext
                        break;
                fi
@@ -1293,8 +1328,7 @@ changequote(,)dnl
 changequote([,])dnl
 fi
 
-if test "x$gcc_cv_ld" = x -a x$host = x$target; then
-       # Native build.
+if test "x$gcc_cv_ld" = x; then
        # Search the same directories that the installed compiler will
        # search.  Else we may find the wrong linker and lose.  If we
        # do not find a suitable linker binary, then try the user's
@@ -1319,14 +1353,21 @@ if test "x$gcc_cv_ld" = x -a x$host = x$target; then
        # If the loop below does not find an linker, then use whatever
        # one we can find in the users's path.
        # user's path.
-       gcc_cv_ld=ld$host_exeext
-
-       test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
-                  $test_prefix/lib/gcc-lib/$target \
-                  /usr/lib/gcc/$target/$gcc_version \
-                  /usr/lib/gcc/$target \
-                  $test_prefix/$target/bin/$target/$gcc_version \
-                  $test_prefix/$target/bin \
+       if test "x$program_prefix" != xNONE; then
+               gcc_cv_ld=${program_prefix}ld$host_exeext
+       else
+               gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
+       fi
+
+       test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
+                  $test_prefix/lib/gcc-lib/$target_alias \
+                  /usr/lib/gcc/$target_alias/$gcc_version \
+                  /usr/lib/gcc/$target_alias \
+                  $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
+                  $test_prefix/$target_alias/bin"
+
+       if test x$host = x$target; then
+           test_dirs="$test_dirs \
                   /usr/libexec \
                   /usr/ccs/gcc \
                   /usr/ccs/bin \
@@ -1337,9 +1378,10 @@ if test "x$gcc_cv_ld" = x -a x$host = x$target; then
                   /sysv/usr/lib/cmplrs/cc \
                   /svr4/usr/lib/cmplrs/cc \
                   /usr/bin"
+       fi
 
        for dir in $test_dirs; do
-               if test -f $dir/ld$host_exeext; then
+               if test -x $dir/ld$host_exeext; then
                        gcc_cv_ld=$dir/ld$host_exeext
                        break;
                fi
@@ -1355,9 +1397,10 @@ fi
 AC_MSG_CHECKING(what nm to use)
 if test -x nm$host_exeext; then
        gcc_cv_nm=./nm$host_exeext
-elif test x$host = x$target; then
-       # Native build.
-       gcc_cv_nm=nm$host_exeext
+elif test "x$program_prefix" != xNONE; then
+       gcc_cv_nm=${program_prefix}nm$host_exeext
+else
+       gcc_cv_nm=`echo nm | sed ${program_transform_name}`$host_exeext
 fi
 AC_MSG_RESULT($gcc_cv_nm)
 
@@ -1365,9 +1408,10 @@ AC_MSG_RESULT($gcc_cv_nm)
 AC_MSG_CHECKING(what objdump to use)
 if test -x objdump$host_exeext; then
        gcc_cv_objdump=./objdump$host_exeext
-elif test x$host = x$target; then
-       # Native build.
-       gcc_cv_objdump=objdump$host_exeext
+elif test "x$program_prefix" != xNONE; then
+       gcc_cv_objdump=${program_prefix}objdump$host_exeext
+else
+       gcc_cv_objdump=`echo objdump | sed ${program_transform_name}`$host_exeext
 fi
 AC_MSG_RESULT($gcc_cv_objdump)
 
@@ -1467,7 +1511,13 @@ AC_MSG_RESULT($gcc_cv_as_weak)
 AC_MSG_CHECKING(assembler hidden support)
 gcc_cv_as_hidden=no
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
-  if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 10 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
+  if test "$gcc_cv_gas_major_version" -eq 2    \
+         -a "$gcc_cv_gas_minor_version" -eq 12 \
+         -a "$gcc_cv_gas_patch_version" -ge 1  \
+         -o "$gcc_cv_gas_major_version" -eq 2  \
+         -a "$gcc_cv_gas_minor_version" -gt 12 \
+         -o "$gcc_cv_gas_major_version" -gt 2  \
+    && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
     gcc_cv_as_hidden="yes"
   fi
 elif test x$gcc_cv_as != x; then
@@ -1478,6 +1528,39 @@ elif test x$gcc_cv_as != x; then
                gcc_cv_as_hidden="yes"
        fi
        rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+
+       # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
+       # This is irritatingly difficult to feature test for.  Look for 
+       # the date string after the version number.
+       ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
+       if echo "$ld_ver" | grep GNU > /dev/null; then
+changequote(,)dnl
+               ld_vers=`echo $ld_ver | sed -n 's,^.*[  ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([     ].*\|\)$,\1,p'`
+               ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
+               if test 0"$ld_date" -lt 20020404; then
+                       if test -n "$ld_date"; then
+                               # If there was date string, but was earlier than 2002-04-04, fail
+                               gcc_cv_as_hidden="no"
+                       elif test -z "$ld_vers"; then
+                               # If there was no date string nor ld version number, something is wrong
+                               gcc_cv_as_hidden="no"
+                       else
+                               ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
+                               ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
+                               ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
+                               test -z "$ld_vers_patch" && ld_vers_patch=0
+                               if test "$ld_vers_major" -lt 2; then
+                                       gcc_cv_as_hidden="no"
+                               elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
+                                       gcc_cv_as_hidden="no"
+                               elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \
+                                         -a "$ld_vers_patch" -eq 0; then
+                                       gcc_cv_as_hidden="no"
+                               fi
+                       fi
+               fi
+changequote([,])dnl
+       fi
 fi
 if test x"$gcc_cv_as_hidden" = xyes; then
        AC_DEFINE(HAVE_GAS_HIDDEN, 1,
@@ -1629,6 +1712,94 @@ if test x"$gcc_cv_as_shf_merge" = xyes; then
 fi
 AC_MSG_RESULT($gcc_cv_as_shf_merge)
 
+AC_MSG_CHECKING(assembler thread-local storage support)
+gcc_cv_as_tls=no
+conftest_s=
+tls_first_major=
+tls_first_minor=
+case "$target" in
+changequote(,)dnl
+  alpha*-*-*)
+    conftest_s='
+       .section ".tdata","awT",@progbits
+foo:   .long   25
+       .text
+       ldq     $27,__tls_get_addr($29)         !literal!1
+       lda     $16,foo($29)                    !tlsgd!1
+       jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
+       ldq     $27,__tls_get_addr($29)         !literal!2
+       lda     $16,foo($29)                    !tlsldm!2
+       jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
+       ldq     $1,foo($29)                     !gotdtprel
+       ldah    $2,foo($29)                     !dtprelhi
+       lda     $3,foo($2)                      !dtprello
+       lda     $4,foo($29)                     !dtprel
+       ldq     $1,foo($29)                     !gottprel
+       ldah    $2,foo($29)                     !tprelhi
+       lda     $3,foo($2)                      !tprello
+       lda     $4,foo($29)                     !tprel'
+       tls_first_major=2
+       tls_first_minor=13
+       ;;
+  i[34567]86-*-*)
+changequote([,])dnl
+    conftest_s='
+       .section ".tdata","awT",@progbits
+foo:   .long   25
+       .text
+       movl    %gs:0, %eax
+       leal    foo@TLSGD(,%ebx,1), %eax
+       leal    foo@TLSLDM(%ebx), %eax
+       leal    foo@DTPOFF(%eax), %edx
+       movl    foo@GOTTPOFF(%ebx), %eax
+       subl    foo@GOTTPOFF(%ebx), %eax
+       movl    $foo@TPOFF, %eax
+       subl    $foo@TPOFF, %eax
+       leal    foo@NTPOFF(%ecx), %eax'
+       tls_first_major=2
+       tls_first_minor=13
+       ;;
+  ia64-*-*)
+    conftest_s='
+       .section ".tdata","awT",@progbits
+foo:   data8   25
+       .text
+       addl    r16 = @ltoff(@dtpmod(foo#)), gp
+       addl    r17 = @ltoff(@dtprel(foo#)), gp
+       addl    r18 = @ltoff(@tprel(foo#)), gp
+       addl    r19 = @dtprel(foo#), gp
+       adds    r21 = @dtprel(foo#), r13
+       movl    r23 = @dtprel(foo#)
+       addl    r20 = @tprel(foo#), gp
+       adds    r22 = @tprel(foo#), r13
+       movl    r24 = @tprel(foo#)'
+       tls_first_major=2
+       tls_first_minor=13
+       ;;
+esac
+if test -z "$tls_first_major"; then
+  :
+elif test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
+then
+  if test "$gcc_cv_gas_major_version" -eq "$tls_first_major" \
+         -a "$gcc_cv_gas_minor_version" -ge "$tls_first_minor" \
+         -o "$gcc_cv_gas_major_version" -gt "$tls_first_major"; then
+    gcc_cv_as_tls=yes
+  fi
+elif test x$gcc_cv_as != x; then
+  echo "$conftest_s" > conftest.s
+  if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1
+  then
+    gcc_cv_as_tls=yes
+  fi
+  rm -f conftest.s conftest.o
+fi
+if test "$gcc_cv_as_tls" = yes; then
+  AC_DEFINE(HAVE_AS_TLS, 1,
+           [Define if your assembler supports thread-local storage.])
+fi
+AC_MSG_RESULT($gcc_cv_as_tls)
+
 case "$target" in
   # All TARGET_ABI_OSF targets.
   alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
@@ -1717,10 +1888,9 @@ EOF
        if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
            gcc_cv_as_sparc_ua_pcrel=no
            echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
-           if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1; then
-               if $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
-                   gcc_cv_as_sparc_ua_pcrel=yes
-               fi
+           if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
+              && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
+               gcc_cv_as_sparc_ua_pcrel=yes
            fi
            rm -f conftest.s conftest.o conftest
        fi
@@ -1730,42 +1900,36 @@ EOF
                [Define if your assembler and linker support unaligned PC relative relocs.])
     fi
 
-    case "$tm_file" in
-    *64*)
-       AC_CACHE_CHECK([for 64 bit support in assembler ($gcc_cv_as)],
-           gcc_cv_as_flags64, [
-               if test -n "$gcc_cv_as"; then
-                   echo ".xword foo" > conftest.s
-                   gcc_cv_as_flags64=no
-                   for flag in "-xarch=v9" "-64 -Av9"; do
-                       if $gcc_cv_as $flag -o conftest.o conftest.s \
-                           > /dev/null 2>&1; then
-                           gcc_cv_as_flags64=$flag
-                           break
-                       fi
-                   done
-                   rm -f conftest.s conftest.o
-               else
-                   if test "$gas" = yes; then
-                       gcc_cv_as_flags64="-64 -Av9"
+    AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs against hidden symbols],
+       gcc_cv_as_sparc_ua_pcrel_hidden, [
+       if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
+           gcc_cv_as_sparc_ua_pcrel_hidden=unknown
+           if test x$gcc_cv_objdump != x; then
+               gcc_cv_as_sparc_ua_pcrel_hidden=no
+               echo ".data; .align 4; .byte 0x31; .uaword %r_disp32(foo)" > conftest.s
+               echo ".byte 0x32, 0x33, 0x34; .global foo; .hidden foo" >> conftest.s
+               echo "foo: .skip 4" >> conftest.s
+               if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
+                  && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
+                  && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
+                     | grep ' 31000000 07323334' > /dev/null 2>&1; then
+                   if $gcc_cv_objdump -R conftest 2> /dev/null \
+                      | grep 'DISP32' > /dev/null 2>&1; then
+                       :
                    else
-                       gcc_cv_as_flags64="-xarch=v9"
+                       gcc_cv_as_sparc_ua_pcrel_hidden=yes
                    fi
                fi
-       ])
-       if test "x$gcc_cv_as_flags64" = xno; then
-changequote(, )
-           tmake_file=`echo " $tmake_file " | sed -e 's, sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
-           dep_tmake_file=`echo " $dep_tmake_file " | sed -e 's, [^ ]*/config/sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
-changequote([, ])
+           fi
+           rm -f conftest.s conftest.o conftest
        else
-           AC_DEFINE_UNQUOTED(AS_SPARC64_FLAG, "$gcc_cv_as_flags64",
-                       [Define if the assembler supports 64bit sparc.])
+           gcc_cv_as_sparc_ua_pcrel_hidden="$gcc_cv_as_sparc_ua_pcrel"
        fi
-       ;;
-    *) gcc_cv_as_flags64=${gcc_cv_as_flags64-no}
-       ;;
-    esac
+    ])
+    if test "x$gcc_cv_as_sparc_ua_pcrel_hidden" = xyes; then
+       AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
+               [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])
+    fi
 
     if test "x$gcc_cv_as_flags64" != xno; then
        AC_CACHE_CHECK([for assembler offsetable %lo() support],
@@ -1861,7 +2025,7 @@ gcc_cv_as_dwarf2_debug_line=no
 # ??? Once 2.11 is released, probably need to add first known working
 # version to the per-target configury.
 case "$target" in
-  i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* | x86_64*-*-*)
+  i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* | x86_64*-*-* | hppa*-*-*)
     insn="nop"
     ;;
   ia64*-*-*)
@@ -2164,9 +2328,11 @@ all_languages=
 all_boot_languages=
 all_compilers=
 all_stagestuff=
-all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc'
+all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
 # List of language makefile fragments.
 all_lang_makefiles=
+# Files for gengtype
+all_gtfiles="$config_gtfiles"
 
 # Add the language fragments.
 # Languages are added via two mechanisms.  Some information must be
@@ -2187,6 +2353,7 @@ do
                compilers=
                stagestuff=
                outputs=
+               gtfiles=
                . ${srcdir}/$s/config-lang.in
                if test "x$language" = x
                then
@@ -2205,6 +2372,7 @@ do
                all_compilers="$all_compilers $compilers"
                all_stagestuff="$all_stagestuff $stagestuff"
                all_outputs="$all_outputs $outputs"
+               all_gtfiles="$all_gtfiles $gtfiles"
        fi
 done
 
@@ -2327,7 +2495,7 @@ fi)
 AC_SUBST(slibdir)
 
 # Nothing to do for FLOAT_H, float_format already handled.
-objdir=`pwd`
+objdir=`${PWDCMD-pwd}`
 AC_SUBST(objdir)
 
 # Process the language and host/target makefile fragments.
@@ -2337,6 +2505,7 @@ ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xma
 AC_SUBST(subdirs)
 AC_SUBST(all_boot_languages)
 AC_SUBST(all_compilers)
+AC_SUBST(all_gtfiles)
 AC_SUBST(all_lang_makefiles)
 AC_SUBST(all_languages)
 AC_SUBST(all_stagestuff)
@@ -2448,7 +2617,7 @@ esac
 if test "$symbolic_link" = "ln -s"; then
  for d in .. ${subdirs} fixinc ; do
    if test $d != ..; then
-       STARTDIR=`pwd`
+       STARTDIR=`${PWDCMD-pwd}`
        cd $d
        for t in stage1 stage2 stage3 stage4 include
        do