GNU bug report logs - #65123
29.1; Build fails with "configure --without-all --with-tree-sitter"

Previous Next

Package: emacs;

Reported by: Ulrich Mueller <ulm <at> gentoo.org>

Date: Mon, 7 Aug 2023 10:46:01 UTC

Severity: normal

Found in version 29.1

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 65123 in the body.
You can then email your comments to 65123 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#65123; Package emacs. (Mon, 07 Aug 2023 10:46:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ulrich Mueller <ulm <at> gentoo.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 07 Aug 2023 10:46:01 GMT) Full text and rfc822 format available.

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

From: Ulrich Mueller <ulm <at> gentoo.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1; Build fails with "configure --without-all --with-tree-sitter" 
Date: Mon, 07 Aug 2023 12:44:38 +0200
Forwarding downstream bug: https://bugs.gentoo.org/911826

Linking of temacs fails with undefined references to symbols
dynlib_error, dynlib_open and dynlib_sym when using configure options
--without-all --with-tree-sitter. To reproduce:

emacs-29.1 $ ./configure --without-all --without-x --with-tree-sitter
[...]
emacs-29.1 $ make V=1
[...]
gcc -o temacs.tmp \
  -Demacs  -I. -I. -I../lib -I../lib                          -MMD -MF deps/.d -MP             -g3 -O2     \
    dispnew.o frame.o scroll.o xdisp.o menu.o  window.o charset.o coding.o category.o ccl.o character.o chartab.o bidi.o cm.o term.o terminal.o xfaces.o    emacs.o keyboard.o macros.o keymap.o sysdep.o bignum.o buffer.o filelock.o insdel.o marker.o minibuf.o fileio.o dired.o cmds.o casetab.o casefiddle.o indent.o search.o regex-emacs.o undo.o alloc.o pdumper.o data.o doc.o editfns.o callint.o eval.o floatfns.o fns.o sort.o font.o print.o lread.o  syntax.o  bytecode.o comp.o  process.o gnutls.o callproc.o region-cache.o sound.o timefns.o atimer.o doprnt.o intervals.o textprop.o composite.o xml.o lcms.o   profiler.o decompress.o thread.o systhread.o sqlite.o  treesit.o itree.o          json.o     terminfo.o lastfile.o      ../lib/libgnu.a                              -ltinfo           -lanl   -lm    -ljansson  -lgmp    -ltree-sitter    
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: treesit.o: in function `treesit_load_language':
/local/home/ulm/emacs-29.1/src/treesit.c:617:(.text+0x4a6a): undefined reference to `dynlib_error'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /local/home/ulm/emacs-29.1/src/treesit.c:618:(.text+0x4a72): undefined reference to `dynlib_open'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /local/home/ulm/emacs-29.1/src/treesit.c:619:(.text+0x4a7a): undefined reference to `dynlib_error'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /local/home/ulm/emacs-29.1/src/treesit.c:634:(.text+0x4d41): undefined reference to `dynlib_error'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /local/home/ulm/emacs-29.1/src/treesit.c:644:(.text+0x4d68): undefined reference to `dynlib_sym'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /local/home/ulm/emacs-29.1/src/treesit.c:646:(.text+0x4d78): undefined reference to `dynlib_error'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:704: temacs] Error 1
make[2]: Leaving directory '/local/home/ulm/emacs-29.1/src'
make[1]: *** [Makefile:544: src] Error 2
make[1]: Leaving directory '/local/home/ulm/emacs-29.1'
make[1]: Entering directory '/local/home/ulm/emacs-29.1'
***
*** "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 '/local/home/ulm/emacs-29.1'
make: *** [Makefile:370: all] Error 2
emacs-29.1 $ 


Looks like configure.ac should set NEED_DYNLIB=yes when tree-sitter
is requested. It already does so in one code path, but it doesn't for
tree-sitter >= 0.20.2.

$ pkg-config --modversion tree-sitter
0.20.9


(The above build failure will also occur with a simple "configure
--without-all", because it leaves both json and tree-sitter enabled.
Is this intentional? I'd have expected --without-all to turn these
features off.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65123; Package emacs. (Mon, 07 Aug 2023 12:43:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ulrich Mueller <ulm <at> gentoo.org>
Cc: 65123 <at> debbugs.gnu.org
Subject: Re: bug#65123: 29.1;
 Build fails with "configure --without-all --with-tree-sitter"
Date: Mon, 07 Aug 2023 15:42:55 +0300
> From: Ulrich Mueller <ulm <at> gentoo.org>
> Date: Mon, 07 Aug 2023 12:44:38 +0200
> 
> Forwarding downstream bug: https://bugs.gentoo.org/911826
> 
> Linking of temacs fails with undefined references to symbols
> dynlib_error, dynlib_open and dynlib_sym when using configure options
> --without-all --with-tree-sitter. To reproduce:

Thanks.  Does the patch below fix this?

diff --git a/configure.ac b/configure.ac
index 5dd182a..ab401be 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3254,6 +3254,7 @@ AC_DEFUN
     [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])
   if test "${HAVE_TREE_SITTER}" = yes; then
     AC_DEFINE(HAVE_TREE_SITTER, 1, [Define if using tree-sitter.])
+    NEED_DYNLIB=yes
   else
     EMACS_CHECK_MODULES([TREE_SITTER], [tree-sitter >= 0.6.3],
       [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65123; Package emacs. (Mon, 07 Aug 2023 13:03:02 GMT) Full text and rfc822 format available.

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

From: Ulrich Mueller <ulm <at> gentoo.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 65123 <at> debbugs.gnu.org
Subject: Re: bug#65123: 29.1; Build fails with "configure --without-all
 --with-tree-sitter"
Date: Mon, 07 Aug 2023 15:02:43 +0200
>>>>> On Mon, 07 Aug 2023, Eli Zaretskii wrote:

>> From: Ulrich Mueller <ulm <at> gentoo.org>
>> Date: Mon, 07 Aug 2023 12:44:38 +0200
>> 
>> Forwarding downstream bug: https://bugs.gentoo.org/911826
>> 
>> Linking of temacs fails with undefined references to symbols
>> dynlib_error, dynlib_open and dynlib_sym when using configure options
>> --without-all --with-tree-sitter. To reproduce:

> Thanks.  Does the patch below fix this?

> diff --git a/configure.ac b/configure.ac
> index 5dd182a..ab401be 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3254,6 +3254,7 @@ AC_DEFUN
>      [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])
>    if test "${HAVE_TREE_SITTER}" = yes; then
>      AC_DEFINE(HAVE_TREE_SITTER, 1, [Define if using tree-sitter.])
> +    NEED_DYNLIB=yes
>    else
>      EMACS_CHECK_MODULES([TREE_SITTER], [tree-sitter >= 0.6.3],
>        [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])

Thanks, this fixes the problem for me.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Mon, 07 Aug 2023 13:22:01 GMT) Full text and rfc822 format available.

Notification sent to Ulrich Mueller <ulm <at> gentoo.org>:
bug acknowledged by developer. (Mon, 07 Aug 2023 13:22:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ulrich Mueller <ulm <at> gentoo.org>
Cc: 65123-done <at> debbugs.gnu.org
Subject: Re: bug#65123: 29.1; Build fails with "configure --without-all
 --with-tree-sitter"
Date: Mon, 07 Aug 2023 16:21:15 +0300
> From: Ulrich Mueller <ulm <at> gentoo.org>
> Cc: 65123 <at> debbugs.gnu.org
> Date: Mon, 07 Aug 2023 15:02:43 +0200
> 
> >>>>> On Mon, 07 Aug 2023, Eli Zaretskii wrote:
> 
> > Thanks.  Does the patch below fix this?
> 
> > diff --git a/configure.ac b/configure.ac
> > index 5dd182a..ab401be 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -3254,6 +3254,7 @@ AC_DEFUN
> >      [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])
> >    if test "${HAVE_TREE_SITTER}" = yes; then
> >      AC_DEFINE(HAVE_TREE_SITTER, 1, [Define if using tree-sitter.])
> > +    NEED_DYNLIB=yes
> >    else
> >      EMACS_CHECK_MODULES([TREE_SITTER], [tree-sitter >= 0.6.3],
> >        [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no])
> 
> Thanks, this fixes the problem for me.

Thanks, installed on the emacs-29 branch, and closing the bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 05 Sep 2023 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 284 days ago.

Previous Next


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