diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-02-10 14:07:44 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-02-10 14:07:44 +0000 |
commit | e6c5817dca87ebafda02ea2cb7abaf7e00db74a5 (patch) | |
tree | feda6ef2eb4bb1b1f94d43d9714629032ff78cf1 /libgo | |
parent | 0f3b7e9a446183d8b27c7907d97f542be53eda90 (diff) | |
download | gcc-e6c5817dca87ebafda02ea2cb7abaf7e00db74a5.zip gcc-e6c5817dca87ebafda02ea2cb7abaf7e00db74a5.tar.gz gcc-e6c5817dca87ebafda02ea2cb7abaf7e00db74a5.tar.bz2 |
libgo/configure: Fixes for Solaris 8 and cross-compilation.
From Rainer Orth.
From-SVN: r184092
Diffstat (limited to 'libgo')
-rw-r--r-- | libgo/config.h.in | 3 | ||||
-rwxr-xr-x | libgo/configure | 48 | ||||
-rw-r--r-- | libgo/configure.ac | 15 |
3 files changed, 58 insertions, 8 deletions
diff --git a/libgo/config.h.in b/libgo/config.h.in index 44ae428..afbb9ee 100644 --- a/libgo/config.h.in +++ b/libgo/config.h.in @@ -198,6 +198,9 @@ /* Define if setcontext clobbers TLS variables */ #undef SETCONTEXT_CLOBBERS_TLS +/* The size of `void *', as computed by sizeof. */ +#undef SIZEOF_VOID_P + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS diff --git a/libgo/configure b/libgo/configure index a93b051..6bb35a6 100755 --- a/libgo/configure +++ b/libgo/configure @@ -14818,12 +14818,51 @@ $as_echo_n "checking whether setcontext clobbers TLS variables... " >&6; } if test "${libgo_cv_lib_setcontext_clobbers_tls+set}" = set; then : $as_echo_n "(cached) " >&6 else - LIBS_hold="$LIBS" + CFLAGS_hold="$CFLAGS" +CFLAGS="$PTHREAD_CFLAGS" +LIBS_hold="$LIBS" LIBS="$LIBS $PTHREAD_LIBS" +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +$as_echo_n "checking size of void *... " >&6; } +if test "${ac_cv_sizeof_void_p+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_void_p" = 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_set_status 77 +as_fn_error "cannot compute sizeof (void *) +See \`config.log' for more details." "$LINENO" 5; }; } + else + ac_cv_sizeof_void_p=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 +$as_echo "$ac_cv_sizeof_void_p" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOID_P $ac_cv_sizeof_void_p +_ACEOF + + +as_fn_arith $ac_cv_sizeof_void_p \* 8 && ptr_type_size=$as_val if test "$cross_compiling" = yes; then : - case "$target" in - x86_64*-*-solaris2.10) libgo_cv_lib_setcontext_clobbers_tls=yes ;; - *) libgo_cv_lib_setcontext_clobbers_tls=no ;; + case "$target:$ptr_type_size" in + i?86-*-solaris2.1[01]:64 | x86_64*-*-solaris2.1[01]:64) + libgo_cv_lib_setcontext_clobbers_tls=yes ;; + *) + libgo_cv_lib_setcontext_clobbers_tls=no ;; esac else @@ -14900,6 +14939,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi +CFLAGS="$CFLAGS_hold" LIBS="$LIBS_hold" fi diff --git a/libgo/configure.ac b/libgo/configure.ac index 6778903..9c8478d 100644 --- a/libgo/configure.ac +++ b/libgo/configure.ac @@ -584,8 +584,12 @@ fi dnl See whether setcontext changes the value of TLS variables. AC_CACHE_CHECK([whether setcontext clobbers TLS variables], [libgo_cv_lib_setcontext_clobbers_tls], -[LIBS_hold="$LIBS" +[CFLAGS_hold="$CFLAGS" +CFLAGS="$PTHREAD_CFLAGS" +LIBS_hold="$LIBS" LIBS="$LIBS $PTHREAD_LIBS" +AC_CHECK_SIZEOF([void *]) +AS_VAR_ARITH([ptr_type_size], [$ac_cv_sizeof_void_p \* 8]) AC_RUN_IFELSE( [AC_LANG_SOURCE([ #include <pthread.h> @@ -650,11 +654,14 @@ main () ])], [libgo_cv_lib_setcontext_clobbers_tls=no], [libgo_cv_lib_setcontext_clobbers_tls=yes], -[case "$target" in - x86_64*-*-solaris2.10) libgo_cv_lib_setcontext_clobbers_tls=yes ;; - *) libgo_cv_lib_setcontext_clobbers_tls=no ;; +[case "$target:$ptr_type_size" in + i?86-*-solaris2.1[[01]]:64 | x86_64*-*-solaris2.1[[01]]:64) + libgo_cv_lib_setcontext_clobbers_tls=yes ;; + *) + libgo_cv_lib_setcontext_clobbers_tls=no ;; esac ]) +CFLAGS="$CFLAGS_hold" LIBS="$LIBS_hold" ]) if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then |