OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [configure.ac] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
# configure.ac for GCC
# configure.ac for GCC
# Process this file with autoconf to generate a configuration script.
# Process this file with autoconf to generate a configuration script.
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
# Free Software Foundation, Inc.
# Free Software Foundation, Inc.
#This file is part of GCC.
#This file is part of GCC.
#GCC is free software; you can redistribute it and/or modify it under
#GCC is free software; you can redistribute it and/or modify it under
#the terms of the GNU General Public License as published by the Free
#the terms of the GNU General Public License as published by the Free
#Software Foundation; either version 3, or (at your option) any later
#Software Foundation; either version 3, or (at your option) any later
#version.
#version.
#GCC is distributed in the hope that it will be useful, but WITHOUT
#GCC is distributed in the hope that it will be useful, but WITHOUT
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
#for more details.
#for more details.
#You should have received a copy of the GNU General Public License
#You should have received a copy of the GNU General Public License
#along with GCC; see the file COPYING3.  If not see
#along with GCC; see the file COPYING3.  If not see
#.
#.
# --------------------------------
# --------------------------------
# Initialization and sanity checks
# Initialization and sanity checks
# --------------------------------
# --------------------------------
AC_PREREQ(2.59)
AC_PREREQ(2.59)
AC_INIT
AC_INIT
AC_CONFIG_SRCDIR(tree.c)
AC_CONFIG_SRCDIR(tree.c)
AC_CONFIG_HEADER(auto-host.h:config.in)
AC_CONFIG_HEADER(auto-host.h:config.in)
gcc_version=`cat $srcdir/BASE-VER`
gcc_version=`cat $srcdir/BASE-VER`
# Determine the host, build, and target systems
# Determine the host, build, and target systems
AC_CANONICAL_BUILD
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AC_CANONICAL_TARGET
# Determine the noncanonical target name, for directory use.
# Determine the noncanonical target name, for directory use.
ACX_NONCANONICAL_TARGET
ACX_NONCANONICAL_TARGET
# Determine the target- and build-specific subdirectories
# Determine the target- and build-specific subdirectories
GCC_TOPLEV_SUBDIRS
GCC_TOPLEV_SUBDIRS
# Set program_transform_name
# Set program_transform_name
AC_ARG_PROGRAM
AC_ARG_PROGRAM
# Check for bogus environment variables.
# Check for bogus environment variables.
# Test if LIBRARY_PATH contains the notation for the current directory
# Test if LIBRARY_PATH contains the notation for the current directory
# since this would lead to problems installing/building glibc.
# since this would lead to problems installing/building glibc.
# LIBRARY_PATH contains the current directory if one of the following
# LIBRARY_PATH contains the current directory if one of the following
# is true:
# is true:
# - one of the terminals (":" and ";") is the first or last sign
# - one of the terminals (":" and ";") is the first or last sign
# - two terminals occur directly after each other
# - two terminals occur directly after each other
# - the path contains an element with a dot in it
# - the path contains an element with a dot in it
AC_MSG_CHECKING(LIBRARY_PATH variable)
AC_MSG_CHECKING(LIBRARY_PATH variable)
changequote(,)dnl
changequote(,)dnl
case ${LIBRARY_PATH} in
case ${LIBRARY_PATH} in
  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
    library_path_setting="contains current directory"
    library_path_setting="contains current directory"
    ;;
    ;;
  *)
  *)
    library_path_setting="ok"
    library_path_setting="ok"
    ;;
    ;;
esac
esac
changequote([,])dnl
changequote([,])dnl
AC_MSG_RESULT($library_path_setting)
AC_MSG_RESULT($library_path_setting)
if test "$library_path_setting" != "ok"; then
if test "$library_path_setting" != "ok"; then
AC_MSG_ERROR([
AC_MSG_ERROR([
*** LIBRARY_PATH shouldn't contain the current directory when
*** LIBRARY_PATH shouldn't contain the current directory when
*** building gcc. Please change the environment variable
*** building gcc. Please change the environment variable
*** and run configure again.])
*** and run configure again.])
fi
fi
# Test if GCC_EXEC_PREFIX contains the notation for the current directory
# Test if GCC_EXEC_PREFIX contains the notation for the current directory
# since this would lead to problems installing/building glibc.
# since this would lead to problems installing/building glibc.
# GCC_EXEC_PREFIX contains the current directory if one of the following
# GCC_EXEC_PREFIX contains the current directory if one of the following
# is true:
# is true:
# - one of the terminals (":" and ";") is the first or last sign
# - one of the terminals (":" and ";") is the first or last sign
# - two terminals occur directly after each other
# - two terminals occur directly after each other
# - the path contains an element with a dot in it
# - the path contains an element with a dot in it
AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
changequote(,)dnl
changequote(,)dnl
case ${GCC_EXEC_PREFIX} in
case ${GCC_EXEC_PREFIX} in
  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
    gcc_exec_prefix_setting="contains current directory"
    gcc_exec_prefix_setting="contains current directory"
    ;;
    ;;
  *)
  *)
    gcc_exec_prefix_setting="ok"
    gcc_exec_prefix_setting="ok"
    ;;
    ;;
esac
esac
changequote([,])dnl
changequote([,])dnl
AC_MSG_RESULT($gcc_exec_prefix_setting)
AC_MSG_RESULT($gcc_exec_prefix_setting)
if test "$gcc_exec_prefix_setting" != "ok"; then
if test "$gcc_exec_prefix_setting" != "ok"; then
AC_MSG_ERROR([
AC_MSG_ERROR([
*** GCC_EXEC_PREFIX shouldn't contain the current directory when
*** GCC_EXEC_PREFIX shouldn't contain the current directory when
*** building gcc. Please change the environment variable
*** building gcc. Please change the environment variable
*** and run configure again.])
*** and run configure again.])
fi
fi
# -----------
# -----------
# Directories
# Directories
# -----------
# -----------
# Specify the local prefix
# Specify the local prefix
local_prefix=
local_prefix=
AC_ARG_WITH(local-prefix,
AC_ARG_WITH(local-prefix,
[  --with-local-prefix=DIR specifies directory to put local include],
[  --with-local-prefix=DIR specifies directory to put local include],
[case "${withval}" in
[case "${withval}" in
yes)    AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
yes)    AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
no)     ;;
no)     ;;
*)      local_prefix=$with_local_prefix ;;
*)      local_prefix=$with_local_prefix ;;
esac])
esac])
# Default local prefix if it is empty
# Default local prefix if it is empty
if test x$local_prefix = x; then
if test x$local_prefix = x; then
        local_prefix=/usr/local
        local_prefix=/usr/local
fi
fi
# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
# 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
# passed in by the toplevel make and thus we'd get different behavior
# depending on where we built the sources.
# depending on where we built the sources.
gcc_gxx_include_dir=
gcc_gxx_include_dir=
# Specify the g++ header file directory
# Specify the g++ header file directory
AC_ARG_WITH(gxx-include-dir,
AC_ARG_WITH(gxx-include-dir,
[  --with-gxx-include-dir=DIR
[  --with-gxx-include-dir=DIR
                          specifies directory to put g++ header files],
                          specifies directory to put g++ header files],
[case "${withval}" in
[case "${withval}" in
yes)    AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
yes)    AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
no)     ;;
no)     ;;
*)      gcc_gxx_include_dir=$with_gxx_include_dir ;;
*)      gcc_gxx_include_dir=$with_gxx_include_dir ;;
esac])
esac])
# This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
# This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
if test x${gcc_gxx_include_dir} = x; then
if test x${gcc_gxx_include_dir} = x; then
  if test x${enable_version_specific_runtime_libs} = xyes; then
  if test x${enable_version_specific_runtime_libs} = xyes; then
    gcc_gxx_include_dir='${libsubdir}/include/c++'
    gcc_gxx_include_dir='${libsubdir}/include/c++'
  else
  else
    libstdcxx_incdir='include/c++/$(version)'
    libstdcxx_incdir='include/c++/$(version)'
    if test x$host != x$target; then
    if test x$host != x$target; then
       libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
       libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
    fi
    fi
changequote(<<, >>)dnl
changequote(<<, >>)dnl
    gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/$libstdcxx_incdir"
    gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/$libstdcxx_incdir"
changequote([, ])dnl
changequote([, ])dnl
  fi
  fi
fi
fi
AC_ARG_WITH(cpp_install_dir,
AC_ARG_WITH(cpp_install_dir,
[  --with-cpp-install-dir=DIR
[  --with-cpp-install-dir=DIR
                          install the user visible C preprocessor in DIR
                          install the user visible C preprocessor in DIR
                          (relative to PREFIX) as well as PREFIX/bin],
                          (relative to PREFIX) as well as PREFIX/bin],
[if test x$withval = xyes; then
[if test x$withval = xyes; then
  AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
  AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
elif test x$withval != xno; then
elif test x$withval != xno; then
  cpp_install_dir=$withval
  cpp_install_dir=$withval
fi])
fi])
# We would like to our source tree to be readonly.  However when releases or
# We would like to our source tree to be readonly.  However when releases or
# pre-releases are generated, the flex/bison generated files as well as the
# pre-releases are generated, the flex/bison generated files as well as the
# various formats of manuals need to be included along with the rest of the
# various formats of manuals need to be included along with the rest of the
# sources.  Therefore we have --enable-generated-files-in-srcdir to do
# sources.  Therefore we have --enable-generated-files-in-srcdir to do
# just that.
# just that.
AC_MSG_CHECKING([whether to place generated files in the source directory])
AC_MSG_CHECKING([whether to place generated files in the source directory])
  dnl generated-files-in-srcdir is disabled by default
  dnl generated-files-in-srcdir is disabled by default
  AC_ARG_ENABLE(generated-files-in-srcdir,
  AC_ARG_ENABLE(generated-files-in-srcdir,
[  --enable-generated-files-in-srcdir
[  --enable-generated-files-in-srcdir
                          put copies of generated files in source dir
                          put copies of generated files in source dir
                          intended for creating source tarballs for users
                          intended for creating source tarballs for users
                          without texinfo bison or flex.],
                          without texinfo bison or flex.],
      generated_files_in_srcdir=$enableval,
      generated_files_in_srcdir=$enableval,
      generated_files_in_srcdir=no)
      generated_files_in_srcdir=no)
AC_MSG_RESULT($generated_files_in_srcdir)
AC_MSG_RESULT($generated_files_in_srcdir)
if test "$generated_files_in_srcdir" = "yes"; then
if test "$generated_files_in_srcdir" = "yes"; then
  GENINSRC=''
  GENINSRC=''
else
else
  GENINSRC='#'
  GENINSRC='#'
fi
fi
AC_SUBST(GENINSRC)
AC_SUBST(GENINSRC)
# -------------------
# -------------------
# Find default linker
# Find default linker
# -------------------
# -------------------
# With GNU ld
# With GNU ld
AC_ARG_WITH(gnu-ld,
AC_ARG_WITH(gnu-ld,
[  --with-gnu-ld           arrange to work with GNU ld.],
[  --with-gnu-ld           arrange to work with GNU ld.],
gnu_ld_flag="$with_gnu_ld",
gnu_ld_flag="$with_gnu_ld",
gnu_ld_flag=no)
gnu_ld_flag=no)
# With pre-defined ld
# With pre-defined ld
AC_ARG_WITH(ld,
AC_ARG_WITH(ld,
[  --with-ld               arrange to use the specified ld (full pathname)],
[  --with-ld               arrange to use the specified ld (full pathname)],
DEFAULT_LINKER="$with_ld")
DEFAULT_LINKER="$with_ld")
if test x"${DEFAULT_LINKER+set}" = x"set"; then
if test x"${DEFAULT_LINKER+set}" = x"set"; then
  if test ! -x "$DEFAULT_LINKER"; then
  if test ! -x "$DEFAULT_LINKER"; then
    AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
    AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
    gnu_ld_flag=yes
    gnu_ld_flag=yes
  fi
  fi
  AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
  AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
        [Define to enable the use of a default linker.])
        [Define to enable the use of a default linker.])
fi
fi
AC_MSG_CHECKING([whether a default linker was specified])
AC_MSG_CHECKING([whether a default linker was specified])
if test x"${DEFAULT_LINKER+set}" = x"set"; then
if test x"${DEFAULT_LINKER+set}" = x"set"; then
  if test x"$gnu_ld_flag" = x"no"; then
  if test x"$gnu_ld_flag" = x"no"; then
    AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
    AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
  else
  else
    AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
    AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
  fi
  fi
else
else
  AC_MSG_RESULT(no)
  AC_MSG_RESULT(no)
fi
fi
# With demangler in GNU ld
# With demangler in GNU ld
AC_ARG_WITH(demangler-in-ld,
AC_ARG_WITH(demangler-in-ld,
[  --with-demangler-in-ld  try to use demangler in GNU ld.],
[  --with-demangler-in-ld  try to use demangler in GNU ld.],
demangler_in_ld="$with_demangler_in_ld",
demangler_in_ld="$with_demangler_in_ld",
demangler_in_ld=no)
demangler_in_ld=no)
# ----------------------
# ----------------------
# Find default assembler
# Find default assembler
# ----------------------
# ----------------------
# With GNU as
# With GNU as
AC_ARG_WITH(gnu-as,
AC_ARG_WITH(gnu-as,
[  --with-gnu-as           arrange to work with GNU as],
[  --with-gnu-as           arrange to work with GNU as],
gas_flag="$with_gnu_as",
gas_flag="$with_gnu_as",
gas_flag=no)
gas_flag=no)
AC_ARG_WITH(as,
AC_ARG_WITH(as,
[  --with-as               arrange to use the specified as (full pathname)],
[  --with-as               arrange to use the specified as (full pathname)],
DEFAULT_ASSEMBLER="$with_as")
DEFAULT_ASSEMBLER="$with_as")
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
  if test ! -x "$DEFAULT_ASSEMBLER"; then
  if test ! -x "$DEFAULT_ASSEMBLER"; then
    AC_MSG_ERROR([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
    AC_MSG_ERROR([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
  elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
  elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
    gas_flag=yes
    gas_flag=yes
  fi
  fi
  AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
  AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
        [Define to enable the use of a default assembler.])
        [Define to enable the use of a default assembler.])
fi
fi
AC_MSG_CHECKING([whether a default assembler was specified])
AC_MSG_CHECKING([whether a default assembler was specified])
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
  if test x"$gas_flag" = x"no"; then
  if test x"$gas_flag" = x"no"; then
    AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
    AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
  else
  else
    AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
    AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
  fi
  fi
else
else
  AC_MSG_RESULT(no)
  AC_MSG_RESULT(no)
fi
fi
# ---------------
# ---------------
# Find C compiler
# Find C compiler
# ---------------
# ---------------
# If a non-executable a.out is present (e.g. created by GNU as above even if
# If a non-executable a.out is present (e.g. created by GNU as above even if
# invoked with -v only), the IRIX 6 native ld just overwrites the existing
# invoked with -v only), the IRIX 6 native ld just overwrites the existing
# file, even when creating an executable, so an execution test fails.
# file, even when creating an executable, so an execution test fails.
# Remove possible default executable files to avoid this.
# Remove possible default executable files to avoid this.
#
#
# FIXME: This really belongs into AC_PROG_CC and can be removed once
# FIXME: This really belongs into AC_PROG_CC and can be removed once
# Autoconf includes it.
# Autoconf includes it.
rm -f a.out a.exe b.out
rm -f a.out a.exe b.out
# Find the native compiler
# Find the native compiler
AC_PROG_CC
AC_PROG_CC
AM_PROG_CC_C_O
AM_PROG_CC_C_O
# autoconf is lame and doesn't give us any substitution variable for this.
# autoconf is lame and doesn't give us any substitution variable for this.
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
  NO_MINUS_C_MINUS_O=yes
  NO_MINUS_C_MINUS_O=yes
else
else
  OUTPUT_OPTION='-o $@'
  OUTPUT_OPTION='-o $@'
fi
fi
AC_SUBST(NO_MINUS_C_MINUS_O)
AC_SUBST(NO_MINUS_C_MINUS_O)
AC_SUBST(OUTPUT_OPTION)
AC_SUBST(OUTPUT_OPTION)
# Remove the -O2: for historical reasons, unless bootstrapping we prefer
# Remove the -O2: for historical reasons, unless bootstrapping we prefer
# optimizations to be activated explicitly by the toplevel.
# optimizations to be activated explicitly by the toplevel.
case "$CC" in
case "$CC" in
  */prev-gcc/xgcc*) ;;
  */prev-gcc/xgcc*) ;;
  *) CFLAGS=`echo $CFLAGS | sed "s/-O[[s0-9]]* *//" ` ;;
  *) CFLAGS=`echo $CFLAGS | sed "s/-O[[s0-9]]* *//" ` ;;
esac
esac
AC_SUBST(CFLAGS)
AC_SUBST(CFLAGS)
# -------------------------
# -------------------------
# Check C compiler features
# Check C compiler features
# -------------------------
# -------------------------
AC_PROG_CPP
AC_PROG_CPP
AC_C_INLINE
AC_C_INLINE
# sizeof(char) is 1 by definition.
# sizeof(char) is 1 by definition.
AC_CHECK_SIZEOF(void *)
AC_CHECK_SIZEOF(void *)
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long)
AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
# ---------------------
# ---------------------
# Warnings and checking
# Warnings and checking
# ---------------------
# ---------------------
# Check $CC warning features (if it's GCC).
# Check $CC warning features (if it's GCC).
# We want to use -pedantic, but we don't want warnings about
# We want to use -pedantic, but we don't want warnings about
# * 'long long'
# * 'long long'
# * variadic macros
# * variadic macros
# * overlong strings
# * overlong strings
# So, we only use -pedantic if we can disable those warnings.
# So, we only use -pedantic if we can disable those warnings.
AC_CACHE_CHECK(
AC_CACHE_CHECK(
  [whether ${CC} accepts -Wno-long-long],
  [whether ${CC} accepts -Wno-long-long],
  [ac_cv_prog_cc_w_no_long_long],
  [ac_cv_prog_cc_w_no_long_long],
  [save_CFLAGS="$CFLAGS"
  [save_CFLAGS="$CFLAGS"
  CFLAGS="-Wno-long-long"
  CFLAGS="-Wno-long-long"
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
                    [ac_cv_prog_cc_w_no_long_long=yes],
                    [ac_cv_prog_cc_w_no_long_long=yes],
                    [ac_cv_prog_cc_w_no_long_long=no])
                    [ac_cv_prog_cc_w_no_long_long=no])
  CFLAGS="$save_CFLAGS"
  CFLAGS="$save_CFLAGS"
  ])
  ])
AC_CACHE_CHECK(
AC_CACHE_CHECK(
  [whether ${CC} accepts -Wno-variadic-macros],
  [whether ${CC} accepts -Wno-variadic-macros],
  [ac_cv_prog_cc_w_no_variadic_macros],
  [ac_cv_prog_cc_w_no_variadic_macros],
  [save_CFLAGS="$CFLAGS"
  [save_CFLAGS="$CFLAGS"
  CFLAGS="-Wno-variadic-macros"
  CFLAGS="-Wno-variadic-macros"
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
                    [ac_cv_prog_cc_w_no_variadic_macros=yes],
                    [ac_cv_prog_cc_w_no_variadic_macros=yes],
                    [ac_cv_prog_cc_w_no_variadic_macros=no])
                    [ac_cv_prog_cc_w_no_variadic_macros=no])
  CFLAGS="$save_CFLAGS"
  CFLAGS="$save_CFLAGS"
  ])
  ])
AC_CACHE_CHECK(
AC_CACHE_CHECK(
  [whether ${CC} accepts -Wno-overlength-strings],
  [whether ${CC} accepts -Wno-overlength-strings],
  [ac_cv_prog_cc_w_no_overlength_strings],
  [ac_cv_prog_cc_w_no_overlength_strings],
  [save_CFLAGS="$CFLAGS"
  [save_CFLAGS="$CFLAGS"
  CFLAGS="-Wno-overlength-strings"
  CFLAGS="-Wno-overlength-strings"
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
                    [ac_cv_prog_cc_w_no_overlength_strings=yes],
                    [ac_cv_prog_cc_w_no_overlength_strings=yes],
                    [ac_cv_prog_cc_w_no_overlength_strings=no])
                    [ac_cv_prog_cc_w_no_overlength_strings=no])
  CFLAGS="$save_CFLAGS"
  CFLAGS="$save_CFLAGS"
  ])
  ])
strict1_warn=
strict1_warn=
if test $ac_cv_prog_cc_w_no_long_long = yes \
if test $ac_cv_prog_cc_w_no_long_long = yes \
   && test $ac_cv_prog_cc_w_no_variadic_macros = yes \
   && test $ac_cv_prog_cc_w_no_variadic_macros = yes \
   && test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then
   && test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then
  strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
  strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
fi
fi
# Add -Wold-style-definition if it's accepted
# Add -Wold-style-definition if it's accepted
AC_CACHE_CHECK(
AC_CACHE_CHECK(
  [whether ${CC} accepts -Wold-style-definition],
  [whether ${CC} accepts -Wold-style-definition],
  [ac_cv_prog_cc_w_old_style_definition],
  [ac_cv_prog_cc_w_old_style_definition],
  [save_CFLAGS="$CFLAGS"
  [save_CFLAGS="$CFLAGS"
  CFLAGS="-Wold-style-definition"
  CFLAGS="-Wold-style-definition"
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
                    [ac_cv_prog_cc_w_old_style_definition=yes],
                    [ac_cv_prog_cc_w_old_style_definition=yes],
                    [ac_cv_prog_cc_w_old_style_definition=no])
                    [ac_cv_prog_cc_w_old_style_definition=no])
  CFLAGS="$save_CFLAGS"
  CFLAGS="$save_CFLAGS"
  ])
  ])
if test $ac_cv_prog_cc_w_old_style_definition = yes ; then
if test $ac_cv_prog_cc_w_old_style_definition = yes ; then
  strict1_warn="${strict1_warn} -Wold-style-definition"
  strict1_warn="${strict1_warn} -Wold-style-definition"
fi
fi
# Add -Wmissing-format-attribute if it's accepted
# Add -Wmissing-format-attribute if it's accepted
AC_CACHE_CHECK(
AC_CACHE_CHECK(
  [whether ${CC} accepts -Wmissing-format-attribute],
  [whether ${CC} accepts -Wmissing-format-attribute],
  [ac_cv_prog_cc_w_missing_format_attribute],
  [ac_cv_prog_cc_w_missing_format_attribute],
  [save_CFLAGS="$CFLAGS"
  [save_CFLAGS="$CFLAGS"
  CFLAGS="-Wmissing-format-attribute"
  CFLAGS="-Wmissing-format-attribute"
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
                    [ac_cv_prog_cc_w_missing_format_attribute=yes],
                    [ac_cv_prog_cc_w_missing_format_attribute=yes],
                    [ac_cv_prog_cc_w_missing_format_attribute=no])
                    [ac_cv_prog_cc_w_missing_format_attribute=no])
  CFLAGS="$save_CFLAGS"
  CFLAGS="$save_CFLAGS"
  ])
  ])
if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then
if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then
  strict1_warn="${strict1_warn} -Wmissing-format-attribute"
  strict1_warn="${strict1_warn} -Wmissing-format-attribute"
fi
fi
# Enable -Werror, period.
# Enable -Werror, period.
AC_ARG_ENABLE(werror_always,
AC_ARG_ENABLE(werror_always,
[  --enable-werror-always         enable -Werror always], [],
[  --enable-werror-always         enable -Werror always], [],
[enable_werror_always=no])
[enable_werror_always=no])
if test x${enable_werror_always} = xyes ; then
if test x${enable_werror_always} = xyes ; then
  strict1_warn="${strict1_warn} -Werror"
  strict1_warn="${strict1_warn} -Werror"
  WERROR=-Werror
  WERROR=-Werror
fi
fi
AC_SUBST(strict1_warn)
AC_SUBST(strict1_warn)
# Get C++ compatibility warning flag, if supported.
# Get C++ compatibility warning flag, if supported.
AC_CACHE_CHECK(
AC_CACHE_CHECK(
  [whether ${CC} accepts -Wc++-compat],
  [whether ${CC} accepts -Wc++-compat],
  [ac_cv_prog_cc_w_cxx_compat],
  [ac_cv_prog_cc_w_cxx_compat],
  [save_CFLAGS="$CFLAGS"
  [save_CFLAGS="$CFLAGS"
  CFLAGS="-Wc++-compat"
  CFLAGS="-Wc++-compat"
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
                    [ac_cv_prog_cc_w_cxx_compat=yes],
                    [ac_cv_prog_cc_w_cxx_compat=yes],
                    [ac_cv_prog_cc_w_cxx_compat=no])
                    [ac_cv_prog_cc_w_cxx_compat=no])
  CFLAGS="$save_CFLAGS"
  CFLAGS="$save_CFLAGS"
  ])
  ])
if test x${ac_cv_prog_cc_w_cxx_compat} = xyes; then
if test x${ac_cv_prog_cc_w_cxx_compat} = xyes; then
  cxx_compat_warn="-Wc++-compat"
  cxx_compat_warn="-Wc++-compat"
fi
fi
AC_SUBST(cxx_compat_warn)
AC_SUBST(cxx_compat_warn)
# If the native compiler is GCC, we can enable warnings even in stage1.
# If the native compiler is GCC, we can enable warnings even in stage1.
# That's useful for people building cross-compilers, or just running a
# That's useful for people building cross-compilers, or just running a
# quick `make'.
# quick `make'.
warn_cflags=
warn_cflags=
if test "x$GCC" = "xyes"; then
if test "x$GCC" = "xyes"; then
  warn_cflags='$(GCC_WARN_CFLAGS)'
  warn_cflags='$(GCC_WARN_CFLAGS)'
fi
fi
AC_SUBST(warn_cflags)
AC_SUBST(warn_cflags)
# Enable -Werror in bootstrap stage2 and later.
# Enable -Werror in bootstrap stage2 and later.
is_release=
is_release=
if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
  is_release=yes
  is_release=yes
