build_exeext
all_selected_languages
all_languages
-all_lang_makefiles
all_lang_makefrags
all_gtfiles
all_compilers
slibdir
dollar
gcc_tooldir
+LTO_USE_LIBELF
+LTO_BINARY_READER
enable_lto
MAINT
zlibinc
enable_sjlj_exceptions
with_system_libunwind
enable_secureplt
+enable_leading_mingw64_underscores
enable_cld
enable_win32_registry
enable_static
--enable-sjlj-exceptions
arrange to use setjmp/longjmp exception handling
--enable-secureplt enable -msecure-plt by default for PowerPC
+ --enable-leading-mingw64-underscores
+ Enable leading underscores on 64 bit mingw targets
--enable-cld enable -mcld by default for 32bit x86
--disable-win32-registry
disable lookup of installation paths in the
# NM
if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
&& test -d ../binutils ; then
- NM='$(objdir)/../binutils/nm-new'
+ NM='${objdir}/../binutils/nm-new'
else
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
# AR
if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
&& test -d ../binutils ; then
- AR='$(objdir)/../binutils/ar'
+ AR='${objdir}/../binutils/ar'
else
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
done
+save_CPPFLAGS="$CPPFLAGS"
+save_LIBS="$LIBS"
+LIBS="$LIBS $LIBELFLIBS"
+for ac_func in elf_getshdrstrndx
+do :
+ ac_fn_c_check_func "$LINENO" "elf_getshdrstrndx" "ac_cv_func_elf_getshdrstrndx"
+if test "x$ac_cv_func_elf_getshdrstrndx" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ELF_GETSHDRSTRNDX 1
+_ACEOF
+
+else
+ for ac_func in elf_getshstrndx
+do :
+ ac_fn_c_check_func "$LINENO" "elf_getshstrndx" "ac_cv_func_elf_getshstrndx"
+if test "x$ac_cv_func_elf_getshstrndx" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ELF_GETSHSTRNDX 1
+_ACEOF
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <libelf.h>
+int main()
+{
+ return elf_getshstrndx (NULL, 0) == 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+$as_echo "#define HAVE_ELF_GETSHSTRNDX_GABI 1" >>confdefs.h
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+done
+
+
+fi
+done
+
+LIBS="$save_LIBS"
+CPPFLAGS="$save_CPPFLAGS"
+
if test x$ac_cv_func_mbstowcs = xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbstowcs works" >&5
$as_echo_n "checking whether mbstowcs works... " >&6; }
fi
+# Check whether --enable-leading-mingw64-underscores was given.
+if test "${enable_leading_mingw64_underscores+set}" = set; then :
+ enableval=$enable_leading_mingw64_underscores;
+fi
+
+if test x"$enable_leading_mingw64_underscores" = xyes ; then :
+
+$as_echo "#define USE_MINGW64_LEADING_UNDERSCORES 1" >>confdefs.h
+
+fi
+
# Check whether --enable-cld was given.
if test "${enable_cld+set}" = set; then :
enableval=$enable_cld;
out_object_file=`basename $out_file .c`.o
tm_file_list="options.h"
-tm_include_list="options.h"
+tm_include_list="options.h insn-constants.h"
for f in $tm_file; do
case $f in
./* )
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17042 "configure"
+#line 17110 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17148 "configure"
+#line 17216 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then
- gcc_cv_as_hidden=yes
+
+# Solaris 9/x86 as incorrectly emits an alias for a hidden symbol with
+# STV_HIDDEN, so disable .hidden support if so.
+case "${target}" in
+ i?86-*-solaris2*)
+ if test x$gcc_cv_as != x && test x$gcc_cv_objdump != x; then
+ cat > conftest.s <<EOF
+.globl hidden
+ .hidden hidden
+hidden:
+.globl default
+ .set default,hidden
+EOF
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
+ && $gcc_cv_objdump -t conftest.o 2>/dev/null | \
+ grep '\.hidden default' > /dev/null; then
+ gcc_cv_as_hidden=no
+ else
+ gcc_cv_as_hidden=yes
+ fi
+ else
+ # Assume bug is present if objdump is missing.
+ gcc_cv_as_hidden=no
+ fi
+ ;;
+ *)
+ gcc_cv_as_hidden=yes
+ ;;
+esac
else
echo "configure: failed program was" >&5
cat conftest.s >&5
gcc_cv_ld_hidden=yes
;;
*-*-solaris2.9* | *-*-solaris2.1[0-9]*)
+ # Support for .hidden in Sun ld appeared in Solaris 9 FCS, but
+ # .symbolic was only added in Solaris 9 12/02.
gcc_cv_ld_hidden=yes
;;
*)
;;
i[34567]86-*-*)
case "$target" in
- i[34567]86-*-solaris2.[56789]*)
+ i[34567]86-*-solaris2.[89]*)
# TLS was introduced in the Solaris 9 4/04 release but
# we do not enable it by default on Solaris 9 either.
if test "x$enable_tls" = xyes ; then
;;
sparc*-*-*)
case "$target" in
- sparc*-sun-solaris2.[56789]*)
+ sparc*-sun-solaris2.[89]*)
# TLS was introduced in the Solaris 9 4/04 release but
# we do not enable it by default on Solaris 9 either.
if test "x$enable_tls" = xyes ; then
$as_echo "#define HAVE_GAS_PE_SECREL32_RELOC 1" >>confdefs.h
fi
+ # Test if the assembler supports the extended form of the .section
+ # directive that specifies section alignment. LTO support uses this,
+ # but normally only after installation, so we warn but don't fail the
+ # configure if LTO is enabled but the assembler does not support it.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .section with alignment" >&5
+$as_echo_n "checking assembler for .section with alignment... " >&6; }
+if test "${gcc_cv_as_section_has_align+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ gcc_cv_as_section_has_align=no
+ if test $in_tree_gas = yes; then
+ if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 20 \) \* 1000 + 1`
+ then gcc_cv_as_section_has_align=yes
+fi
+ elif test x$gcc_cv_as != x; then
+ echo '.section lto_test,"dr0"' > conftest.s
+ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -fatal-warnings -o conftest.o conftest.s >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ gcc_cv_as_section_has_align=yes
+ else
+ echo "configure: failed program was" >&5
+ cat conftest.s >&5
+ fi
+ rm -f conftest.o conftest.s
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_section_has_align" >&5
+$as_echo "$gcc_cv_as_section_has_align" >&6; }
+
+ if test x$gcc_cv_as_section_has_align != xyes; then
+ case ",$enable_languages," in
+ *,lto,*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded." >&5
+$as_echo "$as_me: WARNING: LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded." >&2;}
+ ;;
+ esac
+ fi
;;
esac
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .quad directive" >&5
+$as_echo_n "checking assembler for .quad directive... " >&6; }
+if test "${gcc_cv_as_ix86_quad+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ gcc_cv_as_ix86_quad=no
+ if test x$gcc_cv_as != x; then
+ echo '.quad 0' > conftest.s
+ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -o conftest.o conftest.s >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ gcc_cv_as_ix86_quad=yes
+ else
+ echo "configure: failed program was" >&5
+ cat conftest.s >&5
+ fi
+ rm -f conftest.o conftest.s
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_quad" >&5
+$as_echo "$gcc_cv_as_ix86_quad" >&6; }
+if test $gcc_cv_as_ix86_quad = yes; then
+
+$as_echo "#define HAVE_AS_IX86_QUAD 1" >>confdefs.h
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for sahf mnemonic" >&5
$as_echo_n "checking assembler for sahf mnemonic... " >&6; }
if test "${gcc_cv_as_ix86_sahf+set}" = set; then :
else
gcc_cv_as_ix86_sahf=no
if test x$gcc_cv_as != x; then
- echo 'sahf' > conftest.s
+ echo '.code64
+ sahf' > conftest.s
if { ac_try='$gcc_cv_as $gcc_cv_as_flags -o conftest.o conftest.s >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
fi
- # This one is used unconditionally by i386.[ch]; it is to be defined
+ # These two are used unconditionally by i386.[ch]; it is to be defined
# to 1 if the feature is present, 0 otherwise.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for GOTOFF in data" >&5
$as_echo_n "checking assembler for GOTOFF in data... " >&6; }
#define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`
_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for rep and lock prefix" >&5
+$as_echo_n "checking assembler for rep and lock prefix... " >&6; }
+if test "${gcc_cv_as_ix86_rep_lock_prefix+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ gcc_cv_as_ix86_rep_lock_prefix=no
+ if test x$gcc_cv_as != x; then
+ echo 'rep movsl
+ lock orl $0, (%esp)' > conftest.s
+ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -o conftest.o conftest.s >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ gcc_cv_as_ix86_rep_lock_prefix=yes
+ else
+ echo "configure: failed program was" >&5
+ cat conftest.s >&5
+ fi
+ rm -f conftest.o conftest.s
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ix86_rep_lock_prefix" >&5
+$as_echo "$gcc_cv_as_ix86_rep_lock_prefix" >&6; }
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_AS_IX86_REP_LOCK_PREFIX `if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`
+_ACEOF
+
+
;;
ia64*-*-*)
echo ' .end x' >> conftest.s
if $gcc_cv_as -o conftest.o conftest.s >/dev/null 2>&5 \
&& $gcc_cv_ld -shared -o conftest.so conftest.o >/dev/null 2>&5; then
- if $gcc_cv_objdump -d conftest.so | grep -q jalr \
- && $gcc_cv_objdump -d conftest.so | grep -q "bal.*<x>"; then
+ if $gcc_cv_objdump -d conftest.so | grep jalr >/dev/null 2>&1 \
+ && $gcc_cv_objdump -d conftest.so | grep "bal.*<x>" >/dev/null 2>&1; then
gcc_cv_as_ld_jalr_reloc=yes
fi
fi
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
| grep "gc-sections option ignored" > /dev/null; then
gcc_cv_ld_eh_gc_sections=no
- elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
+ elif $gcc_cv_objdump -h conftest 2> /dev/null \
+ | grep gcc_except_table > /dev/null; then
gcc_cv_ld_eh_gc_sections=yes
# If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
if test x$gcc_cv_as_comdat_group != xyes; then
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
| grep "gc-sections option ignored" > /dev/null; then
gcc_cv_ld_eh_gc_sections=no
- elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
+ elif $gcc_cv_objdump -h conftest 2> /dev/null \
+ | grep gcc_except_table > /dev/null; then
gcc_cv_ld_eh_gc_sections=yes
fi
fi
$as_echo "#define HAVE_LD_NO_DOT_SYMS 1" >>confdefs.h
fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker large toc support" >&5
+$as_echo_n "checking linker large toc support... " >&6; }
+if test "${gcc_cv_ld_large_toc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ gcc_cv_ld_large_toc=no
+ if 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
+ elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
+ cat > conftest.s <<EOF
+ .section ".tbss","awT",@nobits
+ .align 3
+ie0: .space 8
+ .global _start
+ .text
+_start:
+ addis 9,13,ie0@got@tprel@ha
+ ld 9,ie0@got@tprel@l(9)
+EOF
+ if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
+ && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
+ gcc_cv_ld_large_toc=yes
+ fi
+ rm -f conftest conftest.o conftest.s
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_large_toc" >&5
+$as_echo "$gcc_cv_ld_large_toc" >&6; }
+ if test x"$gcc_cv_ld_large_toc" = xyes; then
+
+$as_echo "#define HAVE_LD_LARGE_TOC 1" >>confdefs.h
+
+ fi
;;
esac
fi
fi
+# In binutils 2.21, GNU ld gained support for new emulations fully
+# supporting the Solaris 2 ABI. Detect their presence in the linker used.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker *_sol2 emulation support" >&5
+$as_echo_n "checking linker *_sol2 emulation support... " >&6; }
+if test "${gcc_cv_ld_sol2_emulation+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ gcc_cv_ld_sol2_emulation=no
+ if 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 \
+ && test $in_tree_ld_is_elf = yes; then
+ gcc_cv_ld_sol2_emulation=yes
+ fi
+ elif test x$gcc_cv_ld != x; then
+ if $gcc_cv_ld -V 2>/dev/null | sed -e '1,/Supported emulations/d;q' | \
+ grep _sol2 > /dev/null; then
+ gcc_cv_ld_sol2_emulation=yes
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_sol2_emulation" >&5
+$as_echo "$gcc_cv_ld_sol2_emulation" >&6; }
+if test x"$gcc_cv_ld_sol2_emulation" = xyes; then
+
+$as_echo "#define HAVE_LD_SOL2_EMULATION 1" >>confdefs.h
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --sysroot support" >&5
$as_echo_n "checking linker --sysroot support... " >&6; }
if test "${gcc_cv_ld_sysroot+set}" = set; then :
all_outputs='Makefile gccbug'
# List of language makefile fragments.
all_lang_makefrags=
-# List of language subdirectory makefiles. Deprecated.
-all_lang_makefiles=
# Additional files for gengtype
all_gtfiles="$target_gtfiles"
if test -f $srcdir/$gcc_subdir/$subdir-tree.def; then
lang_tree_files="$lang_tree_files $srcdir/$gcc_subdir/$subdir-tree.def"
fi
- if test -f ${srcdir}/$gcc_subdir/Makefile.in
- then all_lang_makefiles="$gcc_subdir/Makefile"
- fi
all_languages="$all_languages $language"
all_compilers="$all_compilers $compilers"
all_outputs="$all_outputs $outputs"
enable_lto=yes
+ # LTO needs to speak the platform's object file format, and has a
+ # number of implementations of the required binary file access APIs.
+ # ELF is the most common, and default. We only link libelf if ELF
+ # is indeed the selected format.
+ LTO_BINARY_READER=${lto_binary_reader}
+ LTO_USE_LIBELF=-lelf
+ if test "x$lto_binary_reader" != "xlto-elf" ; then
+ LTO_USE_LIBELF=
+ fi
+
+
;;
*) ;;
esac
-
# Echo link setup.
if test x${build} = x${host} ; then
if test x${host} = x${target} ; then
pluginlibs=
if test x"$enable_plugin" = x"yes"; then
+ case "${host}" in
+ *-*-darwin*)
+ export_sym_check="$gcc_cv_nm -g"
+ ;;
+ *)
+ export_sym_check="$gcc_cv_objdump -T"
+ ;;
+ esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exported symbols" >&5
$as_echo_n "checking for exported symbols... " >&6; }
echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
- if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
+ if $export_sym_check conftest | grep foobar > /dev/null; then
: # No need to use a flag
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
$as_echo_n "checking for -rdynamic... " >&6; }
${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
- if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
+ if $export_sym_check conftest | grep foobar > /dev/null; then
plugin_rdynamic=yes
pluginlibs="-rdynamic"
else
# Check that we can build shared objects with -fPIC -shared
saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -fPIC -shared"
+ case "${host}" in
+ *-*-darwin*)
+ LDFLAGS="$LDFLAGS -fPIC -shared -undefined dynamic_lookup"
+ ;;
+ *)
+ LDFLAGS="$LDFLAGS -fPIC -shared"
+ ;;
+ esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
$as_echo_n "checking for -fPIC -shared... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
echo > cstamp-h ;;
esac
# Make sure all the subdirs exist.
-for d in $subdirs doc build
+for d in $subdirs doc build c-family
do
test -d $d || mkdir $d
done