GNU bug report logs - #51999
28.0.60; temacs with native-compilation fails unless invoked from src

Previous Next

Package: emacs;

Reported by: Eli Zaretskii <eliz <at> gnu.org>

Date: Sat, 20 Nov 2021 14:33:02 UTC

Severity: normal

Found in version 28.0.60

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 51999 in the body.
You can then email your comments to 51999 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#51999; Package emacs. (Sat, 20 Nov 2021 14:33:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eli Zaretskii <eliz <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 20 Nov 2021 14:33:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org, Andrea Corallo <akrl <at> sdf.org>
Subject: 28.0.60; temacs with native-compilation fails unless invoked from src
Date: Sat, 20 Nov 2021 16:32:22 +0200
When temacs (not emacs) is invoked, it is supposed to load all the
preloaded Lisp files, and then start up normally.

However, with Emacs 28 compiled with native-compilation, this
strangely not always works.  Here's what I found:

  . On GNU/Linux:

    - cd src && ./temacs -Q -nw works as expected
    - ./src/temacs -Q -nw fails with this error message:

      Symbol's function definition is void: internal-echo-keystrokes-prefix

  . On MS-Windows:

    - cd src && ./temacs -Q -nw works as expected
    - ./src/temacs -Q -nw works, but loads *.elc files instead of *.eln

In all the cases, temacs was invoked from the build directory.  I
don't understand why the different behavior.  Any ideas?

In GNU Emacs 28.0.60 (build 25, i686-pc-mingw32)
 of 2021-11-17 built on HOME-C4E4A596F7
Repository revision: fa0b34b716ba31a6414d12de67c8f30706caad96
Repository branch: emacs-28
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
System Description: Microsoft Windows XP Service Pack 3 (v5.1.0.2600)

Configured using:
 'configure -C --prefix=/d/usr --with-wide-int --with-native-compilation
 --enable-checking=yes,glyphs 'CFLAGS=-O0 -gdwarf-4 -g3''

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
XPM ZLIB

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
d:/gnu/git/emacs/native-comp/lisp/shorthands hides d:/gnu/git/emacs/native-comp/lisp/emacs-lisp/shorthands

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs auth-source eieio eieio-core eieio-loaddefs
password-cache json map text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils comp
comp-cstr warnings subr-x rx cl-seq cl-macs cl-extra help-mode seq
byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 85042 11923)
 (symbols 48 9017 1)
 (strings 16 25577 4033)
 (string-bytes 1 784068)
 (vectors 16 17570)
 (vector-slots 8 308751 19296)
 (floats 8 28 128)
 (intervals 40 269 112)
 (buffers 888 11))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#51999; Package emacs. (Sat, 20 Nov 2021 15:13:02 GMT) Full text and rfc822 format available.

Message #8 received at 51999 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: akrl <at> sdf.org
Cc: 51999 <at> debbugs.gnu.org
Subject: Re: bug#51999: 28.0.60;
 temacs with native-compilation fails unless invoked from src
Date: Sat, 20 Nov 2021 17:12:03 +0200
>   . On GNU/Linux:
> 
>     - cd src && ./temacs -Q -nw works as expected
>     - ./src/temacs -Q -nw fails with this error message:
> 
>       Symbol's function definition is void: internal-echo-keystrokes-prefix
> 
>   . On MS-Windows:
> 
>     - cd src && ./temacs -Q -nw works as expected
>     - ./src/temacs -Q -nw works, but loads *.elc files instead of *.eln
> 
> In all the cases, temacs was invoked from the build directory.  I
> don't understand why the different behavior.  Any ideas?

Answering myself: here's the reason:

    DEFVAR_LISP ("native-comp-eln-load-path", Vnative_comp_eln_load_path,
		 doc: /* List of eln cache directories.

  If a directory is non absolute is assumed to be relative to
  `invocation-directory'.
  `comp-native-version-dir' value is used as a sub-folder name inside
  each eln cache directory.
  The last directory of this list is assumed to be the system one.  */);

    /* Temporary value in use for bootstrap.  We can't do better as
       `invocation-directory' is still unset, will be fixed up during
       dump reload.  */
    Vnative_comp_eln_load_path = Fcons (build_string ("../native-lisp/"), Qnil);

So invoking temacs from any directory that is not a sibling of
native-lisp will fail to find the *.eln files.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 20 Nov 2021 16:27:02 GMT) Full text and rfc822 format available.

Notification sent to Eli Zaretskii <eliz <at> gnu.org>:
bug acknowledged by developer. (Sat, 20 Nov 2021 16:27:02 GMT) Full text and rfc822 format available.

Message #13 received at 51999-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: akrl <at> sdf.org
Cc: 51999-done <at> debbugs.gnu.org
Subject: Re: bug#51999: 28.0.60;
 temacs with native-compilation fails unless invoked from src
Date: Sat, 20 Nov 2021 18:26:01 +0200
> Date: Sat, 20 Nov 2021 17:12:03 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 51999 <at> debbugs.gnu.org
> 
>     DEFVAR_LISP ("native-comp-eln-load-path", Vnative_comp_eln_load_path,
> 		 doc: /* List of eln cache directories.
> 
>   If a directory is non absolute is assumed to be relative to
>   `invocation-directory'.
>   `comp-native-version-dir' value is used as a sub-folder name inside
>   each eln cache directory.
>   The last directory of this list is assumed to be the system one.  */);
> 
>     /* Temporary value in use for bootstrap.  We can't do better as
>        `invocation-directory' is still unset, will be fixed up during
>        dump reload.  */
>     Vnative_comp_eln_load_path = Fcons (build_string ("../native-lisp/"), Qnil);
> 
> So invoking temacs from any directory that is not a sibling of
> native-lisp will fail to find the *.eln files.

I've now installed a fix, and I'm closing the bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 19 Dec 2021 12:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 126 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.