From patchwork Wed Sep 2 18:09:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Dubois-Briand X-Patchwork-Id: 97169 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D91B7C61DD6 for ; Wed, 2 Sep 2026 18:09:57 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.2105.1788372596499766785 for ; Wed, 02 Sep 2026 11:09:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=qjca6XVS; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: mathieu.dubois-briand@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id D45A24E414CE for ; Wed, 2 Sep 2026 18:09:54 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id AA3406053C for ; Wed, 2 Sep 2026 18:09:54 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 27BDA11C78B34; Wed, 2 Sep 2026 20:09:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1788372590; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=tOrwNCXrEphq+Ko9BpqniwFRfWoV11/iNFqGYWsTuCk=; b=qjca6XVSa6HBuD1J65mUkDX0Jv6Ou8AiVM7c7LHNfV+LOq/hXz32b08TqQxlj5d8YYZy9b IvKKWFNo1dWnrBt23fZbl4Jt03Aqag7kxw2T5GjU9Gekj8V1MYm2js44WAVLqQlTcvKPmT UfK4l2U5rHYeLlaqVSHa+cpg87M+83CKnab1qhzu7iw2J5wJ+S39FFHLsTDooQs4X+88Wm pN+SzeEmlymniBZ6kwVItqcCOtKIFfufdeg/U8l6LcAB76IT+4axiB6IEGByFficU+0EtG 7wtxlF4Iu77FdFH2LeZfqNg7JTciTBkbjj76a5birExlC4/lyyylK8kviom48w== From: Mathieu Dubois-Briand Date: Wed, 02 Sep 2026 20:09:42 +0200 Subject: [PATCH v2 1/4] libfaketime: Import recipe from meta-oe MIME-Version: 1.0 Message-Id: <20260902-mathieu-reproducible-faketime-v2-1-9496dff5bde3@bootlin.com> References: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> In-Reply-To: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> To: openembedded-core@lists.openembedded.org Cc: Thomas Petazzoni , Mathieu Dubois-Briand X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788372584; l=4234; i=mathieu.dubois-briand@bootlin.com; s=20241219; h=from:subject:message-id; bh=nAB9NQc/4a0d/sfZjB32bj75o2ghx5teWOc86MVb9Qs=; b=JOntaTzJxtwUj6amqCQy/Z3sEP5pUlUCJrRpPhfiGyUwWaJHPKf/CmsoMkL7gDCdhFNKajfLn X+gCHYE+FAvBRDU8YKcmpAwhkv1MTU0hKLy3+4mVSv9KeIw6nWxjgQH X-Developer-Key: i=mathieu.dubois-briand@bootlin.com; a=ed25519; pk=1PVTmzPXfKvDwcPUzG0aqdGoKZJA3b9s+3DqRlm0Lww= X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 02 Sep 2026 18:09:57 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244986 Signed-off-by: Mathieu Dubois-Briand --- meta/conf/distro/include/maintainers.inc | 1 + ...onst-qualifiers-to-fix-build-with-ISO-C23.patch | 34 ++++++++++++++++++++++ .../libfaketime/libfaketime_0.9.12.bb | 31 ++++++++++++++++++++ 3 files changed, 66 insertions(+) diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 2966cddc0569..fc57eb1395a1 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -342,6 +342,7 @@ RECIPE_MAINTAINER:pn-libevdev = "Unassigned " RECIPE_MAINTAINER:pn-libevent = "Unassigned " RECIPE_MAINTAINER:pn-libexif = "Unassigned " RECIPE_MAINTAINER:pn-libfakekey = "Unassigned " +RECIPE_MAINTAINER:pn-libfaketime = "Mathieu Dubois-Briand " RECIPE_MAINTAINER:pn-libffi = "Unassigned " RECIPE_MAINTAINER:pn-libfm = "Unassigned " RECIPE_MAINTAINER:pn-libfm-extra = "Unassigned " diff --git a/meta/recipes-support/libfaketime/libfaketime/0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch b/meta/recipes-support/libfaketime/libfaketime/0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch new file mode 100644 index 000000000000..1696e7146e83 --- /dev/null +++ b/meta/recipes-support/libfaketime/libfaketime/0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch @@ -0,0 +1,34 @@ +From dbe865dfdba0145d993d70b7fd4ec88b2f47554b Mon Sep 17 00:00:00 2001 +From: Tomas Korbar +Date: Mon, 15 Dec 2025 11:03:21 +0100 +Subject: [PATCH] Add const qualifiers to fix build with ISO C23 + +Fix https://github.com/wolfcw/libfaketime/issues/524 + +Upstream-Status: Backport [https://github.com/wolfcw/libfaketime/pull/525] +--- + src/libfaketime.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libfaketime.c b/src/libfaketime.c +index ef1dca9..02839c8 100644 +--- a/src/libfaketime.c ++++ b/src/libfaketime.c +@@ -2666,7 +2666,7 @@ int timespec_get(struct timespec *ts, int base) + static void parse_ft_string(const char *user_faked_time) + { + struct tm user_faked_time_tm; +- char * tmp_time_fmt; ++ const char * tmp_time_fmt; + char * nstime_str; + + if (!strncmp(user_faked_time, user_faked_time_saved, BUFFERLEN)) +@@ -3338,7 +3338,7 @@ static void prepare_config_contents(char *contents) + bool str_array_contains(const char *haystack, const char *needle) + { + size_t needle_len = strlen(needle); +- char *pos = strstr(haystack, needle); ++ const char *pos = strstr(haystack, needle); + while (pos) { + if (pos == haystack || *(pos - 1) == ',') { + char nextc = *(pos + needle_len); diff --git a/meta/recipes-support/libfaketime/libfaketime_0.9.12.bb b/meta/recipes-support/libfaketime/libfaketime_0.9.12.bb new file mode 100644 index 000000000000..89e4eebeaa46 --- /dev/null +++ b/meta/recipes-support/libfaketime/libfaketime_0.9.12.bb @@ -0,0 +1,31 @@ +SUMMARY = "A library for faking the system time in user-space programs" +SECTION = "libs" +HOMEPAGE = "https://github.com/wolfcw/libfaketime" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRCREV = "3ccdd344aadf1e317156fa5fb7c881f2c4404778" + +SRC_URI = "git://github.com/wolfcw/libfaketime.git;branch=master;tag=v${PV};protocol=https \ + file://0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch \ +" + +CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE" + +do_configure[noexec] = "1" + +do_compile () { + oe_runmake +} + +do_install () { + install -d ${D}${libdir}/faketime + oe_libinstall -C src libfaketime ${D}${libdir}/faketime + install -d ${D}${bindir} + install -m 0755 src/faketime ${D}${bindir} +} + +FILES:${PN} = "${bindir}/faketime ${libdir}/faketime/lib*${SOLIBS}" +FILES:${PN}-dev += "${libdir}/faketime/lib*${SOLIBSDEV}" + +BBCLASSEXTEND = "native" From patchwork Wed Sep 2 18:09:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Dubois-Briand X-Patchwork-Id: 97172 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0332C624D5 for ; Wed, 2 Sep 2026 18:10:07 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2064.1788372597330317958 for ; Wed, 02 Sep 2026 11:09:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=ezpV1hJz; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: mathieu.dubois-briand@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 656F24E414D0 for ; Wed, 2 Sep 2026 18:09:55 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 3A0356053C for ; Wed, 2 Sep 2026 18:09:55 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 908A811C78E0A; Wed, 2 Sep 2026 20:09:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1788372594; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=+7GQ1Q+VncgOjL9QVulAe+UMQl/OfmtnOGglfgyk2D8=; b=ezpV1hJzFgEVrMayJtuEgBpDKkfPjGGOq7P585bdupPUyrizqIxPUsSGutM7Vgbt5hUJzs t2VqsnMdUT1ng4CRYfb+WfFmbKrg2CHCFHES/wwy06CSNxq7JFO/vYihwLI3dSe4YvwARA ydreatttZCfTGmTJR6+Sl+taXJXQl0zoZmkggwZtWGQWB/tOq7U4DsULBooOklY3Pbd4q1 QqkVRQIGZyssHvRwiqQ8/pTlz9m48pTCOtKdKY4wHfkCCa/hE0Bechb6KqAfup3icX+bWP 5UpUCJidhwVVydq4zPM8D+u6sirO21xxmYAPUgudFv5ErLa1tuIo1bn1EmzIYw== From: Mathieu Dubois-Briand Date: Wed, 02 Sep 2026 20:09:43 +0200 Subject: [PATCH v2 2/4] libfaketime: update 0.9.12 -> 0.9.13 MIME-Version: 1.0 Message-Id: <20260902-mathieu-reproducible-faketime-v2-2-9496dff5bde3@bootlin.com> References: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> In-Reply-To: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> To: openembedded-core@lists.openembedded.org Cc: Thomas Petazzoni , Mathieu Dubois-Briand X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788372584; l=4966; i=mathieu.dubois-briand@bootlin.com; s=20241219; h=from:subject:message-id; bh=WJy3DCQ0TJbpxFy8Oagb86+tecwb8sgztfqryUtWuJw=; b=UHKJJi9t9ZaILRuwdx1E3bi+AljOVzH5FOKTotwfol/wyGdXk+wIB3cvfI/QlpllUXVYmJ1Yd 4u6IcW9sTqyBci6aIAlNLShH/qiPrQHGUd6eWs19HyEZeaHLnNKyLrp X-Developer-Key: i=mathieu.dubois-briand@bootlin.com; a=ed25519; pk=1PVTmzPXfKvDwcPUzG0aqdGoKZJA3b9s+3DqRlm0Lww= X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 02 Sep 2026 18:10:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244987 Changelog: - Improved macOS arm64/arm64e build and runtime compatibility, including shared-memory lifecycle, clock, wait, configuration, and failure-path regression coverage. - Hardened initialization and cleanup across Linux and macOS, including shared-memory validation, descriptor ownership, loader re-entry, and bounded process/loader tests. - Fixed clock-domain handling for monotonic and realtime waits, timerfd, semaphore, pthread, futex, poll, select, and pselect contracts. - Added glibc 32-bit time64 ABI coverage and improved selection of the appropriate time64 preload library. - Improved configuration and numeric parsing validation, including overflow, embedded NUL, CRLF, comment, and malformed-input cases. - Prevented timestamp-save write failures from wrapping offsets or hanging on short, zero-byte, or interrupted writes. - Fixed deterministic FAKE_RANDOM seed handling for the complete unsigned 64-bit seed range and made seeded output independent of loader startup activity. - Expanded filesystem timestamp and ABI probes, including fstatat and symlink metadata behavior, while documenting implementation-dependent contracts. - Added bounded sanitizer, Valgrind, low-resource, loader, concurrency, and optional runtime compatibility checks. - Expanded Linux CI coverage to Debian, Fedora, Rocky Linux, CentOS Stream, openSUSE Tumbleweed, Arch Linux, Alpine/musl, ARM64, and 32-bit/time64 variants. - Added CI execution of the documented test snippets and improved failure log collection and release-hygiene checks. Signed-off-by: Mathieu Dubois-Briand --- ...onst-qualifiers-to-fix-build-with-ISO-C23.patch | 34 ---------------------- ...libfaketime_0.9.12.bb => libfaketime_0.9.13.bb} | 9 +++--- 2 files changed, 5 insertions(+), 38 deletions(-) diff --git a/meta/recipes-support/libfaketime/libfaketime/0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch b/meta/recipes-support/libfaketime/libfaketime/0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch deleted file mode 100644 index 1696e7146e83..000000000000 --- a/meta/recipes-support/libfaketime/libfaketime/0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch +++ /dev/null @@ -1,34 +0,0 @@ -From dbe865dfdba0145d993d70b7fd4ec88b2f47554b Mon Sep 17 00:00:00 2001 -From: Tomas Korbar -Date: Mon, 15 Dec 2025 11:03:21 +0100 -Subject: [PATCH] Add const qualifiers to fix build with ISO C23 - -Fix https://github.com/wolfcw/libfaketime/issues/524 - -Upstream-Status: Backport [https://github.com/wolfcw/libfaketime/pull/525] ---- - src/libfaketime.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libfaketime.c b/src/libfaketime.c -index ef1dca9..02839c8 100644 ---- a/src/libfaketime.c -+++ b/src/libfaketime.c -@@ -2666,7 +2666,7 @@ int timespec_get(struct timespec *ts, int base) - static void parse_ft_string(const char *user_faked_time) - { - struct tm user_faked_time_tm; -- char * tmp_time_fmt; -+ const char * tmp_time_fmt; - char * nstime_str; - - if (!strncmp(user_faked_time, user_faked_time_saved, BUFFERLEN)) -@@ -3338,7 +3338,7 @@ static void prepare_config_contents(char *contents) - bool str_array_contains(const char *haystack, const char *needle) - { - size_t needle_len = strlen(needle); -- char *pos = strstr(haystack, needle); -+ const char *pos = strstr(haystack, needle); - while (pos) { - if (pos == haystack || *(pos - 1) == ',') { - char nextc = *(pos + needle_len); diff --git a/meta/recipes-support/libfaketime/libfaketime_0.9.12.bb b/meta/recipes-support/libfaketime/libfaketime_0.9.13.bb similarity index 81% rename from meta/recipes-support/libfaketime/libfaketime_0.9.12.bb rename to meta/recipes-support/libfaketime/libfaketime_0.9.13.bb index 89e4eebeaa46..e10d5aa457b4 100644 --- a/meta/recipes-support/libfaketime/libfaketime_0.9.12.bb +++ b/meta/recipes-support/libfaketime/libfaketime_0.9.13.bb @@ -4,11 +4,9 @@ HOMEPAGE = "https://github.com/wolfcw/libfaketime" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "3ccdd344aadf1e317156fa5fb7c881f2c4404778" +SRCREV = "86b37fde2fed7336ea2d0c17928e3015a55d9b4a" -SRC_URI = "git://github.com/wolfcw/libfaketime.git;branch=master;tag=v${PV};protocol=https \ - file://0001-Add-const-qualifiers-to-fix-build-with-ISO-C23.patch \ -" +SRC_URI = "git://github.com/wolfcw/libfaketime.git;branch=master;tag=v${PV};protocol=https" CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE" @@ -29,3 +27,6 @@ FILES:${PN} = "${bindir}/faketime ${libdir}/faketime/lib*${SOLIBS}" FILES:${PN}-dev += "${libdir}/faketime/lib*${SOLIBSDEV}" BBCLASSEXTEND = "native" + +# Building with -O2 results in clobbered variable error on 0.9.13 +FULL_OPTIMIZATION = "-O1" From patchwork Wed Sep 2 18:09:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Dubois-Briand X-Patchwork-Id: 97171 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BADC7C61DD6 for ; Wed, 2 Sep 2026 18:10:07 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2065.1788372597626021914 for ; Wed, 02 Sep 2026 11:09:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=ydfKnXWb; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: mathieu.dubois-briand@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id E4F364E414D1 for ; Wed, 2 Sep 2026 18:09:55 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id B30D76053C for ; Wed, 2 Sep 2026 18:09:55 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 1D2DF11C7932C; Wed, 2 Sep 2026 20:09:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1788372595; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=hrV8g7l1G1aljW6UO1y5GYRiVvRWsUHYJyassMdFXYo=; b=ydfKnXWbXGFpGiSTfbFroOq4c1OryYb4sRp+ThHDcowFF+0tSLJm0MQZWmKi95N2zO5Ql7 ZI76hRRnksijBdT75B/WDlAgJsGBT8S4xcYfr8TEy+luWvK+mvG/ZN1+pvuMoE1FmymDrJ y7rBXj771DmJqDFQwFvmVxLe4t+xXMtHqWusbWaTiXaHooQogTksjQ8vD4Nj6HKuP91Oh1 hfPxafIWOqls9Wilkf25vk58p+M/hM/CXLYQQiQUxtAiE6pp6dBQSfukwU9mUYRgFvta7o JqITptJ/V2fqfBt88fu3mBLvBGKjEy9i6f+wBLu8YE0LQz1FDPqTesEvlqxR2Q== From: Mathieu Dubois-Briand Date: Wed, 02 Sep 2026 20:09:44 +0200 Subject: [PATCH v2 3/4] libfaketime: Fix builds on 32 bits platforms MIME-Version: 1.0 Message-Id: <20260902-mathieu-reproducible-faketime-v2-3-9496dff5bde3@bootlin.com> References: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> In-Reply-To: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> To: openembedded-core@lists.openembedded.org Cc: Thomas Petazzoni , Mathieu Dubois-Briand X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788372584; l=3134; i=mathieu.dubois-briand@bootlin.com; s=20241219; h=from:subject:message-id; bh=RvE4a07oX5l1K/wFl21ejv2TGwDPL4v9MbZ5kdUGcj8=; b=Do+vRU6ZUEWiOxBnRCB9MkOXtVB1yeYzfMBHOtCyEO4Geb8m+0pER0DOlxuBFFJj6wPTalDPO 6BX2jrMNPqBBafmNy5sKdFdUkfh+QWIzHjQETzNOD+LNYOr4TmCg5oQ X-Developer-Key: i=mathieu.dubois-briand@bootlin.com; a=ed25519; pk=1PVTmzPXfKvDwcPUzG0aqdGoKZJA3b9s+3DqRlm0Lww= X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 02 Sep 2026 18:10:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244988 Fix build when using -D_TIME_BITS=64 CFLAGS on 32 bits platforms, avoiding function redefinitions. Signed-off-by: Mathieu Dubois-Briand --- ....c-do-not-declare-__time64-when-D_TIME_BI.patch | 46 ++++++++++++++++++++++ .../libfaketime/libfaketime_0.9.13.bb | 4 +- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/meta/recipes-support/libfaketime/libfaketime/0001-libfaketime.c-do-not-declare-__time64-when-D_TIME_BI.patch b/meta/recipes-support/libfaketime/libfaketime/0001-libfaketime.c-do-not-declare-__time64-when-D_TIME_BI.patch new file mode 100644 index 000000000000..580e46b40ee5 --- /dev/null +++ b/meta/recipes-support/libfaketime/libfaketime/0001-libfaketime.c-do-not-declare-__time64-when-D_TIME_BI.patch @@ -0,0 +1,46 @@ +From 6288d9367a17afef395ca898844ccbf4c0b58ef7 Mon Sep 17 00:00:00 2001 +From: Mathieu Dubois-Briand +Date: Wed, 2 Sep 2026 13:07:05 +0200 +Subject: [PATCH] libfaketime.c: do not declare __time64 when -D_TIME_BITS=64 + is used + +When _TIME_BITS macro is set to 64, __clock_gettime64(), +__gettimeofday64() and __time64 will be defined in the glibc. There is +no need to define these here. + +Upstream-Status: Submitted [https://github.com/wolfcw/libfaketime/pull/553] +Signed-off-by: Mathieu Dubois-Briand +--- + src/libfaketime.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/libfaketime.c b/src/libfaketime.c +index e6748832fecb..7f3c65bf2bc9 100644 +--- a/src/libfaketime.c ++++ b/src/libfaketime.c +@@ -1802,11 +1802,13 @@ int __lxstat (int ver, const char *path, struct stat *buf) + #endif + + #ifdef __GLIBC__ ++#if (_TIME_BITS != 64) + int stat64 (const char *path, struct stat64 *buf) + { + STAT64_HANDLER(stat64, buf, path, buf); + } + #endif ++#endif + + /* Contributed by Philipp Hachtmann in version 0.6 */ + #ifndef __ANDROID__ +@@ -3375,7 +3377,7 @@ int clock_gettime(clockid_t clk_id, struct timespec *tp) + + #ifdef __GLIBC__ + /* This is used by glibc 32-bit architectures only. */ +-#ifndef FAKETIME_TIME64_BUILD ++#if (_TIME_BITS != 64) + int __clock_gettime64(clockid_t clk_id, struct __timespec64 *tp64) + { + struct timespec tp; +-- +2.47.3 + diff --git a/meta/recipes-support/libfaketime/libfaketime_0.9.13.bb b/meta/recipes-support/libfaketime/libfaketime_0.9.13.bb index e10d5aa457b4..640f0224b446 100644 --- a/meta/recipes-support/libfaketime/libfaketime_0.9.13.bb +++ b/meta/recipes-support/libfaketime/libfaketime_0.9.13.bb @@ -6,7 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRCREV = "86b37fde2fed7336ea2d0c17928e3015a55d9b4a" -SRC_URI = "git://github.com/wolfcw/libfaketime.git;branch=master;tag=v${PV};protocol=https" +SRC_URI = "git://github.com/wolfcw/libfaketime.git;branch=master;tag=v${PV};protocol=https \ + file://0001-libfaketime.c-do-not-declare-__time64-when-D_TIME_BI.patch \ +" CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE" From patchwork Wed Sep 2 18:09:45 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Dubois-Briand X-Patchwork-Id: 97170 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C9546C624D3 for ; Wed, 2 Sep 2026 18:10:07 +0000 (UTC) Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.2067.1788372598225009216 for ; Wed, 02 Sep 2026 11:09:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bootlin.com header.s=dkim header.b=Mapqn+19; spf=pass (domain: bootlin.com, ip: 185.246.85.4, mailfrom: mathieu.dubois-briand@bootlin.com) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 85B8C4E414D2 for ; Wed, 2 Sep 2026 18:09:56 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 5A2006053C for ; Wed, 2 Sep 2026 18:09:56 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id AB5C211C795A7; Wed, 2 Sep 2026 20:09:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1788372596; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=2TpUnUgQxi+auKMeRFjBlMMHu7ob2NDptH6NVykENKY=; b=Mapqn+19RSxktMyi8Ff1b5rTKlFRxLEVKIqiG5svn/U8mO1q+P8pRaiKMJRTUrbnIDgaGP PMJRTjrBQGnZZe1BJTzG5ecjjI0OuPA7b+nmtKXdQSVviGBezY51YILnqcr44Ntmu0ZijW /Imf/KNzSZkdd1oyot9r/d6DLtwpzICm2KBB1C0tIxP8o84To0WZcKfk+pgRAXR5wIkAfi DTeb0uAWUyPlhwgG4HP7JlFILCaJSyx5K6wk7IvYsZZP07V+4KzjFbKaY/DUaPA2MaY7vm 8YawRAH2J1BeHu6YdPCoeiLDagPJPVCzkSBuSbuDV/YU+ds//ptOkAR4DLRuEg== From: Mathieu Dubois-Briand Date: Wed, 02 Sep 2026 20:09:45 +0200 Subject: [PATCH v2 4/4] oeqa/selftest/reproducible: Use a fake time during build MIME-Version: 1.0 Message-Id: <20260902-mathieu-reproducible-faketime-v2-4-9496dff5bde3@bootlin.com> References: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> In-Reply-To: <20260902-mathieu-reproducible-faketime-v2-0-9496dff5bde3@bootlin.com> To: openembedded-core@lists.openembedded.org Cc: Thomas Petazzoni , Mathieu Dubois-Briand X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788372584; l=4009; i=mathieu.dubois-briand@bootlin.com; s=20241219; h=from:subject:message-id; bh=IRLlHcc0Hu8o3C5tnduwRSmvxs+857QemD+PSwHbLbU=; b=o68C3GRnE/KOmBpoxOSQ9L2URizKWKbFCzaxvYkJAWy5wolYaPfXApk0PE+YSj2DgVK2dYay1 uk5YG1AFXCJD+5sVE8nEi06IN4pCDwPrmuIQKaxOQbkWragg28V1hbE X-Developer-Key: i=mathieu.dubois-briand@bootlin.com; a=ed25519; pk=1PVTmzPXfKvDwcPUzG0aqdGoKZJA3b9s+3DqRlm0Lww= X-Last-TLS-Session-Version: TLSv1.3 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 02 Sep 2026 18:10:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244989 Use a fake time during the second build, ensuring the build time is fay different from the first build. Fixes [YOCTO #13509] Signed-off-by: Mathieu Dubois-Briand --- meta/lib/oeqa/selftest/cases/reproducible.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index 7adeaacd4f53..1a71b9832e34 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py @@ -229,7 +229,7 @@ class ReproducibleTests(OESelftestTestCase): bb.utils.mkdirhier(os.path.dirname(dest)) shutil.copyfile(source, dest) - def do_test_build(self, name, use_sstate): + def do_test_build(self, name, use_sstate, use_faketime, libfaketime_sysroot): capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes] tmpdir = os.path.join(self.topdir, name, 'tmp') @@ -295,7 +295,17 @@ class ReproducibleTests(OESelftestTestCase): d = get_bb_vars(capture_vars) try: # targets used to be called images - bitbake("--continue "+' '.join(getattr(self, 'images', self.targets))) + targets = ' '.join(getattr(self, 'images', self.targets)) + if use_faketime: + # 397 days: one year and 31/32 days: this will always be a + # different year, month and day of week. + # 2 hours, 2 minutes and 2 seconds: different values, even if we + # have some DST or leap second involved. + timespecs = "+397days +2hours +2minutes +2seconds" + runCmd(f"faketime '{timespecs}' bitbake --continue {targets}", + native_sysroot=libfaketime_sysroot) + else: + bitbake(f"--continue {targets}") except AssertionError as e: bitbake_failure_count += 1 self.logger.error("Bitbake failed! but keep going... Log:") @@ -320,9 +330,10 @@ class ReproducibleTests(OESelftestTestCase): # Build native utilities self.write_config('') - bitbake("diffoscope-native diffutils-native -c addto_recipe_sysroot") + bitbake("diffoscope-native diffutils-native libfaketime-native -c addto_recipe_sysroot") diffutils_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffutils-native") diffoscope_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffoscope-native") + libfaketime_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "libfaketime-native") if self.save_results: os.makedirs(self.save_results, exist_ok=True) @@ -338,10 +349,13 @@ class ReproducibleTests(OESelftestTestCase): fails = [] vars_list = [None, None] - for i, (name, use_sstate) in enumerate( - (('reproducibleA', self.build_from_sstate), - ('reproducibleB-extended', False))): - (variables, bitbake_failure_count) = self.do_test_build(name, use_sstate) + for i, (name, use_sstate, use_faketime) in enumerate( + (('reproducibleA', self.build_from_sstate, False), + ('reproducibleB-extended', False, True))): + (variables, bitbake_failure_count) = self.do_test_build(name, + use_sstate, + use_faketime, + libfaketime_sysroot) if bitbake_failure_count > 0: self.logger.error('%s build failed. Trying to compute built packages differences but the test will fail.' % name) fails.append("Bitbake %s failure" % name)