From d42fa9122749979e4e4226f85eca517fb64eb780 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sun, 26 Apr 2026 12:22:15 +0200 Subject: [PATCH] package/util-linux: fix non-MMU build Buildroot commit 31af509b4f4fe52f67bd9109b8732a55b8f9cd2d bumped the package from 2.40.2 to 2.41.1. This bump includes upstream commit https://github.com/util-linux/util-linux/commit/a3f1255f1891ddbaf3bb6a32af28569c0e6f3b91 which was added to version 2.41 and includes the usage of pthread_atfork() causing build errors on non-MMU platforms: libuuid/src/gen_uuid.c: In function 'uuid_generate_time_generic': libuuid/src/gen_uuid.c:629:17: error: implicit declaration of function 'pthread_atfork'; did you mean 'pthread_join'? [-Wimplicit-function-declaration] 629 | pthread_atfork(NULL, NULL, reset_uuidd_cache); The oldest build error of this kind can be found on the 2025.11.x branch with version 2.41.1: https://autobuild.buildroot.net/results/87c/87c74435be14956fd45f730269eac102e70d56da/ The issue occurs because uClibc-ng is not very consistent with its pthread_atfork() definition: it doesn't provide a prototype for it on !MMU platforms (causing the build failure), but it does provide a stub implementation (causing the configure script to believe pthread_atfork is available). This issue was reported to upstream uClibc-ng at https://mailman.openadk.org/mailman3/hyperkitty/list/devel@uclibc-ng.org/thread/WEA7IQC3YAWTSFDHCLYRQJZTC4IUIY7J/. A backport of this patch to the LTS branches should be considered, but probably not 2025.02.x as it uses version 2.40.x. Fixes: https://autobuild.buildroot.org/results/a21e81e64eccc866b575a4f3b1376c50f2ffd837/ Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- package/util-linux/util-linux.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk index b4175024c4..807a9fb828 100644 --- a/package/util-linux/util-linux.mk +++ b/package/util-linux/util-linux.mk @@ -136,6 +136,11 @@ UTIL_LINUX_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -Dstatic_assert=_Static_assert" UTIL_LINUX_CONF_ENV += LIBS="$(UTIL_LINUX_LINK_LIBS)" UTIL_LINUX_MAKE_OPTS += LIBS="$(UTIL_LINUX_LINK_LIBS)" +# pthread support uses pthread_atfork, which is not available on nommu +ifeq ($(BR2_USE_MMU),) +UTIL_LINUX_CONF_ENV += ac_cv_lib_pthread_pthread_atfork=no +endif + ifeq ($(BR2_PACKAGE_LIBSELINUX),y) UTIL_LINUX_DEPENDENCIES += libselinux UTIL_LINUX_CONF_OPTS += --with-selinux