fi
fi
AC_ARG_ENABLE(werror,
AC_ARG_ENABLE(werror,
[  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
[  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
[if test x$is_release = x ; then
[if test x$is_release = x ; then
  # Default to "yes" on development branches.
  # Default to "yes" on development branches.
  enable_werror=yes
  enable_werror=yes
else
else
  # Default to "no" on release branches.
  # Default to "no" on release branches.
  enable_werror=no
  enable_werror=no
fi])
fi])
if test x$enable_werror = xyes ; then
if test x$enable_werror = xyes ; then
  WERROR=-Werror
  WERROR=-Werror
fi
fi
AC_SUBST(WERROR)
AC_SUBST(WERROR)
# Enable expensive internal checks
# Enable expensive internal checks
AC_ARG_ENABLE(checking,
AC_ARG_ENABLE(checking,
[  --enable-checking[=LIST]
[  --enable-checking[=LIST]
                          enable expensive run-time checks.  With LIST,
                          enable expensive run-time checks.  With LIST,
                          enable only specific categories of checks.
                          enable only specific categories of checks.
                          Categories are: yes,no,all,none,release.
                          Categories are: yes,no,all,none,release.
                          Flags are: assert,fold,gc,gcac,misc,
                          Flags are: assert,fold,gc,gcac,misc,
                          rtlflag,rtl,runtime,tree,valgrind.],
                          rtlflag,rtl,runtime,tree,valgrind.],
[ac_checking_flags="${enableval}"],[
[ac_checking_flags="${enableval}"],[
# Determine the default checks.
# Determine the default checks.
if test x$is_release = x ; then
if test x$is_release = x ; then
  ac_checking_flags=yes
  ac_checking_flags=yes
else
else
  ac_checking_flags=release
  ac_checking_flags=release
fi])
fi])
ac_assert_checking=1
ac_assert_checking=1
ac_checking=
ac_checking=
ac_fold_checking=
ac_fold_checking=
ac_gc_checking=
ac_gc_checking=
ac_gc_always_collect=
ac_gc_always_collect=
ac_rtl_checking=
ac_rtl_checking=
ac_rtlflag_checking=
ac_rtlflag_checking=
ac_runtime_checking=1
ac_runtime_checking=1
ac_tree_checking=
ac_tree_checking=
ac_valgrind_checking=
ac_valgrind_checking=
IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
for check in $ac_checking_flags
for check in $ac_checking_flags
do
do
        case $check in
        case $check in
        # these set all the flags to specific states
        # these set all the flags to specific states
        yes)            ac_assert_checking=1 ; ac_checking=1 ;
        yes)            ac_assert_checking=1 ; ac_checking=1 ;
                        ac_fold_checking= ; ac_gc_checking=1 ;
                        ac_fold_checking= ; ac_gc_checking=1 ;
                        ac_gc_always_collect= ; ac_rtl_checking= ;
                        ac_gc_always_collect= ; ac_rtl_checking= ;
                        ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
                        ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
                        ac_tree_checking=1 ; ac_valgrind_checking= ;;
                        ac_tree_checking=1 ; ac_valgrind_checking= ;;
        no|none)        ac_assert_checking= ; ac_checking= ;
        no|none)        ac_assert_checking= ; ac_checking= ;
                        ac_fold_checking= ; ac_gc_checking= ;
                        ac_fold_checking= ; ac_gc_checking= ;
                        ac_gc_always_collect= ; ac_rtl_checking= ;
                        ac_gc_always_collect= ; ac_rtl_checking= ;
                        ac_rtlflag_checking= ; ac_runtime_checking= ;
                        ac_rtlflag_checking= ; ac_runtime_checking= ;
                        ac_tree_checking= ; ac_valgrind_checking= ;;
                        ac_tree_checking= ; ac_valgrind_checking= ;;
        all)            ac_assert_checking=1 ; ac_checking=1 ;
        all)            ac_assert_checking=1 ; ac_checking=1 ;
                        ac_fold_checking=1 ; ac_gc_checking=1 ;
                        ac_fold_checking=1 ; ac_gc_checking=1 ;
                        ac_gc_always_collect=1 ; ac_rtl_checking=1 ;
                        ac_gc_always_collect=1 ; ac_rtl_checking=1 ;
                        ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
                        ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
                        ac_tree_checking=1 ; ac_valgrind_checking= ;;
                        ac_tree_checking=1 ; ac_valgrind_checking= ;;
        release)        ac_assert_checking=1 ; ac_checking= ;
        release)        ac_assert_checking=1 ; ac_checking= ;
                        ac_fold_checking= ; ac_gc_checking= ;
                        ac_fold_checking= ; ac_gc_checking= ;
                        ac_gc_always_collect= ; ac_rtl_checking= ;
                        ac_gc_always_collect= ; ac_rtl_checking= ;
                        ac_rtlflag_checking= ; ac_runtime_checking=1 ;
                        ac_rtlflag_checking= ; ac_runtime_checking=1 ;
                        ac_tree_checking= ; ac_valgrind_checking= ;;
                        ac_tree_checking= ; ac_valgrind_checking= ;;
        # these enable particular checks
        # these enable particular checks
        assert)         ac_assert_checking=1 ;;
        assert)         ac_assert_checking=1 ;;
        fold)           ac_fold_checking=1 ;;
        fold)           ac_fold_checking=1 ;;
        gc)             ac_gc_checking=1 ;;
        gc)             ac_gc_checking=1 ;;
        gcac)           ac_gc_always_collect=1 ;;
        gcac)           ac_gc_always_collect=1 ;;
        misc)           ac_checking=1 ;;
        misc)           ac_checking=1 ;;
        rtl)            ac_rtl_checking=1 ;;
        rtl)            ac_rtl_checking=1 ;;
        rtlflag)        ac_rtlflag_checking=1 ;;
        rtlflag)        ac_rtlflag_checking=1 ;;
        runtime)        ac_runtime_checking=1 ;;
        runtime)        ac_runtime_checking=1 ;;
        tree)           ac_tree_checking=1 ;;
        tree)           ac_tree_checking=1 ;;
        valgrind)       ac_valgrind_checking=1 ;;
        valgrind)       ac_valgrind_checking=1 ;;
        *)      AC_MSG_ERROR(unknown check category $check) ;;
        *)      AC_MSG_ERROR(unknown check category $check) ;;
        esac
        esac
done
done
IFS="$ac_save_IFS"
IFS="$ac_save_IFS"
nocommon_flag=""
nocommon_flag=""
if test x$ac_checking != x ; then
if test x$ac_checking != x ; then
  AC_DEFINE(ENABLE_CHECKING, 1,
  AC_DEFINE(ENABLE_CHECKING, 1,
[Define if you want more run-time sanity checks.  This one gets a grab
[Define if you want more run-time sanity checks.  This one gets a grab
   bag of miscellaneous but relatively cheap checks.])
   bag of miscellaneous but relatively cheap checks.])
  nocommon_flag=-fno-common
  nocommon_flag=-fno-common
fi
fi
AC_SUBST(nocommon_flag)
AC_SUBST(nocommon_flag)
if test x$ac_assert_checking != x ; then
if test x$ac_assert_checking != x ; then
  AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
  AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
[Define if you want assertions enabled.  This is a cheap check.])
[Define if you want assertions enabled.  This is a cheap check.])
fi
fi
GCC_TARGET_TEMPLATE(ENABLE_RUNTIME_CHECKING)
GCC_TARGET_TEMPLATE(ENABLE_RUNTIME_CHECKING)
if test x$ac_runtime_checking != x ; then
if test x$ac_runtime_checking != x ; then
  AC_DEFINE(ENABLE_RUNTIME_CHECKING, 1,
  AC_DEFINE(ENABLE_RUNTIME_CHECKING, 1,
[Define if you want runtime assertions enabled.  This is a cheap check.])
[Define if you want runtime assertions enabled.  This is a cheap check.])
fi
fi
if test x$ac_tree_checking != x ; then
if test x$ac_tree_checking != x ; then
  AC_DEFINE(ENABLE_TREE_CHECKING, 1,
  AC_DEFINE(ENABLE_TREE_CHECKING, 1,
[Define if you want all operations on trees (the basic data
[Define if you want all operations on trees (the basic data
   structure of the front ends) to be checked for dynamic type safety
   structure of the front ends) to be checked for dynamic type safety
   at runtime.  This is moderately expensive.  The tree browser debugging
   at runtime.  This is moderately expensive.  The tree browser debugging
   routines will also be enabled by this option.
   routines will also be enabled by this option.
   ])
   ])
  TREEBROWSER=tree-browser.o
  TREEBROWSER=tree-browser.o
fi
fi
AC_SUBST(TREEBROWSER)
AC_SUBST(TREEBROWSER)
if test x$ac_rtl_checking != x ; then
if test x$ac_rtl_checking != x ; then
  AC_DEFINE(ENABLE_RTL_CHECKING, 1,
  AC_DEFINE(ENABLE_RTL_CHECKING, 1,
[Define if you want all operations on RTL (the basic data structure
[Define if you want all operations on RTL (the basic data structure
   of the optimizer and back end) to be checked for dynamic type safety
   of the optimizer and back end) to be checked for dynamic type safety
   at runtime.  This is quite expensive.])
   at runtime.  This is quite expensive.])
fi
fi
if test x$ac_rtlflag_checking != x ; then
if test x$ac_rtlflag_checking != x ; then
  AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
  AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
[Define if you want RTL flag accesses to be checked against the RTL
[Define if you want RTL flag accesses to be checked against the RTL
   codes that are supported for each access macro.  This is relatively
   codes that are supported for each access macro.  This is relatively
   cheap.])
   cheap.])
fi
fi
if test x$ac_gc_checking != x ; then
if test x$ac_gc_checking != x ; then
  AC_DEFINE(ENABLE_GC_CHECKING, 1,
  AC_DEFINE(ENABLE_GC_CHECKING, 1,
[Define if you want the garbage collector to do object poisoning and
[Define if you want the garbage collector to do object poisoning and
   other memory allocation checks.  This is quite expensive.])
   other memory allocation checks.  This is quite expensive.])
fi
fi
if test x$ac_gc_always_collect != x ; then
if test x$ac_gc_always_collect != x ; then
  AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
  AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
[Define if you want the garbage collector to operate in maximally
[Define if you want the garbage collector to operate in maximally
   paranoid mode, validating the entire heap and collecting garbage at
   paranoid mode, validating the entire heap and collecting garbage at
   every opportunity.  This is extremely expensive.])
   every opportunity.  This is extremely expensive.])
fi
fi
if test x$ac_fold_checking != x ; then
if test x$ac_fold_checking != x ; then
  AC_DEFINE(ENABLE_FOLD_CHECKING, 1,
  AC_DEFINE(ENABLE_FOLD_CHECKING, 1,
[Define if you want fold checked that it never destructs its argument.
[Define if you want fold checked that it never destructs its argument.
   This is quite expensive.])
   This is quite expensive.])
fi
fi
valgrind_path_defines=
valgrind_path_defines=
valgrind_command=
valgrind_command=
dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
dnl # an if statement.  This was the source of very frustrating bugs
dnl # an if statement.  This was the source of very frustrating bugs
dnl # in converting to autoconf 2.5x!
dnl # in converting to autoconf 2.5x!
AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
if test x$ac_valgrind_checking != x ; then
if test x$ac_valgrind_checking != x ; then
  # It is certainly possible that there's valgrind but no valgrind.h.
  # It is certainly possible that there's valgrind but no valgrind.h.
  # GCC relies on making annotations so we must have both.
  # GCC relies on making annotations so we must have both.
  AC_MSG_CHECKING(for VALGRIND_DISCARD in )
  AC_MSG_CHECKING(for VALGRIND_DISCARD in )
  AC_PREPROC_IFELSE([AC_LANG_SOURCE(
  AC_PREPROC_IFELSE([AC_LANG_SOURCE(
    [[#include 
    [[#include 
#ifndef VALGRIND_DISCARD
#ifndef VALGRIND_DISCARD
#error VALGRIND_DISCARD not defined
#error VALGRIND_DISCARD not defined
#endif]])],
#endif]])],
  [gcc_cv_header_valgrind_memcheck_h=yes],
  [gcc_cv_header_valgrind_memcheck_h=yes],
  [gcc_cv_header_valgrind_memcheck_h=no])
  [gcc_cv_header_valgrind_memcheck_h=no])
  AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
  AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
  AC_MSG_CHECKING(for VALGRIND_DISCARD in )
  AC_MSG_CHECKING(for VALGRIND_DISCARD in )
  AC_PREPROC_IFELSE([AC_LANG_SOURCE(
  AC_PREPROC_IFELSE([AC_LANG_SOURCE(
    [[#include 
    [[#include 
#ifndef VALGRIND_DISCARD
#ifndef VALGRIND_DISCARD
#error VALGRIND_DISCARD not defined
#error VALGRIND_DISCARD not defined
#endif]])],
#endif]])],
  [gcc_cv_header_memcheck_h=yes],
  [gcc_cv_header_memcheck_h=yes],
  [gcc_cv_header_memcheck_h=no])
  [gcc_cv_header_memcheck_h=no])
  AC_MSG_RESULT($gcc_cv_header_memcheck_h)
  AC_MSG_RESULT($gcc_cv_header_memcheck_h)
  AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
  AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
        [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
        [$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
  if test "x$valgrind_path" = "x" \
  if test "x$valgrind_path" = "x" \
    || (test $have_valgrind_h = no \
    || (test $have_valgrind_h = no \
        && test $gcc_cv_header_memcheck_h = no \
        && test $gcc_cv_header_memcheck_h = no \
        && test $gcc_cv_header_valgrind_memcheck_h = no); then
        && test $gcc_cv_header_valgrind_memcheck_h = no); then
        AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h])
        AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h])
  fi
  fi
  valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
  valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
  valgrind_command="$valgrind_path -q"
  valgrind_command="$valgrind_path -q"
  AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
  AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
[Define if you want to run subprograms and generated programs
[Define if you want to run subprograms and generated programs
   through valgrind (a memory checker).  This is extremely expensive.])
   through valgrind (a memory checker).  This is extremely expensive.])
  if test $gcc_cv_header_valgrind_memcheck_h = yes; then
  if test $gcc_cv_header_valgrind_memcheck_h = yes; then
    AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
    AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
        [Define if valgrind's valgrind/memcheck.h header is installed.])
        [Define if valgrind's valgrind/memcheck.h header is installed.])
  fi
  fi
  if test $gcc_cv_header_memcheck_h = yes; then
  if test $gcc_cv_header_memcheck_h = yes; then
    AC_DEFINE(HAVE_MEMCHECK_H, 1,
    AC_DEFINE(HAVE_MEMCHECK_H, 1,
        [Define if valgrind's memcheck.h header is installed.])
        [Define if valgrind's memcheck.h header is installed.])
  fi
  fi
fi
fi
AC_SUBST(valgrind_path_defines)
AC_SUBST(valgrind_path_defines)
AC_SUBST(valgrind_command)
AC_SUBST(valgrind_command)
AC_ARG_ENABLE(mapped-location,
AC_ARG_ENABLE(mapped-location,
[  --enable-mapped-location   location_t is fileline integer cookie],,
[  --enable-mapped-location   location_t is fileline integer cookie],,
enable_mapped_location=no)
enable_mapped_location=no)
if test "$enable_mapped_location" = yes ; then
if test "$enable_mapped_location" = yes ; then
  AC_DEFINE(USE_MAPPED_LOCATION, 1,
  AC_DEFINE(USE_MAPPED_LOCATION, 1,
[Define if location_t is fileline integer cookie.])
[Define if location_t is fileline integer cookie.])
fi
fi
# Enable code coverage collection
# Enable code coverage collection
AC_ARG_ENABLE(coverage,
AC_ARG_ENABLE(coverage,
[  --enable-coverage[=LEVEL]
[  --enable-coverage[=LEVEL]
                          enable compiler's code coverage collection.
                          enable compiler's code coverage collection.
                          Use to measure compiler performance and locate
                          Use to measure compiler performance and locate
                          unused parts of the compiler. With LEVEL, specify
                          unused parts of the compiler. With LEVEL, specify
                          optimization. Values are opt, noopt,
                          optimization. Values are opt, noopt,
                          default is noopt],
                          default is noopt],
[case "${enableval}" in
[case "${enableval}" in
  yes|noopt)
  yes|noopt)
    coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0"
    coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0"
    ;;
    ;;
  opt)
  opt)
    coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2"
    coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2"
    ;;
    ;;
  no)
  no)
    # a.k.a. --disable-coverage
    # a.k.a. --disable-coverage
    coverage_flags=""
    coverage_flags=""
    ;;
    ;;
  *)
  *)
    AC_MSG_ERROR(unknown coverage setting $enableval)
    AC_MSG_ERROR(unknown coverage setting $enableval)
    ;;
    ;;
esac],
esac],
[coverage_flags=""])
[coverage_flags=""])
AC_SUBST(coverage_flags)
AC_SUBST(coverage_flags)
AC_ARG_ENABLE(gather-detailed-mem-stats,
AC_ARG_ENABLE(gather-detailed-mem-stats,
[  --enable-gather-detailed-mem-stats         enable detailed memory allocation stats gathering], [],
[  --enable-gather-detailed-mem-stats         enable detailed memory allocation stats gathering], [],
[enable_gather_detailed_mem_stats=no])
[enable_gather_detailed_mem_stats=no])
if test x$enable_gather_detailed_mem_stats = xyes ; then
if test x$enable_gather_detailed_mem_stats = xyes ; then
  AC_DEFINE(GATHER_STATISTICS, 1,
  AC_DEFINE(GATHER_STATISTICS, 1,
        [Define to enable detailed memory allocation stats gathering.])
        [Define to enable detailed memory allocation stats gathering.])
fi
fi
# -------------------------------
# -------------------------------
# Miscenalleous configure options
# Miscenalleous configure options
# -------------------------------
# -------------------------------
# With stabs
# With stabs
AC_ARG_WITH(stabs,
AC_ARG_WITH(stabs,
[  --with-stabs            arrange to use stabs instead of host debug format],
[  --with-stabs            arrange to use stabs instead of host debug format],
stabs="$with_stabs",
stabs="$with_stabs",
stabs=no)
stabs=no)
# Determine whether or not multilibs are enabled.
# Determine whether or not multilibs are enabled.
AC_ARG_ENABLE(multilib,
AC_ARG_ENABLE(multilib,
[  --enable-multilib       enable library support for multiple ABIs],
[  --enable-multilib       enable library support for multiple ABIs],
[], [enable_multilib=yes])
[], [enable_multilib=yes])
AC_SUBST(enable_multilib)
AC_SUBST(enable_multilib)
# Enable __cxa_atexit for C++.
# Enable __cxa_atexit for C++.
AC_ARG_ENABLE(__cxa_atexit,
AC_ARG_ENABLE(__cxa_atexit,
[  --enable-__cxa_atexit   enable __cxa_atexit for C++],
[  --enable-__cxa_atexit   enable __cxa_atexit for C++],
[], [])
[], [])
# Enable C extension for decimal float if target supports it.
# Enable C extension for decimal float if target supports it.
AC_ARG_ENABLE(decimal-float,
AC_ARG_ENABLE(decimal-float,
[  --enable-decimal-float  enable decimal float extension to C],
[  --enable-decimal-float  enable decimal float extension to C],
[
[
  if test x$enablevar = xyes ; then
  if test x$enablevar = xyes ; then
    case $target in
    case $target in
    powerpc*-*-linux* | i?86*-*-linux*)
    powerpc*-*-linux* | i?86*-*-linux*)
      enable_decimal_float=yes
      enable_decimal_float=yes
      ;;
      ;;
    *)
    *)
      AC_MSG_WARN(decimal float is not supported for this target, ignored)
      AC_MSG_WARN(decimal float is not supported for this target, ignored)
      enable_decimal_float=no
      enable_decimal_float=no
      ;;
      ;;
    esac
    esac
  fi
  fi
], [enable_decimal_float=no])
], [enable_decimal_float=no])
AC_SUBST(enable_decimal_float)
AC_SUBST(enable_decimal_float)
dfp=`if test $enable_decimal_float = yes; then echo 1; else echo 0; fi`
dfp=`if test $enable_decimal_float = yes; then echo 1; else echo 0; fi`
AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
[Define to 1 to enable decimal float extension to C.])
[Define to 1 to enable decimal float extension to C.])
# Enable threads
# Enable threads
# Pass with no value to take the default
# Pass with no value to take the default
# Pass with a value to specify a thread package
# Pass with a value to specify a thread package
AC_ARG_ENABLE(threads,
AC_ARG_ENABLE(threads,
[  --enable-threads        enable thread usage for target GCC
[  --enable-threads        enable thread usage for target GCC
  --enable-threads=LIB    use LIB thread package for target GCC],,
  --enable-threads=LIB    use LIB thread package for target GCC],,
[enable_threads=''])
[enable_threads=''])
AC_ARG_ENABLE(tls,
AC_ARG_ENABLE(tls,
[  --enable-tls            enable or disable generation of tls code
[  --enable-tls            enable or disable generation of tls code
                          overriding the assembler check for tls support],
                          overriding the assembler check for tls support],
[
[
  case $enable_tls in
  case $enable_tls in
    yes | no) ;;
    yes | no) ;;
    *) AC_MSG_ERROR(['$enable_tls' is an invalid value for --enable-tls.
    *) AC_MSG_ERROR(['$enable_tls' is an invalid value for --enable-tls.
Valid choices are 'yes' and 'no'.]) ;;
Valid choices are 'yes' and 'no'.]) ;;
  esac
  esac
], [enable_tls=''])
], [enable_tls=''])
AC_ARG_ENABLE(objc-gc,
AC_ARG_ENABLE(objc-gc,
[  --enable-objc-gc       enable the use of Boehm's garbage collector with
[  --enable-objc-gc       enable the use of Boehm's garbage collector with
                          the GNU Objective-C runtime],
                          the GNU Objective-C runtime],
if test x$enable_objc_gc = xno; then
if test x$enable_objc_gc = xno; then
        objc_boehm_gc=''
        objc_boehm_gc=''
else
else
        objc_boehm_gc=1
        objc_boehm_gc=1
fi,
fi,
objc_boehm_gc='')
objc_boehm_gc='')
AC_ARG_WITH(dwarf2,
AC_ARG_WITH(dwarf2,
[  --with-dwarf2           force the default debug format to be DWARF 2],
[  --with-dwarf2           force the default debug format to be DWARF 2],
dwarf2="$with_dwarf2",
dwarf2="$with_dwarf2",
dwarf2=no)
dwarf2=no)
AC_ARG_ENABLE(shared,
AC_ARG_ENABLE(shared,
[  --disable-shared        don't provide a shared libgcc],
[  --disable-shared        don't provide a shared libgcc],
[
[
  case $enable_shared in
  case $enable_shared in
  yes | no) ;;
  yes | no) ;;
  *)
  *)
    enable_shared=no
    enable_shared=no
    IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
    IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
    for pkg in $enableval; do
    for pkg in $enableval; do
      if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
      if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
        enable_shared=yes
        enable_shared=yes
      fi
      fi
    done
    done
    IFS="$ac_save_ifs"
    IFS="$ac_save_ifs"
    ;;
    ;;
  esac
  esac
], [enable_shared=yes])
], [enable_shared=yes])
AC_SUBST(enable_shared)
AC_SUBST(enable_shared)
AC_ARG_WITH(build-sysroot,
AC_ARG_WITH(build-sysroot,
  [  --with-build-sysroot=sysroot
  [  --with-build-sysroot=sysroot
                          use sysroot as the system root during the build])
                          use sysroot as the system root during the build])
AC_ARG_WITH(sysroot,
AC_ARG_WITH(sysroot,
[  --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
[  --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
[
[
 case ${with_sysroot} in
 case ${with_sysroot} in
 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
 esac
 esac
 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
 CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
 CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
 if test "x$exec_prefix" = xNONE; then
 if test "x$exec_prefix" = xNONE; then
  if test "x$prefix" = xNONE; then
  if test "x$prefix" = xNONE; then
   test_prefix=/usr/local
   test_prefix=/usr/local
  else
  else
   test_prefix=$prefix
   test_prefix=$prefix
  fi
  fi
 else
 else
  test_prefix=$exec_prefix
  test_prefix=$exec_prefix
 fi
 fi
 case ${TARGET_SYSTEM_ROOT} in
 case ${TARGET_SYSTEM_ROOT} in
 "${test_prefix}"|"${test_prefix}/"*|\
 "${test_prefix}"|"${test_prefix}/"*|\
 '${exec_prefix}'|'${exec_prefix}/'*)
 '${exec_prefix}'|'${exec_prefix}/'*)
   t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
   t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
   TARGET_SYSTEM_ROOT_DEFINE="$t"
   TARGET_SYSTEM_ROOT_DEFINE="$t"
   ;;
   ;;
 esac
 esac
], [
], [
 TARGET_SYSTEM_ROOT=
 TARGET_SYSTEM_ROOT=
 TARGET_SYSTEM_ROOT_DEFINE=
 TARGET_SYSTEM_ROOT_DEFINE=
 CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
 CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
])
])
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
# Build with intermodule optimisations
# Build with intermodule optimisations
AC_ARG_ENABLE(intermodule,
AC_ARG_ENABLE(intermodule,
[  --enable-intermodule    build the compiler in one step],
[  --enable-intermodule    build the compiler in one step],
[case ${enable_intermodule} in
[case ${enable_intermodule} in
  yes) onestep="-onestep";;
  yes) onestep="-onestep";;
  *) onestep="";;
  *) onestep="";;
esac],
esac],
[onestep=""])
[onestep=""])
AC_SUBST(onestep)
AC_SUBST(onestep)
# Sanity check enable_languages in case someone does not run the toplevel
# Sanity check enable_languages in case someone does not run the toplevel
# configure # script.
# configure # script.
AC_ARG_ENABLE(languages,
AC_ARG_ENABLE(languages,
[  --enable-languages=LIST specify which front-ends to build],
[  --enable-languages=LIST specify which front-ends to build],
[case ,${enable_languages}, in
[case ,${enable_languages}, in
       ,,|,yes,)
       ,,|,yes,)
                # go safe -- we cannot be much sure without the toplevel
                # go safe -- we cannot be much sure without the toplevel
                # configure's
                # configure's
                # analysis of which target libs are present and usable
                # analysis of which target libs are present and usable
                enable_languages=c
                enable_languages=c
                ;;
                ;;
         *,all,*)
         *,all,*)
                AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
                AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
                ;;
                ;;
        *,c,*)
        *,c,*)
                ;;
                ;;
        *)
        *)
                enable_languages=c,${enable_languages}
                enable_languages=c,${enable_languages}
                ;;
                ;;
esac],
esac],
[enable_languages=c])
[enable_languages=c])
# Used by documentation targets
# Used by documentation targets
AC_SUBST(datarootdir)
AC_SUBST(datarootdir)
AC_SUBST(docdir)
AC_SUBST(docdir)
AC_SUBST(htmldir)
AC_SUBST(htmldir)
# -------------------------
# -------------------------
# Checks for other programs
# Checks for other programs
# -------------------------
# -------------------------
AC_PROG_MAKE_SET
AC_PROG_MAKE_SET
# Find some useful tools
# Find some useful tools
AC_PROG_AWK
AC_PROG_AWK
# We need awk to create options.c and options.h.
# We need awk to create options.c and options.h.
# Bail out if it's missing.
# Bail out if it's missing.
case ${AWK} in
case ${AWK} in
  "") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
  "") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
esac
esac
gcc_AC_PROG_LN_S
gcc_AC_PROG_LN_S
ACX_PROG_LN($LN_S)
ACX_PROG_LN($LN_S)
AC_PROG_RANLIB
AC_PROG_RANLIB
case "${host}" in
case "${host}" in
*-*-darwin*)
*-*-darwin*)
  # By default, the Darwin ranlib will not treat common symbols as
  # By default, the Darwin ranlib will not treat common symbols as
  # definitions when  building the archive table of contents.  Other
  # definitions when  building the archive table of contents.  Other
  # ranlibs do that; pass an option to the Darwin ranlib that makes
  # ranlibs do that; pass an option to the Darwin ranlib that makes
  # it behave similarly.
  # it behave similarly.
  ranlib_flags="-c"
  ranlib_flags="-c"
  ;;
  ;;
*)
*)
  ranlib_flags=""
  ranlib_flags=""
esac
esac
AC_SUBST(ranlib_flags)
AC_SUBST(ranlib_flags)
gcc_AC_PROG_INSTALL
gcc_AC_PROG_INSTALL
# See if cmp has --ignore-initial.
# See if cmp has --ignore-initial.
gcc_AC_PROG_CMP_IGNORE_INITIAL
gcc_AC_PROG_CMP_IGNORE_INITIAL
# See if we have the mktemp command.
# See if we have the mktemp command.
AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing"
MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing"
# See if makeinfo has been installed and is modern enough
# See if makeinfo has been installed and is modern enough
# that we can use it.
# that we can use it.
gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
  [GNU texinfo.* \([0-9][0-9.]*\)],
  [GNU texinfo.* \([0-9][0-9.]*\)],
  [4.[4-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*])
  [4.[4-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*])
if test $gcc_cv_prog_makeinfo_modern = no; then
if test $gcc_cv_prog_makeinfo_modern = no; then
  MAKEINFO="$MISSING makeinfo"
  MAKEINFO="$MISSING makeinfo"
  AC_MSG_WARN([
  AC_MSG_WARN([
*** Makeinfo is missing or too old.
*** Makeinfo is missing or too old.
*** Info documentation will not be built.])
*** Info documentation will not be built.])
  BUILD_INFO=
  BUILD_INFO=
else
else
  BUILD_INFO=info
  BUILD_INFO=info
