mirror of
https://git.yoctoproject.org/poky
synced 2026-02-22 17:39:39 +01:00
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>
48 lines
2.3 KiB
PHP
48 lines
2.3 KiB
PHP
# To simulate Y2038 occurring in qemu, add to your build configuration:
|
|
# QB_OPT_APPEND:append = " -rtc base=2040-02-02"
|
|
#
|
|
# Note that this does result in ptest failures on qemux86:
|
|
# perl python3 dbus openssl glibc-tests openssh curl glib-2.0 tcl libmodule-build-perl
|
|
# and a subset of those occurs in qemux86-64 as well:
|
|
# curl python3 openssl openssl tcl python3-cryptography
|
|
#
|
|
# Working to address those (before Y2038 rolls in) will be appreciated.
|
|
|
|
GLIBC_64BIT_TIME_FLAGS = " -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64"
|
|
|
|
# Only needed for some 32-bit architectures, some relatively newer
|
|
# architectures do not need it ( e.g. riscv32 )
|
|
TARGET_CC_ARCH:append:arm = "${GLIBC_64BIT_TIME_FLAGS}"
|
|
TARGET_CC_ARCH:append:armeb = "${GLIBC_64BIT_TIME_FLAGS}"
|
|
TARGET_CC_ARCH:append:mipsarcho32 = "${GLIBC_64BIT_TIME_FLAGS}"
|
|
TARGET_CC_ARCH:append:powerpc = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLIBC_64BIT_TIME_FLAGS}', '', d)}"
|
|
TARGET_CC_ARCH:append:x86 = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLIBC_64BIT_TIME_FLAGS}', '', d)}"
|
|
|
|
GLIBC_64BIT_TIME_FLAGS:pn-glibc = ""
|
|
GLIBC_64BIT_TIME_FLAGS:pn-glibc-testsuite = ""
|
|
# pipewire-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
|
|
# both 32 and 64 bit file APIs. But it does not handle the time side?
|
|
# Needs further investigation
|
|
GLIBC_64BIT_TIME_FLAGS:pn-pipewire = ""
|
|
# Pulseaudio override certain LFS64 functions e.g. open64 and intentionally
|
|
# undefines _FILE_OFFSET_BITS, which wont work when _TIME_BITS=64 is set
|
|
# See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/3770
|
|
GLIBC_64BIT_TIME_FLAGS:pn-pulseaudio = ""
|
|
# Undefines _FILE_OFFSET_BITS on purpose in
|
|
# libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
|
GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
|
|
|
|
# Caused by the flags exceptions above
|
|
INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time"
|
|
INSANE_SKIP:append:pn-glibc = " 32bit-time"
|
|
INSANE_SKIP:append:pn-pulseaudio = " 32bit-time"
|
|
|
|
# Strace has tests that call 32 bit API directly, which is fair enough, e.g.
|
|
# /usr/lib/strace/ptest/tests/ioctl_termios uses 32-bit api 'ioctl'
|
|
INSANE_SKIP:append:pn-strace = " 32bit-time"
|
|
|
|
# Additionally cargo_common class (i.e. everything written in rust)
|
|
# has the same INSANE_SKIP setting.
|
|
# Please check the comment in meta/classes-recipe/cargo_common.bbclass
|
|
# for information about why, and the overall Y2038 situation in rust.
|