From b36e79e55092aa63f0d92c2d3748ee0daca25b30 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Tue, 3 Jul 2007 13:41:00 +0000 Subject: [PATCH] re PR target/28307 (pthread functions in libgcc not weak any more on Tru64 UNIX) PR target/28307 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthrw_pragma): Provide default definition. (__gthrw2): Use it. * gthr-posix.c (__gthrw_pragma): Define. From-SVN: r126253 --- gcc/ChangeLog | 8 ++++++++ gcc/gthr-posix.c | 5 +++-- gcc/gthr-posix.h | 8 ++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8ed672acb4..2cbddc7f039 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2007-07-03 Rainer Orth + + PR target/28307 + * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK] + (__gthrw_pragma): Provide default definition. + (__gthrw2): Use it. + * gthr-posix.c (__gthrw_pragma): Define. + 2007-07-03 Daniel Berlin * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p diff --git a/gcc/gthr-posix.c b/gcc/gthr-posix.c index a8922c0c16b..e2d731ae407 100644 --- a/gcc/gthr-posix.c +++ b/gcc/gthr-posix.c @@ -1,6 +1,6 @@ /* POSIX threads dummy routines for systems without weak definitions. */ /* Compile this one with gcc. */ -/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -28,6 +28,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "tconfig.h" #include "tm.h" +# define __gthrw_pragma(pragma) _Pragma (#pragma) /* Define so we provide weak definitions of functions used by libobjc only. */ #define _LIBOBJC_WEAK #include "gthr.h" @@ -75,7 +76,7 @@ pthread_create (pthread_t *thread ATTRIBUTE_UNUSED, } int -pthread_cancel(pthread_t thread ATTRIBUTE_UNUSED) +pthread_cancel (pthread_t thread ATTRIBUTE_UNUSED) { return 0; } diff --git a/gcc/gthr-posix.h b/gcc/gthr-posix.h index 837bc1a9820..47d38a320ba 100644 --- a/gcc/gthr-posix.h +++ b/gcc/gthr-posix.h @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -59,8 +59,12 @@ typedef pthread_mutex_t __gthread_recursive_mutex_t; #endif #if SUPPORTS_WEAK && GTHREAD_USE_WEAK +# ifndef __gthrw_pragma +# define __gthrw_pragma(pragma) +# endif # define __gthrw2(name,name2,type) \ - static __typeof(type) name __attribute__ ((__weakref__(#name2))); + static __typeof(type) name __attribute__ ((__weakref__(#name2))); \ + __gthrw_pragma(weak type) # define __gthrw_(name) __gthrw_ ## name #else # define __gthrw2(name,name2,type)