emacs-pretest-bug
[Top][All Lists]
Advanced

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

Using an old loaddefs.el can break bootstrap. (was: generic-x mode does


From: Lute Kamstra
Subject: Using an old loaddefs.el can break bootstrap. (was: generic-x mode does not load in init)
Date: Tue, 07 Jun 2005 14:36:03 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Lute Kamstra <address@hidden> writes:

>>> generic-make-keywords-list should be autoloaded.  Could you revert
>>> your change to lisp/generic-x.el and do another make bootstrap?
>>
>> i did, and to my surprise emacs-cvs got built fine.  then i double
>> checked if i really had done "gmake clean" before that first failed
>> built, and i had done so.  whatever could have triggered this
>> symptom?
>
> The "make clean", actually.  That deletes the old emacs executable,
> but not the old loaddefs.el.  As a result, bootstrap-emacs uses the
> old loaddefs.el (and not ldefs-boot.el) and fails to compile lisp code
> that depends on new autoloads.

I think this is a bug in the bootstrap process.  The following patch
fixes it.  Ok to commit?

Lute.


2005-06-07  Lute Kamstra  <address@hidden>

        * Makefile.in (bootstrap-prepare): Don't use an old loaddefs.el.


Index: lisp/Makefile.in
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/Makefile.in,v
retrieving revision 1.62
diff -c -r1.62 Makefile.in
*** lisp/Makefile.in    13 Apr 2005 09:41:46 -0000      1.62
--- lisp/Makefile.in    7 Jun 2005 12:14:50 -0000
***************
*** 215,235 ****
  
  # Prepare a bootstrap in the lisp subdirectory.
  #
! # Build loaddefs.el, because it's not sure it's up-to-date, and if it's not,
! # that might lead to errors during the bootstrap because something fails to
! # autoload as expected.  However, if there is no emacs binary, then we can't
! # build autoloads yet, so just make sure there's some loaddefs.el file, as
! # it's necessary for generating the binary (because loaddefs.el is an
! # automatically generated file, we don't want to store it in the source
! # repository).
  
  bootstrap-prepare:
        if test -x $(EMACS); then                               \
          $(MAKE) $(MFLAGS) autoloads;                          \
        else                                                    \
!         if test ! -r $(lisp)/loaddefs.el; then                \
!           cp $(lisp)/ldefs-boot.el $(lisp)/loaddefs.el;       \
!         fi                                                    \
        fi
  
  maintainer-clean: distclean
--- 215,233 ----
  
  # Prepare a bootstrap in the lisp subdirectory.
  #
! # Build loaddefs.el to make sure it's up-to-date.  If it's not, that
! # might lead to errors during the bootstrap because something fails to
! # autoload as expected.  If there is no emacs binary, then we can't
! # build autoloads yet.  In that case we have to use ldefs-boot.el;
! # bootstrap should always work with ldefs-boot.el.  (Because
! # loaddefs.el is an automatically generated file, we don't want to
! # store it in the source repository).
  
  bootstrap-prepare:
        if test -x $(EMACS); then                               \
          $(MAKE) $(MFLAGS) autoloads;                          \
        else                                                    \
!         cp $(lisp)/ldefs-boot.el $(lisp)/loaddefs.el;         \
        fi
  
  maintainer-clean: distclean




reply via email to

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