Subject: bug#18359: Macro expansion failure [MSYS2-MinGW64]

From: Angelo Graziosi <[email-masked]>
Date: Sat, 30 Aug 2014 16:46:02 +0200

Il 30/08/2014 09:21, Eli Zaretskii ha scritto:
>> Date: Fri, 29 Aug 2014 22:49:21 +0200
>> From: Angelo Graziosi <[email-masked]>
>>
>> With recent trunk, building the 64 bit build of Emacs on Windows using
>> MSYS2/MinGW64 tools, produces many "macro-expansion failure" messages:
>>
>> [...]
>> Eager macro-expansion failure: (error "Lisp nesting exceeds
>> `max-lisp-eval-depth'")
>> Eager macro-expansion failure: (error "Lisp nesting exceeds
>> `max-lisp-eval-depth'")
>
> Please provide more context from the build log, around these
> messages.  At least which Lisp files cause them.
>

Some more informations...

In a previous build log (20140816) I find 96 of the above errors. The 
build failed with

...
Generating autoloads for cal-julian.el...
Generating autoloads for cal-julian.el...done
Loading macroexp.elc...
make[2]: ingresso nella directory "/tmp/emacs.git/lisp"
Opening input file: no such file or directory, 
c:/msys64/tmp/emacs.git/lisp/calendar/cal-loaddefs.el
Compiling ../lisp/subr.el
Makefile:465: set di istruzioni per l'obiettivo 
"calendar/hol-loaddefs.el" non riuscito
make[2]: *** [calendar/hol-loaddefs.el] Errore 127
make[2]: *** Attesa per i processi non terminati....
make[2]: ingresso nella directory "/tmp/emacs.git/lisp"
Compiling ../lisp/version.el
Wrote c:/msys64/tmp/emacs.git/lisp/calendar/cal-loaddefs.el
(No changes need to be saved)
make[2]: uscita dalla directory "/tmp/emacs.git/lisp"
Makefile:798: set di istruzioni per l'obiettivo "../lisp/loaddefs.el" 
non riuscito
make[1]: *** [../lisp/loaddefs.el] Errore 2
make[1]: *** Attesa per i processi non terminati....

In declare-function:
subr.el:32:11:Warning: macro declare-function used to take 2+ arguments, now
     takes 2-4

Wrote c:/msys64/tmp/emacs.git/lisp/version.elc
make[2]: uscita dalla directory "/tmp/emacs.git/lisp"
Wrote c:/msys64/tmp/emacs.git/lisp/subr.elc
make[2]: uscita dalla directory "/tmp/emacs.git/lisp"
...

and a few 'make -j3...' it was finished.

Now, with current trunk, 'grep -c failu...' finds 504 of those errors 
and the build fails always with

...
Loading startup...
Loading loaddefs.el (source)...
End of file during parsing: c:/msys64/tmp/emacs.git/lisp/loaddefs.el
Makefile:603: set di istruzioni per l'obiettivo "emacs.exe" non riuscito
make[2]: *** [emacs.exe] Errore 1
make[2]: uscita dalla directory "/tmp/emacs.git/src"
Makefile:379: set di istruzioni per l'obiettivo "src" non riuscito
make[1]: *** [src] Errore 2
make[1]: uscita dalla directory "/tmp/emacs.git"
Makefile:1061: set di istruzioni per l'obiettivo "bootstrap" non riuscito
make: *** [bootstrap] Errore 2

repeating 'make -j3...' or 'make bootstrap..' doesn't help.

I tried also what suggests INSTSLL.REPO,

$ cd lisp
$ make autoloads
for file in `find . -type d -print`; do case $file in .*/obsolete | 
.*/term ) ;; *) wins="$wins${wins:+ }$file" ;; esac; done; \
echo Directories: $wins; \
EMACSLOADPATH= '../src/emacs' -batch --no-site-file --no-site-lisp -l 
autoload \
     --eval '(setq autoload-ensure-writable t)' \
     --eval '(setq autoload-builtin-package-versions t)' \
     --eval '(setq generated-autoload-file (expand-file-name 
(unmsys--file-name "./loaddefs.el")))' \
     -f batch-update-autoloads $wins
Directories: . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic 
./cedet/semantic/analyze ./cedet/semantic/bovine 
./cedet/semantic/decorate ./cedet/semantic/symref 
./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc 
./eshell ./gnus ./international ./language ./leim ./leim/quail ./mail 
./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc
/bin/sh: riga 2: ../src/emacs: No such file or directory
Makefile:181: set di istruzioni per l'obiettivo "autoloads" non riuscito
make: *** [autoloads] Errore 127

Usually I build a native W64 Emacs on MSYS-MinGW64 with

./autogen.sh

./configure --prefix=/Emacs --with-wide-int --build=x86_64-w64-mingw32 
--without-imagemagick 'CFLAGS=-I/mingw64/include/noX -Ofast -g0 -pipe' 
LDFLAGS=-pipe

make -j3

BTW, I found also this reports:

http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00469.html
http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00372.html

Ciao,
   Angelo.