sparc64/119289: commit references a PR

dfilter service dfilter at FreeBSD.org
Sat Jan 5 15:00:02 PST 2008


The following reply was made to PR sparc64/119289; it has been noted by GNATS.

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: sparc64/119289: commit references a PR
Date: Sat,  5 Jan 2008 22:58:57 +0000 (UTC)

 marius      2008-01-05 22:58:51 UTC
 
   FreeBSD src repository
 
   Modified files:        (Branch: RELENG_7)
     contrib/gcc          gthr-posix.h 
   Log:
   On FreeBSD GCC 4.2.x checks for the existence of pthread_cancel() in
   order to determine whether a program is running with multithreading
   support. This check causes __gthread_active_p() to always return 1
   however, regardless of whether the program was actually compiled with
   -pthread or not, due to the fact that the FreeBSD libc contains a
   pthread_cancel() stub. Fix this by using the __gthread_active_p()
   version that GCC uses for Solaris and which actively checks for a
   working POSIX threads implementation (if such functions exist) instead
   of checking for the mere existence of corresponding functions.
   
   On platforms without TLS support, i.e. on arm and sparc64 due to the
   lack of GNU TLS support for these archs in binutils 2.15., the false
   positives returned by __gthread_active_p() for non-threaded programs
   cause the exception handling implementation GCC uses in this case to
   crash. This is because GCC assumes that the POSIX threading functions
   actually work when __gthread_active_p() returns 1 while in fact the
   corresponding stubs in libc just immediately return.
   Given that __gthread_active_p() is also used in a couple of other
   places besides exception handling, this bug has great potential to
   also cause problems in other areas and on all archs.
   
   This is committed to RELENG_7 directly in order to get a fix into
   RELENG_7_0 as soon as possible while allowing to loop the official
   fix back into the vendor branch and not taking gthr-posix.h off the
   vendor branch in HEAD.
   
   PR:             119289
   Reviewed by:    obrien (plus style fix)
   Approved by:    re (kensmith)
   
   Revision     Changes    Path
   1.1.1.8.2.1  +7 -4      src/contrib/gcc/gthr-posix.h
 _______________________________________________
 cvs-all at freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe at freebsd.org"
 


More information about the freebsd-sparc64 mailing list