# configure.ac for GCC
# Process this file with autoconf to generate a configuration script.
-# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
#This file is part of GCC.
routines will also be enabled by this option.
])
TREEBROWSER=tree-browser.o
+ TREECHECKING=yes
fi
if test x$ac_types_checking != x ; then
AC_DEFINE(ENABLE_TYPES_CHECKING, 1,
])
fi
AC_SUBST(TREEBROWSER)
+AC_SUBST(TREECHECKING)
if test x$ac_rtl_checking != x ; then
AC_DEFINE(ENABLE_RTL_CHECKING, 1,
[Define if you want all operations on RTL (the basic data structure
[], [enable_multilib=yes])
AC_SUBST(enable_multilib)
+# Determine whether or not multiarch is enabled.
+AC_ARG_ENABLE(multiarch,
+[AS_HELP_STRING([--enable-multiarch],
+ [enable support for multiarch paths])],
+[case "${enableval}" in
+yes|no|auto) enable_multiarch=$enableval;;
+*) AC_MSG_ERROR(bad value ${enableval} given for --enable-multiarch option) ;;
+esac], [enable_multiarch=auto])
+if test x${enable_multiarch} = xauto; then
+ if test x${with_native_system_header_dir} != x; then
+ ma_msg_suffix=", disabled auto check (configured with --native-system-header-dir)"
+ enable_multiarch=no
+ fi
+ if test x$host != x$target && test "x$with_sysroot" = x; then
+ ma_msg_suffix=", disabled auto check (cross build configured without --with-sysroot)"
+ enable_multiarch=no
+ fi
+fi
+AC_MSG_CHECKING(for multiarch configuration)
+AC_SUBST(enable_multiarch)
+AC_MSG_RESULT($enable_multiarch$ma_msg_suffix)
+
+# needed for setting the multiarch name for soft-float/hard-float ABIs
+AC_SUBST(with_cpu)
+AC_SUBST(with_float)
+
# Enable __cxa_atexit for C++.
AC_ARG_ENABLE(__cxa_atexit,
[AS_HELP_STRING([--enable-__cxa_atexit], [enable __cxa_atexit for C++])],
# We will need to find libiberty.h and ansidecl.h
saved_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
+CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
saved_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include"
+CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
strsignal strstr stpcpy strverscmp \
errno snprintf vsnprintf vasprintf malloc realloc calloc \
*-*-mingw32*)
use_cxa_atexit=yes
;;
+ powerpc-ibm-aix*)
+ use_cxa_atexit=yes
+ ;;
*)
AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
[echo "__cxa_atexit can't be enabled on this target"])
ORIGINAL_PLUGIN_LD_FOR_TARGET=$gcc_cv_ld
PLUGIN_LD_SUFFIX=`basename $gcc_cv_ld | sed -e "s,$target_alias-,,"`
+# if the PLUGIN_LD is set ld-new, just have it as ld
+# as that is the installed named.
+if test x$PLUGIN_LD_SUFFIX = xld-new \
+ || test x$PLUGIN_LD_SUFFIX = xcollect-ld ; then
+ PLUGIN_LD_SUFFIX=ld
+fi
AC_ARG_WITH(plugin-ld,
[AS_HELP_STRING([[--with-plugin-ld=[ARG]]], [specify the plugin linker])],
[if test x"$withval" != x; then
Valid choices are 'yes' and 'no'.]) ;;
esac],
[enable_gnu_indirect_function="$default_gnu_indirect_function"])
-if test x$enable_gnu_indirect_function = xyes; then
- AC_DEFINE(HAVE_GNU_INDIRECT_FUNCTION, 1,
- [Define if your system supports gnu indirect functions.])
-fi
+
+gif=`if test x$enable_gnu_indirect_function = xyes; then echo 1; else echo 0; fi`
+AC_DEFINE_UNQUOTED(HAVE_GNU_INDIRECT_FUNCTION, $gif,
+[Define if your system supports gnu indirect functions.])
+
changequote(,)dnl
if test $in_tree_ld != yes ; then
if test x"$ld_is_gold" = xyes; then
:
elif echo "$ld_ver" | grep GNU > /dev/null; then
+ case "${target}" in
+ mmix-knuth-mmixware)
+ # The linker emits by default mmo, not ELF, so "no" is appropriate.
+ gcc_cv_ld_hidden=no
+ ;;
+ esac
if test 0"$ld_date" -lt 20020404; then
if test -n "$ld_date"; then
# If there was date string, but was earlier than 2002-04-04, fail
if test $gcc_cv_as_comdat_group_percent = yes; then
gcc_cv_as_comdat_group_group=no
else
+ if test -z "${gcc_cv_as_comdat_group_group+set}"; then
+ gcc_cv_as_comdat_group_group=no
+ fi
case "${target}" in
# Sun as uses a completely different syntax.
*-*-solaris2*)
tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
+ microblaze*-*-*)
+ conftest_s='
+ .section .tdata,"awT",@progbits
+x:
+ .word 2
+ .text
+ addik r5,r20,x@TLSGD
+ addik r5,r20,x@TLSLDM'
+ tls_first_major=2
+ tls_first_minor=20
+ tls_as_opt='--fatal-warnings'
+ ;;
mips*-*-*)
conftest_s='
.section .tdata,"awT",@progbits
tls_first_minor=19
tls_as_opt='--fatal-warnings'
;;
+ aarch64*-*-*)
+ conftest_s='
+ .section ".tdata","awT",%progbits
+foo: .long 25
+ .text
+ adrp x0, :tlsgd:x
+ add x0, x0, #:tlsgd_lo12:x
+ bl __tls_get_addr
+ nop'
+ tls_first_major=2
+ tls_first_minor=20
+ tls_as_opt='--fatal-warnings'
+ ;;
+ powerpc-ibm-aix*)
+ conftest_s='
+ .extern __get_tpointer
+ .toc
+LC..1:
+ .tc a[TC],a[TL]@le
+ .csect .text[PR]
+.tlstest:
+ lwz 9,LC..1(2)
+ bla __get_tpointer
+ lwzx 3,9,3
+ .globl a
+ .csect a[TL],4
+a:
+ .space 4'
+ tls_first_major=0
+ tls_first_minor=0
+ ;;
powerpc-*-*)
conftest_s='
.section ".tdata","awT",@progbits
gcc_cv_ld_static_dynamic=yes
else
case "$target" in
+ # AIX ld uses -b flags
+ *-*-aix4.[[23]]* | *-*-aix[[5-9]]*)
+ gcc_cv_ld_static_dynamic=yes
+ gcc_cv_ld_static_option="-bstatic"
+ gcc_cv_ld_dynamic_option="-bdynamic"
+ ;;
# HP-UX ld uses -a flags to select between shared and archive.
*-*-hpux*)
if test x"$gnu_ld" = xno; then
[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,
fnaddd %f10, %f12, %f14],,
[AC_DEFINE(HAVE_AS_FMAF_HPC_VIS3, 1,
[Define if your assembler supports FMAF, HPC, and VIS 3.0 instructions.])])
+
+ gcc_GAS_CHECK_FEATURE([SPARC4 instructions],
+ gcc_cv_as_sparc_sparc4,,
+ [-xarch=sparc4],
+ [.text
+ .register %g2, #scratch
+ .register %g3, #scratch
+ .align 4
+ cxbe %g2, %g3, 1f
+1: cwbneg %g2, %g3, 1f
+1: sha1
+ md5
+ aes_kexpand0 %f4, %f6, %f8
+ des_round %f38, %f40, %f42, %f44
+ camellia_f %f54, %f56, %f58, %f60
+ kasumi_fi_xor %f46, %f48, %f50, %f52],,
+ [AC_DEFINE(HAVE_AS_SPARC4, 1,
+ [Define if your assembler supports SPARC4 instructions.])])
;;
changequote(,)dnl
# wrappers to aid in interposing and redirecting operators new, delete,
# etc., as per n2800 #17.6.4.6 [replacement.functions]. Check if we
# are configuring for a version of Cygwin that exports the wrappers.
- if test x$host = x$target; then
+ if test x$host = x$target && test x$host_cpu = xi686; then
AC_CHECK_FUNC([__wrap__Znaj],[gcc_ac_cygwin_dll_wrappers=yes],[gcc_ac_cygwin_dll_wrappers=no])
else
# Can't check presence of libc functions during cross-compile, so
[AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
[Define if your assembler supports the sahf mnemonic in 64bit mode.])])
+ gcc_GAS_CHECK_FEATURE([interunit movq mnemonic],
+ gcc_cv_as_ix86_interunit_movq,,,
+ [.code64
+ movq %mm0, %rax
+ movq %rax, %xmm0],,
+ [AC_DEFINE(HAVE_AS_IX86_INTERUNIT_MOVQ, 1,
+ [Define if your assembler supports interunit movq mnemonic.])])
+
gcc_GAS_CHECK_FEATURE([hle prefixes],
gcc_cv_as_ix86_hle,,,
[lock xacquire cmpxchg %esi, (%ecx)],,
[AC_DEFINE(HAVE_AS_POPCNTD, 1,
[Define if your assembler supports POPCNTD instructions.])])
+ case $target in
+ *-*-aix*) conftest_s=' .machine "pwr8"
+ .csect .text[[PR]]';;
+ *) conftest_s=' .machine power8
+ .text';;
+ esac
+
+ gcc_GAS_CHECK_FEATURE([power8 support],
+ gcc_cv_as_powerpc_power8, [2,19,2], -a32,
+ [$conftest_s],,
+ [AC_DEFINE(HAVE_AS_POWER8, 1,
+ [Define if your assembler supports POWER8 instructions.])])
+
case $target in
*-*-aix*) conftest_s=' .csect .text[[PR]]
lwsync';;
case $target in
*-*-aix*)
gcc_GAS_CHECK_FEATURE([.ref support],
- gcc_cv_as_aix_ref, [2.21.0],,
+ gcc_cv_as_aix_ref, [2,21,0],,
[ .csect stuff[[rw]]
stuff:
.long 1
[AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
[Define if your assembler supports .gnu_attribute.])])
+ gcc_GAS_CHECK_FEATURE([.micromips support],
+ gcc_cv_as_micromips_support,,,
+ [.set micromips],,
+ [AC_DEFINE(HAVE_GAS_MICROMIPS, 1,
+ [Define if your assembler supports the .set micromips directive])])
+
gcc_GAS_CHECK_FEATURE([.dtprelword support],
gcc_cv_as_mips_dtprelword, [2,18,0],,
[.section .tdata,"awT",@progbits
fi
AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
+AC_MSG_CHECKING(linker CIEv3 in .eh_frame support)
+gcc_cv_ld_eh_frame_ciev3=no
+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 \
+ && test $in_tree_ld_is_elf = yes; then
+ gcc_cv_ld_eh_frame_ciev3=yes
+ fi
+elif test x$gcc_cv_ld != x; then
+ if echo "$ld_ver" | grep GNU > /dev/null; then
+ gcc_cv_ld_eh_frame_ciev3=yes
+ if test 0"$ld_date" -lt 20040513; then
+ if test -n "$ld_date"; then
+ # If there was date string, but was earlier than 2004-05-13, fail
+ gcc_cv_ld_eh_frame_ciev3=no
+ elif test "$ld_vers_major" -lt 2; then
+ gcc_cv_ld_eh_frame_ciev3=no
+ elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
+ gcc_cv_ld_eh_frame_ciev3=no
+ fi
+ fi
+ else
+ case "$target" in
+ *-*-solaris2*)
+ # Sun ld added support for CIE v3 in .eh_frame in Solaris 11.1.
+ if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 2324; then
+ gcc_cv_ld_eh_frame_ciev3=yes
+ fi
+ ;;
+ esac
+ fi
+fi
+AC_DEFINE_UNQUOTED(HAVE_LD_EH_FRAME_CIEV3,
+ [`if test x"$gcc_cv_ld_eh_frame_ciev3" = xyes; then echo 1; else echo 0; fi`],
+ [Define 0/1 if your linker supports CIE v3 in .eh_frame.])
+AC_MSG_RESULT($gcc_cv_ld_eh_frame_ciev3)
+
AC_MSG_CHECKING(linker position independent executable support)
gcc_cv_ld_pie=no
if test $in_tree_ld = yes ; then
AC_CACHE_CHECK(linker --as-needed support,
gcc_cv_ld_as_needed,
[gcc_cv_ld_as_needed=no
+gcc_cv_ld_as_needed_option='--as-needed'
+gcc_cv_ld_no_as_needed_option='--no-as-needed'
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 \
&& test $in_tree_ld_is_elf = yes; then
# 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
gcc_cv_ld_as_needed=yes
+ else
+ case "$target" in
+ # Solaris 2 ld always supports -z ignore/-z record.
+ *-*-solaris2*)
+ gcc_cv_ld_as_needed=yes
+ gcc_cv_ld_as_needed_option="-z ignore"
+ gcc_cv_ld_no_as_needed_option="-z record"
+ ;;
+ esac
fi
fi
])
if test x"$gcc_cv_ld_as_needed" = xyes; then
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/--no-as-needed or equivalent options.])
+ AC_DEFINE_UNQUOTED(LD_AS_NEEDED_OPTION, "$gcc_cv_ld_as_needed_option",
+[Define to the linker option to ignore unused dependencies.])
+ AC_DEFINE_UNQUOTED(LD_NO_AS_NEEDED_OPTION, "$gcc_cv_ld_no_as_needed_option",
+[Define to the linker option to keep unused dependencies.])
fi
case "$target:$tm_file" in
AC_CACHE_CHECK(linker support for omitting dot symbols,
gcc_cv_ld_no_dot_syms,
[gcc_cv_ld_no_dot_syms=no
- if test $in_tree_ld = yes ; then
+ if test x"$ld_is_gold" = xyes; then
+ gcc_cv_ld_no_dot_syms=yes
+ elif 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
gcc_cv_ld_no_dot_syms=yes
fi
AC_CACHE_CHECK(linker large toc support,
gcc_cv_ld_large_toc,
[gcc_cv_ld_large_toc=no
- if test $in_tree_ld = yes ; then
+ if test x"$ld_is_gold" = xyes; then
+ gcc_cv_ld_large_toc=yes
+ elif test $in_tree_ld = yes ; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 21 -o "$gcc_cv_gld_major_version" -gt 2; then
gcc_cv_ld_large_toc=yes
fi
;;
esac
+case "$target" in
+ *-*-aix*)
+ AC_CACHE_CHECK(linker large toc support,
+ gcc_cv_ld_large_toc,
+ [gcc_cv_ld_large_toc=no
+ if test x$gcc_cv_as != x ; then
+ cat > conftest.s <<EOF
+ .toc
+LC..1:
+ .tc a[[TC]],a[[RW]]
+ .extern a[[RW]]
+ .csect .text[[PR]]
+.largetoctest:
+ addis 9,LC..1@u(2)
+ ld 3,LC..1@l(9)
+EOF
+ if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_ld_large_toc=yes
+ fi
+ rm -f conftest conftest.o conftest.s
+ fi
+ ])
+ if test x"$gcc_cv_ld_large_toc" = xyes; then
+ AC_DEFINE(HAVE_LD_LARGE_TOC, 1,
+ [Define if your AIX linker supports a large TOC.])
+ fi
+ ;;
+esac
+
AC_CACHE_CHECK(linker --build-id support,
gcc_cv_ld_buildid,
[gcc_cv_ld_buildid=no
fi
AC_MSG_RESULT($gcc_cv_target_dl_iterate_phdr)
-# Find out what GC implementation we want, or may, use.
+# We no longer support different GC mechanisms. Emit an error if
+# the user configures with --with-gc.
AC_ARG_WITH(gc,
[AS_HELP_STRING([--with-gc={page,zone}],
- [choose the garbage collection mechanism to use
- with the compiler])],
-[case "$withval" in
- page)
- GGC=ggc-$withval
- ;;
- zone)
- GGC=ggc-$withval
- AC_DEFINE(GGC_ZONE, 1, [Define if the zone collector is in use])
- ;;
- *)
- AC_MSG_ERROR([$withval is an invalid option to --with-gc])
- ;;
-esac],
-[GGC=ggc-page])
-AC_SUBST(GGC)
-echo "Using $GGC for garbage collection."
+ [this option is not supported anymore. It used to choose
+ the garbage collection mechanism to use with the compiler])],
+[AC_MSG_ERROR([Configure option --with-gc is only supported up to GCC 4.7.x])],
+[])
# Libraries to use on the host. This will normally be set by the top
# level Makefile. Here we simply capture the value for our Makefile.