unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#54378: Subject: 29.0 Build failed
@ 2022-03-13 17:11 nuil
  2022-03-14  0:58 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: nuil @ 2022-03-13 17:11 UTC (permalink / raw)
  To: 54378

[-- Attachment #1: Type: text/plain, Size: 9031 bytes --]

From: nuil@foxmail.com
To: bug-gnu-emacs@gnu.org
Subject: 29.0(fresh clone) Build failed
 --text follows this line--
I'm using gentoo,
and when I set USE='gtk -X gui', the build failed with link error,
I have to set USE='dynamic-loading' manually for build.
Developer from https://bugs.gentoo.org/835083 said:
"Looks like a problem with the build system."

and suggest to report it upstream too.


you can access my build log here:
 https://gist.github.com/C-Entropy/b57fbf16d5c14cd2903a7b32b994f72e
and some discuss from:

https://forums.gentoo.org/viewtopic-p-8694353.html#8694353

following is othre info that may help:

 emerge -pqv '=app-editors/emacs-29.0.9999::gentoo' 
 
 [ebuild  NS   ] app-editors/emacs-29.0.9999 [28.0.9999-r1] USE="acl alsa  cairo dbus gif gmp gpm gtk gui inotify jpeg lcms png ssl svg systemd  threads tiff xft xpm zlib -X% -Xaw3d (-aqua) -athena -dynamic-loading  -games -gconf -gfile -gsettings -gzip-el -harfbuzz -imagemagick -jit  -json -kerberos -libxml2 -livecd -m17n-lib -mailutils -motif (-selinux)  -sound -source -sqlite% -toolkit-scroll-bars -webp% -wide-int -xwidgets"   
 	 

 emerge --info '=app-editors/emacs-29.0.9999::gentoo' 
 
 Portage 3.0.30 (python 3.9.9-final-0,  default/linux/amd64/17.1/desktop/plasma/systemd, gcc-11.2.1,  glibc-2.33-r13, 5.15.26-gentoo x86_64) 
 ================================================================= 
                          System Settings 
 ================================================================= 
 System uname: Linux-5.15.26-gentoo-x86_64-AMD_Ryzen_9_5900HX_with_Radeon_Graphics-with-glibc2.33 
 KiB Mem:    32335688 total,  25752596 free 
 KiB Swap:          0 total,         0 free 
 Timestamp of repository gentoo: Thu, 10 Mar 2022 00:45:01 +0000 
 Head commit of repository gentoo: 537bd5f5dea823e71d408e31f1c839891fc8b294 
 sh bash 5.1_p16 
 ld GNU ld (Gentoo 2.37_p1 p2) 2.37 
 app-misc/pax-utils:        1.3.3::gentoo 
 app-shells/bash:           5.1_p16::gentoo 
 dev-lang/perl:             5.34.0-r6::gentoo 
 dev-lang/python:           3.9.9-r1::gentoo, 3.10.2_p1::gentoo 
 dev-lang/rust-bin:         1.58.1::gentoo 
 dev-util/cmake:            3.22.2::gentoo 
 dev-util/meson:            0.60.3::gentoo 
 sys-apps/baselayout:       2.7-r3::gentoo 
 sys-apps/sandbox:          2.25::gentoo 
 sys-apps/systemd:          249.9::gentoo 
 sys-devel/autoconf:        2.13-r1::gentoo, 2.71-r1::gentoo 
 sys-devel/automake:        1.16.4::gentoo 
 sys-devel/binutils:        2.37_p1-r2::gentoo 
 sys-devel/binutils-config: 5.4::gentoo 
 sys-devel/clang:           13.0.1::gentoo 
 sys-devel/gcc:             11.2.1_p20220115::gentoo 
 sys-devel/gcc-config:      2.5-r1::gentoo 
 sys-devel/libtool:         2.4.6-r6::gentoo 
 sys-devel/llvm:            13.0.1::gentoo 
 sys-devel/make:            4.3::gentoo 
 sys-kernel/linux-headers:  5.15-r3::gentoo (virtual/os-headers) 
 sys-libs/glibc:            2.33-r13::gentoo 
 Repositories: 
 
 gentoo 
     location: /var/db/repos/gentoo 
     sync-type: rsync 
     sync-uri: rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage 
     priority: -1000 
     sync-rsync-extra-opts:  
     sync-rsync-verify-metamanifest: yes 
     sync-rsync-verify-jobs: 1 
     sync-rsync-verify-max-age: 24 
 
 gentoo-zh 
     location: /var/lib/layman/gentoo-zh 
     masters: gentoo 
     priority: 50 
 
 guru 
     location: /var/lib/layman/guru 
     masters: gentoo 
     priority: 50 
 
 lisp 
     location: /var/lib/layman/lisp 
     masters: gentoo 
     priority: 50 
 
 wayland-desktop 
     location: /var/lib/layman/wayland-desktop 
     masters: gentoo 
     priority: 50 
 
 ACCEPT_KEYWORDS="amd64" 
 ACCEPT_LICENSE="@FREE" 
 AR="llvm-ar" 
 CBUILD="x86_64-pc-linux-gnu" 
 CC="clang" 
 CFLAGS="-march=znver3 -O2 -pipe -flto=thin" 
 CHOST="x86_64-pc-linux-gnu" 
 CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" 
 CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d  /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild  /etc/sandbox.d /etc/terminfo" 
 CXX="clang++" 
 CXXFLAGS="-march=znver3 -O2 -pipe -flto=thin" 
 DISTDIR="/var/cache/distfiles" 
 ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH  PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT  XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" 
 FCFLAGS="-O2 -pipe" 
 FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs  buildpkg-live config-protect-if-modified distlocks ebuild-locks  fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news  parallel-fetch pid-sandbox preserve-libs protect-owned  qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn  unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync  xattr" 
 FFLAGS="-O2 -pipe" 
 GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo" 
 LANG="en_US.utf8" 
 LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O2 -Wl,--as-needed" 
 MAKEOPTS="-j9" 
 NM="llvm-nm" 
 PKGDIR="/var/cache/binpkgs" 
 PORTAGE_CONFIGROOT="/" 
 PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times  --omit-dir-times --compress --force --whole-file --delete --stats  --human-readable --timeout=180 --exclude=/distfiles --exclude=/local  --exclude=/packages --exclude=/.git" 
 PORTAGE_TMPDIR="/var/tmp" 
 RANLIB="llvm-ranlib" 
 SHELL="/bin/zsh" 
 USE="X a52 aac acl acpi activities alsa amd64 bluetooth branding bzip2  cairo cdda cdr clang cli crypt cuda cups dbus declarative dri dts dvd  dvdr encode exif ffmpeg flac fortran gdbm gif gpm gui iconv icu ipv6  jpeg kwallet lcms libglvnd libnotify libtirpc mad mng mp3 mp4 mpeg  multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf plasma  png policykit ppds pulseaudio qml readline scsi sdl seccomp  semantic-desktop spell split-usr ssl startup-notification svg systemd  tiff truetype udev udisks unicode upower usb vaapi vdpau vorbis wayland  widgets wxwidgets x264 xattr xcb xft xml xv xvid zh_CN zh_TW zlib  zsh-completion" ABI_X86="64" ADA_TARGET="gnat_2020"  APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias  auth_basic authn_alias authn_anon authn_dbm authn_default authn_file  authz_dbm authz_default authz_groupfile authz_host authz_owner  authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir  disk_cache env expires ext_filter file_cache filter headers include info  log_config logio mem_cache mime mime_magic negotiation rewrite setenvif  speling status unique_id userdir usertrack vhost_alias"  CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface  irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2"  ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18  garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom  oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2  timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput synaptics"  KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216  lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console  presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1"  OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0"  POSTGRES_TARGETS="postgres12 postgres13"  PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9"  RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="amdgpu  radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options  ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal  rawnat logmark ipmark dhcpmac delude chaos account" 
 Unset:  ADDR2LINE, ARFLAGS, AS, ASFLAGS, CCLD, CONFIG_SHELL, CPP,  CPPFLAGS, CTARGET, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF,  F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LEX, LFLAGS,  LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, OBJCOPY, OBJDUMP, PORTAGE_BINHOST,  PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS,  PORTAGE_RSYNC_EXTRA_OPTS, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP,  YACC, YFLAGS

[-- Attachment #2: Type: text/html, Size: 9653 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-13 17:11 bug#54378: Subject: 29.0 Build failed nuil
@ 2022-03-14  0:58 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-14  3:37   ` Eli Zaretskii
  2022-03-15  0:56 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-14  0:58 UTC (permalink / raw)
  To: nuil; +Cc: Eli Zaretskii, 54378

"nuil" <nuil@foxmail.com> writes:

> From: nuil@foxmail.com
> To: bug-gnu-emacs@gnu.org
>
> Subject: 29.0(fresh clone) Build failed
>  --text follows this line--
> I'm using gentoo,
> and when I set USE='gtk -X gui', the build failed with link error,
> I have to set USE='dynamic-loading' manually for build.

dynlib is required for interrupt-based input to work in the PGTK build.

Eli, would it be okay to build dynlib.o as long as PGTK is enabled, even
if dynamic modules are not?  Thanks.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-14  0:58 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-14  3:37   ` Eli Zaretskii
  2022-03-14  5:03     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2022-03-14  3:37 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

> From: Po Lu <luangruo@yahoo.com>
> Cc: 54378@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
> Date: Mon, 14 Mar 2022 08:58:26 +0800
> 
> "nuil" <nuil@foxmail.com> writes:
> 
> > From: nuil@foxmail.com
> > To: bug-gnu-emacs@gnu.org
> >
> > Subject: 29.0(fresh clone) Build failed
> >  --text follows this line--
> > I'm using gentoo,
> > and when I set USE='gtk -X gui', the build failed with link error,
> > I have to set USE='dynamic-loading' manually for build.
> 
> dynlib is required for interrupt-based input to work in the PGTK build.
> 
> Eli, would it be okay to build dynlib.o as long as PGTK is enabled, even
> if dynamic modules are not?

What are the downsides of doing this, if any?  (I presume you asked me
because it isn't straightforward or something?)





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-14  3:37   ` Eli Zaretskii
@ 2022-03-14  5:03     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-14 12:50       ` Eli Zaretskii
  0 siblings, 1 reply; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-14  5:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 54378, nuil

Eli Zaretskii <eliz@gnu.org> writes:

> What are the downsides of doing this, if any?  (I presume you asked me
> because it isn't straightforward or something?)

I don't know if there are any downsides, that's why I asked.  I presumed
there are because modules support is a configuration option.

Thanks.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-14  5:03     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-14 12:50       ` Eli Zaretskii
  2022-03-14 13:05         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2022-03-14 12:50 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

> From: Po Lu <luangruo@yahoo.com>
> Cc: nuil@foxmail.com,  54378@debbugs.gnu.org
> Date: Mon, 14 Mar 2022 13:03:03 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > What are the downsides of doing this, if any?  (I presume you asked me
> > because it isn't straightforward or something?)
> 
> I don't know if there are any downsides, that's why I asked.  I presumed
> there are because modules support is a configuration option.

Then please explain what exactly is missing from the build that
requires dynlib to fix it, because I don't think I understand what
does the original problem have to do with modules or with dynamic
loading in general (I don't use PGTK).





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-14 12:50       ` Eli Zaretskii
@ 2022-03-14 13:05         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-14 14:11           ` Eli Zaretskii
  0 siblings, 1 reply; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-14 13:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 54378, nuil

Eli Zaretskii <eliz@gnu.org> writes:

> Then please explain what exactly is missing from the build that
> requires dynlib to fix it, because I don't think I understand what
> does the original problem have to do with modules or with dynamic
> loading in general (I don't use PGTK).

It needs to load some functions dynamically using the dynlib mechanism.

These functions cannot be directly linked into the Emacs binary, since
doing that will prevent the binary from functioning on systems that have
GTK, but not both Xlib and libwayland-client.  They return the file
descriptor of a display connection, so that we can initialize SIGIO for
it and use interrupt-based input.

Thanks.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-14 13:05         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-14 14:11           ` Eli Zaretskii
  2022-03-15  0:32             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2022-03-14 14:11 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

> From: Po Lu <luangruo@yahoo.com>
> Cc: nuil@foxmail.com,  54378@debbugs.gnu.org
> Date: Mon, 14 Mar 2022 21:05:22 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Then please explain what exactly is missing from the build that
> > requires dynlib to fix it, because I don't think I understand what
> > does the original problem have to do with modules or with dynamic
> > loading in general (I don't use PGTK).
> 
> It needs to load some functions dynamically using the dynlib mechanism.
> 
> These functions cannot be directly linked into the Emacs binary, since
> doing that will prevent the binary from functioning on systems that have
> GTK, but not both Xlib and libwayland-client.  They return the file
> descriptor of a display connection, so that we can initialize SIGIO for
> it and use interrupt-based input.

But why does it need dynlib?  This is only for Posix platforms, so
just use the dynamic loading functions (dlopen, dlsym etc.) directly.
There should be no need to go through dynlib.c, which is an
abstraction layer implemented specifically for modules, so that Fload
and friends could be blissfully unaware of the platform
idiosyncrasies.

When we need to dynamically load stuff in the w32-specific code, we
just call LoadLibrary and GetProcAddress directly, we don't use
dynlib.  How is this case different?





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-14 14:11           ` Eli Zaretskii
@ 2022-03-15  0:32             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-15  0:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 54378, nuil

Eli Zaretskii <eliz@gnu.org> writes:

> But why does it need dynlib?  This is only for Posix platforms, so
> just use the dynamic loading functions (dlopen, dlsym etc.) directly.
> There should be no need to go through dynlib.c, which is an
> abstraction layer implemented specifically for modules, so that Fload
> and friends could be blissfully unaware of the platform
> idiosyncrasies.
>
> When we need to dynamically load stuff in the w32-specific code, we
> just call LoadLibrary and GetProcAddress directly, we don't use
> dynlib.  How is this case different?

It isn't, but I thought dynlib was supposed to always be used.

Thanks for clarifying.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-13 17:11 bug#54378: Subject: 29.0 Build failed nuil
  2022-03-14  0:58 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-15  0:56 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-15  6:21 ` bug#54378: Still build failed with USE='gtk -X gui' nuil
  2022-03-15 18:21 ` bug#54378: Build log of 'make V=1' nuil
  3 siblings, 0 replies; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-15  0:56 UTC (permalink / raw)
  To: nuil; +Cc: 54378


Should be fixed now, please test.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Still build failed with USE='gtk -X gui'
  2022-03-13 17:11 bug#54378: Subject: 29.0 Build failed nuil
  2022-03-14  0:58 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-15  0:56 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-15  6:21 ` nuil
  2022-03-15 16:58   ` Eli Zaretskii
  2022-03-15 18:21 ` bug#54378: Build log of 'make V=1' nuil
  3 siblings, 1 reply; 21+ messages in thread
From: nuil @ 2022-03-15  6:21 UTC (permalink / raw)
  To: 54378

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

Sorry that I may not fully understand you because of my poor English.
I have tried to build with USE='gtk -X gui', and it still failed


This is the error I got:

/usr/bin/x86_64-pc-linux-gnu-ld: pgtkterm.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
/usr/bin/x86_64-pc-linux-gnu-ld: /lib64/libdl.so.2: error adding symbols: DSO missing from command line
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)


you can access my full build log here: https://gist.github.com/C-Entropy/65dd4bb3b04ebe347e86c0a9ed1d67ce

[-- Attachment #2: Type: text/html, Size: 712 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Still build failed with USE='gtk -X gui'
  2022-03-15  6:21 ` bug#54378: Still build failed with USE='gtk -X gui' nuil
@ 2022-03-15 16:58   ` Eli Zaretskii
  2022-03-15 17:17     ` Robert Pluim
  0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2022-03-15 16:58 UTC (permalink / raw)
  To: nuil; +Cc: 54378

> Resent-From: "nuil" <nuil@foxmail.com>
> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
> Resent-CC: bug-gnu-emacs@gnu.org
> Resent-Sender: help-debbugs@gnu.org
> From: "nuil" <nuil@foxmail.com>
> Date: Tue, 15 Mar 2022 14:21:26 +0800
> 
> 
> [1:text/plain Show]
> 
> 
> [2:text/html Hide Save:noname (705B)]
> 
> Sorry that I may not fully understand you because of my poor English.
> I have tried to build with USE='gtk -X gui', and it still failed
> 
> This is the error I got:
> /usr/bin/x86_64-pc-linux-gnu-ld: pgtkterm.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
> /usr/bin/x86_64-pc-linux-gnu-ld: /lib64/libdl.so.2: error adding symbols: DSO missing from command line
> clang-13: error: linker command failed with exit code 1 (use -v to see invocation)

I guess this means that configuration needs a configure-time test for
linking against libdl, as some systems do need that separate library
to have dlopen/dlsym/etc.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Still build failed with USE='gtk -X gui'
  2022-03-15 16:58   ` Eli Zaretskii
@ 2022-03-15 17:17     ` Robert Pluim
  2022-03-15 18:59       ` Robert Pluim
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Pluim @ 2022-03-15 17:17 UTC (permalink / raw)
  To: nuil; +Cc: 54378

>>>>> On Tue, 15 Mar 2022 18:58:40 +0200, Eli Zaretskii <eliz@gnu.org> said:
    >> This is the error I got:
    >> /usr/bin/x86_64-pc-linux-gnu-ld: pgtkterm.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
    >> /usr/bin/x86_64-pc-linux-gnu-ld: /lib64/libdl.so.2: error adding symbols: DSO missing from command line
    >> clang-13: error: linker command failed with exit code 1 (use -v to see invocation)

    Eli> I guess this means that configuration needs a configure-time test for
    Eli> linking against libdl, as some systems do need that separate library
    Eli> to have dlopen/dlsym/etc.

dlsym is part of glibc, so thereʼs something else going on.

The complete link line would be useful, can you run 'make V=1' and
show the error log?

Robert
-- 





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Build log of 'make V=1'
  2022-03-13 17:11 bug#54378: Subject: 29.0 Build failed nuil
                   ` (2 preceding siblings ...)
  2022-03-15  6:21 ` bug#54378: Still build failed with USE='gtk -X gui' nuil
@ 2022-03-15 18:21 ` nuil
  3 siblings, 0 replies; 21+ messages in thread
From: nuil @ 2022-03-15 18:21 UTC (permalink / raw)
  To: 54378

[-- Attachment #1: Type: text/plain, Size: 5627 bytes --]

I don't know how to run emerge with 'make V=1', so I cd to the directory of emacs clone by emerge and run make V=1 manually.
please let me know if I do something wrong.

Build log:



make V=1
make -C lib all
make[1]: Entering directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/lib'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/lib'
make -C lib-src all
make[1]: Entering directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/lib-src'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/lib-src'
make -C src VCSWITNESS='$(srcdir)/../.git/logs/HEAD' BIN_DESTDIR=''/usr/bin/'' \
&nbsp;&nbsp; &nbsp; ELN_DESTDIR='/usr/lib64/emacs/29.0.50/' all
make[1]: Entering directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/src'
make -C ../admin/charsets all
make[2]: Entering directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/admin/charsets'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/admin/charsets'
make -C ../admin/unidata charscript.el
make[2]: Entering directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/admin/unidata'
make[2]: Nothing to be done for 'charscript.el'.
make[2]: Leaving directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/admin/unidata'
make -C ../admin/unidata emoji-zwj.el
make[2]: Entering directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/admin/unidata'
make[2]: Nothing to be done for 'emoji-zwj.el'.
make[2]: Leaving directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/admin/unidata'
clang -o temacs.tmp \
&nbsp; -Demacs&nbsp; -I. -I. -I../lib -I../lib&nbsp;&nbsp; -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/uuid -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread&nbsp;&nbsp;&nbsp; -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -pthread -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/uuid&nbsp;&nbsp; -I/usr/include/libpng16&nbsp;&nbsp;&nbsp; -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -I/usr/include/freetype2&nbsp; -I/usr/include/freetype2 -I/usr/include/uuid&nbsp;&nbsp;&nbsp;&nbsp; -MMD -MF deps/.d -MP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/uuid -I/usr/include/libpng16&nbsp;&nbsp;&nbsp; -Wno-switch -Wno-pointer-sign -Wno-string-plus-int -Wno-unknown-attributes -Wno-initializer-overrides -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -march=znver3 -O2 -pipe&nbsp;&nbsp;&nbsp; -Wl,-O1 -Wl,--as-needed -Wl,-O2 -Wl,--as-needed \
&nbsp;&nbsp;&nbsp; dispnew.o frame.o scroll.o xdisp.o menu.o&nbsp; window.o charset.o coding.o category.o ccl.o character.o chartab.o bidi.o cm.o term.o terminal.o xfaces.o&nbsp; gtkutil.o emacsgtkfixed.o dbusbind.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 font.o print.o lread.o&nbsp; syntax.o&nbsp; bytecode.o comp.o&nbsp; 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 inotify.o&nbsp; profiler.o decompress.o thread.o systhread.o sqlite.o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ftfont.o ftcrfont.o&nbsp; fontset.o fringe.o image.o xgselect.o&nbsp;&nbsp; pgtkfns.o pgtkterm.o pgtkselect.o pgtkmenu.o pgtkim.o xsettings.o&nbsp;&nbsp; terminfo.o lastfile.o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ../lib/libgnu.a&nbsp;&nbsp;&nbsp;&nbsp; -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0&nbsp;&nbsp;&nbsp; -ltiff -ljpeg -lpng16 -lz&nbsp; -lgif&nbsp;&nbsp;&nbsp; -lasound&nbsp; -lrsvg-2 -lm -lgio-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lcairo&nbsp;&nbsp; -lacl&nbsp;&nbsp;&nbsp;&nbsp; -lrt -ldbus-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -lgpm&nbsp; -lcairo&nbsp; -ltinfo&nbsp;&nbsp;&nbsp; -lfreetype&nbsp; -lfontconfig -lfreetype&nbsp;&nbsp;&nbsp;&nbsp; -lgnutls&nbsp; -lpthread -lanl -llcms2&nbsp;&nbsp; -lm -lz&nbsp; -lsystemd&nbsp;&nbsp; -lgmp
/usr/bin/x86_64-pc-linux-gnu-ld: pgtkterm.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
/usr/bin/x86_64-pc-linux-gnu-ld: /lib64/libdl.so.2: error adding symbols: DSO missing from command line
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:701: temacs] Error 1
make[1]: Leaving directory '/var/tmp/portage/app-editors/emacs-29.0.9999/work/emacs/src'
make: *** [Makefile:469: src] Error 2

[-- Attachment #2: Type: text/html, Size: 5817 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Still build failed with USE='gtk -X gui'
  2022-03-15 17:17     ` Robert Pluim
@ 2022-03-15 18:59       ` Robert Pluim
  2022-03-16  4:45         ` bug#54378: Subject: 29.0 Build failed Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Pluim @ 2022-03-15 18:59 UTC (permalink / raw)
  To: nuil; +Cc: 54378

>>>>> On Tue, 15 Mar 2022 18:17:54 +0100, Robert Pluim <rpluim@gmail.com> said:

>>>>> On Tue, 15 Mar 2022 18:58:40 +0200, Eli Zaretskii <eliz@gnu.org> said:
    >>> This is the error I got:
    >>> /usr/bin/x86_64-pc-linux-gnu-ld: pgtkterm.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
    >>> /usr/bin/x86_64-pc-linux-gnu-ld: /lib64/libdl.so.2: error adding symbols: DSO missing from command line
    >>> clang-13: error: linker command failed with exit code 1 (use -v to see invocation)

    Eli> I guess this means that configuration needs a configure-time test for
    Eli> linking against libdl, as some systems do need that separate library
    Eli> to have dlopen/dlsym/etc.

    Robert> dlsym is part of glibc, so thereʼs something else going on.

Eli's right and Iʼm wrong: itʼs part of glibc, but requires libdl (but
only on Gnu/Linux).

    Robert> The complete link line would be useful, can you run 'make V=1' and
    Robert> show the error log?

so I can reproduce this with

configure --with-pgtk --without-modules

and this fixes it:

diff --git a/configure.ac b/configure.ac
index a315eeb6bd..df00c98e36 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3940,10 +3940,16 @@ AC_DEFUN
   darwin) MODULES_SECONDARY_SUFFIX='.so' ;;
   *) MODULES_SECONDARY_SUFFIX='' ;;
 esac
+
+case $opsys in
+  gnu|gnu-linux)
+  LIBMODULES="-ldl"
+  ;;
+esac
+
 if test "${with_modules}" != "no"; then
   case $opsys in
     gnu|gnu-linux)
