From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: "Jan Čermák" <sairon@sairon.cz>
Cc: buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/1] package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enabled
Date: Thu, 12 Sep 2024 19:33:16 +0200 [thread overview]
Message-ID: <ZuMl3F2Wga2vO-mH@landeda> (raw)
In-Reply-To: <20240912162232.1588976-1-sairon@sairon.cz>
Jan, All,
On 2024-09-12 18:22 +0200, Jan Čermák spake thusly:
> After update to v4.0.4, props-ng build fails on linker error if
> BR2_PACKAGE_SYSTEMD is enabled:
>
> /buildroot/output/host/lib/gcc/x86_64-buildroot-linux-gnu/13.3.0/../../../../x86_64-buildroot-linux-gnu/bin/ld: src/w.o: undefined reference to symbol 'sd_session_get_uid@@LIBSYSTEMD_209'
> /buildroot/output/host/lib/gcc/x86_64-buildroot-linux-gnu/13.3.0/../../../../x86_64-buildroot-linux-gnu/bin/ld: /buildroot/output/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib64/libsystemd.so.0: error adding symbols: DSO missing from command line
> collect2: error: ld returned 1 exit status
>
> Add lsystemd to configure arguments if systemd is enabled to fix this.
>
> Signed-off-by: Jan Čermák <sairon@sairon.cz>
> ---
> package/procps-ng/procps-ng.mk | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/package/procps-ng/procps-ng.mk b/package/procps-ng/procps-ng.mk
> index 2f28e3571e..cff4e21c5e 100644
> --- a/package/procps-ng/procps-ng.mk
> +++ b/package/procps-ng/procps-ng.mk
> @@ -12,11 +12,13 @@ PROCPS_NG_LICENSE_FILES = COPYING COPYING.LIB
> PROCPS_NG_CPE_ID_VALID = YES
> PROCPS_NG_INSTALL_STAGING = YES
> PROCPS_NG_DEPENDENCIES = ncurses host-pkgconf $(TARGET_NLS_DEPENDENCIES)
> -PROCPS_NG_CONF_OPTS = LIBS=$(TARGET_NLS_LIBS)
> +PROCPS_NG_CONF_OPTS = LIBS="$(PROCPS_NG_LIBS)"
> +PROCPS_NG_LIBS=$(TARGET_NLS_LIBS)
>
> ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> PROCPS_NG_DEPENDENCIES += systemd
> PROCPS_NG_CONF_OPTS += --with-systemd
> +PROCPS_NG_LIBS += -lsystemd
This is very weird that htis s needed, and points to an issue in the
package itself. Indeed, the code to detect systemd is as follows:
configur.ac:
285 AC_ARG_WITH([systemd],
286 [AS_HELP_STRING([--with-systemd], [enable systemd support])],
287 [], [with_systemd=no]
288 )
289 AS_IF([test "x$with_systemd" != "xno"], [
290 PKG_CHECK_MODULES([SYSTEMD], [libsystemd],,
291 [PKG_CHECK_MODULES([SYSTEMD], [libsystemd-login])]
292 )
293 AC_DEFINE(WITH_SYSTEMD, 1, [enable systemd support])
294
295 # The functions needed to replace utmp with logind are only available
296 # with systemd v254 or later.
297 old_LIBS="$LIBS"
298 LIBS="$LIBS $SYSTEMD_LIBS"
299 AC_CHECK_FUNCS([sd_session_get_leader])
300 LIBS="$old_LIBS"
301 ])
302 AM_CONDITIONAL([WITH_SYSTEMD], [test x$with_systemd != xno])
Co it is searching libsystemd with pkg-config, and so this is should
set SYSTEMD_LIBS to -lsystemd and we should not have to do it ourselves.
And indeed, libsystemd.pc contains:
Libs: -L${libdir} -lsystemd
So, the real issue is that the Makefile.am of procps-ng forgets to
declare that src/w (a program to be built) should be linked with
libsystemd:
Makefile.am:
143 if BUILD_W
144 if CYGWIN
145 usrbin_exec_PROGRAMS += src/w
146 else
147 bin_PROGRAMS += src/w
148 endif
149
150 dist_man_MANS += man/w.1
151 src_w_SOURCES = src/w.c local/fileutils.c
152 else
153 EXTRA_DIST += man/w.1
154 endif
In other words, there is an issue that must be fixed in the package, not
in Buildroot.
Regards,
Yann E. MORIN.
> else
> PROCPS_NG_CONF_OPTS += --without-systemd
> endif
> --
> 2.46.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2024-09-12 17:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-12 16:22 [Buildroot] [PATCH 1/1] package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enabled Jan Čermák
2024-09-12 17:33 ` Yann E. MORIN [this message]
2024-09-12 17:44 ` Yann E. MORIN
2024-09-14 22:16 ` Jan Čermák
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZuMl3F2Wga2vO-mH@landeda \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=sairon@sairon.cz \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox