bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#64806: 29.0.92; build process outside srcdir gets stuck


From: Stephen Berman
Subject: bug#64806: 29.0.92; build process outside srcdir gets stuck
Date: Sun, 23 Jul 2023 19:34:49 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

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 via email to

[Prev in Thread] Current Thread [Next in Thread]