diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68fffda8e97..6d8c2e8df30 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-05-27 Maxim Kuvyrkov + + * gthr-posix.h (pthread_cancel): Don't declare if compiling against + Bionic C library. + (__gthread_active_p): Check for pthread_create if compiling against + Bionic C library. + 2010-05-27 Maxim Kuvyrkov Support compilation for Android platform. Reimplement -mandroid. diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h index 61b4dda4271..a7ce3111802 100644 --- a/gcc/gthr-posix.h +++ b/gcc/gthr-posix.h @@ -124,7 +124,9 @@ __gthrw(pthread_join) __gthrw(pthread_equal) __gthrw(pthread_self) __gthrw(pthread_detach) +#ifndef __BIONIC__ __gthrw(pthread_cancel) +#endif __gthrw(sched_yield) __gthrw(pthread_mutex_lock) @@ -238,7 +240,15 @@ static inline int __gthread_active_p (void) { static void *const __gthread_active_ptr - = __extension__ (void *) &__gthrw_(pthread_cancel); + = __extension__ (void *) &__gthrw_( +/* Android's C library does not provide pthread_cancel, check for + `pthread_create' instead. */ +#ifndef __BIONIC__ + pthread_cancel +#else + pthread_create +#endif + ); return __gthread_active_ptr != 0; }