Skip site navigation (1)Skip section navigation (2)
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>