fi
fi
AC_SUBST(BUILD_INFO)
AC_SUBST(BUILD_INFO)
# Is pod2man recent enough to regenerate manpages?
# Is pod2man recent enough to regenerate manpages?
AC_MSG_CHECKING([for recent Pod::Man])
AC_MSG_CHECKING([for recent Pod::Man])
if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
  AC_MSG_RESULT(yes)
  AC_MSG_RESULT(yes)
  GENERATED_MANPAGES=generated-manpages
  GENERATED_MANPAGES=generated-manpages
else
else
  AC_MSG_RESULT(no)
  AC_MSG_RESULT(no)
  GENERATED_MANPAGES=
  GENERATED_MANPAGES=
fi
fi
AC_SUBST(GENERATED_MANPAGES)
AC_SUBST(GENERATED_MANPAGES)
# How about lex?
# How about lex?
dnl Don't use AC_PROG_LEX; we insist on flex.
dnl Don't use AC_PROG_LEX; we insist on flex.
dnl LEXLIB is not useful in gcc.
dnl LEXLIB is not useful in gcc.
AC_CHECK_PROGS([FLEX], flex, [$MISSING flex])
AC_CHECK_PROGS([FLEX], flex, [$MISSING flex])
# Bison?
# Bison?
AC_CHECK_PROGS([BISON], bison, [$MISSING bison])
AC_CHECK_PROGS([BISON], bison, [$MISSING bison])
# Binutils are not build modules, unlike bison/flex/makeinfo.  So we
# Binutils are not build modules, unlike bison/flex/makeinfo.  So we
# check for build == host before using them.
# check for build == host before using them.
# NM
# NM
if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
  && test -d ../binutils ; then
  && test -d ../binutils ; then
  NM='$(objdir)/../binutils/nm-new'
  NM='$(objdir)/../binutils/nm-new'
else
else
  AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm)
  AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm)
fi
fi
# AR
# AR
if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
  && test -d ../binutils ; then
  && test -d ../binutils ; then
  AR='$(objdir)/../binutils/ar'
  AR='$(objdir)/../binutils/ar'
else
else
  AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar)
  AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar)
fi
fi
# --------------------
# --------------------
# Checks for C headers
# Checks for C headers
# --------------------
# --------------------
AC_MSG_CHECKING(for GNU C library)
AC_MSG_CHECKING(for GNU C library)
AC_CACHE_VAL(gcc_cv_glibc,
AC_CACHE_VAL(gcc_cv_glibc,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
  [[#include ]], [[
  [[#include ]], [[
#if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
#if ! (defined __GLIBC__ || defined __GNU_LIBRARY__)
#error Not a GNU C library system
#error Not a GNU C library system
#endif]])],
#endif]])],
  [gcc_cv_glibc=yes],
  [gcc_cv_glibc=yes],
  [gcc_cv_glibc=no])])
  [gcc_cv_glibc=no])])
AC_MSG_RESULT($gcc_cv_glibc)
AC_MSG_RESULT($gcc_cv_glibc)
if test $gcc_cv_glibc = yes; then
if test $gcc_cv_glibc = yes; then
  AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
  AC_DEFINE(_GNU_SOURCE, 1, [Always define this when using the GNU C Library])
fi
fi
# Need to reject headers which give warnings, so that the -Werror bootstrap
# Need to reject headers which give warnings, so that the -Werror bootstrap
# works later. *sigh*  This needs to come before all header checks.
# works later. *sigh*  This needs to come before all header checks.
AC_PROG_CPP_WERROR
AC_PROG_CPP_WERROR
AC_HEADER_STDC
AC_HEADER_STDC
AC_HEADER_TIME
AC_HEADER_TIME
ACX_HEADER_STRING
ACX_HEADER_STRING
AC_HEADER_SYS_WAIT
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
                 fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
                 fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
                 sys/resource.h sys/param.h sys/times.h sys/stat.h \
                 sys/resource.h sys/param.h sys/times.h sys/stat.h \
                 direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
                 direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
# Check for thread headers.
# Check for thread headers.
AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
# These tests can't be done till we know if we have limits.h.
# These tests can't be done till we know if we have limits.h.
gcc_AC_C_CHAR_BIT
gcc_AC_C_CHAR_BIT
AC_C_BIGENDIAN
AC_C_BIGENDIAN
# --------
# --------
# UNSORTED
# UNSORTED
# --------
# --------
# Stage specific cflags for build.
# Stage specific cflags for build.
stage1_cflags=
stage1_cflags=
case $build in
case $build in
vax-*-*)
vax-*-*)
  if test x$GCC = xyes
  if test x$GCC = xyes
  then
  then
    stage1_cflags="-Wa,-J"
    stage1_cflags="-Wa,-J"
  else
  else
    stage1_cflags="-J"
    stage1_cflags="-J"
  fi
  fi
  ;;
  ;;
esac
esac
AC_SUBST(stage1_cflags)
AC_SUBST(stage1_cflags)
# These libraries may be used by collect2.
# These libraries may be used by collect2.
# We may need a special search path to get them linked.
# We may need a special search path to get them linked.
AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
[save_LIBS="$LIBS"
[save_LIBS="$LIBS"
for libs in '' -lld -lmld \
for libs in '' -lld -lmld \
                '-L/usr/lib/cmplrs/cc2.11 -lmld' \
                '-L/usr/lib/cmplrs/cc2.11 -lmld' \
                '-L/usr/lib/cmplrs/cc3.11 -lmld'
                '-L/usr/lib/cmplrs/cc3.11 -lmld'
do
do
        LIBS="$libs"
        LIBS="$libs"
        AC_TRY_LINK_FUNC(ldopen,
        AC_TRY_LINK_FUNC(ldopen,
                [gcc_cv_collect2_libs="$libs"; break])
                [gcc_cv_collect2_libs="$libs"; break])
done
done
LIBS="$save_LIBS"
LIBS="$save_LIBS"
test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
case $gcc_cv_collect2_libs in
case $gcc_cv_collect2_libs in
        "none required")        ;;
        "none required")        ;;
        *)      COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
        *)      COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
esac
esac
AC_SUBST(COLLECT2_LIBS)
AC_SUBST(COLLECT2_LIBS)
# When building Ada code on Alpha, we need exc_resume which is usually in
# When building Ada code on Alpha, we need exc_resume which is usually in
# -lexc.  So test for it.
# -lexc.  So test for it.
save_LIBS="$LIBS"
save_LIBS="$LIBS"
LIBS=
LIBS=
AC_SEARCH_LIBS(exc_resume, exc)
AC_SEARCH_LIBS(exc_resume, exc)
GNAT_LIBEXC="$LIBS"
GNAT_LIBEXC="$LIBS"
LIBS="$save_LIBS"
LIBS="$save_LIBS"
AC_SUBST(GNAT_LIBEXC)
AC_SUBST(GNAT_LIBEXC)
# Some systems put ldexp and frexp in libm instead of libc; assume
# Some systems put ldexp and frexp in libm instead of libc; assume
# they're both in the same place.  jcf-dump needs them.
# they're both in the same place.  jcf-dump needs them.
save_LIBS="$LIBS"
save_LIBS="$LIBS"
LIBS=
LIBS=
AC_SEARCH_LIBS(ldexp, m)
AC_SEARCH_LIBS(ldexp, m)
LDEXP_LIB="$LIBS"
LDEXP_LIB="$LIBS"
LIBS="$save_LIBS"
LIBS="$save_LIBS"
AC_SUBST(LDEXP_LIB)
AC_SUBST(LDEXP_LIB)
# Use  only if it exists,
# Use  only if it exists,
# doesn't clash with , and declares intmax_t.
# doesn't clash with , and declares intmax_t.
AC_MSG_CHECKING(for inttypes.h)
AC_MSG_CHECKING(for inttypes.h)
AC_CACHE_VAL(gcc_cv_header_inttypes_h,
AC_CACHE_VAL(gcc_cv_header_inttypes_h,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[#include 
[[#include 
#include ]],
#include ]],
  [[intmax_t i = -1;]])],
  [[intmax_t i = -1;]])],
  [gcc_cv_header_inttypes_h=yes],
  [gcc_cv_header_inttypes_h=yes],
  [gcc_cv_header_inttypes_h=no])])
  [gcc_cv_header_inttypes_h=no])])
AC_MSG_RESULT($gcc_cv_header_inttypes_h)
AC_MSG_RESULT($gcc_cv_header_inttypes_h)
if test $gcc_cv_header_inttypes_h = yes; then
if test $gcc_cv_header_inttypes_h = yes; then
  AC_DEFINE(HAVE_INTTYPES_H, 1,
  AC_DEFINE(HAVE_INTTYPES_H, 1,
        [Define if you have a working  header file.])
        [Define if you have a working  header file.])
fi
fi
dnl Disabled until we have a complete test for buggy enum bitfields.
dnl Disabled until we have a complete test for buggy enum bitfields.
dnl gcc_AC_C_ENUM_BF_UNSIGNED
dnl gcc_AC_C_ENUM_BF_UNSIGNED
define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
  ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
  ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
  fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
  fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
  fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
  fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
  putchar_unlocked putc_unlocked)
  putchar_unlocked putc_unlocked)
AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \
        sysconf strsignal getrusage nl_langinfo scandir alphasort \
        sysconf strsignal getrusage nl_langinfo scandir alphasort \
        gettimeofday mbstowcs wcswidth mmap mincore setlocale \
        gettimeofday mbstowcs wcswidth mmap mincore setlocale \
        gcc_UNLOCKED_FUNCS)
        gcc_UNLOCKED_FUNCS)
if test x$ac_cv_func_mbstowcs = xyes; then
if test x$ac_cv_func_mbstowcs = xyes; then
  AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
  AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
[    AC_RUN_IFELSE([AC_LANG_SOURCE([[#include 
[    AC_RUN_IFELSE([AC_LANG_SOURCE([[#include 
int main()
int main()
{
{
  mbstowcs(0, "", 0);
  mbstowcs(0, "", 0);
  return 0;
  return 0;
}]])],
}]])],
    [gcc_cv_func_mbstowcs_works=yes],
    [gcc_cv_func_mbstowcs_works=yes],
    [gcc_cv_func_mbstowcs_works=no],
    [gcc_cv_func_mbstowcs_works=no],
    [gcc_cv_func_mbstowcs_works=yes])])
    [gcc_cv_func_mbstowcs_works=yes])])
  if test x$gcc_cv_func_mbstowcs_works = xyes; then
  if test x$gcc_cv_func_mbstowcs_works = xyes; then
    AC_DEFINE(HAVE_WORKING_MBSTOWCS, 1,
    AC_DEFINE(HAVE_WORKING_MBSTOWCS, 1,
  [Define this macro if mbstowcs does not crash when its
  [Define this macro if mbstowcs does not crash when its
   first argument is NULL.])
   first argument is NULL.])
  fi
  fi
fi
fi
AC_CHECK_TYPE(ssize_t, int)
AC_CHECK_TYPE(ssize_t, int)
# Try to determine the array type of the second argument of getgroups
# Try to determine the array type of the second argument of getgroups
# for the target system (int or gid_t).
# for the target system (int or gid_t).
AC_TYPE_GETGROUPS
AC_TYPE_GETGROUPS
if test "${target}" = "${build}"; then
if test "${target}" = "${build}"; then
  TARGET_GETGROUPS_T=$ac_cv_type_getgroups
  TARGET_GETGROUPS_T=$ac_cv_type_getgroups
else
else
  case "${target}" in
  case "${target}" in
        # This condition may need some tweaking.  It should include all
        # This condition may need some tweaking.  It should include all
        # targets where the array type of the second argument of getgroups
        # targets where the array type of the second argument of getgroups
        # is int and the type of gid_t is not equivalent to int.
        # is int and the type of gid_t is not equivalent to int.
        *-*-sunos* | *-*-ultrix*)
        *-*-sunos* | *-*-ultrix*)
                TARGET_GETGROUPS_T=int
                TARGET_GETGROUPS_T=int
                ;;
                ;;
        *)
        *)
                TARGET_GETGROUPS_T=gid_t
                TARGET_GETGROUPS_T=gid_t
                ;;
                ;;
  esac
  esac
fi
fi
AC_SUBST(TARGET_GETGROUPS_T)
AC_SUBST(TARGET_GETGROUPS_T)
gcc_AC_FUNC_MMAP_BLACKLIST
gcc_AC_FUNC_MMAP_BLACKLIST
case "${host}" in
case "${host}" in
*-*-*vms*)
*-*-*vms*)
  # Under VMS, vfork works very differently than on Unix. The standard test
  # Under VMS, vfork works very differently than on Unix. The standard test
  # won't work, and it isn't easily adaptable. It makes more sense to
  # won't work, and it isn't easily adaptable. It makes more sense to
  # just force it.
  # just force it.
  ac_cv_func_vfork_works=yes
  ac_cv_func_vfork_works=yes
  ;;
  ;;