-      LIBMODULES="-ldl"
       HAVE_MODULES=yes
       ;;
     cygwin|mingw32|darwin)





^ permalink raw reply related	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-15 18:59       ` Robert Pluim
@ 2022-03-16  4:45         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-16  7:34           ` Robert Pluim
  0 siblings, 1 reply; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-16  4:45 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, 54378, nuil

Robert Pluim <rpluim@gmail.com> writes:

> diff --git a/configure.ac b/configure.ac
> index a315eeb6bd..df00c98e36 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3940,10 +3940,16 @@ AC_DEFUN
>    darwin) MODULES_SECONDARY_SUFFIX='.so' ;;
>    *) MODULES_SECONDARY_SUFFIX='' ;;
>  esac
> +
> +case $opsys in
> +  gnu|gnu-linux)
> +  LIBMODULES="-ldl"
> +  ;;
> +esac
> +
>  if test "${with_modules}" != "no"; then
>    case $opsys in
>      gnu|gnu-linux)
> -      LIBMODULES="-ldl"
>        HAVE_MODULES=yes
>        ;;
>      cygwin|mingw32|darwin)

Let's make this PGTK-specific though, I think -ldl is not available in
some GNU/Linux systems.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-16  4:45         ` bug#54378: Subject: 29.0 Build failed Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-16  7:34           ` Robert Pluim
  2022-03-16  7:53             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Pluim @ 2022-03-16  7:34 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

