From owner-freebsd-sparc64@FreeBSD.ORG Sat Jan 5 23:00:02 2008 Return-Path: Delivered-To: freebsd-sparc64@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D01916A419 for ; Sat, 5 Jan 2008 23:00:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 9863013C45B for ; Sat, 5 Jan 2008 23:00:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m05N02xi021127 for ; Sat, 5 Jan 2008 23:00:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m05N023f021126; Sat, 5 Jan 2008 23:00:02 GMT (envelope-from gnats) Date: Sat, 5 Jan 2008 23:00:02 GMT Message-Id: <200801052300.m05N023f021126@freefall.freebsd.org> To: freebsd-sparc64@FreeBSD.org From: dfilter@FreeBSD.org (dfilter service) Cc: Subject: Re: sparc64/119289: commit references a PR X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2008 23:00:02 -0000 The following reply was made to PR sparc64/119289; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@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@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"