Subject: bug#25360: File mode specification errors during building

From: Eli Zaretskii <[email-masked]>
Date: Sat, 04 Mar 2017 12:02:28 +0200

> Date: Thu, 02 Mar 2017 17:20:52 +0200
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
>   make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
>     ELC      ../lisp/files.elc
>     GEN      mh-e/mh-loaddefs.el
>   make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
>     ELC      ../lisp/international/mule.elc
>   Symbol's function definition is void: w32-convert-standard-filename
>   Symbol's function definition is void: w32-convert-standard-filename
>   make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
>   Symbol's function definition is void: w32-convert-standard-filename
>   make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'
>   Directories for loaddefs: . ./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 ./image ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc
>     GEN      loaddefs.el
>   Symbol's function definition is void: w32-convert-standard-filename

I still see these errors while building master.  Here's the latest
incarnation:

  Finding pointers to doc strings...
  Finding pointers to doc strings...done
  Dumping under the name emacs
  Dump memory usage: Heap: 9498624  Large blocks(0/1): 0/786448
  Dumping from d:/gnu/git/emacs/trunk/src/temacs.exe
	    to d:/gnu/git/emacs/trunk/src/emacs.exe
  49515 pure bytes used
  mv -f emacs.exe bootstrap-emacs.exe
  make -C ../lisp compile-first EMACS="../src/bootstrap-emacs.exe"
  make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp'
    GEN      mh-e/mh-loaddefs.el
  Symbol's function definition is void: w32-convert-standard-filename
  Directories for loaddefs: . ./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 ./image ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc
    GEN      loaddefs.el
  Symbol's function definition is void: w32-convert-standard-filename
  make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp'

The build succeeds nonetheless.  Moreover, if I repeat the offending
command ("make autoloads") manually, there are no error messages.
w32-convert-standard-filename is defined in w32-fns.el, which is
preloaded by loadup.el, so I don't understand this error message, and
am unable to debug it because I cannot reproduce if if I run the same
commands by hand.  It could be related to the fact that we use an
emacs executable that overflowed the pure storage (see the "49515 pure
bytes used" message).

Can we please fix this annoyance?  (And no, I don't want to bootstrap,
because this deletes all the old binaries I keep for testing.  And I
already tried "make generate-ldefs-boot", it didn't help.)

Thanks.