On Fri, Nov 18, 2005 at 06:17:49PM -0500, Scott Gilbertson wrote: > - if (last_cache_entry != NULL) > + if (prev_cache_entry != NULL && last_cache_entry != NULL)
This one looks like it may be a legitimate problem with the list manipulation, though this isn't the proper fix. > Looking at the changes to unwind-dw2-fde-glibc.c, I see that the parts of > the code I've shown here were structured differently in the 4.0 branch > (which works just fine for me with static builds). Maybe that's a clue. Um, I don't see that at all. I see some minor changes wrt abort, and one spot where we use a local temporary instead of storing the value directly into data->func. > _Jv_FreeMethodCache function, and now my simple test cases work. Like so: > void > _Jv_FreeMethodCache () > {/* > #ifdef HAVE_TLS > if (method_cache != NULL) I will say that staticly linked linuxthreads tls is known to be broken. Or at least known to me. I encountered this while doing OpenMP work on RHEL3. The problem I saw doesn't appear with nptl. r~