emacs-devel
[Top][All Lists]
Advanced

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

Re: bootstrap error


From: Eli Zaretskii
Subject: Re: bootstrap error
Date: Fri, 27 Jan 2006 22:37:31 +0200

> Date: Thu, 26 Jan 2006 12:21:01 +0200 (IST)
> From: Alexander Klimov <address@hidden>
> cc: address@hidden
> 
> Loading international/ucs-tables (source)...
> * not found (17), obtain more space: 327680
> * obtain(548012032, 327680), heap = 539798416
> * not found (18), obtain more space: 327680
> * obtain(548012032, 327680), heap = 539798416
> [...]
> * not found (277), obtain more space: 327680
> * obtain(548012032, 327680), heap = 539798416
> * not found (278), obtain more space: 327680
> * obtain(548012032, 327680), heap = 539798416
> mv -f emacs.exe bootstrap-emacs.exe
> mv: cannot stat `emacs.exe': No such file or directory
> make: *** [bootstrap-emacs.exe] Error 1
> 
> Any ideas? BTW, this host has cygwin1.dll 1.5.19-4 (build date
> 2006-01-20 13:28), gcc 3.4.4, and Win2K.

After some more tinkering, I think I know why the error message about
autoloading define-minor-mode doesn't show during bootstrapping.  The
function eval.c:do_autoload, which issues that message, does this:

  /* This is to make sure that loadup.el gives a clear picture
     of what files are preloaded and when.  */
  if (! NILP (Vpurify_flag))
    error ("Attempt to autoload %s while preparing to dump",
           SDATA (SYMBOL_NAME (funname)));

So this message and the resulting abort should only happen when
purify-flag is non-nil.  However, loadup.el does this:

  (if (or (equal (nth 3 command-line-args) "bootstrap")
          (equal (nth 4 command-line-args) "bootstrap")
          ;; in case CANNOT_DUMP
          (equal (nth 0 command-line-args) "../src/bootstrap-emacs"))
      (let ((dir (car load-path)))
        ;; We'll probably overflow the pure space.
        (setq purify-flag nil)
        (setq load-path (list dir
                              (expand-file-name "emacs-lisp" dir)
                              (expand-file-name "language" dir)
                              (expand-file-name "international" dir)
                              (expand-file-name "textmodes" dir)))))

So during bootstrap, purify-flag is nil, and the error never happens.

So now the question is, why doesn't this work for Cygwin?  Doesn't
Cygwin support dumping or something? is purify-flag indeed nil during
bootstrap of the Cygwin port? or maybe some of your investigations
were not in the bootstrap context, so purify-flag was non-nil?

And another puzzle: if autoloading define-minor-mode aborts the Cygwin
bootstrap, why doesn't that happen earlier, in help.el, for example,
which also uses define-minor-mode?

Finally, just to make sure we are not chasing a wild goose, could you
please see if the message about autoloading define-minor-mode is
indeed the reason for the abort?




reply via email to

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