* [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use
@ 2023-04-28 8:43 Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 02/11] time64.inc: add glibc-testsuite to 'special cases' Alexander Kanavin
` (9 more replies)
0 siblings, 10 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
.../binutils/binutils-2.40.inc | 1 +
.../binutils/binutils/fix-time64.patch | 94 +++++++++++++++++++
2 files changed, 95 insertions(+)
create mode 100644 meta/recipes-devtools/binutils/binutils/fix-time64.patch
diff --git a/meta/recipes-devtools/binutils/binutils-2.40.inc b/meta/recipes-devtools/binutils/binutils-2.40.inc
index 93631ca3d7f..ad2c9f9da14 100644
--- a/meta/recipes-devtools/binutils/binutils-2.40.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.40.inc
@@ -35,5 +35,6 @@ SRC_URI = "\
file://0014-configure-remove-dependencies-on-gmp-and-mpfr-when-g.patch \
file://0015-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch \
file://0016-CVE-2023-25586.patch \
+ file://fix-time64.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/binutils/binutils/fix-time64.patch b/meta/recipes-devtools/binutils/binutils/fix-time64.patch
new file mode 100644
index 00000000000..0bfc977fd4e
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/fix-time64.patch
@@ -0,0 +1,94 @@
+From f6f19a39ecfe962cb8a05522c27f513308687a74 Mon Sep 17 00:00:00 2001
+From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+Date: Thu, 16 Feb 2023 19:00:47 -0800
+Subject: [PATCH] gprofng: PR30036 Build failure on aarch64 w/ glibc: symbol
+ `pwrite64' is already defined
+
+gprofng/ChangeLog
+2023-02-16 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR gprofng/30036
+ * libcollector/iotrace.c: Define creat64 and pwrite64 only when
+ __USE_LARGEFILE64 and __USE_FILE_OFFSET64 are not defined.
+ * libcollector/mmaptrace.c: Likewise for mmap64.
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f6f19a39ecfe962cb8a05522c27f513308687a74]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ gprofng/libcollector/iotrace.c | 15 ++++++++-------
+ gprofng/libcollector/mmaptrace.c | 2 +-
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/gprofng/libcollector/iotrace.c b/gprofng/libcollector/iotrace.c
+index af90cc31f1a..d8439b02b3a 100644
+--- a/gprofng/libcollector/iotrace.c
++++ b/gprofng/libcollector/iotrace.c
+@@ -1441,7 +1441,7 @@ creat (const char *path, mode_t mode)
+ }
+
+ /*------------------------------------------------------------- creat64 */
+-#if WSIZE(32)
++#if WSIZE(32) && !defined(__USE_LARGEFILE64)
+ int
+ creat64 (const char *path, mode_t mode)
+ {
+@@ -2476,7 +2476,7 @@ __collector_pwrite_2_1 (int fildes, const void *buf, size_t nbyte, off_t offset)
+ return ret;
+ }
+
+-#else
++#endif
+ ssize_t
+ pwrite (int fildes, const void *buf, size_t nbyte, off_t offset)
+ {
+@@ -2497,11 +2497,10 @@ pwrite (int fildes, const void *buf, size_t nbyte, off_t offset)
+ POP_REENTRANCE (guard);
+ return ret;
+ }
+-#endif
+
+ /*------------------------------------------------------------- pwrite64 */
+-#if WSIZE(32)
+-#if !defined(__MUSL_LIBC) && ARCH(Intel)
++#if WSIZE(32) && ARCH(Intel)
++#if !defined(__MUSL_LIBC)
+ // map interposed symbol versions
+
+ SYMVER_ATTRIBUTE (__collector_pwrite64_2_2, pwrite64@GLIBC_2.2)
+@@ -2547,8 +2546,9 @@ __collector_pwrite64_2_1 (int fildes, const void *buf, size_t nbyte, off64_t off
+ POP_REENTRANCE (guard);
+ return ret;
+ }
++#endif
+
+-#else
++#if !defined(__USE_FILE_OFFSET64)
+ ssize_t
+ pwrite64 (int fildes, const void *buf, size_t nbyte, off64_t offset)
+ {
+@@ -2570,7 +2570,8 @@ pwrite64 (int fildes, const void *buf, size_t nbyte, off64_t offset)
+ return ret;
+ }
+ #endif
+-#endif /* SIZE(32) */
++
++#endif /* SIZE(32) && ARCH(Intel) */
+
+ /*------------------------------------------------------------- fgets */
+ char*
+diff --git a/gprofng/libcollector/mmaptrace.c b/gprofng/libcollector/mmaptrace.c
+index 61613c21560..221b4e2d176 100644
+--- a/gprofng/libcollector/mmaptrace.c
++++ b/gprofng/libcollector/mmaptrace.c
+@@ -1494,7 +1494,7 @@ mmap (void *start, size_t length, int prot, int flags, int fd, off_t offset)
+ }
+
+ /*------------------------------------------------------------- mmap64 */
+-#if WSIZE(32) /* mmap64 only defined for non-64-bit */
++#if WSIZE(32) && !defined(__USE_FILE_OFFSET64)
+
+ void *
+ mmap64 (void *start, size_t length, int prot, int flags, int fd, off64_t offset)
+--
+2.31.1
+
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 02/11] time64.inc: add glibc-testsuite to 'special cases'
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 03/11] strace: exclude from x86 (32 bit) ptests Alexander Kanavin
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
It builds glibc source like other glibc recipes do,
and so the same problems occur.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/conf/distro/include/time64.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/conf/distro/include/time64.inc b/meta/conf/distro/include/time64.inc
index 2e7278292c6..73adebd39db 100644
--- a/meta/conf/distro/include/time64.inc
+++ b/meta/conf/distro/include/time64.inc
@@ -10,6 +10,7 @@ TARGET_CC_ARCH:append:x86 = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLI
GLIBC_64BIT_TIME_FLAGS:pn-glibc = ""
GLIBC_64BIT_TIME_FLAGS:pn-glibc-tests = ""
+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
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 03/11] strace: exclude from x86 (32 bit) ptests
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 02/11] time64.inc: add glibc-testsuite to 'special cases' Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 04/11] lttng-tools: " Alexander Kanavin
` (7 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Please see the linked ticket.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/conf/distro/include/ptest-packagelists.inc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index 78750a0d98b..77d69c9fcd1 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -114,6 +114,10 @@ PTESTS_SLOW:append:libc-musl = " libc-test"
PTESTS_SLOW:remove:x86 = "valgrind"
PTESTS_PROBLEMS:append:x86 = " valgrind"
+# https://github.com/strace/strace/issues/250
+PTESTS_SLOW:remove:x86 = "strace"
+PTESTS_PROBLEMS:append:x86 = " strace"
+
# ruby \ # Timeout
# lz4 \ # Needs a rewrite
# rt-tests \ # Needs to be checked whether it runs at all
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 04/11] lttng-tools: exclude from x86 (32 bit) ptests
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 02/11] time64.inc: add glibc-testsuite to 'special cases' Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 03/11] strace: exclude from x86 (32 bit) ptests Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 05/11] bitbake.conf: set minimum required target kernel to 5.15 Alexander Kanavin
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Please see the comment.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/conf/distro/include/ptest-packagelists.inc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index 77d69c9fcd1..39b885066ce 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -118,6 +118,12 @@ PTESTS_PROBLEMS:append:x86 = " valgrind"
PTESTS_SLOW:remove:x86 = "strace"
PTESTS_PROBLEMS:append:x86 = " strace"
+# Needs support for 64 bit syscall versions
+# which was added in http://git.lttng.org/?p=lttng-modules.git;a=commitdiff;h=86040c9e2ff8a79633db34220e32bdda536b00e6
+# and should show up in lttng-modules 2.14.x
+PTESTS_SLOW:remove:x86 = "lttng-tools"
+PTESTS_PROBLEMS:append:x86 = " lttng-tools"
+
# ruby \ # Timeout
# lz4 \ # Needs a rewrite
# rt-tests \ # Needs to be checked whether it runs at all
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 05/11] bitbake.conf: set minimum required target kernel to 5.15
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (2 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 04/11] lttng-tools: " Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 06/11] python3-pytest: add missing tomllib runtime dependency Alexander Kanavin
` (5 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
In particular this enables a number of useful features in glibc
(which utilize newer kernel APIs), such as actually using 64 bit
time_t versions of kernel syscalls:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/kernel-features.h;h=07b440f4eea364b05fa49bf71ceebf78f80efe13;hb=HEAD#l164
In general, OLDEST_KERNEL setting is used in these two places:
- kernel.bbclass compares it with the target kernel version being built.
If a vendor BSP still offers an older kernel, OLDEST_KERNEL should be set to match.
- glibc recipe passes it as a parameter to the build so that additional features
and optimized paths that kernels older than OLDEST_KERNEL are enabled.
Note that there is a related setting, SDK_OLDEST_KERNEL, which remains as
it was (at 3.2.0) to ensure maximum compatibility with kernels on SDK host
machines; that setting is used to build nativesdk-glibc and verify the kernel
version when the SDK is being installed.
Build host kernel versions are not checked directly; compatible distros
are listed instead.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
v2: rewrite the description to address the concerns about build host kernels
and sdk host kernels
---
meta/conf/bitbake.conf | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index afd9e2f5527..2db84a46eed 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -469,12 +469,7 @@ SDKPATHINSTALL = "/usr/local/${SDK_NAME_PREFIX}-${SDK_ARCH}"
# Kernel info.
##################################################################
-OLDEST_KERNEL = "3.2.0"
-OLDEST_KERNEL:aarch64 = "3.14"
-OLDEST_KERNEL:nios2 = "3.19"
-OLDEST_KERNEL:powerpc64le = "3.10.0"
-OLDEST_KERNEL:riscv32 = "5.4"
-OLDEST_KERNEL:riscv64 = "4.15"
+OLDEST_KERNEL = "5.15"
# SDK_OLDEST_KERNEL can't be set using overrides since there are
# none for the SDK architecture. Best to set it from a machine-sdk
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 06/11] python3-pytest: add missing tomllib runtime dependency
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (3 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 05/11] bitbake.conf: set minimum required target kernel to 5.15 Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 07/11] time64.inc: add a comment about how to simulate Y2038 in qemu Alexander Kanavin
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/recipes-devtools/python/python3-pytest_7.3.1.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/python/python3-pytest_7.3.1.bb b/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
index 9965844d1ad..914ea553464 100644
--- a/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
+++ b/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
@@ -26,6 +26,7 @@ RDEPENDS:${PN} += " \
${PYTHON_PN}-py \
${PYTHON_PN}-setuptools \
${PYTHON_PN}-six \
+ ${PYTHON_PN}-tomllib \
${PYTHON_PN}-wcwidth \
"
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 07/11] time64.inc: add a comment about how to simulate Y2038 in qemu
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (4 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 06/11] python3-pytest: add missing tomllib runtime dependency Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 08/11] oeqa/sdk/assimp: run only when zlib is in the SDK Alexander Kanavin
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Setting clock to 2040 causes the following ptest failures on qemux86:
{'perl': ['t/op/magic', 'lib/File/stat', 'ext/POSIX/t/time']}
{'python3': ['test_create_server_ssl_verified',
'test_create_unix_server_ssl_verified',
'test_local_good_hostname']}
{'dbus': ['dbus/test-relay_with_config.test',
'dbus/test-misc-internals.test',
'dbus/test-corrupt.test',
'dbus/test-loopback_with_config.test',
'dbus/test-relay.test',
'dbus/test-misc-internals_with_config.test',
'dbus/test-loopback.test',
'dbus/test-fdpass_with_config.test',
'dbus/test-corrupt_with_config.test',
'dbus/test-fdpass.test']}
{'openssl': ['Dubious,_test_returned_5', 'Dubious,_test_returned_1']}
{'glibc-tests': ['/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-utimes',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-utimensat',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-utime',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-timespec_get',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-timer4',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-stat',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-sigtimedwait',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-settimeofday',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-sem5',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-select',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-scm_rights',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-rwlock14',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-ppoll',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-ntp_gettimex',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-ntp_gettime',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-ntp_adjtime',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-mtx-timedlock',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-mqueue8',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-mqueue2',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-mqueue10',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-mqueue1',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-lutimes',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-lchmod',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-futimesat',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-futimes',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-futimens',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-fts',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-fcntl',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-cond11',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-cnd-timedwait',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-clock_settime',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-clock_adjtime',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-clock',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-aio6',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-adjtimex',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/ftwtest',
'/usr/lib/glibc-tests/ptest/tests/glibc-ptest/tst-lchmod-time64']}
{'openssh': ['key_options']}
{'curl': ['test_0031',
'test_0046',
'test_0053',
'test_0061',
'test_0062',
'test_0172',
'test_0179',
'test_0327',
'test_0329',
'test_0420',
'test_1104',
'test_1216',
'test_1415']}
{'glib-2.0': ['glib/asyncqueue.test',
'glib/module-test-plugin.test',
'glib/file.test',
'glib/fileutils.test',
'glib/module-test-library.test']}
{'gstreamer1.0': ['gstreamer/elements_multiqueue.test']} (may be flaky)
{'tcl': ['cmdAH.test', 'interp.test']}
{'libmodule-build-perl': ['t/compat']}
Some ptests fail on qemux86-64 as well:
{'curl': ['test_0031',
'test_0046',
'test_0053',
'test_0061',
'test_0062',
'test_0172',
'test_0179',
'test_0327',
'test_0329',
'test_0420',
'test_1104',
'test_1216',
'test_1415']}
{'python3': ['test_create_server_ssl_verified',
'test_create_unix_server_ssl_verified',
'test_local_good_hostname']}
{'openssh': ['key_options']}
{'openssl': ['Dubious,_test_returned_5', 'Dubious,_test_returned_1']}
{'tcl': ['interp.test']}
{'python3-cryptography': ['tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_smime_sign_detached',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_pem',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_alternate_digests_der[hash_alg0-\\x06\\t`\\x86H\\x01e\\x03\\x04\\x02\\x01]',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_alternate_digests_der[hash_alg1-\\x06\\t`\\x86H\\x01e\\x03\\x04\\x02\\x02]',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_alternate_digests_der[hash_alg2-\\x06\\t`\\x86H\\x01e\\x03\\x04\\x02\\x03]',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_attached',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_binary',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_smime_canonicalization',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_text',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_no_capabilities',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_sign_no_attributes',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_multiple_signers',
'tests/hazmat/primitives/test_pkcs7.py:TestPKCS7Builder.test_multiple_signers_different_hash_algs']}
Note that setting the year to 2035 resolves almost all of the above,
as onl the following then fail:
qemux86:
{'python3': ['test_local_good_hostname']}
{'curl': ['test_0420']}
qemux86-64:
{'python3': ['test_local_good_hostname']}
{'curl': ['test_0420']}
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/conf/distro/include/time64.inc | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/meta/conf/distro/include/time64.inc b/meta/conf/distro/include/time64.inc
index 73adebd39db..7474f0fd7a0 100644
--- a/meta/conf/distro/include/time64.inc
+++ b/meta/conf/distro/include/time64.inc
@@ -1,3 +1,13 @@
+# 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
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 08/11] oeqa/sdk/assimp: run only when zlib is in the SDK
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (5 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 07/11] time64.inc: add a comment about how to simulate Y2038 in qemu Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 09/11] defaultsetup: Enable largefile and 64bit time_t support systemwide Alexander Kanavin
` (2 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Otherwise assimp will silently fall back to a vendored copy of zlib
which will fail with -D_TIME_BITS=64 due to https://github.com/madler/zlib/pull/764
This was exposed by multilib mips core-image-minimal SDKs, where the default
64 bit sysroot has zlib, but 32 bit sysroot does not.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/lib/oeqa/sdk/cases/assimp.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/lib/oeqa/sdk/cases/assimp.py b/meta/lib/oeqa/sdk/cases/assimp.py
index aa6541c6f6d..e4c5c730037 100644
--- a/meta/lib/oeqa/sdk/cases/assimp.py
+++ b/meta/lib/oeqa/sdk/cases/assimp.py
@@ -22,6 +22,9 @@ class BuildAssimp(OESDKTestCase):
if not (self.tc.hasHostPackage("nativesdk-cmake") or
self.tc.hasHostPackage("cmake-native")):
raise unittest.SkipTest("Needs cmake")
+ if not (self.tc.hasTargetPackage("zlib", multilib=True) or \
+ self.tc.hasTargetPackage("libz1", multilib=True)):
+ raise unittest.SkipTest("Assimp test needs zlib in the SDK")
def test_assimp(self):
with tempfile.TemporaryDirectory(prefix="assimp", dir=self.tc.sdk_dir) as testdir:
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 09/11] defaultsetup: Enable largefile and 64bit time_t support systemwide
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (6 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 08/11] oeqa/sdk/assimp: run only when zlib is in the SDK Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 10/11] insane.bbclass: simplify exceptions for 32 bit time API check Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 11/11] insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures Alexander Kanavin
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
From: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/conf/distro/defaultsetup.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf
index f6894f3ab56..1abb5096293 100644
--- a/meta/conf/distro/defaultsetup.conf
+++ b/meta/conf/distro/defaultsetup.conf
@@ -2,7 +2,7 @@ include conf/distro/include/default-providers.inc
include conf/distro/include/default-versions.inc
include conf/distro/include/default-distrovars.inc
include conf/distro/include/maintainers.inc
-
+include conf/distro/include/time64.inc
require conf/distro/include/tcmode-${TCMODE}.inc
require conf/distro/include/tclibc-${TCLIBC}.inc
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 10/11] insane.bbclass: simplify exceptions for 32 bit time API check
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (7 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 09/11] defaultsetup: Enable largefile and 64bit time_t support systemwide Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 11/11] insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures Alexander Kanavin
9 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Existing implementation required to list both specific problematic apis, and files that
use them: neither is necessary as both are seen in package_qa error messages, and
can cause excessive amount of exception lines, if there are too many files, or
they are installed in arch-specific locations. Also, the value of INSANE_SKIP
should be the test that needs to be skipped, and in this case it wasn't.
Also, all problematic recipes are now correctly listed.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
v2: add pseudo to exception list
---
meta/classes-global/insane.bbclass | 14 +++-----------
meta/conf/distro/include/time64.inc | 19 +++++++++++++------
2 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
index ee34d5208d1..8788f58fc5b 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -617,22 +617,14 @@ def check_32bit_symbols(path, packagename, d, elf, messages):
# At this point, any symbol information is stripped into the debug
# package, so that is the only place we will find them.
elfpath = elfpath.replace('.debug/', '')
- allowed = (
- d.getVarFlag(
- 'INSANE_SKIP:' + d.getVar('PN'), elfpath.replace('/', '_')
- ) or ''
- ).split()
- usedapis -= set(allowed)
- if usedapis:
+ allowed = "32bit-time" in (d.getVar('INSANE_SKIP') or '').split()
+ if not allowed:
msgformat = elfpath + " uses 32-bit api '%s'"
for sym in usedapis:
oe.qa.add_message(messages, '32bit-time', msgformat % sym)
oe.qa.add_message(
messages, '32bit-time',
- 'Suppress with INSANE_SKIP:%s[%s] = "%s"' % (
- d.getVar('PN'), elfpath.replace('/', '_'),
- ' '.join(usedapis)
- )
+ 'Suppress with INSANE_SKIP = "32bit-time"'
)
# Check license variables
diff --git a/meta/conf/distro/include/time64.inc b/meta/conf/distro/include/time64.inc
index 7474f0fd7a0..78569de4337 100644
--- a/meta/conf/distro/include/time64.inc
+++ b/meta/conf/distro/include/time64.inc
@@ -30,10 +30,17 @@ GLIBC_64BIT_TIME_FLAGS:pn-pipewire = ""
GLIBC_64BIT_TIME_FLAGS:pn-pulseaudio = ""
GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
-INSANE_SKIP:libstd-rs[_usr_lib_rustlib_armv7-poky-linux-gnueabihf_lib_libstd.so] = "clock_gettime gettime fcntl fstat64 fstatat64 getsockopt ioctl lstat64 nanosleep prctl recvmsg sendmsg setsockopt stat64"
-INSANE_SKIP:librsvg[_usr_bin_rsvg-convert] = "fcntl fstat64 prctl stat64 clock_gettime"
-INSANE_SKIP:librsvg[_usr_lib_librsvg-2.so.2.48.0] = "fcntl lstat64 setsockopt sendmsg fstat64 getsockopt ioctl nanosleep timegm fstatat64 prctl mktime gmtime_r recvmsg stat64 clock_gettime localtime_r"
-
-# libpulsedsp.so is a preload-library that hooks libc functions
-INSANE_SKIP:pulseaudio[_usr_lib_pulseaudio_libpulsedsp.so] = "setsockopt fcntl"
+INSANE_SKIP:append:pn-cargo = " 32bit-time"
+INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time"
+INSANE_SKIP:append:pn-glibc = " 32bit-time"
+INSANE_SKIP:append:pn-glibc-tests = " 32bit-time"
+INSANE_SKIP:append:pn-librsvg = " 32bit-time"
+INSANE_SKIP:append:pn-libstd-rs = " 32bit-time"
+INSANE_SKIP:append:pn-pseudo = " 32bit-time"
+INSANE_SKIP:append:pn-pulseaudio = " 32bit-time"
+INSANE_SKIP:append:pn-python3-bcrypt = " 32bit-time"
+INSANE_SKIP:append:pn-python3-cryptography = " 32bit-time"
+INSANE_SKIP:append:pn-rust = " 32bit-time"
+INSANE_SKIP:append:pn-rust-hello-world = " 32bit-time"
+INSANE_SKIP:append:pn-strace = " 32bit-time"
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 11/11] insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
` (8 preceding siblings ...)
2023-04-28 8:43 ` [PATCH v2 10/11] insane.bbclass: simplify exceptions for 32 bit time API check Alexander Kanavin
@ 2023-04-28 8:43 ` Alexander Kanavin
2023-04-28 22:03 ` [OE-core] " Alexandre Belloni
9 siblings, 1 reply; 12+ messages in thread
From: Alexander Kanavin @ 2023-04-28 8:43 UTC (permalink / raw)
To: openembedded-core; +Cc: Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
v2: downgrade to a warning from an error
---
meta/classes-global/insane.bbclass | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
index 8788f58fc5b..6479fc0964b 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -34,6 +34,7 @@ WARN_QA ?= " libdir xorg-driver-abi buildpaths \
missing-update-alternatives native-last missing-ptest \
license-exists license-no-generic license-syntax license-format \
license-incompatible license-file-missing obsolete-license \
+ 32bit-time \
"
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
@@ -44,7 +45,7 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
already-stripped installed-vs-shipped ldflags compile-host-path \
install-host-path pn-overrides unknown-configure-option \
useless-rpaths rpaths staticdev empty-dirs \
- patch-fuzz patch-status-core\
+ patch-fuzz patch-status-core \
"
# Add usrmerge QA check based on distro feature
ERROR_QA:append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
@@ -512,6 +513,11 @@ def check_32bit_symbols(path, packagename, d, elf, messages):
"""
Check that ELF files do not use any 32 bit time APIs from glibc.
"""
+ thirtytwo_bit_time_archs = set(('arm','armeb','mipsarcho32','powerpc','x86'))
+ overrides = set(d.getVar('OVERRIDES').split(':'))
+ if not(thirtytwo_bit_time_archs & overrides):
+ return
+
import re
# This list is manually constructed by searching the image folder of the
# glibc recipe for __USE_TIME_BITS64. There is no good way to do this
--
2.30.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [OE-core] [PATCH v2 11/11] insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures
2023-04-28 8:43 ` [PATCH v2 11/11] insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures Alexander Kanavin
@ 2023-04-28 22:03 ` Alexandre Belloni
0 siblings, 0 replies; 12+ messages in thread
From: Alexandre Belloni @ 2023-04-28 22:03 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: openembedded-core, Alexander Kanavin
On 28/04/2023 10:43:52+0200, Alexander Kanavin wrote:
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
>
> ---
> v2: downgrade to a warning from an error
> ---
> meta/classes-global/insane.bbclass | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
> index 8788f58fc5b..6479fc0964b 100644
> --- a/meta/classes-global/insane.bbclass
> +++ b/meta/classes-global/insane.bbclass
> @@ -34,6 +34,7 @@ WARN_QA ?= " libdir xorg-driver-abi buildpaths \
> missing-update-alternatives native-last missing-ptest \
> license-exists license-no-generic license-syntax license-format \
> license-incompatible license-file-missing obsolete-license \
> + 32bit-time \
> "
> ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
> perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
> @@ -44,7 +45,7 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
> already-stripped installed-vs-shipped ldflags compile-host-path \
> install-host-path pn-overrides unknown-configure-option \
> useless-rpaths rpaths staticdev empty-dirs \
> - patch-fuzz patch-status-core\
> + patch-fuzz patch-status-core \
This unrelated change creates a conflict with your other series. Could
you drop it if you need to respin?
> "
> # Add usrmerge QA check based on distro feature
> ERROR_QA:append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
> @@ -512,6 +513,11 @@ def check_32bit_symbols(path, packagename, d, elf, messages):
> """
> Check that ELF files do not use any 32 bit time APIs from glibc.
> """
> + thirtytwo_bit_time_archs = set(('arm','armeb','mipsarcho32','powerpc','x86'))
> + overrides = set(d.getVar('OVERRIDES').split(':'))
> + if not(thirtytwo_bit_time_archs & overrides):
> + return
> +
> import re
> # This list is manually constructed by searching the image folder of the
> # glibc recipe for __USE_TIME_BITS64. There is no good way to do this
> --
> 2.30.2
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#180522): https://lists.openembedded.org/g/openembedded-core/message/180522
> Mute This Topic: https://lists.openembedded.org/mt/98554692/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-04-28 22:03 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-28 8:43 [PATCH v2 01/11] binutils: backport a patch to address failures when time64.inc is in use Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 02/11] time64.inc: add glibc-testsuite to 'special cases' Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 03/11] strace: exclude from x86 (32 bit) ptests Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 04/11] lttng-tools: " Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 05/11] bitbake.conf: set minimum required target kernel to 5.15 Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 06/11] python3-pytest: add missing tomllib runtime dependency Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 07/11] time64.inc: add a comment about how to simulate Y2038 in qemu Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 08/11] oeqa/sdk/assimp: run only when zlib is in the SDK Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 09/11] defaultsetup: Enable largefile and 64bit time_t support systemwide Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 10/11] insane.bbclass: simplify exceptions for 32 bit time API check Alexander Kanavin
2023-04-28 8:43 ` [PATCH v2 11/11] insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures Alexander Kanavin
2023-04-28 22:03 ` [OE-core] " Alexandre Belloni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.