diff options
Diffstat (limited to 'libgcc/configure')
-rw-r--r-- | libgcc/configure | 347 |
1 files changed, 262 insertions, 85 deletions
diff --git a/libgcc/configure b/libgcc/configure index 80bb61c80af..e1c58f57937 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -593,6 +593,8 @@ LIBOBJS asm_hidden_op extra_parts cpu_type +tm_defines +tm_file tmake_file sfp_machine_header set_use_emutls @@ -627,6 +629,13 @@ build_subdir build_libsubdir target_noncanonical host_noncanonical +AWK +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +MAINT +slibdir +PICFLAG host_os host_vendor host_cpu @@ -635,12 +644,6 @@ build_os build_vendor build_cpu build -AWK -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -MAINT -slibdir enable_shared libgcc_topdir target_alias @@ -694,6 +697,7 @@ enable_maintainer_mode with_build_libsubdir enable_decimal_float with_system_libunwind +enable_sjlj_exceptions enable_tls ' ac_precious_vars='build_alias @@ -1328,6 +1332,8 @@ Optional Features: enable decimal float extension to C. Selecting 'bid' or 'dpd' choses which decimal floating point format to use + --enable-sjlj-exceptions + force use of builtin_setjmp for exceptions --enable-tls Use thread-local storage [default=yes] Optional Packages: @@ -2194,6 +2200,158 @@ fi +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + + + + +case "${host}" in + # PIC is the default on some targets or must not be used. + *-*-darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + PICFLAG=-fno-common + ;; + alpha*-dec-osf5*) + # PIC is the default. + ;; + hppa*64*-*-hpux*) + # PIC is the default for 64-bit PA HP-UX. + ;; + i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*) + ;; + i[34567]86-*-interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + i[34567]86-*-nto-qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + PICFLAG='-fPIC -shared' + ;; + i[34567]86-pc-msdosdjgpp*) + # DJGPP does not support shared libraries at all. + ;; + ia64*-*-hpux*) + # On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + PICFLAG=-fPIC + ;; + mips-sgi-irix6*) + # PIC is the default. + ;; + rs6000-ibm-aix* | powerpc-ibm-aix*) + # All AIX code is PIC. + ;; + + # Some targets support both -fPIC and -fpic, but prefer the latter. + # FIXME: Why? + i[34567]86-*-* | x86_64-*-*) + PICFLAG=-fpic + ;; + m68k-*-*) + PICFLAG=-fpic + ;; + s390*-*-*) + PICFLAG=-fpic + ;; + # FIXME: Override -fPIC default in libgcc only? + sh-*-linux* | sh[2346lbe]*-*-linux*) + PICFLAG=-fpic + ;; + # FIXME: Simplify to sh*-*-netbsd*? + sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ + sh64-*-netbsd* | sh64l*-*-netbsd*) + PICFLAG=-fpic + ;; + # Default to -fPIC unless specified otherwise. + *) + PICFLAG=-fPIC + ;; +esac + +# If the user explicitly uses -fpic/-fPIC, keep that. +case "${CFLAGS}" in + *-fpic*) + PICFLAG=-fpic + ;; + *-fPIC*) + PICFLAG=-fPIC + ;; +esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-version-specific-runtime-libs" >&5 $as_echo_n "checking for --enable-version-specific-runtime-libs... " >&6; } # Check whether --enable-version-specific-runtime-libs was given. @@ -2382,76 +2540,6 @@ case ${AWK} in "") as_fn_error "can't build without awk, bailing out" "$LINENO" 5 ;; esac -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - case ${build_alias} in "") build_noncanonical=${build} ;; @@ -4408,6 +4496,72 @@ $as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h fi +# 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. +# Check whether --enable-sjlj-exceptions was given. +if test "${enable_sjlj_exceptions+set}" = set; then : + enableval=$enable_sjlj_exceptions; case "$enableval" in + yes|no|auto) ;; + *) as_fn_error "unknown argument to --enable-sjlj-exceptions" "$LINENO" 5 ;; + esac +else + enable_sjlj_exceptions=auto +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use setjmp/longjmp exceptions" >&5 +$as_echo_n "checking whether to use setjmp/longjmp exceptions... " >&6; } +if test "${libgcc_cv_lib_sjlj_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +void bar (); +void clean (int *); +void foo () +{ + int i __attribute__ ((cleanup (clean))); + bar(); +} + +_ACEOF +CFLAGS_hold=$CFLAGS +CFLAGS="--save-temps -fexceptions" +libgcc_cv_lib_sjlj_exceptions=unknown +if ac_fn_c_try_compile; then : + 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 +fi +CFLAGS=$CFLAGS_hold +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_lib_sjlj_exceptions" >&5 +$as_echo "$libgcc_cv_lib_sjlj_exceptions" >&6; } + +if test "$enable_sjlj_exceptions" = "auto"; then + enable_sjlj_exceptions=$libgcc_cv_lib_sjlj_exceptions +fi + +case $enable_sjlj_exceptions in +yes) + +$as_echo "#define LIBGCC_SJLJ_EXCEPTIONS 1" >>confdefs.h + + ;; +no) + ;; +*) + as_fn_error "unable to detect exception model" "$LINENO" 5 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then : @@ -4455,20 +4609,16 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_cfi" >&5 $as_echo "$libgcc_cv_cfi" >&6; } -# Check 32bit or 64bit for x86. -case ${host} in -i?86*-*-* | x86_64*-*-*) - cat > conftest.c <<EOF -#ifdef __x86_64__ +# Check 32bit or 64bit +cat > conftest.c <<EOF +#if defined(__x86_64__) || (!defined(__i386__) && defined(__LP64__)) host_address=64 #else host_address=32 #endif EOF - eval `${CC-cc} -E conftest.c | grep host_address=` - rm -f conftest.c - ;; -esac +eval `${CC-cc} -E conftest.c | grep host_address=` +rm -f conftest.c # Collect host-machine-specific information. . ${srcdir}/config.host @@ -4632,6 +4782,30 @@ done tmake_file="${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_}" + + + +# 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 @@ -4644,6 +4818,8 @@ ac_config_links="$ac_config_links md-unwind-support.h:config/$md_unwind_header" ac_config_links="$ac_config_links sfp-machine.h:config/$sfp_machine_header" +ac_config_links="$ac_config_links gthr-default.h:$thread_header" + # We need multilib support. ac_config_files="$ac_config_files Makefile" @@ -5373,6 +5549,7 @@ do "unwind.h") CONFIG_LINKS="$CONFIG_LINKS unwind.h:$unwind_header" ;; "md-unwind-support.h") CONFIG_LINKS="$CONFIG_LINKS md-unwind-support.h:config/$md_unwind_header" ;; "sfp-machine.h") CONFIG_LINKS="$CONFIG_LINKS sfp-machine.h:config/$sfp_machine_header" ;; + "gthr-default.h") CONFIG_LINKS="$CONFIG_LINKS gthr-default.h:$thread_header" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; |