Date: Thu, 10 Sep 1998 12:27:25 -0600 From: Steve Passe <smp@csn.net> To: Terry Lambert <tlambert@primenet.com> 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 Message-ID: <199809101827.MAA05587@Ilsa.StevesCafe.com> In-Reply-To: Your message of "Thu, 10 Sep 1998 18:13:47 -0000." <199809101813.LAA26539@usr08.primenet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809101827.MAA05587>