emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: x86_64 problems/fix (was: alloc.c problem when GC_MARK_STACK is GC_U


From: Kim F. Storm
Subject: Re: x86_64 problems/fix (was: alloc.c problem when GC_MARK_STACK is GC_USE_GCPROS_AS_BEFORE)
Date: 12 Jul 2004 11:33:14 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

Barry Fishman <address@hidden> writes:

> I was unable to make any change to alloc.c that would fix the GC_MARK_STACK
> problem without later crashes in the build while compiling the lisp
> files.

Does the following patch work (if you undo the patch you suggested below)?


*** alloc.c     23 Jun 2004 10:30:52 +0200      1.346
--- alloc.c     12 Jul 2004 11:29:19 +0200      
***************
*** 5033,5038 ****
--- 5033,5039 ----
          break;
  
        case Lisp_Misc_Save_Value:
+ #if GC_MARK_STACK
          {
            register struct Lisp_Save_Value *ptr = XSAVE_VALUE (obj);
            /* If DOGC is set, POINTER is the address of a memory
***************
*** 5045,5050 ****
--- 5046,5052 ----
                  mark_maybe_object (*p);
              }
          }
+ #endif
          break;
  
        case Lisp_Misc_Overlay:

> 
> However, I suspect the attached change to src/s/gnu-linux.h is
> approprate.  This produces a working emacs (for me) on a amd64
> gnu-linux system (SuSE 9.1), although it sidesteps the problem in
> alloc.c.

This is a good change -- have you been using that for some time
now without problems?  If so, I will commit your patch.

> 
> Index: gnu-linux.h
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/src/s/gnu-linux.h,v
> retrieving revision 1.89
> diff -c -r1.89 gnu-linux.h
> *** gnu-linux.h       1 Sep 2003 15:45:58 -0000       1.89
> --- gnu-linux.h       6 Jul 2004 23:49:36 -0000
> ***************
> *** 355,361 ****
>   
>   #if defined __i386__ || defined __sparc__ || defined __mc68000__ \
>       || defined __alpha__ || defined __mips__ || defined __s390__ \
> !     || defined __arm__ || defined __powerpc__
>   #define GC_SETJMP_WORKS 1
>   #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
>   #ifdef __mc68000__
> --- 355,361 ----
>   
>   #if defined __i386__ || defined __sparc__ || defined __mc68000__ \
>       || defined __alpha__ || defined __mips__ || defined __s390__ \
> !     || defined __arm__ || defined __powerpc__ || defined __amd64__
>   #define GC_SETJMP_WORKS 1
>   #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
>   #ifdef __mc68000__
> 
> -- 
> Barry Fishman
> _______________________________________________
> Emacs-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-devel

-- 
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]