>>>>> On Wed, 16 Mar 2022 12:45:12 +0800, Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> said:

    Po> Robert Pluim <rpluim@gmail.com> writes:
    >> diff --git a/configure.ac b/configure.ac
    >> index a315eeb6bd..df00c98e36 100644
    >> --- a/configure.ac
    >> +++ b/configure.ac
    >> @@ -3940,10 +3940,16 @@ AC_DEFUN
    >> darwin) MODULES_SECONDARY_SUFFIX='.so' ;;
    >> *) MODULES_SECONDARY_SUFFIX='' ;;
    >> esac
    >> +
    >> +case $opsys in
    >> +  gnu|gnu-linux)
    >> +  LIBMODULES="-ldl"
    >> +  ;;
    >> +esac
    >> +
    >> if test "${with_modules}" != "no"; then
    >> case $opsys in
    >> gnu|gnu-linux)
    >> -      LIBMODULES="-ldl"
    >> HAVE_MODULES=yes
    >> ;;
    >> cygwin|mingw32|darwin)

    Po> Let's make this PGTK-specific though, I think -ldl is not available in
    Po> some GNU/Linux systems.

--with-modules assumes that itʼs available on all GNU/Linux systems.

I can respin to make it dependent on PGTK, but that will be more
complex and require more testing.

