X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libgcc%2Fconfigure.ac;h=f547bffec00ed778c07055d3aa7de04246bc919d;hb=e06b725c970e48c054ebce24b8371e6e00816d4c;hp=a81e20943bf242e3457201eb720446ae7faaf81a;hpb=63abf89e1f2516f9433e77d1e788ea3e0a52d115;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libgcc/configure.ac b/libgcc/configure.ac index a81e20943bf..f547bffec00 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -6,12 +6,19 @@ sinclude(../config/acx.m4) sinclude(../config/no-executables.m4) sinclude(../config/lib-ld.m4) sinclude(../config/override.m4) +sinclude(../config/picflag.m4) sinclude(../config/dfp.m4) +sinclude(../config/unwind_ipinfo.m4) AC_PREREQ(2.64) AC_INIT([GNU C Runtime Library], 1.0,,[libgcc]) AC_CONFIG_SRCDIR([static-object.mk]) +# The libgcc should not depend on any header files +AC_DEFUN([_AC_INCLUDES_DEFAULT_REQUIREMENTS], + [m4_divert_text([DEFAULTS], + [ac_includes_default='/* none */'])]) + AC_ARG_WITH(target-subdir, [ --with-target-subdir=SUBDIR Configuring in a subdirectory for target]) AC_ARG_WITH(cross-host, @@ -57,6 +64,9 @@ AC_ARG_ENABLE(shared, ], [enable_shared=yes]) AC_SUBST(enable_shared) +GCC_PICFLAG +AC_SUBST(PICFLAG) + AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) AC_ARG_ENABLE(version-specific-runtime-libs, [ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ], @@ -151,6 +161,13 @@ GCC_NO_EXECUTABLES AC_PROG_CC AC_PROG_CPP_WERROR +AC_CHECK_SIZEOF([double]) +AC_CHECK_SIZEOF([long double]) +AS_VAR_ARITH([double_type_size], [$ac_cv_sizeof_double \* 8]) +AS_VAR_ARITH([long_double_type_size], [$ac_cv_sizeof_long_double \* 8]) +AC_SUBST(double_type_size) +AC_SUBST(long_double_type_size) + # Check for decimal float support. AC_CACHE_CHECK([whether decimal floating point is supported], [libgcc_cv_dfp], [AC_COMPILE_IFELSE([_Decimal32 x;], [libgcc_cv_dfp=yes], @@ -167,8 +184,71 @@ AC_CACHE_CHECK([whether fixed-point is supported], [libgcc_cv_fixed_point], fixed_point=$libgcc_cv_fixed_point AC_SUBST(fixed_point) +# For platforms with the unwind ABI which includes an unwind library, +# libunwind, we can choose to use the system libunwind. +# config.gcc also contains tests of with_system_libunwind. +GCC_CHECK_UNWIND_GETIPINFO + +# The sjlj test is almost duplicated here and in libgo/configure.ac (for C), +# libstdc++-v3/acinclude.m4 and libjava/configure.ac (for C++), and +# libobjc/configure.ac (for Objective-C). +# FIXME: This should be centralized in config/sjlj.m4. +AC_ARG_ENABLE(sjlj-exceptions, + AC_HELP_STRING([--enable-sjlj-exceptions], + [force use of builtin_setjmp for exceptions]), + [case "$enableval" in + yes|no|auto) ;; + *) AC_MSG_ERROR([unknown argument to --enable-sjlj-exceptions]) ;; + esac], + [enable_sjlj_exceptions=auto]) + +AC_CACHE_CHECK([whether to use setjmp/longjmp exceptions], +[libgcc_cv_lib_sjlj_exceptions], +[AC_LANG_CONFTEST( + [AC_LANG_SOURCE([ +void bar (); +void clean (int *); +void foo () +{ + int i __attribute__ ((cleanup (clean))); + bar(); +} +])]) +CFLAGS_hold=$CFLAGS +CFLAGS="--save-temps -fexceptions" +libgcc_cv_lib_sjlj_exceptions=unknown +AS_IF([ac_fn_c_try_compile], + [if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then + libgcc_cv_lib_sjlj_exceptions=yes + elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then + libgcc_cv_lib_sjlj_exceptions=no + fi]) +CFLAGS=$CFLAGS_hold +rm -f conftest* +]) + +if test "$enable_sjlj_exceptions" = "auto"; then + enable_sjlj_exceptions=$libgcc_cv_lib_sjlj_exceptions +fi + +case $enable_sjlj_exceptions in +yes) + AC_DEFINE(LIBGCC_SJLJ_EXCEPTIONS, 1, + [Define if the C compiler is configured for setjmp/longjmp exceptions.]) + ;; +no) + ;; +*) + AC_MSG_ERROR([unable to detect exception model]) + ;; +esac + AC_LIB_PROG_LD_GNU +AC_MSG_CHECKING([for thread model used by GCC]) +target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` +AC_MSG_RESULT([$target_thread_file]) + # Check for assembler CFI support. AC_CACHE_CHECK([whether assembler supports CFI directives], [libgcc_cv_cfi], [AC_COMPILE_IFELSE( @@ -180,20 +260,16 @@ AC_CACHE_CHECK([whether assembler supports CFI directives], [libgcc_cv_cfi], [libgcc_cv_cfi=yes], [libgcc_cv_cfi=no])]) -# Check 32bit or 64bit for x86. -case ${host} in -i?86*-*-* | x86_64*-*-*) - cat > conftest.c < conftest.c < conftest.s <&AS_MESSAGE_LOG_FD); then - # configure expects config files in libgcc/config, so need a relative - # path here. - tmake_file="${tmake_file} ../../gcc/config/i386/t-crtstuff" + tmake_file="${tmake_file} i386/t-crtstuff" fi ;; esac @@ -258,6 +332,17 @@ if test "$enable_tls $gcc_cv_use_emutls" = "yes yes"; then fi AC_SUBST(set_use_emutls) +# Conditionalize the sfp-machine.h header for this target machine. +if test -z "${sfp_machine_header}"; then + sfp_machine_header=$cpu_type/sfp-machine.h + if test -f ${srcdir}/config/${sfp_machine_header}; then + : + else + sfp_machine_header=no-sfp-machine.h + fi +fi +AC_SUBST(sfp_machine_header) + # Conditionalize the makefile for this target machine. tmake_file_= for f in ${tmake_file} @@ -270,10 +355,39 @@ done tmake_file="${tmake_file_}" AC_SUBST(tmake_file) +# Likewise export definitions for libgcc_tm.h +tm_file_= +for f in ${tm_file} +do + tm_file_="${tm_file_} \$(srcdir)/config/$f" +done +tm_file="${tm_file_}" +AC_SUBST(tm_file) +AC_SUBST(tm_defines) + +# Map from thread model to thread header. +case $target_thread_file in + aix) thread_header=config/rs6000/gthr-aix.h ;; + dce) thread_header=config/pa/gthr-dce.h ;; + lynx) thread_header=config/gthr-lynx.h ;; + mipssde) thread_header=config/mips/gthr-mipssde.h ;; + posix) thread_header=gthr-posix.h ;; + rtems) thread_header=config/gthr-rtems.h ;; + single) thread_header=gthr-single.h ;; + tpf) thread_header=config/s390/gthr-tpf.h ;; + vxworks) thread_header=config/gthr-vxworks.h ;; + win32) thread_header=config/i386/gthr-win32.h ;; +esac + # Substitute configuration variables AC_SUBST(cpu_type) AC_SUBST(extra_parts) AC_SUBST(asm_hidden_op) +AC_CONFIG_LINKS([enable-execute-stack.c:$enable_execute_stack]) +AC_CONFIG_LINKS([unwind.h:$unwind_header]) +AC_CONFIG_LINKS([md-unwind-support.h:config/$md_unwind_header]) +AC_CONFIG_LINKS([sfp-machine.h:config/$sfp_machine_header]) +AC_CONFIG_LINKS([gthr-default.h:$thread_header]) # We need multilib support. AC_CONFIG_FILES([Makefile])