Subject: bug#61988: error compiling emacs

From: Po Lu <[email-masked]>
Date: Mon, 06 Mar 2023 08:20:08 +0800

Ugo Tomei <[email-masked]> writes:

> Hi guys,
>
> i have a problem during compiling emacs, when i launch "make":
>
> make[3]: uscita dalla directory «/app/emacs/doc/lispref»
>   CC       lcms.o
>   CC       inotify.o
>   CC       profiler.o
>   CC       decompress.o
>   CC       thread.o
>   CC       systhread.o
>   CC       sqlite.o
>   CC       treesit.o
>   CC       itree.o
>   CC       xfont.o
>   CC       ftfont.o
>   CC       ftcrfont.o
>   CC       hbfont.o
>   CC       fontset.o
>   CC       fringe.o
>   CC       image.o
>   CC       textconv.o
>   CC       xgselect.o
>   CC       json.o
>   CC       terminfo.o
>   CC       lastfile.o
>   CCLD     temacs
>   GEN      ../etc/DOC
> /usr/bin/ld: image.o: undefined reference to symbol 'WebPGetInfo'
> /usr/bin/ld: /lib/x86_64-linux-gnu/libwebp.so.7: error adding symbols:
> DSO missing from command line
> collect2: error: ld returned 1 exit status
> make[3]: *** [Makefile:705: temacs] Errore 1
> make[3]: uscita dalla directory «/app/emacs/src»
> make[2]: *** [Makefile:544: src] Errore 2
> make[2]: uscita dalla directory «/app/emacs»
> make[1]: *** [Makefile:1260: actual-bootstrap] Errore 2
> make[1]: uscita dalla directory «/app/emacs»
> make[1]: ingresso nella directory «/app/emacs»
> ***
> *** "make bootstrap" failed with exit status 2.
> ***
> *** You could try to:
> *** - run "make extraclean" and run "make" again (or, equivalently, run
> ***   "make bootstrap configure=default"), to rebuild Emacs with the
> ***   default configuration options, which might fix the problem
> *** - run "git clean -fdx" and run "make bootstrap" again, which might
> ***   fix the problem if "make bootstrap configure=default" did not
> ***   !BEWARE! "git clean -fdx" deletes all files that are not under
> ***   !BEWARE! version control, which means that all changes to such
> ***   !BEWARE! files will be lost and cannot be restored later
> *** - run "make V=1", which displays the full commands invoked by make,
> ***   to further investigate the problem
> *** - report the problem and ask for help by sending an email to
> ***   [email-masked], mentioning at least the build error
> ***   message, the platform, and the repository revision displayed by
> ***   "git rev-parse HEAD"
> ***
> make[1]: *** [Makefile:414: advice-on-failure] Errore 2
> make[1]: uscita dalla directory «/app/emacs»
> make: *** [Makefile:1243: bootstrap] Errore 2
>
> Can you help me?
>
> i have reinstalled this package but i have always same error:
> libwebp7:amd64 libwebp7:i386
>
> Best regards

What happens if you apply this patch to configure.ac and reconfigure
Emacs?

diff --git a/configure.ac b/configure.ac
index b484ebdc8ba..f2083a53c17 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2773,7 +2773,7 @@ AC_DEFUN
    || test "${HAVE_W32}" = "yes" || test "${HAVE_NS}" = "yes" \
    || test "${HAVE_BE_APP}" = "yes" || test "${HAVE_PGTK}" = "yes"; then
       WEBP_REQUIRED=0.6.0
-      WEBP_MODULE="libwebpdemux >= $WEBP_REQUIRED"
+      WEBP_MODULE="libwebpdemux >= $WEBP_REQUIRED libwebpdecoder >= $WEBP_REQUIRED"
 
       EMACS_CHECK_MODULES([WEBP], [$WEBP_MODULE])
       AC_SUBST([WEBP_CFLAGS])

Everyone else, make sure to link to *EVERYTHING* that you depend on, not
just one library that happens to link to everything you depend on.
Thanks.