Robert
-- 





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-16  7:34           ` Robert Pluim
@ 2022-03-16  7:53             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-16  9:00               ` Robert Pluim
  0 siblings, 1 reply; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-16  7:53 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, 54378, nuil

Robert Pluim <rpluim@gmail.com> writes:

> --with-modules assumes that itʼs available on all GNU/Linux systems.

Just as `--with-modules' is optional.

> I can respin to make it dependent on PGTK, but that will be more
> complex and require more testing.

I can do the testing if you would rather that be the case, thanks.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-16  7:53             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-16  9:00               ` Robert Pluim
  2022-03-16 10:02                 ` Robert Pluim
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Pluim @ 2022-03-16  9:00 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

>>>>> On Wed, 16 Mar 2022 15:53:49 +0800, Po Lu <luangruo@yahoo.com> said:

    Po> Robert Pluim <rpluim@gmail.com> writes:
    >> --with-modules assumes that itʼs available on all GNU/Linux systems.

    Po> Just as `--with-modules' is optional.

--with-modules defaults to on, so yes, itʼs optional, but most
GNU/Linux builds will be using it, I think

    >> I can respin to make it dependent on PGTK, but that will be more
    >> complex and require more testing.

    Po> I can do the testing if you would rather that be the case, thanks.

Thanks, but I need to test during the patch development in any case

