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
next prev parent 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).