Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enabled
@ 2024-09-12 16:22 Jan Čermák
  2024-09-12 17:33 ` Yann E. MORIN
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Čermák @ 2024-09-12 16:22 UTC (permalink / raw)
  To: buildroot; +Cc: Jan Čermák

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
 else
 PROCPS_NG_CONF_OPTS += --without-systemd
 endif
-- 
2.46.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enabled
  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
  2024-09-12 17:44   ` Yann E. MORIN
  0 siblings, 1 reply; 4+ messages in thread
From: Yann E. MORIN @ 2024-09-12 17:33 UTC (permalink / raw)
  To: Jan Čermák; +Cc: buildroot

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

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

* Re: [Buildroot] [PATCH 1/1] package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enabled
  2024-09-12 17:33 ` Yann E. MORIN
@ 2024-09-12 17:44   ` Yann E. MORIN
  2024-09-14 22:16     ` Jan Čermák
  0 siblings, 1 reply; 4+ messages in thread
From: Yann E. MORIN @ 2024-09-12 17:44 UTC (permalink / raw)
  To: Jan Čermák; +Cc: buildroot

Jan, All,

On 2024-09-12 19:33 +0200, Yann E. MORIN spake thusly:
> 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
[--SNIP--]
> >  ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> >  PROCPS_NG_DEPENDENCIES += systemd
> >  PROCPS_NG_CONF_OPTS += --with-systemd
> > +PROCPS_NG_LIBS += -lsystemd
[--SNIP--]
> In other words, there is an issue that must be fixed in the package, not
> in Buildroot.

And it seems upstream has already noticed, and we have a patch to
backport:

    https://gitlab.com/procps-ng/procps/-/commit/ca004d4657d5e8b468a4552ede429be53193a3a9

(incidentally, it's the first commit right after the 4.0.4 release... At
least, there will be no conflict! :-] )

Regards,
Yann E. MORIN.

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

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

* Re: [Buildroot] [PATCH 1/1] package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enabled
  2024-09-12 17:44   ` Yann E. MORIN
@ 2024-09-14 22:16     ` Jan Čermák
  0 siblings, 0 replies; 4+ messages in thread
From: Jan Čermák @ 2024-09-14 22:16 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: buildroot

Hi Yann, everyone,

thanks for looking into that and sorry for my late reply. I was about
to send a backport of the patch now but I see Hugo Cornelis was faster
with the correct fix and you already committed it to master a few
hours ago, so thank you both!

Cheers,
Jan



On Thu, 12 Sept 2024 at 19:44, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Jan, All,
>
> On 2024-09-12 19:33 +0200, Yann E. MORIN spake thusly:
> > 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
> [--SNIP--]
> > >  ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> > >  PROCPS_NG_DEPENDENCIES += systemd
> > >  PROCPS_NG_CONF_OPTS += --with-systemd
> > > +PROCPS_NG_LIBS += -lsystemd
> [--SNIP--]
> > In other words, there is an issue that must be fixed in the package, not
> > in Buildroot.
>
> And it seems upstream has already noticed, and we have a patch to
> backport:
>
>     https://gitlab.com/procps-ng/procps/-/commit/ca004d4657d5e8b468a4552ede429be53193a3a9
>
> (incidentally, it's the first commit right after the 4.0.4 release... At
> least, there will be no conflict! :-] )
>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  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

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

end of thread, other threads:[~2024-09-14 22:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2024-09-12 17:44   ` Yann E. MORIN
2024-09-14 22:16     ` Jan Čermák

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox