On Thu, 2002-06-20 at 02:21, Sean Chittenden wrote: > > > I supped a -CURRENT system 3 days ago and am still having the problem > > > described here, but the gcc that's in the base system is 3.1 at this > > > point. I'm installing gcc32 now and will try building this again > > > using a newer version of GCC but am not sure if this'll fix anything. > > > Anyone have any ideas/clues? -sc > > > > I do, but admittedly, it's not my idea. Peter Kostouros has said > > that defining THUNK_BASED_THIS_ADJUST in > > xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h fixes > > the build problem on -CURRENT. I have not tested this yet, but I > > did test a build with gcc31 from ports (per mbr@'s suggestion), and > > that works just fine. > > > > I want to test Peter's suggestion before I add more bloat to Mozilla. I > > just have a really slow -CURRENT machine. If you'd like to test the > > option, undefine CFRONT_STYLE_THIS_ADJUST, and define > > THUNK_BASED_THIS_ADJUST in the above header file, and see if it works. > > Sweeet! We've got a winner. The attach patched should work but is > untested (I just brute-forced the defs earlier and am not about to > wait another 4+hrs to test this little patch). :~) Anyway, any chance > this could be committed as a patch for mozilla? -sc
How about this one? It's very similar to yours, Sean, but thunk adjustments will also be made for all non-i386 platforms. Since I don't readily have an alpha workstation to test with, I would appreciate if someone could build mozilla with this patch on alpha -stable, and let me know how it goes. Again, thanks to Peter Kostouros for the idea of using thunking as a workaround for these problems. Joe > > -- > Sean Chittenden > ---- > > --- xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h.orig Tue >Apr 9 20:37:34 2002 > +++ xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h Wed Jun 19 >23:23:38 2002 > @@ -94,7 +94,7 @@ > * gcc is that the system gcc defines __FreeBSD_cc_version. This variable > * can also identify the period of time that 4.0-CURRENT used thunks. > */ > -#if defined(__FreeBSD_cc_version) && \ > + #if defined(__FreeBSD_cc_version) && (__FreeBSD_cc_version < 500003) && \ > (__FreeBSD_cc_version < 400002 || __FreeBSD_cc_version > 400003) > #define CFRONT_STYLE_THIS_ADJUST > #else
--- xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h.orig Fri Jun 21 01:12:40 2002 +++ xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h Fri Jun 21 +01:41:51 2002 @@ -94,8 +94,16 @@ * gcc is that the system gcc defines __FreeBSD_cc_version. This variable * can also identify the period of time that 4.0-CURRENT used thunks. */ -#if defined(__FreeBSD_cc_version) && \ - (__FreeBSD_cc_version < 400002 || __FreeBSD_cc_version > 400003) + +/* It seems we need to use thunks in FreeBSD -CURRENT after gcc-3.1 was merged. + * This solves a problem wherein regxpcom and/or regchrome would seg fault + * after running for a while. This problem has also exhibited itself on + * the alpha platform. Therefore, use thunks on all non-i386 versions of + * -stable and _all_ versions of -CURRENT that are using gcc-3.1. + */ +#if defined(__FreeBSD_cc_version) && defined(__i386__) && \ + (__FreeBSD_cc_version < 400002 || __FreeBSD_cc_version > 400003) && \ + (__FreeBSD_cc_version < 500003) #define CFRONT_STYLE_THIS_ADJUST #else #define THUNK_BASED_THIS_ADJUST
signature.asc
Description: This is a digitally signed message part