Mercurial > hg > CbC > CbC_gcc
diff gcc/configure.ac @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 1b10fe6932e1 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/configure.ac Tue May 25 18:58:51 2010 +0900 +++ b/gcc/configure.ac Tue Mar 22 17:18:12 2011 +0900 @@ -2,7 +2,7 @@ # 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 Free Software Foundation, Inc. +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. #This file is part of GCC. @@ -304,6 +304,8 @@ AC_PROG_CPP AC_C_INLINE +AC_SYS_LARGEFILE + # sizeof(char) is 1 by definition. AC_CHECK_SIZEOF(void *) AC_CHECK_SIZEOF(short) @@ -587,6 +589,10 @@ ENABLE_BUILD_WITH_CXX=$enableval, ENABLE_BUILD_WITH_CXX=no) AC_SUBST(ENABLE_BUILD_WITH_CXX) +if test "$ENABLE_BUILD_WITH_CXX" = "yes"; then + AC_DEFINE(ENABLE_BUILD_WITH_CXX, 1, + [Define if building with C++.]) +fi # With stabs AC_ARG_WITH(stabs, @@ -606,53 +612,14 @@ [], []) # Enable C extension for decimal float if target supports it. -AC_ARG_ENABLE(decimal-float, -[ --enable-decimal-float={no,yes,bid,dpd} - enable decimal float extension to C. Selecting 'bid' - or 'dpd' choses which decimal floating point format - to use], -[ - case $enable_decimal_float in - yes | no | bid | dpd) ;; - *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float. -Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;; - esac -], -[ - case $target in - powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux*) - enable_decimal_float=yes - ;; - *) - AC_MSG_WARN(decimal float is not supported for this target, ignored) - enable_decimal_float=no - ;; - esac -]) +GCC_AC_ENABLE_DECIMAL_FLOAT([$target]) dfp=`if test $enable_decimal_float != no; then echo 1; else echo 0; fi` AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp, [Define to 1 to enable decimal float extension to C.]) -# x86's use BID format instead of DPD -case x$enable_decimal_float in - xyes) - case $target in - i?86*-*-linux* | x86_64*-*-linux*) - enable_decimal_float=bid - ;; - *) - enable_decimal_float=dpd - ;; - esac - ;; - xno) - # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper - # dependency on libdecnumber. - enable_decimal_float=dpd - ;; -esac -AC_SUBST(enable_decimal_float) +# Use default_decimal_float for dependency. +enable_decimal_float=$default_decimal_float bid=`if test $enable_decimal_float = bid; then echo 1; else echo 0; fi` AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_BID_FORMAT, $bid, @@ -669,7 +636,7 @@ mips*-*-*) case $host in mips*-sgi-irix*) - AC_MSG_WARN(fixed-point is not supported on IRIX, ignored) + AC_MSG_WARN([fixed-point is not supported on IRIX, ignored]) enable_fixed_point=no ;; *) @@ -678,7 +645,7 @@ esac ;; *) - AC_MSG_WARN(fixed-point is not supported for this target, ignored) + AC_MSG_WARN([fixed-point is not supported for this target, ignored]) enable_fixed_point=no ;; esac @@ -793,16 +760,6 @@ ) AC_SUBST(CONFIGURE_SPECS) -# Build with intermodule optimisations -AC_ARG_ENABLE(intermodule, -[ --enable-intermodule build the compiler in one step], -[case ${enable_intermodule} in - yes) onestep="-onestep";; - *) onestep="";; -esac], -[onestep=""]) -AC_SUBST(onestep) - ACX_PKGVERSION([GCC]) ACX_BUGURL([http://gcc.gnu.org/bugs.html]) @@ -913,7 +870,7 @@ # 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 AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm) fi @@ -921,7 +878,7 @@ # 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 AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar) fi @@ -952,6 +909,24 @@ gcc_AC_C_CHAR_BIT AC_C_BIGENDIAN +# ---------------------- +# Checks for C++ headers +# ---------------------- + +dnl Autoconf will give an error in the configure script if there is no +dnl C++ preprocessor. Hack to prevent that. +m4_pushdef([AC_MSG_ERROR], m4_defn([AC_MSG_WARN]))[]dnl +AC_PROG_CXXCPP +m4_popdef([AC_MSG_ERROR])[]dnl + +AC_LANG_PUSH(C++) + +AC_CHECK_HEADERS(unordered_map) +AC_CHECK_HEADERS(tr1/unordered_map) +AC_CHECK_HEADERS(ext/hash_map) + +AC_LANG_POP(C++) + # -------- # UNSORTED # -------- @@ -1021,25 +996,9 @@ putchar_unlocked putc_unlocked) AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoll atoq \ sysconf strsignal getrusage nl_langinfo \ - gettimeofday mbstowcs wcswidth mmap mincore setlocale \ + gettimeofday mbstowcs wcswidth mmap setlocale \ gcc_UNLOCKED_FUNCS) -save_CPPFLAGS="$CPPFLAGS" -save_LIBS="$LIBS" -LIBS="$LIBS $LIBELFLIBS" -AC_CHECK_FUNCS(elf_getshdrstrndx,, - [AC_CHECK_FUNCS(elf_getshstrndx, - [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h> -#include <libelf.h> -int main() -{ - return elf_getshstrndx (NULL, 0) == 0; -}]])], AC_DEFINE(HAVE_ELF_GETSHSTRNDX_GABI, 1, - [Define if elf_getshstrndx has gABI conformant return values.]))])] - ) -LIBS="$save_LIBS" -CPPFLAGS="$save_CPPFLAGS" - if test x$ac_cv_func_mbstowcs = xyes; then AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works, [ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h> @@ -1445,8 +1404,10 @@ # Convert extra_options into a form suitable for Makefile use. extra_opt_files= +all_opt_files= for f in $extra_options; do extra_opt_files="$extra_opt_files \$(srcdir)/config/$f" + all_opt_files="$all_opt_files $srcdir/config/$f" done AC_SUBST(extra_opt_files) @@ -1580,6 +1541,21 @@ [ --enable-cld enable -mcld by default for 32bit x86], [], [enable_cld=no]) +AC_ARG_ENABLE(frame-pointer, +[ --enable-frame-pointer enable -fno-omit-frame-pointer by default for 32bit x86], [], +[ +case $target_os in +linux* | darwin[[8912]]*) + # Enable -fomit-frame-pointer by default for Linux and Darwin with + # DWARF2. + enable_frame_pointer=no + ;; +*) + enable_frame_pointer=yes + ;; +esac +]) + # Windows32 Registry support for specifying GCC installation paths. AC_ARG_ENABLE(win32-registry, [ --disable-win32-registry @@ -1643,7 +1619,7 @@ 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 ./* ) @@ -1773,6 +1749,16 @@ | powerpc*-*-*,powerpc64*-*-*) CROSS="$CROSS -DNATIVE_CROSS" ;; esac + + case $target in + *-*-mingw*) + if test "x$with_headers" = x; then + with_headers=yes + fi + ;; + *) + ;; + esac elif test "x$TARGET_SYSTEM_ROOT" != x; then SYSTEM_HEADER_DIR=$build_system_header_dir fi @@ -1845,6 +1831,10 @@ ;; esac +AC_DEFINE_UNQUOTED(LTOPLUGINSONAME,"${host_lto_plugin_soname}", +[Define to the name of the LTO plugin DSO that must be + passed to the linker's -plugin=LIB option.]) + # --------------------------- # Assembler & linker features # --------------------------- @@ -1886,7 +1876,7 @@ elif test -x as$build_exeext; then # Build using assembler in the current directory. gcc_cv_as=./as$build_exeext -elif test -x $AS_FOR_TARGET; then +elif ( set dummy $AS_FOR_TARGET; test -x $[2] ); then gcc_cv_as="$AS_FOR_TARGET" else AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET) @@ -1941,7 +1931,7 @@ elif test -x collect-ld$build_exeext; then # Build using linker in the current directory. gcc_cv_ld=./collect-ld$build_exeext -elif test -x $LD_FOR_TARGET; then +elif ( set dummy $LD_FOR_TARGET; test -x $[2] ); then gcc_cv_ld="$LD_FOR_TARGET" else AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET) @@ -2014,7 +2004,7 @@ gcc_cv_nm=../binutils/nm-new$build_exeext elif test -x nm$build_exeext; then gcc_cv_nm=./nm$build_exeext -elif test -x $NM_FOR_TARGET; then +elif ( set dummy $NM_FOR_TARGET; test -x $[2] ); then gcc_cv_nm="$NM_FOR_TARGET" else AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET) @@ -2047,7 +2037,7 @@ gcc_cv_objdump=../binutils/objdump$build_exeext elif test -x objdump$build_exeext; then gcc_cv_objdump=./objdump$build_exeext -elif test -x $OBJDUMP_FOR_TARGET; then +elif ( set dummy $OBJDUMP_FOR_TARGET; test -x $[2] ); then gcc_cv_objdump="$OBJDUMP_FOR_TARGET" else AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET) @@ -2182,6 +2172,23 @@ ;; esac]) +# gnu_indirect_function type is an extension proposed at +# http://groups.google/com/group/generic-abi/files. It allows dynamic runtime +# selection of function implementation +AC_ARG_ENABLE(gnu-indirect-function, + [AS_HELP_STRING([--enable-gnu-indirect-function], + [enable the use of the @gnu_indirect_function to glibc systems])], + [case $enable_gnu_indirect_function in + yes | no) ;; + *) AC_MSG_ERROR(['$enable_gnu_indirect_function' is an invalid value for --enable-gnu-indirect-function. +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 + changequote(,)dnl if test $in_tree_ld != yes ; then ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q` @@ -2252,6 +2259,15 @@ hppa64*-*-hpux* | ia64*-*-hpux*) gcc_cv_ld_hidden=yes ;; + *-*-solaris2.8*) + # .hidden support was backported to Solaris 8, starting with ld + # version 1.276. + if test "$ld_vers_minor" -ge 276; then + gcc_cv_ld_hidden=yes + else + gcc_cv_ld_hidden=no + fi + ;; *-*-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. @@ -2390,7 +2406,7 @@ gcc_cv_as_cfi_directive=yes ;; esac]) -if test $gcc_cv_as_cfi_directive = yes && test x$gcc_cv_readelf != x; then +if test $gcc_cv_as_cfi_directive = yes && test x$gcc_cv_objdump != x; then gcc_GAS_CHECK_FEATURE([working cfi advance], gcc_cv_as_cfi_advance_working, ,, [ .text @@ -2400,20 +2416,22 @@ .cfi_adjust_cfa_offset 128 .cfi_endproc], [[ -if $gcc_cv_readelf -wf conftest.o 2>/dev/null \ +if $gcc_cv_objdump -Wf conftest.o 2>/dev/null \ | grep 'DW_CFA_advance_loc[24]:[ ][ ]*75040[ ]' >/dev/null; then gcc_cv_as_cfi_advance_working=yes fi ]]) else - # no readelf, err on the side of caution + # no objdump, err on the side of caution gcc_cv_as_cfi_advance_working=no fi +GCC_TARGET_TEMPLATE(HAVE_GAS_CFI_DIRECTIVE) AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_DIRECTIVE, [`if test $gcc_cv_as_cfi_directive = yes \ && test $gcc_cv_as_cfi_advance_working = yes; then echo 1; else echo 0; fi`], [Define 0/1 if your assembler supports CFI directives.]) +GCC_TARGET_TEMPLATE(HAVE_GAS_CFI_PERSONALITY_DIRECTIVE) gcc_GAS_CHECK_FEATURE([cfi personality directive], gcc_cv_as_cfi_personality_directive, ,, [ .text @@ -2430,7 +2448,24 @@ [ .text .cfi_sections .debug_frame, .eh_frame .cfi_startproc - .cfi_endproc]) + .cfi_endproc], +[case $target_os in + win32 | pe | cygwin* | mingw32* | uwin*) + # 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 "x$gcc_cv_objdump" != x; then + if $gcc_cv_objdump -j .debug_frame -r conftest.o 2>/dev/null | \ + grep secrel > /dev/null; then + gcc_cv_as_cfi_sections_directive=yes + fi + fi + ;; + *) + gcc_cv_as_cfi_sections_directive=yes + ;; +esac]) +GCC_TARGET_TEMPLATE(HAVE_GAS_CFI_SECTIONS_DIRECTIVE) AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_SECTIONS_DIRECTIVE, [`if test $gcc_cv_as_cfi_sections_directive = yes; then echo 1; else echo 0; fi`], @@ -2687,17 +2722,9 @@ ;; i[34567]86-*-*) case "$target" in - 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 - on_solaris=yes - else - enable_tls=no; - fi - ;; i[34567]86-*-solaris2.*) on_solaris=yes + tga_func=___tls_get_addr ;; *) on_solaris=no @@ -2913,17 +2940,9 @@ ;; sparc*-*-*) case "$target" in - 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 - on_solaris=yes - else - enable_tls=no; - fi - ;; sparc*-sun-solaris2.*) on_solaris=yes + tga_func=__tls_get_addr ;; *) on_solaris=no @@ -2931,7 +2950,17 @@ esac if test x$on_solaris = xyes && test x$gas_flag = xno; then conftest_s=' - .section ".tdata",#alloc,#write,#tls + .section ".tdata",#alloc,#write,#tls' + tls_first_major=0 + tls_first_minor=0 + else + conftest_s=' + .section ".tdata","awT",@progbits' + tls_first_major=2 + tls_first_minor=14 + tls_as_opt="-32 --fatal-warnings" + fi + conftest_s="$conftest_s foo: .long 25 .text sethi %tgd_hi22(foo), %o0 @@ -2951,36 +2980,7 @@ add %g7, %o2, %o4, %tie_add(foo) sethi %tle_hix22(foo), %l1 xor %l1, %tle_lox10(foo), %o5 - ld [%g7 + %o5], %o1' - tls_first_major=0 - tls_first_minor=0 - else - conftest_s=' - .section ".tdata","awT",@progbits -foo: .long 25 - .text - sethi %tgd_hi22(foo), %o0 - add %o0, %tgd_lo10(foo), %o1 - add %l7, %o1, %o0, %tgd_add(foo) - call __tls_get_addr, %tgd_call(foo) - sethi %tldm_hi22(foo), %l1 - add %l1, %tldm_lo10(foo), %l2 - add %l7, %l2, %o0, %tldm_add(foo) - call __tls_get_addr, %tldm_call(foo) - sethi %tldo_hix22(foo), %l3 - xor %l3, %tldo_lox10(foo), %l4 - add %o0, %l4, %l5, %tldo_add(foo) - sethi %tie_hi22(foo), %o3 - add %o3, %tie_lo10(foo), %o3 - ld [%l7 + %o3], %o2, %tie_ld(foo) - add %g7, %o2, %o4, %tie_add(foo) - sethi %tle_hix22(foo), %l1 - xor %l1, %tle_lox10(foo), %o5 - ld [%g7 + %o5], %o1' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt="-32 --fatal-warnings" - fi + ld [%g7 + %o5], %o1" ;; xtensa*-*-*) conftest_s=' @@ -3007,29 +3007,148 @@ [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],, [set_have_as_tls=yes]) fi +case "$target" in + *-*-irix6*) + # IRIX 6.5 rld and libc.so lack TLS support, so even if gas and gld + # with TLS support are in use, native TLS cannot work. + set_have_as_tls=no + ;; + *-*-osf*) + # Tru64 UNIX loader and libc.so lack TLS support, so even if gas and + # gld with TLS support are in use, native TLS cannot work. + set_have_as_tls=no + ;; + # TLS was introduced in the Solaris 9 FCS release and backported to + # Solaris 8 patches. Support for GNU-style TLS on x86 was only + # introduced in Solaris 9 4/04, replacing the earlier Sun style that Sun + # ld and GCC don't support any longer. + *-*-solaris2.*) + AC_MSG_CHECKING(linker and ld.so.1 TLS support) + ld_tls_support=no + # Check ld and ld.so.1 TLS support. + if echo "$ld_ver" | grep GNU > /dev/null; then + # Assume all interesting versions of GNU ld have TLS support. + # FIXME: still need ld.so.1 support, i.e. ld version checks below. + ld_tls_support=yes + else + case "$target" in + # Solaris 8/x86 ld has GNU style TLS support since version 1.280. + i?86-*-solaris2.8) + min_tls_ld_vers_minor=280 + ;; + # Solaris 8/SPARC ld has TLS support since version 1.272. + sparc*-*-solaris2.8) + min_tls_ld_vers_minor=272 + ;; + # Solaris 9/x86 ld has GNU style TLS support since version 1.374. + i?86-*-solaris2.9) + min_tls_ld_vers_minor=374 + ;; + # Solaris 9/SPARC and Solaris 10+ ld have TLS support since FCS. + sparc*-*-solaris2.9 | *-*-solaris2.1[[0-9]]*) + min_tls_ld_vers_minor=343 + ;; + esac + if test "$ld_vers_major" -gt 1 || \ + test "$ld_vers_minor" -ge "$min_tls_ld_vers_minor"; then + ld_tls_support=yes + else + set_have_as_tls=no + fi + fi + AC_MSG_RESULT($ld_tls_support) + + save_LIBS="$LIBS" + save_LDFLAGS="$LDFLAGS" + LIBS= + LDFLAGS= + + AC_MSG_CHECKING(alternate thread library) + case "$target" in + # TLS support was backported to Solaris 8 patches, but only lives in + # the alternate thread library which became the default in Solaris 9. + # We want to always use that, irrespective of TLS support. + *-*-solaris2.8) + # Take multilib subdir into account. There's no spec to handle + # this. The 64 symlink exists since Solaris 8. + lwp_dir=/usr/lib/lwp + lwp_spec="-L$lwp_dir%{m64:/64} -R$lwp_dir%{m64:/64}" + LDFLAGS="-L$lwp_dir -R$lwp_dir" + ;; + *-*-solaris2*) + lwp_dir="none" + lwp_spec="" + ;; + esac + # Always define LIB_THREAD_LDFLAGS_SPEC, even without TLS support. + AC_DEFINE_UNQUOTED(LIB_THREAD_LDFLAGS_SPEC, "$lwp_spec", + [Define to the linker flags to use for -pthread.]) + AC_MSG_RESULT($lwp_dir) + + AC_MSG_CHECKING(library containing $tga_func) + # Before Solaris 10, __tls_get_addr (SPARC/x64) resp. ___tls_get_addr + # (32-bit x86) only lived in libthread, so check for that. Keep + # set_have_as_tls if found, disable if not. + AC_SEARCH_LIBS([$tga_func], [thread],, [set_have_as_tls=no]) + # Clear LIBS if we cannot support TLS. + if test $set_have_as_tls = no; then + LIBS= + fi + # Always define LIB_TLS_SPEC, even without TLS support. + AC_DEFINE_UNQUOTED(LIB_TLS_SPEC, "$LIBS", + [Define to the library containing __tls_get_addr/___tls_get_addr.]) + AC_MSG_RESULT($LIBS) + + LIBS="$save_LIBS" + LDFLAGS="$save_LDFLAGS" + ;; +esac if test $set_have_as_tls = yes ; then AC_DEFINE(HAVE_AS_TLS, 1, - [Define if your assembler supports thread-local storage.]) + [Define if your assembler and linker support thread-local storage.]) fi # Target-specific assembler checks. AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option) gcc_cv_ld_static_dynamic=no +gcc_cv_ld_static_option='-Bstatic' +gcc_cv_ld_dynamic_option='-Bdynamic' 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; then gcc_cv_ld_static_dynamic=yes fi elif test x$gcc_cv_ld != x; then - # Check if linker supports -Bstatic/-Bdynamic option - 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_static_dynamic=yes - fi + # Check if linker supports -Bstatic/-Bdynamic option + 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_static_dynamic=yes + else + case "$target" in + # Tru64 UNIX support -noso/-so_archive instead of -Bstatic/-Bdynamic. + alpha*-dec-osf*) + gcc_cv_ld_static_dynamic=yes + gcc_cv_ld_static_option="-noso" + gcc_cv_ld_dynamic_option="-so_archive" + ;; + # IRIX 6 ld supports -Bstatic/-Bdynamic. + mips-sgi-irix6*) + gcc_cv_ld_static_dynamic=yes + ;; + # Solaris 2 ld always supports -Bstatic/-Bdynamic. + *-*-solaris2*) + gcc_cv_ld_static_dynamic=yes + ;; + esac + fi fi if test x"$gcc_cv_ld_static_dynamic" = xyes; then AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1, -[Define if your linker supports -Bstatic/-Bdynamic option.]) +[Define if your linker supports -Bstatic/-Bdynamic or equivalent options.]) + AC_DEFINE_UNQUOTED(LD_STATIC_OPTION, "$gcc_cv_ld_static_option", +[Define to the linker option to disable use of shared objects.]) + AC_DEFINE_UNQUOTED(LD_DYNAMIC_OPTION, "$gcc_cv_ld_dynamic_option", +[Define to the linker option to enable use of shared objects.]) fi AC_MSG_RESULT($gcc_cv_ld_static_dynamic) @@ -3053,6 +3172,26 @@ AC_MSG_RESULT($gcc_cv_ld_demangle) fi +AC_MSG_CHECKING(linker plugin support) +gcc_cv_lto_plugin=no +if test -f liblto_plugin.la; then + if test $in_tree_ld = yes -a x"$ORIGINAL_PLUGIN_LD_FOR_TARGET=" = x"$gcc_cv_ld"; then + if test x"$ld_is_gold" = xyes; then + gcc_cv_lto_plugin=yes + elif 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_lto_plugin=yes + fi + # Check if the linker supports --plugin-opt option + elif $ORIGINAL_PLUGIN_LD_FOR_TARGET --help 2>/dev/null | grep plugin-opt > /dev/null; then + gcc_cv_lto_plugin=yes + fi +fi +if test x"$gcc_cv_lto_plugin" = xyes; then + AC_DEFINE(HAVE_LTO_PLUGIN, 1, +[Define if your linker supports plugin.]) +fi +AC_MSG_RESULT($gcc_cv_lto_plugin) + case "$target" in # All TARGET_ABI_OSF targets. alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) @@ -3327,10 +3466,10 @@ gcc_GAS_CHECK_FEATURE([rep and lock prefix], gcc_cv_as_ix86_rep_lock_prefix,,, [rep movsl - lock orl $0, (%esp)]) - AC_DEFINE_UNQUOTED(HAVE_AS_IX86_REP_LOCK_PREFIX, - [`if test $gcc_cv_as_ix86_rep_lock_prefix = yes; then echo 1; else echo 0; fi`], - [Define true if the assembler supports 'rep <insn>, lock <insn>'.]) + lock addl %edi, (%eax,%esi) + lock orl $0, (%esp)],, + [AC_DEFINE(HAVE_AS_IX86_REP_LOCK_PREFIX, 1, + [Define if the assembler supports 'rep <insn>, lock <insn>'.])]) ;; @@ -3582,6 +3721,20 @@ [AC_DEFINE(HAVE_AS_DTPRELWORD, 1, [Define if your assembler supports .dtprelword.])]) + gcc_GAS_CHECK_FEATURE([DSPR1 mult with four accumulators support], + gcc_cv_as_mips_dspr1_mult,,, +[ .set mips32r2 + .set nodspr2 + .set dsp + madd $ac3,$4,$5 + maddu $ac3,$4,$5 + msub $ac3,$4,$5 + msubu $ac3,$4,$5 + mult $ac3,$4,$5 + multu $ac3,$4,$5],, + [AC_DEFINE(HAVE_AS_DSPR1_MULT, 1, + [Define if your assembler supports DSPR1 mult.])]) + AC_MSG_CHECKING(assembler and linker for explicit JALR relocation) gcc_cv_as_ld_jalr_reloc=no if test $gcc_cv_as_mips_explicit_relocs = yes; then @@ -3601,8 +3754,8 @@ echo ' .end x' >> conftest.s if $gcc_cv_as -o conftest.o conftest.s >/dev/null 2>&AS_MESSAGE_LOG_FD \ && $gcc_cv_ld -shared -o conftest.so conftest.o >/dev/null 2>&AS_MESSAGE_LOG_FD; 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 @@ -3688,17 +3841,15 @@ # add some instruction here to (also) show we expect this might work. # ??? Once 2.11 is released, probably need to add first known working # version to the per-target configury. -case "$target" in - i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \ - | x86_64*-*-* | hppa*-*-* | arm*-*-* \ - | xstormy16*-*-* | cris-*-* | crisv32-*-* | xtensa*-*-* | bfin-*-* | score*-*-* \ - | spu-*-* | fido*-*-* | m32c-*-*) +case "$cpu_type" in + alpha | arm | avr | bfin | cris | i386 | m32c | m68k | microblaze | mips \ + | pa | rs6000 | score | sparc | spu | xstormy16 | xtensa) insn="nop" ;; - ia64*-*-* | s390*-*-*) + ia64 | s390) insn="nop 0" ;; - mmix-*-*) + mmix) insn="swym 0" ;; esac @@ -3765,8 +3916,8 @@ [Define if your assembler supports .lcomm with an alignment field.])]) AC_ARG_ENABLE(gnu-unique-object, - [ --enable-gnu-unique-object enable the use of the @gnu_unique_object ELF extension on - glibc systems], + [AS_HELP_STRING([--enable-gnu-unique-object], + [enable the use of the @gnu_unique_object ELF extension on glibc systems])], [case $enable_gnu_unique_object in yes | no) ;; *) AC_MSG_ERROR(['$enable_gnu_unique_object' is an invalid value for --enable-gnu-unique-object. @@ -3777,6 +3928,7 @@ [.type foo, @gnu_unique_object],, # Also check for ld.so support, i.e. glibc 2.11 or higher. [[if test x$host = x$build -a x$host = x$target && + ldd --version 2>/dev/null && glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then glibcmajor=`expr "$glibcver" : "\([0-9]*\)"` glibcminor=`expr "$glibcver" : "[2-9]*\.\([0-9]*\)"` @@ -3822,15 +3974,26 @@ gcc_cv_ld_eh_frame_hdr=yes fi elif test x$gcc_cv_ld != x; then - # Check if linker supports --eh-frame-hdr option - if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then - gcc_cv_ld_eh_frame_hdr=yes - fi + if echo "$ld_ver" | grep GNU > /dev/null; then + # Check if linker supports --eh-frame-hdr option + if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then + gcc_cv_ld_eh_frame_hdr=yes + fi + else + case "$target" in + *-*-solaris2*) + # Sun ld has various bugs in .eh_frame_hdr support before version 1.2251. + if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 2251; then + gcc_cv_ld_eh_frame_hdr=yes + fi + ;; + esac + fi fi GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR]) if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then 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.]) fi AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr) @@ -3934,6 +4097,51 @@ fi AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections) +AC_MSG_CHECKING(linker EH garbage collection of sections bug) +gcc_cv_ld_eh_gc_sections_bug=no +if test $in_tree_ld = yes ; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -lt 19 -o "$gcc_cv_gld_major_version" -lt 2 \ + && test $in_tree_ld_is_elf = yes; then + gcc_cv_ld_eh_gc_sections_bug=yes + fi +elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x -a x$gcc_cv_as_comdat_group = xyes; then + gcc_cv_ld_eh_gc_sections_bug=yes + cat > conftest.s <<EOF + .section .text +.globl _start + .type _start, @function +_start: + .long foo + .size _start, .-_start + .section .text.startup.foo,"ax",@progbits + .type foo, @function +foo: + .long 0 + .size foo, .-foo + .section .gcc_except_table.foo,"a",@progbits +.L0: + .long 0 + .section .eh_frame,"a",@progbits + .long .L0 +EOF + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \ + | grep "gc-sections option ignored" > /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_bug=no + fi + fi + rm -f conftest.s conftest.o conftest +fi +if test x$gcc_cv_ld_eh_gc_sections_bug = xyes; then + AC_DEFINE(HAVE_LD_EH_GC_SECTIONS_BUG, 1, + [Define if your linker has buggy garbage collection of + sections support when .text.startup.foo like sections are used.]) +fi +AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections_bug) + # -------- # UNSORTED # -------- @@ -3996,6 +4204,36 @@ AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1, [Define if your PowerPC64 linker only needs function descriptor syms.]) 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 "$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 + ]) + if test x"$gcc_cv_ld_large_toc" = xyes; then + AC_DEFINE(HAVE_LD_LARGE_TOC, 1, + [Define if your PowerPC64 linker supports a large TOC.]) + fi ;; esac @@ -4034,6 +4272,29 @@ 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. +AC_CACHE_CHECK(linker *_sol2 emulation support, + gcc_cv_ld_sol2_emulation, + [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]) +if test x"$gcc_cv_ld_sol2_emulation" = xyes; then + AC_DEFINE(HAVE_LD_SOL2_EMULATION, 1, + [Define if your linker supports the *_sol2 emulations.]) +fi + AC_CACHE_CHECK(linker --sysroot support, gcc_cv_ld_sysroot, [gcc_cv_ld_sysroot=no @@ -4058,45 +4319,46 @@ [Define to PREFIX/include if cpp should also search that directory.]) fi +if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then + if test "x$with_headers" != x; then + target_header_dir=$with_headers + elif test "x$with_sysroot" = x; then + target_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" + elif test "x$with_build_sysroot" != "x"; then + target_header_dir="${with_build_sysroot}/usr/include" + elif test "x$with_sysroot" = xyes; then + target_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" + else + target_header_dir="${with_sysroot}/usr/include" + fi +else + target_header_dir=/usr/include +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, [gcc_cv_libc_provides_ssp=no case "$target" in *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) - if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then - if test "x$with_headers" != x; then - glibc_header_dir=$with_headers - elif test "x$with_sysroot" = x; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" - elif test "x$with_build_sysroot" != "x"; then - glibc_header_dir="${with_build_sysroot}/usr/include" - elif test "x$with_sysroot" = xyes; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" - else - glibc_header_dir="${with_sysroot}/usr/include" - fi - else - glibc_header_dir=/usr/include - fi [# glibc 2.4 and later provides __stack_chk_fail and # either __stack_chk_guard, or TLS access to stack guard canary. - if test -f $glibc_header_dir/features.h \ + if test -f $target_header_dir/features.h \ && $EGREP '^[ ]*#[ ]*define[ ]+__GNU_LIBRARY__[ ]+([1-9][0-9]|[6-9])' \ - $glibc_header_dir/features.h > /dev/null; then + $target_header_dir/features.h > /dev/null; then if $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+([1-9][0-9]|[3-9])' \ - $glibc_header_dir/features.h > /dev/null; then + $target_header_dir/features.h > /dev/null; then gcc_cv_libc_provides_ssp=yes elif $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+2' \ - $glibc_header_dir/features.h > /dev/null \ + $target_header_dir/features.h > /dev/null \ && $EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([1-9][0-9]|[4-9])' \ - $glibc_header_dir/features.h > /dev/null; then + $target_header_dir/features.h > /dev/null; then gcc_cv_libc_provides_ssp=yes elif $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]+1' \ - $glibc_header_dir/features.h > /dev/null && \ - test -f $glibc_header_dir/bits/uClibc_config.h && \ + $target_header_dir/features.h > /dev/null && \ + test -f $target_header_dir/bits/uClibc_config.h && \ $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC_HAS_SSP__[ ]+1' \ - $glibc_header_dir/bits/uClibc_config.h > /dev/null; then + $target_header_dir/bits/uClibc_config.h > /dev/null; then gcc_cv_libc_provides_ssp=yes fi fi] @@ -4132,21 +4394,8 @@ [ --with-long-double-128 Use 128-bit long double by default.], gcc_cv_target_ldbl128="$with_long_double_128", [[gcc_cv_target_ldbl128=no - if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then - if test "x$with_sysroot" = x; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" - elif test "x$with_build_sysroot" != "x"; then - glibc_header_dir="${with_build_sysroot}/usr/include" - elif test "x$with_sysroot" = xyes; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" - else - glibc_header_dir="${with_sysroot}/usr/include" - fi - else - glibc_header_dir=/usr/include - fi grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ - $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \ + $target_header_dir/bits/wordsize.h > /dev/null 2>&1 \ && gcc_cv_target_ldbl128=yes ]]) ;; @@ -4156,6 +4405,27 @@ [Define if TFmode long double should be the default]) fi +AC_MSG_CHECKING(dl_iterate_phdr in target C library) +gcc_cv_target_dl_iterate_phdr=unknown +case "$target" in + *-*-solaris2*) + # <link.h> needs both a dl_iterate_phdr declaration and support for + # compilation with largefile support. + if grep dl_iterate_phdr $target_header_dir/link.h > /dev/null 2>&1 \ + && grep 'large file capable' $target_header_dir/link.h > /dev/null 2>&1; then + gcc_cv_target_dl_iterate_phdr=yes + else + gcc_cv_target_dl_iterate_phdr=no + fi + ;; +esac +GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR]) +if test x$gcc_cv_target_dl_iterate_phdr = xyes; then + AC_DEFINE(TARGET_DL_ITERATE_PHDR, 1, +[Define if your target C library provides the `dl_iterate_phdr' function.]) +fi +AC_MSG_RESULT($gcc_cv_target_dl_iterate_phdr) + # Find out what GC implementation we want, or may, use. AC_ARG_WITH(gc, [ --with-gc={page,zone} choose the garbage collection mechanism to use @@ -4229,11 +4499,9 @@ # `language' must be a single word so is spelled singularly. all_languages= all_compilers= -all_outputs='Makefile gccbug' +all_outputs='Makefile' # 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" @@ -4323,13 +4591,11 @@ all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$gcc_subdir/Make-lang.in" if test -f $srcdir/$gcc_subdir/lang.opt; then lang_opt_files="$lang_opt_files $srcdir/$gcc_subdir/lang.opt" + all_opt_files="$all_opt_files $srcdir/$gcc_subdir/lang.opt" fi 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" @@ -4339,17 +4605,6 @@ AC_DEFINE(ENABLE_LTO, 1, [Define to enable LTO support.]) enable_lto=yes AC_SUBST(enable_lto) - # 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 - AC_SUBST(LTO_BINARY_READER) - AC_SUBST(LTO_USE_LIBELF) ;; *) ;; esac @@ -4387,6 +4642,14 @@ done # -------- +# Option include files +# -------- + +${AWK} -f $srcdir/opt-include.awk $all_opt_files > option-includes.mk +option_includes="option-includes.mk" +AC_SUBST_FILE(option_includes) + +# -------- # UNSORTED # -------- @@ -4435,7 +4698,6 @@ AC_SUBST(all_compilers) AC_SUBST(all_gtfiles) AC_SUBST(all_lang_makefrags) -AC_SUBST(all_lang_makefiles) AC_SUBST(all_languages) AC_SUBST(all_selected_languages) AC_SUBST(build_exeext) @@ -4452,6 +4714,8 @@ AC_SUBST(TM_MULTILIB_CONFIG) AC_SUBST(TM_MULTILIB_EXCEPTIONS_CONFIG) AC_SUBST(extra_gcc_objs) +AC_SUBST(user_headers_inc_next_pre) +AC_SUBST(user_headers_inc_next_post) AC_SUBST(extra_headers_list) AC_SUBST(extra_objs) AC_SUBST(extra_parts) @@ -4521,12 +4785,6 @@ AC_DEFINE(HAVE_cloog, 1, [Define if cloog is in use.]) fi -AC_ARG_VAR(LIBELFLIBS,[How to link libelf]) -AC_ARG_VAR(LIBELFINC,[How to find libelf include files]) -if test "x${LIBELFLIBS}" != "x" ; then - AC_DEFINE(HAVE_libelf, 1, [Define if libelf is in use.]) -fi - # Check for plugin support AC_ARG_ENABLE(plugin, [ --enable-plugin enable plugin support], @@ -4534,32 +4792,52 @@ enable_plugin=yes; default_plugin=yes) pluginlibs= -if test x"$enable_plugin" = x"yes"; then - - case "${host}" in - *-*-darwin*) + +case "${host}" in + *-*-darwin*) + if test x$build = x$host; then + export_sym_check="nm${exeext} -g" + elif test x$host = x$target; then export_sym_check="$gcc_cv_nm -g" - ;; - *) + else + export_sym_check= + fi + ;; + *) + if test x$build = x$host; then + export_sym_check="objdump${exeext} -T" + elif test x$host = x$target; then export_sym_check="$gcc_cv_objdump -T" - ;; - esac + else + export_sym_check= + fi + ;; +esac + +if test x"$enable_plugin" = x"yes"; then + AC_MSG_CHECKING([for exported symbols]) - echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c - ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1 - if $export_sym_check conftest | grep foobar > /dev/null; then - : # No need to use a flag - else - AC_MSG_CHECKING([for -rdynamic]) - ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1 + if test "x$export_sym_check" != x; then + echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c + ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1 if $export_sym_check conftest | grep foobar > /dev/null; then - plugin_rdynamic=yes - pluginlibs="-rdynamic" + : # No need to use a flag + AC_MSG_RESULT([yes]) else - plugin_rdynamic=no - enable_plugin=no + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([for -rdynamic]) + ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1 + if $export_sym_check conftest | grep foobar > /dev/null; then + plugin_rdynamic=yes + pluginlibs="-rdynamic" + else + plugin_rdynamic=no + enable_plugin=no + fi + AC_MSG_RESULT([$plugin_rdynamic]) fi - AC_MSG_RESULT([$plugin_rdynamic]) + else + AC_MSG_RESULT([unable to check]) fi # Check -ldl @@ -4572,11 +4850,15 @@ # Check that we can build shared objects with -fPIC -shared saved_LDFLAGS="$LDFLAGS" + saved_CFLAGS="$CFLAGS" case "${host}" in *-*-darwin*) - LDFLAGS="$LDFLAGS -fPIC -shared -undefined dynamic_lookup" + CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g` + CFLAGS="$CFLAGS -fPIC" + LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup" ;; *) + CFLAGS="$CFLAGS -fPIC" LDFLAGS="$LDFLAGS -fPIC -shared" ;; esac @@ -4590,6 +4872,7 @@ enable_plugin=no fi LDFLAGS="$saved_LDFLAGS" + CFLAGS="$saved_CFLAGS" # If plugin support had been requested but not available, fail. if test x"$enable_plugin" = x"no" ; then @@ -4607,6 +4890,18 @@ AC_DEFINE(ENABLE_PLUGIN, 1, [Define to enable plugin support.]) fi + +AC_ARG_ENABLE(libquadmath-support, +[AS_HELP_STRING([--disable-libquadmath-support], + [disable libquadmath support for Fortran])], +ENABLE_LIBQUADMATH_SUPPORT=$enableval, +ENABLE_LIBQUADMATH_SUPPORT=yes) +if test "${ENABLE_LIBQUADMATH_SUPPORT}" != "no" ; then + AC_DEFINE(ENABLE_LIBQUADMATH_SUPPORT, 1, + [Define to 1 to enable libquadmath support]) +fi + + # Configure the subdirectories # AC_CONFIG_SUBDIRS($subdirs) @@ -4621,10 +4916,11 @@ 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 ], [subdirs='$subdirs']) AC_OUTPUT +