emacs-devel
[Top][All Lists]
Advanced

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

Re: make bootstrap fails with newest CVS sources - 2002-11-25


From: Steven Tamm
Subject: Re: make bootstrap fails with newest CVS sources - 2002-11-25
Date: Tue, 26 Nov 2002 08:21:05 -0800

In fns.c:Frequire I changed:

      if (nesting > 2)
        error ("Recursive `require' for feature `%s'",
               SDATA (SYMBOL_NAME (feature)));

to:

      if (nesting > 3)
        error ("Recursive `require' for feature `%s'",
               SDATA (SYMBOL_NAME (feature)));

This makes the recursive load die in lread.c:Fload (which produces the nicer error). Fload fails if it tries to load the same file more than 3 times.

I found this out totally by accident. On darwin/Mac OS X, there is a problem with the apple-hacked GCC that it doesn't seem to export the structure definitions for Lisp_String and Lisp_Object because of the name conflict with the Lisp_Type enum. So the gdb macros like xsymbol didn't work. After I figured that out I just thought that the problem might go away if I allowed more nesting. I was wrong.

BTW, To get the Lisp_String etc. structures to be loaded correctly into gdb on darwin all I did was add this to emacs.c

typedef Lisp_Object XLisp_Object;
typedef struct Lisp_String XLisp_String;
typedef struct Lisp_Symbol XLisp_Symbol;
typedef struct Lisp_Cons   XLisp_Cons;
XLisp_Object dummy1;
XLisp_String dummy2;
XLisp_Symbol dummy3;
XLisp_Cons dummy4;

Do any other platforms have the same problem, or is there some flag I can use to make this go away?
-Steven

On Tuesday, November 26, 2002, at 05:49  AM, Ben Key wrote:

There appears to be a recursive load (I turned up the recursion check
    from 2 to 3 in fns.c) to get it to fail in lread.

    Recursive load: "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
    "/dev/emacs/lisp/button.el", "/dev/emacs/lisp/help-mode.el",
"/dev/emacs/lisp/help-fns.el", "/dev/emacs/lisp/emacs-lisp/cl-macs.el",
    "/dev/emacs/lisp/faces.el", "/dev/emacs/lisp/loadup.el"

The chain appears to be cl-macs -> help-fns -> help-mode -> button ->
    cl-macs

How did you get this information? What did you have to change / enable in order to get such a detailed report? I spent quite some time searching for a way to do something similar so I could provide more information when I
reported the problem, but I failed to find anything.





reply via email to

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