From owner-freebsd-current Thu Sep 10 11:28:05 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id LAA24044 for freebsd-current-outgoing; Thu, 10 Sep 1998 11:28:05 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from Ilsa.StevesCafe.com (Ilsa.StevesCafe.com [205.168.119.129]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id LAA24016 for ; Thu, 10 Sep 1998 11:28:02 -0700 (PDT) (envelope-from smp@Ilsa.StevesCafe.com) Received: from Ilsa.StevesCafe.com (localhost.StevesCafe.com [127.0.0.1]) by Ilsa.StevesCafe.com (8.8.8/8.8.5) with ESMTP id MAA05587; Thu, 10 Sep 1998 12:27:26 -0600 (MDT) Message-Id: <199809101827.MAA05587@Ilsa.StevesCafe.com> X-Mailer: exmh version 2.0.2 2/24/98 From: Steve Passe To: Terry Lambert cc: joelh@gnu.org, obrien@NUXI.com, dfr@nlsystems.com, jb@cimlogic.com.au, current@FreeBSD.ORG Subject: Re: Compiler problems with gcc-2.7.2.1 In-reply-to: Your message of "Thu, 10 Sep 1998 18:13:47 -0000." <199809101813.LAA26539@usr08.primenet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 10 Sep 1998 12:27:25 -0600 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Terry, I said: > > We found that these patches only fix half the problem with 2.8.1. Note > > this piece of code in libgcc2.c: > > ... > > if (! __eh_info || (*dhc) == top_elt) > > ^^^^^^^ > > __terminate (); > > ... You replied: > I haven't seen this. > > Did you enable the code in uthread_init.c and rebuild libc_r before > trying this? > ... > It is, if you enabled the code in uthread_init.c: > ... > dh->__dynamic_handler_chain= dh->top_elt; > pthread_setspecific(except_head_key, (void *)dh); > } > return &dh->__dynamic_handler_chain; > } > ============================================================================= > **** Fourth line up! ************************************************* Wrong: dh->top_elt is NOT the same as top_elt. The thread patches create a per-thread dhc headed by the dh struct, and thus have a per-thread top_elt which is referenced as dh->top_elt, NOT top_elt. The global top_elt is NOT used in a threaded program. -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message