From: Hemanth.KumarMD@windriver.com
To: openembedded-core@lists.openembedded.org
Cc: Sundeep.Kokkonda@windriver.com, Hemanth.KumarMD@windriver.com
Subject: [PATCH v4 8/8] busybox: fix printf ptest failure with glibc 2.43
Date: Thu, 12 Mar 2026 09:10:23 -0700 [thread overview]
Message-ID: <20260312161038.2578649-8-Hemanth.KumarMD@windriver.com> (raw)
In-Reply-To: <20260312161038.2578649-1-Hemanth.KumarMD@windriver.com>
From: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
Following ptests were failing on aarch64 after glibc 2.43 upgrade:
- printf_understands_%s_'"x'_"'y"_"'zTAIL"
- printf_handles_positive_numbers_for_%f
Backport fix from Debian bug #1128825.
References: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1128825
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
---
...printf-ptest-failure-with-glibc-2.43.patch | 114 ++++++++++++++++++
meta/recipes-core/busybox/busybox_1.37.0.bb | 1 +
2 files changed, 115 insertions(+)
create mode 100644 meta/recipes-core/busybox/busybox/0001-busybox-fix-printf-ptest-failure-with-glibc-2.43.patch
diff --git a/meta/recipes-core/busybox/busybox/0001-busybox-fix-printf-ptest-failure-with-glibc-2.43.patch b/meta/recipes-core/busybox/busybox/0001-busybox-fix-printf-ptest-failure-with-glibc-2.43.patch
new file mode 100644
index 0000000000..951812532b
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-busybox-fix-printf-ptest-failure-with-glibc-2.43.patch
@@ -0,0 +1,114 @@
+busybox: fix printf ptest failure with glibc 2.43
+
+Following ptests were failing on aarch64 after glibc 2.43 upgrade:
+ - printf_understands_%s_'"x'_"'y"_"'zTAIL"
+ - printf_handles_positive_numbers_for_%f
+
+Backport fix from Debian bug #1128825.
+
+Upstream-Status: Submitted [https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1128825;filename=busybox_glibc-2.43_thp.patch;msg=10]
+
+Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
+
+diff --git a/coreutils/printf.c b/coreutils/printf.c
+index 3cd48cfcc..a5d995ab5 100644
+--- a/coreutils/printf.c
++++ b/coreutils/printf.c
+@@ -191,6 +191,7 @@ static void print_direc(char *format, unsigned fmt_length,
+ double dv;
+ char saved;
+ char *have_prec, *have_width;
++ int saved_errno, ret;
+
+ saved = format[fmt_length];
+ format[fmt_length] = '\0';
+@@ -205,22 +206,32 @@ static void print_direc(char *format, unsigned fmt_length,
+
+ switch (format[fmt_length - 1]) {
+ case 'c':
+- printf(format, *argument);
++ saved_errno = errno;
++ ret = printf(format, *argument);
++ /* Restore errno if there was no error */
++ if (ret >= 0) {
++ errno = saved_errno;
++ }
+ break;
+ case 'd':
+ case 'i':
+ llv = my_xstrtoll(skip_whitespace(argument));
+ print_long:
++ saved_errno = errno;
+ if (!have_width) {
+ if (!have_prec)
+- printf(format, llv);
++ ret = printf(format, llv);
+ else
+- printf(format, precision, llv);
++ ret = printf(format, precision, llv);
+ } else {
+ if (!have_prec)
+- printf(format, field_width, llv);
++ ret = printf(format, field_width, llv);
+ else
+- printf(format, field_width, precision, llv);
++ ret = printf(format, field_width, precision, llv);
++ }
++ /* Restore errno if there was no error */
++ if (ret >= 0) {
++ errno = saved_errno;
+ }
+ break;
+ case 'o':
+@@ -238,16 +249,21 @@ static void print_direc(char *format, unsigned fmt_length,
+ } else {
+ /* Hope compiler will optimize it out by moving call
+ * instruction after the ifs... */
++ saved_errno = errno;
+ if (!have_width) {
+ if (!have_prec)
+- printf(format, argument, /*unused:*/ argument, argument);
++ ret = printf(format, argument, /*unused:*/ argument, argument);
+ else
+- printf(format, precision, argument, /*unused:*/ argument);
++ ret = printf(format, precision, argument, /*unused:*/ argument);
+ } else {
+ if (!have_prec)
+- printf(format, field_width, argument, /*unused:*/ argument);
++ ret = printf(format, field_width, argument, /*unused:*/ argument);
+ else
+- printf(format, field_width, precision, argument);
++ ret = printf(format, field_width, precision, argument);
++ }
++ /* Restore errno if there was no error */
++ if (ret >= 0) {
++ errno = saved_errno;
+ }
+ break;
+ }
+@@ -257,16 +273,21 @@ static void print_direc(char *format, unsigned fmt_length,
+ case 'g':
+ case 'G':
+ dv = my_xstrtod(argument);
++ saved_errno = errno;
+ if (!have_width) {
+ if (!have_prec)
+- printf(format, dv);
++ ret = printf(format, dv);
+ else
+- printf(format, precision, dv);
++ ret = printf(format, precision, dv);
+ } else {
+ if (!have_prec)
+- printf(format, field_width, dv);
++ ret = printf(format, field_width, dv);
+ else
+- printf(format, field_width, precision, dv);
++ ret = printf(format, field_width, precision, dv);
++ }
++ /* Restore errno if there was no error */
++ if (ret >= 0) {
++ errno = saved_errno;
+ }
+ break;
+ } /* switch */
diff --git a/meta/recipes-core/busybox/busybox_1.37.0.bb b/meta/recipes-core/busybox/busybox_1.37.0.bb
index d3851a27b9..2a38372339 100644
--- a/meta/recipes-core/busybox/busybox_1.37.0.bb
+++ b/meta/recipes-core/busybox/busybox_1.37.0.bb
@@ -59,6 +59,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://CVE-2025-46394-01.patch \
file://CVE-2025-46394-02.patch \
file://CVE-2025-60876.patch \
+ file://0001-busybox-fix-printf-ptest-failure-with-glibc-2.43.patch \
"
SRC_URI:append:libc-musl = " file://musl.cfg"
SRC_URI:append:x86-64 = " file://sha_accel.cfg"
--
2.49.0
next prev parent reply other threads:[~2026-03-12 16:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 16:10 [PATCH v4 1/8] glibc: Upgrade to 2.43 release Hemanth.KumarMD
2026-03-12 16:10 ` [PATCH v4 2/8] gettext: upgrade 0.26 -> 1.0 Hemanth.KumarMD
2026-03-12 16:10 ` [PATCH v4 3/8] gcc-runtime: avoid discarded-qualifiers build failure with glibc 2.43 Hemanth.KumarMD
2026-03-12 16:10 ` [PATCH v4 4/8] libxcrypt: " Hemanth.KumarMD
2026-03-12 16:10 ` [PATCH v4 5/8] barebox-tools: fix " Hemanth.KumarMD
2026-03-12 16:10 ` [PATCH v4 6/8] ltp: workaround openat2 " Hemanth.KumarMD
2026-03-12 16:10 ` [PATCH v4 7/8] glib-2.0: fix gdatetime ptest " Hemanth.KumarMD
2026-03-12 16:10 ` Hemanth.KumarMD [this message]
2026-03-12 18:52 ` [OE-core] [PATCH v4 8/8] busybox: fix printf " Randy MacLeod
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=20260312161038.2578649-8-Hemanth.KumarMD@windriver.com \
--to=hemanth.kumarmd@windriver.com \
--cc=Sundeep.Kokkonda@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/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