From 33b8ea2a147a3bf8f4617b0399cbb2b2dbbb6f9e Mon Sep 17 00:00:00 2001 From: tromey Date: Mon, 21 Aug 2006 22:07:30 +0000 Subject: 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 --- boehm-gc/misc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'boehm-gc/misc.c') diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c index 89f05ba1dc9..23e226df52a 100644 --- a/boehm-gc/misc.c +++ b/boehm-gc/misc.c @@ -674,7 +674,13 @@ void GC_init_inner() # if !defined(THREADS) || defined(GC_PTHREADS) || defined(GC_WIN32_THREADS) \ || defined(GC_SOLARIS_THREADS) if (GC_stackbottom == 0) { - GC_stackbottom = GC_get_stack_base(); + # ifdef GC_PTHREADS + /* Use thread_stack_base if available, as GC could be initialized from + a thread that is not the "main" thread. */ + GC_stackbottom = GC_get_thread_stack_base(); + # endif + if (GC_stackbottom == 0) + GC_stackbottom = GC_get_stack_base(); # if (defined(LINUX) || defined(HPUX)) && defined(IA64) GC_register_stackbottom = GC_get_register_stack_base(); # endif -- cgit v1.2.1