Robert
-- 





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-16  9:00               ` Robert Pluim
@ 2022-03-16 10:02                 ` Robert Pluim
  2022-03-16 10:22                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Pluim @ 2022-03-16 10:02 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

So we donʼt do any autodetection of -ldl, so actually the following
should be enough:

diff --git a/configure.ac b/configure.ac
index a315eeb6bd..bc17935eb1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3940,6 +3940,16 @@ AC_DEFUN
   darwin) MODULES_SECONDARY_SUFFIX='.so' ;;
   *) MODULES_SECONDARY_SUFFIX='' ;;
 esac
+
+# pgtkterm.c uses dlsym
+if test $window_system = pgtk; then
+  case $opsys in
+    gnu|gnu-linux)
+    LIBMODULES="-ldl"
+    ;;
+  esac
+fi
+
 if test "${with_modules}" != "no"; then
   case $opsys in
     gnu|gnu-linux)





^ permalink raw reply related	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-16 10:02                 ` Robert Pluim
@ 2022-03-16 10:22                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-03-16 14:33                     ` Robert Pluim
  0 siblings, 1 reply; 21+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-03-16 10:22 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, 54378, nuil

Robert Pluim <rpluim@gmail.com> writes:

> So we donʼt do any autodetection of -ldl, so actually the following
> should be enough:
>
> diff --git a/configure.ac b/configure.ac
> index a315eeb6bd..bc17935eb1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3940,6 +3940,16 @@ AC_DEFUN
>    darwin) MODULES_SECONDARY_SUFFIX='.so' ;;
>    *) MODULES_SECONDARY_SUFFIX='' ;;
>  esac
> +
> +# pgtkterm.c uses dlsym
> +if test $window_system = pgtk; then
> +  case $opsys in
> +    gnu|gnu-linux)
> +    LIBMODULES="-ldl"
> +    ;;
> +  esac
> +fi
> +
>  if test "${with_modules}" != "no"; then
>    case $opsys in
>      gnu|gnu-linux)

