From owner-svn-src-all@FreeBSD.ORG Wed Sep 15 03:19:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0430106566C; Wed, 15 Sep 2010 03:19:54 +0000 (UTC) (envelope-from davidxu@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 8E96C8FC0C; Wed, 15 Sep 2010 03:19:54 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o8F3JqxY059005; Wed, 15 Sep 2010 03:19:53 GMT (envelope-from davidxu@freebsd.org) Message-ID: <4C90ABD8.1020609@freebsd.org> Date: Wed, 15 Sep 2010 11:19:52 +0000 From: David Xu User-Agent: Thunderbird 2.0.0.24 (X11/20100630) MIME-Version: 1.0 To: Alexander Kabaev References: <201009150256.o8F2uXwX004579@svn.freebsd.org> <20100914231728.33ca7466@kan.dnsalias.net> In-Reply-To: <20100914231728.33ca7466@kan.dnsalias.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r212630 - in head/lib/libthr: . thread X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Sep 2010 03:19:54 -0000 Alexander Kabaev wrote: > On Wed, 15 Sep 2010 02:56:33 +0000 (UTC) > David Xu wrote: > >> Author: davidxu >> Date: Wed Sep 15 02:56:32 2010 >> New Revision: 212630 >> URL: http://svn.freebsd.org/changeset/base/212630 >> >> Log: >> add code to support stack unwinding when thread exits. note that >> only defer-mode cancellation works, asynchrnous mode does not work >> because it lacks of libuwind's support. stack unwinding is not >> enabled unless LIBTHR_UNWIND_STACK is defined in Makefile. >> >> Modified: >> head/lib/libthr/Makefile >> head/lib/libthr/thread/thr_clean.c >> head/lib/libthr/thread/thr_create.c >> head/lib/libthr/thread/thr_exit.c >> head/lib/libthr/thread/thr_init.c >> head/lib/libthr/thread/thr_private.h >> >> Modified: head/lib/libthr/Makefile >> ============================================================================== >> --- head/lib/libthr/Makefile Wed Sep 15 01:21:30 2010 >> (r212629) +++ head/lib/libthr/Makefile Wed Sep 15 02:56:32 >> 2010 (r212630) @@ -25,6 +25,14 @@ >> CFLAGS+=-I${.CURDIR}/../../libexec/rtld- >> CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf/${MACHINE_CPUARCH} >> CFLAGS+=-I${.CURDIR}/../libthread_db CFLAGS+=-Winline >> + >> +LIBTHR_UNWIND_STACK=yes >> + >> +.ifdef LIBTHR_UNWIND_STACK >> +CFLAGS+=-I${.CURDIR}/../../contrib/gcc -fexceptions >> +CFLAGS+=-D_PTHREAD_FORCED_UNWIND >> +.endif >> + >> > > Reaching into bowels of GCC like that is never good. Any solution ? ;-)