@@ -371,6 +371,7 @@ do_install_ptest () {
rm -rf ${D}${PTEST_PATH}/testsuite/wget
sort ${B}/.config > ${D}${PTEST_PATH}/.config
ln -s ${base_bindir}/busybox ${D}${PTEST_PATH}/busybox
+ sed -i -e 's|LIBC="<libc>"|LIBC=${TCLIBC}|g' ${D}${PTEST_PATH}/run-ptest
}
inherit update-alternatives
new file mode 100644
@@ -0,0 +1,28 @@
+From 7ee04187bd59acc922982fb49e76ba6c39dd8a91 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 11 May 2025 08:36:54 -0700
+Subject: [PATCH] busybox: Add awk gsub erroneous word start match test to know fails on musl
+
+Musl does not implement this BSD extension REG_STARTEND and the test states
+that it will fail without this extention, therefore guard it with SKIP_KNOWN_BUGS
+so it can be ignored.
+
+Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2025-July/091623.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ testsuite/awk.tests | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testsuite/awk.tests b/testsuite/awk.tests
+index be25f6696..c56e217e8 100755
+--- a/testsuite/awk.tests
++++ b/testsuite/awk.tests
+@@ -612,7 +612,7 @@ b
+ # Currently we use REG_STARTEND ("This flag is a BSD extension, not present in POSIX")
+ # to implement the code to handle this correctly, but if your libc has no REG_STARTEND,
+ # the alternative code mishandles this case.
+-testing 'awk gsub erroneous word start match' \
++test x"$LIBC" != x"musl" && testing 'awk gsub erroneous word start match' \
+ "awk 'BEGIN { a=\"abc\"; gsub(/\<b*/,\"\",a); print a }'" \
+ 'abc\n' \
+ '' ''
@@ -55,7 +55,9 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://0003-start-stop-false.patch \
file://0001-archival-disallow-path-traversals-CVE-2023-39810.patch \
file://0001-hwclock-Check-for-SYS_settimeofday-before-calling-sy.patch \
+ file://0001-busybox-Add-awk-gsub-erroneous-word-start-match-test.patch \
"
SRC_URI:append:libc-musl = " file://musl.cfg"
SRC_URI:append:x86-64 = " file://sha_accel.cfg"
+
SRC_URI[tarball.sha256sum] = "3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4"
@@ -4,6 +4,6 @@ current_path=$(readlink -f $0)
export bindir=$(dirname $current_path)
export PATH=$bindir/bin:$PATH
export SKIP_KNOWN_BUGS=1
-
+export LIBC="<libc>"
cd testsuite || exit 1
LANG=C.UTF-8 ./runtest -v | sed -r 's/^(SKIPPED|UNTESTED):/SKIP:/'
The test depends on BSD extension REG_STARTEND which is not in POSIX, glibc does implement this extention so it works on glibc systems but musl does not and it needs to be skipped and LIBC environment variable is used in this test as well to run it conditionally. Signed-off-by: Khem Raj <raj.khem@gmail.com> --- v2: Make the patch generic and use LIBC variable to decide on running the test meta/recipes-core/busybox/busybox.inc | 1 + ...gsub-erroneous-word-start-match-test.patch | 28 +++++++++++++++++++ meta/recipes-core/busybox/busybox_1.37.0.bb | 2 ++ meta/recipes-core/busybox/files/run-ptest | 2 +- 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-core/busybox/busybox/0001-busybox-Add-awk-gsub-erroneous-word-start-match-test.patch