esac
esac
AC_FUNC_FORK
AC_FUNC_FORK
AM_ICONV
AM_ICONV
# Until we have in-tree GNU iconv:
# Until we have in-tree GNU iconv:
LIBICONV_DEP=
LIBICONV_DEP=
AC_SUBST(LIBICONV_DEP)
AC_SUBST(LIBICONV_DEP)
AM_LC_MESSAGES
AM_LC_MESSAGES
AM_LANGINFO_CODESET
AM_LANGINFO_CODESET
# We will need to find libiberty.h and ansidecl.h
# We will need to find libiberty.h and ansidecl.h
saved_CFLAGS="$CFLAGS"
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
        strsignal strstr strverscmp \
        strsignal strstr strverscmp \
        errno snprintf vsnprintf vasprintf malloc realloc calloc \
        errno snprintf vsnprintf vasprintf malloc realloc calloc \
        free basename getopt clock getpagesize gcc_UNLOCKED_FUNCS, , ,[
        free basename getopt clock getpagesize gcc_UNLOCKED_FUNCS, , ,[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"])
#include "system.h"])
gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
#ifdef HAVE_SYS_RESOURCE_H
#ifdef HAVE_SYS_RESOURCE_H
#include 
#include 
#endif
#endif
])
])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
#ifdef HAVE_SYS_RESOURCE_H
#ifdef HAVE_SYS_RESOURCE_H
#include 
#include 
#endif
#endif
]], [[rlim_t l = 0;]])],[],[AC_DEFINE([rlim_t],[long],
]], [[rlim_t l = 0;]])],[],[AC_DEFINE([rlim_t],[long],
[Define to \`long' if  doesn't define.])])
[Define to \`long' if  doesn't define.])])
# On AIX 5.2,  conflicts with , as both define incompatible
# On AIX 5.2,  conflicts with , as both define incompatible
# FREAD and FWRITE macros.  Fortunately, for GCC's single usage of ldgetname
# FREAD and FWRITE macros.  Fortunately, for GCC's single usage of ldgetname
# in collect2.c,  isn't visible, but the configure test below needs
# in collect2.c,  isn't visible, but the configure test below needs
# to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
# to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
gcc_AC_CHECK_DECLS(ldgetname, , ,[
gcc_AC_CHECK_DECLS(ldgetname, , ,[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
#ifdef HAVE_LDFCN_H
#ifdef HAVE_LDFCN_H
#undef FREAD
#undef FREAD
#undef FWRITE
#undef FWRITE
#include 
#include 
#endif
#endif
])
])
gcc_AC_CHECK_DECLS(times, , ,[
gcc_AC_CHECK_DECLS(times, , ,[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
#ifdef HAVE_SYS_TIMES_H
#ifdef HAVE_SYS_TIMES_H
#include 
#include 
#endif
#endif
])
])
gcc_AC_CHECK_DECLS(sigaltstack, , ,[
gcc_AC_CHECK_DECLS(sigaltstack, , ,[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
#include 
#include 
])
])
# More time-related stuff.
# More time-related stuff.
AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
#ifdef HAVE_SYS_TIMES_H
#ifdef HAVE_SYS_TIMES_H
#include 
#include 
#endif
#endif
]], [[struct tms tms;]])],[ac_cv_struct_tms=yes],[ac_cv_struct_tms=no])])
]], [[struct tms tms;]])],[ac_cv_struct_tms=yes],[ac_cv_struct_tms=no])])
if test $ac_cv_struct_tms = yes; then
if test $ac_cv_struct_tms = yes; then
  AC_DEFINE(HAVE_STRUCT_TMS, 1,
  AC_DEFINE(HAVE_STRUCT_TMS, 1,
  [Define if  defines struct tms.])
  [Define if  defines struct tms.])
fi
fi
# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
# revisit after autoconf 2.50.
# revisit after autoconf 2.50.
AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include "ansidecl.h"
#include "ansidecl.h"
#include "system.h"
#include "system.h"
]], [[clock_t x;]])],[gcc_cv_type_clock_t=yes],[gcc_cv_type_clock_t=no])])
]], [[clock_t x;]])],[gcc_cv_type_clock_t=yes],[gcc_cv_type_clock_t=no])])
if test $gcc_cv_type_clock_t = yes; then
if test $gcc_cv_type_clock_t = yes; then
  AC_DEFINE(HAVE_CLOCK_T, 1,
  AC_DEFINE(HAVE_CLOCK_T, 1,
  [Define if  defines clock_t.])
  [Define if  defines clock_t.])
fi
fi
# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
CFLAGS="$saved_CFLAGS"
CFLAGS="$saved_CFLAGS"
gcc_AC_INITFINI_ARRAY
gcc_AC_INITFINI_ARRAY
# mkdir takes a single argument on some systems.
# mkdir takes a single argument on some systems.
gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
# File extensions
# File extensions
manext='.1'
manext='.1'
objext='.o'
objext='.o'
AC_SUBST(manext)
AC_SUBST(manext)
AC_SUBST(objext)
AC_SUBST(objext)
# With Setjmp/Longjmp based exception handling.
# With Setjmp/Longjmp based exception handling.
AC_ARG_ENABLE(sjlj-exceptions,
AC_ARG_ENABLE(sjlj-exceptions,
[  --enable-sjlj-exceptions
[  --enable-sjlj-exceptions
                          arrange to use setjmp/longjmp exception handling],
                          arrange to use setjmp/longjmp exception handling],
[sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
[sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
  [Define 0/1 to force the choice for exception handling model.])])
  [Define 0/1 to force the choice for exception handling model.])])
# For platforms with the unwind ABI which includes an unwind library,
# For platforms with the unwind ABI which includes an unwind library,
# libunwind, we can choose to use the system libunwind.
# libunwind, we can choose to use the system libunwind.
AC_ARG_WITH(system-libunwind,
AC_ARG_WITH(system-libunwind,
[  --with-system-libunwind use installed libunwind])
[  --with-system-libunwind use installed libunwind])
# config.gcc also contains tests of with_system_libunwind.
# config.gcc also contains tests of with_system_libunwind.
if test x$with_system_libunwind = xyes; then
if test x$with_system_libunwind = xyes; then
        AC_DEFINE(HAVE_GETIPINFO, 1,
        AC_DEFINE(HAVE_GETIPINFO, 1,
[Define to 1 if system unwind library has _Unwind_GetIPInfo.])
[Define to 1 if system unwind library has _Unwind_GetIPInfo.])
fi
fi
# --------------------------------------------------------
# --------------------------------------------------------
# Build, host, and target specific configuration fragments
# Build, host, and target specific configuration fragments
# --------------------------------------------------------
# --------------------------------------------------------
# Collect build-machine-specific information.
# Collect build-machine-specific information.
. ${srcdir}/config.build
. ${srcdir}/config.build
# Collect host-machine-specific information.
# Collect host-machine-specific information.
. ${srcdir}/config.host
. ${srcdir}/config.host
target_gtfiles=
target_gtfiles=
# Collect target-machine-specific information.
# Collect target-machine-specific information.
. ${srcdir}/config.gcc
. ${srcdir}/config.gcc
extra_objs="${host_extra_objs} ${extra_objs}"
extra_objs="${host_extra_objs} ${extra_objs}"
extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}"
extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}"
# Default the target-machine variables that were not explicitly set.
# Default the target-machine variables that were not explicitly set.
if test x"$tm_file" = x
if test x"$tm_file" = x
then tm_file=$cpu_type/$cpu_type.h; fi
then tm_file=$cpu_type/$cpu_type.h; fi
if test x"$extra_headers" = x
if test x"$extra_headers" = x
then extra_headers=; fi
then extra_headers=; fi
if test x$md_file = x
if test x$md_file = x
then md_file=$cpu_type/$cpu_type.md; fi
then md_file=$cpu_type/$cpu_type.md; fi
if test x$out_file = x
if test x$out_file = x
then out_file=$cpu_type/$cpu_type.c; fi
then out_file=$cpu_type/$cpu_type.c; fi
if test x"$tmake_file" = x
if test x"$tmake_file" = x
then tmake_file=$cpu_type/t-$cpu_type
then tmake_file=$cpu_type/t-$cpu_type
fi
fi
if test x"$dwarf2" = xyes
if test x"$dwarf2" = xyes
then tm_file="$tm_file tm-dwarf2.h"
then tm_file="$tm_file tm-dwarf2.h"
fi
fi
# Say what files are being used for the output code and MD file.
# 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/$out_file' for machine-specific logic."
echo "Using \`$srcdir/config/$md_file' as machine description file."
echo "Using \`$srcdir/config/$md_file' as machine description file."
# If any of the xm_file variables contain nonexistent files, warn
# If any of the xm_file variables contain nonexistent files, warn
# about them and drop them.
# about them and drop them.
bx=
bx=
for x in $build_xm_file; do
for x in $build_xm_file; do
  if    test -f $srcdir/config/$x
  if    test -f $srcdir/config/$x
  then      bx="$bx $x"
  then      bx="$bx $x"
  else      AC_MSG_WARN($srcdir/config/$x does not exist.)
  else      AC_MSG_WARN($srcdir/config/$x does not exist.)
  fi
  fi
done
done
build_xm_file="$bx"
build_xm_file="$bx"
hx=
hx=
for x in $host_xm_file; do
for x in $host_xm_file; do
  if    test -f $srcdir/config/$x
  if    test -f $srcdir/config/$x
  then      hx="$hx $x"
  then      hx="$hx $x"
  else      AC_MSG_WARN($srcdir/config/$x does not exist.)
  else      AC_MSG_WARN($srcdir/config/$x does not exist.)
  fi
  fi
done
done
host_xm_file="$hx"
host_xm_file="$hx"
tx=
tx=
for x in $xm_file; do
for x in $xm_file; do
  if    test -f $srcdir/config/$x
  if    test -f $srcdir/config/$x
  then      tx="$tx $x"
  then      tx="$tx $x"
  else      AC_MSG_WARN($srcdir/config/$x does not exist.)
  else      AC_MSG_WARN($srcdir/config/$x does not exist.)
  fi
  fi
done
done
xm_file="$tx"
xm_file="$tx"
count=a
count=a
for f in $tm_file; do
for f in $tm_file; do
        count=${count}x
        count=${count}x
done
done
if test $count = ax; then
if test $count = ax; then
        echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
        echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
else
else
        echo "Using the following target machine macro files:"
        echo "Using the following target machine macro files:"
        for f in $tm_file; do
        for f in $tm_file; do
                echo "  $srcdir/config/$f"
                echo "  $srcdir/config/$f"
        done
        done
fi
fi
if test x$need_64bit_hwint = xyes; then
if test x$need_64bit_hwint = xyes; then
        AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
        AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
[Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
[Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
fi
fi
if test x$use_long_long_for_widest_fast_int = xyes; then
if test x$use_long_long_for_widest_fast_int = xyes; then
        AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
        AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
[Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
[Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
efficiently supported by the host hardware.])
efficiently supported by the host hardware.])
fi
fi
count=a
count=a
for f in $host_xm_file; do
for f in $host_xm_file; do
        count=${count}x
        count=${count}x
done
done
if test $count = a; then
if test $count = a; then
        :
        :
elif test $count = ax; then
elif test $count = ax; then
        echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
        echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
else
else
        echo "Using the following host machine macro files:"
        echo "Using the following host machine macro files:"
        for f in $host_xm_file; do
        for f in $host_xm_file; do
                echo "  $srcdir/config/$f"
                echo "  $srcdir/config/$f"
        done
        done
fi
fi
echo "Using ${out_host_hook_obj} for host machine hooks."
echo "Using ${out_host_hook_obj} for host machine hooks."
if test "$host_xm_file" != "$build_xm_file"; then
if test "$host_xm_file" != "$build_xm_file"; then
        count=a
        count=a
        for f in $build_xm_file; do
        for f in $build_xm_file; do
                count=${count}x
                count=${count}x
        done
        done
        if test $count = a; then
        if test $count = a; then
                :
                :
        elif test $count = ax; then
        elif test $count = ax; then
                echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
                echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
        else
        else
                echo "Using the following build machine macro files:"
                echo "Using the following build machine macro files:"
                for f in $build_xm_file; do
                for f in $build_xm_file; do
                        echo "  $srcdir/config/$f"
                        echo "  $srcdir/config/$f"
                done
                done
        fi
        fi
fi
fi
case ${host} in
case ${host} in
  powerpc*-*-darwin*)
  powerpc*-*-darwin*)
    AC_CACHE_CHECK([whether mcontext_t fields have underscores],
    AC_CACHE_CHECK([whether mcontext_t fields have underscores],
      gcc_cv_mcontext_underscores,
      gcc_cv_mcontext_underscores,
      AC_COMPILE_IFELSE([
      AC_COMPILE_IFELSE([
#include 
#include 
#include 
#include 
int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
],
],
        gcc_cv_mcontext_underscores=no, gcc_cv_mcontext_underscores=yes))
        gcc_cv_mcontext_underscores=no, gcc_cv_mcontext_underscores=yes))
      if test $gcc_cv_mcontext_underscores = yes; then
      if test $gcc_cv_mcontext_underscores = yes; then
        AC_DEFINE(HAS_MCONTEXT_T_UNDERSCORES,,dnl
        AC_DEFINE(HAS_MCONTEXT_T_UNDERSCORES,,dnl
          [mcontext_t fields start with __])
          [mcontext_t fields start with __])
      fi
      fi
    ;;
    ;;
esac
esac
# ---------
# ---------
# Threading
# Threading
# ---------
# ---------
# Check if a valid thread package
# Check if a valid thread package
case ${enable_threads} in
case ${enable_threads} in
  "" | no)
  "" | no)
    # No threads
    # No threads
    target_thread_file='single'
    target_thread_file='single'
    ;;
    ;;
  yes)
  yes)
    # default
    # default
    target_thread_file='single'
    target_thread_file='single'
    ;;
    ;;
  aix | dce | gnat | irix | posix | posix95 | rtems | \
  aix | dce | gnat | irix | posix | posix95 | rtems | \
  single | solaris | vxworks | win32 )
  single | solaris | vxworks | win32 )
    target_thread_file=${enable_threads}
    target_thread_file=${enable_threads}
    ;;
    ;;
  *)
  *)
    echo "${enable_threads} is an unknown thread package" 1>&2
    echo "${enable_threads} is an unknown thread package" 1>&2
    exit 1
    exit 1
    ;;
    ;;
esac
esac
if test x${thread_file} = x; then
if test x${thread_file} = x; then
  # No thread file set by target-specific clauses in config.gcc,
  # No thread file set by target-specific clauses in config.gcc,
  # so use file chosen by default logic above
  # so use file chosen by default logic above
  thread_file=${target_thread_file}
  thread_file=${target_thread_file}
fi
fi
# Make gthr-default.h if we have a thread file.
# Make gthr-default.h if we have a thread file.
gthread_flags=
gthread_flags=
if test $thread_file != single; then
if test $thread_file != single; then
  rm -f gthr-default.h
  rm -f gthr-default.h
  echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
  echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
  gthread_flags=-DHAVE_GTHR_DEFAULT
  gthread_flags=-DHAVE_GTHR_DEFAULT
fi
fi
AC_SUBST(gthread_flags)
AC_SUBST(gthread_flags)
# --------
# --------
# UNSORTED
# UNSORTED
# --------
# --------
use_cxa_atexit=no
use_cxa_atexit=no
if test x$enable___cxa_atexit = xyes || \
if test x$enable___cxa_atexit = xyes || \
   test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then
   test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then
  if test x$host = x$target; then
  if test x$host = x$target; then
    AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
    AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
        [echo "__cxa_atexit can't be enabled on this target"])
        [echo "__cxa_atexit can't be enabled on this target"])
  else
  else
    # We can't check for __cxa_atexit when building a cross, so assume
    # We can't check for __cxa_atexit when building a cross, so assume
    # it is available
    # it is available
    use_cxa_atexit=yes
    use_cxa_atexit=yes
  fi
  fi
  if test x$use_cxa_atexit = xyes; then
  if test x$use_cxa_atexit = xyes; then
    AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 2,
    AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 2,
      [Define if you want to use __cxa_atexit, rather than atexit, to
      [Define if you want to use __cxa_atexit, rather than atexit, to
      register C++ destructors for local statics and global objects.
      register C++ destructors for local statics and global objects.
      This is essential for fully standards-compliant handling of
      This is essential for fully standards-compliant handling of
      destructors, but requires __cxa_atexit in libc.])
      destructors, but requires __cxa_atexit in libc.])
  fi
  fi
fi
fi
use_getipinfo=yes
use_getipinfo=yes
if test x$with_system_libunwind = xyes; then
if test x$with_system_libunwind = xyes; then
   if test x$host = x$target; then
   if test x$host = x$target; then
     AC_SEARCH_LIBS(_Unwind_GetIPInfo, unwind,, [use_getipinfo=no])
     AC_SEARCH_LIBS(_Unwind_GetIPInfo, unwind,, [use_getipinfo=no])
   fi
   fi
fi
fi
GCC_TARGET_TEMPLATE(HAVE_GETIPINFO)
GCC_TARGET_TEMPLATE(HAVE_GETIPINFO)
if test x$use_getipinfo = xyes; then
if test x$use_getipinfo = xyes; then
   AC_DEFINE(HAVE_GETIPINFO, 1,
   AC_DEFINE(HAVE_GETIPINFO, 1,
        [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
        [Define to 1 if system unwind library has _Unwind_GetIPInfo.])
else
else
   echo "The system unwind library does not support _Unwind_GetIPInfo."
   echo "The system unwind library does not support _Unwind_GetIPInfo."
fi
fi
# Look for a file containing extra machine modes.
# Look for a file containing extra machine modes.
if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
  extra_modes_file='$(srcdir)'/config/${extra_modes}
  extra_modes_file='$(srcdir)'/config/${extra_modes}
  AC_SUBST(extra_modes_file)
  AC_SUBST(extra_modes_file)
  AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes",
  AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes",
  [Define to the name of a file containing a list of extra machine modes
  [Define to the name of a file containing a list of extra machine modes
   for this architecture.])
   for this architecture.])
fi
fi
# Convert extra_options into a form suitable for Makefile use.
# Convert extra_options into a form suitable for Makefile use.
extra_opt_files=
extra_opt_files=
for f in $extra_options; do
for f in $extra_options; do
  extra_opt_files="$extra_opt_files \$(srcdir)/config/$f"
  extra_opt_files="$extra_opt_files \$(srcdir)/config/$f"
done
done
AC_SUBST(extra_opt_files)
AC_SUBST(extra_opt_files)
# auto-host.h is the file containing items generated by autoconf and is
# auto-host.h is the file containing items generated by autoconf and is
# the first file included by config.h.
# the first file included by config.h.
# If host=build, it is correct to have bconfig include auto-host.h
# If host=build, it is correct to have bconfig include auto-host.h
# as well.  If host!=build, we are in error and need to do more
# as well.  If host!=build, we are in error and need to do more
# work to find out the build config parameters.
# work to find out the build config parameters.
if test x$host = x$build
if test x$host = x$build
then
then
        build_auto=auto-host.h
        build_auto=auto-host.h
else
else
        # We create a subdir, then run autoconf in the subdir.
        # We create a subdir, then run autoconf in the subdir.
        # To prevent recursion we set host and build for the new
        # To prevent recursion we set host and build for the new
        # invocation of configure to the build for this invocation
        # invocation of configure to the build for this invocation
        # of configure.
        # of configure.
        tempdir=build.$$
        tempdir=build.$$
        rm -rf $tempdir
        rm -rf $tempdir
        mkdir $tempdir
        mkdir $tempdir
        cd $tempdir
        cd $tempdir
        case ${srcdir} in
        case ${srcdir} in
        /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
        /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
        *) realsrcdir=../${srcdir};;
        *) realsrcdir=../${srcdir};;
        esac
        esac
        saved_CFLAGS="${CFLAGS}"
        saved_CFLAGS="${CFLAGS}"
        CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
        CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
        ${realsrcdir}/configure \
        ${realsrcdir}/configure \
                --enable-languages=${enable_languages-all} \
                --enable-languages=${enable_languages-all} \
                --target=$target_alias --host=$build_alias --build=$build_alias
                --target=$target_alias --host=$build_alias --build=$build_alias
        CFLAGS="${saved_CFLAGS}"
        CFLAGS="${saved_CFLAGS}"
        # We just finished tests for the build machine, so rename
        # We just finished tests for the build machine, so rename
        # the file auto-build.h in the gcc directory.
        # the file auto-build.h in the gcc directory.
        mv auto-host.h ../auto-build.h
        mv auto-host.h ../auto-build.h
        cd ..
        cd ..
        rm -rf $tempdir
        rm -rf $tempdir
        build_auto=auto-build.h
        build_auto=auto-build.h
fi
fi
AC_SUBST(build_subdir)
AC_SUBST(build_subdir)
tm_file="${tm_file} defaults.h"
tm_file="${tm_file} defaults.h"
tm_p_file="${tm_p_file} tm-preds.h"
tm_p_file="${tm_p_file} tm-preds.h"
host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
# We don't want ansidecl.h in target files, write code there in ISO/GNU C.
# We don't want ansidecl.h in target files, write code there in ISO/GNU C.
# put this back in temporarily.
# put this back in temporarily.
xm_file="auto-host.h ansidecl.h ${xm_file}"
xm_file="auto-host.h ansidecl.h ${xm_file}"
# --------
# --------
# UNSORTED
# UNSORTED
# --------
# --------
changequote(,)dnl
changequote(,)dnl
# Compile in configure arguments.
# Compile in configure arguments.
if test -f configargs.h ; then
if test -f configargs.h ; then
        # Being re-configured.
        # Being re-configured.
        gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
        gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
        gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
        gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
else
else
        gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
        gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
fi
fi
# Double all backslashes and backslash all quotes to turn
# Double all backslashes and backslash all quotes to turn
# gcc_config_arguments into a C string.
# gcc_config_arguments into a C string.
sed -e 's/\\/\\\\/g; s/"/\\"/g' <conftest.out
sed -e 's/\\/\\\\/g; s/"/\\"/g' <conftest.out
$gcc_config_arguments
$gcc_config_arguments
EOF
EOF
gcc_config_arguments_str=`cat conftest.out`
gcc_config_arguments_str=`cat conftest.out`
rm -f conftest.out
rm -f conftest.out
cat > configargs.h <
cat > configargs.h <
/* Generated automatically. */
/* Generated automatically. */
static const char configuration_arguments[] = "$gcc_config_arguments_str";
static const char configuration_arguments[] = "$gcc_config_arguments_str";
static const char thread_model[] = "$thread_file";
static const char thread_model[] = "$thread_file";
static const struct {
static const struct {
  const char *name, *value;
  const char *name, *value;
} configure_default_options[] = $configure_default_options;
} configure_default_options[] = $configure_default_options;
EOF
EOF
changequote([,])dnl
changequote([,])dnl
# Internationalization
# Internationalization
ZW_GNU_GETTEXT_SISTER_DIR
ZW_GNU_GETTEXT_SISTER_DIR
# If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get
# If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get
# -liconv on the link line twice.
# -liconv on the link line twice.
case "$LIBINTL" in *$LIBICONV*)
case "$LIBINTL" in *$LIBICONV*)
        LIBICONV= ;;
        LIBICONV= ;;
esac
esac
AC_ARG_ENABLE(secureplt,
AC_ARG_ENABLE(secureplt,
[  --enable-secureplt      enable -msecure-plt by default for PowerPC],
[  --enable-secureplt      enable -msecure-plt by default for PowerPC],
[], [])
[], [])
# Windows32 Registry support for specifying GCC installation paths.
# Windows32 Registry support for specifying GCC installation paths.
AC_ARG_ENABLE(win32-registry,
AC_ARG_ENABLE(win32-registry,
[  --disable-win32-registry
[  --disable-win32-registry
                          disable lookup of installation paths in the
                          disable lookup of installation paths in the
                          Registry on Windows hosts
                          Registry on Windows hosts
  --enable-win32-registry enable registry lookup (default)
  --enable-win32-registry enable registry lookup (default)
  --enable-win32-registry=KEY
  --enable-win32-registry=KEY
                          use KEY instead of GCC version as the last portion
                          use KEY instead of GCC version as the last portion
                          of the registry key],,)
                          of the registry key],,)
case $host_os in
case $host_os in
  win32 | pe | cygwin* | mingw32* | uwin*)
  win32 | pe | cygwin* | mingw32* | uwin*)
    if test "x$enable_win32_registry" != xno; then
    if test "x$enable_win32_registry" != xno; then
      AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
      AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
    fi
    fi
    if test "x$enable_win32_registry" != xno; then
    if test "x$enable_win32_registry" != xno; then
      AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
      AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
  [Define to 1 if installation paths should be looked up in the Windows
  [Define to 1 if installation paths should be looked up in the Windows
   Registry. Ignored on non-Windows hosts.])
   Registry. Ignored on non-Windows hosts.])
      if test "x$enable_win32_registry" != xyes \
      if test "x$enable_win32_registry" != xyes \
         && test "x$enable_win32_registry" != x; then
         && test "x$enable_win32_registry" != x; then
        AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$enable_win32_registry",
        AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$enable_win32_registry",
  [Define to be the last component of the Windows registry key under which
  [Define to be the last component of the Windows registry key under which
   to look for installation paths.  The full key used will be
   to look for installation paths.  The full key used will be
   HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
   HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
   The default is the GCC version number.])
   The default is the GCC version number.])
      fi
      fi
    fi
    fi
  ;;
  ;;
esac
esac
# Get an absolute path to the GCC top-level source directory
# Get an absolute path to the GCC top-level source directory
holddir=`${PWDCMD-pwd}`
holddir=`${PWDCMD-pwd}`
cd $srcdir
cd $srcdir
topdir=`${PWDCMD-pwd}`
topdir=`${PWDCMD-pwd}`
cd $holddir
cd $holddir
# Conditionalize the makefile for this host machine.
# Conditionalize the makefile for this host machine.
xmake_file=
xmake_file=
for f in ${host_xmake_file}
for f in ${host_xmake_file}
do
do
        if test -f ${srcdir}/config/$f
        if test -f ${srcdir}/config/$f
        then
        then
                xmake_file="${xmake_file} \$(srcdir)/config/$f"
                xmake_file="${xmake_file} \$(srcdir)/config/$f"
        fi
        fi
done
done
# Conditionalize the makefile for this target machine.
# Conditionalize the makefile for this target machine.
tmake_file_=
tmake_file_=
for f in ${tmake_file}
for f in ${tmake_file}
do
do
        if test -f ${srcdir}/config/$f
        if test -f ${srcdir}/config/$f
        then
        then
                tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
                tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
        fi
        fi
done
done
tmake_file="${tmake_file_}"
tmake_file="${tmake_file_}"
# If the host doesn't support symlinks, modify CC in
# If the host doesn't support symlinks, modify CC in
# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works.
# Otherwise, we can use "CC=$(CC)".
# Otherwise, we can use "CC=$(CC)".
rm -f symtest.tem
rm -f symtest.tem
case "$LN_S" in
case "$LN_S" in
        *-s*)
        *-s*)
                cc_set_by_configure="\$(CC)"
                cc_set_by_configure="\$(CC)"
                quoted_cc_set_by_configure="\$(CC)"
                quoted_cc_set_by_configure="\$(CC)"
                stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
                stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
                quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
                quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)"
                ;;
                ;;
        *)
        *)
                cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
                cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`"
                quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
                quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`"
                stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
                stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`"
                quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
                quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`"
                ;;
                ;;
esac
esac
# This is a terrible hack which will go away some day.
# This is a terrible hack which will go away some day.
host_cc_for_libada=${CC}
host_cc_for_libada=${CC}
AC_SUBST(host_cc_for_libada)
AC_SUBST(host_cc_for_libada)
out_object_file=`basename $out_file .c`.o
out_object_file=`basename $out_file .c`.o
tm_file_list="options.h"
tm_file_list="options.h"
tm_include_list="options.h"
tm_include_list="options.h"
for f in $tm_file; do
for f in $tm_file; do
  case $f in
  case $f in
    defaults.h )
    defaults.h )
       tm_file_list="${tm_file_list} \$(srcdir)/$f"
       tm_file_list="${tm_file_list} \$(srcdir)/$f"
       tm_include_list="${tm_include_list} $f"
       tm_include_list="${tm_include_list} $f"
       ;;
       ;;
    * )
    * )
       tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
       tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
       tm_include_list="${tm_include_list} config/$f"
       tm_include_list="${tm_include_list} config/$f"
       ;;
       ;;
  esac
  esac
done
done
tm_p_file_list=
tm_p_file_list=
tm_p_include_list=
tm_p_include_list=
for f in $tm_p_file; do
for f in $tm_p_file; do
  case $f in
  case $f in
    tm-preds.h )
    tm-preds.h )
       tm_p_file_list="${tm_p_file_list} $f"
       tm_p_file_list="${tm_p_file_list} $f"
       tm_p_include_list="${tm_p_include_list} $f"
       tm_p_include_list="${tm_p_include_list} $f"
       ;;
       ;;
    * )
    * )
       tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
       tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
       tm_p_include_list="${tm_p_include_list} config/$f"
       tm_p_include_list="${tm_p_include_list} config/$f"
  esac
  esac
done
done
xm_file_list=
xm_file_list=
xm_include_list=
xm_include_list=
for f in $xm_file; do
for f in $xm_file; do
  case $f in
  case $f in
    ansidecl.h )
    ansidecl.h )
       xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
       xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
       xm_include_list="${xm_include_list} $f"
       xm_include_list="${xm_include_list} $f"
       ;;
       ;;
    auto-host.h )
    auto-host.h )
       xm_file_list="${xm_file_list} $f"
       xm_file_list="${xm_file_list} $f"
       xm_include_list="${xm_include_list} $f"
       xm_include_list="${xm_include_list} $f"
       ;;
       ;;
    * )
    * )
       xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
       xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
       xm_include_list="${xm_include_list} config/$f"
       xm_include_list="${xm_include_list} config/$f"
       ;;
       ;;
  esac
  esac
done
done
host_xm_file_list=
host_xm_file_list=
host_xm_include_list=
host_xm_include_list=
for f in $host_xm_file; do
for f in $host_xm_file; do
  case $f in
  case $f in
    ansidecl.h )
    ansidecl.h )
       host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
       host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
       host_xm_include_list="${host_xm_include_list} $f"
       host_xm_include_list="${host_xm_include_list} $f"
       ;;
       ;;
    auto-host.h )
    auto-host.h )
       host_xm_file_list="${host_xm_file_list} $f"
       host_xm_file_list="${host_xm_file_list} $f"
       host_xm_include_list="${host_xm_include_list} $f"
       host_xm_include_list="${host_xm_include_list} $f"
       ;;
       ;;
    * )
    * )
       host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
       host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
       host_xm_include_list="${host_xm_include_list} config/$f"
       host_xm_include_list="${host_xm_include_list} config/$f"
       ;;
       ;;
  esac
  esac
done
done
build_xm_file_list=
build_xm_file_list=
for f in $build_xm_file; do
for f in $build_xm_file; do
  case $f in
  case $f in
    ansidecl.h )
    ansidecl.h )
       build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
       build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
       build_xm_include_list="${build_xm_include_list} $f"
       build_xm_include_list="${build_xm_include_list} $f"
       ;;
       ;;
    auto-build.h | auto-host.h )
    auto-build.h | auto-host.h )
       build_xm_file_list="${build_xm_file_list} $f"
       build_xm_file_list="${build_xm_file_list} $f"
       build_xm_include_list="${build_xm_include_list} $f"
       build_xm_include_list="${build_xm_include_list} $f"
       ;;
       ;;
    * )
    * )
       build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
       build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
       build_xm_include_list="${build_xm_include_list} config/$f"
       build_xm_include_list="${build_xm_include_list} config/$f"
       ;;
       ;;
  esac
  esac
done
done
# Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
# Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
# Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
# Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
CROSS=                                          AC_SUBST(CROSS)
CROSS=                                          AC_SUBST(CROSS)
ALL=all.internal                                AC_SUBST(ALL)
ALL=all.internal                                AC_SUBST(ALL)
SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
if test "x$with_build_sysroot" != x; then
if test "x$with_build_sysroot" != x; then
  build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
  build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
else
else
  # This value is used, even on a native system, because
  # This value is used, even on a native system, because
  # CROSS_SYSTEM_HEADER_DIR is just
  # CROSS_SYSTEM_HEADER_DIR is just
  # $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR).
  # $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR).
  build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
  build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
fi
fi
if test x$host != x$target
if test x$host != x$target
then
then
        CROSS="-DCROSS_COMPILE"
        CROSS="-DCROSS_COMPILE"
        ALL=all.cross
        ALL=all.cross
        SYSTEM_HEADER_DIR=$build_system_header_dir
        SYSTEM_HEADER_DIR=$build_system_header_dir
        case "$host","$target" in
        case "$host","$target" in
        # Darwin crosses can use the host system's libraries and headers,
        # Darwin crosses can use the host system's libraries and headers,
        # because of the fat library support.  Of course, it must be the
        # because of the fat library support.  Of course, it must be the
        # same version of Darwin on both sides.  Allow the user to
        # same version of Darwin on both sides.  Allow the user to
        # just say --target=foo-darwin without a version number to mean
        # just say --target=foo-darwin without a version number to mean
        # "the version on this system".
        # "the version on this system".
            *-*-darwin*,*-*-darwin*)
            *-*-darwin*,*-*-darwin*)
                hostos=`echo $host | sed 's/.*-darwin/darwin/'`
                hostos=`echo $host | sed 's/.*-darwin/darwin/'`
                targetos=`echo $target | sed 's/.*-darwin/darwin/'`
                targetos=`echo $target | sed 's/.*-darwin/darwin/'`
                if test $hostos = $targetos -o $targetos = darwin ; then
                if test $hostos = $targetos -o $targetos = darwin ; then
                    CROSS=
                    CROSS=
                    SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
                    SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
                    with_headers=yes
                    with_headers=yes
                fi
                fi
                ;;
                ;;
            i?86-*-*,x86_64-*-* \
            i?86-*-*,x86_64-*-* \
            | powerpc*-*-*,powerpc64*-*-*)
            | powerpc*-*-*,powerpc64*-*-*)
                CROSS="$CROSS -DNATIVE_CROSS" ;;
                CROSS="$CROSS -DNATIVE_CROSS" ;;
        esac
        esac
elif test "x$TARGET_SYSTEM_ROOT" != x; then
elif test "x$TARGET_SYSTEM_ROOT" != x; then
        SYSTEM_HEADER_DIR=$build_system_header_dir
        SYSTEM_HEADER_DIR=$build_system_header_dir
fi
fi
# If this is a cross-compiler that does not
# If this is a cross-compiler that does not
# have its own set of headers then define
# have its own set of headers then define
# inhibit_libc
# inhibit_libc
# If this is using newlib, without having the headers available now,
# If this is using newlib, without having the headers available now,
# then define inhibit_libc in LIBGCC2_CFLAGS.
# then define inhibit_libc in LIBGCC2_CFLAGS.
# This prevents libgcc2 from containing any code which requires libc
# This prevents libgcc2 from containing any code which requires libc
# support.
# support.
inhibit_libc=false
inhibit_libc=false
if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
       test x$with_newlib = xyes ; } &&
       test x$with_newlib = xyes ; } &&
     { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
     { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
       inhibit_libc=true
       inhibit_libc=true
fi
fi
AC_SUBST(inhibit_libc)
AC_SUBST(inhibit_libc)
# When building gcc with a cross-compiler, we need to adjust things so
# When building gcc with a cross-compiler, we need to adjust things so
# that the generator programs are still built with the native compiler.
# that the generator programs are still built with the native compiler.
# Also, we cannot run fixincludes or fix-header.
# Also, we cannot run fixincludes or fix-header.
# These are the normal (build=host) settings:
# These are the normal (build=host) settings:
CC_FOR_BUILD='$(CC)'            AC_SUBST(CC_FOR_BUILD)
CC_FOR_BUILD='$(CC)'            AC_SUBST(CC_FOR_BUILD)
BUILD_CFLAGS='$(ALL_CFLAGS)'    AC_SUBST(BUILD_CFLAGS)
BUILD_CFLAGS='$(ALL_CFLAGS)'    AC_SUBST(BUILD_CFLAGS)
STMP_FIXINC=stmp-fixinc         AC_SUBST(STMP_FIXINC)
STMP_FIXINC=stmp-fixinc         AC_SUBST(STMP_FIXINC)
# Possibly disable fixproto, on a per-target basis.
# Possibly disable fixproto, on a per-target basis.
case ${use_fixproto} in
case ${use_fixproto} in
  no)
  no)
    STMP_FIXPROTO=
    STMP_FIXPROTO=
    ;;
    ;;
  yes)
  yes)
    STMP_FIXPROTO=stmp-fixproto
    STMP_FIXPROTO=stmp-fixproto
    ;;
    ;;
esac
esac
AC_SUBST(STMP_FIXPROTO)
AC_SUBST(STMP_FIXPROTO)
# And these apply if build != host, or we are generating coverage data
# And these apply if build != host, or we are generating coverage data
if test x$build != x$host || test "x$coverage_flags" != x
if test x$build != x$host || test "x$coverage_flags" != x
then
then
    BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
    BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
    if test "x$TARGET_SYSTEM_ROOT" = x; then
    if test "x$TARGET_SYSTEM_ROOT" = x; then
        if test "x$STMP_FIXPROTO" != x; then
        if test "x$STMP_FIXPROTO" != x; then
          STMP_FIXPROTO=stmp-install-fixproto
          STMP_FIXPROTO=stmp-install-fixproto
        fi
        fi
    fi
    fi
fi
fi
# Expand extra_headers to include complete path.
# Expand extra_headers to include complete path.
# This substitutes for lots of t-* files.
# This substitutes for lots of t-* files.
extra_headers_list=
extra_headers_list=
# Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
# Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
for file in ${extra_headers} ; do
for file in ${extra_headers} ; do
  extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
  extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
done
done
# Define collect2 in Makefile.
# Define collect2 in Makefile.
case $host_can_use_collect2 in
case $host_can_use_collect2 in
  no) collect2= ;;
  no) collect2= ;;
  *) collect2='collect2$(exeext)' ;;
  *) collect2='collect2$(exeext)' ;;
esac
esac
AC_SUBST([collect2])
AC_SUBST([collect2])
# Add a definition of USE_COLLECT2 if system wants one.
# Add a definition of USE_COLLECT2 if system wants one.
case $use_collect2 in
case $use_collect2 in
  no) use_collect2= ;;
  no) use_collect2= ;;
  "") ;;
  "") ;;
  *)
  *)
    host_xm_defines="${host_xm_defines} USE_COLLECT2"
    host_xm_defines="${host_xm_defines} USE_COLLECT2"
    xm_defines="${xm_defines} USE_COLLECT2"
    xm_defines="${xm_defines} USE_COLLECT2"
    case $host_can_use_collect2 in
    case $host_can_use_collect2 in
      no)
      no)
        AC_MSG_ERROR([collect2 is required but cannot be built on this system])
        AC_MSG_ERROR([collect2 is required but cannot be built on this system])
        ;;
        ;;
    esac
    esac
    ;;
    ;;
esac
esac
# ---------------------------
# ---------------------------
# Assembler & linker features
# Assembler & linker features
# ---------------------------
# ---------------------------
# Identify the assembler which will work hand-in-glove with the newly
# Identify the assembler which will work hand-in-glove with the newly
# built GCC, so that we can examine its features.  This is the assembler
# built GCC, so that we can examine its features.  This is the assembler
# which will be driven by the driver program.
# which will be driven by the driver program.
#
#
# If build != host, and we aren't building gas in-tree, we identify a
# If build != host, and we aren't building gas in-tree, we identify a
# build->target assembler and hope that it will have the same features
# build->target assembler and hope that it will have the same features
# as the host->target assembler we'll be using.
# as the host->target assembler we'll be using.
gcc_cv_gas_major_version=
gcc_cv_gas_major_version=
gcc_cv_gas_minor_version=
gcc_cv_gas_minor_version=
gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
m4_pattern_allow([AS_FOR_TARGET])dnl
m4_pattern_allow([AS_FOR_TARGET])dnl
AS_VAR_SET_IF(gcc_cv_as,, [
AS_VAR_SET_IF(gcc_cv_as,, [
if test -x "$DEFAULT_ASSEMBLER"; then
if test -x "$DEFAULT_ASSEMBLER"; then
        gcc_cv_as="$DEFAULT_ASSEMBLER"
        gcc_cv_as="$DEFAULT_ASSEMBLER"
elif test -f $gcc_cv_as_gas_srcdir/configure.in \
elif test -f $gcc_cv_as_gas_srcdir/configure.in \
     && test -f ../gas/Makefile \
     && test -f ../gas/Makefile \
     && test x$build = x$host; then
     && test x$build = x$host; then
        gcc_cv_as=../gas/as-new$build_exeext
        gcc_cv_as=../gas/as-new$build_exeext
elif test -x as$build_exeext; then
elif test -x as$build_exeext; then
        # Build using assembler in the current directory.
        # Build using assembler in the current directory.
        gcc_cv_as=./as$build_exeext
        gcc_cv_as=./as$build_exeext
elif test -x $AS_FOR_TARGET; then
elif test -x $AS_FOR_TARGET; then
        gcc_cv_as="$AS_FOR_TARGET"
        gcc_cv_as="$AS_FOR_TARGET"
else
else
        AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET)
        AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET)
fi])
fi])
ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
AC_SUBST(ORIGINAL_AS_FOR_TARGET)
AC_SUBST(ORIGINAL_AS_FOR_TARGET)
AC_MSG_CHECKING(what assembler to use)
AC_MSG_CHECKING(what assembler to use)
if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
  # Single tree build which includes gas.  We want to prefer it
  # Single tree build which includes gas.  We want to prefer it
  # over whatever linker top-level may have detected, since
  # over whatever linker top-level may have detected, since
  # we'll use what we're building after installation anyway.
  # we'll use what we're building after installation anyway.
  AC_MSG_RESULT(newly built gas)
  AC_MSG_RESULT(newly built gas)
  in_tree_gas=yes
  in_tree_gas=yes
  _gcc_COMPUTE_GAS_VERSION
  _gcc_COMPUTE_GAS_VERSION
  in_tree_gas_is_elf=no
  in_tree_gas_is_elf=no
  if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
  if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
     || (grep 'obj_format = multi' ../gas/Makefile \
     || (grep 'obj_format = multi' ../gas/Makefile \
         && grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null
         && grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null
  then
  then
    in_tree_gas_is_elf=yes
    in_tree_gas_is_elf=yes
  fi
  fi
else
else
  AC_MSG_RESULT($gcc_cv_as)
  AC_MSG_RESULT($gcc_cv_as)
  in_tree_gas=no
  in_tree_gas=no
fi
fi
# Identify the linker which will work hand-in-glove with the newly
# Identify the linker which will work hand-in-glove with the newly
# built GCC, so that we can examine its features.  This is the linker
# built GCC, so that we can examine its features.  This is the linker
# which will be driven by the driver program.
# which will be driven by the driver program.
#
#
# If build != host, and we aren't building gas in-tree, we identify a
# If build != host, and we aren't building gas in-tree, we identify a
# build->target linker and hope that it will have the same features
# build->target linker and hope that it will have the same features
# as the host->target linker we'll be using.
# as the host->target linker we'll be using.
gcc_cv_gld_major_version=
gcc_cv_gld_major_version=
gcc_cv_gld_minor_version=
gcc_cv_gld_minor_version=
gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
AS_VAR_SET_IF(gcc_cv_ld,, [
AS_VAR_SET_IF(gcc_cv_ld,, [
if test -x "$DEFAULT_LINKER"; then
if test -x "$DEFAULT_LINKER"; then
        gcc_cv_ld="$DEFAULT_LINKER"
        gcc_cv_ld="$DEFAULT_LINKER"
elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
     && test -f ../ld/Makefile \
     && test -f ../ld/Makefile \
     && test x$build = x$host; then
     && test x$build = x$host; then
        gcc_cv_ld=../ld/ld-new$build_exeext
        gcc_cv_ld=../ld/ld-new$build_exeext
elif test -x collect-ld$build_exeext; then
elif test -x collect-ld$build_exeext; then
        # Build using linker in the current directory.
        # Build using linker in the current directory.
        gcc_cv_ld=./collect-ld$build_exeext
        gcc_cv_ld=./collect-ld$build_exeext
elif test -x $LD_FOR_TARGET; then
elif test -x $LD_FOR_TARGET; then
        gcc_cv_ld="$LD_FOR_TARGET"
        gcc_cv_ld="$LD_FOR_TARGET"
else
else
        AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
        AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
fi])
fi])
ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
AC_SUBST(ORIGINAL_LD_FOR_TARGET)
AC_SUBST(ORIGINAL_LD_FOR_TARGET)
AC_MSG_CHECKING(what linker to use)
AC_MSG_CHECKING(what linker to use)
if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then
if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then
        # Single tree build which includes ld.  We want to prefer it
        # Single tree build which includes ld.  We want to prefer it
        # over whatever linker top-level may have detected, since
        # over whatever linker top-level may have detected, since
        # we'll use what we're building after installation anyway.
        # we'll use what we're building after installation anyway.
        AC_MSG_RESULT(newly built ld)
        AC_MSG_RESULT(newly built ld)
        in_tree_ld=yes
        in_tree_ld=yes
        in_tree_ld_is_elf=no
        in_tree_ld_is_elf=no
        if (grep 'EMUL = .*elf' ../ld/Makefile \
        if (grep 'EMUL = .*elf' ../ld/Makefile \
            || grep 'EMUL = .*linux' ../ld/Makefile \
            || grep 'EMUL = .*linux' ../ld/Makefile \
            || grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then
            || grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then
          in_tree_ld_is_elf=yes
          in_tree_ld_is_elf=yes
        fi
        fi
        for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.in $gcc_cv_ld_gld_srcdir/Makefile.in
        for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.in $gcc_cv_ld_gld_srcdir/Makefile.in
        do
        do
changequote(,)dnl
changequote(,)dnl
                gcc_cv_gld_version=`sed -n -e 's/^[     ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f`
                gcc_cv_gld_version=`sed -n -e 's/^[     ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f`
                if test x$gcc_cv_gld_version != x; then
                if test x$gcc_cv_gld_version != x; then
                        break
                        break
                fi
                fi
        done
        done
        gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
        gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
        gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
        gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
changequote([,])dnl
changequote([,])dnl
else
else
        AC_MSG_RESULT($gcc_cv_ld)
        AC_MSG_RESULT($gcc_cv_ld)
        in_tree_ld=no
        in_tree_ld=no
fi
fi
# Figure out what nm we will be using.
# Figure out what nm we will be using.
gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
AS_VAR_SET_IF(gcc_cv_nm,, [
AS_VAR_SET_IF(gcc_cv_nm,, [
if test -f $gcc_cv_binutils_srcdir/configure.in \
if test -f $gcc_cv_binutils_srcdir/configure.in \
     && test -f ../binutils/Makefile \
     && test -f ../binutils/Makefile \
     && test x$build = x$host; then
     && test x$build = x$host; then
        gcc_cv_nm=../binutils/nm-new$build_exeext
        gcc_cv_nm=../binutils/nm-new$build_exeext
elif test -x nm$build_exeext; then
elif test -x nm$build_exeext; then
        gcc_cv_nm=./nm$build_exeext
        gcc_cv_nm=./nm$build_exeext
elif test -x $NM_FOR_TARGET; then
elif test -x $NM_FOR_TARGET; then
        gcc_cv_nm="$NM_FOR_TARGET"
        gcc_cv_nm="$NM_FOR_TARGET"
else
else
        AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET)
        AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET)
fi])
fi])
AC_MSG_CHECKING(what nm to use)
AC_MSG_CHECKING(what nm to use)
if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then
if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then
        # Single tree build which includes binutils.
        # Single tree build which includes binutils.
        AC_MSG_RESULT(newly built nm)
        AC_MSG_RESULT(newly built nm)
        in_tree_nm=yes
        in_tree_nm=yes
else
else
        AC_MSG_RESULT($gcc_cv_nm)
        AC_MSG_RESULT($gcc_cv_nm)
        in_tree_nm=no
        in_tree_nm=no
fi
fi
ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
AC_SUBST(ORIGINAL_NM_FOR_TARGET)
AC_SUBST(ORIGINAL_NM_FOR_TARGET)
# Figure out what objdump we will be using.
# Figure out what objdump we will be using.
AS_VAR_SET_IF(gcc_cv_objdump,, [
AS_VAR_SET_IF(gcc_cv_objdump,, [
if test -f $gcc_cv_binutils_srcdir/configure.in \
if test -f $gcc_cv_binutils_srcdir/configure.in \
     && test -f ../binutils/Makefile \
     && test -f ../binutils/Makefile \
     && test x$build = x$host; then
     && test x$build = x$host; then
        # Single tree build which includes binutils.
        # Single tree build which includes binutils.
        gcc_cv_objdump=../binutils/objdump$build_exeext
        gcc_cv_objdump=../binutils/objdump$build_exeext
elif test -x objdump$build_exeext; then
elif test -x objdump$build_exeext; then
        gcc_cv_objdump=./objdump$build_exeext
        gcc_cv_objdump=./objdump$build_exeext
elif test -x $OBJDUMP_FOR_TARGET; then
elif test -x $OBJDUMP_FOR_TARGET; then
        gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
        gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
else
else
        AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
        AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
fi])
fi])
AC_MSG_CHECKING(what objdump to use)
AC_MSG_CHECKING(what objdump to use)
if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
        # Single tree build which includes binutils.
        # Single tree build which includes binutils.
        AC_MSG_RESULT(newly built objdump)
        AC_MSG_RESULT(newly built objdump)
elif test x$gcc_cv_objdump = x; then
elif test x$gcc_cv_objdump = x; then
        AC_MSG_RESULT(not found)
        AC_MSG_RESULT(not found)
else
else
        AC_MSG_RESULT($gcc_cv_objdump)
        AC_MSG_RESULT($gcc_cv_objdump)
fi
fi
# Figure out what assembler alignment features are present.
# Figure out what assembler alignment features are present.
gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
 [2,6,0],,
 [2,6,0],,
[.balign 4
[.balign 4
.p2align 2],,
.p2align 2],,
[AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN, 1,
[AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN, 1,
  [Define if your assembler supports .balign and .p2align.])])
  [Define if your assembler supports .balign and .p2align.])])
