Subject: bug#11649: 24.1.50; Some compilation woes

From: Glenn Morris <[email-masked]>
Date: Thu, 14 Jun 2012 13:56:41 -0400

Eli Zaretskii wrote:

>> The "invalid byte code" errors.
>
> All I needed on GNU/Linux was this:
>
>   make bootstrap
>   cd lisp
>   find . -name "*.el" -exec touch "{}" ";"
>   make recompile
>
> Don't you see it?

I see this, but I also see the same thing with the emacs-24 branch.

(There, it is "Invalid byte code in cl-seq.elc".)

I don't think this is a new (or real) bug, it is just that `make
recompile' does the wrong thing (as was already known), since it
compiles everything in the same single Emacs instance.

As Stefan said in http://debbugs.gnu.org/11649#29
    
    Usually "Invalid byte code in <foo>" happens because <foo> is
    byte-compile-dynamic (as is the case for cl-macs) and you try to call
    a function from it after byte-compiling a new version of the file.
    More specifically, the scenario is:
    1- load cl-macs.elc.
    2- don't call function <bla>.
    3- change cl-macs.elc.
    4- call <bla> which is dynamically loaded from cl-macs.elc.
    5- now the offset loaded at point 1 is not valid any more, so you get an
       error: you need to re-load cl-macs.elc.

AFAICS, nobody is claiming that the "invalid byte code" happens buring
*bootstrap*, which would be a new, serious bug.

AFAICS, all the actual problems are fixed in this area (expect perhaps
MS Windows specific build efficiency issues).