Works here, thanks.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#54378: Subject: 29.0 Build failed
  2022-03-16 10:22                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-03-16 14:33                     ` Robert Pluim
  0 siblings, 0 replies; 21+ messages in thread
From: Robert Pluim @ 2022-03-16 14:33 UTC (permalink / raw)
  To: Po Lu; +Cc: 54378, nuil

tags 54378 fixed
close 54378 29.1
quit

>>>>> On Wed, 16 Mar 2022 18:22:05 +0800, Po Lu <luangruo@yahoo.com> said:

    Po> Works here, thanks.

OK, closing.

Committed as 679b9cc9ff





^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-03-16 14:33 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-13 17:11 bug#54378: Subject: 29.0 Build failed nuil
2022-03-14  0:58 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-14  3:37   ` Eli Zaretskii
2022-03-14  5:03     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-14 12:50       ` Eli Zaretskii
2022-03-14 13:05         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-14 14:11           ` Eli Zaretskii
2022-03-15  0:32             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-15  0:56 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-15  6:21 ` bug#54378: Still build failed with USE='gtk -X gui' nuil
2022-03-15 16:58   ` Eli Zaretskii
2022-03-15 17:17     ` Robert Pluim
2022-03-15 18:59       ` Robert Pluim
2022-03-16  4:45         ` bug#54378: Subject: 29.0 Build failed Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-16  7:34           ` Robert Pluim
2022-03-16  7:53             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-16  9:00               ` Robert Pluim
2022-03-16 10:02                 ` Robert Pluim
2022-03-16 10:22                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-16 14:33                     ` Robert Pluim
2022-03-15 18:21 ` bug#54378: Build log of 'make V=1' nuil

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).