Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc
@ 2026-09-22 13:26 Yegor Yefremov via buildroot
  2026-09-22 13:26 ` [Buildroot] [PATCH 1/2] package/iproute2: add optional dependency on libtirpc Yegor Yefremov via buildroot
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-09-22 13:26 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel

From: Yegor Yefremov <yegorslists@googlemail.com>

iproute2's configure script enables HAVE_RPC as soon as pkg-config finds
libtirpc, without link-testing anything. misc/ss.c then calls
getrpcbynumber(), which since the libtirpc 1.3.7 bump (commit
3f3d6e43de9b4aac7df8545fd811171256f878d3) is only exported when libtirpc
is configured with --enable-rpcdb. On non-glibc toolchains there is no
libc fallback, so linking ss fails:

  ld: ss.o: in function `init_service_resolver':
  ss.c:(.text+0x2558): undefined reference to `getrpcbynumber'

This is the same problem lsof hit in commit e4d075975f, fixed the same
way here.

While looking at this, it turned out libtirpc was never listed in
IPROUTE2_DEPENDENCIES at all, even though configure probes for it, so
patch 1 adds that missing optional dependency first.

Tested with an aarch64 musl toolchain and BR2_PACKAGE_LIBTIRPC=y: before
the series ss fails to link, after it builds and ss correctly resolves
getrpcbynumber@TIRPC_0.3.0 from libtirpc.

Fixes:
https://autobuild.buildroot.org/results/390b7ed00da20c2349fe069ade4a65404834a484/

Yegor Yefremov (2):
  package/iproute2: add optional dependency on libtirpc
  package/iproute2: fix build failure due to missing
    BR2_PACKAGE_LIBTIRPC_RPCDB

 package/iproute2/Config.in   | 1 +
 package/iproute2/iproute2.mk | 4 ++++
 2 files changed, 5 insertions(+)

-- 
2.34.1

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

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

* [Buildroot] [PATCH 1/2] package/iproute2: add optional dependency on libtirpc
  2026-09-22 13:26 [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Yegor Yefremov via buildroot
@ 2026-09-22 13:26 ` Yegor Yefremov via buildroot
  2026-09-22 13:26 ` [Buildroot] [PATCH 2/2] package/iproute2: fix build failure due to missing BR2_PACKAGE_LIBTIRPC_RPCDB Yegor Yefremov via buildroot
  2026-10-10 17:24 ` [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 4+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-09-22 13:26 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel

From: Yegor Yefremov <yegorslists@googlemail.com>

iproute2's configure script probes for libtirpc through pkg-config and,
when found, enables HAVE_RPC and links ss against it. libtirpc was never
listed in IPROUTE2_DEPENDENCIES though, so whether the feature ends up
enabled depended on whether libtirpc happened to be built before
iproute2.

Add the missing optional dependency to make the build reproducible.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Assisted-by: Claude:claude-opus-5
---
 package/iproute2/iproute2.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/iproute2/iproute2.mk b/package/iproute2/iproute2.mk
index fe7a6fc304..344a6fa8e4 100644
--- a/package/iproute2/iproute2.mk
+++ b/package/iproute2/iproute2.mk
@@ -25,6 +25,10 @@ ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
 IPROUTE2_DEPENDENCIES += libselinux
 endif
 
+ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
+IPROUTE2_DEPENDENCIES += libtirpc
+endif
+
 ifeq ($(BR2_PACKAGE_IPTABLES)x$(BR2_STATIC_LIBS),yx)
 IPROUTE2_DEPENDENCIES += iptables
 else
-- 
2.34.1

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

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

* [Buildroot] [PATCH 2/2] package/iproute2: fix build failure due to missing BR2_PACKAGE_LIBTIRPC_RPCDB
  2026-09-22 13:26 [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Yegor Yefremov via buildroot
  2026-09-22 13:26 ` [Buildroot] [PATCH 1/2] package/iproute2: add optional dependency on libtirpc Yegor Yefremov via buildroot
@ 2026-09-22 13:26 ` Yegor Yefremov via buildroot
  2026-10-10 17:24 ` [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 4+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-09-22 13:26 UTC (permalink / raw)
  To: buildroot; +Cc: Petr Vorel

From: Yegor Yefremov <yegorslists@googlemail.com>

iproute2's configure script enables HAVE_RPC as soon as libtirpc is
found, and misc/ss.c then calls getrpcbynumber() from its RPC service
resolver. Since the bump of libtirpc to version 1.3.7 in Buildroot
commit 3f3d6e43de9b4aac7df8545fd811171256f878d3, which includes upstream
commit:
https://git.linux-nfs.org/?p=steved/libtirpc.git;a=commit;h=7cea8ad66aecc21e6caae330b5d31075af399193
that symbol is only exported when libtirpc is configured with
--enable-rpcdb. On non-glibc toolchains there is no libc fallback
either, so linking ss fails:

  ld: ss.o: in function `init_service_resolver':
  ss.c:(.text+0x2558): undefined reference to `getrpcbynumber'

Select BR2_PACKAGE_LIBTIRPC_RPCDB when libtirpc is enabled, like lsof
and other users of these functions already do.

Fixes:
https://autobuild.buildroot.org/results/390b7ed00da20c2349fe069ade4a65404834a484/

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Assisted-by: Claude:claude-opus-5
---
 package/iproute2/Config.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/iproute2/Config.in b/package/iproute2/Config.in
index ab9e515eca..106a0aaf2c 100644
--- a/package/iproute2/Config.in
+++ b/package/iproute2/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_IPROUTE2
 	bool "iproute2"
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # __kernel_{u,}long_t
+	select BR2_PACKAGE_LIBTIRPC_RPCDB if BR2_PACKAGE_LIBTIRPC
 	help
 	  Kernel routing and traffic control utilities. Provides things
 	  like ip and tc.
-- 
2.34.1

_______________________________________________
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 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc
  2026-09-22 13:26 [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Yegor Yefremov via buildroot
  2026-09-22 13:26 ` [Buildroot] [PATCH 1/2] package/iproute2: add optional dependency on libtirpc Yegor Yefremov via buildroot
  2026-09-22 13:26 ` [Buildroot] [PATCH 2/2] package/iproute2: fix build failure due to missing BR2_PACKAGE_LIBTIRPC_RPCDB Yegor Yefremov via buildroot
@ 2026-10-10 17:24 ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-10 17:24 UTC (permalink / raw)
  To: Yegor Yefremov; +Cc: buildroot, Petr Vorel

On Tue, Sep 22, 2026 at 03:26:46PM +0200, Yegor Yefremov via buildroot wrote:

> Yegor Yefremov (2):
>   package/iproute2: add optional dependency on libtirpc
>   package/iproute2: fix build failure due to missing
>     BR2_PACKAGE_LIBTIRPC_RPCDB

Series applied, thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
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:[~2026-10-10 17:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-22 13:26 [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Yegor Yefremov via buildroot
2026-09-22 13:26 ` [Buildroot] [PATCH 1/2] package/iproute2: add optional dependency on libtirpc Yegor Yefremov via buildroot
2026-09-22 13:26 ` [Buildroot] [PATCH 2/2] package/iproute2: fix build failure due to missing BR2_PACKAGE_LIBTIRPC_RPCDB Yegor Yefremov via buildroot
2026-10-10 17:24 ` [Buildroot] [PATCH 0/2] package/iproute2: fix musl/uclibc build failure with libtirpc Thomas Petazzoni via buildroot

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