From 6545e33e69832eb0e5f946787f1764cf0179a049 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Fri, 15 Jul 2011 21:52:06 +0000 Subject: =?UTF-8?q?re=20PR=20libstdc++/49745=20(error:=20=E2=80=98int=20tr?= =?UTF-8?q?uncate=E2=80=99=20redeclared=20as=20different=20kind=20of=20sym?= =?UTF-8?q?bol)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /gcc 2011-07-15 Paolo Carlini Jakub Jelinek Jonathan Wakely PR libstdc++/49745 * gthr-posix.h: Do not include unconditionally; use _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS. /libstdc++-v3 2011-07-15 Paolo Carlini Jakub Jelinek PR libstdc++/49745 * acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Check separately for _POSIX_TIMEOUTS and define _GTHREADS_USE_MUTEX_TIMEDLOCK. * libstdc++-v3/libsupc++/guard.cc: Include . * testsuite/17_intro/headers/c++1998/49745.cc: New. * configure: Regenerate. * config.h.in: Likewise. Co-Authored-By: Jakub Jelinek Co-Authored-By: Jonathan Wakely From-SVN: r176335 --- gcc/gthr-posix.h | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'gcc/gthr-posix.h') diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h index ecb06e2..b1d499d 100644 --- a/gcc/gthr-posix.h +++ b/gcc/gthr-posix.h @@ -1,7 +1,7 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ /* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010 Free Software Foundation, Inc. + 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -39,7 +39,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #endif #include -#include + +#if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \ + || !defined(_GTHREAD_USE_MUTEX_TIMEDLOCK)) +# include +# if defined(_POSIX_TIMEOUTS) && _POSIX_TIMEOUTS >= 0 +# define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 +# else +# define _GTHREAD_USE_MUTEX_TIMEDLOCK 0 +# endif +#endif typedef pthread_t __gthread_t; typedef pthread_key_t __gthread_key_t; @@ -100,11 +109,9 @@ __gthrw3(sched_yield) __gthrw3(pthread_mutex_lock) __gthrw3(pthread_mutex_trylock) -#ifdef _POSIX_TIMEOUTS -#if _POSIX_TIMEOUTS >= 0 +#if _GTHREAD_USE_MUTEX_TIMEDLOCK __gthrw3(pthread_mutex_timedlock) #endif -#endif /* _POSIX_TIMEOUTS */ __gthrw3(pthread_mutex_unlock) __gthrw3(pthread_mutex_init) __gthrw3(pthread_mutex_destroy) @@ -131,11 +138,9 @@ __gthrw(sched_yield) __gthrw(pthread_mutex_lock) __gthrw(pthread_mutex_trylock) -#ifdef _POSIX_TIMEOUTS -#if _POSIX_TIMEOUTS >= 0 +#if _GTHREAD_USE_MUTEX_TIMEDLOCK __gthrw(pthread_mutex_timedlock) #endif -#endif /* _POSIX_TIMEOUTS */ __gthrw(pthread_mutex_unlock) __gthrw(pthread_mutex_init) __gthrw(pthread_mutex_destroy) @@ -753,8 +758,7 @@ __gthread_mutex_trylock (__gthread_mutex_t *__mutex) return 0; } -#ifdef _POSIX_TIMEOUTS -#if _POSIX_TIMEOUTS >= 0 +#if _GTHREAD_USE_MUTEX_TIMEDLOCK static inline int __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) @@ -765,7 +769,6 @@ __gthread_mutex_timedlock (__gthread_mutex_t *__mutex, return 0; } #endif -#endif static inline int __gthread_mutex_unlock (__gthread_mutex_t *__mutex) @@ -811,8 +814,7 @@ __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) return __gthread_mutex_trylock (__mutex); } -#ifdef _POSIX_TIMEOUTS -#if _POSIX_TIMEOUTS >= 0 +#if _GTHREAD_USE_MUTEX_TIMEDLOCK static inline int __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, const __gthread_time_t *__abs_timeout) @@ -820,7 +822,6 @@ __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, return __gthread_mutex_timedlock (__mutex, __abs_timeout); } #endif -#endif static inline int __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) -- cgit v1.1