gcc_GAS_CHECK_FEATURE([.p2align with maximum skip], gcc_cv_as_max_skip_p2align,
gcc_GAS_CHECK_FEATURE([.p2align with maximum skip], gcc_cv_as_max_skip_p2align,
 [2,8,0],,
 [2,8,0],,
 [.p2align 4,,7],,
 [.p2align 4,,7],,
[AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN, 1,
[AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN, 1,
  [Define if your assembler supports specifying the maximum number
  [Define if your assembler supports specifying the maximum number
   of bytes to skip when using the GAS .p2align command.])])
   of bytes to skip when using the GAS .p2align command.])])
gcc_GAS_CHECK_FEATURE([working .subsection -1], gcc_cv_as_subsection_m1,
gcc_GAS_CHECK_FEATURE([working .subsection -1], gcc_cv_as_subsection_m1,
 [elf,2,9,0],,
 [elf,2,9,0],,
 [conftest_label1: .word 0
 [conftest_label1: .word 0
.subsection -1
.subsection -1
conftest_label2: .word 0
conftest_label2: .word 0
.previous],
.previous],
 [if test x$gcc_cv_nm != x; then
 [if test x$gcc_cv_nm != x; then
    $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
    $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
    $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
    $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
    if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
    if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
    then :
    then :
    else gcc_cv_as_subsection_m1=yes
    else gcc_cv_as_subsection_m1=yes
    fi
    fi
    rm -f conftest.nm1 conftest.nm2
    rm -f conftest.nm1 conftest.nm2
  fi],
  fi],
 [AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
 [AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
  [Define if your assembler supports .subsection and .subsection -1 starts
  [Define if your assembler supports .subsection and .subsection -1 starts
   emitting at the beginning of your section.])])
   emitting at the beginning of your section.])])
gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as_weak,
gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as_weak,
 [2,2,0],,
 [2,2,0],,
 [      .weak foobar],,
 [      .weak foobar],,
[AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])])
[AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])])
gcc_GAS_CHECK_FEATURE([.weakref], gcc_cv_as_weakref,
gcc_GAS_CHECK_FEATURE([.weakref], gcc_cv_as_weakref,
 [2,17,0],,
 [2,17,0],,
 [      .weakref foobar, barfnot],,
 [      .weakref foobar, barfnot],,
[AC_DEFINE(HAVE_GAS_WEAKREF, 1, [Define if your assembler supports .weakref.])])
[AC_DEFINE(HAVE_GAS_WEAKREF, 1, [Define if your assembler supports .weakref.])])
gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
 [2,15,91],,
 [2,15,91],,
 [      .SPACE $TEXT$
 [      .SPACE $TEXT$
        .NSUBSPA $CODE$,COMDAT],,
        .NSUBSPA $CODE$,COMDAT],,
[AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])])
[AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])])
# .hidden needs to be supported in both the assembler and the linker,
# .hidden needs to be supported in both the assembler and the linker,
# because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
# because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
# This is irritatingly difficult to feature test for; we have to check the
# This is irritatingly difficult to feature test for; we have to check the
# date string after the version number.  If we've got an in-tree
# date string after the version number.  If we've got an in-tree
# ld, we don't know its patchlevel version, so we set the baseline at 2.13
# ld, we don't know its patchlevel version, so we set the baseline at 2.13
# to be safe.
# to be safe.
# The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
# The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
 [elf,2,13,0],,
 [elf,2,13,0],,
[       .hidden foobar
[       .hidden foobar
foobar:])
foobar:])
AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
[if test $in_tree_ld = yes ; then
[if test $in_tree_ld = yes ; then
  gcc_cv_ld_hidden=no
  gcc_cv_ld_hidden=no
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \
     && test $in_tree_ld_is_elf = yes; then
     && test $in_tree_ld_is_elf = yes; then
     gcc_cv_ld_hidden=yes
     gcc_cv_ld_hidden=yes
  fi
  fi
else
else
  gcc_cv_ld_hidden=yes
  gcc_cv_ld_hidden=yes
  ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
  ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
  if echo "$ld_ver" | grep GNU > /dev/null; then
  if echo "$ld_ver" | grep GNU > /dev/null; then
changequote(,)dnl
changequote(,)dnl
    ld_vers=`echo $ld_ver | sed -n \
    ld_vers=`echo $ld_ver | sed -n \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\)[  ].*$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\)[  ].*$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[     ].*$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[     ].*$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[       ].*$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[       ].*$,\1,p' \
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[   -].*$,\1,p'`
        -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[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'`
    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'`
    ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
    ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
    ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
    ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
    ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
    ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
    if test 0"$ld_date" -lt 20020404; then
    if test 0"$ld_date" -lt 20020404; then
      if test -n "$ld_date"; then
      if test -n "$ld_date"; then
        # If there was date string, but was earlier than 2002-04-04, fail
        # If there was date string, but was earlier than 2002-04-04, fail
        gcc_cv_ld_hidden=no
        gcc_cv_ld_hidden=no
      elif test -z "$ld_vers"; then
      elif test -z "$ld_vers"; then
        # If there was no date string nor ld version number, something is wrong
        # If there was no date string nor ld version number, something is wrong
        gcc_cv_ld_hidden=no
        gcc_cv_ld_hidden=no
      else
      else
        test -z "$ld_vers_patch" && ld_vers_patch=0
        test -z "$ld_vers_patch" && ld_vers_patch=0
        if test "$ld_vers_major" -lt 2; then
        if test "$ld_vers_major" -lt 2; then
          gcc_cv_ld_hidden=no
          gcc_cv_ld_hidden=no
        elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
        elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
          gcc_cv_ld_hidden="no"
          gcc_cv_ld_hidden="no"
        elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
        elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
          gcc_cv_ld_hidden=no
          gcc_cv_ld_hidden=no
        fi
        fi
      fi
      fi
changequote([,])dnl
changequote([,])dnl
    fi
    fi
  else
  else
    case "${target}" in
    case "${target}" in
      hppa64*-*-hpux* | ia64*-*-hpux*)
      hppa64*-*-hpux* | ia64*-*-hpux*)
        gcc_cv_ld_hidden=yes
        gcc_cv_ld_hidden=yes
        ;;
        ;;
      *)
      *)
        gcc_cv_ld_hidden=no
        gcc_cv_ld_hidden=no
        ;;
        ;;
    esac
    esac
  fi
  fi
fi])
fi])
libgcc_visibility=no
libgcc_visibility=no
AC_SUBST(libgcc_visibility)
AC_SUBST(libgcc_visibility)
GCC_TARGET_TEMPLATE([HAVE_GAS_HIDDEN])
GCC_TARGET_TEMPLATE([HAVE_GAS_HIDDEN])
if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
  libgcc_visibility=yes
  libgcc_visibility=yes
  AC_DEFINE(HAVE_GAS_HIDDEN, 1,
  AC_DEFINE(HAVE_GAS_HIDDEN, 1,
  [Define if your assembler and linker support .hidden.])
  [Define if your assembler and linker support .hidden.])
fi
fi
# Check if we have .[us]leb128, and support symbol arithmetic with it.
# Check if we have .[us]leb128, and support symbol arithmetic with it.
gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
  [elf,2,11,0],,
  [elf,2,11,0],,
[       .data
[       .data
        .uleb128 L2 - L1
        .uleb128 L2 - L1
L1:
L1:
        .uleb128 1280
        .uleb128 1280
        .sleb128 -1010
        .sleb128 -1010
L2:],
L2:],
 [# GAS versions before 2.11 do not support uleb128,
 [# GAS versions before 2.11 do not support uleb128,
  # despite appearing to.
  # despite appearing to.
  # ??? There exists an elf-specific test that will crash
  # ??? There exists an elf-specific test that will crash
  # the assembler.  Perhaps it's better to figure out whether
  # the assembler.  Perhaps it's better to figure out whether
  # arbitrary sections are supported and try the test.
  # arbitrary sections are supported and try the test.
  as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
  as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
  if echo "$as_ver" | grep GNU > /dev/null; then
  if echo "$as_ver" | grep GNU > /dev/null; then
changequote(,)dnl
changequote(,)dnl
    as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
    as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
    as_major=`echo $as_ver | sed 's/\..*//'`
    as_major=`echo $as_ver | sed 's/\..*//'`
    as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
    as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
changequote([,])dnl
changequote([,])dnl
    if test $as_major -eq 2 && test $as_minor -lt 11
    if test $as_major -eq 2 && test $as_minor -lt 11
    then :
    then :
    else gcc_cv_as_leb128=yes
    else gcc_cv_as_leb128=yes
    fi
    fi
  fi],
  fi],
  [AC_DEFINE(HAVE_AS_LEB128, 1,
  [AC_DEFINE(HAVE_AS_LEB128, 1,
    [Define if your assembler supports .sleb128 and .uleb128.])])
    [Define if your assembler supports .sleb128 and .uleb128.])])
# GAS versions up to and including 2.11.0 may mis-optimize
# GAS versions up to and including 2.11.0 may mis-optimize
# .eh_frame data.
# .eh_frame data.
gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
  [elf,2,12,0],,
  [elf,2,12,0],,
[       .text
[       .text
.LFB1:
.LFB1:
        .4byte  0
        .4byte  0
.L1:
.L1:
        .4byte  0
        .4byte  0
.LFE1:
.LFE1:
        .section        .eh_frame,"aw",@progbits
        .section        .eh_frame,"aw",@progbits
__FRAME_BEGIN__:
__FRAME_BEGIN__:
        .4byte  .LECIE1-.LSCIE1
        .4byte  .LECIE1-.LSCIE1
.LSCIE1:
.LSCIE1:
        .4byte  0x0
        .4byte  0x0
        .byte   0x1
        .byte   0x1
        .ascii "z\0"
        .ascii "z\0"
        .byte   0x1
        .byte   0x1
        .byte   0x78
        .byte   0x78
        .byte   0x1a
        .byte   0x1a
        .byte   0x0
        .byte   0x0
        .byte   0x4
        .byte   0x4
        .4byte  1
        .4byte  1
        .p2align 1
        .p2align 1
.LECIE1:
.LECIE1:
.LSFDE1:
.LSFDE1:
        .4byte  .LEFDE1-.LASFDE1
        .4byte  .LEFDE1-.LASFDE1
.LASFDE1:
.LASFDE1:
        .4byte  .LASFDE1-__FRAME_BEGIN__
        .4byte  .LASFDE1-__FRAME_BEGIN__
        .4byte  .LFB1
        .4byte  .LFB1
        .4byte  .LFE1-.LFB1
        .4byte  .LFE1-.LFB1
        .byte   0x4
        .byte   0x4
        .4byte  .LFE1-.LFB1
        .4byte  .LFE1-.LFB1
        .byte   0x4
        .byte   0x4
        .4byte  .L1-.LFB1
        .4byte  .L1-.LFB1
.LEFDE1:],
.LEFDE1:],
[  dnl # For autoconf 2.5x, must protect trailing spaces with @&t@.
[  dnl # For autoconf 2.5x, must protect trailing spaces with @&t@.
cat > conftest.lit <
cat > conftest.lit <
 0000 10000000 00000000 017a0001 781a0004  .........z..x...
 0000 10000000 00000000 017a0001 781a0004  .........z..x...
 0010 01000000 12000000 18000000 00000000  ................
 0010 01000000 12000000 18000000 00000000  ................
 0020 08000000 04080000 0044               .........D      @&t@
 0020 08000000 04080000 0044               .........D      @&t@
EOF
EOF
cat > conftest.big <
cat > conftest.big <
 0000 00000010 00000000 017a0001 781a0004  .........z..x...
 0000 00000010 00000000 017a0001 781a0004  .........z..x...
 0010 00000001 00000012 00000018 00000000  ................
 0010 00000001 00000012 00000018 00000000  ................
 0020 00000008 04000000 0844               .........D      @&t@
 0020 00000008 04000000 0844               .........D      @&t@
EOF
EOF
  # If the assembler didn't choke, and we can objdump,
  # If the assembler didn't choke, and we can objdump,
  # and we got the correct data, then succeed.
  # and we got the correct data, then succeed.
  # The text in the here-document typically retains its unix-style line
  # The text in the here-document typically retains its unix-style line
  # endings, while the output of objdump will use host line endings.
  # endings, while the output of objdump will use host line endings.
  # Therefore, use diff -b for the comparisons.
  # Therefore, use diff -b for the comparisons.
  if test x$gcc_cv_objdump != x \
  if test x$gcc_cv_objdump != x \
  && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
  && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
     | tail -3 > conftest.got \
     | tail -3 > conftest.got \
  && { diff -b conftest.lit conftest.got > /dev/null 2>&1 \
  && { diff -b conftest.lit conftest.got > /dev/null 2>&1 \
    || diff -b conftest.big conftest.got > /dev/null 2>&1; }
    || diff -b conftest.big conftest.got > /dev/null 2>&1; }
  then
  then
    gcc_cv_as_eh_frame=yes
    gcc_cv_as_eh_frame=yes
  elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
  elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
    gcc_cv_as_eh_frame=buggy
    gcc_cv_as_eh_frame=buggy
  else
  else
    # Uh oh, what do we do now?
    # Uh oh, what do we do now?
    gcc_cv_as_eh_frame=no
    gcc_cv_as_eh_frame=no
  fi])
  fi])
if test $gcc_cv_as_eh_frame = buggy; then
if test $gcc_cv_as_eh_frame = buggy; then
  AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
  AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
  [Define if your assembler mis-optimizes .eh_frame data.])
  [Define if your assembler mis-optimizes .eh_frame data.])
fi
fi
gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
 [elf,2,12,0], [--fatal-warnings],
 [elf,2,12,0], [--fatal-warnings],
 [.section .rodata.str, "aMS", @progbits, 1])
 [.section .rodata.str, "aMS", @progbits, 1])
if test $gcc_cv_as_shf_merge = no; then
if test $gcc_cv_as_shf_merge = no; then
  gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
  gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
    [elf,2,12,0], [--fatal-warnings],
    [elf,2,12,0], [--fatal-warnings],
    [.section .rodata.str, "aMS", %progbits, 1])
    [.section .rodata.str, "aMS", %progbits, 1])
fi
fi
AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
  [`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
  [`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
[Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
[Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group,
gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group,
 [elf,2,16,0], [--fatal-warnings],
 [elf,2,16,0], [--fatal-warnings],
 [.section .text,"axG",@progbits,.foo,comdat])
 [.section .text,"axG",@progbits,.foo,comdat])
if test $gcc_cv_as_comdat_group = yes; then
if test $gcc_cv_as_comdat_group = yes; then
  gcc_cv_as_comdat_group_percent=no
  gcc_cv_as_comdat_group_percent=no
else
else
 gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group_percent,
 gcc_GAS_CHECK_FEATURE(COMDAT group support, gcc_cv_as_comdat_group_percent,
   [elf,2,16,0], [--fatal-warnings],
   [elf,2,16,0], [--fatal-warnings],
   [.section .text,"axG",%progbits,.foo,comdat])
   [.section .text,"axG",%progbits,.foo,comdat])
fi
fi
if test $in_tree_ld != yes && test x"$ld_vers" != x; then
if test $in_tree_ld != yes && test x"$ld_vers" != x; then
  comdat_group=yes
  comdat_group=yes
  if test 0"$ld_date" -lt 20050308; then
  if test 0"$ld_date" -lt 20050308; then
    if test -n "$ld_date"; then
    if test -n "$ld_date"; then
      # If there was date string, but was earlier than 2005-03-08, fail
      # If there was date string, but was earlier than 2005-03-08, fail
      comdat_group=no
      comdat_group=no
    elif test "$ld_vers_major" -lt 2; then
    elif test "$ld_vers_major" -lt 2; then
      comdat_group=no
      comdat_group=no
    elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
    elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
      comdat_group=no
      comdat_group=no
    fi
    fi
  fi
  fi
else
else
  # assume linkers other than GNU ld don't support COMDAT group
  # assume linkers other than GNU ld don't support COMDAT group
  comdat_group=no
  comdat_group=no
fi
fi
if test $comdat_group = no; then
if test $comdat_group = no; then
  gcc_cv_as_comdat_group=no
  gcc_cv_as_comdat_group=no
  gcc_cv_as_comdat_group_percent=no
  gcc_cv_as_comdat_group_percent=no
fi
fi
AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
  [`if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi`],
  [`if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi`],
[Define 0/1 if your assembler and linker support COMDAT groups.])
[Define 0/1 if your assembler and linker support COMDAT groups.])
# Thread-local storage - the check is heavily parametrized.
# Thread-local storage - the check is heavily parametrized.
conftest_s=
conftest_s=
tls_first_major=
tls_first_major=
tls_first_minor=
tls_first_minor=
tls_as_opt=
tls_as_opt=
case "$target" in
case "$target" in
changequote(,)dnl
changequote(,)dnl
  alpha*-*-*)
  alpha*-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        ldq     $27,__tls_get_addr($29)         !literal!1
        ldq     $27,__tls_get_addr($29)         !literal!1
        lda     $16,foo($29)                    !tlsgd!1
        lda     $16,foo($29)                    !tlsgd!1
        jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
        jsr     $26,($27),__tls_get_addr        !lituse_tlsgd!1
        ldq     $27,__tls_get_addr($29)         !literal!2
        ldq     $27,__tls_get_addr($29)         !literal!2
        lda     $16,foo($29)                    !tlsldm!2
        lda     $16,foo($29)                    !tlsldm!2
        jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
        jsr     $26,($27),__tls_get_addr        !lituse_tlsldm!2
        ldq     $1,foo($29)                     !gotdtprel
        ldq     $1,foo($29)                     !gotdtprel
        ldah    $2,foo($29)                     !dtprelhi
        ldah    $2,foo($29)                     !dtprelhi
        lda     $3,foo($2)                      !dtprello
        lda     $3,foo($2)                      !dtprello
        lda     $4,foo($29)                     !dtprel
        lda     $4,foo($29)                     !dtprel
        ldq     $1,foo($29)                     !gottprel
        ldq     $1,foo($29)                     !gottprel
        ldah    $2,foo($29)                     !tprelhi
        ldah    $2,foo($29)                     !tprelhi
        lda     $3,foo($2)                      !tprello
        lda     $3,foo($2)                      !tprello
        lda     $4,foo($29)                     !tprel'
        lda     $4,foo($29)                     !tprel'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=13
        tls_first_minor=13
        tls_as_opt=--fatal-warnings
        tls_as_opt=--fatal-warnings
        ;;
        ;;
  frv*-*-*)
  frv*-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
x:      .long   25
x:      .long   25
        .text
        .text
        call    #gettlsoff(x)'
        call    #gettlsoff(x)'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        ;;
        ;;
  hppa*-*-linux*)
  hppa*-*-linux*)
    conftest_s='
    conftest_s='
t1:     .reg    %r20
t1:     .reg    %r20
t2:     .reg    %r21
t2:     .reg    %r21
gp:     .reg    %r19
gp:     .reg    %r19
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        .align  4
        .align  4
        addil LT%foo-$tls_gdidx$,gp
        addil LT%foo-$tls_gdidx$,gp
        ldo RT%foo-$tls_gdidx$(%r1),%arg0
        ldo RT%foo-$tls_gdidx$(%r1),%arg0
        b __tls_get_addr
        b __tls_get_addr
        nop
        nop
        addil LT%foo-$tls_ldidx$,gp
        addil LT%foo-$tls_ldidx$,gp
        b __tls_get_addr
        b __tls_get_addr
        ldo RT%foo-$tls_ldidx$(%r1),%arg0
        ldo RT%foo-$tls_ldidx$(%r1),%arg0
        addil LR%foo-$tls_dtpoff$,%ret0
        addil LR%foo-$tls_dtpoff$,%ret0
        ldo RR%foo-$tls_dtpoff$(%r1),%t1
        ldo RR%foo-$tls_dtpoff$(%r1),%t1
        mfctl %cr27,%t1
        mfctl %cr27,%t1
        addil LT%foo-$tls_ieoff$,gp
        addil LT%foo-$tls_ieoff$,gp
        ldw RT%foo-$tls_ieoff$(%r1),%t2
        ldw RT%foo-$tls_ieoff$(%r1),%t2
        add %t1,%t2,%t3
        add %t1,%t2,%t3
        mfctl %cr27,%t1
        mfctl %cr27,%t1
        addil LR%foo-$tls_leoff$,%t1
        addil LR%foo-$tls_leoff$,%t1
        ldo RR%foo-$tls_leoff$(%r1),%t2'
        ldo RR%foo-$tls_leoff$(%r1),%t2'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=15
        tls_first_minor=15
        tls_as_opt=--fatal-warnings
        tls_as_opt=--fatal-warnings
        ;;
        ;;
  arm*-*-*)
  arm*-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",%progbits
        .section ".tdata","awT",%progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
