unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Stephen Berman <stephen.berman@gmx.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Van Ly <van.ly@sdf.org>, 64806@debbugs.gnu.org
Subject: bug#64806: 29.0.92; build process outside srcdir gets stuck
Date: Sun, 23 Jul 2023 19:34:49 +0200	[thread overview]
Message-ID: <87cz0io7k6.fsf@gmx.net> (raw)
In-Reply-To: <83cz0itzh3.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 23 Jul 2023 18:32:56 +0300")

On Sun, 23 Jul 2023 18:32:56 +0300 Eli Zaretskii <eliz@gnu.org> wrote:

>> Date: Sun, 23 Jul 2023 14:49:26 GMT
>> From:  Van Ly via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>> 
>> When the build process occurs in a directory next to srcdir the make
>> phase is unable to complete.  See attached File A, line 549 and 1349.
>> 
>> Using configure and make within srcdir builds successfully.  See
>> attached File Z.
>> 
>> Steps to reproduce:
>> 
>>  1. at srcdir being emacs-29.0.92
>>  2. run, sh ./autogen.sh
>>  3. create build directory outside srcdir, mkdir ../emacs-29
>>  4. at build directory, cd ../emacs-29,
>>  5. run build process, ../emacs-29.0.92/configure ; make
>
> You configure with
>
>   ../emacs-29.0.92/configure --srcdir=/usr/X/23/pkg/emacs-29.0.92
>
> but the build says
>
>   Entering directory '/mnt/606/2023/pkg/emacs-29'
>
> which doesn't seem to be consistent with the configure command.  I
> think this is the reason for the problem you see.

Perhaps the source directory /usr/X/23/pkg/emacs-29.0.92 is a symlink to
/mnt/606/2023/pkg/emacs-29.0.92 and make resolves the symlink to the
corresponding build directory ../emacs-29 to the true filename?  I have
a similar, though not identical, situation and I've been getting the
same kind of error.  I use this configure command:

/home/steve/src/emacs/emacs-29/configure -C --with-xwidgets CFLAGS='-Og -g3'

Here, /home/steve/src is a symlink to /datadisk/steve/src.  Then I
switch to the build directory, which in my case is not a symlink:

steve [ ~/src/emacs/emacs-29 ]$ cd ~/build/emacs-29
steve [ ~/build/emacs-29 ]$ make -j12
make actual-all || make advice-on-failure make-target=all exit-status=$?
make[1]: Entering directory '/home/steve/build/emacs-29'
make -C lib all
make -C doc/lispref info
make -C doc/lispintro info
make -C doc/emacs info
make[2]: Entering directory '/home/steve/build/emacs-29/doc/lispintro'
[...]
Loading loadup.el (source)...
Dump mode: pbootstrap
Using load-path (/home/steve/src/emacs/emacs-29/lisp /home/steve/src/emacs/emacs-29/lisp/emacs-lisp /home/steve/src/emacs/emacs-29/lisp/progmodes /home/steve/src/emacs/emacs-29/lisp/language /home/steve/src/emacs/emacs-29/lisp/international /home/steve/src/emacs/emacs-29/lisp/textmodes /home/steve/src/emacs/emacs-29/lisp/vc)
Loading emacs-lisp/debug-early...
[...]
Loading /home/steve/src/emacs/emacs-29/lisp/minibuffer.el (source)...

