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

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to