.word foo(gottpoff)
.word foo(gottpoff)
.word foo(tpoff)
.word foo(tpoff)
.word foo(tlsgd)
.word foo(tlsgd)
.word foo(tlsldm)
.word foo(tlsldm)
.word foo(tlsldo)'
.word foo(tlsldo)'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=17
        tls_first_minor=17
        ;;
        ;;
  i[34567]86-*-*)
  i[34567]86-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        movl    %gs:0, %eax
        movl    %gs:0, %eax
        leal    foo@TLSGD(,%ebx,1), %eax
        leal    foo@TLSGD(,%ebx,1), %eax
        leal    foo@TLSLDM(%ebx), %eax
        leal    foo@TLSLDM(%ebx), %eax
        leal    foo@DTPOFF(%eax), %edx
        leal    foo@DTPOFF(%eax), %edx
        movl    foo@GOTTPOFF(%ebx), %eax
        movl    foo@GOTTPOFF(%ebx), %eax
        subl    foo@GOTTPOFF(%ebx), %eax
        subl    foo@GOTTPOFF(%ebx), %eax
        addl    foo@GOTNTPOFF(%ebx), %eax
        addl    foo@GOTNTPOFF(%ebx), %eax
        movl    foo@INDNTPOFF, %eax
        movl    foo@INDNTPOFF, %eax
        movl    $foo@TPOFF, %eax
        movl    $foo@TPOFF, %eax
        subl    $foo@TPOFF, %eax
        subl    $foo@TPOFF, %eax
        leal    foo@NTPOFF(%ecx), %eax'
        leal    foo@NTPOFF(%ecx), %eax'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt=--fatal-warnings
        tls_as_opt=--fatal-warnings
        ;;
        ;;
  x86_64-*-*)
  x86_64-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        movq    %fs:0, %rax
        movq    %fs:0, %rax
        leaq    foo@TLSGD(%rip), %rdi
        leaq    foo@TLSGD(%rip), %rdi
        leaq    foo@TLSLD(%rip), %rdi
        leaq    foo@TLSLD(%rip), %rdi
        leaq    foo@DTPOFF(%rax), %rdx
        leaq    foo@DTPOFF(%rax), %rdx
        movq    foo@GOTTPOFF(%rip), %rax
        movq    foo@GOTTPOFF(%rip), %rax
        movq    $foo@TPOFF, %rax'
        movq    $foo@TPOFF, %rax'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt=--fatal-warnings
        tls_as_opt=--fatal-warnings
        ;;
        ;;
  ia64-*-*)
  ia64-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    data8   25
foo:    data8   25
        .text
        .text
        addl    r16 = @ltoff(@dtpmod(foo#)), gp
        addl    r16 = @ltoff(@dtpmod(foo#)), gp
        addl    r17 = @ltoff(@dtprel(foo#)), gp
        addl    r17 = @ltoff(@dtprel(foo#)), gp
        addl    r18 = @ltoff(@tprel(foo#)), gp
        addl    r18 = @ltoff(@tprel(foo#)), gp
        addl    r19 = @dtprel(foo#), gp
        addl    r19 = @dtprel(foo#), gp
        adds    r21 = @dtprel(foo#), r13
        adds    r21 = @dtprel(foo#), r13
        movl    r23 = @dtprel(foo#)
        movl    r23 = @dtprel(foo#)
        addl    r20 = @tprel(foo#), gp
        addl    r20 = @tprel(foo#), gp
        adds    r22 = @tprel(foo#), r13
        adds    r22 = @tprel(foo#), r13
        movl    r24 = @tprel(foo#)'
        movl    r24 = @tprel(foo#)'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=13
        tls_first_minor=13
        tls_as_opt=--fatal-warnings
        tls_as_opt=--fatal-warnings
        ;;
        ;;
  mips*-*-*)
  mips*-*-*)
    conftest_s='
    conftest_s='
        .section .tdata,"awT",@progbits
        .section .tdata,"awT",@progbits
x:
x:
        .word 2
        .word 2
        .text
        .text
        addiu $4, $28, %tlsgd(x)
        addiu $4, $28, %tlsgd(x)
        addiu $4, $28, %tlsldm(x)
        addiu $4, $28, %tlsldm(x)
        lui $4, %dtprel_hi(x)
        lui $4, %dtprel_hi(x)
        addiu $4, $4, %dtprel_lo(x)
        addiu $4, $4, %dtprel_lo(x)
        lw $4, %gottprel(x)($28)
        lw $4, %gottprel(x)($28)
        lui $4, %tprel_hi(x)
        lui $4, %tprel_hi(x)
        addiu $4, $4, %tprel_lo(x)'
        addiu $4, $4, %tprel_lo(x)'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=16
        tls_first_minor=16
        tls_as_opt='-32 --fatal-warnings'
        tls_as_opt='-32 --fatal-warnings'
        ;;
        ;;
  powerpc-*-*)
  powerpc-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
        .align 2
        .align 2
ld0:    .space 4
ld0:    .space 4
ld1:    .space 4
ld1:    .space 4
x1:     .space 4
x1:     .space 4
x2:     .space 4
x2:     .space 4
x3:     .space 4
x3:     .space 4
        .text
        .text
        addi 3,31,ld0@got@tlsgd
        addi 3,31,ld0@got@tlsgd
        bl __tls_get_addr
        bl __tls_get_addr
        addi 3,31,x1@got@tlsld
        addi 3,31,x1@got@tlsld
        bl __tls_get_addr
        bl __tls_get_addr
        addi 9,3,x1@dtprel
        addi 9,3,x1@dtprel
        addis 9,3,x2@dtprel@ha
        addis 9,3,x2@dtprel@ha
        addi 9,9,x2@dtprel@l
        addi 9,9,x2@dtprel@l
        lwz 9,x3@got@tprel(31)
        lwz 9,x3@got@tprel(31)
        add 9,9,x@tls
        add 9,9,x@tls
        addi 9,2,x1@tprel
        addi 9,2,x1@tprel
        addis 9,2,x2@tprel@ha
        addis 9,2,x2@tprel@ha
        addi 9,9,x2@tprel@l'
        addi 9,9,x2@tprel@l'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt="-a32 --fatal-warnings"
        tls_as_opt="-a32 --fatal-warnings"
        ;;
        ;;
  powerpc64-*-*)
  powerpc64-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
        .align 3
        .align 3
ld0:    .space 8
ld0:    .space 8
ld1:    .space 8
ld1:    .space 8
x1:     .space 8
x1:     .space 8
x2:     .space 8
x2:     .space 8
x3:     .space 8
x3:     .space 8
        .text
        .text
        addi 3,2,ld0@got@tlsgd
        addi 3,2,ld0@got@tlsgd
        bl .__tls_get_addr
        bl .__tls_get_addr
        nop
        nop
        addi 3,2,ld1@toc
        addi 3,2,ld1@toc
        bl .__tls_get_addr
        bl .__tls_get_addr
        nop
        nop
        addi 3,2,x1@got@tlsld
        addi 3,2,x1@got@tlsld
        bl .__tls_get_addr
        bl .__tls_get_addr
        nop
        nop
        addi 9,3,x1@dtprel
        addi 9,3,x1@dtprel
        bl .__tls_get_addr
        bl .__tls_get_addr
        nop
        nop
        addis 9,3,x2@dtprel@ha
        addis 9,3,x2@dtprel@ha
        addi 9,9,x2@dtprel@l
        addi 9,9,x2@dtprel@l
        bl .__tls_get_addr
        bl .__tls_get_addr
        nop
        nop
        ld 9,x3@got@dtprel(2)
        ld 9,x3@got@dtprel(2)
        add 9,9,3
        add 9,9,3
        bl .__tls_get_addr
        bl .__tls_get_addr
        nop'
        nop'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt="-a64 --fatal-warnings"
        tls_as_opt="-a64 --fatal-warnings"
        ;;
        ;;
  s390-*-*)
  s390-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        .long   foo@TLSGD
        .long   foo@TLSGD
        .long   foo@TLSLDM
        .long   foo@TLSLDM
        .long   foo@DTPOFF
        .long   foo@DTPOFF
        .long   foo@NTPOFF
        .long   foo@NTPOFF
        .long   foo@GOTNTPOFF
        .long   foo@GOTNTPOFF
        .long   foo@INDNTPOFF
        .long   foo@INDNTPOFF
        l       %r1,foo@GOTNTPOFF(%r12)
        l       %r1,foo@GOTNTPOFF(%r12)
        l       %r1,0(%r1):tls_load:foo
        l       %r1,0(%r1):tls_load:foo
        bas     %r14,0(%r1,%r13):tls_gdcall:foo
        bas     %r14,0(%r1,%r13):tls_gdcall:foo
        bas     %r14,0(%r1,%r13):tls_ldcall:foo'
        bas     %r14,0(%r1,%r13):tls_ldcall:foo'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt="-m31 --fatal-warnings"
        tls_as_opt="-m31 --fatal-warnings"
        ;;
        ;;
  s390x-*-*)
  s390x-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        .quad   foo@TLSGD
        .quad   foo@TLSGD
        .quad   foo@TLSLDM
        .quad   foo@TLSLDM
        .quad   foo@DTPOFF
        .quad   foo@DTPOFF
        .quad   foo@NTPOFF
        .quad   foo@NTPOFF
        .quad   foo@GOTNTPOFF
        .quad   foo@GOTNTPOFF
        lg      %r1,foo@GOTNTPOFF(%r12)
        lg      %r1,foo@GOTNTPOFF(%r12)
        larl    %r1,foo@INDNTPOFF
        larl    %r1,foo@INDNTPOFF
        brasl   %r14,__tls_get_offset@PLT:tls_gdcall:foo
        brasl   %r14,__tls_get_offset@PLT:tls_gdcall:foo
        brasl   %r14,__tls_get_offset@PLT:tls_ldcall:foo'
        brasl   %r14,__tls_get_offset@PLT:tls_ldcall:foo'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt="-m64 -Aesame --fatal-warnings"
        tls_as_opt="-m64 -Aesame --fatal-warnings"
        ;;
        ;;
  sh-*-* | sh[34]-*-*)
  sh-*-* | sh[34]-*-*)
    conftest_s='
    conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        .long   foo@TLSGD
        .long   foo@TLSGD
        .long   foo@TLSLDM
        .long   foo@TLSLDM
        .long   foo@DTPOFF
        .long   foo@DTPOFF
        .long   foo@GOTTPOFF
        .long   foo@GOTTPOFF
        .long   foo@TPOFF'
        .long   foo@TPOFF'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=13
        tls_first_minor=13
        tls_as_opt=--fatal-warnings
        tls_as_opt=--fatal-warnings
        ;;
        ;;
  sparc*-*-*)
  sparc*-*-*)
    case "$target" in
    case "$target" in
      sparc*-sun-solaris2.[56789]*)
      sparc*-sun-solaris2.[56789]*)
        # TLS was introduced in the Solaris 9 4/04 release but
        # TLS was introduced in the Solaris 9 4/04 release but
        # we do not enable it by default on Solaris 9 either.
        # we do not enable it by default on Solaris 9 either.
        if test "x$enable_tls" = xyes ; then
        if test "x$enable_tls" = xyes ; then
          on_solaris=yes
          on_solaris=yes
        else
        else
          enable_tls=no;
          enable_tls=no;
        fi
        fi
        ;;
        ;;
      sparc*-sun-solaris2.*)
      sparc*-sun-solaris2.*)
        on_solaris=yes
        on_solaris=yes
        ;;
        ;;
      *)
      *)
        on_solaris=no
        on_solaris=no
        ;;
        ;;
    esac
    esac
    if test x$on_solaris = xyes && test x$gas_flag = xno; then
    if test x$on_solaris = xyes && test x$gas_flag = xno; then
      conftest_s='
      conftest_s='
        .section ".tdata",#alloc,#write,#tls
        .section ".tdata",#alloc,#write,#tls
foo:    .long   25
foo:    .long   25
        .text
        .text
        sethi   %tgd_hi22(foo), %o0
        sethi   %tgd_hi22(foo), %o0
        add     %o0, %tgd_lo10(foo), %o1
        add     %o0, %tgd_lo10(foo), %o1
        add     %l7, %o1, %o0, %tgd_add(foo)
        add     %l7, %o1, %o0, %tgd_add(foo)
        call    __tls_get_addr, %tgd_call(foo)
        call    __tls_get_addr, %tgd_call(foo)
        sethi   %tldm_hi22(foo), %l1
        sethi   %tldm_hi22(foo), %l1
        add     %l1, %tldm_lo10(foo), %l2
        add     %l1, %tldm_lo10(foo), %l2
        add     %l7, %l2, %o0, %tldm_add(foo)
        add     %l7, %l2, %o0, %tldm_add(foo)
        call    __tls_get_addr, %tldm_call(foo)
        call    __tls_get_addr, %tldm_call(foo)
        sethi   %tldo_hix22(foo), %l3
        sethi   %tldo_hix22(foo), %l3
        xor     %l3, %tldo_lox10(foo), %l4
        xor     %l3, %tldo_lox10(foo), %l4
        add     %o0, %l4, %l5, %tldo_add(foo)
        add     %o0, %l4, %l5, %tldo_add(foo)
        sethi   %tie_hi22(foo), %o3
        sethi   %tie_hi22(foo), %o3
        add     %o3, %tie_lo10(foo), %o3
        add     %o3, %tie_lo10(foo), %o3
        ld      [%l7 + %o3], %o2, %tie_ld(foo)
        ld      [%l7 + %o3], %o2, %tie_ld(foo)
        add     %g7, %o2, %o4, %tie_add(foo)
        add     %g7, %o2, %o4, %tie_add(foo)
        sethi   %tle_hix22(foo), %l1
        sethi   %tle_hix22(foo), %l1
        xor     %l1, %tle_lox10(foo), %o5
        xor     %l1, %tle_lox10(foo), %o5
        ld      [%g7 + %o5], %o1'
        ld      [%g7 + %o5], %o1'
        tls_first_major=0
        tls_first_major=0
        tls_first_minor=0
        tls_first_minor=0
    else
    else
      conftest_s='
      conftest_s='
        .section ".tdata","awT",@progbits
        .section ".tdata","awT",@progbits
foo:    .long   25
foo:    .long   25
        .text
        .text
        sethi   %tgd_hi22(foo), %o0
        sethi   %tgd_hi22(foo), %o0
        add     %o0, %tgd_lo10(foo), %o1
        add     %o0, %tgd_lo10(foo), %o1
        add     %l7, %o1, %o0, %tgd_add(foo)
        add     %l7, %o1, %o0, %tgd_add(foo)
        call    __tls_get_addr, %tgd_call(foo)
        call    __tls_get_addr, %tgd_call(foo)
        sethi   %tldm_hi22(foo), %l1
        sethi   %tldm_hi22(foo), %l1
        add     %l1, %tldm_lo10(foo), %l2
        add     %l1, %tldm_lo10(foo), %l2
        add     %l7, %l2, %o0, %tldm_add(foo)
        add     %l7, %l2, %o0, %tldm_add(foo)
        call    __tls_get_addr, %tldm_call(foo)
        call    __tls_get_addr, %tldm_call(foo)
        sethi   %tldo_hix22(foo), %l3
        sethi   %tldo_hix22(foo), %l3
        xor     %l3, %tldo_lox10(foo), %l4
        xor     %l3, %tldo_lox10(foo), %l4
        add     %o0, %l4, %l5, %tldo_add(foo)
        add     %o0, %l4, %l5, %tldo_add(foo)
        sethi   %tie_hi22(foo), %o3
        sethi   %tie_hi22(foo), %o3
        add     %o3, %tie_lo10(foo), %o3
        add     %o3, %tie_lo10(foo), %o3
        ld      [%l7 + %o3], %o2, %tie_ld(foo)
        ld      [%l7 + %o3], %o2, %tie_ld(foo)
        add     %g7, %o2, %o4, %tie_add(foo)
        add     %g7, %o2, %o4, %tie_add(foo)
        sethi   %tle_hix22(foo), %l1
        sethi   %tle_hix22(foo), %l1
        xor     %l1, %tle_lox10(foo), %o5
        xor     %l1, %tle_lox10(foo), %o5
        ld      [%g7 + %o5], %o1'
        ld      [%g7 + %o5], %o1'
        tls_first_major=2
        tls_first_major=2
        tls_first_minor=14
        tls_first_minor=14
        tls_as_opt="-32 --fatal-warnings"
        tls_as_opt="-32 --fatal-warnings"
      fi
      fi
        ;;
        ;;
changequote([,])dnl
changequote([,])dnl
esac
esac
set_have_as_tls=no
set_have_as_tls=no
if test "x$enable_tls" = xno ; then
if test "x$enable_tls" = xno ; then
  : # TLS explicitly disabled.
  : # TLS explicitly disabled.
elif test "x$enable_tls" = xyes ; then
elif test "x$enable_tls" = xyes ; then
  set_have_as_tls=yes # TLS explicitly enabled.
  set_have_as_tls=yes # TLS explicitly enabled.
elif test -z "$tls_first_major"; then
elif test -z "$tls_first_major"; then
  : # If we don't have a check, assume no support.
  : # If we don't have a check, assume no support.
else
else
  gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
  gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
  [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
  [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
  [set_have_as_tls=yes])
  [set_have_as_tls=yes])
fi
fi
if test $set_have_as_tls = yes ; then
if test $set_have_as_tls = yes ; then
  AC_DEFINE(HAVE_AS_TLS, 1,
  AC_DEFINE(HAVE_AS_TLS, 1,
            [Define if your assembler supports thread-local storage.])
            [Define if your assembler supports thread-local storage.])
fi
fi
# Target-specific assembler checks.
# Target-specific assembler checks.
AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option)
AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option)
gcc_cv_ld_static_dynamic=no
gcc_cv_ld_static_dynamic=no
if test $in_tree_ld = yes ; then
if test $in_tree_ld = yes ; then
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then
    gcc_cv_ld_static_dynamic=yes
    gcc_cv_ld_static_dynamic=yes
  fi
  fi
elif test x$gcc_cv_ld != x; then
elif test x$gcc_cv_ld != x; then
        # Check if linker supports -Bstatic/-Bdynamic option
        # Check if linker supports -Bstatic/-Bdynamic option
        if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \
        if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \
          && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then
          && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then
                gcc_cv_ld_static_dynamic=yes
                gcc_cv_ld_static_dynamic=yes
        fi
        fi
fi
fi
if test x"$gcc_cv_ld_static_dynamic" = xyes; then
if test x"$gcc_cv_ld_static_dynamic" = xyes; then
        AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1,
        AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1,
[Define if your linker supports -Bstatic/-Bdynamic option.])
[Define if your linker supports -Bstatic/-Bdynamic option.])
fi
fi
AC_MSG_RESULT($gcc_cv_ld_static_dynamic)
AC_MSG_RESULT($gcc_cv_ld_static_dynamic)
if test x"$demangler_in_ld" = xyes; then
if test x"$demangler_in_ld" = xyes; then
  AC_MSG_CHECKING(linker --demangle support)
  AC_MSG_CHECKING(linker --demangle support)
  gcc_cv_ld_demangle=no
  gcc_cv_ld_demangle=no
  if test $in_tree_ld = yes; then
  if test $in_tree_ld = yes; then
    if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 14 -o "$gcc_cv_gld_major_version" -gt 2; then \
    if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 14 -o "$gcc_cv_gld_major_version" -gt 2; then \
      gcc_cv_ld_demangle=yes
      gcc_cv_ld_demangle=yes
    fi
    fi
  elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then
  elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then
    # Check if the GNU linker supports --demangle option
    # Check if the GNU linker supports --demangle option
    if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then
    if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then
      gcc_cv_ld_demangle=yes
      gcc_cv_ld_demangle=yes
    fi
    fi
  fi
  fi
  if test x"$gcc_cv_ld_demangle" = xyes; then
  if test x"$gcc_cv_ld_demangle" = xyes; then
    AC_DEFINE(HAVE_LD_DEMANGLE, 1,
    AC_DEFINE(HAVE_LD_DEMANGLE, 1,
[Define if your linker supports --demangle option.])
[Define if your linker supports --demangle option.])
  fi
  fi
  AC_MSG_RESULT($gcc_cv_ld_demangle)
  AC_MSG_RESULT($gcc_cv_ld_demangle)
fi
fi
case "$target" in
case "$target" in
  # All TARGET_ABI_OSF targets.
  # All TARGET_ABI_OSF targets.
  alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
  alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
    gcc_GAS_CHECK_FEATURE([explicit relocation support],
    gcc_GAS_CHECK_FEATURE([explicit relocation support],
        gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
        gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
[       .set nomacro
[       .set nomacro
        .text
        .text
        extbl   $3, $2, $3      !lituse_bytoff!1
        extbl   $3, $2, $3      !lituse_bytoff!1
        ldq     $2, a($29)      !literal!1
        ldq     $2, a($29)      !literal!1
        ldq     $4, b($29)      !literal!2
        ldq     $4, b($29)      !literal!2
        ldq_u   $3, 0($2)       !lituse_base!1
        ldq_u   $3, 0($2)       !lituse_base!1
        ldq     $27, f($29)     !literal!5
        ldq     $27, f($29)     !literal!5
        jsr     $26, ($27), f   !lituse_jsr!5
        jsr     $26, ($27), f   !lituse_jsr!5
        ldah    $29, 0($26)     !gpdisp!3
        ldah    $29, 0($26)     !gpdisp!3
        lda     $0, c($29)      !gprel
        lda     $0, c($29)      !gprel
        ldah    $1, d($29)      !gprelhigh
        ldah    $1, d($29)      !gprelhigh
        lda     $1, d($1)       !gprellow
        lda     $1, d($1)       !gprellow
        lda     $29, 0($29)     !gpdisp!3],,
        lda     $29, 0($29)     !gpdisp!3],,
    [AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
    [AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
  [Define if your assembler supports explicit relocations.])])
  [Define if your assembler supports explicit relocations.])])
    gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
    gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
        gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
        gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
[       .set nomacro
[       .set nomacro
        .text
        .text
        ldq     $27, a($29)     !literal!1
        ldq     $27, a($29)     !literal!1
        jsr     $26, ($27), a   !lituse_jsrdirect!1],,
        jsr     $26, ($27), a   !lituse_jsrdirect!1],,
    [AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
    [AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
  [Define if your assembler supports the lituse_jsrdirect relocation.])])
  [Define if your assembler supports the lituse_jsrdirect relocation.])])
    ;;
    ;;
  cris-*-*)
  cris-*-*)
    gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
    gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
      gcc_cv_as_cris_no_mul_bug,[2,15,91],
      gcc_cv_as_cris_no_mul_bug,[2,15,91],
      [-no-mul-bug-abort], [.text],,
      [-no-mul-bug-abort], [.text],,
      [AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
      [AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
                [Define if your assembler supports the -no-mul-bug-abort option.])])
                [Define if your assembler supports the -no-mul-bug-abort option.])])
    ;;
    ;;
  sparc*-*-*)
  sparc*-*-*)
    gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
    gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
      [.register %g2, #scratch],,
      [.register %g2, #scratch],,
      [AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
      [AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
                [Define if your assembler supports .register.])])
                [Define if your assembler supports .register.])])
    gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
    gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
      [-relax], [.text],,
      [-relax], [.text],,
      [AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
      [AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
                [Define if your assembler supports -relax option.])])
                [Define if your assembler supports -relax option.])])
    gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
    gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
      gcc_cv_as_sparc_ua_pcrel,,
      gcc_cv_as_sparc_ua_pcrel,,
      [-K PIC],
      [-K PIC],
[.text
[.text
foo:
foo:
        nop
        nop
.data
.data
.align 4
.align 4
.byte 0
.byte 0
.uaword %r_disp32(foo)],
.uaword %r_disp32(foo)],
      [if test x$gcc_cv_ld != x \
      [if test x$gcc_cv_ld != x \
       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
         gcc_cv_as_sparc_ua_pcrel=yes
         gcc_cv_as_sparc_ua_pcrel=yes
       fi
       fi
       rm -f conftest],
       rm -f conftest],
      [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
      [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
                [Define if your assembler and linker support unaligned PC relative relocs.])
                [Define if your assembler and linker support unaligned PC relative relocs.])
      gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs against hidden symbols],
      gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs against hidden symbols],
        gcc_cv_as_sparc_ua_pcrel_hidden,,
        gcc_cv_as_sparc_ua_pcrel_hidden,,
        [-K PIC],
        [-K PIC],
[.data
[.data
.align 4
.align 4
.byte 0x31
.byte 0x31
.uaword %r_disp32(foo)
.uaword %r_disp32(foo)
.byte 0x32, 0x33, 0x34
.byte 0x32, 0x33, 0x34
.global foo
.global foo
.hidden foo
.hidden foo
foo:
foo:
.skip 4],
.skip 4],
        [if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
        [if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
         && $gcc_cv_ld -o conftest conftest.o -G > /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 \
         && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
            | grep ' 31000000 07323334' > /dev/null 2>&1; then
            | grep ' 31000000 07323334' > /dev/null 2>&1; then
            if $gcc_cv_objdump -R conftest 2> /dev/null \
            if $gcc_cv_objdump -R conftest 2> /dev/null \
               | grep 'DISP32' > /dev/null 2>&1; then
               | grep 'DISP32' > /dev/null 2>&1; then
                :
                :
            else
            else
                gcc_cv_as_sparc_ua_pcrel_hidden=yes
                gcc_cv_as_sparc_ua_pcrel_hidden=yes
            fi
            fi
         fi
         fi
         rm -f conftest],
         rm -f conftest],
         [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
         [AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
                   [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])])
                   [Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])])
    ]) # unaligned pcrel relocs
    ]) # unaligned pcrel relocs
    gcc_GAS_CHECK_FEATURE([offsetable %lo()],
    gcc_GAS_CHECK_FEATURE([offsetable %lo()],
      gcc_cv_as_sparc_offsetable_lo10,,
      gcc_cv_as_sparc_offsetable_lo10,,
      [-xarch=v9],
      [-xarch=v9],
[.text
[.text
        or %g1, %lo(ab) + 12, %g1
        or %g1, %lo(ab) + 12, %g1
        or %g1, %lo(ab + 12), %g1],
        or %g1, %lo(ab + 12), %g1],
      [if test x$gcc_cv_objdump != x \
      [if test x$gcc_cv_objdump != x \
       && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
       && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
          | grep ' 82106000 82106000' > /dev/null 2>&1; then
          | grep ' 82106000 82106000' > /dev/null 2>&1; then
         gcc_cv_as_sparc_offsetable_lo10=yes
         gcc_cv_as_sparc_offsetable_lo10=yes
       fi],
       fi],
       [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
       [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
                 [Define if your assembler supports offsetable %lo().])])
                 [Define if your assembler supports offsetable %lo().])])
    ;;
    ;;
changequote(,)dnl
changequote(,)dnl
  i[34567]86-*-* | x86_64-*-*)
  i[34567]86-*-* | x86_64-*-*)
changequote([,])dnl
changequote([,])dnl
    case $target_os in
    case $target_os in
      cygwin* | pe | mingw32*)
      cygwin* | pe | mingw32*)
        # Used for DWARF 2 in PE
        # Used for DWARF 2 in PE
        gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
        gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
          gcc_cv_as_ix86_pe_secrel32,
          gcc_cv_as_ix86_pe_secrel32,
          [2,15,91],,
          [2,15,91],,
