# configure.ac for GCC
# Process this file with autoconf to generate a configuration script.
-# Copyright (C) 1997-2015 Free Software Foundation, Inc.
+# Copyright (C) 1997-2016 Free Software Foundation, Inc.
#This file is part of GCC.
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
+# Determine the noncanonical host name, for Ada.
+ACX_NONCANONICAL_HOST
+
# Determine the noncanonical target name, for directory use.
ACX_NONCANONICAL_TARGET
]], [[X<int64_t>::t x;]])],[],[AC_MSG_ERROR([error verifying int64_t uses long long])])
fi
+AC_CACHE_CHECK(for std::swap in <utility>, ac_cv_std_swap_in_utility, [
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <utility>
+]], [[int a, b; std::swap(a,b);]])],[ac_cv_std_swap_in_utility=yes],[ac_cv_std_swap_in_utility=no])])
+if test $ac_cv_std_swap_in_utility = yes; then
+ AC_DEFINE(HAVE_SWAP_IN_UTILITY, 1,
+ [Define if <utility> defines std::swap.])
+fi
+
+# Check whether compiler is affected by placement new aliasing bug (PR 29286).
+# If the host compiler is affected by the bug, and we build with optimization
+# enabled (which happens e.g. when cross-compiling), the pool allocator may
+# get miscompiled. Use -fno-strict-aliasing to work around this problem.
+# Since there is no reliable feature check for the presence of this bug,
+# we simply use a GCC version number check. (This should never trigger for
+# stages 2 or 3 of a native bootstrap.)
+aliasing_flags=
+if test "$GCC" = yes; then
+ saved_CXXFLAGS="$CXXFLAGS"
+
+ # The following test compilation will succeed if and only if $CXX accepts
+ # -fno-strict-aliasing *and* is older than GCC 4.3.
+ CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+ AC_MSG_CHECKING([whether $CXX is affected by placement new aliasing bug])
+ AC_COMPILE_IFELSE([
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#error compiler not affected by placement new aliasing bug
+#endif
+],
+ [AC_MSG_RESULT([yes]); aliasing_flags='-fno-strict-aliasing'],
+ [AC_MSG_RESULT([no])])
+
+ CXXFLAGS="$saved_CXXFLAGS"
+fi
+AC_SUBST(aliasing_flags)
[enable expensive run-time checks. With LIST,
enable only specific categories of checks.
Categories are: yes,no,all,none,release.
- Flags are: assert,df,fold,gc,gcac,gimple,misc,
+ Flags are: assert,df,extra,fold,gc,gcac,gimple,misc,
rtlflag,rtl,runtime,tree,valgrind,types])],
[ac_checking_flags="${enableval}"],[
# Determine the default checks.
if test x$is_release = x ; then
- ac_checking_flags=yes
+ ac_checking_flags=yes,extra
else
ac_checking_flags=release
fi])
case $check in
# these set all the flags to specific states
yes) ac_assert_checking=1 ; ac_checking=1 ; ac_df_checking= ;
- ac_fold_checking= ; ac_gc_checking=1 ;
+ ac_fold_checking= ; ac_gc_checking=1 ; ac_extra_checking= ;
ac_gc_always_collect= ; ac_gimple_checking=1 ; ac_rtl_checking= ;
ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
ac_tree_checking=1 ; ac_valgrind_checking= ;
ac_types_checking=1 ;;
no|none) ac_assert_checking= ; ac_checking= ; ac_df_checking= ;
- ac_fold_checking= ; ac_gc_checking= ;
+ ac_fold_checking= ; ac_gc_checking= ; ac_extra_checking= ;
ac_gc_always_collect= ; ac_gimple_checking= ; ac_rtl_checking= ;
ac_rtlflag_checking= ; ac_runtime_checking= ;
ac_tree_checking= ; ac_valgrind_checking= ;
ac_types_checking= ;;
all) ac_assert_checking=1 ; ac_checking=1 ; ac_df_checking=1 ;
- ac_fold_checking=1 ; ac_gc_checking=1 ;
+ ac_fold_checking=1 ; ac_gc_checking=1 ; ac_extra_checking=1 ;
ac_gc_always_collect=1 ; ac_gimple_checking=1 ; ac_rtl_checking=1 ;
ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
ac_tree_checking=1 ; ac_valgrind_checking= ;
ac_types_checking=1 ;;
release) ac_assert_checking=1 ; ac_checking= ; ac_df_checking= ;
- ac_fold_checking= ; ac_gc_checking= ;
+ ac_fold_checking= ; ac_gc_checking= ; ac_extra_checking= ;
ac_gc_always_collect= ; ac_gimple_checking= ; ac_rtl_checking= ;
ac_rtlflag_checking= ; ac_runtime_checking=1 ;
ac_tree_checking= ; ac_valgrind_checking= ;
ac_types_checking= ;;
# these enable particular checks
assert) ac_assert_checking=1 ;;
- df) ac_df_checking=1 ;;
+ df) ac_df_checking=1 ;;
+ extra) ac_extra_checking=1 ;;
fold) ac_fold_checking=1 ;;
gc) ac_gc_checking=1 ;;
gcac) ac_gc_always_collect=1 ;;
nocommon_flag=""
if test x$ac_checking != x ; then
- AC_DEFINE(ENABLE_CHECKING, 1,
-[Define if you want more run-time sanity checks. This one gets a grab
- bag of miscellaneous but relatively cheap checks.])
+ if test x$ac_extra_checking != x ; then
+ ac_checking=2
+ fi
+ AC_DEFINE_UNQUOTED(CHECKING_P, $ac_checking,
+[Define to 1 if you want more run-time sanity checks. This one gets a grab
+ bag of miscellaneous but relatively cheap checks. Define to 2 if you want
+ also extra run-time checking that might affect code generation.])
nocommon_flag=-fno-common
+else
+ AC_DEFINE(CHECKING_P, 0)
fi
AC_SUBST(nocommon_flag)
if test x$ac_df_checking != x ; then
AC_DEFINE(ENABLE_TREE_CHECKING, 1,
[Define if you want all operations on trees (the basic data
structure of the front ends) to be checked for dynamic type safety
- at runtime. This is moderately expensive. The tree browser debugging
- routines will also be enabled by this option.
+ at runtime. This is moderately expensive.
])
- TREEBROWSER=tree-browser.o
TREECHECKING=yes
fi
if test x$ac_types_checking != x ; then
This is cheap.
])
fi
-AC_SUBST(TREEBROWSER)
AC_SUBST(TREECHECKING)
if test x$ac_rtl_checking != x ; then
AC_DEFINE(ENABLE_RTL_CHECKING, 1,
esac
], [enable_tls=''])
+AC_ARG_ENABLE(vtable-verify,
+[AS_HELP_STRING([--enable-vtable-verify],
+ [enable vtable verification feature])],,
+[enable_vtable_verify=no])
+vtable_verify=`if test x$enable_vtable_verify = xyes; then echo 1; else echo 0; fi`
+AC_DEFINE_UNQUOTED(ENABLE_VTABLE_VERIFY, $vtable_verify,
+[Define 0/1 if vtable verification feature is enabled.])
+
AC_ARG_ENABLE(objc-gc,
[AS_HELP_STRING([--enable-objc-gc],
[enable the use of Boehm's garbage collector with
for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
tgt=`echo $tgt | sed 's/=.*//'`
+
+ if echo "$tgt" | grep "^hsa" > /dev/null ; then
+ enable_hsa=1
+ else
+ enable_offloading=1
+ fi
+
if test x"$offload_targets" = x; then
offload_targets=$tgt
else
- offload_targets="$offload_targets:$tgt"
+ offload_targets="$offload_targets,$tgt"
fi
done
AC_DEFINE_UNQUOTED(OFFLOAD_TARGETS, "$offload_targets",
- [Define to hold the list of target names suitable for offloading.])
-if test x"$offload_targets" != x; then
+ [Define to offload targets, separated by commas.])
+if test x"$enable_offloading" != x; then
AC_DEFINE(ENABLE_OFFLOADING, 1,
[Define this to enable support for offloading.])
+else
+ AC_DEFINE(ENABLE_OFFLOADING, 0,
+ [Define this to enable support for offloading.])
+fi
+
+if test x"$enable_hsa" = x1 ; then
+ AC_DEFINE(ENABLE_HSA, 1,
+ [Define this to enable support for generating HSAIL.])
fi
AC_ARG_WITH(multilib-list,
# Until we have in-tree GNU iconv:
LIBICONV_DEP=
+if test -f "$LTLIBICONV"; then
+ LIBICONV_DEP=$LTLIBICONV
+fi
AC_SUBST(LIBICONV_DEP)
AM_LC_MESSAGES
gcc_AC_CHECK_DECLS(getenv atol atoll asprintf sbrk abort atof getcwd getwd \
madvise stpcpy strnlen strsignal strverscmp \
- strtol strtoul strtoll strtoull \
+ strtol strtoul strtoll strtoull setenv unsetenv \
errno snprintf vsnprintf vasprintf malloc realloc calloc \
free getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
#include "ansidecl.h"
of the registry key])],,)
case $host_os in
- win32 | pe | cygwin* | mingw32* | uwin*)
+ win32 | pe | cygwin* | mingw32*)
if test "x$enable_win32_registry" != xno; then
AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
fi
fi
if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
- if test "x$with_headers" != x; then
+ if test "x$with_headers" != x && test "x$with_headers" != xyes; then
target_header_dir=$with_headers
elif test "x$with_sysroot" = x; then
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS)
STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
+BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' AC_SUBST(BUILD_NO_PIE_CFLAGS)
+BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' AC_SUBST(BUILD_NO_PIE_FLAG)
+
# And these apply if build != host, or we are generating coverage data
if test x$build != x$host || test "x$coverage_flags" != x
then
BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)'
BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
+
+ NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}}
+ NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}}
+ BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)'
+ BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)'
fi
+AC_SUBST(NO_PIE_CFLAGS_FOR_BUILD)
+AC_SUBST(NO_PIE_FLAG_FOR_BUILD)
# Expand extra_headers to include complete path.
# This substitutes for lots of t-* files.
AS_VAR_SET_IF(gcc_cv_as,, [
if test -x "$DEFAULT_ASSEMBLER"; then
gcc_cv_as="$DEFAULT_ASSEMBLER"
-elif test -f $gcc_cv_as_gas_srcdir/configure.in \
+elif test -f $gcc_cv_as_gas_srcdir/configure.ac \
&& test -f ../gas/Makefile \
&& test x$build = x$host; then
gcc_cv_as=../gas/as-new$build_exeext
&& test -f ../gold/Makefile \
&& test x$build = x$host; then
gcc_cv_ld=../gold/ld-new$build_exeext
-elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
+elif test -f $gcc_cv_ld_gld_srcdir/configure.ac \
&& test -f ../ld/Makefile \
&& test x$build = x$host; then
gcc_cv_ld=../ld/ld-new$build_exeext
[AS_HELP_STRING([[--with-plugin-ld=[ARG]]], [specify the plugin linker])],
[if test x"$withval" != x; then
ORIGINAL_PLUGIN_LD_FOR_TARGET="$withval"
- PLUGIN_LD_SUFFIX=`echo $withval | sed -e "s,$target_alias-,,"`
+ PLUGIN_LD_SUFFIX="$withval"
fi])
AC_SUBST(ORIGINAL_PLUGIN_LD_FOR_TARGET)
AC_DEFINE_UNQUOTED(PLUGIN_LD_SUFFIX, "$PLUGIN_LD_SUFFIX", [Specify plugin linker])
fi
AC_MSG_RESULT($ld_is_gold)
+AC_MSG_CHECKING(gold linker with split stack support as non default)
+# Check to see if default ld is not gold, but gold is
+# available and has support for split stack. If gcc was configured
+# with gold then no checking is done.
+#
+if test x$ld_is_gold = xno && which ${gcc_cv_ld}.gold >/dev/null 2>&1; then
+
+# For platforms other than powerpc64*, enable as appropriate.
+
+ gold_non_default=no
+ ld_gold=`which ${gcc_cv_ld}.gold`
+# Make sure this gold has minimal split stack support
+ if $ld_gold --help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then
+ ld_vers=`$ld_gold --version | sed 1q`
+ gold_vers=`echo $ld_vers | sed -n \
+ -e 's,^[[^)]]*[[ ]]\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*[[^)]]*\)) .*$,\1,p'`
+ case $target in
+# check that the gold version contains the complete split stack support
+# on powerpc64 big and little endian
+ powerpc64*-*-*)
+ case "$gold_vers" in
+ 2.25.[[1-9]]*|2.2[[6-9]][[.0-9]]*|2.[[3-9]][[.0-9]]*|[[3-9]].[[.0-9]]*) gold_non_default=yes
+ ;;
+ *) gold_non_default=no
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gold_non_default = yes; then
+ AC_DEFINE(HAVE_GOLD_NON_DEFAULT_SPLIT_STACK, 1,
+ [Define if the gold linker supports split stack and is available as a non-default])
+ fi
+fi
+AC_MSG_RESULT($gold_non_default)
+
ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
AC_SUBST(ORIGINAL_LD_FOR_TARGET)
case "$ORIGINAL_LD_FOR_TARGET" in
elif test "$ld_is_gold" = yes; then
in_tree_ld_is_elf=yes
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.ac $gcc_cv_ld_gld_srcdir/Makefile.in
do
changequote(,)dnl
gcc_cv_gld_version=`sed -n -e 's/^[ ]*VERSION=[^0-9A-Za-z_]*\([0-9]*\.[0-9]*.*\)/VERSION=\1/p' < $f`
# Figure out what nm we will be using.
gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
AS_VAR_SET_IF(gcc_cv_nm,, [
-if test -f $gcc_cv_binutils_srcdir/configure.in \
+if test -f $gcc_cv_binutils_srcdir/configure.ac \
&& test -f ../binutils/Makefile \
&& test x$build = x$host; then
gcc_cv_nm=../binutils/nm-new$build_exeext
# Figure out what objdump we will be using.
AS_VAR_SET_IF(gcc_cv_objdump,, [
-if test -f $gcc_cv_binutils_srcdir/configure.in \
+if test -f $gcc_cv_binutils_srcdir/configure.ac \
&& test -f ../binutils/Makefile \
&& test x$build = x$host; then
# Single tree build which includes binutils.
# Figure out what readelf we will be using.
AS_VAR_SET_IF(gcc_cv_readelf,, [
-if test -f $gcc_cv_binutils_srcdir/configure.in \
+if test -f $gcc_cv_binutils_srcdir/configure.ac \
&& test -f ../binutils/Makefile \
&& test x$build = x$host; then
# Single tree build which includes binutils.
gcc_cv_readelf=../binutils/readelf$build_exeext
elif test -x readelf$build_exeext; then
gcc_cv_readelf=./readelf$build_exeext
+elif ( set dummy $READELF_FOR_TARGET; test -x $[2] ); then
+ gcc_cv_readelf="$READELF_FOR_TARGET"
else
- AC_PATH_PROG(gcc_cv_readelf, readelf)
+ AC_PATH_PROG(gcc_cv_readelf, $READELF_FOR_TARGET)
fi])
AC_MSG_CHECKING(what readelf to use)
.cfi_startproc
.cfi_endproc],
[case $target_os in
- win32 | pe | cygwin* | mingw32* | uwin*)
+ win32 | pe | cygwin* | mingw32*)
# Need to check that we generated the correct relocation for the
# .debug_frame section. This was fixed for binutils 2.21.
gcc_cv_as_cfi_sections_directive=no
[`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.])
+gcc_GAS_CHECK_FEATURE([stabs directive], gcc_cv_as_stabs_directive, ,,
+[.stabs "gcc2_compiled.",60,0,0,0],,
+[AC_DEFINE(HAVE_AS_STABS_DIRECTIVE, 1,
+ [Define if your assembler supports .stabs.])])
+
gcc_GAS_CHECK_FEATURE([COMDAT group support (GNU as)],
gcc_cv_as_comdat_group,
[elf,2,16,0], [--fatal-warnings],
tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
+ arc*-*-*)
+ conftest_s='
+ add_s r0,r0, @foo@tpoff'
+ tls_first_major=2
+ tls_first_minor=23
+ ;;
cris-*-*|crisv32-*-*)
conftest_s='
.section ".tdata","awT",@progbits
tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
- sh-*-* | sh[34]-*-*)
+ sh-*-* | sh[123456789lbe]*-*-*)
conftest_s='
.section ".tdata","awT",@progbits
foo: .long 25
[AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
[Define if your assembler supports .register.])])
- gcc_GAS_CHECK_FEATURE([@%:@nobits], gcc_cv_as_sparc_nobits,,,
- [.section "nobits",#alloc,#write,#nobits
- .section "progbits",#alloc,#write,#progbits])
- AC_DEFINE_UNQUOTED(HAVE_AS_SPARC_NOBITS,
- [`if test $gcc_cv_as_sparc_nobits = yes; then echo 1; else echo 0; fi`],
- [Define to 1 if your assembler supports #nobits, 0 otherwise.])
-
gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
[-relax], [.text],,
[AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
[AC_DEFINE(HAVE_AS_SPARC4, 1,
[Define if your assembler supports SPARC4 instructions.])])
+ gcc_GAS_CHECK_FEATURE([SPARC5 and VIS 4.0 instructions],
+ gcc_cv_as_sparc_sparc5,,
+ [-xarch=sparc5],
+ [.text
+ .register %g2, #scratch
+ .register %g3, #scratch
+ .align 4
+ subxc %g1, %g2, %g3
+ fpadd8 %f0, %f2, %f4],,
+ [AC_DEFINE(HAVE_AS_SPARC5_VIS4, 1,
+ [Define if your assembler supports SPARC5 and VIS 4.0 instructions.])])
+
gcc_GAS_CHECK_FEATURE([LEON instructions],
gcc_cv_as_sparc_leon,,
[-Aleon],
;;
powerpc*-*-*)
+
case $target in
- *-*-aix*) conftest_s=' .machine "pwr5"
- .csect .text[[PR]]
- mfcr 3,128';;
*-*-darwin*)
gcc_GAS_CHECK_FEATURE([.machine directive support],
gcc_cv_as_machine_directive,,,
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
fi
- conftest_s=' .text
+ ;;
+ esac
+
+ case $target in
+ *-*-aix*) conftest_s=' .machine "pwr5"
+ .csect .text[[PR]]
+ mfcr 3,128';;
+ *-*-darwin*) conftest_s=' .text
mfcr r3,128';;
*) conftest_s=' .machine power4
.text
[Define if your assembler supports POWER8 instructions.])])
case $target in
+ *-*-aix*) conftest_s=' .machine "pwr9"
+ .csect .text[[PR]]';;
+ *) conftest_s=' .machine power9
+ .text';;
+ esac
+
+ gcc_GAS_CHECK_FEATURE([power9 support],
+ gcc_cv_as_powerpc_power9, [2,19,2], -a32,
+ [$conftest_s],,
+ [AC_DEFINE(HAVE_AS_POWER9, 1,
+ [Define if your assembler supports POWER9 instructions.])])
+
+ case $target in
*-*-aix*) conftest_s=' .csect .text[[PR]]
lwsync';;
*) conftest_s=' .text
[AC_DEFINE(HAVE_AS_TLS_MARKERS, 1,
[Define if your assembler supports arg info for __tls_get_addr.])])
+ gcc_GAS_CHECK_FEATURE([prologue entry point marker support],
+ gcc_cv_as_powerpc_entry_markers, [2,26,0],-a64 --fatal-warnings,
+ [ .reloc .,R_PPC64_ENTRY; nop],,
+ [AC_DEFINE(HAVE_AS_ENTRY_MARKERS, 1,
+ [Define if your assembler supports the R_PPC64_ENTRY relocation.])])
+
case $target in
*-*-aix*)
- gcc_GAS_CHECK_FEATURE([.ref support],
+ gcc_GAS_CHECK_FEATURE([AIX .ref support],
gcc_cv_as_aix_ref, [2,21,0],,
[ .csect stuff[[rw]]
stuff:
],,
[AC_DEFINE(HAVE_AS_REF, 1,
[Define if your assembler supports .ref])])
+
+ gcc_GAS_CHECK_FEATURE([AIX DWARF location lists section support],
+ gcc_cv_as_aix_dwloc, [2,21,0],,
+ [ .dwsect 0xA0000
+ Lframe..0:
+ .vbyte 4,Lframe..0:
+ ],,
+ [AC_DEFINE(HAVE_XCOFF_DWARF_EXTRAS, 1,
+ [Define if your assembler supports AIX debug frame section label reference.])])
;;
esac
;;
then target_cpu_default=MASK_EXPLICIT_RELOCS
else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
fi])
+
gcc_GAS_CHECK_FEATURE([-mno-shared support],
gcc_cv_as_mips_no_shared, [2,16,0], [-mno-shared], [nop],,
[AC_DEFINE(HAVE_AS_NO_SHARED, 1,
[.gnu_attribute 8,1],,
[AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
[Define if your assembler supports .gnu_attribute.])])
+ gcc_GAS_CHECK_FEATURE([.machine and .machinemode support],
+ gcc_cv_as_s390_machine_machinemode, [2,24,0],,
+ [ .machinemode push
+ .machinemode pop
+ .machine push
+ .machine pop],,
+ [AC_DEFINE(HAVE_AS_MACHINE_MACHINEMODE, 1,
+ [Define if your assembler supports .machine and .machinemode.])])
+ gcc_GAS_CHECK_FEATURE([architecture modifiers support],
+ gcc_cv_as_s390_architecture_modifiers, [2,26,0],,
+ [ .machine z13+vx ],,
+ [AC_DEFINE(HAVE_AS_ARCHITECTURE_MODIFIERS, 1,
+ [Define if your assembler supports architecture modifiers.])])
;;
esac
AC_MSG_CHECKING(linker position independent executable support)
gcc_cv_ld_pie=no
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 \
+ case "$target" in
+ # Full PIE support on Solaris was only introduced in gld 2.26.
+ *-*-solaris2*) gcc_gld_pie_min_version=26 ;;
+ *) gcc_gld_pie_min_version=15 ;;
+ esac
+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge "$gcc_gld_pie_min_version" -o "$gcc_cv_gld_major_version" -gt 2 \
&& test $in_tree_ld_is_elf = yes; then
gcc_cv_ld_pie=yes
fi
elif test x$gcc_cv_ld != x; then
- # Check if linker supports -pie option
- if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
- gcc_cv_ld_pie=yes
+ # Check if linker supports -pie option
+ if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
+ gcc_cv_ld_pie=yes
+ case "$target" in
+ *-*-solaris2*)
+ if echo "$ld_ver" | grep GNU > /dev/null \
+ && test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 26; then
+ gcc_cv_ld_pie=no
+ fi
+ ;;
+ esac
+ else
+ case "$target" in
+ *-*-solaris2.1[[1-9]]*)
+ # Solaris 11.x and Solaris 12 added PIE support.
+ if $gcc_cv_ld -z help 2>&1 | grep -- type.*pie > /dev/null; then
+ gcc_cv_ld_pie=yes
fi
+ ;;
+ esac
+ fi
fi
if test x"$gcc_cv_ld_pie" = xyes; then
AC_DEFINE(HAVE_LD_PIE, 1,
-[Define if your linker supports -pie option.])
+[Define if your linker supports PIE option.])
fi
AC_MSG_RESULT($gcc_cv_ld_pie)
x: .quad .TOC.
EOF
if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
- && $gcc_cv_ld $emul_name -o conftest conftest.o > /dev/null 2>&1; then
+ && $gcc_cv_ld $emul_name -z norelro -o conftest conftest.o > /dev/null 2>&1; then
gcc_cv_ld_toc_align=`$gcc_cv_nm conftest | ${AWK} '/\.TOC\./ { match ($0, "0[[[:xdigit:]]]*", a); print strtonum ("0x" substr(a[[0]], length(a[[0]])-3)) }'`
fi
rm -f conftest conftest.o conftest.s
[Define if your linker supports --sysroot.])
fi
+case $target in
+*-*-solaris2*)
+ # Check for system-provided CRTs on Solaris 11.x and Solaris 12.
+ AC_CACHE_CHECK([system-provided CRTs on Solaris],
+ gcc_cv_solaris_crts,
+ [gcc_cv_solaris_crts=no
+ if test x$host != x$target; then
+ if test "x$with_sysroot" = xyes; then
+ target_sysroot="${test_exec_prefix}/${target_noncanonical}/sys-root"
+ else
+ target_sysroot="${with_sysroot}"
+ fi
+ fi
+ target_libdir="$target_sysroot/usr/lib"
+ # At the time they were added, gcrt1.o became a symlink for backwards
+ # compatibility on x86, while crt1.o was added on sparc, so check for that.
+ case $target in
+ i?86-*-solaris2* | x86_64-*-solaris2*)
+ if test -h "$target_libdir/gcrt1.o"; then gcc_cv_solaris_crts=yes; fi
+ ;;
+ sparc*-*-solaris2*)
+ if test -f "$target_libdir/crt1.o"; then gcc_cv_solaris_crts=yes; fi
+ ;;
+ esac])
+ ;;
+esac
+if test x$gcc_cv_solaris_crts = xyes; then
+ AC_DEFINE(HAVE_SOLARIS_CRTS, 1,
+ [Define if the system-provided CRTs are present on Solaris.])
+fi
+
# Test for stack protector support in target C library.
AC_CACHE_CHECK(__stack_chk_fail in target C library,
gcc_cv_libc_provides_ssp,
# realistically usable GNU/Hurd configurations.
# All supported versions of musl provide it as well
gcc_cv_libc_provides_ssp=yes;;
- *-*-darwin* | *-*-freebsd*)
+ *-*-darwin* | *-*-freebsd* | *-*-netbsd*)
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
[echo "no __stack_chk_fail on this target"])
;;
[Define if your target C library provides stack protector support])
fi
+# Check whether --enable-default-ssp was given.
+AC_ARG_ENABLE(default-ssp,
+[AS_HELP_STRING([--enable-default-ssp],
+ [enable Stack Smashing Protection as default])],[
+if test x$gcc_cv_libc_provides_ssp = xyes; then
+ case "$target" in
+ ia64*-*-*) enable_default_ssp=no ;;
+ *) enable_default_ssp=$enableval ;;
+ esac
+else
+ enable_default_ssp=no
+fi],
+enable_default_ssp=no)
+if test x$enable_default_ssp = xyes ; then
+ AC_DEFINE(ENABLE_DEFAULT_SSP, 1,
+ [Define if your target supports default stack protector and it is enabled.])
+fi
+AC_SUBST([enable_default_ssp])
+
# Test for <sys/sdt.h> on the target.
GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
AC_MSG_CHECKING(sys/sdt.h in the target C library)
[Define if TFmode long double should be the default])
fi
+# Check if the target LIBC supports exporting the AT_PLATFORM and AT_HWCAP
+# values in the TCB. Currently, only GLIBC 2.23 and later support this.
+gcc_cv_libc_provides_hwcap_in_tcb=no
+case "$target" in
+ powerpc*-*-linux*)
+ GCC_GLIBC_VERSION_GTE_IFELSE([2], [23], [gcc_cv_libc_provides_hwcap_in_tcb=yes], )
+ ;;
+esac
+if test x$gcc_cv_libc_provides_hwcap_in_tcb = xyes; then
+ AC_DEFINE(TARGET_LIBC_PROVIDES_HWCAP_IN_TCB, 1,
+ [Define if your target C Library provides the AT_HWCAP value in the TCB])
+fi
+
AC_MSG_CHECKING(dl_iterate_phdr in target C library)
gcc_cv_target_dl_iterate_phdr=unknown
case "$target" in
AC_ARG_VAR(GMPLIBS,[How to link GMP])
AC_ARG_VAR(GMPINC,[How to find GMP include files])
-AC_ARG_VAR(ISLLIBS,[How to link ISL])
-AC_ARG_VAR(ISLINC,[How to find ISL include files])
+AC_ARG_VAR(ISLLIBS,[How to link isl])
+AC_ARG_VAR(ISLINC,[How to find isl include files])
if test "x${ISLLIBS}" != "x" ; then
AC_DEFINE(HAVE_isl, 1, [Define if isl is in use.])
fi
-# Check whether isl_schedule_constraints_compute_schedule is available;
-# it's new in ISL-0.13.
# Check whether isl_options_set_schedule_serialize_sccs is available;
-# it's new in ISL-0.15.
+# it's new in isl 0.15.
if test "x${ISLLIBS}" != "x" ; then
saved_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS $ISLINC"
+ CXXFLAGS="$CXXFLAGS $ISLINC $GMPINC"
saved_LIBS="$LIBS"
LIBS="$LIBS $ISLLIBS $GMPLIBS"
- AC_MSG_CHECKING([Checking for isl_schedule_constraints_compute_schedule])
- AC_TRY_LINK([#include <isl/schedule.h>],
- [isl_schedule_constraints_compute_schedule (NULL);],
- [ac_has_isl_schedule_constraints_compute_schedule=yes],
- [ac_has_isl_schedule_constraints_compute_schedule=no])
- AC_MSG_RESULT($ac_has_isl_schedule_constraints_compute_schedule)
-
AC_MSG_CHECKING([Checking for isl_options_set_schedule_serialize_sccs])
AC_TRY_LINK([#include <isl/schedule.h>],
[isl_options_set_schedule_serialize_sccs (NULL, 0);],
LIBS="$saved_LIBS"
CXXFLAGS="$saved_CXXFLAGS"
- if test x"$ac_has_isl_schedule_constraints_compute_schedule" = x"yes"; then
- AC_DEFINE(HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE, 1,
- [Define if isl_schedule_constraints_compute_schedule exists.])
- fi
-
if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then
AC_DEFINE(HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS, 1,
[Define if isl_options_set_schedule_serialize_sccs exists.])
[enable Position Independent Executable as default])],
enable_default_pie=$enableval,
enable_default_pie=no)
-if test x$enable_default_pie == xyes ; then
+if test x$enable_default_pie = xyes ; then
AC_DEFINE(ENABLE_DEFAULT_PIE, 1,
[Define if your target supports default PIE and it is enabled.])
fi