All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.