[.text
[.text
foo:    nop
foo:    nop
.data
.data
        .secrel32 foo],
        .secrel32 foo],
          [if test x$gcc_cv_ld != x \
          [if test x$gcc_cv_ld != x \
           && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then
           && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then
             gcc_cv_as_ix86_pe_secrel32=yes
             gcc_cv_as_ix86_pe_secrel32=yes
           fi
           fi
           rm -f conftest],
           rm -f conftest],
          [AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
          [AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
            [Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
            [Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
        ;;
        ;;
    esac
    esac
    gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
    gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
       gcc_cv_as_ix86_filds_fists,
       gcc_cv_as_ix86_filds_fists,
      [2,9,0],, [filds mem; fists mem],,
      [2,9,0],, [filds mem; fists mem],,
      [AC_DEFINE(HAVE_GAS_FILDS_FISTS, 1,
      [AC_DEFINE(HAVE_GAS_FILDS_FISTS, 1,
        [Define if your assembler uses the new HImode fild and fist notation.])])
        [Define if your assembler uses the new HImode fild and fist notation.])])
    gcc_GAS_CHECK_FEATURE([cmov syntax],
    gcc_GAS_CHECK_FEATURE([cmov syntax],
      gcc_cv_as_ix86_cmov_sun_syntax,,,
      gcc_cv_as_ix86_cmov_sun_syntax,,,
      [cmovl.l %edx, %eax],,
      [cmovl.l %edx, %eax],,
      [AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
      [AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
        [Define if your assembler supports the Sun syntax for cmov.])])
        [Define if your assembler supports the Sun syntax for cmov.])])
    gcc_GAS_CHECK_FEATURE([ffreep mnemonic],
    gcc_GAS_CHECK_FEATURE([ffreep mnemonic],
      gcc_cv_as_ix86_ffreep,,,
      gcc_cv_as_ix86_ffreep,,,
      [ffreep %st(1)],,
      [ffreep %st(1)],,
      [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
      [AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
        [Define if your assembler supports the ffreep mnemonic.])])
        [Define if your assembler supports the ffreep mnemonic.])])
    # This one is used unconditionally by i386.[ch]; it is to be defined
    # This one is used unconditionally by i386.[ch]; it is to be defined
    # to 1 if the feature is present, 0 otherwise.
    # to 1 if the feature is present, 0 otherwise.
    gcc_GAS_CHECK_FEATURE([GOTOFF in data],
    gcc_GAS_CHECK_FEATURE([GOTOFF in data],
        gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
        gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
[       .text
[       .text
.L0:
.L0:
        nop
        nop
        .data
        .data
        .long .L0@GOTOFF])
        .long .L0@GOTOFF])
    AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
    AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
      [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
      [`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
      [Define true if the assembler supports '.long foo@GOTOFF'.])
      [Define true if the assembler supports '.long foo@GOTOFF'.])
    ;;
    ;;
  ia64*-*-*)
  ia64*-*-*)
    gcc_GAS_CHECK_FEATURE([ltoffx and ldxmov relocs],
    gcc_GAS_CHECK_FEATURE([ltoffx and ldxmov relocs],
        gcc_cv_as_ia64_ltoffx_ldxmov_relocs, [2,14,0],,
        gcc_cv_as_ia64_ltoffx_ldxmov_relocs, [2,14,0],,
[       .text
[       .text
        addl r15 = @ltoffx(x#), gp
        addl r15 = @ltoffx(x#), gp
        ;;
        ;;
        ld8.mov r16 = [[r15]], x#],,
        ld8.mov r16 = [[r15]], x#],,
    [AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
    [AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
          [Define if your assembler supports ltoffx and ldxmov relocations.])])
          [Define if your assembler supports ltoffx and ldxmov relocations.])])
    ;;
    ;;
  powerpc*-*-*)
  powerpc*-*-*)
    case $target in
    case $target in
      *-*-aix*) conftest_s='    .machine "pwr5"
      *-*-aix*) conftest_s='    .machine "pwr5"
        .csect .text[[PR]]
        .csect .text[[PR]]
        mfcr 3,128';;
        mfcr 3,128';;
      *-*-darwin*)
      *-*-darwin*)
        gcc_GAS_CHECK_FEATURE([.machine directive support],
        gcc_GAS_CHECK_FEATURE([.machine directive support],
          gcc_cv_as_machine_directive,,,
          gcc_cv_as_machine_directive,,,
          [     .machine ppc7400])
          [     .machine ppc7400])
        if test x$gcc_cv_as_machine_directive != xyes; then
        if test x$gcc_cv_as_machine_directive != xyes; then
          echo "*** This target requires an assembler supporting \".machine\"" >&2
          echo "*** This target requires an assembler supporting \".machine\"" >&2
          echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2
          echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2
          test x$build = x$target && exit 1
          test x$build = x$target && exit 1
        fi
        fi
        conftest_s='    .text
        conftest_s='    .text
        mfcr r3,128';;
        mfcr r3,128';;
      *) conftest_s='   .machine power4
      *) conftest_s='   .machine power4
        .text
        .text
        mfcr 3,128';;
        mfcr 3,128';;
    esac
    esac
    gcc_GAS_CHECK_FEATURE([mfcr field support],
    gcc_GAS_CHECK_FEATURE([mfcr field support],
      gcc_cv_as_powerpc_mfcrf, [2,14,0],,
      gcc_cv_as_powerpc_mfcrf, [2,14,0],,
      [$conftest_s],,
      [$conftest_s],,
      [AC_DEFINE(HAVE_AS_MFCRF, 1,
      [AC_DEFINE(HAVE_AS_MFCRF, 1,
          [Define if your assembler supports mfcr field.])])
          [Define if your assembler supports mfcr field.])])
    case $target in
    case $target in
      *-*-aix*) conftest_s='    .machine "pwr5"
      *-*-aix*) conftest_s='    .machine "pwr5"
        .csect .text[[PR]]
        .csect .text[[PR]]
        popcntb 3,3';;
        popcntb 3,3';;
      *) conftest_s='   .machine power5
      *) conftest_s='   .machine power5
        .text
        .text
        popcntb 3,3';;
        popcntb 3,3';;
    esac
    esac
    gcc_GAS_CHECK_FEATURE([popcntb support],
    gcc_GAS_CHECK_FEATURE([popcntb support],
      gcc_cv_as_powerpc_popcntb, [2,17,0],,
      gcc_cv_as_powerpc_popcntb, [2,17,0],,
      [$conftest_s],,
      [$conftest_s],,
      [AC_DEFINE(HAVE_AS_POPCNTB, 1,
      [AC_DEFINE(HAVE_AS_POPCNTB, 1,
          [Define if your assembler supports popcntb field.])])
          [Define if your assembler supports popcntb field.])])
    case $target in
    case $target in
      *-*-aix*) conftest_s='    .machine "pwr5x"
      *-*-aix*) conftest_s='    .machine "pwr5x"
        .csect .text[[PR]]
        .csect .text[[PR]]
        frin 1,1';;
        frin 1,1';;
      *) conftest_s='   .machine power5
      *) conftest_s='   .machine power5
        .text
        .text
        frin 1,1';;
        frin 1,1';;
    esac
    esac
    gcc_GAS_CHECK_FEATURE([fp round support],
    gcc_GAS_CHECK_FEATURE([fp round support],
      gcc_cv_as_powerpc_fprnd, [2,17,0],,
      gcc_cv_as_powerpc_fprnd, [2,17,0],,
      [$conftest_s],,
      [$conftest_s],,
      [AC_DEFINE(HAVE_AS_FPRND, 1,
      [AC_DEFINE(HAVE_AS_FPRND, 1,
          [Define if your assembler supports fprnd.])])
          [Define if your assembler supports fprnd.])])
    case $target in
    case $target in
      *-*-aix*) conftest_s='    .csect .text[[PR]]
      *-*-aix*) conftest_s='    .csect .text[[PR]]
LCF..0:
LCF..0:
        addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
        addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
      *-*-darwin*)
      *-*-darwin*)
        conftest_s='    .text
        conftest_s='    .text
LCF0:
LCF0:
        addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0@ha';;
        addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0@ha';;
      *) conftest_s='   .text
      *) conftest_s='   .text
.LCF0:
.LCF0:
        addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';;
        addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';;
    esac
    esac
    gcc_GAS_CHECK_FEATURE([rel16 relocs],
    gcc_GAS_CHECK_FEATURE([rel16 relocs],
      gcc_cv_as_powerpc_rel16, [2,17,0], -a32,
      gcc_cv_as_powerpc_rel16, [2,17,0], -a32,
      [$conftest_s],,
      [$conftest_s],,
      [AC_DEFINE(HAVE_AS_REL16, 1,
      [AC_DEFINE(HAVE_AS_REL16, 1,
          [Define if your assembler supports R_PPC_REL16 relocs.])])
          [Define if your assembler supports R_PPC_REL16 relocs.])])
    ;;
    ;;
  mips*-*-*)
  mips*-*-*)
    gcc_GAS_CHECK_FEATURE([explicit relocation support],
    gcc_GAS_CHECK_FEATURE([explicit relocation support],
      gcc_cv_as_mips_explicit_relocs, [2,14,0],,
      gcc_cv_as_mips_explicit_relocs, [2,14,0],,
[       lw $4,%gp_rel(foo)($4)],,
[       lw $4,%gp_rel(foo)($4)],,
      [if test x$target_cpu_default = x
      [if test x$target_cpu_default = x
       then target_cpu_default=MASK_EXPLICIT_RELOCS
       then target_cpu_default=MASK_EXPLICIT_RELOCS
       else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
       else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
       fi])
       fi])
    ;;
    ;;
esac
esac
# Mips and HP-UX need the GNU assembler.
# Mips and HP-UX need the GNU assembler.
# Linux on IA64 might be able to use the Intel assembler.
# Linux on IA64 might be able to use the Intel assembler.
case "$target" in
case "$target" in
  mips*-*-* | *-*-hpux* )
  mips*-*-* | *-*-hpux* )
    if test x$gas_flag = xyes \
    if test x$gas_flag = xyes \
       || test x"$host" != x"$build" \
       || test x"$host" != x"$build" \
       || test ! -x "$gcc_cv_as" \
       || test ! -x "$gcc_cv_as" \
       || "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
       || "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
      :
      :
    else
    else
      echo "*** This configuration requires the GNU assembler" >&2
      echo "*** This configuration requires the GNU assembler" >&2
      exit 1
      exit 1
    fi
    fi
    ;;
    ;;
esac
esac
# ??? Not all targets support dwarf2 debug_line, even within a version
# ??? Not all targets support dwarf2 debug_line, even within a version
# of gas.  Moreover, we need to emit a valid instruction to trigger any
# of gas.  Moreover, we need to emit a valid instruction to trigger any
# info to the output file.  So, as supported targets are added to gas 2.11,
# info to the output file.  So, as supported targets are added to gas 2.11,
# add some instruction here to (also) show we expect this might work.
# add some instruction here to (also) show we expect this might work.
# ??? Once 2.11 is released, probably need to add first known working
# ??? Once 2.11 is released, probably need to add first known working
# version to the per-target configury.
# version to the per-target configury.
case "$target" in
case "$target" in
  i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
  i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
  | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
  | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
  | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-*)
  | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-*)
    insn="nop"
    insn="nop"
    ;;
    ;;
  ia64*-*-* | s390*-*-*)
  ia64*-*-* | s390*-*-*)
    insn="nop 0"
    insn="nop 0"
    ;;
    ;;
  mmix-*-*)
  mmix-*-*)
    insn="swym 0"
    insn="swym 0"
    ;;
    ;;
esac
esac
if test x"$insn" != x; then
if test x"$insn" != x; then
 conftest_s="\
 conftest_s="\
        .file 1 \"conftest.s\"
        .file 1 \"conftest.s\"
        .loc 1 3 0
        .loc 1 3 0
        $insn"
        $insn"
 gcc_GAS_CHECK_FEATURE([dwarf2 debug_line support],
 gcc_GAS_CHECK_FEATURE([dwarf2 debug_line support],
  gcc_cv_as_dwarf2_debug_line,
  gcc_cv_as_dwarf2_debug_line,
  [elf,2,11,0],, [$conftest_s],
  [elf,2,11,0],, [$conftest_s],
  [if test x$gcc_cv_objdump != x \
  [if test x$gcc_cv_objdump != x \
   && $gcc_cv_objdump -h conftest.o 2> /dev/null \
   && $gcc_cv_objdump -h conftest.o 2> /dev/null \
      | grep debug_line > /dev/null 2>&1; then
      | grep debug_line > /dev/null 2>&1; then
     gcc_cv_as_dwarf2_debug_line=yes
     gcc_cv_as_dwarf2_debug_line=yes
   fi])
   fi])
# The .debug_line file table must be in the exact order that
# The .debug_line file table must be in the exact order that
# we specified the files, since these indices are also used
# we specified the files, since these indices are also used
# by DW_AT_decl_file.  Approximate this test by testing if
# by DW_AT_decl_file.  Approximate this test by testing if
# the assembler bitches if the same index is assigned twice.
# the assembler bitches if the same index is assigned twice.
 gcc_GAS_CHECK_FEATURE([buggy dwarf2 .file directive],
 gcc_GAS_CHECK_FEATURE([buggy dwarf2 .file directive],
  gcc_cv_as_dwarf2_file_buggy,,,
  gcc_cv_as_dwarf2_file_buggy,,,
[       .file 1 "foo.s"
[       .file 1 "foo.s"
        .file 1 "bar.s"])
        .file 1 "bar.s"])
 if test $gcc_cv_as_dwarf2_debug_line = yes \
 if test $gcc_cv_as_dwarf2_debug_line = yes \
 && test $gcc_cv_as_dwarf2_file_buggy = no; then
 && test $gcc_cv_as_dwarf2_file_buggy = no; then
        AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
        AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
  [Define if your assembler supports dwarf2 .file/.loc directives,
  [Define if your assembler supports dwarf2 .file/.loc directives,
   and preserves file table indices exactly as given.])
   and preserves file table indices exactly as given.])
 fi
 fi
 gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
 gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
  gcc_cv_as_gdwarf2_flag,
  gcc_cv_as_gdwarf2_flag,
  [elf,2,11,0], [--gdwarf2], [$insn],,
  [elf,2,11,0], [--gdwarf2], [$insn],,
  [AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
  [AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
[Define if your assembler supports the --gdwarf2 option.])])
[Define if your assembler supports the --gdwarf2 option.])])
 gcc_GAS_CHECK_FEATURE([--gstabs option],
 gcc_GAS_CHECK_FEATURE([--gstabs option],
  gcc_cv_as_gstabs_flag,
  gcc_cv_as_gstabs_flag,
  [elf,2,11,0], [--gstabs], [$insn],
  [elf,2,11,0], [--gstabs], [$insn],
  [# The native Solaris 9/Intel assembler doesn't understand --gstabs
  [# The native Solaris 9/Intel assembler doesn't understand --gstabs
   # and warns about it, but still exits successfully.  So check for
   # and warns about it, but still exits successfully.  So check for
   # this.
   # this.
   if AC_TRY_COMMAND([$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null])
   if AC_TRY_COMMAND([$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null])
   then :
   then :
   else gcc_cv_as_gstabs_flag=yes
   else gcc_cv_as_gstabs_flag=yes
   fi],
   fi],
  [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
  [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
[Define if your assembler supports the --gstabs option.])])
[Define if your assembler supports the --gstabs option.])])
fi
fi
AC_MSG_CHECKING(linker read-only and read-write section mixing)
AC_MSG_CHECKING(linker read-only and read-write section mixing)
gcc_cv_ld_ro_rw_mix=unknown
gcc_cv_ld_ro_rw_mix=unknown
if test $in_tree_ld = yes ; then
if test $in_tree_ld = yes ; then
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \
     && test $in_tree_ld_is_elf = yes; then
     && test $in_tree_ld_is_elf = yes; then
    gcc_cv_ld_ro_rw_mix=read-write
    gcc_cv_ld_ro_rw_mix=read-write
  fi
  fi
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
  echo '.section myfoosect, "a"' > conftest1.s
  echo '.section myfoosect, "a"' > conftest1.s
  echo '.section myfoosect, "aw"' > conftest2.s
  echo '.section myfoosect, "aw"' > conftest2.s
  echo '.byte 1' >> conftest2.s
  echo '.byte 1' >> conftest2.s
  echo '.section myfoosect, "a"' > conftest3.s
  echo '.section myfoosect, "a"' > conftest3.s
  echo '.byte 0' >> conftest3.s
  echo '.byte 0' >> conftest3.s
  if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
  if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
     && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
     && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
     && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
     && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
     && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
     && $gcc_cv_ld -shared -o conftest1.so conftest1.o \
        conftest2.o conftest3.o > /dev/null 2>&1; then
        conftest2.o conftest3.o > /dev/null 2>&1; then
    gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
    gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
                         | sed -e '/myfoosect/!d' -e N`
                         | sed -e '/myfoosect/!d' -e N`
    if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
    if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
      if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
      if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
        gcc_cv_ld_ro_rw_mix=read-only
        gcc_cv_ld_ro_rw_mix=read-only
      else
      else
        gcc_cv_ld_ro_rw_mix=read-write
        gcc_cv_ld_ro_rw_mix=read-write
      fi
      fi
    fi
    fi
  fi
  fi
changequote(,)dnl
changequote(,)dnl
  rm -f conftest.* conftest[123].*
  rm -f conftest.* conftest[123].*
changequote([,])dnl
changequote([,])dnl
fi
fi
if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
        AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
        AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
  [Define if your linker links a mix of read-only
  [Define if your linker links a mix of read-only
   and read-write sections into a read-write section.])
   and read-write sections into a read-write section.])
fi
fi
AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
gcc_cv_ld_eh_frame_hdr=no
gcc_cv_ld_eh_frame_hdr=no
if test $in_tree_ld = yes ; then
if test $in_tree_ld = yes ; then
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \
     && test $in_tree_ld_is_elf = yes; then
     && test $in_tree_ld_is_elf = yes; then
    gcc_cv_ld_eh_frame_hdr=yes
    gcc_cv_ld_eh_frame_hdr=yes
  fi
  fi
elif test x$gcc_cv_ld != x; then
elif test x$gcc_cv_ld != x; then
        # Check if linker supports --eh-frame-hdr option
        # Check if linker supports --eh-frame-hdr option
        if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
        if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
                gcc_cv_ld_eh_frame_hdr=yes
                gcc_cv_ld_eh_frame_hdr=yes
        fi
        fi
fi
fi
GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR])
GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR])
if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
        AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
        AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
[Define if your linker supports --eh-frame-hdr option.])
[Define if your linker supports --eh-frame-hdr option.])
fi
fi
AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
AC_MSG_CHECKING(linker position independent executable support)
AC_MSG_CHECKING(linker position independent executable support)
gcc_cv_ld_pie=no
gcc_cv_ld_pie=no
if test $in_tree_ld = yes ; then
if test $in_tree_ld = yes ; then
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \
     && test $in_tree_ld_is_elf = yes; then
     && test $in_tree_ld_is_elf = yes; then
    gcc_cv_ld_pie=yes
    gcc_cv_ld_pie=yes
  fi
  fi
elif test x$gcc_cv_ld != x; then
elif test x$gcc_cv_ld != x; then
        # Check if linker supports -pie option
        # Check if linker supports -pie option
        if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
        if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
                gcc_cv_ld_pie=yes
                gcc_cv_ld_pie=yes
        fi
        fi
fi
fi
if test x"$gcc_cv_ld_pie" = xyes; then
if test x"$gcc_cv_ld_pie" = xyes; then
        AC_DEFINE(HAVE_LD_PIE, 1,
        AC_DEFINE(HAVE_LD_PIE, 1,
[Define if your linker supports -pie option.])
[Define if your linker supports -pie option.])
fi
fi
AC_MSG_RESULT($gcc_cv_ld_pie)
AC_MSG_RESULT($gcc_cv_ld_pie)
# --------
# --------
# UNSORTED
# UNSORTED
# --------
# --------
AC_CACHE_CHECK(linker --as-needed support,
AC_CACHE_CHECK(linker --as-needed support,
gcc_cv_ld_as_needed,
gcc_cv_ld_as_needed,
[gcc_cv_ld_as_needed=no
[gcc_cv_ld_as_needed=no
if test $in_tree_ld = yes ; then
if test $in_tree_ld = yes ; then
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
     && test $in_tree_ld_is_elf = yes; then
     && test $in_tree_ld_is_elf = yes; then
    gcc_cv_ld_as_needed=yes
    gcc_cv_ld_as_needed=yes
  fi
  fi
elif test x$gcc_cv_ld != x; then
elif test x$gcc_cv_ld != x; then
        # Check if linker supports --as-needed and --no-as-needed options
        # Check if linker supports --as-needed and --no-as-needed options
        if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
        if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
                gcc_cv_ld_as_needed=yes
                gcc_cv_ld_as_needed=yes
        fi
        fi
fi
fi
])
])
if test x"$gcc_cv_ld_as_needed" = xyes; then
if test x"$gcc_cv_ld_as_needed" = xyes; then
        AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
        AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
[Define if your linker supports --as-needed and --no-as-needed options.])
[Define if your linker supports --as-needed and --no-as-needed options.])
fi
fi
case "$target:$tm_file" in
case "$target:$tm_file" in
  powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
  powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
    AC_CACHE_CHECK(linker support for omitting dot symbols,
    AC_CACHE_CHECK(linker support for omitting dot symbols,
    gcc_cv_ld_no_dot_syms,
    gcc_cv_ld_no_dot_syms,
    [gcc_cv_ld_no_dot_syms=no
    [gcc_cv_ld_no_dot_syms=no
    if test $in_tree_ld = yes ; then
    if test $in_tree_ld = yes ; then
      if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then
      if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then
        gcc_cv_ld_no_dot_syms=yes
        gcc_cv_ld_no_dot_syms=yes
      fi
      fi
    elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
    elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
      cat > conftest1.s <
      cat > conftest1.s <
        .text
        .text
        bl .foo
        bl .foo
EOF
EOF
      cat > conftest2.s <
      cat > conftest2.s <
        .section ".opd","aw"
        .section ".opd","aw"
        .align 3
        .align 3
        .globl foo
        .globl foo
        .type foo,@function
        .type foo,@function
foo:
foo:
        .quad .LEfoo,.TOC.@tocbase,0
        .quad .LEfoo,.TOC.@tocbase,0
        .text
        .text
.LEfoo:
.LEfoo:
        blr
        blr
        .size foo,.-.LEfoo
        .size foo,.-.LEfoo
EOF
EOF
      if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
      if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
         && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
         && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
         && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
         && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
        gcc_cv_ld_no_dot_syms=yes
        gcc_cv_ld_no_dot_syms=yes
      fi
      fi
      rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
      rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
    fi
    fi
    ])
    ])
    if test x"$gcc_cv_ld_no_dot_syms" = xyes; then
    if test x"$gcc_cv_ld_no_dot_syms" = xyes; then
      AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1,
      AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1,
    [Define if your PowerPC64 linker only needs function descriptor syms.])
    [Define if your PowerPC64 linker only needs function descriptor syms.])
    fi
    fi
    ;;
    ;;
esac
esac
AC_CACHE_CHECK(linker --sysroot support,
AC_CACHE_CHECK(linker --sysroot support,
  gcc_cv_ld_sysroot,
  gcc_cv_ld_sysroot,
  [gcc_cv_ld_sysroot=no
  [gcc_cv_ld_sysroot=no
  if test $in_tree_ld = yes ; then
  if test $in_tree_ld = yes ; then
      if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 ; then
      if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 ; then
        gcc_cv_ld_sysroot=yes
        gcc_cv_ld_sysroot=yes
      fi
      fi
  elif test x$gcc_cv_ld != x; then
  elif test x$gcc_cv_ld != x; then
    if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then
    if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then
      gcc_cv_ld_sysroot=yes
      gcc_cv_ld_sysroot=yes
    fi
    fi
  fi])
  fi])
if test x"$gcc_cv_ld_sysroot" = xyes; then
if test x"$gcc_cv_ld_sysroot" = xyes; then
  AC_DEFINE(HAVE_LD_SYSROOT, 1,
  AC_DEFINE(HAVE_LD_SYSROOT, 1,
  [Define if your linker supports --sysroot.])
  [Define if your linker supports --sysroot.])
fi
fi
if test x$with_sysroot = x && test x$host = x$target \
if test x$with_sysroot = x && test x$host = x$target \
   && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
   && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
  AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include",
  AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include",
[Define to PREFIX/include if cpp should also search that directory.])
[Define to PREFIX/include if cpp should also search that directory.])
fi
fi
# Test for stack protector support in target C library.
# Test for stack protector support in target C library.
case "$target" in
case "$target" in
  *-*-linux*)
  *-*-linux*)
    AC_CACHE_CHECK(__stack_chk_fail in target GNU C library,
    AC_CACHE_CHECK(__stack_chk_fail in target GNU C library,
      gcc_cv_libc_provides_ssp,
      gcc_cv_libc_provides_ssp,
      [gcc_cv_libc_provides_ssp=no
      [gcc_cv_libc_provides_ssp=no
      if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
      if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
        if test "x$with_sysroot" = x; then
        if test "x$with_sysroot" = x; then
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
        elif test "x$with_sysroot" = xyes; then
        elif test "x$with_sysroot" = xyes; then
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
        else
        else
          glibc_header_dir="${with_sysroot}/usr/include"
          glibc_header_dir="${with_sysroot}/usr/include"
        fi
        fi
      else
      else
        glibc_header_dir=/usr/include
        glibc_header_dir=/usr/include
      fi
      fi
      # glibc 2.4 and later provides __stack_chk_fail and
      # glibc 2.4 and later provides __stack_chk_fail and
      # either __stack_chk_guard, or TLS access to stack guard canary.
      # either __stack_chk_guard, or TLS access to stack guard canary.
      if test -f $glibc_header_dir/features.h \
      if test -f $glibc_header_dir/features.h \
         && $EGREP '^@<:@ 	@:>@*#[      ]*define[       ]+__GNU_LIBRARY__[      ]+([1-9][0-9]|[6-9])' \
         && $EGREP '^@<:@ 	@:>@*#[      ]*define[       ]+__GNU_LIBRARY__[      ]+([1-9][0-9]|[6-9])' \
            $glibc_header_dir/features.h > /dev/null; then
            $glibc_header_dir/features.h > /dev/null; then
        if $EGREP '^@<:@ 	@:>@*#[       ]*define[       ]+__GLIBC__[    ]+([1-9][0-9]|[3-9])' \
        if $EGREP '^@<:@ 	@:>@*#[       ]*define[       ]+__GLIBC__[    ]+([1-9][0-9]|[3-9])' \
           $glibc_header_dir/features.h > /dev/null; then
           $glibc_header_dir/features.h > /dev/null; then
          gcc_cv_libc_provides_ssp=yes
          gcc_cv_libc_provides_ssp=yes
        elif $EGREP '^@<:@ 	@:>@*#[     ]*define[       ]+__GLIBC__[    ]+2' \
        elif $EGREP '^@<:@ 	@:>@*#[     ]*define[       ]+__GLIBC__[    ]+2' \
             $glibc_header_dir/features.h > /dev/null \
             $glibc_header_dir/features.h > /dev/null \
             && $EGREP '^@<:@ 	@:>@*#[  ]*define[       ]+__GLIBC_MINOR__[      ]+([1-9][0-9]|[4-9])' \
             && $EGREP '^@<:@ 	@:>@*#[  ]*define[       ]+__GLIBC_MINOR__[      ]+([1-9][0-9]|[4-9])' \
             $glibc_header_dir/features.h > /dev/null; then
             $glibc_header_dir/features.h > /dev/null; then
          gcc_cv_libc_provides_ssp=yes
          gcc_cv_libc_provides_ssp=yes
        fi
        fi
      fi]) ;;
      fi]) ;;
  *) gcc_cv_libc_provides_ssp=no ;;
  *) gcc_cv_libc_provides_ssp=no ;;
esac
esac
if test x$gcc_cv_libc_provides_ssp = xyes; then
if test x$gcc_cv_libc_provides_ssp = xyes; then
  AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
  AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
            [Define if your target C library provides stack protector support])
            [Define if your target C library provides stack protector support])
fi
fi
# Check if TFmode long double should be used by default or not.
# Check if TFmode long double should be used by default or not.
# Some glibc targets used DFmode long double, but with glibc 2.4
# Some glibc targets used DFmode long double, but with glibc 2.4
# and later they can use TFmode.
# and later they can use TFmode.
case "$target" in
case "$target" in
  powerpc*-*-*gnu* | \
  powerpc*-*-*gnu* | \
  sparc*-*-linux* | \
  sparc*-*-linux* | \
  s390*-*-linux* | \
  s390*-*-linux* | \
  alpha*-*-linux*)
  alpha*-*-linux*)
    AC_ARG_WITH(long-double-128,
    AC_ARG_WITH(long-double-128,
[  --with-long-double-128  Use 128-bit long double by default.],
[  --with-long-double-128  Use 128-bit long double by default.],
      gcc_cv_target_ldbl128="$with_long_double_128",
      gcc_cv_target_ldbl128="$with_long_double_128",
      [gcc_cv_target_ldbl128=no
      [gcc_cv_target_ldbl128=no
      if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
      if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
        if test "x$with_sysroot" = x; then
        if test "x$with_sysroot" = x; then
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include"
        elif test "x$with_sysroot" = xyes; then
        elif test "x$with_sysroot" = xyes; then
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
          glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include"
        else
        else
          glibc_header_dir="${with_sysroot}/usr/include"
          glibc_header_dir="${with_sysroot}/usr/include"
        fi
        fi
      else
      else
        glibc_header_dir=/usr/include
        glibc_header_dir=/usr/include
      fi
      fi
changequote(,)dnl
changequote(,)dnl
      grep '^[  ]*#[    ]*define[       ][      ]*__LONG_DOUBLE_MATH_OPTIONAL' \
      grep '^[  ]*#[    ]*define[       ][      ]*__LONG_DOUBLE_MATH_OPTIONAL' \
        $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
        $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \
      && gcc_cv_target_ldbl128=yes
      && gcc_cv_target_ldbl128=yes
changequote([,])dnl
changequote([,])dnl
      ])
      ])
    ;;
    ;;
esac
esac
if test x$gcc_cv_target_ldbl128 = xyes; then
if test x$gcc_cv_target_ldbl128 = xyes; then
  AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
  AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
            [Define if TFmode long double should be the default])
            [Define if TFmode long double should be the default])
fi
fi
# Find out what GC implementation we want, or may, use.
# Find out what GC implementation we want, or may, use.
AC_ARG_WITH(gc,
AC_ARG_WITH(gc,
[  --with-gc={page,zone}   choose the garbage collection mechanism to use
[  --with-gc={page,zone}   choose the garbage collection mechanism to use
                          with the compiler],
                          with the compiler],
[case "$withval" in
[case "$withval" in
  page)
  page)
    GGC=ggc-$withval
    GGC=ggc-$withval
    ;;
    ;;
  zone)
  zone)
    GGC=ggc-$withval
    GGC=ggc-$withval
    AC_DEFINE(GGC_ZONE, 1, [Define if the zone collector is in use])
    AC_DEFINE(GGC_ZONE, 1, [Define if the zone collector is in use])
    ;;
    ;;
  *)
  *)
    AC_MSG_ERROR([$withval is an invalid option to --with-gc])
    AC_MSG_ERROR([$withval is an invalid option to --with-gc])
    ;;
    ;;
esac],
esac],
[GGC=ggc-page])
[GGC=ggc-page])
AC_SUBST(GGC)
AC_SUBST(GGC)
echo "Using $GGC for garbage collection."
echo "Using $GGC for garbage collection."
# Use the system's zlib library.
# Use the system's zlib library.
zlibdir=-L../zlib
zlibdir=-L../zlib
zlibinc="-I\$(srcdir)/../zlib"
zlibinc="-I\$(srcdir)/../zlib"
AC_ARG_WITH(system-zlib,
AC_ARG_WITH(system-zlib,
[  --with-system-zlib      use installed libz],
[  --with-system-zlib      use installed libz],
zlibdir=
zlibdir=
zlibinc=
zlibinc=
)
)
AC_SUBST(zlibdir)
AC_SUBST(zlibdir)
AC_SUBST(zlibinc)
AC_SUBST(zlibinc)
dnl Very limited version of automake's enable-maintainer-mode
dnl Very limited version of automake's enable-maintainer-mode
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
  dnl maintainer-mode is disabled by default
  dnl maintainer-mode is disabled by default
  AC_ARG_ENABLE(maintainer-mode,
  AC_ARG_ENABLE(maintainer-mode,
[  --enable-maintainer-mode
[  --enable-maintainer-mode
                          enable make rules and dependencies not useful
                          enable make rules and dependencies not useful
                          (and sometimes confusing) to the casual installer],
                          (and sometimes confusing) to the casual installer],
      maintainer_mode=$enableval,
      maintainer_mode=$enableval,
      maintainer_mode=no)
      maintainer_mode=no)
AC_MSG_RESULT($maintainer_mode)
AC_MSG_RESULT($maintainer_mode)
if test "$maintainer_mode" = "yes"; then
if test "$maintainer_mode" = "yes"; then
  MAINT=''
  MAINT=''
else
else
  MAINT='#'
  MAINT='#'
fi
fi
AC_SUBST(MAINT)dnl
AC_SUBST(MAINT)dnl
# --------------
# --------------
# Language hooks
# Language hooks
# --------------
# --------------
# Make empty files to contain the specs and options for each language.
# Make empty files to contain the specs and options for each language.
# Then add #include lines to for a compiler that has specs and/or options.
# Then add #include lines to for a compiler that has specs and/or options.
subdirs=
subdirs=
lang_opt_files=
lang_opt_files=
lang_specs_files=
lang_specs_files=
lang_tree_files=
lang_tree_files=
# These (without "all_") are set in each config-lang.in.
# These (without "all_") are set in each config-lang.in.
# `language' must be a single word so is spelled singularly.
# `language' must be a single word so is spelled singularly.
all_languages=
all_languages=
all_boot_languages=
all_boot_languages=
all_compilers=
all_compilers=
all_stagestuff=
all_stagestuff=
all_outputs='Makefile gccbug mklibgcc libada-mk'
all_outputs='Makefile gccbug mklibgcc libada-mk'
# List of language makefile fragments.
# List of language makefile fragments.
all_lang_makefrags=
all_lang_makefrags=
# List of language subdirectory makefiles.  Deprecated.
# List of language subdirectory makefiles.  Deprecated.
all_lang_makefiles=
all_lang_makefiles=
# Files for gengtype
# Files for gengtype
all_gtfiles="$target_gtfiles"
all_gtfiles="$target_gtfiles"
# Files for gengtype with language
# Files for gengtype with language
all_gtfiles_files_langs=
all_gtfiles_files_langs=
all_gtfiles_files_files=
all_gtfiles_files_files=
# These are the languages that are set in --enable-languages,
# These are the languages that are set in --enable-languages,
# and are available in the GCC tree.
# and are available in the GCC tree.
all_selected_languages=
all_selected_languages=
# Add the language fragments.
# Add the language fragments.
# Languages are added via two mechanisms.  Some information must be
# Languages are added via two mechanisms.  Some information must be
# recorded in makefile variables, these are defined in config-lang.in.
# recorded in makefile variables, these are defined in config-lang.in.
# We accumulate them and plug them into the main Makefile.
# We accumulate them and plug them into the main Makefile.
# The other mechanism is a set of hooks for each of the main targets
# The other mechanism is a set of hooks for each of the main targets
# like `clean', `install', etc.
# like `clean', `install', etc.
language_hooks="Make-hooks"
language_hooks="Make-hooks"
for lang in ${srcdir}/*/config-lang.in
for lang in ${srcdir}/*/config-lang.in
do
do
changequote(,)dnl
changequote(,)dnl
        test "$lang" = "${srcdir}/*/config-lang.in" && continue
        test "$lang" = "${srcdir}/*/config-lang.in" && continue
        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
        if test "x$lang_alias" = x
        if test "x$lang_alias" = x
        then
        then
              echo "$lang doesn't set \$language." 1>&2
              echo "$lang doesn't set \$language." 1>&2
              exit 1
              exit 1
        fi
        fi
        subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
        subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
        subdirs="$subdirs $subdir"
        subdirs="$subdirs $subdir"
        case ",$enable_languages," in
        case ",$enable_languages," in
        *,$lang_alias,*)
        *,$lang_alias,*)
            all_selected_languages="$all_selected_languages $lang_alias"
            all_selected_languages="$all_selected_languages $lang_alias"
            if test -f $srcdir/$subdir/lang-specs.h; then
            if test -f $srcdir/$subdir/lang-specs.h; then
                lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
                lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
            fi
            fi
            ;;
            ;;
        esac
        esac
