summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrajmohan r <semc.2042@gmail.com>2025-05-12 22:37:43 +0530
committerSteve Sakoman <steve@sakoman.com>2025-05-19 08:32:49 -0700
commit2a501e4f1b8120c73f581715430bae263d1c0b60 (patch)
tree2188d25a17cd1c5134ab68661f32a7309823c7ac
parent848da2f632f22fa4934d74838c731ed9352a1816 (diff)
downloadpoky-2a501e4f1b8120c73f581715430bae263d1c0b60.tar.gz
glibc-y2038-tests: remove glibc-y2038-tests_2.39.bb recipe
This recipe takes longer time >20min when bitbake for package write stage. When cross-verified for longer time duration, found that do_check() stage taking 20min while other stages completes before 6min. This recipe gives only below two test binaries in the packages to test (ptest: glibc-y2038-tests): io/ftwtest io/ftwtest-time64 The above test binaries are already included for testing in recipe glibc-testsuite_2.39.bb. It is by now well established that glibc itself works as it should, that all affected 32 bit targets are configured to use 64 bit time_t, and that any lingering y2038 issues are in components other than the c library, and usually come from C programming mistakes (e.g. storing timestamps in long). So this recipe seems to be redundant and can be removed. Review comments for fixing above longer time duration ended up in removing this recipe as a proposal is below https://lists.openembedded.org/g/openembedded-core/topic/112188476#msg214636 Removed lines having reference to glibc-y2038-tests in the files. For master branch requested for integration and below is the link https://lists.openembedded.org/g/openembedded-core/message/215655 (From OE-Core rev: b214cc84a922f7a3fb7ebbc501189ce25e8bd2bd) Signed-off-by: rajmohan r <semc.2042@gmail.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/conf/distro/include/maintainers.inc1
-rw-r--r--meta/conf/distro/include/ptest-packagelists.inc2
-rw-r--r--meta/conf/distro/include/time64.inc2
-rw-r--r--meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb119
-rwxr-xr-xmeta/recipes-core/glibc/glibc/run-ptest37
5 files changed, 0 insertions, 161 deletions
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index baaf971a9a..9548fcd258 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -210,7 +210,6 @@ RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
210RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>" 210RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
211RECIPE_MAINTAINER:pn-glibc-mtrace = "Khem Raj <raj.khem@gmail.com>" 211RECIPE_MAINTAINER:pn-glibc-mtrace = "Khem Raj <raj.khem@gmail.com>"
212RECIPE_MAINTAINER:pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>" 212RECIPE_MAINTAINER:pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>"
213RECIPE_MAINTAINER:pn-glibc-y2038-tests = "Lukasz Majewski <lukma@denx.de>"
214RECIPE_MAINTAINER:pn-glibc-testsuite = "Khem Raj <raj.khem@gmail.com>" 213RECIPE_MAINTAINER:pn-glibc-testsuite = "Khem Raj <raj.khem@gmail.com>"
215RECIPE_MAINTAINER:pn-gmp = "Khem Raj <raj.khem@gmail.com>" 214RECIPE_MAINTAINER:pn-gmp = "Khem Raj <raj.khem@gmail.com>"
216RECIPE_MAINTAINER:pn-glslang = "Jose Quaresma <quaresma.jose@gmail.com>" 215RECIPE_MAINTAINER:pn-glslang = "Jose Quaresma <quaresma.jose@gmail.com>"
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index 5975db25cc..3387e19191 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -81,8 +81,6 @@ PTESTS_FAST = "\
81 zlib \ 81 zlib \
82 libexif \ 82 libexif \
83" 83"
84PTESTS_FAST:append:libc-glibc = " glibc-y2038-tests"
85PTESTS_PROBLEMS:remove:libc-glibc = "glibc-y2038-tests"
86PTESTS_FAST:remove:mips64 = "qemu" 84PTESTS_FAST:remove:mips64 = "qemu"
87PTESTS_PROBLEMS:append:mips64 = " qemu" 85PTESTS_PROBLEMS:append:mips64 = " qemu"
88PTESTS_FAST:remove:riscv32 = "qemu" 86PTESTS_FAST:remove:riscv32 = "qemu"
diff --git a/meta/conf/distro/include/time64.inc b/meta/conf/distro/include/time64.inc
index 2e85753e55..dd29105db4 100644
--- a/meta/conf/distro/include/time64.inc
+++ b/meta/conf/distro/include/time64.inc
@@ -19,7 +19,6 @@ TARGET_CC_ARCH:append:powerpc = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '$
19TARGET_CC_ARCH:append:x86 = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLIBC_64BIT_TIME_FLAGS}', '', d)}" 19TARGET_CC_ARCH:append:x86 = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLIBC_64BIT_TIME_FLAGS}', '', d)}"
20 20
21GLIBC_64BIT_TIME_FLAGS:pn-glibc = "" 21GLIBC_64BIT_TIME_FLAGS:pn-glibc = ""
22GLIBC_64BIT_TIME_FLAGS:pn-glibc-y2038-tests = ""
23GLIBC_64BIT_TIME_FLAGS:pn-glibc-testsuite = "" 22GLIBC_64BIT_TIME_FLAGS:pn-glibc-testsuite = ""
24# pipewire-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to 23# pipewire-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
25# both 32 and 64 bit file APIs. But it does not handle the time side? 24# both 32 and 64 bit file APIs. But it does not handle the time side?
@@ -36,7 +35,6 @@ GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
36# Caused by the flags exceptions above 35# Caused by the flags exceptions above
37INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time" 36INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time"
38INSANE_SKIP:append:pn-glibc = " 32bit-time" 37INSANE_SKIP:append:pn-glibc = " 32bit-time"
39INSANE_SKIP:append:pn-glibc-y2038-tests = " 32bit-time"
40INSANE_SKIP:append:pn-pulseaudio = " 32bit-time" 38INSANE_SKIP:append:pn-pulseaudio = " 32bit-time"
41 39
42# Strace has tests that call 32 bit API directly, which is fair enough, e.g. 40# Strace has tests that call 32 bit API directly, which is fair enough, e.g.
diff --git a/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb b/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
deleted file mode 100644
index be49ca4cb7..0000000000
--- a/meta/recipes-core/glibc/glibc-y2038-tests_2.39.bb
+++ /dev/null
@@ -1,119 +0,0 @@
1require glibc_${PV}.bb
2require glibc-tests.inc
3
4inherit ptest features_check
5REQUIRED_DISTRO_FEATURES = "ptest"
6
7SRC_URI += "\
8 file://run-ptest \
9"
10
11SUMMARY = "glibc tests using time32/time64 interfaces to be run with ptest for the purpose of checking y2038 compatiblity"
12
13# Erase some variables already set by glibc_${PV}
14python __anonymous() {
15 # Remove packages provided by glibc build, we only need a subset of them
16 d.setVar("PACKAGES", "${PN} ${PN}-ptest")
17
18 d.setVar("PROVIDES", "${PN} ${PN}-ptest")
19
20 bbclassextend = d.getVar("BBCLASSEXTEND").replace("nativesdk", "").strip()
21 d.setVar("BBCLASSEXTEND", bbclassextend)
22 d.setVar("RRECOMMENDS", "")
23 d.setVar("SYSTEMD_SERVICE:nscd", "")
24 d.setVar("SYSTEMD_PACKAGES", "")
25}
26
27# Remove any leftovers from original glibc recipe
28RPROVIDES:${PN} = "${PN}"
29RRECOMMENDS:${PN} = ""
30RDEPENDS:${PN} = "glibc libgcc sed bash"
31RDEPENDS:${PN}-ptest = "${PN}"
32DEPENDS += "sed"
33
34export oe_srcdir="${exec_prefix}/src/debug/glibc/${PV}/"
35
36# Just build tests for target - do not run them
37do_check:append () {
38 oe_runmake -i check run-built-tests=no
39}
40addtask do_check after do_compile before do_install_ptest_base
41
42glibc_strip_build_directory () {
43 # Delete all non executable files from build directory
44 find ${B} ! -executable -type f -delete
45
46 # Remove build dynamic libraries and links to them as
47 # those are already installed in the target device
48 find ${B} -type f -name "*.so" -delete
49 find ${B} -type l -name "*.so*" -delete
50
51 # Remove headers (installed with glibc)
52 find ${B} -type f -name "*.h" -delete
53
54 find ${B} -type f -name "isomac" -delete
55 find ${B} -type f -name "annexc" -delete
56}
57
58do_install_ptest_base () {
59 glibc_strip_build_directory
60
61 ls -r ${B}/*/*-time64 > ${B}/tst_time64
62
63 # Remove '-time64' suffix - those tests are also time related
64 sed -e "s/-time64$//" ${B}/tst_time64 > ${B}/tst_time_tmp
65 tst_time=$(cat ${B}/tst_time_tmp ${B}/tst_time64)
66
67 rm ${B}/tst_time_tmp ${B}/tst_time64
68 echo "${tst_time}"
69
70 # Install build test programs to the image
71 install -d ${D}${PTEST_PATH}/tests/glibc-ptest/
72
73 for f in "${tst_time}"
74 do
75 cp -r ${f} ${D}${PTEST_PATH}/tests/glibc-ptest/
76 done
77
78 install -d ${D}${PTEST_PATH}
79 cp ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/
80
81}
82
83# The datadir directory is required to allow core (and reused)
84# glibc cleanup function to finish correctly, as this directory
85# is not created for ptests
86stash_locale_package_cleanup:prepend () {
87 mkdir -p ${PKGD}${datadir}
88}
89
90stash_locale_sysroot_cleanup:prepend () {
91 mkdir -p ${SYSROOT_DESTDIR}${datadir}
92}
93
94# Prevent the do_package() task to set 'libc6' prefix
95# for glibc tests related packages
96python populate_packages:prepend () {
97 if d.getVar('DEBIAN_NAMES'):
98 d.setVar('DEBIAN_NAMES', '')
99}
100
101FILES:${PN} = "${PTEST_PATH}/* /usr/src/debug/${PN}/*"
102
103EXCLUDE_FROM_SHLIBS = "1"
104
105# Install debug data in .debug and sources in /usr/src/debug
106# It is more handy to have _all_ the sources and symbols in one
107# place (package) as this recipe will be used for validation and
108# debugging.
109PACKAGE_DEBUG_SPLIT_STYLE = ".debug"
110
111# glibc test cases violate by default some Yocto/OE checks (staticdev,
112# textrel)
113# 'debug-files' - add everything (including debug) into one package
114# (no need to install/build *-src package)
115INSANE_SKIP:${PN} += "staticdev textrel debug-files rpaths"
116
117deltask do_stash_locale
118do_install[noexec] = "1"
119do_populate_sysroot[noexec] = "1"
diff --git a/meta/recipes-core/glibc/glibc/run-ptest b/meta/recipes-core/glibc/glibc/run-ptest
deleted file mode 100755
index cb71c75682..0000000000
--- a/meta/recipes-core/glibc/glibc/run-ptest
+++ /dev/null
@@ -1,37 +0,0 @@
1#!/bin/bash
2# ptest script for glibc - to run time related tests to
3# facilitate Y2038 validation
4# Run with 'ptest-runner glibc-tests'
5
6output() {
7 retcode=$?
8 if [ $retcode -eq 0 ]
9 then echo "PASS: $i"
10 elif [ $retcode -eq 77 ]
11 then echo "SKIP: $i"
12 else echo "FAIL: $i"
13 fi
14}
15
16# Allow altering time on the target
17export GLIBC_TEST_ALLOW_TIME_SETTING="1"
18
19tst_time64=$(ls -r ${PWD}/tests/glibc-ptest/*-time64)
20
21# Remove '-time64' suffix - those tests are also time
22# related
23tst_time_tmp=$(sed -e "s/-time64$//" <<< ${tst_time64})
24
25# Do not run tests supporting only 32 bit time
26#for i in ${tst_time_tmp}
27#do
28# $i >/dev/null 2>&1
29# output
30#done
31
32# Run tests supporting only 64 bit time
33for i in ${tst_time64}
34do
35 $i >/dev/null 2>&1
36 output
37done