Error: error ("Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"../../../../../home/steve/src/emacs/emacs-29/lisp/emacs-lisp/pcase\")")
  mapbacktrace(#[1028 "\1\4\203\24\0\301\302!\210\300\4!\210\301\303!\210\202\35\0\301\304!\210\3\3B\262\1\211\2035\0\300\1@!\210\211A\211\262\2\2035\0\301\305!\210\202!\0\301\306!\207" [prin1 princ "  " "(" "  (" " " ")\n"] 7 "\n\n(fn EVALD FUNC ARGS FLAGS)"])
  debug-early-backtrace()
  debug-early(error (error "Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"../../../../../home/steve/src/emacs/emacs-29/lisp/emacs-lisp/pcase\")"))
  signal(error ("Eager macro-expansion failure: (file-missing \"Cannot open load file\" \"No such file or directory\" \"../../../../../home/steve/src/emacs/emacs-29/lisp/emacs-lisp/pcase\")"))
  error("Eager macro-expansion failure: %S" (file-missing "Cannot open load file" "No such file or directory" "../../../../../home/steve/src/emacs/emacs-29/lisp/emacs-lisp/pcase"))
  internal-macroexpand-for-load((defalias 'completion-table-with-quoting #'(lambda (table unquote requote) "Return a new completion table operating on quoted text.\nTABLE operates on the unquoted text.\nUNQUOTE is a function that takes a string and returns a new unquoted string.\nREQUOTE is a function of 2 args (UPOS QSTR) where\n  QSTR is a string entered by the user (and hence indicating\n  the user's preferred form of quoting); and\n  UPOS is a position within the unquoted form of QSTR.\nREQUOTE should return a pair (QPOS . QFUN) such that QPOS is the\nposition corresponding to UPOS but in QSTR, and QFUN is a function\nof one argument (a string) which returns that argument appropriately quoted\nfor use at QPOS." (lambda (string pred action) (cond ((eq action 'metadata) (append (completion-metadata string table pred) '((completion--unquote-requote . t)))) ((eq action 'lambda) (let ((ustring (funcall unquote string))) (test-completion ustring table pred))) ((eq (car-safe action) 'boundaries) (let* ((ustring (funcall unquote string)) (qsuffix (cdr action)) (ufull (if (zerop (length qsuffix)) ustring (funcall unquote (concat string qsuffix)))) (usuffix (if (string-prefix-p ustring ufull) (substring ufull (length ustring)) qsuffix)) (boundaries (completion-boundaries ustring table pred usuffix)) (qlboundary (car (funcall requote (car boundaries) string))) (qrboundary (if (zerop (cdr boundaries)) 0 (let* ((urfullboundary (+ (cdr boundaries) (length ustring)))) (- (car (funcall requote urfullboundary (concat string qsuffix))) (length string)))))) `(boundaries ,qlboundary \, qrboundary))) ((eq action nil) (let* ((ustring (funcall unquote string)) (completion (try-completion ustring table pred))) (if (not (stringp completion)) completion (car (completion--twq-try string ustring completion 0 unquote requote))))) ((eq action t) (pcase-let* ((ustring (funcall unquote string)) (completions (all-completions ustring table pred)) (boundary (car (completion-boundaries ustring table pred ""))) (completions (completion--twq-all string ustring completions boundary unquote requote)) (last (last completions))) (when (consp last) (setcdr last nil)) completions)) ((eq action 'completion--unquote) (let* ((qpos pred) (ustring (funcall unquote string)) (uprefix (funcall unquote (substring string 0 qpos))) (uqpos (if (string-prefix-p uprefix ustring) (length uprefix) (let ((usuffix (funcall unquote (substring string qpos)))) (if (string-suffix-p usuffix ustring) (- (length ustring) (length usuffix)) (/ (+ (min (length uprefix) (length ustring)) (max (- (length ustring) (length usuffix)) 0)) 2)))))) (list ustring table uqpos (lambda (unquoted-result op) (pcase op (1 (if (not (stringp (car-safe unquoted-result))) unquoted-result (completion--twq-try string ustring (car unquoted-result) (cdr unquoted-result) unquote requote))) (2 (let* ((last (last unquoted-result)) (base (or (cdr last) 0))) (when last (setcdr last nil) (completion--twq-all string ustring unquoted-result base unquote requote))))))))))))) t)
  eval-buffer(#<buffer  *load*> nil "/home/steve/src/emacs/emacs-29/lisp/minibuffer.el" nil t)
  load-with-code-conversion("/home/steve/src/emacs/emacs-29/lisp/minibuffer.el" "/home/steve/src/emacs/emacs-29/lisp/minibuffer.el" nil nil)
  load("minibuffer")
  load("loadup.el")
Eager macro-expansion failure: (file-missing "Cannot open load file" "No such file or directory" "../../../../../home/steve/src/emacs/emacs-29/lisp/emacs-lisp/pcase")
make[2]: *** [Makefile:923: bootstrap-emacs.pdmp] Error 255
make[2]: Leaving directory '/home/steve/build/emacs-29/src'
make[1]: *** [Makefile:544: src] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/steve/build/emacs-29/doc/emacs'
make[2]: Leaving directory '/home/steve/build/emacs-29/doc/lispref'
make[1]: Leaving directory '/home/steve/build/emacs-29'
make[1]: Entering directory '/home/steve/build/emacs-29'
***
*** "make all" failed with exit status 2.
***
*** You could try to:
*** - run "make bootstrap", which might fix the problem
*** - run "make V=1", which displays the full commands invoked by make,
***   to further investigate the problem
***
make[1]: *** [Makefile:414: advice-on-failure] Error 2
make[1]: Leaving directory '/home/steve/build/emacs-29'
make: *** [Makefile:370: all] Error 2
steve [ ~/build/emacs-29 ]$


This failure only happens when I do an incremental build with make; the
build succeeds with `make bootstrap'.  I wonder if this build problem is
related to the problem with an out-of-tree build I reported in bug#62099?

Steve Berman





  reply	other threads:[~2023-07-23 17:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-23 14:49 bug#64806: 29.0.92; build process outside srcdir gets stuck Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-23 15:32 ` Eli Zaretskii
2023-07-23 17:34   ` Stephen Berman [this message]
2023-07-25  6:36   ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-25 12:08     ` Eli Zaretskii
2023-07-25 13:00       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-25 13:48         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cz0io7k6.fsf@gmx.net \
    --to=stephen.berman@gmx.net \
    --cc=64806@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=van.ly@sdf.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).