changequote([,])dnl
changequote([,])dnl
        language=
        language=
        boot_language=
        boot_language=
        compilers=
        compilers=
        stagestuff=
        stagestuff=
        outputs=
        outputs=
        gtfiles=
        gtfiles=
        subdir_requires=
        subdir_requires=
        . ${srcdir}/$subdir/config-lang.in
        . ${srcdir}/$subdir/config-lang.in
        if test "x$language" = x
        if test "x$language" = x
        then
        then
                echo "${srcdir}/$subdir/config-lang.in doesn't set \$language." 1>&2
                echo "${srcdir}/$subdir/config-lang.in doesn't set \$language." 1>&2
                exit 1
                exit 1
        fi
        fi
        ok=:
        ok=:
        case ",$enable_languages," in
        case ",$enable_languages," in
                *,$lang_alias,*) ;;
                *,$lang_alias,*) ;;
                *)
                *)
                        for i in $subdir_requires; do
                        for i in $subdir_requires; do
                                test -f "${srcdir}/$i/config-lang.in" && continue
                                test -f "${srcdir}/$i/config-lang.in" && continue
                                ok=false
                                ok=false
                                break
                                break
                        done
                        done
                ;;
                ;;
        esac
        esac
        $ok || continue
        $ok || continue
        all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$subdir/Make-lang.in"
        all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$subdir/Make-lang.in"
        if test -f $srcdir/$subdir/lang.opt; then
        if test -f $srcdir/$subdir/lang.opt; then
            lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
            lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
        fi
        fi
        if test -f $srcdir/$subdir/$subdir-tree.def; then
        if test -f $srcdir/$subdir/$subdir-tree.def; then
            lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
            lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
        fi
        fi
        if test -f ${srcdir}/$subdir/Makefile.in
        if test -f ${srcdir}/$subdir/Makefile.in
                then all_lang_makefiles="$subdir/Makefile"
                then all_lang_makefiles="$subdir/Makefile"
        fi
        fi
        all_languages="$all_languages $language"
        all_languages="$all_languages $language"
        if test "x$boot_language" = xyes
        if test "x$boot_language" = xyes
        then
        then
                all_boot_languages="$all_boot_languages $language"
                all_boot_languages="$all_boot_languages $language"
        fi
        fi
        all_compilers="$all_compilers $compilers"
        all_compilers="$all_compilers $compilers"
        all_stagestuff="$all_stagestuff $stagestuff"
        all_stagestuff="$all_stagestuff $stagestuff"
        all_outputs="$all_outputs $outputs"
        all_outputs="$all_outputs $outputs"
        all_gtfiles="$all_gtfiles $gtfiles"
        all_gtfiles="$all_gtfiles $gtfiles"
        for f in $gtfiles
        for f in $gtfiles
        do
        do
                all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
                all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
                all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
                all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
        done
        done
done
done
# Pick up gtfiles for c
# Pick up gtfiles for c
gtfiles=
gtfiles=
subdir="c"
subdir="c"
. ${srcdir}/c-config-lang.in
. ${srcdir}/c-config-lang.in
all_gtfiles="$all_gtfiles $gtfiles"
all_gtfiles="$all_gtfiles $gtfiles"
for f in $gtfiles
for f in $gtfiles
do
do
        all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
        all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
        all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
        all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
done
done
check_languages=
check_languages=
for language in $all_selected_languages
for language in $all_selected_languages
do
do
        check_languages="$check_languages check-$language"
        check_languages="$check_languages check-$language"
done
done
# We link each language in with a set of hooks, reached indirectly via
# We link each language in with a set of hooks, reached indirectly via
# lang.${target}.  Only do so for selected languages.
# lang.${target}.  Only do so for selected languages.
rm -f Make-hooks
rm -f Make-hooks
touch Make-hooks
touch Make-hooks
target_list="all.cross start.encap rest.encap tags \
target_list="all.cross start.encap rest.encap tags \
        install-common install-man install-info dvi pdf html \
        install-common install-man install-info dvi pdf html \
        uninstall info man srcextra srcman srcinfo \
        uninstall info man srcextra srcman srcinfo \
        mostlyclean clean distclean maintainer-clean \
        mostlyclean clean distclean maintainer-clean \
        stage1 stage2 stage3 stage4 stageprofile stagefeedback"
        stage1 stage2 stage3 stage4 stageprofile stagefeedback"
for t in $target_list
for t in $target_list
do
do
        x=
        x=
        for lang in $all_selected_languages
        for lang in $all_selected_languages
        do
        do
                x="$x $lang.$t"
                x="$x $lang.$t"
        done
        done
        echo "lang.$t: $x" >> Make-hooks
        echo "lang.$t: $x" >> Make-hooks
done
done
# --------
# --------
# UNSORTED
# UNSORTED
# --------
# --------
# Create .gdbinit.
# Create .gdbinit.
echo "dir ." > .gdbinit
echo "dir ." > .gdbinit
echo "dir ${srcdir}" >> .gdbinit
echo "dir ${srcdir}" >> .gdbinit
if test x$gdb_needs_out_file_path = xyes
if test x$gdb_needs_out_file_path = xyes
then
then
        echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
        echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
fi
fi
if test "x$subdirs" != x; then
if test "x$subdirs" != x; then
        for s in $subdirs
        for s in $subdirs
        do
        do
                echo "dir ${srcdir}/$s" >> .gdbinit
                echo "dir ${srcdir}/$s" >> .gdbinit
        done
        done
fi
fi
echo "source ${srcdir}/gdbinit.in" >> .gdbinit
echo "source ${srcdir}/gdbinit.in" >> .gdbinit
# If $(exec_prefix) exists and is not the same as $(prefix), then compute an
# 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
# 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
# movements required to get from $(exec_prefix) to $(prefix) into the basic
# $(libsubdir)/@(unlibsubdir) based path.
# $(libsubdir)/@(unlibsubdir) based path.
# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel
# 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
# make and thus we'd get different behavior depending on where we built the
# sources.
# sources.
if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
    gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)'
    gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)'
else
else
changequote(<<, >>)dnl
changequote(<<, >>)dnl
# An explanation of the sed strings:
# An explanation of the sed strings:
#  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
#  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
#  -e 's|/$||'            match a trailing forward slash and eliminates it
#  -e 's|/$||'            match a trailing forward slash and eliminates it
#  -e 's|^[^/]|/|'        forces the string to start with a forward slash (*)
#  -e 's|^[^/]|/|'        forces the string to start with a forward slash (*)
#  -e 's|/[^/]*|../|g'    replaces each occurrence of / with ../
#  -e 's|/[^/]*|../|g'    replaces each occurrence of / with ../
#
#
# (*) Note this pattern overwrites the first character of the string
# (*) Note this pattern overwrites the first character of the string
# with a forward slash if one is not already present.  This is not a
# 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
# problem because the exact names of the sub-directories concerned is
# unimportant, just the number of them matters.
# unimportant, just the number of them matters.
#
#
# The practical upshot of these patterns is like this:
# The practical upshot of these patterns is like this:
#
#
#  prefix     exec_prefix        result
#  prefix     exec_prefix        result
#  ------     -----------        ------
#  ------     -----------        ------
#   /foo        /foo/bar          ../
#   /foo        /foo/bar          ../
#   /foo/       /foo/bar          ../
#   /foo/       /foo/bar          ../
#   /foo        /foo/bar/         ../
#   /foo        /foo/bar/         ../
#   /foo/       /foo/bar/         ../
#   /foo/       /foo/bar/         ../
#   /foo        /foo/bar/ugg      ../../
#   /foo        /foo/bar/ugg      ../../
#
#
    dollar='$$'
    dollar='$$'
    gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)"
    gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)"
changequote([, ])dnl
changequote([, ])dnl
fi
fi
AC_SUBST(gcc_tooldir)
AC_SUBST(gcc_tooldir)
AC_SUBST(dollar)
AC_SUBST(dollar)
# Find a directory in which to install a shared libgcc.
# Find a directory in which to install a shared libgcc.
AC_ARG_ENABLE(version-specific-runtime-libs,
AC_ARG_ENABLE(version-specific-runtime-libs,
[  --enable-version-specific-runtime-libs
[  --enable-version-specific-runtime-libs
                          specify that runtime libraries should be
                          specify that runtime libraries should be
                          installed in a compiler-specific directory])
                          installed in a compiler-specific directory])
AC_ARG_WITH(slibdir,
AC_ARG_WITH(slibdir,
[  --with-slibdir=DIR      shared libraries in DIR [[LIBDIR]]],
[  --with-slibdir=DIR      shared libraries in DIR [[LIBDIR]]],
slibdir="$with_slibdir",
slibdir="$with_slibdir",
if test "${enable_version_specific_runtime_libs+set}" = set; then
if test "${enable_version_specific_runtime_libs+set}" = set; then
  slibdir='$(libsubdir)'
  slibdir='$(libsubdir)'
elif test "$host" != "$target"; then
elif test "$host" != "$target"; then
  slibdir='$(build_tooldir)/lib'
  slibdir='$(build_tooldir)/lib'
else
else
  slibdir='$(libdir)'
  slibdir='$(libdir)'
fi)
fi)
AC_SUBST(slibdir)
AC_SUBST(slibdir)
objdir=`${PWDCMD-pwd}`
objdir=`${PWDCMD-pwd}`
AC_SUBST(objdir)
AC_SUBST(objdir)
AC_ARG_WITH(datarootdir,
AC_ARG_WITH(datarootdir,
[  --with-datarootdir=DIR  Use DIR as the data root [[PREFIX/share]]],
[  --with-datarootdir=DIR  Use DIR as the data root [[PREFIX/share]]],
datarootdir="\${prefix}/$with_datarootdir",
datarootdir="\${prefix}/$with_datarootdir",
datarootdir='$(prefix)/share')
datarootdir='$(prefix)/share')
AC_SUBST(datarootdir)
AC_SUBST(datarootdir)
AC_ARG_WITH(docdir,
AC_ARG_WITH(docdir,
[  --with-docdir=DIR       Install documentation in DIR [[DATAROOTDIR]]],
[  --with-docdir=DIR       Install documentation in DIR [[DATAROOTDIR]]],
docdir="\${prefix}/$with_docdir",
docdir="\${prefix}/$with_docdir",
docdir='$(datarootdir)')
docdir='$(datarootdir)')
AC_SUBST(docdir)
AC_SUBST(docdir)
AC_ARG_WITH(htmldir,
AC_ARG_WITH(htmldir,
[  --with-htmldir=DIR      html documentation in in DIR [[DOCDIR]]],
[  --with-htmldir=DIR      html documentation in in DIR [[DOCDIR]]],
htmldir="\${prefix}/$with_htmldir",
htmldir="\${prefix}/$with_htmldir",
htmldir='$(docdir)')
htmldir='$(docdir)')
AC_SUBST(htmldir)
AC_SUBST(htmldir)
# Substitute configuration variables
# Substitute configuration variables
AC_SUBST(subdirs)
AC_SUBST(subdirs)
AC_SUBST(srcdir)
AC_SUBST(srcdir)
AC_SUBST(all_boot_languages)
AC_SUBST(all_boot_languages)
AC_SUBST(all_compilers)
AC_SUBST(all_compilers)
AC_SUBST(all_gtfiles)
AC_SUBST(all_gtfiles)
AC_SUBST(all_gtfiles_files_langs)
AC_SUBST(all_gtfiles_files_langs)
AC_SUBST(all_gtfiles_files_files)
AC_SUBST(all_gtfiles_files_files)
AC_SUBST(all_lang_makefrags)
AC_SUBST(all_lang_makefrags)
AC_SUBST(all_lang_makefiles)
AC_SUBST(all_lang_makefiles)
AC_SUBST(all_languages)
AC_SUBST(all_languages)
AC_SUBST(all_selected_languages)
AC_SUBST(all_selected_languages)
AC_SUBST(all_stagestuff)
AC_SUBST(all_stagestuff)
AC_SUBST(build_exeext)
AC_SUBST(build_exeext)
AC_SUBST(build_install_headers_dir)
AC_SUBST(build_install_headers_dir)
AC_SUBST(build_xm_file_list)
AC_SUBST(build_xm_file_list)
AC_SUBST(build_xm_include_list)
AC_SUBST(build_xm_include_list)
AC_SUBST(build_xm_defines)
AC_SUBST(build_xm_defines)
AC_SUBST(check_languages)
AC_SUBST(check_languages)
AC_SUBST(cc_set_by_configure)
AC_SUBST(cc_set_by_configure)
AC_SUBST(quoted_cc_set_by_configure)
AC_SUBST(quoted_cc_set_by_configure)
AC_SUBST(cpp_install_dir)
AC_SUBST(cpp_install_dir)
AC_SUBST(xmake_file)
AC_SUBST(xmake_file)
AC_SUBST(tmake_file)
AC_SUBST(tmake_file)
AC_SUBST(extra_gcc_objs)
AC_SUBST(extra_gcc_objs)
AC_SUBST(extra_headers_list)
AC_SUBST(extra_headers_list)
AC_SUBST(extra_objs)
AC_SUBST(extra_objs)
AC_SUBST(extra_parts)
AC_SUBST(extra_parts)
AC_SUBST(extra_passes)
AC_SUBST(extra_passes)
AC_SUBST(extra_programs)
AC_SUBST(extra_programs)
AC_SUBST(float_h_file)
AC_SUBST(float_h_file)
AC_SUBST(gcc_config_arguments)
AC_SUBST(gcc_config_arguments)
AC_SUBST(gcc_gxx_include_dir)
AC_SUBST(gcc_gxx_include_dir)
AC_SUBST(host_exeext)
AC_SUBST(host_exeext)
AC_SUBST(host_xm_file_list)
AC_SUBST(host_xm_file_list)
AC_SUBST(host_xm_include_list)
AC_SUBST(host_xm_include_list)
AC_SUBST(host_xm_defines)
AC_SUBST(host_xm_defines)
AC_SUBST(out_host_hook_obj)
AC_SUBST(out_host_hook_obj)
AC_SUBST(install)
AC_SUBST(install)
AC_SUBST(lang_opt_files)
AC_SUBST(lang_opt_files)
AC_SUBST(lang_specs_files)
AC_SUBST(lang_specs_files)
AC_SUBST(lang_tree_files)
AC_SUBST(lang_tree_files)
AC_SUBST(local_prefix)
AC_SUBST(local_prefix)
AC_SUBST(md_file)
AC_SUBST(md_file)
AC_SUBST(objc_boehm_gc)
AC_SUBST(objc_boehm_gc)
AC_SUBST(out_file)
AC_SUBST(out_file)
AC_SUBST(out_object_file)
AC_SUBST(out_object_file)
AC_SUBST(stage_prefix_set_by_configure)
AC_SUBST(stage_prefix_set_by_configure)
AC_SUBST(quoted_stage_prefix_set_by_configure)
AC_SUBST(quoted_stage_prefix_set_by_configure)
AC_SUBST(thread_file)
AC_SUBST(thread_file)
AC_SUBST(tm_file_list)
AC_SUBST(tm_file_list)
AC_SUBST(tm_include_list)
AC_SUBST(tm_include_list)
AC_SUBST(tm_defines)
AC_SUBST(tm_defines)
AC_SUBST(tm_p_file_list)
AC_SUBST(tm_p_file_list)
AC_SUBST(tm_p_include_list)
AC_SUBST(tm_p_include_list)
AC_SUBST(xm_file_list)
AC_SUBST(xm_file_list)
AC_SUBST(xm_include_list)
AC_SUBST(xm_include_list)
AC_SUBST(xm_defines)
AC_SUBST(xm_defines)
AC_SUBST(c_target_objs)
AC_SUBST(c_target_objs)
AC_SUBST(cxx_target_objs)
AC_SUBST(cxx_target_objs)
AC_SUBST(target_cpu_default)
AC_SUBST(target_cpu_default)
AC_SUBST_FILE(language_hooks)
AC_SUBST_FILE(language_hooks)
# Echo link setup.
# Echo link setup.
if test x${build} = x${host} ; then
if test x${build} = x${host} ; then
  if test x${host} = x${target} ; then
  if test x${host} = x${target} ; then
    echo "Links are now set up to build a native compiler for ${target}." 1>&2
    echo "Links are now set up to build a native compiler for ${target}." 1>&2
  else
  else
    echo "Links are now set up to build a cross-compiler" 1>&2
    echo "Links are now set up to build a cross-compiler" 1>&2
    echo " from ${host} to ${target}." 1>&2
    echo " from ${host} to ${target}." 1>&2
  fi
  fi
else
else
  if test x${host} = x${target} ; then
  if test x${host} = x${target} ; then
    echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
    echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
    echo " for ${target}." 1>&2
    echo " for ${target}." 1>&2
  else
  else
    echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
    echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
    echo " from ${host} to ${target}." 1>&2
    echo " from ${host} to ${target}." 1>&2
  fi
  fi
fi
fi
AC_ARG_VAR(GMPLIBS,[How to link GMP])
AC_ARG_VAR(GMPLIBS,[How to link GMP])
AC_ARG_VAR(GMPINC,[How to find GMP include files])
AC_ARG_VAR(GMPINC,[How to find GMP include files])
# Configure the subdirectories
# Configure the subdirectories
# AC_CONFIG_SUBDIRS($subdirs)
# AC_CONFIG_SUBDIRS($subdirs)
# Create the Makefile
# Create the Makefile
# and configure language subdirectories
# and configure language subdirectories
AC_CONFIG_FILES($all_outputs)
AC_CONFIG_FILES($all_outputs)
AC_CONFIG_COMMANDS([default],
AC_CONFIG_COMMANDS([default],
[
[
case ${CONFIG_HEADERS} in
case ${CONFIG_HEADERS} in
  *auto-host.h:config.in*)
  *auto-host.h:config.in*)
  echo > cstamp-h ;;
  echo > cstamp-h ;;
esac
esac
# Make sure all the subdirs exist.
# Make sure all the subdirs exist.
for d in $subdirs doc build
for d in $subdirs doc build
do
do
    test -d $d || mkdir $d
    test -d $d || mkdir $d
done
done
# If the host supports symlinks, point stage[1234] at ../stage[1234] so
# If the host supports symlinks, point stage[1234] at ../stage[1234] so
# bootstrapping and the installation procedure can still use
# bootstrapping and the installation procedure can still use
# CC="stage1/xgcc -Bstage1/".  If the host doesn't support symlinks,
# CC="stage1/xgcc -Bstage1/".  If the host doesn't support symlinks,
# FLAGS_TO_PASS has been modified to solve the problem there.
# FLAGS_TO_PASS has been modified to solve the problem there.
# This is virtually a duplicate of what happens in configure.lang; we do
# This is virtually a duplicate of what happens in configure.lang; we do
# an extra check to make sure this only happens if ln -s can be used.
# an extra check to make sure this only happens if ln -s can be used.
case "$LN_S" in
case "$LN_S" in
  *-s*)
  *-s*)
    for d in ${subdirs} ; do
    for d in ${subdirs} ; do
        STARTDIR=`${PWDCMD-pwd}`
        STARTDIR=`${PWDCMD-pwd}`
        cd $d
        cd $d
        for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include
        for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include
        do
        do
                rm -f $t
                rm -f $t
                $LN_S ../$t $t 2>/dev/null
                $LN_S ../$t $t 2>/dev/null
        done
        done
        cd $STARTDIR
        cd $STARTDIR
    done
    done
  ;;
  ;;
esac
esac
],
],
[subdirs='$subdirs'])
[subdirs='$subdirs'])
AC_OUTPUT
AC_OUTPUT
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.