diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-21 22:07:30 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-21 22:07:30 +0000 |
commit | 33b8ea2a147a3bf8f4617b0399cbb2b2dbbb6f9e (patch) | |
tree | 4c9de9e1ba2a27a47f6d8da1bbd87446fe43e48f /boehm-gc/configure | |
parent | e405ec65e3d665ec66e9356351e7da3e02dd8232 (diff) | |
download | gcc-33b8ea2a147a3bf8f4617b0399cbb2b2dbbb6f9e.tar.gz |
boehm-gc
PR libgcj/13212:
* configure.ac: Check for pthread_getattr_np(). Remove
GC_PTHREAD_SYM_VERSION detection.
* include/gc.h (GC_register_my_thread, GC_unregister_my_thread,
GC_get_thread_stack_base): New declarations.
* pthread_support.c (GC_register_my_thread, GC_unregister_my_thread,
GC_get_thread_stack_base): New functions.
(GC_delete_thread): Don't try to free the first_thread.
* misc.c (GC_init_inner): Use GC_get_thread_stack_base() if possible.
(pthread_create_, constr): Removed.
(pthread_create): Don't rename.
* include/gc_ext_config.h.in: Rebuilt.
* include/gc_pthread_redirects.h (pthread_create): Define
unconditionally.
* include/gc_config.h.in: Rebuilt.
* configure: Rebuilt.
libjava
* java/lang/natThread.cc (_Jv_AttachCurrentThread): Attach thread
to GC.
(_Jv_DetachCurrentThread): Detach thread from GC.
* include/boehm-gc.h (_Jv_GCAttachThread, _Jv_GCDetachThread):
Declare.
* boehm.cc (_Jv_GCAttachThread): New function.
(_Jv_GCDetachThread): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116313 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/configure')
-rwxr-xr-x | boehm-gc/configure | 136 |
1 files changed, 113 insertions, 23 deletions
diff --git a/boehm-gc/configure b/boehm-gc/configure index 2b9d6f5f6e6..3f2f5d835f5 100755 --- a/boehm-gc/configure +++ b/boehm-gc/configure @@ -6445,6 +6445,119 @@ echo "${ECHO_T}yes" >&6 ;; esac +# Checks for pthreads functions +# +oldLIBS="$LIBS" +LIBS="$LIBS $THREADLIBS" + +for ac_func in pthread_getattr_np +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +LIBS="$oldLIBS" + # Configuration of machine-dependent code # # We don't set NO_EXECUTE_PERMISSION by default because gcj (and @@ -7313,29 +7426,6 @@ _ACEOF fi -symver= -case "$target" in - *-*-linux* ) - cat > conftest.c <<EOF -#include <pthread.h> -void *tf (void *arg) { (void) arg; return NULL; } -int main (void) { pthread_t th; pthread_create (&th, NULL, tf, NULL); return 0; } -EOF - if $CC $CFLAGS -pthread -o conftest conftest.c > /dev/null 2>&1; then - symver=`readelf -s conftest 2> /dev/null | sed -n '/UND pthread_create@/{s/^.*@//;s/ .*$//;p;q}'` - fi - rm -f conftest conftest.c - ;; -esac -if test -n "$symver"; then - -cat >>confdefs.h <<_ACEOF -#define GC_PTHREAD_SYM_VERSION "$symver" -_ACEOF - -fi - - if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_noncanonical)' |