diff options
Diffstat (limited to 'meta/recipes-support')
206 files changed, 6288 insertions, 2624 deletions
diff --git a/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch b/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch index bc811d67b0..03ac5eb05b 100644 --- a/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch +++ b/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From fe9ebb8c0fa7b84a9c5c667386b8fbb3baea2fad Mon Sep 17 00:00:00 2001 | 1 | From 7372848f22d7edc01e40b0533047b34f41f6cf71 Mon Sep 17 00:00:00 2001 |
2 | From: Markus Volk <f_l_k@t-online.de> | 2 | From: Markus Volk <f_l_k@t-online.de> |
3 | Date: Mon, 12 Dec 2022 15:42:42 +0100 | 3 | Date: Mon, 12 Dec 2022 15:42:42 +0100 |
4 | Subject: [PATCH] remove hardcoded path | 4 | Subject: [PATCH] remove hardcoded path |
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [oe-specific] | |||
14 | 1 file changed, 2 insertions(+), 2 deletions(-) | 14 | 1 file changed, 2 insertions(+), 2 deletions(-) |
15 | 15 | ||
16 | diff --git a/meson.build b/meson.build | 16 | diff --git a/meson.build b/meson.build |
17 | index fa171d5..79d5168 100644 | 17 | index 7e89ab0..c34ea74 100644 |
18 | --- a/meson.build | 18 | --- a/meson.build |
19 | +++ b/meson.build | 19 | +++ b/meson.build |
20 | @@ -185,10 +185,10 @@ endif | 20 | @@ -194,10 +194,10 @@ endif |
21 | stemmer_inc_dirs = include_directories() | 21 | stemmer_inc_dirs = include_directories() |
22 | if get_option('stemming') | 22 | if get_option('stemming') |
23 | stemmer_lib = cc.find_library('stemmer', required: true) | 23 | stemmer_lib = cc.find_library('stemmer', required: true) |
diff --git a/meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch b/meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch new file mode 100644 index 0000000000..71c9aadbc9 --- /dev/null +++ b/meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 43afdff090c4cbb2d3b4025a38b25a718c8f16b5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marc Ferland <marc.ferland@sonatest.com> | ||
3 | Date: Fri, 26 Jul 2024 15:41:00 -0400 | ||
4 | Subject: [PATCH] Do not build qt/tests | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Fixes the following build failure: | ||
10 | |||
11 | | In file included from /home/marc/mnt/yocto-kde/build/tmp/work/x86_64-linux/appstream-native/1.0.3/recipe-sysroot-native/usr/include/QtTest/QtTest:11, | ||
12 | | from ../AppStream-1.0.3/qt/tests/asqt-pool-test.cpp:21: | ||
13 | | ../AppStream-1.0.3/qt/tests/asqt-pool-test.cpp: In function ‘int main(int, char**)’: | ||
14 | | ../AppStream-1.0.3/qt/tests/asqt-pool-test.cpp:117:1: error: expected primary-expression before ‘)’ token | ||
15 | | 117 | QTEST_MAIN(PoolReadTest) | ||
16 | | | ^~~~~~~~~~ | ||
17 | |||
18 | Upstream-Status: Inappropriate [oe-specific] | ||
19 | |||
20 | Signed-off-by: Marc Ferland <marc.ferland@sonatest.com> | ||
21 | --- | ||
22 | qt/meson.build | 2 -- | ||
23 | 1 file changed, 2 deletions(-) | ||
24 | |||
25 | diff --git a/qt/meson.build b/qt/meson.build | ||
26 | index 7d9ed7d..e319425 100644 | ||
27 | --- a/qt/meson.build | ||
28 | +++ b/qt/meson.build | ||
29 | @@ -150,5 +150,3 @@ install_data ( | ||
30 | |||
31 | # end of Qt version loop | ||
32 | endforeach | ||
33 | - | ||
34 | -subdir('tests/') | ||
diff --git a/meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch b/meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch new file mode 100644 index 0000000000..e522a92e14 --- /dev/null +++ b/meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch | |||
@@ -0,0 +1,51 @@ | |||
1 | From c36b6226479a20ebd910f355deddb9d5c7571213 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marc Ferland <marc.ferland@sonatest.com> | ||
3 | Date: Mon, 29 Jul 2024 09:35:51 -0400 | ||
4 | Subject: [PATCH] Fix PACKAGE_PREFIX_DIR in qt/cmake/AppStreamQtConfig.cmake.in | ||
5 | |||
6 | PACKAGE_PREFIX_DIR points to an invalid directory. This breaks | ||
7 | librairies linking to appstream-qt. | ||
8 | |||
9 | For example, when building the 'discover' package from the meta-kde | ||
10 | layer we get the following build error: | ||
11 | |||
12 | | CMake Error in libdiscover/CMakeLists.txt: | ||
13 | | Imported target "AppStreamQt" includes non-existent path | ||
14 | | | ||
15 | | "/path/to/build/tmp/work/core2-64-poky-linux/discover/6.1.3/recipe-sysroot/include/" | ||
16 | | | ||
17 | | in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: | ||
18 | | | ||
19 | | * The path was deleted, renamed, or moved to another location. | ||
20 | | | ||
21 | | * An install or uninstall procedure did not complete successfully. | ||
22 | | | ||
23 | | * The installation package was faulty and references files it does not | ||
24 | | provide. | ||
25 | |||
26 | The path above should've been: | ||
27 | |||
28 | /path/to/build/tmp/work/core2-64-poky-linux/discover/6.1.3/recipe-sysroot/usr/include/ | ||
29 | |||
30 | instead of: | ||
31 | |||
32 | /path/to/build/tmp/work/core2-64-poky-linux/discover/6.1.3/recipe-sysroot/include/ | ||
33 | |||
34 | Upstream-Status: Inappropriate [upstream ticket https://github.com/ximion/appstream/issues/643] | ||
35 | |||
36 | Signed-off-by: Marc Ferland <marc.ferland@sonatest.com> | ||
37 | --- | ||
38 | qt/cmake/AppStreamQtConfig.cmake.in | 2 +- | ||
39 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
40 | |||
41 | diff --git a/qt/cmake/AppStreamQtConfig.cmake.in b/qt/cmake/AppStreamQtConfig.cmake.in | ||
42 | index 63df65f2..5ab2d0ec 100644 | ||
43 | --- a/qt/cmake/AppStreamQtConfig.cmake.in | ||
44 | +++ b/qt/cmake/AppStreamQtConfig.cmake.in | ||
45 | @@ -1,5 +1,5 @@ | ||
46 | |||
47 | -get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../../" ABSOLUTE) | ||
48 | +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) | ||
49 | |||
50 | # Use original install prefix when loaded through a "/usr move" | ||
51 | # cross-prefix symbolic link such as /lib -> /usr/lib. | ||
diff --git a/meta/recipes-support/appstream/appstream_1.0.2.bb b/meta/recipes-support/appstream/appstream_1.0.5.bb index 7eb12a04c5..bb293f76e2 100644 --- a/meta/recipes-support/appstream/appstream_1.0.2.bb +++ b/meta/recipes-support/appstream/appstream_1.0.5.bb | |||
@@ -27,18 +27,27 @@ GIDOCGEN_MESON_OPTION = "apidocs" | |||
27 | SRC_URI = " \ | 27 | SRC_URI = " \ |
28 | https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \ | 28 | https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \ |
29 | file://0001-remove-hardcoded-path.patch \ | 29 | file://0001-remove-hardcoded-path.patch \ |
30 | file://0002-Do-not-build-qt-tests.patch \ | ||
31 | file://0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch \ | ||
30 | " | 32 | " |
31 | SRC_URI[sha256sum] = "1a5148ca97dcbf5eb6e9c380278bb0d20938569292ea8652df1b3cac8bd2736b" | 33 | SRC_URI[sha256sum] = "ce0ed29e89abd5f0cf790ea87d792f1967c3413060beb30e63a979578d975121" |
32 | 34 | ||
33 | S = "${WORKDIR}/AppStream-${PV}" | 35 | S = "${UNPACKDIR}/AppStream-${PV}" |
34 | 36 | ||
35 | PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" | 37 | PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" |
36 | 38 | ||
37 | PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" | 39 | PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" |
38 | PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer" | 40 | PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer" |
41 | PACKAGECONFIG[qt6] = "-Dqt=true,-Dqt=false,qtbase" | ||
39 | 42 | ||
40 | FILES:${PN} += "${datadir}" | 43 | FILES:${PN} += "${datadir}" |
41 | 44 | ||
42 | EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}" | 45 | EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}" |
43 | 46 | ||
44 | BBCLASSEXTEND = "native" | 47 | BBCLASSEXTEND = "native" |
48 | |||
49 | # Fix meson not finding the Qt build tools in cross-compilation | ||
50 | # setups. See: https://github.com/mesonbuild/meson/issues/13018 | ||
51 | do_configure:prepend:class-target() { | ||
52 | export PATH=${STAGING_DIR_NATIVE}${libexecdir}:$PATH | ||
53 | } | ||
diff --git a/meta/recipes-support/apr/apr-util/configure_fixes.patch b/meta/recipes-support/apr/apr-util/configure_fixes.patch deleted file mode 100644 index 91e244ce2c..0000000000 --- a/meta/recipes-support/apr/apr-util/configure_fixes.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | Upstream-Status: Inappropriate [configuration] | ||
2 | |||
3 | Index: apr-util-1.4.1/configure.in | ||
4 | =================================================================== | ||
5 | --- apr-util-1.4.1.orig/configure.in 2009-12-18 03:15:19.000000000 +0800 | ||
6 | +++ apr-util-1.4.1/configure.in 2011-12-30 13:32:07.000000000 +0800 | ||
7 | @@ -8,15 +8,15 @@ | ||
8 | AC_CONFIG_HEADER(include/private/apu_config.h) | ||
9 | AC_CONFIG_AUX_DIR(build) | ||
10 | |||
11 | -sinclude(build/apu-conf.m4) | ||
12 | -sinclude(build/apu-iconv.m4) | ||
13 | -sinclude(build/apu-hints.m4) | ||
14 | -sinclude(build/apr_common.m4) | ||
15 | -sinclude(build/find_apr.m4) | ||
16 | -sinclude(build/crypto.m4) | ||
17 | -sinclude(build/dbm.m4) | ||
18 | -sinclude(build/dbd.m4) | ||
19 | -sinclude(build/dso.m4) | ||
20 | +#sinclude(build/apu-conf.m4) | ||
21 | +#sinclude(build/apu-iconv.m4) | ||
22 | +#sinclude(build/apu-hints.m4) | ||
23 | +#sinclude(build/apr_common.m4) | ||
24 | +#sinclude(build/find_apr.m4) | ||
25 | +#sinclude(build/crypto.m4) | ||
26 | +#sinclude(build/dbm.m4) | ||
27 | +#sinclude(build/dbd.m4) | ||
28 | +#sinclude(build/dso.m4) | ||
29 | |||
30 | dnl Generate ./config.nice for reproducing runs of configure | ||
31 | dnl | ||
diff --git a/meta/recipes-support/apr/apr-util_1.6.3.bb b/meta/recipes-support/apr/apr-util_1.6.3.bb index 1371e262dd..b5e3d2fc8a 100644 --- a/meta/recipes-support/apr/apr-util_1.6.3.bb +++ b/meta/recipes-support/apr/apr-util_1.6.3.bb | |||
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=158aa0b1efe0c12f23d4b007ddb9a5db \ | |||
11 | 11 | ||
12 | SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \ | 12 | SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \ |
13 | file://configfix.patch \ | 13 | file://configfix.patch \ |
14 | file://configure_fixes.patch \ | ||
15 | file://0001-test_transformation-Check-if-transform-is-supported-.patch \ | 14 | file://0001-test_transformation-Check-if-transform-is-supported-.patch \ |
16 | file://run-ptest \ | 15 | file://run-ptest \ |
17 | " | 16 | " |
@@ -24,7 +23,6 @@ EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ | |||
24 | --without-sqlite2 \ | 23 | --without-sqlite2 \ |
25 | --with-expat=${STAGING_DIR_HOST}${prefix}" | 24 | --with-expat=${STAGING_DIR_HOST}${prefix}" |
26 | 25 | ||
27 | |||
28 | inherit autotools lib_package binconfig multilib_script | 26 | inherit autotools lib_package binconfig multilib_script |
29 | 27 | ||
30 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config" | 28 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config" |
diff --git a/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch index a274f3a16e..72a2ab777e 100644 --- a/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch +++ b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 225abf37cd0b49960664b59f08e515a4c4ea5ad0 Mon Sep 17 00:00:00 2001 | 1 | From dc02ac2f43e47178a9b1f35ef6906d7835dc121b Mon Sep 17 00:00:00 2001 |
2 | From: Jeremy Puhlman <jpuhlman@mvista.com> | 2 | From: Jeremy Puhlman <jpuhlman@mvista.com> |
3 | Date: Thu, 26 Mar 2020 18:30:36 +0000 | 3 | Date: Thu, 26 Mar 2020 18:30:36 +0000 |
4 | Subject: [PATCH] Add option to disable timed dependant tests | 4 | Subject: [PATCH] Add option to disable timed dependant tests |
@@ -7,9 +7,8 @@ The disabled tests rely on timing to pass correctly. On a virtualized | |||
7 | system under heavy load, these tests randomly fail because they miss | 7 | system under heavy load, these tests randomly fail because they miss |
8 | a timer or other timing related issues. | 8 | a timer or other timing related issues. |
9 | 9 | ||
10 | Upstream-Status: Pending | 10 | Upstream-Status: Submitted [https://github.com/apache/apr/pull/54] |
11 | Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> | 11 | Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> |
12 | |||
13 | --- | 12 | --- |
14 | configure.in | 6 ++++++ | 13 | configure.in | 6 ++++++ |
15 | include/apr.h.in | 1 + | 14 | include/apr.h.in | 1 + |
@@ -17,10 +16,10 @@ Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> | |||
17 | 3 files changed, 9 insertions(+), 2 deletions(-) | 16 | 3 files changed, 9 insertions(+), 2 deletions(-) |
18 | 17 | ||
19 | diff --git a/configure.in b/configure.in | 18 | diff --git a/configure.in b/configure.in |
20 | index bfd488b..3663220 100644 | 19 | index 0ce20ab..3d42953 100644 |
21 | --- a/configure.in | 20 | --- a/configure.in |
22 | +++ b/configure.in | 21 | +++ b/configure.in |
23 | @@ -3023,6 +3023,12 @@ AC_ARG_ENABLE(timedlocks, | 22 | @@ -3119,6 +3119,12 @@ AC_ARG_ENABLE(timedlocks, |
24 | ) | 23 | ) |
25 | AC_SUBST(apr_has_timedlocks) | 24 | AC_SUBST(apr_has_timedlocks) |
26 | 25 | ||
@@ -34,10 +33,10 @@ index bfd488b..3663220 100644 | |||
34 | # so getaddrinfo/gai_strerror are not used. | 33 | # so getaddrinfo/gai_strerror are not used. |
35 | if test $have_ipv6 = 0; then | 34 | if test $have_ipv6 = 0; then |
36 | diff --git a/include/apr.h.in b/include/apr.h.in | 35 | diff --git a/include/apr.h.in b/include/apr.h.in |
37 | index ee99def..c46a5f4 100644 | 36 | index 637ed38..e7cb9b9 100644 |
38 | --- a/include/apr.h.in | 37 | --- a/include/apr.h.in |
39 | +++ b/include/apr.h.in | 38 | +++ b/include/apr.h.in |
40 | @@ -298,6 +298,7 @@ extern "C" { | 39 | @@ -307,6 +307,7 @@ extern "C" { |
41 | #define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@ | 40 | #define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@ |
42 | #define APR_HAS_OS_UUID @osuuid@ | 41 | #define APR_HAS_OS_UUID @osuuid@ |
43 | #define APR_HAS_TIMEDLOCKS @apr_has_timedlocks@ | 42 | #define APR_HAS_TIMEDLOCKS @apr_has_timedlocks@ |
diff --git a/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch b/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch index a78b16284f..7e22270b88 100644 --- a/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch +++ b/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 316b81c462f065927d7fec56aadd5c8cb94d1cf0 Mon Sep 17 00:00:00 2001 | 1 | From 84990901ba642238779c74a003c1f5e572ab8d38 Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Fri, 26 Aug 2022 00:28:08 -0700 | 3 | Date: Fri, 26 Aug 2022 00:28:08 -0700 |
4 | Subject: [PATCH] configure: Remove runtime test for mmap that can map | 4 | Subject: [PATCH] configure: Remove runtime test for mmap that can map |
@@ -10,16 +10,15 @@ mutexes | |||
10 | 10 | ||
11 | Upstream-Status: Inappropriate [Cross-compile specific] | 11 | Upstream-Status: Inappropriate [Cross-compile specific] |
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
13 | |||
14 | --- | 13 | --- |
15 | configure.in | 30 ------------------------------ | 14 | configure.in | 30 ------------------------------ |
16 | 1 file changed, 30 deletions(-) | 15 | 1 file changed, 30 deletions(-) |
17 | 16 | ||
18 | diff --git a/configure.in b/configure.in | 17 | diff --git a/configure.in b/configure.in |
19 | index 3663220..dce9789 100644 | 18 | index 3d42953..7e43b0f 100644 |
20 | --- a/configure.in | 19 | --- a/configure.in |
21 | +++ b/configure.in | 20 | +++ b/configure.in |
22 | @@ -1303,36 +1303,6 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm_unlink shmget shmat shmdt shmctl \ | 21 | @@ -1391,36 +1391,6 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm_unlink shmget shmat shmdt shmctl \ |
23 | APR_CHECK_DEFINE(MAP_ANON, sys/mman.h) | 22 | APR_CHECK_DEFINE(MAP_ANON, sys/mman.h) |
24 | AC_CHECK_FILE(/dev/zero) | 23 | AC_CHECK_FILE(/dev/zero) |
25 | 24 | ||
@@ -34,7 +33,7 @@ index 3663220..dce9789 100644 | |||
34 | -#ifdef HAVE_SYS_MMAN_H | 33 | -#ifdef HAVE_SYS_MMAN_H |
35 | -#include <sys/mman.h> | 34 | -#include <sys/mman.h> |
36 | -#endif | 35 | -#endif |
37 | - int main() | 36 | - int main(int argc, const char *argv[]) |
38 | - { | 37 | - { |
39 | - int fd; | 38 | - int fd; |
40 | - void *m; | 39 | - void *m; |
diff --git a/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch b/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch index d63423f3a1..2a9cfb0f3d 100644 --- a/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch +++ b/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 689a8db96a6d1e1cae9cbfb35d05ac82140a6555 Mon Sep 17 00:00:00 2001 | 1 | From 5050645e626a8ee91a7f45070ef2d3911e1870d7 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Tue, 30 Jan 2018 09:39:06 +0800 | 3 | Date: Tue, 30 Jan 2018 09:39:06 +0800 |
4 | Subject: [PATCH] apr: Remove workdir path references from installed apr files | 4 | Subject: [PATCH] apr: Remove workdir path references from installed apr files |
@@ -13,16 +13,15 @@ packages at target run time, the workdir path caused confusion. | |||
13 | Rebase to 1.6.3 | 13 | Rebase to 1.6.3 |
14 | 14 | ||
15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
16 | |||
17 | --- | 16 | --- |
18 | apr-config.in | 32 ++------------------------------ | 17 | apr-config.in | 32 ++------------------------------ |
19 | 1 file changed, 2 insertions(+), 30 deletions(-) | 18 | 1 file changed, 2 insertions(+), 30 deletions(-) |
20 | 19 | ||
21 | diff --git a/apr-config.in b/apr-config.in | 20 | diff --git a/apr-config.in b/apr-config.in |
22 | index bed47ca..47874e5 100644 | 21 | index 626d3b0..42be269 100644 |
23 | --- a/apr-config.in | 22 | --- a/apr-config.in |
24 | +++ b/apr-config.in | 23 | +++ b/apr-config.in |
25 | @@ -164,16 +164,7 @@ while test $# -gt 0; do | 24 | @@ -179,16 +179,7 @@ while test $# -gt 0; do |
26 | flags="$flags $LDFLAGS" | 25 | flags="$flags $LDFLAGS" |
27 | ;; | 26 | ;; |
28 | --includes) | 27 | --includes) |
@@ -39,7 +38,7 @@ index bed47ca..47874e5 100644 | |||
39 | ;; | 38 | ;; |
40 | --srcdir) | 39 | --srcdir) |
41 | echo $APR_SOURCE_DIR | 40 | echo $APR_SOURCE_DIR |
42 | @@ -197,33 +188,14 @@ while test $# -gt 0; do | 41 | @@ -212,33 +203,14 @@ while test $# -gt 0; do |
43 | exit 0 | 42 | exit 0 |
44 | ;; | 43 | ;; |
45 | --link-ld) | 44 | --link-ld) |
diff --git a/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch b/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch index 02634e6fde..bd8e7786ba 100644 --- a/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch +++ b/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch | |||
@@ -1,7 +1,7 @@ | |||
1 | From 2e66cece0c3adff92733332111204ddc1d730a07 Mon Sep 17 00:00:00 2001 | 1 | From 2f5db35d6c6b4d40e04591c98d297ef764777aa3 Mon Sep 17 00:00:00 2001 |
2 | From: Robert Yang <liezhi.yang@windriver.com> | 2 | From: Robert Yang <liezhi.yang@windriver.com> |
3 | Date: Thu, 19 Nov 2015 18:25:38 -0800 | 3 | Date: Thu, 19 Nov 2015 18:25:38 -0800 |
4 | Subject: [PATCH 5/7] configure.in: fix LTFLAGS to make it work with ccache | 4 | Subject: [PATCH] configure.in: fix LTFLAGS to make it work with ccache |
5 | 5 | ||
6 | When ccache is enabled, libtool requires --tag=CC when use ccache, | 6 | When ccache is enabled, libtool requires --tag=CC when use ccache, |
7 | otherwise when building apr-util with ccache enabled: | 7 | otherwise when building apr-util with ccache enabled: |
@@ -19,10 +19,10 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | |||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | 19 | 1 file changed, 1 insertion(+), 1 deletion(-) |
20 | 20 | ||
21 | diff --git a/configure.in b/configure.in | 21 | diff --git a/configure.in b/configure.in |
22 | index 361120f..3b10422 100644 | 22 | index b0457e2..0ce20ab 100644 |
23 | --- a/configure.in | 23 | --- a/configure.in |
24 | +++ b/configure.in | 24 | +++ b/configure.in |
25 | @@ -249,7 +249,7 @@ case $host in | 25 | @@ -266,7 +266,7 @@ case $host in |
26 | ;; | 26 | ;; |
27 | *) | 27 | *) |
28 | if test "x$LTFLAGS" = "x"; then | 28 | if test "x$LTFLAGS" = "x"; then |
@@ -31,6 +31,3 @@ index 361120f..3b10422 100644 | |||
31 | fi | 31 | fi |
32 | if test "$experimental_libtool" = "yes"; then | 32 | if test "$experimental_libtool" = "yes"; then |
33 | # Use a custom-made libtool replacement | 33 | # Use a custom-made libtool replacement |
34 | -- | ||
35 | 1.8.3.1 | ||
36 | |||
diff --git a/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch b/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch deleted file mode 100644 index 8760b0140c..0000000000 --- a/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | From c6afc4a4a766478cb6aa6b43a50051881b6318d7 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Fri, 3 Mar 2017 22:24:17 +0100 | ||
4 | Subject: [PATCH 7/7] explicitly link libapr against phtread to make gold happy | ||
5 | on test | ||
6 | MIME-Version: 1.0 | ||
7 | Content-Type: text/plain; charset=UTF-8 | ||
8 | Content-Transfer-Encoding: 8bit | ||
9 | |||
10 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_init' | ||
11 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_settype' | ||
12 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_destroy' | ||
13 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutex_trylock' | ||
14 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_attr_setstacksize' | ||
15 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_create' | ||
16 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_join' | ||
17 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_detach' | ||
18 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_sigmask' | ||
19 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_once' | ||
20 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_create' | ||
21 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_getspecific' | ||
22 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_delete' | ||
23 | | ../.libs/libapr-1.so: error: undefined reference to 'pthread_setspecific' | ||
24 | | collect2: error: ld returned 1 exit status | ||
25 | | Makefile:114: recipe for target 'globalmutexchild' failed | ||
26 | | make[1]: *** [globalmutexchild] Error 1 | ||
27 | | make[1]: Leaving directory '/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/apr/1.5.2-r0/apr-1.5.2/test' | ||
28 | |||
29 | Upstream-Status: Pending | ||
30 | |||
31 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
32 | --- | ||
33 | configure.in | 1 + | ||
34 | 1 file changed, 1 insertion(+) | ||
35 | |||
36 | diff --git a/configure.in b/configure.in | ||
37 | index a227e72..cbc0f90 100644 | ||
38 | --- a/configure.in | ||
39 | +++ b/configure.in | ||
40 | @@ -784,6 +784,7 @@ else | ||
41 | APR_PTHREADS_CHECK_RESTORE ] ) | ||
42 | fi | ||
43 | if test "$pthreadh" = "1"; then | ||
44 | + APR_ADDTO(LIBS,[-lpthread]) | ||
45 | APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS | ||
46 | APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG | ||
47 | APR_CHECK_PTHREAD_RECURSIVE_MUTEX | ||
48 | -- | ||
49 | 1.8.3.1 | ||
50 | |||
diff --git a/meta/recipes-support/apr/apr/libtoolize_check.patch b/meta/recipes-support/apr/apr/libtoolize_check.patch deleted file mode 100644 index 80ce43caa4..0000000000 --- a/meta/recipes-support/apr/apr/libtoolize_check.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From 17835709bc55657b7af1f7c99b3f572b819cf97e Mon Sep 17 00:00:00 2001 | ||
2 | From: Helmut Grohne <helmut@subdivi.de> | ||
3 | Date: Tue, 7 Feb 2023 07:04:00 +0000 | ||
4 | Subject: [PATCH] check for libtoolize rather than libtool | ||
5 | |||
6 | libtool is now in package libtool-bin, but apr only needs libtoolize. | ||
7 | |||
8 | Upstream-Status: Pending [ from debian: https://sources.debian.org/data/main/a/apr/1.6.5-1/debian/patches/libtoolize_check.patch ] | ||
9 | |||
10 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
11 | |||
12 | --- | ||
13 | build/buildcheck.sh | 10 ++++------ | ||
14 | 1 file changed, 4 insertions(+), 6 deletions(-) | ||
15 | |||
16 | diff --git a/build/buildcheck.sh b/build/buildcheck.sh | ||
17 | index 44921b5..08bc8a8 100755 | ||
18 | --- a/build/buildcheck.sh | ||
19 | +++ b/build/buildcheck.sh | ||
20 | @@ -39,13 +39,11 @@ fi | ||
21 | # ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a | ||
22 | # output is multiline from 1.5 onwards | ||
23 | |||
24 | -# Require libtool 1.4 or newer | ||
25 | -if test -z "$libtool"; then | ||
26 | - libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` | ||
27 | -fi | ||
28 | -lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` | ||
29 | +# Require libtoolize 1.4 or newer | ||
30 | +libtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize libtoolize15 libtoolize14` | ||
31 | +lt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` | ||
32 | if test -z "$lt_pversion"; then | ||
33 | - echo "buildconf: libtool not found." | ||
34 | + echo "buildconf: libtoolize not found." | ||
35 | echo " You need libtool version 1.4 or newer installed" | ||
36 | echo " to build APR from SVN." | ||
37 | res=1 | ||
diff --git a/meta/recipes-support/apr/apr_1.7.4.bb b/meta/recipes-support/apr/apr_1.7.6.bb index d322629b66..13fa5daa3c 100644 --- a/meta/recipes-support/apr/apr_1.7.4.bb +++ b/meta/recipes-support/apr/apr_1.7.6.bb | |||
@@ -18,15 +18,13 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \ | |||
18 | file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \ | 18 | file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \ |
19 | file://0004-Fix-packet-discards-HTTP-redirect.patch \ | 19 | file://0004-Fix-packet-discards-HTTP-redirect.patch \ |
20 | file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ | 20 | file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ |
21 | file://0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch \ | ||
22 | file://libtoolize_check.patch \ | ||
23 | file://0001-Add-option-to-disable-timed-dependant-tests.patch \ | 21 | file://0001-Add-option-to-disable-timed-dependant-tests.patch \ |
24 | file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \ | 22 | file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \ |
25 | file://autoconf-2.73.patch \ | 23 | file://autoconf-2.73.patch \ |
26 | file://0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch \ | 24 | file://0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch \ |
27 | " | 25 | " |
28 | 26 | ||
29 | SRC_URI[sha256sum] = "fc648de983f3a2a6c9e78dea1f180639bd2fad6c06d556d4367a701fe5c35577" | 27 | SRC_URI[sha256sum] = "49030d92d2575da735791b496dc322f3ce5cff9494779ba8cc28c7f46c5deb32" |
30 | 28 | ||
31 | inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script | 29 | inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script |
32 | 30 | ||
@@ -136,4 +134,4 @@ do_install_ptest() { | |||
136 | cp ${S}/test/tryread $t/ | 134 | cp ${S}/test/tryread $t/ |
137 | } | 135 | } |
138 | 136 | ||
139 | export CONFIG_SHELL="/bin/bash" | 137 | export CONFIG_SHELL = "/bin/bash" |
diff --git a/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb b/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb index 00b6036502..74f53de6d7 100644 --- a/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb +++ b/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb | |||
@@ -12,7 +12,6 @@ SRC_URI = "git://github.com/ericonr/argp-standalone;branch=master;protocol=https | |||
12 | file://out_of_tree_build.patch \ | 12 | file://out_of_tree_build.patch \ |
13 | " | 13 | " |
14 | SRCREV = "e5fe9ad9e83e6765cf8fa787f903d4c6792338b5" | 14 | SRCREV = "e5fe9ad9e83e6765cf8fa787f903d4c6792338b5" |
15 | S = "${WORKDIR}/git" | ||
16 | 15 | ||
17 | inherit autotools | 16 | inherit autotools |
18 | 17 | ||
diff --git a/meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch b/meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch new file mode 100644 index 0000000000..4045e8e412 --- /dev/null +++ b/meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | From d45bf96b0a3556acb2c83069a78eaaac973d31b4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Sergei Trofimovich <slyich@gmail.com> | ||
3 | Date: Sun, 21 Jul 2024 22:01:50 +0100 | ||
4 | Subject: [PATCH] modules/speller/default/vector_hash-t.hpp: fix gcc-15 build | ||
5 | |||
6 | Uncoming `gcc-15` added extra checks for template instantiation that is | ||
7 | guaranteed to fail in | ||
8 | https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=313afcfdabeab3e6705ac0bd1273627075be0023 | ||
9 | |||
10 | As a result `aspell` build now fails as: | ||
11 | |||
12 | In file included from modules/speller/default/readonly_ws.cpp:51: | ||
13 | modules/speller/default/vector_hash-t.hpp: In member function 'void aspeller::VectorHashTable<Parms>::recalc_size()': | ||
14 | modules/speller/default/vector_hash-t.hpp:186:43: error: 'class aspeller::VectorHashTable<Parms>' has no member named 'e' | ||
15 | 186 | for (iterator i = begin(); i != this->e; ++i, ++this->_size); | ||
16 | | ^ | ||
17 | modules/speller/default/vector_hash-t.hpp:186:59: error: 'class aspeller::VectorHashTable<Parms>' has no member named '_size'; did you mean 'size'? | ||
18 | 186 | for (iterator i = begin(); i != this->e; ++i, ++this->_size); | ||
19 | | ^~~~~ | ||
20 | | size | ||
21 | |||
22 | It looks like `_size` is `size_` mis-spelling and `e` was not introduced | ||
23 | here. | ||
24 | Upstream-Status: Backport [https://github.com/GNUAspell/aspell/commit/ee6cbb12ff36a1e6618d7388a78dd4e0a2b44041] | ||
25 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
26 | --- | ||
27 | modules/speller/default/vector_hash-t.hpp | 2 +- | ||
28 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
29 | |||
30 | diff --git a/modules/speller/default/vector_hash-t.hpp b/modules/speller/default/vector_hash-t.hpp | ||
31 | index 969a80c..e4420b4 100644 | ||
32 | --- a/modules/speller/default/vector_hash-t.hpp | ||
33 | +++ b/modules/speller/default/vector_hash-t.hpp | ||
34 | @@ -183,7 +183,7 @@ namespace aspeller { | ||
35 | template<class Parms> | ||
36 | void VectorHashTable<Parms>::recalc_size() { | ||
37 | size_ = 0; | ||
38 | - for (iterator i = begin(); i != this->e; ++i, ++this->_size); | ||
39 | + for (iterator i = begin(), e = end(); i != e; ++i, ++size_); | ||
40 | } | ||
41 | |||
42 | } | ||
diff --git a/meta/recipes-support/aspell/aspell_0.60.8.1.bb b/meta/recipes-support/aspell/aspell_0.60.8.1.bb index 0ea9b063e0..43940b1e1b 100644 --- a/meta/recipes-support/aspell/aspell_0.60.8.1.bb +++ b/meta/recipes-support/aspell/aspell_0.60.8.1.bb | |||
@@ -13,7 +13,8 @@ HOMEPAGE = "http://aspell.net/" | |||
13 | LICENSE = "LGPL-2.0-only | LGPL-2.1-only" | 13 | LICENSE = "LGPL-2.0-only | LGPL-2.1-only" |
14 | LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" | 14 | LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" |
15 | 15 | ||
16 | SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz" | 16 | SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz \ |
17 | file://0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch" | ||
17 | SRC_URI[sha256sum] = "d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b" | 18 | SRC_URI[sha256sum] = "d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b" |
18 | 19 | ||
19 | PACKAGECONFIG ??= "" | 20 | PACKAGECONFIG ??= "" |
diff --git a/meta/recipes-support/atk/at-spi2-core_2.52.0.bb b/meta/recipes-support/atk/at-spi2-core_2.56.2.bb index cf221e0389..59eed4b5ab 100644 --- a/meta/recipes-support/atk/at-spi2-core_2.52.0.bb +++ b/meta/recipes-support/atk/at-spi2-core_2.56.2.bb | |||
@@ -7,11 +7,13 @@ BUGTRACKER = "http://bugzilla.gnome.org/" | |||
7 | LICENSE = "LGPL-2.1-or-later" | 7 | LICENSE = "LGPL-2.1-or-later" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" |
9 | 9 | ||
10 | CVE_PRODUCT += "at-spi2-atk" | ||
11 | |||
10 | MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" | 12 | MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" |
11 | 13 | ||
12 | SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz" | 14 | SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz" |
13 | 15 | ||
14 | SRC_URI[sha256sum] = "0ac3fc8320c8d01fa147c272ba7fa03806389c6b03d3c406d0823e30e35ff5ab" | 16 | SRC_URI[sha256sum] = "e1b1c9836a8947852f7440c32e23179234c76bd98cd9cc4001f376405f8b783b" |
15 | 17 | ||
16 | DEPENDS = " \ | 18 | DEPENDS = " \ |
17 | dbus \ | 19 | dbus \ |
@@ -43,6 +45,6 @@ FILES:${PN} += "${libdir}/gnome-settings-daemon-3.0/gtk-modules/at-spi2-atk.desk | |||
43 | ${datadir}/dbus-1/services/*.service \ | 45 | ${datadir}/dbus-1/services/*.service \ |
44 | ${datadir}/dbus-1/accessibility-services/*.service \ | 46 | ${datadir}/dbus-1/accessibility-services/*.service \ |
45 | ${datadir}/defaults/at-spi2 \ | 47 | ${datadir}/defaults/at-spi2 \ |
46 | ${systemd_user_unitdir}/at-spi-dbus-bus.service \ | 48 | ${systemd_user_unitdir}/at-spi-dbus-bus.service \ |
47 | " | 49 | " |
48 | BBCLASSEXTEND = "native nativesdk" | 50 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch b/meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch new file mode 100644 index 0000000000..5052bdaa2f --- /dev/null +++ b/meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | From 56abe432b65801f31277fb9a3bca0f9e31502315 Mon Sep 17 00:00:00 2001 | ||
2 | From: Matthias Gerstner <matthias.gerstner@suse.de> | ||
3 | Date: Thu, 25 Apr 2024 12:43:49 +0200 | ||
4 | Subject: [PATCH] libmisc: __acl_get_uid(): fix memory wasting loop if user | ||
5 | does not exist | ||
6 | |||
7 | I noticed that `acl_from_text()` unexpectedly returns ENOMEM for invalid | ||
8 | user names. The reason for this is a missing break statement in the for | ||
9 | loop in `__acl_get_uid()`, which causes the loop to act as if ERANGE was | ||
10 | returned from `getpwnam_r()`, thereby exponentially increasing the | ||
11 | buffer size to (in my case) multiple gigabytes, until `grow_buffer()` | ||
12 | reports ENOMEM, which terminates the `__acl_get_uid()` function. | ||
13 | |||
14 | This is a pretty costly "no such user" lookup that can disturb a | ||
15 | process's heap memory management, but can also cause a process to fail | ||
16 | e.g. if it is multithreaded and other threads encounter an ENOMEM, | ||
17 | before `__acl_get_uid()` frees the gigantic heap buffer and returns. | ||
18 | The allocated memory isn't actually used. Therefore on Linux it should | ||
19 | not affect other processes by default, due to its overcommit memory | ||
20 | and lazy memory allocation strategy. | ||
21 | |||
22 | Fix this by properly terminating the for loop on any conditions except | ||
23 | an ERANGE error being reported. The same break statement correctly | ||
24 | exists in `__acl_get_gid()` already. | ||
25 | |||
26 | Fixes: 3737f00 ("use thread-safe getpwnam_r and getgrnam_r") | ||
27 | Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> | ||
28 | |||
29 | Upstream-Status: Backport | ||
30 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
31 | --- | ||
32 | libmisc/uid_gid_lookup.c | 1 + | ||
33 | 1 file changed, 1 insertion(+) | ||
34 | |||
35 | diff --git a/libmisc/uid_gid_lookup.c b/libmisc/uid_gid_lookup.c | ||
36 | index a4f21f6..74baab4 100644 | ||
37 | --- a/libmisc/uid_gid_lookup.c | ||
38 | +++ b/libmisc/uid_gid_lookup.c | ||
39 | @@ -91,6 +91,7 @@ __acl_get_uid(const char *token, uid_t *uid_p) | ||
40 | if (err == ERANGE) | ||
41 | continue; | ||
42 | errno = err ? err : EINVAL; | ||
43 | + break; | ||
44 | } | ||
45 | free(buffer); | ||
46 | return result ? 0 : -1; | ||
47 | -- | ||
48 | 2.43.0 | ||
49 | |||
diff --git a/meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch b/meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch new file mode 100644 index 0000000000..5aa3f3224c --- /dev/null +++ b/meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch | |||
@@ -0,0 +1,35 @@ | |||
1 | From 47f8039ec9bd08b629775c8e788d11e41fa95f14 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andreas Gruenbacher <agruenba@redhat.com> | ||
3 | Date: Mon, 24 Mar 2025 21:14:09 +0100 | ||
4 | Subject: [PATCH] test/misc.test: Don't mix stdout and stderr | ||
5 | |||
6 | In different environments, we may not get the stdout and stderr output | ||
7 | in the order the run script expects, so check both separately. | ||
8 | |||
9 | Fixes: https://savannah.nongnu.org/bugs/?66944 | ||
10 | Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> | ||
11 | |||
12 | Upstream-Status: Backport | ||
13 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
14 | --- | ||
15 | test/misc.test | 3 ++- | ||
16 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/test/misc.test b/test/misc.test | ||
19 | index 06b3136..57c02e5 100644 | ||
20 | --- a/test/misc.test | ||
21 | +++ b/test/misc.test | ||
22 | @@ -440,8 +440,9 @@ Dangling symlink test https://savannah.nongnu.org/bugs/?28131 | ||
23 | > other::r-x | ||
24 | > | ||
25 | $ setfacl -R -m u:bin:rw d | ||
26 | - $ getfacl -RL d | ||
27 | + $ getfacl -RL d > /dev/null | ||
28 | > getfacl: d/b: No such file or directory | ||
29 | + $ getfacl -RL d 2> /dev/null | ||
30 | > # file: d | ||
31 | > # owner: %TUSER | ||
32 | > # group: %TGROUP | ||
33 | -- | ||
34 | 2.43.0 | ||
35 | |||
diff --git a/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch b/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch deleted file mode 100644 index 219feaccd0..0000000000 --- a/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | From 7dec6fa3b3494a55120402ff1ea3eb96b67138e8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 12 Dec 2019 15:47:49 +0100 | ||
4 | Subject: [PATCH] test: patch out failing bits | ||
5 | |||
6 | I have confirmed on the host distro (Ubuntu 18.04) that they | ||
7 | fail as well; upstream probably haven't noticed because the | ||
8 | test is only executed under sudo. | ||
9 | |||
10 | Upstream-Status: Inappropriate [disabling tests instead of fixing them properly] | ||
11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
12 | --- | ||
13 | test/root/permissions.test | 13 ------------- | ||
14 | 1 file changed, 13 deletions(-) | ||
15 | |||
16 | diff --git a/test/root/permissions.test b/test/root/permissions.test | ||
17 | index 8f8f825..21e8a95 100644 | ||
18 | --- a/test/root/permissions.test | ||
19 | +++ b/test/root/permissions.test | ||
20 | @@ -50,10 +50,6 @@ User daemon is a member in the owning group, which has only read access. | ||
21 | Verify this. | ||
22 | |||
23 | $ su daemon | ||
24 | - $ cat f | ||
25 | - > root | ||
26 | - > bin | ||
27 | - | ||
28 | $ echo daemon >> f | ||
29 | >~ .*f: Permission denied$ | ||
30 | |||
31 | @@ -146,8 +142,6 @@ the owning group, he should still have no write access. | ||
32 | $ setfacl -x g:daemon f | ||
33 | |||
34 | $ su daemon | ||
35 | - $ echo daemon4 >> f | ||
36 | - >~ .*f: Permission denied$ | ||
37 | |||
38 | |||
39 | Change the owning group. The other permissions should now grant user | ||
40 | @@ -158,12 +152,6 @@ daemon write access. | ||
41 | |||
42 | $ su daemon | ||
43 | $ echo daemon5 >> f | ||
44 | - $ cat f | ||
45 | - > root | ||
46 | - > bin | ||
47 | - > daemon | ||
48 | - > daemon2 | ||
49 | - > daemon5 | ||
50 | |||
51 | |||
52 | Verify that permissions in separate matching ACL entries do not | ||
53 | @@ -173,7 +161,6 @@ accumulate. | ||
54 | $ setfacl -m g:bin:r,g:daemon:w f | ||
55 | |||
56 | $ su daemon | ||
57 | - $ : < f | ||
58 | $ : > f | ||
59 | $ : <> f | ||
60 | >~ .*f: Permission denied$ | ||
diff --git a/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch b/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch deleted file mode 100644 index 748f37f3e7..0000000000 --- a/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | From 42ae3f8a5e32ba0681ccd1552a203ddad8748a6e Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 12 Dec 2019 13:45:52 +0100 | ||
4 | Subject: [PATCH] tests: do not hardcode the build path into a helper library | ||
5 | |||
6 | Upstream-Status: Inappropriate [oe-core specific] | ||
7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
8 | --- | ||
9 | test/Makemodule.am | 2 +- | ||
10 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
11 | |||
12 | diff --git a/test/Makemodule.am b/test/Makemodule.am | ||
13 | index e1d715d..cffe732 100644 | ||
14 | --- a/test/Makemodule.am | ||
15 | +++ b/test/Makemodule.am | ||
16 | @@ -30,7 +30,7 @@ EXTRA_DIST += \ | ||
17 | check_LTLIBRARIES = libtestlookup.la | ||
18 | |||
19 | libtestlookup_la_SOURCES = test/test_passwd.c test/test_group.c | ||
20 | -libtestlookup_la_CFLAGS = -DBASEDIR=\"$(abs_srcdir)\" | ||
21 | +libtestlookup_la_CFLAGS = -DBASEDIR=\"/tmp/acl-ptest\" | ||
22 | libtestlookup_la_LDFLAGS = -rpath $(abs_builddir) | ||
23 | |||
24 | # Make sure translations don't break tests when matching output. | ||
diff --git a/meta/recipes-support/attr/acl/run-ptest b/meta/recipes-support/attr/acl/run-ptest index 3af75c84fe..f28d8c1212 100644 --- a/meta/recipes-support/attr/acl/run-ptest +++ b/meta/recipes-support/attr/acl/run-ptest | |||
@@ -1,16 +1,31 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | # | ||
3 | #This script is used to run acl test suites | ||
4 | 2 | ||
5 | #umask 077 | 3 | failed=0 |
4 | all=0 | ||
6 | 5 | ||
7 | mkdir -p /tmp/acl-ptest/test | ||
8 | cp test/test.* /tmp/acl-ptest/test | ||
9 | 6 | ||
10 | set +e | 7 | for f in *.test; do |
11 | make test-suite.log | 8 | LD_PRELOAD=$(pwd)/libtestlookup.so ./run $f |
12 | exitcode=$? | 9 | case "$?" in |
13 | if [ $exitcode -ne 0 -a -e test-suite.log ]; then | 10 | 0) |
14 | cat test-suite.log | 11 | echo "PASS: $f" |
12 | all=$((all + 1)) | ||
13 | ;; | ||
14 | 77) | ||
15 | echo "SKIP: $f" | ||
16 | ;; | ||
17 | *) | ||
18 | echo "FAIL: $f" | ||
19 | failed=$((failed + 1)) | ||
20 | all=$((all + 1)) | ||
21 | ;; | ||
22 | esac | ||
23 | done | ||
24 | |||
25 | if [ "$failed" -eq 0 ] ; then | ||
26 | echo "All $all tests passed" | ||
27 | exit 0 | ||
28 | else | ||
29 | echo "$failed of $all tests failed" | ||
30 | exit 1 | ||
15 | fi | 31 | fi |
16 | exit $exitcode | ||
diff --git a/meta/recipes-support/attr/acl_2.3.2.bb b/meta/recipes-support/attr/acl_2.3.2.bb index 6178473873..a405cc2692 100644 --- a/meta/recipes-support/attr/acl_2.3.2.bb +++ b/meta/recipes-support/attr/acl_2.3.2.bb | |||
@@ -16,11 +16,10 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=c781d70ed2b4d48995b790403217a249 \ | |||
16 | DEPENDS = "attr" | 16 | DEPENDS = "attr" |
17 | 17 | ||
18 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.tar.gz \ | 18 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.tar.gz \ |
19 | file://0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch \ | ||
20 | file://0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch \ | ||
19 | file://run-ptest \ | 21 | file://run-ptest \ |
20 | file://0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch \ | ||
21 | file://0001-test-patch-out-failing-bits.patch \ | ||
22 | " | 22 | " |
23 | |||
24 | SRC_URI[sha256sum] = "5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c" | 23 | SRC_URI[sha256sum] = "5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c" |
25 | 24 | ||
26 | inherit autotools gettext ptest | 25 | inherit autotools gettext ptest |
@@ -31,55 +30,41 @@ PACKAGES =+ "lib${BPN}" | |||
31 | 30 | ||
32 | FILES:lib${BPN} = "${libdir}/lib*${SOLIBS}" | 31 | FILES:lib${BPN} = "${libdir}/lib*${SOLIBS}" |
33 | 32 | ||
34 | PTEST_BUILD_HOST_FILES = "builddefs" | ||
35 | PTEST_BUILD_HOST_PATTERN = "^RPM" | ||
36 | |||
37 | do_compile_ptest() { | 33 | do_compile_ptest() { |
38 | oe_runmake libtestlookup.la | 34 | oe_runmake libtestlookup.la libtestlookup_la_CFLAGS=-DBASEDIR=\\\"${PTEST_PATH}\\\" |
39 | } | 35 | } |
40 | 36 | ||
41 | do_install_ptest() { | 37 | do_install_ptest() { |
42 | cp -rf ${S}/test/ ${D}${PTEST_PATH} | 38 | install -m755 ${S}/test/run ${S}/test/sort-getfacl-output ${D}${PTEST_PATH}/ |
43 | cp -rf ${S}/build-aux/ ${D}${PTEST_PATH} | 39 | install -m644 ${S}/test/*.acl ${D}${PTEST_PATH}/ |
44 | mkdir -p ${D}${PTEST_PATH}/.libs | 40 | |
45 | cp -rf ${B}/.libs/libtestlookup* ${D}${PTEST_PATH}/.libs | 41 | # Install the tests |
46 | cp ${B}/Makefile ${D}${PTEST_PATH} | 42 | for t in $(makefile-getvar ${S}/test/Makemodule.am TESTS); do |
47 | 43 | install -m644 ${S}/$t ${D}${PTEST_PATH}/ | |
48 | sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ | 44 | done |
49 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | 45 | # Remove the tests that are expected to fail (they need a NFS server configured) |
50 | -e 's:${HOSTTOOLS_DIR}/::g' \ | 46 | for t in $(makefile-getvar ${S}/test/Makemodule.am XFAIL_TESTS); do |
51 | -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ | 47 | rm ${D}${PTEST_PATH}/$(basename $t) |
52 | -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ | 48 | done |
53 | -i ${D}${PTEST_PATH}/Makefile | 49 | # These tests need a very specific user/group setup |
54 | 50 | # (https://savannah.nongnu.org/bugs/index.php?66927) | |
55 | sed -i "s|^srcdir =.*|srcdir = \.|g" ${D}${PTEST_PATH}/Makefile | 51 | rm -f ${D}${PTEST_PATH}/getfacl.test ${D}${PTEST_PATH}/permissions.test ${D}${PTEST_PATH}/restore.test ${D}${PTEST_PATH}/setfacl.test |
56 | sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" ${D}${PTEST_PATH}/Makefile | 52 | |
57 | sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" ${D}${PTEST_PATH}/Makefile | 53 | ${B}/libtool --mode=install install ${B}/libtestlookup.la ${D}${PTEST_PATH}/ |
58 | sed -i "s|^Makefile:.*|Makefile:|g" ${D}${PTEST_PATH}/Makefile | 54 | rm -f ${D}${PTEST_PATH}/*.la |
59 | 55 | install -d ${D}${PTEST_PATH}/test | |
60 | rm ${D}${PTEST_PATH}/.libs/libtestlookup.lai | 56 | install -m644 ${S}/test/test.passwd ${S}/test/test.group ${D}${PTEST_PATH}/test |
61 | } | ||
62 | |||
63 | do_install_ptest:append:libc-musl() { | ||
64 | sed -i -e '/test\/misc.test/d' ${D}${PTEST_PATH}/Makefile | ||
65 | } | 57 | } |
66 | 58 | ||
67 | RDEPENDS:${PN}-ptest = "acl \ | 59 | RDEPENDS:${PN}-ptest = "acl \ |
68 | bash \ | ||
69 | coreutils \ | 60 | coreutils \ |
70 | perl \ | 61 | perl \ |
71 | perl-module-constant \ | ||
72 | perl-module-filehandle \ | ||
73 | perl-module-getopt-std \ | ||
74 | perl-module-posix \ | ||
75 | shadow \ | ||
76 | make \ | ||
77 | gawk \ | ||
78 | e2fsprogs-mke2fs \ | ||
79 | perl-module-cwd \ | 62 | perl-module-cwd \ |
80 | perl-module-file-basename \ | 63 | perl-module-file-basename \ |
81 | perl-module-file-path \ | 64 | perl-module-file-path \ |
82 | perl-module-file-spec \ | 65 | perl-module-filehandle \ |
66 | perl-module-getopt-std \ | ||
67 | perl-module-posix \ | ||
83 | " | 68 | " |
84 | 69 | ||
85 | BBCLASSEXTEND = "native nativesdk" | 70 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/attr/attr.inc b/meta/recipes-support/attr/attr.inc deleted file mode 100644 index 75d616893a..0000000000 --- a/meta/recipes-support/attr/attr.inc +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | SUMMARY = "Utilities for manipulating filesystem extended attributes" | ||
2 | DESCRIPTION = "Implement the ability for a user to attach name:value pairs to objects within the XFS filesystem." | ||
3 | |||
4 | HOMEPAGE = "http://savannah.nongnu.org/projects/attr/" | ||
5 | SECTION = "libs" | ||
6 | |||
7 | DEPENDS = "virtual/libintl" | ||
8 | |||
9 | LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" | ||
10 | LICENSE:${PN} = "GPL-2.0-or-later" | ||
11 | LICENSE:lib${BPN} = "LGPL-2.1-or-later" | ||
12 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \ | ||
13 | file://doc/COPYING.LGPL;md5=b8d31f339300bc239d73461d68e77b9c \ | ||
14 | file://tools/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \ | ||
15 | file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb" | ||
16 | |||
17 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/attr/${BP}.tar.gz \ | ||
18 | file://run-ptest \ | ||
19 | file://0001-attr.c-Include-libgen.h-for-posix-version-of-basenam.patch \ | ||
20 | " | ||
21 | |||
22 | inherit ptest update-alternatives autotools gettext | ||
23 | |||
24 | PACKAGES =+ "lib${BPN}" | ||
25 | |||
26 | FILES:lib${BPN} = "${libdir}/lib*${SOLIBS} ${sysconfdir}" | ||
27 | |||
28 | ALTERNATIVE_PRIORITY = "100" | ||
29 | ALTERNATIVE:${PN} = "setfattr" | ||
30 | ALTERNATIVE_TARGET[setfattr] = "${bindir}/setfattr" | ||
31 | |||
32 | PTEST_BUILD_HOST_FILES = "builddefs" | ||
33 | PTEST_BUILD_HOST_PATTERN = "^RPM" | ||
34 | |||
35 | do_install_ptest() { | ||
36 | cp ${B}/Makefile ${D}${PTEST_PATH} | ||
37 | sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ | ||
38 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
39 | -e 's:${HOSTTOOLS_DIR}/::g' \ | ||
40 | -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ | ||
41 | -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ | ||
42 | -i ${D}${PTEST_PATH}/Makefile | ||
43 | |||
44 | sed -i "s|^srcdir =.*|srcdir = \.|g" ${D}${PTEST_PATH}/Makefile | ||
45 | sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" ${D}${PTEST_PATH}/Makefile | ||
46 | sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" ${D}${PTEST_PATH}/Makefile | ||
47 | sed -i "s|^Makefile:.*|Makefile:|g" ${D}${PTEST_PATH}/Makefile | ||
48 | cp -rf ${S}/build-aux/ ${D}${PTEST_PATH} | ||
49 | cp -rf ${S}/test/ ${D}${PTEST_PATH} | ||
50 | } | ||
51 | |||
52 | do_install_ptest:append:libc-musl() { | ||
53 | sed -i -e 's|f: Operation n|f: N|g' ${D}${PTEST_PATH}/test/attr.test | ||
54 | } | ||
55 | |||
56 | RDEPENDS:${PN}-ptest = "attr \ | ||
57 | bash \ | ||
58 | coreutils \ | ||
59 | perl-module-constant \ | ||
60 | perl-module-filehandle \ | ||
61 | perl-module-getopt-std \ | ||
62 | perl-module-posix \ | ||
63 | make \ | ||
64 | perl \ | ||
65 | gawk \ | ||
66 | perl-module-cwd \ | ||
67 | perl-module-file-basename \ | ||
68 | perl-module-file-path \ | ||
69 | perl-module-file-spec \ | ||
70 | " | ||
71 | |||
72 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-support/attr/attr/run-ptest b/meta/recipes-support/attr/attr/run-ptest index 3e7a3a17a0..028671a9bd 100644 --- a/meta/recipes-support/attr/attr/run-ptest +++ b/meta/recipes-support/attr/attr/run-ptest | |||
@@ -1,10 +1,30 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | set +e | 3 | failed=0 |
4 | make test-suite.log | 4 | all=0 |
5 | exitcode=$? | 5 | |
6 | if [ $exitcode -ne 0 -a -e test-suite.log ]; then | 6 | for f in *.test; do |
7 | cat test-suite.log | 7 | ./run $f |
8 | fi | 8 | case "$?" in |
9 | exit $exitcode | 9 | 0) |
10 | echo "PASS: $f" | ||
11 | all=$((all + 1)) | ||
12 | ;; | ||
13 | 77) | ||
14 | echo "SKIP: $f" | ||
15 | ;; | ||
16 | *) | ||
17 | echo "FAIL: $f" | ||
18 | failed=$((failed + 1)) | ||
19 | all=$((all + 1)) | ||
20 | ;; | ||
21 | esac | ||
22 | done | ||
10 | 23 | ||
24 | if [ "$failed" -eq 0 ] ; then | ||
25 | echo "All $all tests passed" | ||
26 | exit 0 | ||
27 | else | ||
28 | echo "$failed of $all tests failed" | ||
29 | exit 1 | ||
30 | fi | ||
diff --git a/meta/recipes-support/attr/attr_2.5.2.bb b/meta/recipes-support/attr/attr_2.5.2.bb index 2110c6d885..390445b959 100644 --- a/meta/recipes-support/attr/attr_2.5.2.bb +++ b/meta/recipes-support/attr/attr_2.5.2.bb | |||
@@ -1,5 +1,60 @@ | |||
1 | require attr.inc | 1 | SUMMARY = "Utilities for manipulating filesystem extended attributes" |
2 | DESCRIPTION = "Implement the ability for a user to attach name:value pairs to objects within the XFS filesystem." | ||
3 | |||
4 | HOMEPAGE = "http://savannah.nongnu.org/projects/attr/" | ||
5 | SECTION = "libs" | ||
6 | |||
7 | DEPENDS = "virtual/libintl" | ||
8 | |||
9 | LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" | ||
10 | LICENSE:${PN} = "GPL-2.0-or-later" | ||
11 | LICENSE:lib${BPN} = "LGPL-2.1-or-later" | ||
12 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \ | ||
13 | file://doc/COPYING.LGPL;md5=b8d31f339300bc239d73461d68e77b9c \ | ||
14 | file://tools/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \ | ||
15 | file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb" | ||
16 | |||
17 | SRC_URI = "${SAVANNAH_GNU_MIRROR}/attr/${BP}.tar.gz \ | ||
18 | file://run-ptest \ | ||
19 | file://0001-attr.c-Include-libgen.h-for-posix-version-of-basenam.patch \ | ||
20 | " | ||
2 | 21 | ||
3 | SRC_URI[sha256sum] = "39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87" | 22 | SRC_URI[sha256sum] = "39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87" |
4 | 23 | ||
24 | inherit ptest update-alternatives autotools gettext | ||
25 | |||
26 | PACKAGES =+ "lib${BPN}" | ||
27 | |||
28 | FILES:lib${BPN} = "${libdir}/lib*${SOLIBS} ${sysconfdir}" | ||
29 | |||
30 | ALTERNATIVE_PRIORITY = "100" | ||
31 | ALTERNATIVE:${PN} = "setfattr getfattr" | ||
32 | ALTERNATIVE_TARGET[setfattr] = "${bindir}/setfattr" | ||
33 | ALTERNATIVE_TARGET[getfattr] = "${bindir}/getfattr" | ||
34 | |||
35 | do_install_ptest() { | ||
36 | install -m755 ${S}/test/run ${S}/test/sort-getfattr-output ${D}${PTEST_PATH}/ | ||
37 | |||
38 | for t in $(makefile-getvar ${S}/test/Makemodule.am TESTS); do | ||
39 | install -m644 ${S}/$t ${D}${PTEST_PATH}/ | ||
40 | done | ||
41 | } | ||
42 | |||
43 | do_install_ptest:append:libc-musl() { | ||
44 | # With glibc strerror(ENOTSUP) is "Operation not supported" but | ||
45 | # musl is "Not supported". | ||
46 | # https://savannah.nongnu.org/bugs/?62370 | ||
47 | sed -i -e 's|f: Operation not supported|f: Not supported|g' ${D}${PTEST_PATH}/attr.test | ||
48 | } | ||
49 | |||
50 | RDEPENDS:${PN}-ptest = "attr \ | ||
51 | perl \ | ||
52 | perl-module-cwd \ | ||
53 | perl-module-file-basename \ | ||
54 | perl-module-file-path \ | ||
55 | perl-module-filehandle \ | ||
56 | perl-module-getopt-std \ | ||
57 | perl-module-posix \ | ||
58 | " | ||
59 | |||
5 | BBCLASSEXTEND = "native nativesdk" | 60 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/bash-completion/bash-completion_2.13.0.bb b/meta/recipes-support/bash-completion/bash-completion_2.16.0.bb index f75d61e219..d1a8f5e0cc 100644 --- a/meta/recipes-support/bash-completion/bash-completion_2.13.0.bb +++ b/meta/recipes-support/bash-completion/bash-completion_2.16.0.bb | |||
@@ -14,7 +14,7 @@ SECTION = "console/utils" | |||
14 | 14 | ||
15 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" | 15 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" |
16 | 16 | ||
17 | SRC_URI[sha256sum] = "c5f99a39e40f0d154c03ff15438e87ece1f5ac666336a4459899e2ff4bedf3d1" | 17 | SRC_URI[sha256sum] = "3369bd5e418a75fb990863925aed5b420398acebb320ec4c0306b3eae23f107a" |
18 | GITHUB_BASE_URI = "https://github.com/scop/bash-completion/releases" | 18 | GITHUB_BASE_URI = "https://github.com/scop/bash-completion/releases" |
19 | 19 | ||
20 | PARALLEL_MAKE = "" | 20 | PARALLEL_MAKE = "" |
diff --git a/meta/recipes-support/bmaptool/bmaptool_git.bb b/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb index fd53c21c06..d82ce5ded4 100644 --- a/meta/recipes-support/bmaptool/bmaptool_git.bb +++ b/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb | |||
@@ -10,17 +10,17 @@ LICENSE = "GPL-2.0-only" | |||
10 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" | 10 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" |
11 | 11 | ||
12 | SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https" | 12 | SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https" |
13 | SRCREV = "2ff5750b8a3e0b36a9993c20e2ea10a07bc62085" | 13 | SRCREV = "618a7316102f6f81faa60537503012a419eafa06" |
14 | S = "${WORKDIR}/git" | 14 | |
15 | BASEVER = "3.8.0" | 15 | # TODO: remove when we upgrade to a release past 3.9.0 |
16 | PV = "${BASEVER}+git" | 16 | PV .= "+git" |
17 | 17 | ||
18 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | 18 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" |
19 | 19 | ||
20 | # Need df from coreutils | 20 | # Need df from coreutils |
21 | RDEPENDS:${PN} = "python3-core python3-compression python3-misc python3-mmap python3-setuptools python3-fcntl python3-six coreutils" | 21 | RDEPENDS:${PN} = "python3-core python3-compression python3-misc python3-mmap python3-setuptools python3-fcntl coreutils" |
22 | 22 | ||
23 | inherit setuptools3 | 23 | inherit python_hatchling |
24 | 24 | ||
25 | # For compatibility with layers before scarthgap | 25 | # For compatibility with layers before scarthgap |
26 | RREPLACES:${PN} = "bmap-tools" | 26 | RREPLACES:${PN} = "bmap-tools" |
diff --git a/meta/recipes-support/boost/boost-1.84.0.inc b/meta/recipes-support/boost/boost-1.88.0.inc index 5bbea2ba5b..96bd986f6a 100644 --- a/meta/recipes-support/boost/boost-1.84.0.inc +++ b/meta/recipes-support/boost/boost-1.88.0.inc | |||
@@ -11,10 +11,10 @@ BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}" | |||
11 | BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}" | 11 | BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}" |
12 | BOOST_P = "boost_${BOOST_VER}" | 12 | BOOST_P = "boost_${BOOST_VER}" |
13 | 13 | ||
14 | SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2" | 14 | SRC_URI = "https://archives.boost.io/release/${PV}/source/${BOOST_P}.tar.bz2" |
15 | SRC_URI[sha256sum] = "cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454" | 15 | SRC_URI[sha256sum] = "46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b" |
16 | 16 | ||
17 | UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" | 17 | UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" |
18 | UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/" | 18 | UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/" |
19 | 19 | ||
20 | S = "${WORKDIR}/${BOOST_P}" | 20 | S = "${UNPACKDIR}/${BOOST_P}" |
diff --git a/meta/recipes-support/boost/boost-build-native_1.84.0.bb b/meta/recipes-support/boost/boost-build-native_1.87.0.bb index a345bac499..5b914b6f88 100644 --- a/meta/recipes-support/boost/boost-build-native_1.84.0.bb +++ b/meta/recipes-support/boost/boost-build-native_1.87.0.bb | |||
@@ -7,21 +7,19 @@ LICENSE = "BSL-1.0" | |||
7 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" | 7 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" |
8 | 8 | ||
9 | SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master" | 9 | SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master" |
10 | SRCREV = "8d86b9a85407d73d6e8c631771f18c2a237d2d71" | 10 | SRCREV = "4a52d8c06635435b64e31a56eaf7ca5dc912a71d" |
11 | PE = "1" | 11 | PE = "1" |
12 | 12 | ||
13 | UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))" | 13 | UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))" |
14 | 14 | ||
15 | inherit native | 15 | inherit native |
16 | 16 | ||
17 | S = "${WORKDIR}/git" | ||
18 | |||
19 | do_compile() { | 17 | do_compile() { |
20 | ./bootstrap.sh | 18 | ./bootstrap.sh |
21 | } | 19 | } |
22 | 20 | ||
23 | do_install() { | 21 | do_install() { |
24 | HOME=/var/run ./b2 install --prefix=${prefix} staging-prefix=${D}${prefix} | 22 | HOME=/var/run ./b2 install --prefix=${D}${prefix} |
25 | } | 23 | } |
26 | 24 | ||
27 | # The build is either release mode (pre-stripped) or debug (-O0). | 25 | # The build is either release mode (pre-stripped) or debug (-O0). |
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc index 77105aa1fa..64a57ddfb2 100644 --- a/meta/recipes-support/boost/boost.inc +++ b/meta/recipes-support/boost/boost.inc | |||
@@ -16,6 +16,7 @@ do_configure[cleandirs] = "${B}" | |||
16 | 16 | ||
17 | BOOST_LIBS = "\ | 17 | BOOST_LIBS = "\ |
18 | atomic \ | 18 | atomic \ |
19 | charconv \ | ||
19 | chrono \ | 20 | chrono \ |
20 | container \ | 21 | container \ |
21 | context \ | 22 | context \ |
@@ -31,6 +32,7 @@ BOOST_LIBS = "\ | |||
31 | json \ | 32 | json \ |
32 | log \ | 33 | log \ |
33 | math \ | 34 | math \ |
35 | process \ | ||
34 | program_options \ | 36 | program_options \ |
35 | random \ | 37 | random \ |
36 | regex \ | 38 | regex \ |
@@ -42,6 +44,9 @@ BOOST_LIBS = "\ | |||
42 | type_erasure \ | 44 | type_erasure \ |
43 | url \ | 45 | url \ |
44 | wave \ | 46 | wave \ |
47 | ${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \ | ||
48 | ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \ | ||
49 | bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \ | ||
45 | " | 50 | " |
46 | 51 | ||
47 | # optional libraries | 52 | # optional libraries |
@@ -51,12 +56,6 @@ PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich" | |||
51 | PACKAGECONFIG[mpi] = ",,mpich" | 56 | PACKAGECONFIG[mpi] = ",,mpich" |
52 | PACKAGECONFIG[python] = ",,python3" | 57 | PACKAGECONFIG[python] = ",,python3" |
53 | 58 | ||
54 | BOOST_LIBS += "\ | ||
55 | ${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \ | ||
56 | ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \ | ||
57 | bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \ | ||
58 | " | ||
59 | |||
60 | inherit python3-dir | 59 | inherit python3-dir |
61 | PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}" | 60 | PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}" |
62 | 61 | ||
@@ -69,14 +68,12 @@ python __anonymous () { | |||
69 | mlprefix = d.getVar("MLPREFIX") | 68 | mlprefix = d.getVar("MLPREFIX") |
70 | for lib in d.getVar('BOOST_LIBS').split(): | 69 | for lib in d.getVar('BOOST_LIBS').split(): |
71 | extras.append("--with-%s" % lib) | 70 | extras.append("--with-%s" % lib) |
72 | pkg = "boost-%s" % (lib.replace("_", "-")) | 71 | pkg = "%s-%s" % (d.getVar("BPN"), lib.replace("_", "-")) |
73 | if "-native" in pn: | 72 | if "-native" in pn: |
74 | pkg = pkg + "-native" | 73 | pkg = pkg + "-native" |
75 | packages.append(mlprefix + pkg) | 74 | packages.append(mlprefix + pkg) |
76 | if not d.getVar("FILES:%s" % pkg): | 75 | if not d.getVar("FILES:%s%s" % (mlprefix, pkg)): |
77 | d.setVar("FILES:%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib) | 76 | d.setVar("FILES:%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib) |
78 | else: | ||
79 | d.setVar("FILES:%s%s" % (mlprefix, pkg), d.getVar("FILES:%s" % pkg)) | ||
80 | 77 | ||
81 | d.setVar("BOOST_PACKAGES", " ".join(packages)) | 78 | d.setVar("BOOST_PACKAGES", " ".join(packages)) |
82 | d.setVar("BJAM_EXTRA", " ".join(extras)) | 79 | d.setVar("BJAM_EXTRA", " ".join(extras)) |
@@ -86,9 +83,9 @@ python __anonymous () { | |||
86 | FILES:${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*" | 83 | FILES:${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*" |
87 | FILES:${PN}-locale = "${libdir}/libboost_locale.so.*" | 84 | FILES:${PN}-locale = "${libdir}/libboost_locale.so.*" |
88 | FILES:${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*" | 85 | FILES:${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*" |
89 | FILES:boost-serialization = "${libdir}/libboost_serialization*.so.* \ | 86 | FILES:${PN}-serialization = "${libdir}/libboost_serialization*.so.* \ |
90 | ${libdir}/libboost_wserialization*.so.*" | 87 | ${libdir}/libboost_wserialization*.so.*" |
91 | FILES:boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \ | 88 | FILES:${PN}-test = "${libdir}/libboost_prg_exec_monitor*.so.* \ |
92 | ${libdir}/libboost_unit_test_framework*.so.*" | 89 | ${libdir}/libboost_unit_test_framework*.so.*" |
93 | 90 | ||
94 | # -dev last to pick up the remaining stuff | 91 | # -dev last to pick up the remaining stuff |
diff --git a/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch index 9ba5d5cc33..04bede4578 100644 --- a/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch +++ b/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 18185e939ca121335a6172c8e50872af8122a759 Mon Sep 17 00:00:00 2001 | 1 | From e2cc24d6d8b7b24a6d0a30c52c7ad69a001a0ad5 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Tue, 18 Dec 2018 15:42:57 +0100 | 3 | Date: Tue, 18 Dec 2018 15:42:57 +0100 |
4 | Subject: [PATCH] Don't set up arch/instruction-set flags, we do that | 4 | Subject: [PATCH] Don't set up arch/instruction-set flags, we do that |
@@ -13,10 +13,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | |||
13 | 1 file changed, 153 deletions(-) | 13 | 1 file changed, 153 deletions(-) |
14 | 14 | ||
15 | diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam | 15 | diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam |
16 | index 834f5e1bf..493a43e6d 100644 | 16 | index b7825d4e6..ed7e39baf 100644 |
17 | --- a/tools/build/src/tools/gcc.jam | 17 | --- a/tools/build/src/tools/gcc.jam |
18 | +++ b/tools/build/src/tools/gcc.jam | 18 | +++ b/tools/build/src/tools/gcc.jam |
19 | @@ -1113,156 +1113,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : | 19 | @@ -1144,156 +1144,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : |
20 | <architecture>$(architecture)/<instruction-set>$(instruction-set) | 20 | <architecture>$(architecture)/<instruction-set>$(instruction-set) |
21 | : $(values) ; | 21 | : $(values) ; |
22 | } | 22 | } |
diff --git a/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch b/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch index 913810a340..db1ee03898 100644 --- a/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch +++ b/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From bbb0845c0a79238fb2e84cca41826a0944b6ce7e Mon Sep 17 00:00:00 2001 | 1 | From b0728812241c048907e6f1ba168292cd9948347d Mon Sep 17 00:00:00 2001 |
2 | From: Anuj Mittal <anuj.mittal@intel.com> | 2 | From: Anuj Mittal <anuj.mittal@intel.com> |
3 | Date: Thu, 14 Nov 2019 10:13:53 +0800 | 3 | Date: Thu, 14 Nov 2019 10:13:53 +0800 |
4 | Subject: [PATCH] dont setup compiler flags -m32/-m64 | 4 | Subject: [PATCH] dont setup compiler flags -m32/-m64 |
@@ -9,14 +9,14 @@ Upstream-Status: Inappropriate [OE-specific] | |||
9 | 9 | ||
10 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | 10 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> |
11 | --- | 11 | --- |
12 | tools/build/src/tools/gcc.jam | 14 -------------- | 12 | tools/build/src/tools/gcc.jam | 16 ---------------- |
13 | 1 file changed, 14 deletions(-) | 13 | 1 file changed, 16 deletions(-) |
14 | 14 | ||
15 | diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam | 15 | diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam |
16 | index 493a43e6d..42dccbdfe 100644 | 16 | index ed7e39baf..90513f84a 100644 |
17 | --- a/tools/build/src/tools/gcc.jam | 17 | --- a/tools/build/src/tools/gcc.jam |
18 | +++ b/tools/build/src/tools/gcc.jam | 18 | +++ b/tools/build/src/tools/gcc.jam |
19 | @@ -360,20 +360,6 @@ local rule compile-link-flags ( * ) | 19 | @@ -377,22 +377,6 @@ local rule compile-link-flags ( * ) |
20 | compile-link-flags <link>shared/<target-os>$(non-windows) : -fPIC ; | 20 | compile-link-flags <link>shared/<target-os>$(non-windows) : -fPIC ; |
21 | } | 21 | } |
22 | 22 | ||
@@ -29,6 +29,8 @@ index 493a43e6d..42dccbdfe 100644 | |||
29 | - compile-link-flags <target-os>hpux/<address-model>64 : -mlp64 ; | 29 | - compile-link-flags <target-os>hpux/<address-model>64 : -mlp64 ; |
30 | - | 30 | - |
31 | - local generic-os = [ set.difference $(all-os) : aix hpux ] ; | 31 | - local generic-os = [ set.difference $(all-os) : aix hpux ] ; |
32 | - compile-link-flags <target-os>$(generic-os)/<architecture>s390x/<address-model>32 : -m31 ; | ||
33 | - compile-link-flags <target-os>$(generic-os)/<architecture>s390x/<address-model>64 : -m64 ; | ||
32 | - local arch = power sparc x86 ; | 34 | - local arch = power sparc x86 ; |
33 | - compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>32 : -m32 ; | 35 | - compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>32 : -m32 ; |
34 | - compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ; | 36 | - compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ; |
diff --git a/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch b/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch index 9b6fcc6358..ad90d96ddd 100644 --- a/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch +++ b/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From d6864bd78c01c5e8578805a7b67555c70a0e99a2 Mon Sep 17 00:00:00 2001 | 1 | From e7491f9874411fd9855957812ba9bac948a61356 Mon Sep 17 00:00:00 2001 |
2 | From: Jackie Huang <jackie.huang@windriver.com> | 2 | From: Jackie Huang <jackie.huang@windriver.com> |
3 | Date: Fri, 23 Sep 2016 01:04:50 -0700 | 3 | Date: Fri, 23 Sep 2016 01:04:50 -0700 |
4 | Subject: [PATCH] boost-math: disable pch for gcc | 4 | Subject: [PATCH] boost-math: disable pch for gcc |
@@ -14,13 +14,13 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | |||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | 14 | 1 file changed, 1 insertion(+), 1 deletion(-) |
15 | 15 | ||
16 | diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2 | 16 | diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2 |
17 | index fd840287e..5aff7d724 100644 | 17 | index 500c77363..504d7d8c6 100644 |
18 | --- a/libs/math/build/Jamfile.v2 | 18 | --- a/libs/math/build/Jamfile.v2 |
19 | +++ b/libs/math/build/Jamfile.v2 | 19 | +++ b/libs/math/build/Jamfile.v2 |
20 | @@ -14,7 +14,7 @@ project | 20 | @@ -15,7 +15,7 @@ project |
21 | <toolset>intel-win:<linkflags>-nologo | ||
21 | #<toolset>intel-linux:<pch>off | 22 | #<toolset>intel-linux:<pch>off |
22 | <toolset>intel-darwin:<pch>off | 23 | <toolset>intel-darwin:<pch>off |
23 | <toolset>msvc-7.1:<pch>off | ||
24 | - <toolset>gcc,<target-os>windows:<pch>off | 24 | - <toolset>gcc,<target-os>windows:<pch>off |
25 | + <toolset>gcc:<pch>off | 25 | + <toolset>gcc:<pch>off |
26 | #<toolset>gcc:<cxxflags>-fvisibility=hidden | 26 | #<toolset>gcc:<cxxflags>-fvisibility=hidden |
diff --git a/meta/recipes-support/boost/boost_1.84.0.bb b/meta/recipes-support/boost/boost_1.88.0.bb index 4b580d078b..4b580d078b 100644 --- a/meta/recipes-support/boost/boost_1.84.0.bb +++ b/meta/recipes-support/boost/boost_1.88.0.bb | |||
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch b/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch index 5c4a32f526..1226508c98 100644 --- a/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch +++ b/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From cb43ec15b700b25f3c4fe44043a1a021aaf5b768 Mon Sep 17 00:00:00 2001 | 1 | From 743774cd53ed1c45bb660eddacf6dadb5ee3e145 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex@linutronix.de> | 2 | From: Alexander Kanavin <alex@linutronix.de> |
3 | Date: Mon, 18 Oct 2021 12:05:49 +0200 | 3 | Date: Mon, 18 Oct 2021 12:05:49 +0200 |
4 | Subject: [PATCH] Revert "mozilla/certdata2pem.py: print a warning for expired | 4 | Subject: [PATCH] Revert "mozilla/certdata2pem.py: print a warning for expired |
@@ -16,10 +16,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de> | |||
16 | 3 files changed, 1 insertion(+), 13 deletions(-) | 16 | 3 files changed, 1 insertion(+), 13 deletions(-) |
17 | 17 | ||
18 | diff --git a/debian/changelog b/debian/changelog | 18 | diff --git a/debian/changelog b/debian/changelog |
19 | index 531e4d0..4006509 100644 | 19 | index dbe3e9c..496e05d 100644 |
20 | --- a/debian/changelog | 20 | --- a/debian/changelog |
21 | +++ b/debian/changelog | 21 | +++ b/debian/changelog |
22 | @@ -37,7 +37,6 @@ ca-certificates (20211004) unstable; urgency=low | 22 | @@ -156,7 +156,6 @@ ca-certificates (20211004) unstable; urgency=low |
23 | - "Trustis FPS Root CA" | 23 | - "Trustis FPS Root CA" |
24 | - "Staat der Nederlanden Root CA - G3" | 24 | - "Staat der Nederlanden Root CA - G3" |
25 | * Blacklist expired root certificate "DST Root CA X3" (closes: #995432) | 25 | * Blacklist expired root certificate "DST Root CA X3" (closes: #995432) |
@@ -28,7 +28,7 @@ index 531e4d0..4006509 100644 | |||
28 | -- Julien Cristau <jcristau@debian.org> Thu, 07 Oct 2021 17:12:47 +0200 | 28 | -- Julien Cristau <jcristau@debian.org> Thu, 07 Oct 2021 17:12:47 +0200 |
29 | 29 | ||
30 | diff --git a/debian/control b/debian/control | 30 | diff --git a/debian/control b/debian/control |
31 | index 4434b7a..5c6ba24 100644 | 31 | index b5f2ab0..d0e830e 100644 |
32 | --- a/debian/control | 32 | --- a/debian/control |
33 | +++ b/debian/control | 33 | +++ b/debian/control |
34 | @@ -3,7 +3,7 @@ Section: misc | 34 | @@ -3,7 +3,7 @@ Section: misc |
@@ -37,11 +37,11 @@ index 4434b7a..5c6ba24 100644 | |||
37 | Build-Depends: debhelper-compat (= 13), po-debconf | 37 | Build-Depends: debhelper-compat (= 13), po-debconf |
38 | -Build-Depends-Indep: python3, openssl, python3-cryptography | 38 | -Build-Depends-Indep: python3, openssl, python3-cryptography |
39 | +Build-Depends-Indep: python3, openssl | 39 | +Build-Depends-Indep: python3, openssl |
40 | Standards-Version: 4.5.0.2 | 40 | Standards-Version: 4.6.2 |
41 | Rules-Requires-Root: no | ||
41 | Vcs-Git: https://salsa.debian.org/debian/ca-certificates.git | 42 | Vcs-Git: https://salsa.debian.org/debian/ca-certificates.git |
42 | Vcs-Browser: https://salsa.debian.org/debian/ca-certificates | ||
43 | diff --git a/mozilla/certdata2pem.py b/mozilla/certdata2pem.py | 43 | diff --git a/mozilla/certdata2pem.py b/mozilla/certdata2pem.py |
44 | index ede23d4..7d796f1 100644 | 44 | index 4df86a2..7d796f1 100644 |
45 | --- a/mozilla/certdata2pem.py | 45 | --- a/mozilla/certdata2pem.py |
46 | +++ b/mozilla/certdata2pem.py | 46 | +++ b/mozilla/certdata2pem.py |
47 | @@ -21,16 +21,12 @@ | 47 | @@ -21,16 +21,12 @@ |
@@ -66,8 +66,8 @@ index ede23d4..7d796f1 100644 | |||
66 | if not obj['CKA_LABEL'] in trust or not trust[obj['CKA_LABEL']]: | 66 | if not obj['CKA_LABEL'] in trust or not trust[obj['CKA_LABEL']]: |
67 | continue | 67 | continue |
68 | - | 68 | - |
69 | - cert = x509.load_der_x509_certificate(obj['CKA_VALUE']) | 69 | - cert = x509.load_der_x509_certificate(bytes(obj['CKA_VALUE'])) |
70 | - if cert.not_valid_after < datetime.datetime.now(): | 70 | - if cert.not_valid_after < datetime.datetime.utcnow(): |
71 | - print('!'*74) | 71 | - print('!'*74) |
72 | - print('Trusted but expired certificate found: %s' % obj['CKA_LABEL']) | 72 | - print('Trusted but expired certificate found: %s' % obj['CKA_LABEL']) |
73 | - print('!'*74) | 73 | - print('!'*74) |
@@ -75,6 +75,3 @@ index ede23d4..7d796f1 100644 | |||
75 | bname = obj['CKA_LABEL'][1:-1].replace('/', '_')\ | 75 | bname = obj['CKA_LABEL'][1:-1].replace('/', '_')\ |
76 | .replace(' ', '_')\ | 76 | .replace(' ', '_')\ |
77 | .replace('(', '=')\ | 77 | .replace('(', '=')\ |
78 | -- | ||
79 | 2.20.1 | ||
80 | |||
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch b/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch index 4a8ae5f4b5..1a29da756f 100644 --- a/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch +++ b/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch | |||
@@ -1,3 +1,8 @@ | |||
1 | From 63086d41f76b1c3357e23c6509df72d3f75af20c Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@intel.com> | ||
3 | Date: Mon, 6 Jul 2015 15:19:41 +0100 | ||
4 | Subject: [PATCH] ca-certificates: remove Debianism in run-parts invocation | ||
5 | |||
1 | ca-certificates is a package from Debian, but some host distros such as Fedora | 6 | ca-certificates is a package from Debian, but some host distros such as Fedora |
2 | have a leaner run-parts provided by cron which doesn't support --verbose or the | 7 | have a leaner run-parts provided by cron which doesn't support --verbose or the |
3 | -- separator between arguments and paths. | 8 | -- separator between arguments and paths. |
@@ -9,7 +14,6 @@ This solves errors such as | |||
9 | | [...]/usr/sbin/update-ca-certificates: line 230: Not a directory: --: command not found | 14 | | [...]/usr/sbin/update-ca-certificates: line 230: Not a directory: --: command not found |
10 | | E: Not a directory: -- exited with code 127. | 15 | | E: Not a directory: -- exited with code 127. |
11 | 16 | ||
12 | |||
13 | Upstream-Status: Inappropriate | 17 | Upstream-Status: Inappropriate |
14 | Signed-off-by: Ross Burton <ross.burton@intel.com> | 18 | Signed-off-by: Ross Burton <ross.burton@intel.com> |
15 | Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com> | 19 | Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com> |
@@ -17,18 +21,18 @@ Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com> | |||
17 | sbin/update-ca-certificates | 4 +--- | 21 | sbin/update-ca-certificates | 4 +--- |
18 | 1 file changed, 1 insertion(+), 3 deletions(-) | 22 | 1 file changed, 1 insertion(+), 3 deletions(-) |
19 | 23 | ||
20 | Index: git/sbin/update-ca-certificates | 24 | diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates |
21 | =================================================================== | 25 | index 91d8024..1e737b9 100755 |
22 | --- git.orig/sbin/update-ca-certificates | 26 | --- a/sbin/update-ca-certificates |
23 | +++ git/sbin/update-ca-certificates | 27 | +++ b/sbin/update-ca-certificates |
24 | @@ -191,9 +191,7 @@ if [ -d "$HOOKSDIR" ] | 28 | @@ -210,9 +210,7 @@ if [ -d "$HOOKSDIR" ] |
25 | then | 29 | then |
26 | 30 | ||
27 | echo "Running hooks in $HOOKSDIR..." | 31 | echo "Running hooks in $HOOKSDIR..." |
28 | - VERBOSE_ARG= | 32 | - VERBOSE_ARG= |
29 | - [ "$verbose" = 0 ] || VERBOSE_ARG="--verbose" | 33 | - [ "$verbose" = 0 ] || VERBOSE_ARG="--verbose" |
30 | - eval run-parts "$VERBOSE_ARG" --test -- "$HOOKSDIR" | while read hook | 34 | - eval run-parts "$VERBOSE_ARG" --test -- "$HOOKSDIR" | while read -r hook |
31 | + eval run-parts --test "$HOOKSDIR" | while read hook | 35 | + eval run-parts --test "$HOOKSDIR" | while read -r hook |
32 | do | 36 | do |
33 | ( cat "$ADDED" | 37 | ( cat "$ADDED" |
34 | cat "$REMOVED" ) | "$hook" || echo "E: $hook exited with code $?." | 38 | cat "$REMOVED" ) | "$hook" || echo "E: $hook exited with code $?." |
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch b/meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch deleted file mode 100644 index 792b4030b2..0000000000 --- a/meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | From 724cb153ca0f607fb38b3a8db3ebb2742601cd81 Mon Sep 17 00:00:00 2001 | ||
4 | From: Andreas Oberritter <obi@opendreambox.org> | ||
5 | Date: Tue, 19 Mar 2013 17:14:33 +0100 | ||
6 | Subject: [PATCH 2/2] update-ca-certificates: use $SYSROOT | ||
7 | |||
8 | Signed-off-by: Andreas Oberritter <obi@opendreambox.org> | ||
9 | --- | ||
10 | sbin/update-ca-certificates | 14 +++++++------- | ||
11 | 1 file changed, 7 insertions(+), 7 deletions(-) | ||
12 | |||
13 | Index: git/sbin/update-ca-certificates | ||
14 | =================================================================== | ||
15 | --- git.orig/sbin/update-ca-certificates | ||
16 | +++ git/sbin/update-ca-certificates | ||
17 | @@ -24,12 +24,12 @@ | ||
18 | verbose=0 | ||
19 | fresh=0 | ||
20 | default=0 | ||
21 | -CERTSCONF=/etc/ca-certificates.conf | ||
22 | -CERTSDIR=/usr/share/ca-certificates | ||
23 | -LOCALCERTSDIR=/usr/local/share/ca-certificates | ||
24 | +CERTSCONF=$SYSROOT/etc/ca-certificates.conf | ||
25 | +CERTSDIR=$SYSROOT/usr/share/ca-certificates | ||
26 | +LOCALCERTSDIR=$SYSROOT/usr/local/share/ca-certificates | ||
27 | CERTBUNDLE=ca-certificates.crt | ||
28 | -ETCCERTSDIR=/etc/ssl/certs | ||
29 | -HOOKSDIR=/etc/ca-certificates/update.d | ||
30 | +ETCCERTSDIR=$SYSROOT/etc/ssl/certs | ||
31 | +HOOKSDIR=$SYSROOT/etc/ca-certificates/update.d | ||
32 | |||
33 | while [ $# -gt 0 ]; | ||
34 | do | ||
35 | @@ -92,9 +92,9 @@ add() { | ||
36 | PEM="$ETCCERTSDIR/$(basename "$CERT" .crt | sed -e 's/ /_/g' \ | ||
37 | -e 's/[()]/=/g' \ | ||
38 | -e 's/,/_/g').pem" | ||
39 | - if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "$CERT" ] | ||
40 | + if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${CERT##$SYSROOT}" ] | ||
41 | then | ||
42 | - ln -sf "$CERT" "$PEM" | ||
43 | + ln -sf "${CERT##$SYSROOT}" "$PEM" | ||
44 | echo "+$PEM" >> "$ADDED" | ||
45 | fi | ||
46 | # Add trailing newline to certificate, if it is missing (#635570) | ||
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch b/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch index 4bd967f788..929945b56f 100644 --- a/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch +++ b/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From a9fc13b2aee55655d58fcb77a3180fa99f96438a Mon Sep 17 00:00:00 2001 | 1 | From a69933f96a8675369de702bdb55e57dc21f65e7f Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com> | 2 | From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com> |
3 | Date: Wed, 28 Mar 2018 16:45:05 +0100 | 3 | Date: Wed, 28 Mar 2018 16:45:05 +0100 |
4 | Subject: [PATCH] update-ca-certificates: use relative symlinks from | 4 | Subject: [PATCH] update-ca-certificates: use relative symlinks from |
@@ -45,26 +45,26 @@ Signed-off-by: André Draszik <andre.draszik@jci.com> | |||
45 | 1 file changed, 4 insertions(+), 2 deletions(-) | 45 | 1 file changed, 4 insertions(+), 2 deletions(-) |
46 | 46 | ||
47 | diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates | 47 | diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates |
48 | index 00f80c7..7e911a9 100755 | 48 | index 1e737b9..8510082 100755 |
49 | --- a/sbin/update-ca-certificates | 49 | --- a/sbin/update-ca-certificates |
50 | +++ b/sbin/update-ca-certificates | 50 | +++ b/sbin/update-ca-certificates |
51 | @@ -29,6 +29,7 @@ CERTSDIR=$SYSROOT/usr/share/ca-certificates | 51 | @@ -30,6 +30,7 @@ LOCALCERTSDIR=/usr/local/share/ca-certificates |
52 | LOCALCERTSDIR=$SYSROOT/usr/local/share/ca-certificates | ||
53 | CERTBUNDLE=ca-certificates.crt | 52 | CERTBUNDLE=ca-certificates.crt |
54 | ETCCERTSDIR=$SYSROOT/etc/ssl/certs | 53 | ETCCERTSDIR=/etc/ssl/certs |
54 | HOOKSDIR=/etc/ca-certificates/update.d | ||
55 | +FSROOT=../../../ # to get from $ETCCERTSDIR to the root of the file system | 55 | +FSROOT=../../../ # to get from $ETCCERTSDIR to the root of the file system |
56 | HOOKSDIR=$SYSROOT/etc/ca-certificates/update.d | ||
57 | 56 | ||
58 | while [ $# -gt 0 ]; | 57 | while [ $# -gt 0 ]; |
59 | @@ -125,9 +126,10 @@ add() { | 58 | do |
59 | @@ -100,9 +101,10 @@ add() { | ||
60 | PEM="$ETCCERTSDIR/$(basename "$CERT" .crt | sed -e 's/ /_/g' \ | 60 | PEM="$ETCCERTSDIR/$(basename "$CERT" .crt | sed -e 's/ /_/g' \ |
61 | -e 's/[()]/=/g' \ | 61 | -e 's/[()]/=/g' \ |
62 | -e 's/,/_/g').pem" | 62 | -e 's/,/_/g').pem" |
63 | - if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${CERT##$SYSROOT}" ] | 63 | - if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "$CERT" ] |
64 | + DST="$(echo ${CERT} | sed -e "s|^$SYSROOT||" -e "s|^/|$FSROOT|" )" | 64 | + DST="$(echo ${CERT} | sed -e "s|^$SYSROOT||" -e "s|^/|$FSROOT|" )" |
65 | + if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${DST}" ] | 65 | + if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${DST}" ] |
66 | then | 66 | then |
67 | - ln -sf "${CERT##$SYSROOT}" "$PEM" | 67 | - ln -sf "$CERT" "$PEM" |
68 | + ln -sf "${DST}" "$PEM" | 68 | + ln -sf "${DST}" "$PEM" |
69 | echo "+$PEM" >> "$ADDED" | 69 | echo "+$PEM" >> "$ADDED" |
70 | fi | 70 | fi |
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch b/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch deleted file mode 100644 index f8b0791bea..0000000000 --- a/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | update-ca-certificates: find SYSROOT relative to its own location | ||
4 | |||
5 | This makes the script relocatable. | ||
6 | |||
7 | Index: git/sbin/update-ca-certificates | ||
8 | =================================================================== | ||
9 | --- git.orig/sbin/update-ca-certificates | ||
10 | +++ git/sbin/update-ca-certificates | ||
11 | @@ -66,6 +66,39 @@ do | ||
12 | shift | ||
13 | done | ||
14 | |||
15 | +if [ -z "$SYSROOT" ]; then | ||
16 | + local_which () { | ||
17 | + if [ $# -lt 1 ]; then | ||
18 | + return 1 | ||
19 | + fi | ||
20 | + | ||
21 | + ( | ||
22 | + IFS=: | ||
23 | + for entry in $PATH; do | ||
24 | + if [ -x "$entry/$1" ]; then | ||
25 | + echo "$entry/$1" | ||
26 | + exit 0 | ||
27 | + fi | ||
28 | + done | ||
29 | + exit 1 | ||
30 | + ) | ||
31 | + } | ||
32 | + | ||
33 | + case "$0" in | ||
34 | + */*) | ||
35 | + sbindir=$(cd ${0%/*} && pwd) | ||
36 | + ;; | ||
37 | + *) | ||
38 | + sbindir=$(cd $(dirname $(local_which $0)) && pwd) | ||
39 | + ;; | ||
40 | + esac | ||
41 | + prefix=${sbindir%/*} | ||
42 | + SYSROOT=${prefix%/*} | ||
43 | + if [ ! -d "$SYSROOT/usr/share/ca-certificates" ]; then | ||
44 | + SYSROOT= | ||
45 | + fi | ||
46 | +fi | ||
47 | + | ||
48 | if [ ! -s "$CERTSCONF" ] | ||
49 | then | ||
50 | fresh=1 | ||
diff --git a/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb b/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb index 99abe60613..a11433c9da 100644 --- a/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb +++ b/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb | |||
@@ -14,19 +14,13 @@ DEPENDS:class-nativesdk = "openssl-native" | |||
14 | # Need rehash from openssl and run-parts from debianutils | 14 | # Need rehash from openssl and run-parts from debianutils |
15 | PACKAGE_WRITE_DEPS += "openssl-native debianutils-native" | 15 | PACKAGE_WRITE_DEPS += "openssl-native debianutils-native" |
16 | 16 | ||
17 | SRCREV = "07de54fdcc5806bde549e1edf60738c6bccf50e8" | 17 | SRC_URI[sha256sum] = "33b44ef78653ecd3f0f2f13e5bba6be466be2e7da72182f737912b81798ba5d2" |
18 | 18 | SRC_URI = "${DEBIAN_MIRROR}/main/c/ca-certificates/${BPN}_${PV}.tar.xz \ | |
19 | SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https;branch=master \ | ||
20 | file://0002-update-ca-certificates-use-SYSROOT.patch \ | ||
21 | file://0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch \ | 19 | file://0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch \ |
22 | file://default-sysroot.patch \ | ||
23 | file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \ | 20 | file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \ |
24 | file://0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch \ | 21 | file://0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch \ |
25 | " | 22 | " |
26 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+)" | 23 | S = "${UNPACKDIR}/ca-certificates" |
27 | |||
28 | S = "${WORKDIR}/git" | ||
29 | |||
30 | inherit allarch | 24 | inherit allarch |
31 | 25 | ||
32 | EXTRA_OEMAKE = "\ | 26 | EXTRA_OEMAKE = "\ |
@@ -66,7 +60,8 @@ do_install:append:class-target () { | |||
66 | } | 60 | } |
67 | 61 | ||
68 | pkg_postinst:${PN}:class-target () { | 62 | pkg_postinst:${PN}:class-target () { |
69 | SYSROOT="$D" $D${sbindir}/update-ca-certificates | 63 | [ -n "$D" ] && sysroot_args="--sysroot $D" |
64 | $D${sbindir}/update-ca-certificates $sysroot_args | ||
70 | } | 65 | } |
71 | 66 | ||
72 | CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf" | 67 | CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf" |
@@ -75,11 +70,11 @@ CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf" | |||
75 | # we just run update-ca-certificate from do_install() for nativesdk. | 70 | # we just run update-ca-certificate from do_install() for nativesdk. |
76 | CONFFILES:${PN}:append:class-nativesdk = " ${sysconfdir}/ssl/certs/ca-certificates.crt" | 71 | CONFFILES:${PN}:append:class-nativesdk = " ${sysconfdir}/ssl/certs/ca-certificates.crt" |
77 | do_install:append:class-nativesdk () { | 72 | do_install:append:class-nativesdk () { |
78 | SYSROOT="${D}${SDKPATHNATIVE}" ${D}${sbindir}/update-ca-certificates | 73 | ${D}${sbindir}/update-ca-certificates --sysroot ${D}${SDKPATHNATIVE} |
79 | } | 74 | } |
80 | 75 | ||
81 | do_install:append:class-native () { | 76 | do_install:append:class-native () { |
82 | SYSROOT="${D}${base_prefix}" ${D}${sbindir}/update-ca-certificates | 77 | ${D}${sbindir}/update-ca-certificates --sysroot ${D}${base_prefix} |
83 | } | 78 | } |
84 | 79 | ||
85 | RDEPENDS:${PN}:append:class-target = " openssl-bin openssl" | 80 | RDEPENDS:${PN}:append:class-target = " openssl-bin openssl" |
diff --git a/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/meta/recipes-support/consolekit/consolekit_0.4.6.bb index 346bd60e4d..acef3483bb 100644 --- a/meta/recipes-support/consolekit/consolekit_0.4.6.bb +++ b/meta/recipes-support/consolekit/consolekit_0.4.6.bb | |||
@@ -20,10 +20,9 @@ SRC_URI = "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${PV}. | |||
20 | file://add-polkit-configure-argument.patch \ | 20 | file://add-polkit-configure-argument.patch \ |
21 | " | 21 | " |
22 | 22 | ||
23 | SRC_URI[md5sum] = "611792b4d616253a5bdec9175f8b7678" | ||
24 | SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c" | 23 | SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c" |
25 | 24 | ||
26 | S = "${WORKDIR}/ConsoleKit-${PV}" | 25 | S = "${UNPACKDIR}/ConsoleKit-${PV}" |
27 | 26 | ||
28 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}" | 27 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}" |
29 | 28 | ||
@@ -31,6 +30,9 @@ PACKAGECONFIG[pam] = "--enable-pam-module --with-pam-module-dir=${base_libdir}/s | |||
31 | PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit" | 30 | PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit" |
32 | PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}/,--with-systemdsystemunitdir=" | 31 | PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}/,--with-systemdsystemunitdir=" |
33 | 32 | ||
33 | # Fails to build with GCC14 with incompatible pointer error warning being treated as error | ||
34 | CFLAGS += "-Wno-error=incompatible-pointer-types" | ||
35 | |||
34 | FILES:${PN} += "${exec_prefix}/lib/ConsoleKit \ | 36 | FILES:${PN} += "${exec_prefix}/lib/ConsoleKit \ |
35 | ${libdir}/ConsoleKit ${systemd_unitdir} ${base_libdir} \ | 37 | ${libdir}/ConsoleKit ${systemd_unitdir} ${base_libdir} \ |
36 | ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*" | 38 | ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*" |
diff --git a/meta/recipes-support/curl/curl/disable-tests b/meta/recipes-support/curl/curl/disable-tests index 259576fd01..e69de29bb2 100644 --- a/meta/recipes-support/curl/curl/disable-tests +++ b/meta/recipes-support/curl/curl/disable-tests | |||
@@ -1,41 +0,0 @@ | |||
1 | # Intermittently fails e.g. https://autobuilder.yocto.io/pub/non-release/20231220-28/testresults/qemux86-64-ptest/curl.log | ||
2 | # https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log | ||
3 | 337 | ||
4 | # These CRL test (alt-avc) are failing | ||
5 | 356 | ||
6 | 412 | ||
7 | 413 | ||
8 | # These CRL tests are scanning docs | ||
9 | 971 | ||
10 | # Intermittently hangs e.g http://autobuilder.yocto.io/pub/non-release/20231228-18/testresults/qemux86-64-ptest/curl.log | ||
11 | 1091 | ||
12 | # Intermittently hangs e.g https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log | ||
13 | 1096 | ||
14 | # These CRL tests are scanning docs | ||
15 | 1119 | ||
16 | 1132 | ||
17 | 1135 | ||
18 | 1478 | ||
19 | # These CRL tests are scanning headers | ||
20 | 1167 | ||
21 | 1477 | ||
22 | # These CRL tests are scanning man pages | ||
23 | 1139 | ||
24 | 1140 | ||
25 | 1173 | ||
26 | 1177 | ||
27 | # This CRL test is looking for m4 files | ||
28 | 1165 | ||
29 | # This CRL test is looking for src files | ||
30 | 1185 | ||
31 | # This test is scanning the source tree | ||
32 | 1222 | ||
33 | # These CRL tests need --libcurl option to be enabled | ||
34 | 1279 | ||
35 | 1400 | ||
36 | 1401 | ||
37 | 1402 | ||
38 | 1403 | ||
39 | 1404 | ||
40 | 1405 | ||
41 | 1465 | ||
diff --git a/meta/recipes-support/curl/curl/environment.d-curl.sh b/meta/recipes-support/curl/curl/environment.d-curl.sh new file mode 100644 index 0000000000..7c2971b3da --- /dev/null +++ b/meta/recipes-support/curl/curl/environment.d-curl.sh | |||
@@ -0,0 +1,19 @@ | |||
1 | # Respect host env CURL_CA_BUNDLE/CURL_CA_PATH first, then auto-detected host cert, then cert in buildtools | ||
2 | # CAFILE/CAPATH is auto-deteced when source buildtools | ||
3 | if [ -z "$CURL_CA_PATH" ]; then | ||
4 | if [ -n "$CAFILE" ];then | ||
5 | export CURL_CA_BUNDLE="$CAFILE" | ||
6 | elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then | ||
7 | export CURL_CA_BUNDLE="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" | ||
8 | fi | ||
9 | fi | ||
10 | |||
11 | if [ -z "$CURL_CA_PATH" ]; then | ||
12 | if [ -n "$CAPATH" ];then | ||
13 | export CURL_CA_PATH="$CAPATH" | ||
14 | elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then | ||
15 | export CURL_CA_PATH="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs" | ||
16 | fi | ||
17 | fi | ||
18 | |||
19 | export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} CURL_CA_BUNDLE CURL_CA_PATH" | ||
diff --git a/meta/recipes-support/curl/curl/no-test-timeout.patch b/meta/recipes-support/curl/curl/no-test-timeout.patch index 7122b6f043..5b901a6fe9 100644 --- a/meta/recipes-support/curl/curl/no-test-timeout.patch +++ b/meta/recipes-support/curl/curl/no-test-timeout.patch | |||
@@ -14,7 +14,7 @@ diff --git a/tests/servers.pm b/tests/servers.pm | |||
14 | index d4472d5..9999938 100644 | 14 | index d4472d5..9999938 100644 |
15 | --- a/tests/servers.pm | 15 | --- a/tests/servers.pm |
16 | +++ b/tests/servers.pm | 16 | +++ b/tests/servers.pm |
17 | @@ -120,7 +120,7 @@ my $sshdverstr; # for socks server, ssh daemon version string | 17 | @@ -124,7 +124,7 @@ my $sshdverstr; # for socks server, ssh daemon version string |
18 | my $sshderror; # for socks server, ssh daemon version error | 18 | my $sshderror; # for socks server, ssh daemon version error |
19 | my %doesntrun; # servers that don't work, identified by pidfile | 19 | my %doesntrun; # servers that don't work, identified by pidfile |
20 | my %PORT = (nolisten => 47); # port we use for a local non-listening service | 20 | my %PORT = (nolisten => 47); # port we use for a local non-listening service |
diff --git a/meta/recipes-support/curl/curl/run-ptest b/meta/recipes-support/curl/curl/run-ptest index 3d25f3d90b..597cf92dbb 100644 --- a/meta/recipes-support/curl/curl/run-ptest +++ b/meta/recipes-support/curl/curl/run-ptest | |||
@@ -7,5 +7,13 @@ cd tests | |||
7 | # Use automake-style output | 7 | # Use automake-style output |
8 | # Run four tests in parallel | 8 | # Run four tests in parallel |
9 | # Print log output on failure | 9 | # Print log output on failure |
10 | |||
10 | # Don't run the flaky or timing dependent tests | 11 | # Don't run the flaky or timing dependent tests |
11 | ./runtests.pl -a -n -am -j4 -p !flaky !timing-dependent | 12 | # Until https://github.com/curl/curl/issues/13350 is resolved, don't run FTP tests |
13 | # We don't enable --libcurl | ||
14 | # Don't assume curl-config exists | ||
15 | # We don't have the source tree | ||
16 | ./runtests.pl \ | ||
17 | -a -c curl -vc curl -n -am -j4 -p \ | ||
18 | !flaky !timing-dependent !FTP \ | ||
19 | !--libcurl !curl-config !source\ analysis !checksrc !documentation | ||
diff --git a/meta/recipes-support/curl/curl_8.7.1.bb b/meta/recipes-support/curl/curl_8.14.1.bb index c6654bbad6..08ad9cdb17 100644 --- a/meta/recipes-support/curl/curl_8.7.1.bb +++ b/meta/recipes-support/curl/curl_8.14.1.bb | |||
@@ -7,7 +7,7 @@ HOMEPAGE = "https://curl.se/" | |||
7 | BUGTRACKER = "https://github.com/curl/curl/issues" | 7 | BUGTRACKER = "https://github.com/curl/curl/issues" |
8 | SECTION = "console/network" | 8 | SECTION = "console/network" |
9 | LICENSE = "curl" | 9 | LICENSE = "curl" |
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=eed2e5088e1ac619c9a1c747da291d75" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=72f4e9890e99e68d77b7e40703d789b8" |
11 | 11 | ||
12 | SRC_URI = " \ | 12 | SRC_URI = " \ |
13 | https://curl.se/download/${BP}.tar.xz \ | 13 | https://curl.se/download/${BP}.tar.xz \ |
@@ -15,19 +15,23 @@ SRC_URI = " \ | |||
15 | file://disable-tests \ | 15 | file://disable-tests \ |
16 | file://no-test-timeout.patch \ | 16 | file://no-test-timeout.patch \ |
17 | " | 17 | " |
18 | SRC_URI[sha256sum] = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd" | 18 | |
19 | SRC_URI:append:class-nativesdk = " \ | ||
20 | file://environment.d-curl.sh \ | ||
21 | " | ||
22 | |||
23 | SRC_URI[sha256sum] = "f4619a1e2474c4bbfedc88a7c2191209c8334b48fa1f4e53fd584cc12e9120dd" | ||
19 | 24 | ||
20 | # Curl has used many names over the years... | 25 | # Curl has used many names over the years... |
21 | CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl" | 26 | CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl" |
27 | CVE_STATUS[CVE-2024-32928] = "ignored: CURLOPT_SSL_VERIFYPEER was disabled on google cloud services causing a potential man in the middle attack" | ||
22 | 28 | ||
23 | inherit autotools pkgconfig binconfig multilib_header ptest | 29 | inherit autotools pkgconfig binconfig multilib_header ptest |
24 | 30 | ||
25 | # Entropy source for random PACKAGECONFIG option | 31 | COMMON_PACKAGECONFIG = "basic-auth bearer-auth digest-auth ipfs negotiate-auth openssl proxy threaded-resolver verbose zlib" |
26 | RANDOM ?= "/dev/urandom" | 32 | PACKAGECONFIG ??= "${COMMON_PACKAGECONFIG} ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws libidn" |
27 | 33 | PACKAGECONFIG:class-native = "${COMMON_PACKAGECONFIG} ipv6" | |
28 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib" | 34 | PACKAGECONFIG:class-nativesdk = "${COMMON_PACKAGECONFIG} ipv6" |
29 | PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib" | ||
30 | PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib" | ||
31 | 35 | ||
32 | # 'ares' and 'threaded-resolver' are mutually exclusive | 36 | # 'ares' and 'threaded-resolver' are mutually exclusive |
33 | PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" | 37 | PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" |
@@ -44,6 +48,7 @@ PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" | |||
44 | PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," | 48 | PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," |
45 | PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," | 49 | PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," |
46 | PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," | 50 | PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," |
51 | PACKAGECONFIG[ipfs] = "--enable-ipfs,--disable-ipfs," | ||
47 | PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth" | 52 | PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth" |
48 | PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" | 53 | PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" |
49 | PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap" | 54 | PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap" |
@@ -58,7 +63,6 @@ PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" | |||
58 | PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" | 63 | PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" |
59 | PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," | 64 | PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," |
60 | PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," | 65 | PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," |
61 | PACKAGECONFIG[random] = "--with-random=${RANDOM},--without-random" | ||
62 | PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" | 66 | PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" |
63 | PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," | 67 | PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," |
64 | PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," | 68 | PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," |
@@ -67,16 +71,19 @@ PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," | |||
67 | PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," | 71 | PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," |
68 | PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" | 72 | PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" |
69 | PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" | 73 | PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" |
74 | PACKAGECONFIG[websockets] = "--enable-websockets,--disable-websockets" | ||
70 | PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" | 75 | PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" |
71 | PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" | 76 | PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" |
72 | 77 | ||
73 | EXTRA_OECONF = " \ | 78 | EXTRA_OECONF = " \ |
74 | --disable-libcurl-option \ | 79 | --disable-libcurl-option \ |
75 | --disable-ntlm-wb \ | ||
76 | --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ | ||
77 | --without-libpsl \ | 80 | --without-libpsl \ |
78 | --enable-optimize \ | 81 | --enable-optimize \ |
79 | ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \ | 82 | ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \ |
83 | WATT_ROOT=${STAGING_DIR_TARGET}${prefix} \ | ||
84 | " | ||
85 | EXTRA_OECONF:append:class-target = " \ | ||
86 | --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ | ||
80 | " | 87 | " |
81 | 88 | ||
82 | fix_absolute_paths () { | 89 | fix_absolute_paths () { |
@@ -95,6 +102,9 @@ do_install:append:class-target() { | |||
95 | 102 | ||
96 | do_install:append:class-nativesdk() { | 103 | do_install:append:class-nativesdk() { |
97 | fix_absolute_paths | 104 | fix_absolute_paths |
105 | |||
106 | mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d | ||
107 | install -m 644 ${UNPACKDIR}/environment.d-curl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/curl.sh | ||
98 | } | 108 | } |
99 | 109 | ||
100 | do_compile_ptest() { | 110 | do_compile_ptest() { |
@@ -102,31 +112,43 @@ do_compile_ptest() { | |||
102 | } | 112 | } |
103 | 113 | ||
104 | do_install_ptest() { | 114 | do_install_ptest() { |
105 | cat ${WORKDIR}/disable-tests >> ${S}/tests/data/DISABLED | 115 | install -d ${D}${PTEST_PATH}/tests |
106 | rm -f ${B}/tests/configurehelp.pm | 116 | cp ${S}/tests/*.p[lmy] ${D}${PTEST_PATH}/tests/ |
107 | cp -rf ${B}/tests ${D}${PTEST_PATH} | 117 | |
108 | rm -f ${D}${PTEST_PATH}/tests/libtest/.libs/libhostname.la | 118 | install -d ${D}${PTEST_PATH}/tests/libtest |
109 | rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la | 119 | for name in $(makefile-getvar ${B}/tests/libtest/Makefile noinst_PROGRAMS noinst_LTLIBRARIES); do |
110 | mv ${D}${PTEST_PATH}/tests/libtest/.libs/* ${D}${PTEST_PATH}/tests/libtest/ | 120 | ${B}/libtool --mode=install install ${B}/tests/libtest/$name ${D}${PTEST_PATH}/tests/libtest |
111 | mv ${D}${PTEST_PATH}/tests/libtest/libhostname.so ${D}${PTEST_PATH}/tests/libtest/.libs/ | 121 | done |
112 | mv ${D}${PTEST_PATH}/tests/http/clients/.libs/* ${D}${PTEST_PATH}/tests/http/clients/ | 122 | rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la |
113 | cp -rf ${S}/tests ${D}${PTEST_PATH} | 123 | |
114 | find ${D}${PTEST_PATH}/ -type f -name Makefile.am -o -name Makefile.in -o -name Makefile -delete | 124 | install -d ${D}${PTEST_PATH}/tests/server |
125 | for name in $(makefile-getvar ${B}/tests/server/Makefile noinst_PROGRAMS); do | ||
126 | ${B}/libtool --mode=install install ${B}/tests/server/$name ${D}${PTEST_PATH}/tests/server | ||
127 | done | ||
128 | |||
115 | install -d ${D}${PTEST_PATH}/src | 129 | install -d ${D}${PTEST_PATH}/src |
116 | ln -sf ${bindir}/curl ${D}${PTEST_PATH}/src/curl | 130 | install -m 755 ${B}/src/curlinfo ${D}${PTEST_PATH}/src |
117 | cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH} | 131 | |
132 | cp -r ${S}/tests/data ${D}${PTEST_PATH}/tests/ | ||
133 | |||
134 | # More tests that we disable for automated QA as they're not reliable | ||
135 | cat ${UNPACKDIR}/disable-tests >>${D}${PTEST_PATH}/tests/data/DISABLED | ||
118 | } | 136 | } |
119 | 137 | ||
138 | DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' openssl-native', '', d)}" | ||
139 | |||
120 | RDEPENDS:${PN}-ptest += " \ | 140 | RDEPENDS:${PN}-ptest += " \ |
121 | bash \ | 141 | locale-base-en-us \ |
122 | perl-module-b \ | 142 | perl-module-b \ |
123 | perl-module-base \ | 143 | perl-module-base \ |
124 | perl-module-cwd \ | 144 | perl-module-cwd \ |
125 | perl-module-digest \ | 145 | perl-module-digest \ |
126 | perl-module-digest-md5 \ | 146 | perl-module-digest-md5 \ |
147 | perl-module-digest-sha \ | ||
127 | perl-module-file-basename \ | 148 | perl-module-file-basename \ |
128 | perl-module-file-spec \ | 149 | perl-module-file-spec \ |
129 | perl-module-file-temp \ | 150 | perl-module-file-temp \ |
151 | perl-module-i18n-langinfo \ | ||
130 | perl-module-io-socket \ | 152 | perl-module-io-socket \ |
131 | perl-module-ipc-open2 \ | 153 | perl-module-ipc-open2 \ |
132 | perl-module-list-util \ | 154 | perl-module-list-util \ |
@@ -134,7 +156,6 @@ RDEPENDS:${PN}-ptest += " \ | |||
134 | perl-module-storable \ | 156 | perl-module-storable \ |
135 | perl-module-time-hires \ | 157 | perl-module-time-hires \ |
136 | " | 158 | " |
137 | RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us" | ||
138 | 159 | ||
139 | PACKAGES =+ "lib${BPN}" | 160 | PACKAGES =+ "lib${BPN}" |
140 | 161 | ||
@@ -142,6 +163,7 @@ FILES:lib${BPN} = "${libdir}/lib*.so.*" | |||
142 | RRECOMMENDS:lib${BPN} += "ca-certificates" | 163 | RRECOMMENDS:lib${BPN} += "ca-certificates" |
143 | 164 | ||
144 | FILES:${PN} += "${datadir}/zsh" | 165 | FILES:${PN} += "${datadir}/zsh" |
166 | FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/curl.sh" | ||
145 | 167 | ||
146 | inherit multilib_script | 168 | inherit multilib_script |
147 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" | 169 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" |
diff --git a/meta/recipes-support/db/db_5.3.28.bb b/meta/recipes-support/db/db_5.3.28.bb index a99d5cea62..8d2af1f5dc 100644 --- a/meta/recipes-support/db/db_5.3.28.bb +++ b/meta/recipes-support/db/db_5.3.28.bb | |||
@@ -33,7 +33,6 @@ SRC_URI += "file://fix-parallel-build.patch \ | |||
33 | UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/db5.3/" | 33 | UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/db5.3/" |
34 | UPSTREAM_CHECK_REGEX = "db5\.3_(?P<pver>\d+(\.\d+)+).+\.orig" | 34 | UPSTREAM_CHECK_REGEX = "db5\.3_(?P<pver>\d+(\.\d+)+).+\.orig" |
35 | 35 | ||
36 | SRC_URI[md5sum] = "b99454564d5b4479750567031d66fe24" | ||
37 | SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" | 36 | SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" |
38 | 37 | ||
39 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" | 38 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" |
@@ -116,3 +115,8 @@ INSANE_SKIP:${PN} = "dev-so" | |||
116 | INSANE_SKIP:${PN}-cxx = "dev-so" | 115 | INSANE_SKIP:${PN}-cxx = "dev-so" |
117 | 116 | ||
118 | BBCLASSEXTEND = "native nativesdk" | 117 | BBCLASSEXTEND = "native nativesdk" |
118 | |||
119 | # many configure tests are failing with gcc-14 | ||
120 | # -Wno-error=incompatible-pointer-types needed for gcc-15 | ||
121 | CFLAGS += "-Wno-error=implicit-int -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types" | ||
122 | BUILD_CFLAGS += "-Wno-error=implicit-int -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types" | ||
diff --git a/meta/recipes-support/debianutils/debianutils_5.17.bb b/meta/recipes-support/debianutils/debianutils_5.23.1.bb index c5f25bae40..96ea9063bf 100644 --- a/meta/recipes-support/debianutils/debianutils_5.17.bb +++ b/meta/recipes-support/debianutils/debianutils_5.23.1.bb | |||
@@ -8,21 +8,18 @@ SECTION = "base" | |||
8 | LICENSE = "GPL-2.0-only & SMAIL_GPL" | 8 | LICENSE = "GPL-2.0-only & SMAIL_GPL" |
9 | LIC_FILES_CHKSUM = "file://debian/copyright;md5=4b667f30411d21bc8fd7db85d502a8e9" | 9 | LIC_FILES_CHKSUM = "file://debian/copyright;md5=4b667f30411d21bc8fd7db85d502a8e9" |
10 | 10 | ||
11 | SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master \ | 11 | SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master;tag=debian/${PV} \ |
12 | " | 12 | " |
13 | 13 | ||
14 | SRCREV = "baf12e98a02883d1b76081e32f2185ee3497570b" | 14 | SRCREV = "ab0eaf33b783ba578773af2557753d2b973ba5bb" |
15 | 15 | ||
16 | inherit autotools update-alternatives | 16 | inherit autotools update-alternatives |
17 | 17 | ||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | # Disable po4a (translated manpages) sub-directory, as that requires po4a to build | 18 | # Disable po4a (translated manpages) sub-directory, as that requires po4a to build |
21 | do_configure:prepend() { | 19 | do_configure:prepend() { |
22 | sed -i -e 's:po4a::g' ${S}/Makefile.am | 20 | sed -i -e 's:po4a::g' ${S}/Makefile.am |
23 | } | 21 | } |
24 | 22 | ||
25 | |||
26 | do_install:append() { | 23 | do_install:append() { |
27 | if [ "${base_bindir}" != "${bindir}" ]; then | 24 | if [ "${base_bindir}" != "${bindir}" ]; then |
28 | # Debian places some utils into ${base_bindir} as does busybox | 25 | # Debian places some utils into ${base_bindir} as does busybox |
diff --git a/meta/recipes-support/diffoscope/diffoscope_260.bb b/meta/recipes-support/diffoscope/diffoscope_298.bb index 297a53fb53..4a50059c99 100644 --- a/meta/recipes-support/diffoscope/diffoscope_260.bb +++ b/meta/recipes-support/diffoscope/diffoscope_298.bb | |||
@@ -12,7 +12,7 @@ PYPI_PACKAGE = "diffoscope" | |||
12 | 12 | ||
13 | inherit pypi setuptools3 | 13 | inherit pypi setuptools3 |
14 | 14 | ||
15 | SRC_URI[sha256sum] = "405a55502c8b2c988e46c0800d6a93e8e4e7632c1542b0a540dda50aeea41dac" | 15 | SRC_URI[sha256sum] = "9644b7e711df71f13c5f50f3d1353c1e6d09f462d342d9771576e75f3dd8c3e1" |
16 | 16 | ||
17 | RDEPENDS:${PN} += "\ | 17 | RDEPENDS:${PN} += "\ |
18 | binutils \ | 18 | binutils \ |
@@ -29,9 +29,6 @@ RDEPENDS:${PN} += "\ | |||
29 | vim \ | 29 | vim \ |
30 | " | 30 | " |
31 | 31 | ||
32 | # Dependencies don't build for musl | ||
33 | COMPATIBLE_HOST:libc-musl = 'null' | ||
34 | |||
35 | do_install:append:class-native() { | 32 | do_install:append:class-native() { |
36 | create_wrapper ${D}${bindir}/diffoscope \ | 33 | create_wrapper ${D}${bindir}/diffoscope \ |
37 | MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \ | 34 | MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \ |
diff --git a/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb b/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb index 06338dd62f..c3803f457b 100644 --- a/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb +++ b/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb | |||
@@ -13,7 +13,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "dos2unix-(?P<pver>(\d+(\.\d+)+))" | |||
13 | 13 | ||
14 | SRCREV = "c16a0b31a64c7eb6b2d76960e5144732b57f2993" | 14 | SRCREV = "c16a0b31a64c7eb6b2d76960e5144732b57f2993" |
15 | 15 | ||
16 | S = "${WORKDIR}/git/dos2unix" | 16 | S = "${UNPACKDIR}/${BP}/dos2unix" |
17 | 17 | ||
18 | inherit gettext perlnative | 18 | inherit gettext perlnative |
19 | 19 | ||
diff --git a/meta/recipes-support/enchant/enchant2_2.6.9.bb b/meta/recipes-support/enchant/enchant2_2.8.6.bb index aaf3525ad8..2696fc0f81 100644 --- a/meta/recipes-support/enchant/enchant2_2.6.9.bb +++ b/meta/recipes-support/enchant/enchant2_2.8.6.bb | |||
@@ -2,8 +2,8 @@ SUMMARY = "Enchant Spell checker API Library" | |||
2 | DESCRIPTION = "A library (and command-line program) that wraps a number of \ | 2 | DESCRIPTION = "A library (and command-line program) that wraps a number of \ |
3 | different spelling libraries and programs with a consistent interface." | 3 | different spelling libraries and programs with a consistent interface." |
4 | SECTION = "libs" | 4 | SECTION = "libs" |
5 | HOMEPAGE = "https://abiword.github.io/enchant/" | 5 | HOMEPAGE = "https://rrthomas.github.io/enchant/" |
6 | BUGTRACKER = "https://github.com/AbiWord/enchant/issues/" | 6 | BUGTRACKER = "https://github.com/rrthomas/enchant/issues" |
7 | LICENSE = "LGPL-2.1-or-later" | 7 | LICENSE = "LGPL-2.1-or-later" |
8 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" | 8 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" |
9 | 9 | ||
@@ -12,11 +12,11 @@ DEPENDS = "glib-2.0 groff-native" | |||
12 | inherit autotools pkgconfig github-releases | 12 | inherit autotools pkgconfig github-releases |
13 | 13 | ||
14 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/enchant-${PV}.tar.gz" | 14 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/enchant-${PV}.tar.gz" |
15 | SRC_URI[sha256sum] = "d9a5a10dc9b38a43b3a0fa22c76ed6ebb7e09eb535aff62954afcdbd40efff6b" | 15 | SRC_URI[sha256sum] = "c4cd0889d8aff8248fc3913de5a83907013962f0e1895030a3836468cd40af5b" |
16 | 16 | ||
17 | GITHUB_BASE_URI = "https://github.com/AbiWord/enchant/releases" | 17 | GITHUB_BASE_URI = "https://github.com/rrthomas/enchant/releases" |
18 | 18 | ||
19 | S = "${WORKDIR}/enchant-${PV}" | 19 | S = "${UNPACKDIR}/enchant-${PV}" |
20 | 20 | ||
21 | PACKAGECONFIG ??= "aspell" | 21 | PACKAGECONFIG ??= "aspell" |
22 | PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" | 22 | PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" |
diff --git a/meta/recipes-support/fribidi/fribidi_1.0.13.bb b/meta/recipes-support/fribidi/fribidi_1.0.16.bb index 5d0476a375..9f75446da2 100644 --- a/meta/recipes-support/fribidi/fribidi_1.0.13.bb +++ b/meta/recipes-support/fribidi/fribidi_1.0.16.bb | |||
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" | |||
11 | 11 | ||
12 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.xz \ | 12 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.xz \ |
13 | " | 13 | " |
14 | SRC_URI[sha256sum] = "7fa16c80c81bd622f7b198d31356da139cc318a63fc7761217af4130903f54a2" | 14 | SRC_URI[sha256sum] = "1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c" |
15 | 15 | ||
16 | inherit meson lib_package pkgconfig github-releases | 16 | inherit meson lib_package pkgconfig github-releases |
17 | 17 | ||
diff --git a/meta/recipes-support/gdbm/files/ptest.patch b/meta/recipes-support/gdbm/files/ptest.patch index 25fb6bb2f4..989f9524bc 100644 --- a/meta/recipes-support/gdbm/files/ptest.patch +++ b/meta/recipes-support/gdbm/files/ptest.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 8bea84a598b51a7ac7e50aa8f0f20857a9b6b07b Mon Sep 17 00:00:00 2001 | 1 | From ed0b5a48c7ce59ea971a10c7e522933cf613841a Mon Sep 17 00:00:00 2001 |
2 | From: Josep Puigdemont <josep.puigdemont@enea.com> | 2 | From: Josep Puigdemont <josep.puigdemont@enea.com> |
3 | Date: Sun, 4 May 2014 16:02:07 +0200 | 3 | Date: Sun, 4 May 2014 16:02:07 +0200 |
4 | Subject: [PATCH] Add install-ptest rules. | 4 | Subject: [PATCH] Add install-ptest rules. |
@@ -6,14 +6,13 @@ Subject: [PATCH] Add install-ptest rules. | |||
6 | Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> | 6 | Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> |
7 | Signed-off-by: Maxin B. John <maxin.john@enea.com> | 7 | Signed-off-by: Maxin B. John <maxin.john@enea.com> |
8 | Upstream-Status: Pending | 8 | Upstream-Status: Pending |
9 | |||
10 | --- | 9 | --- |
11 | Makefile.am | 5 +++++ | 10 | Makefile.am | 5 +++++ |
12 | tests/Makefile.am | 12 ++++++++++++ | 11 | tests/Makefile.am | 12 ++++++++++++ |
13 | 2 files changed, 17 insertions(+) | 12 | 2 files changed, 17 insertions(+) |
14 | 13 | ||
15 | diff --git a/Makefile.am b/Makefile.am | 14 | diff --git a/Makefile.am b/Makefile.am |
16 | index 59e2643..5f3ceb0 100644 | 15 | index d0b46ea..6c57b11 100644 |
17 | --- a/Makefile.am | 16 | --- a/Makefile.am |
18 | +++ b/Makefile.am | 17 | +++ b/Makefile.am |
19 | @@ -64,3 +64,8 @@ ChangeLog: | 18 | @@ -64,3 +64,8 @@ ChangeLog: |
@@ -26,10 +25,10 @@ index 59e2643..5f3ceb0 100644 | |||
26 | + $(MAKE) -C $$subdir DESTDIR=$(DESTDIR)/$$subdir $@; \ | 25 | + $(MAKE) -C $$subdir DESTDIR=$(DESTDIR)/$$subdir $@; \ |
27 | + done | 26 | + done |
28 | diff --git a/tests/Makefile.am b/tests/Makefile.am | 27 | diff --git a/tests/Makefile.am b/tests/Makefile.am |
29 | index fac6826..5dc2091 100644 | 28 | index eb071ac..9d14fe8 100644 |
30 | --- a/tests/Makefile.am | 29 | --- a/tests/Makefile.am |
31 | +++ b/tests/Makefile.am | 30 | +++ b/tests/Makefile.am |
32 | @@ -143,3 +143,15 @@ d_creat_ce_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la | 31 | @@ -145,3 +145,15 @@ d_creat_ce_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la |
33 | t_wordwrap_LDADD = ../tools/libgdbmapp.a | 32 | t_wordwrap_LDADD = ../tools/libgdbmapp.a |
34 | 33 | ||
35 | SUBDIRS = gdbmtool | 34 | SUBDIRS = gdbmtool |
@@ -45,6 +44,3 @@ index fac6826..5dc2091 100644 | |||
45 | + $(INSTALL_PROGRAM) $$file $(DESTDIR) ; \ | 44 | + $(INSTALL_PROGRAM) $$file $(DESTDIR) ; \ |
46 | + fi \ | 45 | + fi \ |
47 | + done | 46 | + done |
48 | -- | ||
49 | 2.25.1 | ||
50 | |||
diff --git a/meta/recipes-support/gdbm/gdbm_1.23.bb b/meta/recipes-support/gdbm/gdbm_1.24.bb index a08079741d..f400462a7a 100644 --- a/meta/recipes-support/gdbm/gdbm_1.23.bb +++ b/meta/recipes-support/gdbm/gdbm_1.24.bb | |||
@@ -7,13 +7,12 @@ SECTION = "libs" | |||
7 | LICENSE = "GPL-3.0-only" | 7 | LICENSE = "GPL-3.0-only" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24" | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24" |
9 | 9 | ||
10 | |||
11 | SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \ | 10 | SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \ |
12 | file://run-ptest \ | 11 | file://run-ptest \ |
13 | file://ptest.patch \ | 12 | file://ptest.patch \ |
14 | " | 13 | " |
15 | 14 | ||
16 | SRC_URI[sha256sum] = "74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd" | 15 | SRC_URI[sha256sum] = "695e9827fdf763513f133910bc7e6cfdb9187943a4fec943e57449723d2b8dbf" |
17 | 16 | ||
18 | inherit autotools gettext texinfo lib_package ptest | 17 | inherit autotools gettext texinfo lib_package ptest |
19 | 18 | ||
@@ -23,6 +22,9 @@ EXTRA_OECONF = "--enable-libgdbm-compat --without-readline" | |||
23 | # Stop presence of dbm/nbdm on the host contaminating builds | 22 | # Stop presence of dbm/nbdm on the host contaminating builds |
24 | CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no" | 23 | CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no" |
25 | 24 | ||
25 | # Not yet ready for C23 | ||
26 | CFLAGS += "-std=gnu11" | ||
27 | |||
26 | BBCLASSEXTEND = "native nativesdk" | 28 | BBCLASSEXTEND = "native nativesdk" |
27 | 29 | ||
28 | do_install:append () { | 30 | do_install:append () { |
diff --git a/meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch b/meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch new file mode 100644 index 0000000000..ee199a8373 --- /dev/null +++ b/meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch | |||
@@ -0,0 +1,25 @@ | |||
1 | From 51a657c827422d2bc284d752dfbcfd2b1311a5bf Mon Sep 17 00:00:00 2001 | ||
2 | From: Marc Glisse <marc.glisse@inria.fr> | ||
3 | Date: Wed, 29 Jan 2025 22:38:02 +0100 | ||
4 | Subject: [PATCH] Complete function prototype in acinclude.m4 for C23 | ||
5 | compatibility | ||
6 | |||
7 | Upstream-Status: Backport [https://gmplib.org/repo/gmp/rev/8e7bb4ae7a18] | ||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | acinclude.m4 | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/acinclude.m4 b/acinclude.m4 | ||
14 | index 9cf9483..787511f 100644 | ||
15 | --- a/acinclude.m4 | ||
16 | +++ b/acinclude.m4 | ||
17 | @@ -609,7 +609,7 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1], | ||
18 | |||
19 | #if defined (__GNUC__) && ! defined (__cplusplus) | ||
20 | typedef unsigned long long t1;typedef t1*t2; | ||
21 | -void g(){} | ||
22 | +void g(int,t1 const*,t1,t2,t1 const*,int){} | ||
23 | void h(){} | ||
24 | static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) | ||
25 | {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;} | ||
diff --git a/meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch b/meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch new file mode 100644 index 0000000000..ae2411fd1b --- /dev/null +++ b/meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch | |||
@@ -0,0 +1,50 @@ | |||
1 | From 1744e433a16fb39a55c4c771b8ecb02246aa5b99 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 15 Mar 2025 09:40:06 -0700 | ||
4 | Subject: [PATCH] acinclude.m4: Add parameter names in prototype for g(). | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | This allows it to compile with older gcc e.g. gcc-10 | ||
10 | which does not have allow parameter name omission, it results | ||
11 | in | ||
12 | |||
13 | a.c: In function ‘g’: | ||
14 | a.c:3:8: error: parameter name omitted | ||
15 | 3 | void g(int,t1 const*,t1,t2,t1 const*,int){} | ||
16 | | ^~~ | ||
17 | |||
18 | this was added to gcc via [1] thats why it is supported in | ||
19 | newer gcc. | ||
20 | |||
21 | Adding the parameter names make it compatible with | ||
22 | old and new gcc | ||
23 | |||
24 | [1] https://gcc.gnu.org/pipermail/gcc-cvs/2020-October/336068.html | ||
25 | |||
26 | Upstream-Status: Submitted [https://gmplib.org/list-archives/gmp-devel/2025-March/006294.html] | ||
27 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
28 | --- | ||
29 | ChangeLog | ||
30 | |||
31 | 2025-03-15 Khem Raj <raj.khem@gmail.com> | ||
32 | |||
33 | * acinclude.m4: Add parameter names to function prototype. | ||
34 | |||
35 | acinclude.m4 | 2 +- | ||
36 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
37 | |||
38 | diff --git a/acinclude.m4 b/acinclude.m4 | ||
39 | index 4fca12de2..b9d1eacfe 100644 | ||
40 | --- a/acinclude.m4 | ||
41 | +++ b/acinclude.m4 | ||
42 | @@ -609,7 +609,7 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1], | ||
43 | |||
44 | #if defined (__GNUC__) && ! defined (__cplusplus) | ||
45 | typedef unsigned long long t1;typedef t1*t2; | ||
46 | -void g(int,t1 const*,t1,t2,t1 const*,int){} | ||
47 | +void g(int a,t1 const* b,t1 c,t2 d,t1 const* e,int f){} | ||
48 | void h(){} | ||
49 | static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) | ||
50 | {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;} | ||
diff --git a/meta/recipes-support/gmp/gmp_6.3.0.bb b/meta/recipes-support/gmp/gmp_6.3.0.bb index fd4aec92fd..8f18bdca1b 100644 --- a/meta/recipes-support/gmp/gmp_6.3.0.bb +++ b/meta/recipes-support/gmp/gmp_6.3.0.bb | |||
@@ -14,11 +14,11 @@ SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \ | |||
14 | file://use-includedir.patch \ | 14 | file://use-includedir.patch \ |
15 | file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \ | 15 | file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \ |
16 | file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \ | 16 | file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \ |
17 | file://0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch \ | ||
18 | file://0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch \ | ||
17 | " | 19 | " |
18 | SRC_URI[sha256sum] = "ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb" | 20 | SRC_URI[sha256sum] = "ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb" |
19 | 21 | ||
20 | acpaths = "" | ||
21 | |||
22 | EXTRA_OECONF += " --enable-cxx=detect" | 22 | EXTRA_OECONF += " --enable-cxx=detect" |
23 | EXTRA_OECONF:append:mipsarchr6 = " --disable-assembly" | 23 | EXTRA_OECONF:append:mipsarchr6 = " --disable-assembly" |
24 | 24 | ||
diff --git a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb index 1173dd4af3..4fcad4814b 100644 --- a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb +++ b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb | |||
@@ -16,8 +16,6 @@ SRCREV = "e346cd4ed2e2102c9b195b614f3c642d23f5f6e7" | |||
16 | 16 | ||
17 | DEPENDS = "glib-2.0" | 17 | DEPENDS = "glib-2.0" |
18 | 18 | ||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | inherit autotools pkgconfig | 19 | inherit autotools pkgconfig |
22 | 20 | ||
23 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" | 21 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" |
diff --git a/meta/recipes-support/gnupg/drop-unknown-suffix.inc b/meta/recipes-support/gnupg/drop-unknown-suffix.inc new file mode 100644 index 0000000000..dc8f31869c --- /dev/null +++ b/meta/recipes-support/gnupg/drop-unknown-suffix.inc | |||
@@ -0,0 +1,29 @@ | |||
1 | # | ||
2 | # Copyright OpenEmbedded Contributors | ||
3 | # | ||
4 | # SPDX-License-Identifier: MIT | ||
5 | # | ||
6 | |||
7 | # | ||
8 | # This .inc file is used to remove unknown suffix in runtime version | ||
9 | # for gnupg and its related packages. | ||
10 | # | ||
11 | # In these packages, if autogen.sh is run outside of a git repo, | ||
12 | # the find-version function always assumes that the package is a | ||
13 | # beta version and adds the suffix '-unknown' to the version number. | ||
14 | # | ||
15 | # This .inc file modifies autogen.sh to: | ||
16 | # 1. Replace beta=yes with beta=no | ||
17 | # 2. Replace tmp="-unknown" with tmp="" | ||
18 | # | ||
19 | |||
20 | do_configure:prepend() { | ||
21 | if [ -f ${S}/autogen.sh ]; then | ||
22 | sed -i \ | ||
23 | -e 's/^\([[:space:]]*\)beta=yes$/\1beta=no/' \ | ||
24 | -e 's/^\([[:space:]]*\)tmp="-unknown"$/\1tmp=""/' \ | ||
25 | ${S}/autogen.sh | ||
26 | else | ||
27 | bbwarn "autogen.sh not found in ${S}." | ||
28 | fi | ||
29 | } | ||
diff --git a/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch b/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch index 83195b5bd4..6299eb95ce 100644 --- a/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch +++ b/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From e3adc816d2d56dd929016073937ba24e01e03cb8 Mon Sep 17 00:00:00 2001 | 1 | From 690faa62529c584cd80c8eaa56210ec1e4a96d7f Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Thu, 20 Dec 2018 17:37:48 -0800 | 3 | Date: Thu, 20 Dec 2018 17:37:48 -0800 |
4 | Subject: [PATCH] Woverride-init is not needed with gcc 9 | 4 | Subject: [PATCH] Woverride-init is not needed with gcc 9 |
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | 17 | 1 file changed, 1 insertion(+), 1 deletion(-) |
18 | 18 | ||
19 | diff --git a/dirmngr/dns.h b/dirmngr/dns.h | 19 | diff --git a/dirmngr/dns.h b/dirmngr/dns.h |
20 | index 024d6dcc8..c6e141e16 100644 | 20 | index 1f647e1..334acb6 100644 |
21 | --- a/dirmngr/dns.h | 21 | --- a/dirmngr/dns.h |
22 | +++ b/dirmngr/dns.h | 22 | +++ b/dirmngr/dns.h |
23 | @@ -139,7 +139,7 @@ DNS_PUBLIC int *dns_debug_p(void); | 23 | @@ -139,7 +139,7 @@ DNS_PUBLIC int *dns_debug_p(void); |
@@ -29,6 +29,3 @@ index 024d6dcc8..c6e141e16 100644 | |||
29 | #define DNS_PRAGMA_PUSH _Pragma("GCC diagnostic push") | 29 | #define DNS_PRAGMA_PUSH _Pragma("GCC diagnostic push") |
30 | #define DNS_PRAGMA_QUIET _Pragma("GCC diagnostic ignored \"-Woverride-init\"") | 30 | #define DNS_PRAGMA_QUIET _Pragma("GCC diagnostic ignored \"-Woverride-init\"") |
31 | #define DNS_PRAGMA_POP _Pragma("GCC diagnostic pop") | 31 | #define DNS_PRAGMA_POP _Pragma("GCC diagnostic pop") |
32 | -- | ||
33 | 2.17.1 | ||
34 | |||
diff --git a/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch b/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch index f957f6b55e..ed94145833 100644 --- a/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch +++ b/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 6b581c43bd01f815db78a410fd3814fc5994171e Mon Sep 17 00:00:00 2001 | 1 | From c9392c615a95c965dd58b0896cb3b87deafc62a4 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Mon, 22 Jan 2018 18:00:21 +0200 | 3 | Date: Mon, 22 Jan 2018 18:00:21 +0200 |
4 | Subject: [PATCH] configure.ac: use a custom value for the location of | 4 | Subject: [PATCH] configure.ac: use a custom value for the location of |
@@ -8,16 +8,15 @@ This should avoid clashes with the host gpg-agent observed on autobuilders. | |||
8 | 8 | ||
9 | Upstream-Status: Inappropriate [oe-core specific, and only for -native] | 9 | Upstream-Status: Inappropriate [oe-core specific, and only for -native] |
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | 10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
11 | |||
12 | --- | 11 | --- |
13 | configure.ac | 2 +- | 12 | configure.ac | 2 +- |
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | 13 | 1 file changed, 1 insertion(+), 1 deletion(-) |
15 | 14 | ||
16 | diff --git a/configure.ac b/configure.ac | 15 | diff --git a/configure.ac b/configure.ac |
17 | index 26d7f7b..e953c2e 100644 | 16 | index 23a9101..3e10021 100644 |
18 | --- a/configure.ac | 17 | --- a/configure.ac |
19 | +++ b/configure.ac | 18 | +++ b/configure.ac |
20 | @@ -1921,7 +1921,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf", | 19 | @@ -1908,7 +1908,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf", |
21 | 20 | ||
22 | AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool]) | 21 | AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool]) |
23 | 22 | ||
diff --git a/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch b/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch index 0e58fd4c4d..2d23ca1e66 100644 --- a/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch +++ b/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From d9048788d906774b1475c3bb1b17e22455c2add4 Mon Sep 17 00:00:00 2001 | 1 | From 9f7cf2e4770697c24f8d24ce9f79b8548120bbf8 Mon Sep 17 00:00:00 2001 |
2 | From: Saul Wold <sgw@linux.intel.com> | 2 | From: Saul Wold <sgw@linux.intel.com> |
3 | Date: Wed, 16 Aug 2017 11:16:30 +0800 | 3 | Date: Wed, 16 Aug 2017 11:16:30 +0800 |
4 | Subject: [PATCH] use pkgconfig instead of npth config | 4 | Subject: [PATCH] use pkgconfig instead of npth config |
@@ -9,7 +9,6 @@ Signed-off-by: Saul Wold <sgw@linux.intel.com> | |||
9 | 9 | ||
10 | Rebase to 2.1.23 | 10 | Rebase to 2.1.23 |
11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
12 | |||
13 | --- | 12 | --- |
14 | m4/npth.m4 | 53 ++++++++--------------------------------------------- | 13 | m4/npth.m4 | 53 ++++++++--------------------------------------------- |
15 | 1 file changed, 8 insertions(+), 45 deletions(-) | 14 | 1 file changed, 8 insertions(+), 45 deletions(-) |
diff --git a/meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch b/meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch deleted file mode 100644 index d664c36a1b..0000000000 --- a/meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 6a7f9b71d936847dcaeeac7d1b69d8299be4dd85 Mon Sep 17 00:00:00 2001 | ||
2 | From: Wenzong Fan <wenzong.fan@windriver.com> | ||
3 | Date: Wed, 16 Aug 2017 11:23:22 +0800 | ||
4 | Subject: [PATCH] autogen.sh: fix find-version for beta checking | ||
5 | |||
6 | find-version always assumes that gnupg is beta if autogen.sh is run | ||
7 | out of git-repo. This doesn't work for users whom just take release | ||
8 | tarball and re-run autoconf in their local build dir. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | ||
13 | |||
14 | Rebase to 2.1.23 | ||
15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
16 | |||
17 | --- | ||
18 | autogen.sh | 1 - | ||
19 | 1 file changed, 1 deletion(-) | ||
20 | |||
21 | diff --git a/autogen.sh b/autogen.sh | ||
22 | index 0abf103..78753b5 100755 | ||
23 | --- a/autogen.sh | ||
24 | +++ b/autogen.sh | ||
25 | @@ -237,7 +237,6 @@ if [ "$myhost" = "find-version" ]; then | ||
26 | rvd=$((0x$(echo ${rev} | dd bs=1 count=4 2>/dev/null))) | ||
27 | else | ||
28 | ingit=no | ||
29 | - beta=yes | ||
30 | tmp="-unknown" | ||
31 | rev="0000000" | ||
32 | rvd="0" | ||
diff --git a/meta/recipes-support/gnupg/gnupg/relocate.patch b/meta/recipes-support/gnupg/gnupg/relocate.patch index ea0252026a..1ae8a564d4 100644 --- a/meta/recipes-support/gnupg/gnupg/relocate.patch +++ b/meta/recipes-support/gnupg/gnupg/relocate.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From c50d0a95fcf8f96c272fadd4ba85f3eeac39fcaf Mon Sep 17 00:00:00 2001 | 1 | From 917a98f9380d581548f3cbb59428cee3a5c29bae Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@intel.com> | 2 | From: Ross Burton <ross.burton@intel.com> |
3 | Date: Wed, 19 Sep 2018 14:44:40 +0100 | 3 | Date: Wed, 19 Sep 2018 14:44:40 +0100 |
4 | Subject: [PATCH] Allow the environment to override where gnupg looks for its | 4 | Subject: [PATCH] Allow the environment to override where gnupg looks for its |
@@ -8,16 +8,15 @@ Upstream-Status: Inappropriate [OE-specific] | |||
8 | Signed-off-by: Ross Burton <ross.burton@intel.com> | 8 | Signed-off-by: Ross Burton <ross.burton@intel.com> |
9 | 9 | ||
10 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | 10 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> |
11 | |||
12 | --- | 11 | --- |
13 | common/homedir.c | 14 +++++++------- | 12 | common/homedir.c | 14 +++++++------- |
14 | 1 file changed, 7 insertions(+), 7 deletions(-) | 13 | 1 file changed, 7 insertions(+), 7 deletions(-) |
15 | 14 | ||
16 | diff --git a/common/homedir.c b/common/homedir.c | 15 | diff --git a/common/homedir.c b/common/homedir.c |
17 | index 6f99f3e..f22aa9e 100644 | 16 | index d26ddd9..24224c0 100644 |
18 | --- a/common/homedir.c | 17 | --- a/common/homedir.c |
19 | +++ b/common/homedir.c | 18 | +++ b/common/homedir.c |
20 | @@ -1284,7 +1284,7 @@ gnupg_socketdir (void) | 19 | @@ -1451,7 +1451,7 @@ gnupg_socketdir (void) |
21 | if (!name) | 20 | if (!name) |
22 | { | 21 | { |
23 | unsigned int dummy; | 22 | unsigned int dummy; |
@@ -26,7 +25,7 @@ index 6f99f3e..f22aa9e 100644 | |||
26 | gpgrt_annotate_leaked_object (name); | 25 | gpgrt_annotate_leaked_object (name); |
27 | } | 26 | } |
28 | 27 | ||
29 | @@ -1316,7 +1316,7 @@ gnupg_sysconfdir (void) | 28 | @@ -1480,7 +1480,7 @@ gnupg_sysconfdir (void) |
30 | if (dir) | 29 | if (dir) |
31 | return dir; | 30 | return dir; |
32 | else | 31 | else |
@@ -35,7 +34,7 @@ index 6f99f3e..f22aa9e 100644 | |||
35 | #endif /*!HAVE_W32_SYSTEM*/ | 34 | #endif /*!HAVE_W32_SYSTEM*/ |
36 | } | 35 | } |
37 | 36 | ||
38 | @@ -1352,7 +1352,7 @@ gnupg_bindir (void) | 37 | @@ -1516,7 +1516,7 @@ gnupg_bindir (void) |
39 | return name; | 38 | return name; |
40 | } | 39 | } |
41 | else | 40 | else |
@@ -44,7 +43,7 @@ index 6f99f3e..f22aa9e 100644 | |||
44 | #endif /*!HAVE_W32_SYSTEM*/ | 43 | #endif /*!HAVE_W32_SYSTEM*/ |
45 | } | 44 | } |
46 | 45 | ||
47 | @@ -1379,7 +1379,7 @@ gnupg_libexecdir (void) | 46 | @@ -1543,7 +1543,7 @@ gnupg_libexecdir (void) |
48 | return name; | 47 | return name; |
49 | } | 48 | } |
50 | else | 49 | else |
@@ -53,7 +52,7 @@ index 6f99f3e..f22aa9e 100644 | |||
53 | #endif /*!HAVE_W32_SYSTEM*/ | 52 | #endif /*!HAVE_W32_SYSTEM*/ |
54 | } | 53 | } |
55 | 54 | ||
56 | @@ -1409,7 +1409,7 @@ gnupg_libdir (void) | 55 | @@ -1573,7 +1573,7 @@ gnupg_libdir (void) |
57 | return name; | 56 | return name; |
58 | } | 57 | } |
59 | else | 58 | else |
@@ -62,7 +61,7 @@ index 6f99f3e..f22aa9e 100644 | |||
62 | #endif /*!HAVE_W32_SYSTEM*/ | 61 | #endif /*!HAVE_W32_SYSTEM*/ |
63 | } | 62 | } |
64 | 63 | ||
65 | @@ -1440,7 +1440,7 @@ gnupg_datadir (void) | 64 | @@ -1604,7 +1604,7 @@ gnupg_datadir (void) |
66 | return name; | 65 | return name; |
67 | } | 66 | } |
68 | else | 67 | else |
@@ -71,7 +70,7 @@ index 6f99f3e..f22aa9e 100644 | |||
71 | #endif /*!HAVE_W32_SYSTEM*/ | 70 | #endif /*!HAVE_W32_SYSTEM*/ |
72 | } | 71 | } |
73 | 72 | ||
74 | @@ -1472,7 +1472,7 @@ gnupg_localedir (void) | 73 | @@ -1636,7 +1636,7 @@ gnupg_localedir (void) |
75 | return name; | 74 | return name; |
76 | } | 75 | } |
77 | else | 76 | else |
diff --git a/meta/recipes-support/gnupg/gnupg_2.4.5.bb b/meta/recipes-support/gnupg/gnupg_2.5.5.bb index 99996968b1..cbf0988953 100644 --- a/meta/recipes-support/gnupg/gnupg_2.4.5.bb +++ b/meta/recipes-support/gnupg/gnupg_2.5.5.bb | |||
@@ -11,19 +11,20 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ | |||
11 | 11 | ||
12 | DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" | 12 | DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" |
13 | 13 | ||
14 | inherit autotools gettext texinfo pkgconfig | 14 | inherit autotools gettext texinfo pkgconfig upstream-version-is-even |
15 | 15 | ||
16 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | 16 | require drop-unknown-suffix.inc |
17 | |||
18 | UPSTREAM_CHECK_URI = "https://gnupg.org/ftp/gcrypt/gnupg/" | ||
17 | SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ | 19 | SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ |
18 | file://0002-use-pkgconfig-instead-of-npth-config.patch \ | 20 | file://0002-use-pkgconfig-instead-of-npth-config.patch \ |
19 | file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ | ||
20 | file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ | 21 | file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ |
21 | " | 22 | " |
22 | SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ | 23 | SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ |
23 | file://relocate.patch" | 24 | file://relocate.patch" |
24 | SRC_URI:append:class-nativesdk = " file://relocate.patch" | 25 | SRC_URI:append:class-nativesdk = " file://relocate.patch" |
25 | 26 | ||
26 | SRC_URI[sha256sum] = "f68f7d75d06cb1635c336d34d844af97436c3f64ea14bcb7c869782f96f44277" | 27 | SRC_URI[sha256sum] = "7afa71d72ff9aaff75a6810b87b486bc492fd752e4f77b07c41759ce4ef36b31" |
27 | 28 | ||
28 | EXTRA_OECONF = "--disable-ldap \ | 29 | EXTRA_OECONF = "--disable-ldap \ |
29 | --disable-ccid-driver \ | 30 | --disable-ccid-driver \ |
@@ -31,17 +32,14 @@ EXTRA_OECONF = "--disable-ldap \ | |||
31 | --with-bzip2=${STAGING_LIBDIR}/.. \ | 32 | --with-bzip2=${STAGING_LIBDIR}/.. \ |
32 | --with-readline=${STAGING_LIBDIR}/.. \ | 33 | --with-readline=${STAGING_LIBDIR}/.. \ |
33 | --with-mailprog=${sbindir}/sendmail \ | 34 | --with-mailprog=${sbindir}/sendmail \ |
34 | --enable-gpg-is-gpg2 \ | ||
35 | --disable-tests \ | 35 | --disable-tests \ |
36 | --disable-doc \ | ||
36 | " | 37 | " |
37 | # yat2m can be found from recipe-sysroot-native non-deterministically with different versioning otherwise | ||
38 | CACHED_CONFIGUREVARS += "ac_cv_path_YAT2M=./yat2m" | ||
39 | 38 | ||
40 | # A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg) | 39 | # A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg) |
41 | PACKAGES =+ "${PN}-gpg" | 40 | PACKAGES =+ "${PN}-gpg" |
42 | FILES:${PN}-gpg = " \ | 41 | FILES:${PN}-gpg = " \ |
43 | ${bindir}/gpg \ | 42 | ${bindir}/gpg \ |
44 | ${bindir}/gpg2 \ | ||
45 | ${bindir}/gpg-agent \ | 43 | ${bindir}/gpg-agent \ |
46 | " | 44 | " |
47 | 45 | ||
@@ -61,11 +59,6 @@ do_configure:prepend () { | |||
61 | rm -f ${S}/m4/libgcrypt.m4 | 59 | rm -f ${S}/m4/libgcrypt.m4 |
62 | } | 60 | } |
63 | 61 | ||
64 | do_install:append() { | ||
65 | ln -sf gpg2 ${D}${bindir}/gpg | ||
66 | ln -sf gpgv2 ${D}${bindir}/gpgv | ||
67 | } | ||
68 | |||
69 | do_install:append:class-native() { | 62 | do_install:append:class-native() { |
70 | create_wrappers ${STAGING_BINDIR_NATIVE} | 63 | create_wrappers ${STAGING_BINDIR_NATIVE} |
71 | } | 64 | } |
@@ -75,7 +68,7 @@ do_install:append:class-nativesdk() { | |||
75 | } | 68 | } |
76 | 69 | ||
77 | create_wrappers() { | 70 | create_wrappers() { |
78 | for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do | 71 | for i in gpg gpgconf gpg-agent gpg-connect-agent; do |
79 | create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1 | 72 | create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1 |
80 | done | 73 | done |
81 | } | 74 | } |
@@ -88,3 +81,4 @@ BBCLASSEXTEND = "native nativesdk" | |||
88 | 81 | ||
89 | lcl_maybe_fortify:mipsarch = "" | 82 | lcl_maybe_fortify:mipsarch = "" |
90 | 83 | ||
84 | CVE_STATUS[CVE-2022-3219] = "upstream-wontfix: Upstream doesn't seem to be keen on merging the proposed commit - https://dev.gnupg.org/T5993" | ||
diff --git a/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch b/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch index d13bfee8ef..2dccea7859 100644 --- a/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch +++ b/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 7be8ec59a53e93c2bd453b3ba2d63d1b300ef11f Mon Sep 17 00:00:00 2001 | 1 | From c4f6cb380471b5e5478ae6f7f8c5604a6a64ec1c Mon Sep 17 00:00:00 2001 |
2 | From: Lei Maohui <leimaohui@fujitsu.com> | 2 | From: Lei Maohui <leimaohui@fujitsu.com> |
3 | Date: Mon, 23 May 2022 10:44:43 +0900 | 3 | Date: Mon, 23 May 2022 10:44:43 +0900 |
4 | Subject: [PATCH] Creating .hmac file should be excuted in target environment, | 4 | Subject: [PATCH] Creating .hmac file should be excuted in target environment, |
@@ -14,7 +14,7 @@ diff --git a/lib/Makefile.am b/lib/Makefile.am | |||
14 | index a50d311..193ea19 100644 | 14 | index a50d311..193ea19 100644 |
15 | --- a/lib/Makefile.am | 15 | --- a/lib/Makefile.am |
16 | +++ b/lib/Makefile.am | 16 | +++ b/lib/Makefile.am |
17 | @@ -198,8 +198,7 @@ hmac_file = .libs/.$(gnutls_so).hmac | 17 | @@ -272,8 +272,7 @@ hmac_file = .libs/.$(gnutls_so).hmac |
18 | 18 | ||
19 | all-local: $(hmac_file) | 19 | all-local: $(hmac_file) |
20 | 20 | ||
diff --git a/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch b/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch index 1152d3797f..339d3d2f9e 100644 --- a/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch +++ b/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From ff6a345235b2585c261752e47a749228672b07dc Mon Sep 17 00:00:00 2001 | 1 | From 6abc86acecff5a30173eb78a971ec5b65f77e1de Mon Sep 17 00:00:00 2001 |
2 | From: Ravineet Singh <ravineet.a.singh@est.tech> | 2 | From: Ravineet Singh <ravineet.a.singh@est.tech> |
3 | Date: Tue, 10 Jan 2023 16:11:10 +0100 | 3 | Date: Tue, 10 Jan 2023 16:11:10 +0100 |
4 | Subject: [PATCH] gnutls: add ptest support | 4 | Subject: [PATCH] gnutls: add ptest support |
@@ -15,9 +15,9 @@ diff --git a/Makefile.am b/Makefile.am | |||
15 | index 843193f..816b09f 100644 | 15 | index 843193f..816b09f 100644 |
16 | --- a/Makefile.am | 16 | --- a/Makefile.am |
17 | +++ b/Makefile.am | 17 | +++ b/Makefile.am |
18 | @@ -191,6 +191,9 @@ dist-hook: | 18 | @@ -194,6 +194,9 @@ dist-hook: |
19 | mv ChangeLog $(distdir) | 19 | distcheck-hook: |
20 | touch -c $(distdir)/doc/*.html $(distdir)/doc/*.pdf $(distdir)/doc/*.info | 20 | @test -d "$(top_srcdir)/po/.reference" || { echo "PO files are not downloaded; run ./bootstrap without --skip-po"; exit 1; } |
21 | 21 | ||
22 | +install-ptest: | 22 | +install-ptest: |
23 | + $(MAKE) -C tests DESTDIR=$(DESTDIR)/tests $@ | 23 | + $(MAKE) -C tests DESTDIR=$(DESTDIR)/tests $@ |
@@ -26,10 +26,10 @@ index 843193f..816b09f 100644 | |||
26 | 26 | ||
27 | include $(top_srcdir)/cligen/cligen.mk | 27 | include $(top_srcdir)/cligen/cligen.mk |
28 | diff --git a/configure.ac b/configure.ac | 28 | diff --git a/configure.ac b/configure.ac |
29 | index d6e03cf..e3f15fb 100644 | 29 | index 1744813..efb9e34 100644 |
30 | --- a/configure.ac | 30 | --- a/configure.ac |
31 | +++ b/configure.ac | 31 | +++ b/configure.ac |
32 | @@ -1213,6 +1213,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS) | 32 | @@ -1491,6 +1491,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS) |
33 | 33 | ||
34 | AM_CONDITIONAL(NEEDS_LIBRT, test "$gnutls_needs_librt" = "yes") | 34 | AM_CONDITIONAL(NEEDS_LIBRT, test "$gnutls_needs_librt" = "yes") |
35 | 35 | ||
@@ -39,10 +39,10 @@ index d6e03cf..e3f15fb 100644 | |||
39 | 39 | ||
40 | hw_features= | 40 | hw_features= |
41 | diff --git a/tests/Makefile.am b/tests/Makefile.am | 41 | diff --git a/tests/Makefile.am b/tests/Makefile.am |
42 | index fb9e55a..c2d226a 100644 | 42 | index 189d068..8430b05 100644 |
43 | --- a/tests/Makefile.am | 43 | --- a/tests/Makefile.am |
44 | +++ b/tests/Makefile.am | 44 | +++ b/tests/Makefile.am |
45 | @@ -658,6 +658,12 @@ SH_LOG_COMPILER = $(SHELL) | 45 | @@ -678,6 +678,12 @@ SH_LOG_COMPILER = $(SHELL) |
46 | AM_VALGRINDFLAGS = --suppressions=$(srcdir)/suppressions.valgrind | 46 | AM_VALGRINDFLAGS = --suppressions=$(srcdir)/suppressions.valgrind |
47 | LOG_COMPILER = $(LOG_VALGRIND) | 47 | LOG_COMPILER = $(LOG_VALGRIND) |
48 | 48 | ||
diff --git a/meta/recipes-support/gnutls/gnutls/arm_eabi.patch b/meta/recipes-support/gnutls/gnutls/arm_eabi.patch index 883d0123db..d493448aab 100644 --- a/meta/recipes-support/gnutls/gnutls/arm_eabi.patch +++ b/meta/recipes-support/gnutls/gnutls/arm_eabi.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From d17ae0ef31c3c186766a338e8c40c87d1b98820e Mon Sep 17 00:00:00 2001 | 1 | From 46b3079095c5ceb0dc742785853bbaf288f325c6 Mon Sep 17 00:00:00 2001 |
2 | From: Joe Slater <jslater@windriver.com> | 2 | From: Joe Slater <jslater@windriver.com> |
3 | Date: Wed, 25 Jan 2017 13:52:59 -0800 | 3 | Date: Wed, 25 Jan 2017 13:52:59 -0800 |
4 | Subject: [PATCH] gnutls: account for ARM_EABI | 4 | Subject: [PATCH] gnutls: account for ARM_EABI |
diff --git a/meta/recipes-support/gnutls/gnutls_3.8.4.bb b/meta/recipes-support/gnutls/gnutls_3.8.9.bb index 20139b4dd4..f2b7ac7bb8 100644 --- a/meta/recipes-support/gnutls/gnutls_3.8.4.bb +++ b/meta/recipes-support/gnutls/gnutls_3.8.9.bb | |||
@@ -10,9 +10,9 @@ LICENSE:${PN}-xx = "LGPL-2.1-or-later" | |||
10 | LICENSE:${PN}-bin = "GPL-3.0-or-later" | 10 | LICENSE:${PN}-bin = "GPL-3.0-or-later" |
11 | LICENSE:${PN}-openssl = "GPL-3.0-or-later" | 11 | LICENSE:${PN}-openssl = "GPL-3.0-or-later" |
12 | 12 | ||
13 | LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \ | 13 | LIC_FILES_CHKSUM = "file://README.md;beginline=181;endline=205;md5=e159ff2a6e9cc95141fb0eaff733bba3 \ |
14 | file://doc/COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ | 14 | file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ |
15 | file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c" | 15 | file://COPYING.LESSERv2;md5=4bf661c1e3793e55c8d1051bc5e0ae21" |
16 | 16 | ||
17 | DEPENDS = "nettle gmp virtual/libiconv libunistring" | 17 | DEPENDS = "nettle gmp virtual/libiconv libunistring" |
18 | 18 | ||
@@ -25,7 +25,7 @@ SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar | |||
25 | file://Add-ptest-support.patch \ | 25 | file://Add-ptest-support.patch \ |
26 | " | 26 | " |
27 | 27 | ||
28 | SRC_URI[sha256sum] = "2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b" | 28 | SRC_URI[sha256sum] = "69e113d802d1670c4d5ac1b99040b1f2d5c7c05daec5003813c049b5184820ed" |
29 | 29 | ||
30 | inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest | 30 | inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest |
31 | 31 | ||
@@ -55,7 +55,7 @@ EXTRA_OECONF = " \ | |||
55 | " | 55 | " |
56 | 56 | ||
57 | # Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. | 57 | # Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. |
58 | export POSIX_SHELL="${base_bindir}/sh" | 58 | export POSIX_SHELL = "${base_bindir}/sh" |
59 | 59 | ||
60 | do_configure:prepend() { | 60 | do_configure:prepend() { |
61 | for dir in . lib; do | 61 | for dir in . lib; do |
diff --git a/meta/recipes-support/gnutls/libtasn1_4.19.0.bb b/meta/recipes-support/gnutls/libtasn1_4.20.0.bb index 5fb8b54c06..8127ba5b1d 100644 --- a/meta/recipes-support/gnutls/libtasn1_4.19.0.bb +++ b/meta/recipes-support/gnutls/libtasn1_4.20.0.bb | |||
@@ -6,9 +6,8 @@ HOMEPAGE = "http://www.gnu.org/software/libtasn1/" | |||
6 | LICENSE = "GPL-3.0-or-later & LGPL-2.1-or-later" | 6 | LICENSE = "GPL-3.0-or-later & LGPL-2.1-or-later" |
7 | LICENSE:${PN}-bin = "GPL-3.0-or-later" | 7 | LICENSE:${PN}-bin = "GPL-3.0-or-later" |
8 | LICENSE:${PN} = "LGPL-2.1-or-later" | 8 | LICENSE:${PN} = "LGPL-2.1-or-later" |
9 | LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \ | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ |
10 | file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ | 10 | file://COPYING.LESSERv2;md5=4bf661c1e3793e55c8d1051bc5e0ae21" |
11 | file://COPYING;md5=75ac100ec923f959898182307970c360" | ||
12 | 11 | ||
13 | SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ | 12 | SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ |
14 | file://dont-depend-on-help2man.patch \ | 13 | file://dont-depend-on-help2man.patch \ |
@@ -16,7 +15,7 @@ SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ | |||
16 | 15 | ||
17 | DEPENDS = "bison-native" | 16 | DEPENDS = "bison-native" |
18 | 17 | ||
19 | SRC_URI[sha256sum] = "1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a" | 18 | SRC_URI[sha256sum] = "92e0e3bd4c02d4aeee76036b2ddd83f0c732ba4cda5cb71d583272b23587a76c" |
20 | 19 | ||
21 | inherit autotools texinfo lib_package gtk-doc | 20 | inherit autotools texinfo lib_package gtk-doc |
22 | 21 | ||
diff --git a/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch b/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch index 8ed39280ca..2a906a6c73 100644 --- a/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch +++ b/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From ee1421f7a7a9f31400ba992a5be52b88d20170c9 Mon Sep 17 00:00:00 2001 | 1 | From 95d0bae453b2b5a7d25b92d99565d27407fffa1b Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Fri, 10 May 2019 14:18:04 +0800 | 3 | Date: Fri, 10 May 2019 14:18:04 +0800 |
4 | Subject: [PATCH] Revert "build: Make gpgme.m4 use gpgrt-config with *.pc." | 4 | Subject: [PATCH] Revert "build: Make gpgme.m4 use gpgrt-config with *.pc." |
@@ -10,16 +10,15 @@ The oe-core does not support gpgrt-config, so revert it | |||
10 | Upstream-Status: Inappropriate [oe-core specific] | 10 | Upstream-Status: Inappropriate [oe-core specific] |
11 | 11 | ||
12 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 12 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
13 | |||
14 | --- | 13 | --- |
15 | src/gpgme.m4 | 54 ++++++++-------------------------------------------- | 14 | src/gpgme.m4 | 54 ++++++++-------------------------------------------- |
16 | 1 file changed, 8 insertions(+), 46 deletions(-) | 15 | 1 file changed, 8 insertions(+), 46 deletions(-) |
17 | 16 | ||
18 | diff --git a/src/gpgme.m4 b/src/gpgme.m4 | 17 | diff --git a/src/gpgme.m4 b/src/gpgme.m4 |
19 | index f2906c1..8cc2898 100644 | 18 | index 4cfe899..5f689e1 100644 |
20 | --- a/src/gpgme.m4 | 19 | --- a/src/gpgme.m4 |
21 | +++ b/src/gpgme.m4 | 20 | +++ b/src/gpgme.m4 |
22 | @@ -125,24 +125,10 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | 21 | @@ -122,24 +122,10 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl |
23 | fi | 22 | fi |
24 | fi | 23 | fi |
25 | 24 | ||
@@ -46,7 +45,7 @@ index f2906c1..8cc2898 100644 | |||
46 | fi | 45 | fi |
47 | gpgme_version_major=`echo $gpgme_version | \ | 46 | gpgme_version_major=`echo $gpgme_version | \ |
48 | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` | 47 | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` |
49 | @@ -155,16 +141,12 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | 48 | @@ -152,16 +138,12 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl |
50 | 49 | ||
51 | AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK], | 50 | AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK], |
52 | [ | 51 | [ |
@@ -65,7 +64,7 @@ index f2906c1..8cc2898 100644 | |||
65 | *** built for $gpgme_config_host and thus may not match the | 64 | *** built for $gpgme_config_host and thus may not match the |
66 | *** used host $host. | 65 | *** used host $host. |
67 | *** You may want to use the configure option --with-gpgme-prefix | 66 | *** You may want to use the configure option --with-gpgme-prefix |
68 | @@ -225,11 +207,7 @@ AC_DEFUN([AM_PATH_GPGME], | 67 | @@ -223,11 +205,7 @@ AC_DEFUN([AM_PATH_GPGME], |
69 | # If we have a recent GPGME, we should also check that the | 68 | # If we have a recent GPGME, we should also check that the |
70 | # API is compatible. | 69 | # API is compatible. |
71 | if test "$req_gpgme_api" -gt 0 ; then | 70 | if test "$req_gpgme_api" -gt 0 ; then |
@@ -78,7 +77,7 @@ index f2906c1..8cc2898 100644 | |||
78 | if test "$tmp" -gt 0 ; then | 77 | if test "$tmp" -gt 0 ; then |
79 | if test "$req_gpgme_api" -ne "$tmp" ; then | 78 | if test "$req_gpgme_api" -ne "$tmp" ; then |
80 | ok=no | 79 | ok=no |
81 | @@ -372,11 +350,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], | 80 | @@ -370,11 +348,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], |
82 | # If we have a recent GPGME, we should also check that the | 81 | # If we have a recent GPGME, we should also check that the |
83 | # API is compatible. | 82 | # API is compatible. |
84 | if test "$req_gpgme_api" -gt 0 ; then | 83 | if test "$req_gpgme_api" -gt 0 ; then |
@@ -91,7 +90,7 @@ index f2906c1..8cc2898 100644 | |||
91 | if test "$tmp" -gt 0 ; then | 90 | if test "$tmp" -gt 0 ; then |
92 | if test "$req_gpgme_api" -ne "$tmp" ; then | 91 | if test "$req_gpgme_api" -ne "$tmp" ; then |
93 | ok=no | 92 | ok=no |
94 | @@ -385,20 +359,8 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], | 93 | @@ -383,20 +357,8 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], |
95 | fi | 94 | fi |
96 | fi | 95 | fi |
97 | if test $ok = yes; then | 96 | if test $ok = yes; then |
diff --git a/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch b/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch index 6d67e6d6c9..890909dd5e 100644 --- a/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch +++ b/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch | |||
@@ -1,6 +1,6 @@ | |||
1 | From acc4750ffa79a5c2ef3c95cf31ef51352a68837b Mon Sep 17 00:00:00 2001 | 1 | From 0bb7fddb6a768bbc46695de4c6e0256a3580ccbb Mon Sep 17 00:00:00 2001 |
2 | From: Chen Qi <Qi.Chen@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Tue, 28 Feb 2023 13:43:51 +0800 | 3 | Date: Tue, 26 Nov 2024 23:23:42 -0800 |
4 | Subject: [PATCH] autogen.sh: remove '-unknown' in version | 4 | Subject: [PATCH] autogen.sh: remove '-unknown' in version |
5 | 5 | ||
6 | python setuptools >=66.0.0 treats '-unknown' as an invalid version. | 6 | python setuptools >=66.0.0 treats '-unknown' as an invalid version. |
@@ -13,20 +13,22 @@ Upstream-Status: Submitted [https://lists.gnupg.org/pipermail/gnupg-devel/2023-F | |||
13 | 13 | ||
14 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | 14 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> |
15 | 15 | ||
16 | Rebase to 1.24.0 | ||
17 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
16 | --- | 18 | --- |
17 | autogen.sh | 2 +- | 19 | autogen.sh | 2 +- |
18 | 1 file changed, 1 insertion(+), 1 deletion(-) | 20 | 1 file changed, 1 insertion(+), 1 deletion(-) |
19 | 21 | ||
20 | diff --git a/autogen.sh b/autogen.sh | 22 | diff --git a/autogen.sh b/autogen.sh |
21 | index 4e1665b..a55326d 100755 | 23 | index 9f91297..9f7559b 100755 |
22 | --- a/autogen.sh | 24 | --- a/autogen.sh |
23 | +++ b/autogen.sh | 25 | +++ b/autogen.sh |
24 | @@ -269,7 +269,7 @@ if [ "$myhost" = "find-version" ]; then | 26 | @@ -271,7 +271,7 @@ if [ "$myhost" = "find-version" ]; then |
25 | else | 27 | else |
26 | ingit=no | 28 | ingit=no |
27 | beta=yes | 29 | beta=yes |
28 | - tmp="-unknown" | 30 | - tmp="-unknown" |
29 | + tmp="" | 31 | + tmp="" |
32 | cid="0000000" | ||
30 | rev="0000000" | 33 | rev="0000000" |
31 | rvd="0" | 34 | rvd="0" |
32 | fi | ||
diff --git a/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch b/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch index 831771ca2d..9d0b4b282b 100644 --- a/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch +++ b/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch | |||
@@ -1,6 +1,6 @@ | |||
1 | From 7b3a00cb0fc27c896dd85c9afc474bd9c2aea30d Mon Sep 17 00:00:00 2001 | 1 | From 447fd26a43f40ccb071cd19198ee43fdfce87e3a Mon Sep 17 00:00:00 2001 |
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Fri, 10 May 2019 14:23:55 +0800 | 3 | Date: Tue, 26 Nov 2024 23:04:52 -0800 |
4 | Subject: [PATCH] pkgconfig | 4 | Subject: [PATCH] pkgconfig |
5 | 5 | ||
6 | Update gpgme to use pkgconfig instead of -config files since its | 6 | Update gpgme to use pkgconfig instead of -config files since its |
@@ -15,30 +15,31 @@ Rebase to 1.13.0 | |||
15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 15 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
16 | Rebase to 1.17.0 | 16 | Rebase to 1.17.0 |
17 | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> | 17 | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> |
18 | 18 | Rebase to 1.24.0 | |
19 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
19 | --- | 20 | --- |
20 | configure.ac | 1 + | 21 | configure.ac | 1 + |
21 | src/Makefile.am | 4 +- | 22 | src/Makefile.am | 4 +- |
22 | src/gpgme-pthread.pc.in | 15 +++++ | 23 | src/gpgme-pthread.pc.in | 15 +++++ |
23 | src/gpgme.m4 | 119 +++------------------------------------- | 24 | src/gpgme.m4 | 118 +++------------------------------------- |
24 | src/gpgme.pc.in | 4 +- | 25 | src/gpgme.pc.in | 4 +- |
25 | 5 files changed, 29 insertions(+), 114 deletions(-) | 26 | 5 files changed, 28 insertions(+), 114 deletions(-) |
26 | create mode 100644 src/gpgme-pthread.pc.in | 27 | create mode 100644 src/gpgme-pthread.pc.in |
27 | 28 | ||
28 | diff --git a/configure.ac b/configure.ac | 29 | diff --git a/configure.ac b/configure.ac |
29 | index ae4c7da..df892c9 100644 | 30 | index c34f700..4eddc3d 100644 |
30 | --- a/configure.ac | 31 | --- a/configure.ac |
31 | +++ b/configure.ac | 32 | +++ b/configure.ac |
32 | @@ -1112,6 +1112,7 @@ AC_CONFIG_FILES(Makefile src/Makefile | 33 | @@ -1176,6 +1176,7 @@ AC_CONFIG_FILES(Makefile src/Makefile |
33 | src/gpgme-glib.pc | 34 | src/gpgme-glib.pc |
34 | src/gpgme.h) | 35 | src/gpgme.h) |
35 | AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config) | 36 | AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config) |
36 | +AC_CONFIG_FILES(src/gpgme-pthread.pc) | 37 | +AC_CONFIG_FILES(src/gpgme-pthread.pc) |
37 | AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile) | 38 | AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile) |
38 | AC_CONFIG_FILES(lang/cpp/tests/Makefile) | 39 | AC_CONFIG_FILES(lang/cpp/tests/Makefile) |
39 | AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig-w32.cmake.in) | 40 | AC_CONFIG_FILES(lang/cpp/src/gpgmepp.pc) |
40 | diff --git a/src/Makefile.am b/src/Makefile.am | 41 | diff --git a/src/Makefile.am b/src/Makefile.am |
41 | index ca70950..bda5498 100644 | 42 | index 0370862..e716ce4 100644 |
42 | --- a/src/Makefile.am | 43 | --- a/src/Makefile.am |
43 | +++ b/src/Makefile.am | 44 | +++ b/src/Makefile.am |
44 | @@ -20,11 +20,11 @@ | 45 | @@ -20,11 +20,11 @@ |
@@ -77,19 +78,18 @@ index 0000000..074bbf6 | |||
77 | +Cflags: -I${includedir} | 78 | +Cflags: -I${includedir} |
78 | +Requires: libassuan gpg-error | 79 | +Requires: libassuan gpg-error |
79 | diff --git a/src/gpgme.m4 b/src/gpgme.m4 | 80 | diff --git a/src/gpgme.m4 b/src/gpgme.m4 |
80 | index 8cc2898..0ff550e 100644 | 81 | index 5f689e1..249e8c9 100644 |
81 | --- a/src/gpgme.m4 | 82 | --- a/src/gpgme.m4 |
82 | +++ b/src/gpgme.m4 | 83 | +++ b/src/gpgme.m4 |
83 | @@ -168,7 +168,7 @@ dnl config script does not match the host specification the script | 84 | @@ -166,7 +166,6 @@ dnl is added to the gpg_config_script_warn variable. |
84 | dnl is added to the gpg_config_script_warn variable. | ||
85 | dnl | 85 | dnl |
86 | AC_DEFUN([AM_PATH_GPGME], | 86 | AC_DEFUN([AM_PATH_GPGME], |
87 | -[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl | 87 | [ AC_REQUIRE([AC_CANONICAL_HOST])dnl |
88 | +[ | 88 | - AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl |
89 | tmp=ifelse([$1], ,1:0.4.2,$1) | 89 | tmp=ifelse([$1], ,1:0.4.2,$1) |
90 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | 90 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then |
91 | req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` | 91 | req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` |
92 | @@ -178,36 +178,12 @@ AC_DEFUN([AM_PATH_GPGME], | 92 | @@ -176,36 +175,12 @@ AC_DEFUN([AM_PATH_GPGME], |
93 | min_gpgme_version="$tmp" | 93 | min_gpgme_version="$tmp" |
94 | fi | 94 | fi |
95 | 95 | ||
@@ -128,7 +128,7 @@ index 8cc2898..0ff550e 100644 | |||
128 | if test "$tmp" -gt 0 ; then | 128 | if test "$tmp" -gt 0 ; then |
129 | if test "$req_gpgme_api" -ne "$tmp" ; then | 129 | if test "$req_gpgme_api" -ne "$tmp" ; then |
130 | ok=no | 130 | ok=no |
131 | @@ -216,19 +192,11 @@ AC_DEFUN([AM_PATH_GPGME], | 131 | @@ -214,19 +189,11 @@ AC_DEFUN([AM_PATH_GPGME], |
132 | fi | 132 | fi |
133 | fi | 133 | fi |
134 | if test $ok = yes; then | 134 | if test $ok = yes; then |
@@ -148,7 +148,7 @@ index 8cc2898..0ff550e 100644 | |||
148 | ]) | 148 | ]) |
149 | 149 | ||
150 | dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION, | 150 | dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION, |
151 | @@ -236,9 +204,8 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) | 151 | @@ -234,9 +201,8 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) |
152 | dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS | 152 | dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS |
153 | dnl and GPGME_PTHREAD_LIBS. | 153 | dnl and GPGME_PTHREAD_LIBS. |
154 | dnl | 154 | dnl |
@@ -160,7 +160,7 @@ index 8cc2898..0ff550e 100644 | |||
160 | tmp=ifelse([$1], ,1:0.4.2,$1) | 160 | tmp=ifelse([$1], ,1:0.4.2,$1) |
161 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | 161 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then |
162 | req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` | 162 | req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` |
163 | @@ -248,40 +215,12 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ | 163 | @@ -246,40 +212,12 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ |
164 | min_gpgme_version="$tmp" | 164 | min_gpgme_version="$tmp" |
165 | fi | 165 | fi |
166 | 166 | ||
@@ -203,7 +203,7 @@ index 8cc2898..0ff550e 100644 | |||
203 | if test "$tmp" -gt 0 ; then | 203 | if test "$tmp" -gt 0 ; then |
204 | if test "$req_gpgme_api" -ne "$tmp" ; then | 204 | if test "$req_gpgme_api" -ne "$tmp" ; then |
205 | ok=no | 205 | ok=no |
206 | @@ -290,19 +229,11 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ | 206 | @@ -288,19 +226,11 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ |
207 | fi | 207 | fi |
208 | fi | 208 | fi |
209 | if test $ok = yes; then | 209 | if test $ok = yes; then |
@@ -223,7 +223,7 @@ index 8cc2898..0ff550e 100644 | |||
223 | ]) | 223 | ]) |
224 | 224 | ||
225 | 225 | ||
226 | @@ -321,36 +252,12 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], | 226 | @@ -319,36 +249,12 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], |
227 | min_gpgme_version="$tmp" | 227 | min_gpgme_version="$tmp" |
228 | fi | 228 | fi |
229 | 229 | ||
@@ -262,7 +262,7 @@ index 8cc2898..0ff550e 100644 | |||
262 | if test "$tmp" -gt 0 ; then | 262 | if test "$tmp" -gt 0 ; then |
263 | if test "$req_gpgme_api" -ne "$tmp" ; then | 263 | if test "$req_gpgme_api" -ne "$tmp" ; then |
264 | ok=no | 264 | ok=no |
265 | @@ -359,17 +266,9 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], | 265 | @@ -357,17 +263,9 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], |
266 | fi | 266 | fi |
267 | fi | 267 | fi |
268 | if test $ok = yes; then | 268 | if test $ok = yes; then |
diff --git a/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch b/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch index be58c42128..932fb9c962 100644 --- a/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch +++ b/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From be33cf1812b4c2a3ed85fb2532992bfb2b27b3be Mon Sep 17 00:00:00 2001 | 1 | From 417036051c84b02fe43f162ee378278a44636451 Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Thu, 15 Dec 2022 08:44:13 -0800 | 3 | Date: Thu, 15 Dec 2022 08:44:13 -0800 |
4 | Subject: [PATCH] posix-io.c: Use off_t instead of off64_t | 4 | Subject: [PATCH] posix-io.c: Use off_t instead of off64_t |
diff --git a/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch b/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch index 3d05808d63..ed2edabd63 100644 --- a/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch +++ b/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From e1fc4b06dcb62e1c2d85ae99f39ef1a8860570e1 Mon Sep 17 00:00:00 2001 | 1 | From aaed03b76505b1feaeeb5a4a3c6bdcc7dd089f01 Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Thu, 15 Jul 2021 12:33:13 -0700 | 3 | Date: Thu, 15 Jul 2021 12:33:13 -0700 |
4 | Subject: [PATCH] use closefrom() on linux and glibc 2.34+ | 4 | Subject: [PATCH] use closefrom() on linux and glibc 2.34+ |
@@ -8,7 +8,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
8 | 8 | ||
9 | Rebase to 1.17.0 | 9 | Rebase to 1.17.0 |
10 | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> | 10 | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> |
11 | |||
12 | --- | 11 | --- |
13 | src/posix-io.c | 2 +- | 12 | src/posix-io.c | 2 +- |
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | 13 | 1 file changed, 1 insertion(+), 1 deletion(-) |
diff --git a/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch b/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch index 0d2692912f..3a1837e857 100644 --- a/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch +++ b/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 9fce0689bc04506e5758444efa24ea99fe1ff5ef Mon Sep 17 00:00:00 2001 | 1 | From 145adf290571b7dd47b7fca57b11349af0b94e74 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Fri, 10 May 2019 14:30:36 +0800 | 3 | Date: Fri, 10 May 2019 14:30:36 +0800 |
4 | Subject: [PATCH] gpgme/lang/python: gpg-error-config should not be used | 4 | Subject: [PATCH] gpgme/lang/python: gpg-error-config should not be used |
@@ -14,16 +14,15 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | |||
14 | Rebase to 1.13.0 | 14 | Rebase to 1.13.0 |
15 | 15 | ||
16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
17 | |||
18 | --- | 17 | --- |
19 | lang/python/setup.py.in | 3 +-- | 18 | lang/python/setup.py.in | 3 +-- |
20 | 1 file changed, 1 insertion(+), 2 deletions(-) | 19 | 1 file changed, 1 insertion(+), 2 deletions(-) |
21 | 20 | ||
22 | diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in | 21 | diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in |
23 | index 6f36861..1d9058b 100755 | 22 | index 1ddfbe7..d2fa4f0 100755 |
24 | --- a/lang/python/setup.py.in | 23 | --- a/lang/python/setup.py.in |
25 | +++ b/lang/python/setup.py.in | 24 | +++ b/lang/python/setup.py.in |
26 | @@ -169,9 +169,8 @@ class BuildExtFirstHack(build): | 25 | @@ -173,9 +173,8 @@ class BuildExtFirstHack(build): |
27 | 26 | ||
28 | def _generate_errors_i(self): | 27 | def _generate_errors_i(self): |
29 | 28 | ||
diff --git a/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch b/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch index 204fe5934d..7b2831ba4f 100644 --- a/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch +++ b/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 8c850aa109c42d0c193bccc7af45dbc2689b23f6 Mon Sep 17 00:00:00 2001 | 1 | From d8e884d1fa8c35ce68e94a0668548580cf5ba2d3 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Tue, 30 Jan 2018 15:28:49 +0800 | 3 | Date: Tue, 30 Jan 2018 15:28:49 +0800 |
4 | Subject: [PATCH] Correctly install python modules | 4 | Subject: [PATCH] Correctly install python modules |
@@ -12,13 +12,12 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | |||
12 | 12 | ||
13 | Rebase to 1.10.0 | 13 | Rebase to 1.10.0 |
14 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 14 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
15 | |||
16 | --- | 15 | --- |
17 | lang/python/Makefile.am | 1 + | 16 | lang/python/Makefile.am | 1 + |
18 | 1 file changed, 1 insertion(+) | 17 | 1 file changed, 1 insertion(+) |
19 | 18 | ||
20 | diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am | 19 | diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am |
21 | index 68b98e8..bbb9111 100644 | 20 | index 1aa330f..d1d5c63 100644 |
22 | --- a/lang/python/Makefile.am | 21 | --- a/lang/python/Makefile.am |
23 | +++ b/lang/python/Makefile.am | 22 | +++ b/lang/python/Makefile.am |
24 | @@ -97,6 +97,7 @@ install-exec-local: | 23 | @@ -97,6 +97,7 @@ install-exec-local: |
diff --git a/meta/recipes-support/gpgme/gpgme/0004-python-import.patch b/meta/recipes-support/gpgme/gpgme/0004-python-import.patch deleted file mode 100644 index fa0eccfce3..0000000000 --- a/meta/recipes-support/gpgme/gpgme/0004-python-import.patch +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | From f51bf1114bee6d56a950dcc6ebb46d6138b3faed Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@intel.com> | ||
3 | Date: Wed, 16 Aug 2017 02:06:45 -0400 | ||
4 | Subject: [PATCH 4/7] python import | ||
5 | |||
6 | Don't check for output on stderr to know if an import worked, host inputrc and | ||
7 | sysroot readline can cause warnings on stderr. | ||
8 | |||
9 | Upstream-Status: Backport (from autoconf-archive 883a2abd) | ||
10 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
11 | |||
12 | Rebase to 1.9.0 | ||
13 | |||
14 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
15 | --- | ||
16 | m4/ax_python_devel.m4 | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 | ||
20 | index b990d5b..318b089 100644 | ||
21 | --- a/m4/ax_python_devel.m4 | ||
22 | +++ b/m4/ax_python_devel.m4 | ||
23 | @@ -137,7 +137,7 @@ variable to configure. See ``configure --help'' for reference. | ||
24 | # | ||
25 | AC_MSG_CHECKING([for the distutils Python package]) | ||
26 | ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` | ||
27 | - if test -z "$ac_distutils_result"; then | ||
28 | + if test $? -eq 0; then | ||
29 | AC_MSG_RESULT([yes]) | ||
30 | else | ||
31 | AC_MSG_RESULT([no]) | ||
32 | -- | ||
33 | 2.7.4 | ||
34 | |||
diff --git a/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch b/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch index 7fe0c9538a..c021e48be9 100644 --- a/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch +++ b/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 57475742b0288b4ee53c01c59c3ab03c1ef7932e Mon Sep 17 00:00:00 2001 | 1 | From 9ea685f1b898ee703b85b705c35b9cbd77cca17f Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Thu, 13 Apr 2017 16:40:27 +0300 | 3 | Date: Thu, 13 Apr 2017 16:40:27 +0300 |
4 | Subject: [PATCH] gpgme-config: skip all /lib* or /usr/lib* directories in | 4 | Subject: [PATCH] gpgme-config: skip all /lib* or /usr/lib* directories in |
@@ -9,7 +9,6 @@ directory names than plain /lib or /usr/lib. | |||
9 | 9 | ||
10 | Upstream-Status: Inappropriate [oe-core specific] | 10 | Upstream-Status: Inappropriate [oe-core specific] |
11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | 11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
12 | |||
13 | --- | 12 | --- |
14 | src/gpgme-config.in | 2 +- | 13 | src/gpgme-config.in | 2 +- |
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | 14 | 1 file changed, 1 insertion(+), 1 deletion(-) |
diff --git a/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch b/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch index 8d48db2feb..d64168b4fd 100644 --- a/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch +++ b/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 7938a5a760827aec737ea49d2f8719051abda188 Mon Sep 17 00:00:00 2001 | 1 | From f9f82874048c5eec08e815ff871462184b6d7d6a Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Wed, 31 Jan 2018 11:01:09 +0800 | 3 | Date: Wed, 31 Jan 2018 11:01:09 +0800 |
4 | Subject: [PATCH] fix build path issue | 4 | Subject: [PATCH] fix build path issue |
@@ -12,13 +12,12 @@ to use relative path. | |||
12 | 12 | ||
13 | Upstream-Status: Submitted [gnupg-devel@gnupg.org] | 13 | Upstream-Status: Submitted [gnupg-devel@gnupg.org] |
14 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 14 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
15 | |||
16 | --- | 15 | --- |
17 | lang/python/Makefile.am | 5 +++-- | 16 | lang/python/Makefile.am | 5 +++-- |
18 | 1 file changed, 3 insertions(+), 2 deletions(-) | 17 | 1 file changed, 3 insertions(+), 2 deletions(-) |
19 | 18 | ||
20 | diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am | 19 | diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am |
21 | index bbb9111..cee499e 100644 | 20 | index d1d5c63..148e1b9 100644 |
22 | --- a/lang/python/Makefile.am | 21 | --- a/lang/python/Makefile.am |
23 | +++ b/lang/python/Makefile.am | 22 | +++ b/lang/python/Makefile.am |
24 | @@ -96,8 +96,9 @@ install-exec-local: | 23 | @@ -96,8 +96,9 @@ install-exec-local: |
diff --git a/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch b/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch deleted file mode 100644 index a11621ed64..0000000000 --- a/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From 84c389705e7742d2b68e144a5733e618441d293e Mon Sep 17 00:00:00 2001 | ||
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
3 | Date: Fri, 10 May 2019 16:19:54 +0800 | ||
4 | Subject: [PATCH] do not auto check var-PYTHON | ||
5 | |||
6 | Upstream auto check the version of python rather than specify option | ||
7 | [ff6ff61 python: Auto-check for all installed python versions.] | ||
8 | |||
9 | In oe-core, don't check var-PYTHON, use the setting from recipe, | ||
10 | only check specific python 2.7 and 3.7 | ||
11 | |||
12 | Upstream-Status: Inappropriate [oe-core specific] | ||
13 | |||
14 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
15 | |||
16 | --- | ||
17 | configure.ac | 5 ++--- | ||
18 | 1 file changed, 2 insertions(+), 3 deletions(-) | ||
19 | |||
20 | diff --git a/configure.ac b/configure.ac | ||
21 | index df892c9..8c6194e 100644 | ||
22 | --- a/configure.ac | ||
23 | +++ b/configure.ac | ||
24 | @@ -590,9 +590,8 @@ if test "$found_py" = "1"; then | ||
25 | if test "$found_py" = "1" -o "$found_py3" = "1"; then | ||
26 | # Reset everything, so that we can look for another Python. | ||
27 | m4_foreach([mym4pythonver], | ||
28 | - [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[3.10], | ||
29 | - [3.11],[3.12],[all]], | ||
30 | - [unset PYTHON | ||
31 | + [[2.7],[3.7]], | ||
32 | + [ | ||
33 | unset PYTHON_VERSION | ||
34 | unset PYTHON_CPPFLAGS | ||
35 | unset PYTHON_LDFLAGS | ||
diff --git a/meta/recipes-support/gpgme/gpgme_1.23.2.bb b/meta/recipes-support/gpgme/gpgme_1.24.3.bb index d8807b3af2..64e3c6635a 100644 --- a/meta/recipes-support/gpgme/gpgme_1.23.2.bb +++ b/meta/recipes-support/gpgme/gpgme_1.24.3.bb | |||
@@ -3,11 +3,18 @@ DESCRIPTION = "GnuPG Made Easy (GPGME) is a library designed to make access to G | |||
3 | HOMEPAGE = "http://www.gnupg.org/gpgme.html" | 3 | HOMEPAGE = "http://www.gnupg.org/gpgme.html" |
4 | BUGTRACKER = "https://bugs.g10code.com/gnupg/index" | 4 | BUGTRACKER = "https://bugs.g10code.com/gnupg/index" |
5 | 5 | ||
6 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" | 6 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & GPL-3.0-or-later" |
7 | LICENSE:${PN} = "GPL-2.0-or-later & LGPL-2.1-or-later" | ||
8 | LICENSE:${PN}-cpp = "GPL-2.0-or-later & LGPL-2.1-or-later" | ||
9 | LICENSE:${PN}-tool = "GPL-3.0-or-later" | ||
10 | LICENSE:python3-gpg = "GPL-2.0-or-later & LGPL-2.1-or-later" | ||
11 | |||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | 12 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ |
8 | file://COPYING.LESSER;md5=bbb461211a33b134d42ed5ee802b37ff \ | 13 | file://COPYING.LESSER;md5=bbb461211a33b134d42ed5ee802b37ff \ |
9 | file://src/gpgme.h.in;endline=23;md5=2f0bf06d1c7dcb28532a9d0f94a7ca1d \ | 14 | file://src/gpgme.h.in;endline=23;md5=2f0bf06d1c7dcb28532a9d0f94a7ca1d \ |
10 | file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d" | 15 | file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d \ |
16 | file://src/gpgme-tool.c;endline=21;md5=66c5381e0e05475792e24982d15e7ce8 \ | ||
17 | " | ||
11 | 18 | ||
12 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | 19 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" |
13 | SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ | 20 | SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ |
@@ -15,16 +22,14 @@ SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ | |||
15 | file://0001-pkgconfig.patch \ | 22 | file://0001-pkgconfig.patch \ |
16 | file://0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch \ | 23 | file://0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch \ |
17 | file://0003-Correctly-install-python-modules.patch \ | 24 | file://0003-Correctly-install-python-modules.patch \ |
18 | file://0004-python-import.patch \ | ||
19 | file://0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch \ | 25 | file://0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch \ |
20 | file://0006-fix-build-path-issue.patch \ | 26 | file://0006-fix-build-path-issue.patch \ |
21 | file://0008-do-not-auto-check-var-PYTHON.patch \ | ||
22 | file://0001-use-closefrom-on-linux-and-glibc-2.34.patch \ | 27 | file://0001-use-closefrom-on-linux-and-glibc-2.34.patch \ |
23 | file://0001-posix-io.c-Use-off_t-instead-of-off64_t.patch \ | 28 | file://0001-posix-io.c-Use-off_t-instead-of-off64_t.patch \ |
24 | file://0001-autogen.sh-remove-unknown-in-version.patch \ | 29 | file://0001-autogen.sh-remove-unknown-in-version.patch \ |
25 | " | 30 | " |
26 | 31 | ||
27 | SRC_URI[sha256sum] = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224" | 32 | SRC_URI[sha256sum] = "bfc17f5bd1b178c8649fdd918956d277080f33df006a2dc40acdecdce68c50dd" |
28 | 33 | ||
29 | PYTHON_DEPS = "${@bb.utils.contains('LANGUAGES', 'python', 'swig-native', '', d)}" | 34 | PYTHON_DEPS = "${@bb.utils.contains('LANGUAGES', 'python', 'swig-native', '', d)}" |
30 | 35 | ||
@@ -33,6 +38,8 @@ RDEPENDS:${PN}-cpp += "libstdc++" | |||
33 | 38 | ||
34 | RDEPENDS:python3-gpg += "python3-unixadmin" | 39 | RDEPENDS:python3-gpg += "python3-unixadmin" |
35 | 40 | ||
41 | RRECOMMENDS:${PN} += "${PN}-tool" | ||
42 | |||
36 | BINCONFIG = "${bindir}/gpgme-config" | 43 | BINCONFIG = "${bindir}/gpgme-config" |
37 | 44 | ||
38 | # Default in configure.ac: "cl cpp python qt" | 45 | # Default in configure.ac: "cl cpp python qt" |
@@ -57,13 +64,14 @@ EXTRA_OECONF += '--enable-languages="${LANGUAGES}" \ | |||
57 | inherit autotools texinfo binconfig-disabled pkgconfig multilib_header | 64 | inherit autotools texinfo binconfig-disabled pkgconfig multilib_header |
58 | inherit_defer ${PYTHON_INHERIT} python3native | 65 | inherit_defer ${PYTHON_INHERIT} python3native |
59 | 66 | ||
60 | export PKG_CONFIG='pkg-config' | 67 | export PKG_CONFIG = 'pkg-config' |
61 | 68 | ||
62 | BBCLASSEXTEND = "native nativesdk" | 69 | BBCLASSEXTEND = "native nativesdk" |
63 | 70 | ||
64 | PACKAGES =+ "${PN}-cpp python3-gpg" | 71 | PACKAGES =+ "${PN}-cpp ${PN}-tool python3-gpg" |
65 | 72 | ||
66 | FILES:${PN}-cpp = "${libdir}/libgpgmepp.so.*" | 73 | FILES:${PN}-cpp = "${libdir}/libgpgmepp.so.*" |
74 | FILES:${PN}-tool = "${bindir}/gpgme-tool" | ||
67 | FILES:python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" | 75 | FILES:python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" |
68 | FILES:${PN}-dev += "${datadir}/common-lisp/source/gpgme/*" | 76 | FILES:${PN}-dev += "${datadir}/common-lisp/source/gpgme/*" |
69 | 77 | ||
diff --git a/meta/recipes-support/hwdata/hwdata_0.396.bb b/meta/recipes-support/hwdata/hwdata_0.396.bb new file mode 100644 index 0000000000..bf6dd9889e --- /dev/null +++ b/meta/recipes-support/hwdata/hwdata_0.396.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Hardware identification and configuration data" | ||
2 | DESCRIPTION = "hwdata contains various hardware identification and \ | ||
3 | configuration data, such as the pci.ids and usb.ids databases." | ||
4 | HOMEPAGE = "https://github.com/vcrhonek/hwdata" | ||
5 | SECTION = "System/Base" | ||
6 | |||
7 | LICENSE = "GPL-2.0-or-later | X11" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57" | ||
9 | |||
10 | SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https;tag=v${PV}" | ||
11 | SRCREV = "736513dfc1d44c5fb48bead62af7e91c4e1d1dd2" | ||
12 | |||
13 | inherit allarch | ||
14 | |||
15 | do_configure() { | ||
16 | ${S}/configure --datadir=${datadir} --libdir=${libdir} | ||
17 | } | ||
18 | |||
19 | do_compile[noexec] = "1" | ||
20 | |||
21 | do_install() { | ||
22 | oe_runmake install DESTDIR=${D} | ||
23 | } | ||
24 | |||
25 | FILES:${PN} = "${libdir}/* \ | ||
26 | ${datadir}/* " | ||
27 | |||
28 | BBCLASSEXTEND += "native" | ||
diff --git a/meta/recipes-support/icu/icu/fix-install-manx.patch b/meta/recipes-support/icu/icu/fix-install-manx.patch deleted file mode 100644 index 7526bde370..0000000000 --- a/meta/recipes-support/icu/icu/fix-install-manx.patch +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | From 2d544cac238eccbfc32cafc9502ddf6e00994211 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@intel.com> | ||
3 | Date: Fri, 9 Oct 2015 17:50:41 +0100 | ||
4 | Subject: [PATCH] icu: fix install race | ||
5 | |||
6 | The generic recursive target calls target-local so also adding it to the | ||
7 | dependency list results in races due to install-local being executed twice in | ||
8 | parallel. For example, install-manx can fail if the two install processes race | ||
9 | and one process tries to chown a file that the other process has just deleted. | ||
10 | |||
11 | Also install-manx should be a phony target, and for clarity use $^ instead of $? | ||
12 | in the install command. | ||
13 | |||
14 | Upstream-Status: Pending | ||
15 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
16 | --- | ||
17 | Makefile.in | 8 ++++---- | ||
18 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
19 | |||
20 | diff --git a/Makefile.in b/Makefile.in | ||
21 | index 8366f01..79b91c9 100644 | ||
22 | --- a/Makefile.in | ||
23 | +++ b/Makefile.in | ||
24 | @@ -77,7 +77,7 @@ EXTRA_DATA = | ||
25 | |||
26 | ## List of phony targets | ||
27 | .PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \ | ||
28 | -install-recursive clean clean-local clean-recursive distclean \ | ||
29 | +install-recursive install-manx clean clean-local clean-recursive distclean \ | ||
30 | distclean-local distclean-recursive doc dist dist-local dist-recursive \ | ||
31 | check check-local check-recursive clean-recursive-with-twist install-icu \ | ||
32 | doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles xcheck-local xcheck-recursive xperf xcheck xperf-recursive \ | ||
33 | @@ -88,9 +88,9 @@ check-exhaustive check-exhaustive-local check-exhaustive-recursive releaseDist | ||
34 | |||
35 | ## List of standard targets | ||
36 | all: all-local all-recursive | ||
37 | -install: install-recursive install-local | ||
38 | +install: install-recursive | ||
39 | clean: clean-recursive-with-twist clean-local | ||
40 | -distclean : distclean-recursive distclean-local | ||
41 | +distclean : distclean-recursive | ||
42 | dist: dist-recursive | ||
43 | check: all check-recursive | ||
44 | check-recursive: all | ||
45 | @@ -357,7 +357,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h | ||
46 | install-manx: $(MANX_FILES) | ||
47 | $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION) | ||
48 | ifneq ($(MANX_FILES),) | ||
49 | - $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION) | ||
50 | + $(INSTALL_DATA) $^ $(DESTDIR)$(mandir)/man$(SECTION) | ||
51 | endif | ||
52 | |||
53 | config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in | ||
diff --git a/meta/recipes-support/icu/icu_74-2.bb b/meta/recipes-support/icu/icu_77-1.bb index 8352bf2a5b..e655b18ad2 100644 --- a/meta/recipes-support/icu/icu_74-2.bb +++ b/meta/recipes-support/icu/icu_77-1.bb | |||
@@ -3,15 +3,14 @@ DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \ | |||
3 | portable set of C/C++ and Java libraries for Unicode support, software \ | 3 | portable set of C/C++ and Java libraries for Unicode support, software \ |
4 | internationalization (I18N) and globalization (G11N), giving applications the \ | 4 | internationalization (I18N) and globalization (G11N), giving applications the \ |
5 | same results on all platforms." | 5 | same results on all platforms." |
6 | HOMEPAGE = "http://site.icu-project.org/" | 6 | HOMEPAGE = "https://icu.unicode.org/" |
7 | 7 | ||
8 | LICENSE = "ICU" | 8 | LICENSE = "ICU" |
9 | DEPENDS = "icu-native autoconf-archive-native" | 9 | DEPENDS = "icu-native autoconf-archive-native" |
10 | 10 | ||
11 | CVE_PRODUCT = "international_components_for_unicode" | 11 | CVE_PRODUCT = "international_components_for_unicode" |
12 | 12 | ||
13 | S = "${WORKDIR}/icu/source" | 13 | S = "${UNPACKDIR}/icu/source" |
14 | SPDX_S = "${WORKDIR}/icu" | ||
15 | STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}" | 14 | STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}" |
16 | 15 | ||
17 | ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}" | 16 | ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}" |
@@ -21,16 +20,16 @@ inherit autotools pkgconfig github-releases | |||
21 | # ICU needs the native build directory as an argument to its --with-cross-build option when | 20 | # ICU needs the native build directory as an argument to its --with-cross-build option when |
22 | # cross-compiling. Taken the situation that different builds may share a common sstate-cache | 21 | # cross-compiling. Taken the situation that different builds may share a common sstate-cache |
23 | # into consideration, the native build directory needs to be staged. | 22 | # into consideration, the native build directory needs to be staged. |
24 | EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config" | 23 | EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='install -c'" |
25 | EXTRA_OECONF:class-native = "--disable-icu-config" | 24 | EXTRA_OECONF:class-native = "--disable-icu-config ac_cv_path_install='install -c'" |
26 | EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config" | 25 | EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='install -c'" |
27 | 26 | ||
28 | EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}" | 27 | EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}" |
29 | TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${PV}\\""', '', d)}" | 28 | TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${@icu_install_folder(d)}\\""', '', d)}" |
30 | 29 | ||
31 | ASNEEDED = "" | 30 | ASNEEDED = "" |
32 | 31 | ||
33 | do_compile:prepend:class-target () { | 32 | remove_build_host_references_from_libicutu () { |
34 | # Make sure certain build host references do not end up being compiled | 33 | # Make sure certain build host references do not end up being compiled |
35 | # in the image. This only affects libicutu and icu-dbg | 34 | # in the image. This only affects libicutu and icu-dbg |
36 | sed \ | 35 | sed \ |
@@ -39,6 +38,14 @@ do_compile:prepend:class-target () { | |||
39 | -i ${B}/tools/toolutil/Makefile | 38 | -i ${B}/tools/toolutil/Makefile |
40 | } | 39 | } |
41 | 40 | ||
41 | do_compile:prepend:class-target () { | ||
42 | remove_build_host_references_from_libicutu | ||
43 | } | ||
44 | |||
45 | do_compile:prepend:class-nativesdk () { | ||
46 | remove_build_host_references_from_libicutu | ||
47 | } | ||
48 | |||
42 | PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}" | 49 | PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}" |
43 | do_install:append:class-native() { | 50 | do_install:append:class-native() { |
44 | mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config | 51 | mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config |
@@ -49,6 +56,15 @@ do_install:append:class-native() { | |||
49 | cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE} | 56 | cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE} |
50 | } | 57 | } |
51 | 58 | ||
59 | remove_build_host_references() { | ||
60 | sed -i \ | ||
61 | -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ | ||
62 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
63 | -e 's:${HOSTTOOLS_DIR}/::g' \ | ||
64 | ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/Makefile.inc \ | ||
65 | ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/pkgdata.inc | ||
66 | } | ||
67 | |||
52 | do_install:append:class-target() { | 68 | do_install:append:class-target() { |
53 | # The native pkgdata can not generate the correct data file. | 69 | # The native pkgdata can not generate the correct data file. |
54 | # Use icupkg to re-generate it. | 70 | # Use icupkg to re-generate it. |
@@ -56,14 +72,12 @@ do_install:append:class-target() { | |||
56 | rm -f ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat | 72 | rm -f ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat |
57 | icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat | 73 | icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat |
58 | fi | 74 | fi |
59 | 75 | ||
60 | # Remove build host references... | 76 | remove_build_host_references |
61 | sed -i \ | 77 | } |
62 | -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ | 78 | |
63 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | 79 | do_install:append:class-nativesdk() { |
64 | -e 's:${HOSTTOOLS_DIR}/::g' \ | 80 | remove_build_host_references |
65 | ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/Makefile.inc \ | ||
66 | ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/pkgdata.inc | ||
67 | } | 81 | } |
68 | 82 | ||
69 | PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio" | 83 | PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio" |
@@ -78,7 +92,7 @@ FILES:libicuio = "${libdir}/libicuio.so.*" | |||
78 | 92 | ||
79 | BBCLASSEXTEND = "native nativesdk" | 93 | BBCLASSEXTEND = "native nativesdk" |
80 | 94 | ||
81 | LIC_FILES_CHKSUM = "file://../LICENSE;md5=08dc3852df8fffa807301902ad899ff8" | 95 | LIC_FILES_CHKSUM = "file://../LICENSE;md5=cf57d9459a2c5f88ecd83c75207cc5ff" |
82 | 96 | ||
83 | def icu_download_version(d): | 97 | def icu_download_version(d): |
84 | pvsplit = d.getVar('PV').split('-') | 98 | pvsplit = d.getVar('PV').split('-') |
@@ -104,15 +118,14 @@ DATA_SRC_URI = "${GITHUB_BASE_URI}/download/release-${ICU_FOLDER}/icu4c-${ICU_PV | |||
104 | SRC_URI = "${BASE_SRC_URI};name=code \ | 118 | SRC_URI = "${BASE_SRC_URI};name=code \ |
105 | ${DATA_SRC_URI};name=data \ | 119 | ${DATA_SRC_URI};name=data \ |
106 | file://filter.json \ | 120 | file://filter.json \ |
107 | file://fix-install-manx.patch \ | ||
108 | file://0001-icu-Added-armeb-support.patch \ | 121 | file://0001-icu-Added-armeb-support.patch \ |
109 | " | 122 | " |
110 | 123 | ||
111 | SRC_URI:append:class-target = "\ | 124 | SRC_URI:append:class-target = "\ |
112 | file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \ | 125 | file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \ |
113 | " | 126 | " |
114 | SRC_URI[code.sha256sum] = "68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c" | 127 | SRC_URI[code.sha256sum] = "588e431f77327c39031ffbb8843c0e3bc122c211374485fa87dc5f3faff24061" |
115 | SRC_URI[data.sha256sum] = "c28c3ca5f4ba3384781797138a294ca360988d4322674ad4d51e52f5d9b0a2b6" | 128 | SRC_URI[data.sha256sum] = "1e08bfafa442260ccabf9a872d4eab12de813d42b90769df056bab032b37e1d3" |
116 | 129 | ||
117 | UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)" | 130 | UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)" |
118 | GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases" | 131 | GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases" |
@@ -126,7 +139,7 @@ do_make_icudata:class-target () { | |||
126 | ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)} | 139 | ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)} |
127 | cd ${S} | 140 | cd ${S} |
128 | rm -rf data | 141 | rm -rf data |
129 | cp -a ${WORKDIR}/data . | 142 | cp -a ${UNPACKDIR}/data . |
130 | AR='${BUILD_AR}' \ | 143 | AR='${BUILD_AR}' \ |
131 | CC='${BUILD_CC}' \ | 144 | CC='${BUILD_CC}' \ |
132 | CPP='${BUILD_CPP}' \ | 145 | CPP='${BUILD_CPP}' \ |
@@ -136,7 +149,7 @@ do_make_icudata:class-target () { | |||
136 | CPPFLAGS='${BUILD_CPPFLAGS}' \ | 149 | CPPFLAGS='${BUILD_CPPFLAGS}' \ |
137 | CXXFLAGS='${BUILD_CXXFLAGS}' \ | 150 | CXXFLAGS='${BUILD_CXXFLAGS}' \ |
138 | LDFLAGS='${BUILD_LDFLAGS}' \ | 151 | LDFLAGS='${BUILD_LDFLAGS}' \ |
139 | ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \ | 152 | ICU_DATA_FILTER_FILE=${UNPACKDIR}/filter.json \ |
140 | ./runConfigureICU Linux --with-data-packaging=archive | 153 | ./runConfigureICU Linux --with-data-packaging=archive |
141 | oe_runmake | 154 | oe_runmake |
142 | install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat | 155 | install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat |
diff --git a/meta/recipes-support/iso-codes/iso-codes_4.16.0.bb b/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb index f33cce1a9d..1ee9f5a8f5 100644 --- a/meta/recipes-support/iso-codes/iso-codes_4.16.0.bb +++ b/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb | |||
@@ -6,17 +6,15 @@ HOMEPAGE = "https://salsa.debian.org/iso-codes-team/iso-codes" | |||
6 | BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" | 6 | BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" |
7 | 7 | ||
8 | LICENSE = "LGPL-2.1-only" | 8 | LICENSE = "LGPL-2.1-only" |
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=4bf661c1e3793e55c8d1051bc5e0ae21" |
10 | 10 | ||
11 | SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=https;branch=main;" | 11 | SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=https;branch=main;tag=v${PV}" |
12 | SRCREV = "c2fcaadc832ed9f858950a43994973442d85ef4f" | 12 | SRCREV = "5be4d112d420706eacd913a3ebd85549fe9eeae4" |
13 | 13 | ||
14 | # inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which | 14 | # inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which |
15 | # are inhibited by allarch | 15 | # are inhibited by allarch |
16 | DEPENDS = "gettext-native" | 16 | DEPENDS = "gettext-native" |
17 | 17 | ||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | inherit allarch autotools | 18 | inherit allarch autotools |
21 | 19 | ||
22 | FILES:${PN} += "${datadir}/xml/" | 20 | FILES:${PN} += "${datadir}/xml/" |
diff --git a/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch b/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch index fe811254d3..20361e8a99 100644 --- a/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch +++ b/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch | |||
@@ -1,6 +1,7 @@ | |||
1 | Add pkgconfig support to libassuan. | 1 | From 9d28122b7e7ae3f17364e1ab97355cf5eaf14cb8 Mon Sep 17 00:00:00 2001 |
2 | This patch is rejected by upstream for the reason below: | 2 | From: Trevor Gamblin <tgamblin@baylibre.com> |
3 | They think pkgconfig adds no portability and maintaining them is not worthwhile. | 3 | Date: Wed, 7 Aug 2024 11:36:26 -0400 |
4 | Subject: [PATCH] libassuan: add pkgconfig support | ||
4 | 5 | ||
5 | Upstream-Status: Denied | 6 | Upstream-Status: Denied |
6 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | 7 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> |
@@ -8,18 +9,23 @@ Signed-off-by: Constantin Musca <constantinx.musca@intel.com> | |||
8 | 9 | ||
9 | forward ported to 2.4.4 | 10 | forward ported to 2.4.4 |
10 | Signed-off-by: Armin Kuster <akuster@mvista.com> | 11 | Signed-off-by: Armin Kuster <akuster@mvista.com> |
12 | |||
13 | Refactor to apply on top of 3.0.1, including reformatting as an mbox for | ||
14 | easier use. | ||
15 | |||
16 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
11 | --- | 17 | --- |
12 | src/libassuan.m4 | 81 ++---------------------------------------------- | 18 | src/libassuan.m4 | 81 ++---------------------------------------------- |
13 | 1 file changed, 3 insertions(+), 78 deletions(-) | 19 | 1 file changed, 3 insertions(+), 78 deletions(-) |
14 | 20 | ||
15 | diff --git a/src/libassuan.m4 b/src/libassuan.m4 | 21 | diff --git a/src/libassuan.m4 b/src/libassuan.m4 |
16 | index df50484..380a48a 100644 | 22 | index 4d7da17..f4692ab 100644 |
17 | --- a/src/libassuan.m4 | 23 | --- a/src/libassuan.m4 |
18 | +++ b/src/libassuan.m4 | 24 | +++ b/src/libassuan.m4 |
19 | @@ -17,27 +17,6 @@ dnl Returns ok set to yes or no. | 25 | @@ -103,27 +103,6 @@ dnl |
20 | dnl | ||
21 | AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], | 26 | AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], |
22 | [ AC_REQUIRE([AC_CANONICAL_HOST]) | 27 | [ AC_REQUIRE([AC_CANONICAL_HOST])dnl |
28 | AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | ||
23 | - AC_ARG_WITH(libassuan-prefix, | 29 | - AC_ARG_WITH(libassuan-prefix, |
24 | - AS_HELP_STRING([--with-libassuan-prefix=PFX], | 30 | - AS_HELP_STRING([--with-libassuan-prefix=PFX], |
25 | - [prefix where LIBASSUAN is installed (optional)]), | 31 | - [prefix where LIBASSUAN is installed (optional)]), |
@@ -31,7 +37,7 @@ index df50484..380a48a 100644 | |||
31 | - fi | 37 | - fi |
32 | - | 38 | - |
33 | - use_gpgrt_config="" | 39 | - use_gpgrt_config="" |
34 | - if test x"${LIBASSUAN_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then | 40 | - if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then |
35 | - if $GPGRT_CONFIG libassuan --exists; then | 41 | - if $GPGRT_CONFIG libassuan --exists; then |
36 | - LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" | 42 | - LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" |
37 | - AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) | 43 | - AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) |
@@ -44,11 +50,10 @@ index df50484..380a48a 100644 | |||
44 | 50 | ||
45 | tmp=ifelse([$1], ,1:0.9.2,$1) | 51 | tmp=ifelse([$1], ,1:0.9.2,$1) |
46 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | 52 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then |
47 | @@ -47,59 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], | 53 | @@ -134,59 +113,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], |
48 | req_libassuan_api=0 | ||
49 | min_libassuan_version="$tmp" | 54 | min_libassuan_version="$tmp" |
50 | fi | 55 | fi |
51 | - | 56 | |
52 | - AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version) | 57 | - AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version) |
53 | - ok=no | 58 | - ok=no |
54 | - if test "$LIBASSUAN_CONFIG" != "no"; then | 59 | - if test "$LIBASSUAN_CONFIG" != "no"; then |
@@ -90,6 +95,7 @@ index df50484..380a48a 100644 | |||
90 | - | 95 | - |
91 | - if test $ok = yes; then | 96 | - if test $ok = yes; then |
92 | - AC_MSG_RESULT([yes ($libassuan_config_version)]) | 97 | - AC_MSG_RESULT([yes ($libassuan_config_version)]) |
98 | - AC_DEFINE_UNQUOTED(LIBASSUAN_API_REQUESTED, $req_libassuan_api, [Requested API version for libassuan]) | ||
93 | - else | 99 | - else |
94 | - AC_MSG_RESULT(no) | 100 | - AC_MSG_RESULT(no) |
95 | - fi | 101 | - fi |
@@ -106,7 +112,7 @@ index df50484..380a48a 100644 | |||
106 | if test "$tmp" -gt 0 ; then | 112 | if test "$tmp" -gt 0 ; then |
107 | AC_MSG_CHECKING([LIBASSUAN API version]) | 113 | AC_MSG_CHECKING([LIBASSUAN API version]) |
108 | if test "$req_libassuan_api" -eq "$tmp" ; then | 114 | if test "$req_libassuan_api" -eq "$tmp" ; then |
109 | @@ -115,9 +46,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], | 115 | @@ -204,9 +135,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], |
110 | if test $ok = yes; then | 116 | if test $ok = yes; then |
111 | if test x"$host" != x ; then | 117 | if test x"$host" != x ; then |
112 | if test -z "$use_gpgrt_config"; then | 118 | if test -z "$use_gpgrt_config"; then |
@@ -117,7 +123,7 @@ index df50484..380a48a 100644 | |||
117 | fi | 123 | fi |
118 | if test x"$libassuan_config_host" != xnone ; then | 124 | if test x"$libassuan_config_host" != xnone ; then |
119 | if test x"$libassuan_config_host" != x"$host" ; then | 125 | if test x"$libassuan_config_host" != x"$host" ; then |
120 | @@ -159,12 +88,8 @@ dnl | 126 | @@ -248,12 +177,8 @@ dnl |
121 | AC_DEFUN([AM_PATH_LIBASSUAN], | 127 | AC_DEFUN([AM_PATH_LIBASSUAN], |
122 | [ _AM_PATH_LIBASSUAN_COMMON($1) | 128 | [ _AM_PATH_LIBASSUAN_COMMON($1) |
123 | if test $ok = yes; then | 129 | if test $ok = yes; then |
@@ -131,5 +137,5 @@ index df50484..380a48a 100644 | |||
131 | fi | 137 | fi |
132 | AC_SUBST(LIBASSUAN_CFLAGS) | 138 | AC_SUBST(LIBASSUAN_CFLAGS) |
133 | -- | 139 | -- |
134 | 2.25.1 | 140 | 2.43.0 |
135 | 141 | ||
diff --git a/meta/recipes-support/libassuan/libassuan_2.5.7.bb b/meta/recipes-support/libassuan/libassuan_3.0.2.bb index d1e622635f..0d2ccce989 100644 --- a/meta/recipes-support/libassuan/libassuan_2.5.7.bb +++ b/meta/recipes-support/libassuan/libassuan_3.0.2.bb | |||
@@ -20,12 +20,14 @@ SRC_URI = "${GNUPG_MIRROR}/libassuan/libassuan-${PV}.tar.bz2 \ | |||
20 | file://libassuan-add-pkgconfig-support.patch \ | 20 | file://libassuan-add-pkgconfig-support.patch \ |
21 | " | 21 | " |
22 | 22 | ||
23 | SRC_URI[sha256sum] = "0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76" | 23 | SRC_URI[sha256sum] = "d2931cdad266e633510f9970e1a2f346055e351bb19f9b78912475b8074c36f6" |
24 | 24 | ||
25 | BINCONFIG = "${bindir}/libassuan-config" | 25 | BINCONFIG = "${bindir}/libassuan-config" |
26 | 26 | ||
27 | inherit autotools texinfo binconfig-disabled pkgconfig multilib_header | 27 | inherit autotools texinfo binconfig-disabled pkgconfig multilib_header |
28 | 28 | ||
29 | require recipes-support/gnupg/drop-unknown-suffix.inc | ||
30 | |||
29 | do_configure:prepend () { | 31 | do_configure:prepend () { |
30 | # Else these could be used in preference to those in aclocal-copy | 32 | # Else these could be used in preference to those in aclocal-copy |
31 | rm -f ${S}/m4/*.m4 | 33 | rm -f ${S}/m4/*.m4 |
diff --git a/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb b/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb index 824400e743..00994dfae0 100644 --- a/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb +++ b/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb | |||
@@ -1,6 +1,6 @@ | |||
1 | SUMMARY = "A library for atomic integer operations" | 1 | SUMMARY = "A library for atomic integer operations" |
2 | DESCRIPTION = "Package provides semi-portable access to hardware-provided atomic memory update operations on a number of architectures." | 2 | DESCRIPTION = "Package provides semi-portable access to hardware-provided atomic memory update operations on a number of architectures." |
3 | HOMEPAGE = "https://github.com/ivmai/libatomic_ops/" | 3 | HOMEPAGE = "https://github.com/bdwgc/libatomic_ops/" |
4 | SECTION = "optional" | 4 | SECTION = "optional" |
5 | PROVIDES += "libatomics-ops" | 5 | PROVIDES += "libatomics-ops" |
6 | LICENSE = "GPL-2.0-only & MIT" | 6 | LICENSE = "GPL-2.0-only & MIT" |
@@ -9,11 +9,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | |||
9 | " | 9 | " |
10 | 10 | ||
11 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libatomic_ops-${PV}.tar.gz" | 11 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libatomic_ops-${PV}.tar.gz" |
12 | GITHUB_BASE_URI = "https://github.com/ivmai/libatomic_ops/releases" | 12 | GITHUB_BASE_URI = "https://github.com/bdwgc/libatomic_ops/releases" |
13 | 13 | ||
14 | SRC_URI[sha256sum] = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51" | 14 | SRC_URI[sha256sum] = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51" |
15 | 15 | ||
16 | S = "${WORKDIR}/libatomic_ops-${PV}" | 16 | CVE_PRODUCT = "libatomic_ops" |
17 | |||
18 | S = "${UNPACKDIR}/libatomic_ops-${PV}" | ||
17 | 19 | ||
18 | ALLOW_EMPTY:${PN} = "1" | 20 | ALLOW_EMPTY:${PN} = "1" |
19 | 21 | ||
diff --git a/meta/recipes-support/libbsd/libbsd_0.12.2.bb b/meta/recipes-support/libbsd/libbsd_0.12.2.bb index 7d5e88f293..39ecda26af 100644 --- a/meta/recipes-support/libbsd/libbsd_0.12.2.bb +++ b/meta/recipes-support/libbsd/libbsd_0.12.2.bb | |||
@@ -3,8 +3,8 @@ DESCRIPTION = "This library provides useful functions commonly found on BSD syst | |||
3 | and lacking on others like GNU systems, thus making it easier to port \ | 3 | and lacking on others like GNU systems, thus making it easier to port \ |
4 | projects with strong BSD origins, without needing to embed the same \ | 4 | projects with strong BSD origins, without needing to embed the same \ |
5 | code over and over again on each project." | 5 | code over and over again on each project." |
6 | |||
7 | HOMEPAGE = "https://libbsd.freedesktop.org/wiki/" | 6 | HOMEPAGE = "https://libbsd.freedesktop.org/wiki/" |
7 | |||
8 | # There seems to be more licenses used in the code, I don't think we want to list them all here, complete list: | 8 | # There seems to be more licenses used in the code, I don't think we want to list them all here, complete list: |
9 | # OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u | 9 | # OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u |
10 | # License: BSD-2-clause | 10 | # License: BSD-2-clause |
@@ -15,25 +15,15 @@ HOMEPAGE = "https://libbsd.freedesktop.org/wiki/" | |||
15 | # License: BSD-3-clause-author | 15 | # License: BSD-3-clause-author |
16 | # License: BSD-3-clause-John-Birrell | 16 | # License: BSD-3-clause-John-Birrell |
17 | # License: BSD-3-clause-Regents | 17 | # License: BSD-3-clause-Regents |
18 | # License: BSD-4-clause-Christopher-G-Demetriou | ||
19 | # License: BSD-4-clause-Niels-Provos | ||
20 | # License: BSD-5-clause-Peter-Wemm | 18 | # License: BSD-5-clause-Peter-Wemm |
21 | # License: Beerware | 19 | # License: Beerware |
22 | # License: Expat | 20 | # License: Expat |
23 | # License: ISC | 21 | # License: ISC |
24 | # License: ISC-Original | 22 | # License: ISC-Original |
25 | # License: public-domain | 23 | # License: public-domain |
26 | # License: public-domain-Colin-Plumb | 24 | LICENSE = "BSD-3-Clause & ISC & PD" |
27 | LICENSE = "BSD-3-Clause & BSD-4-Clause & ISC & PD" | ||
28 | LICENSE:${PN} = "BSD-3-Clause & ISC & PD" | ||
29 | LICENSE:${PN}-dbg = "BSD-3-Clause & ISC & PD" | ||
30 | LICENSE:${PN}-dev = "BSD-3-Clause & ISC & PD" | ||
31 | LICENSE:${PN}-doc = "BSD-3-Clause & BSD-4-Clause & ISC & PD" | ||
32 | LICENSE:${PN}-locale = "BSD-3-Clause & ISC & PD" | ||
33 | LICENSE:${PN}-src = "BSD-3-Clause & ISC & PD" | ||
34 | LICENSE:${PN}-staticdev = "BSD-3-Clause & ISC & PD" | ||
35 | |||
36 | LIC_FILES_CHKSUM = "file://COPYING;md5=9b087a0981a1fcad42efbba6d4925a0f" | 25 | LIC_FILES_CHKSUM = "file://COPYING;md5=9b087a0981a1fcad42efbba6d4925a0f" |
26 | |||
37 | SECTION = "libs" | 27 | SECTION = "libs" |
38 | 28 | ||
39 | SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz" | 29 | SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz" |
diff --git a/meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch b/meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch new file mode 100644 index 0000000000..a0452ad53d --- /dev/null +++ b/meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 1fe7c1cfeea00ba4eb903fbb39b74361594d4835 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jan Palus <jpalus@fastmail.com> | ||
3 | Date: Wed, 10 Apr 2024 21:30:51 +0200 | ||
4 | Subject: [PATCH] Fix python path when invoking py-compile (#54) | ||
5 | |||
6 | 48eebb2 replaced custom PYTHON3 variable with PYTHON by using standard | ||
7 | AM_PATH_PYTHON macro. Makefile however still referred to old one. | ||
8 | There's no need to set PYTHON explicitly anymore so drop it. | ||
9 | |||
10 | Fixes #53 | ||
11 | |||
12 | Upstream-Status: Backport | ||
13 | [https://github.com/stevegrubb/libcap-ng/commit/1fe7c1cfeea00ba4eb903fbb39b74361594d4835] | ||
14 | |||
15 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
16 | --- | ||
17 | bindings/python3/Makefile.am | 1 - | ||
18 | 1 file changed, 1 deletion(-) | ||
19 | |||
20 | diff --git a/bindings/python3/Makefile.am b/bindings/python3/Makefile.am | ||
21 | index 70a1dd8..6072fc2 100644 | ||
22 | --- a/bindings/python3/Makefile.am | ||
23 | +++ b/bindings/python3/Makefile.am | ||
24 | @@ -27,7 +27,6 @@ AM_CPPFLAGS = -I. -I$(top_builddir) $(PYTHON3_INCLUDES) | ||
25 | LIBS = ${top_builddir}/src/libcap-ng.la | ||
26 | SWIG_FLAGS = -python | ||
27 | SWIG_INCLUDES = ${AM_CPPFLAGS} | ||
28 | -PYTHON = $(PYTHON3) | ||
29 | pyexec_PYTHON = capng.py | ||
30 | pyexec_LTLIBRARIES = _capng.la | ||
31 | pyexec_SOLIBRARIES = _capng.so | ||
32 | -- | ||
33 | 2.25.1 | ||
34 | |||
diff --git a/meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch b/meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch deleted file mode 100644 index fb424fe725..0000000000 --- a/meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 355eada2d20886287cffc16e304087dd6f66ae37 Mon Sep 17 00:00:00 2001 | ||
2 | From: Steve Grubb <ausearch.1@gmail.com> | ||
3 | Date: Thu, 4 Jan 2024 15:06:29 -0500 | ||
4 | Subject: [PATCH] Remove python global exception handler since its deprecated | ||
5 | |||
6 | Upstream-Status: Backport [https://github.com/stevegrubb/libcap-ng/commit/30453b6553948cd05c438f9f509013e3bb84f25b] | ||
7 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
8 | --- | ||
9 | bindings/src/capng_swig.i | 7 ------- | ||
10 | 1 file changed, 7 deletions(-) | ||
11 | |||
12 | diff --git a/bindings/src/capng_swig.i b/bindings/src/capng_swig.i | ||
13 | index fcdaf18..fa85e13 100644 | ||
14 | --- a/bindings/src/capng_swig.i | ||
15 | +++ b/bindings/src/capng_swig.i | ||
16 | @@ -30,13 +30,6 @@ | ||
17 | |||
18 | %varargs(16, signed capability = 0) capng_updatev; | ||
19 | |||
20 | -%except(python) { | ||
21 | - $action | ||
22 | - if (result < 0) { | ||
23 | - PyErr_SetFromErrno(PyExc_OSError); | ||
24 | - return NULL; | ||
25 | - } | ||
26 | -} | ||
27 | #endif | ||
28 | |||
29 | %define __signed__ | ||
30 | -- | ||
31 | 2.43.2 | ||
32 | |||
diff --git a/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb b/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb deleted file mode 100644 index 4790134ae9..0000000000 --- a/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | require libcap-ng.inc | ||
2 | |||
3 | FILESEXTRAPATHS:prepend := "${THISDIR}/libcap-ng:" | ||
4 | |||
5 | SUMMARY .= " - python" | ||
6 | |||
7 | inherit lib_package autotools python3targetconfig | ||
8 | |||
9 | # drop setuptools when version > 0.8.3 is released; it's needed only for distutils | ||
10 | DEPENDS += "libcap-ng python3 swig-native python3-setuptools-native" | ||
11 | |||
12 | S = "${WORKDIR}/libcap-ng-${PV}" | ||
13 | |||
14 | EXTRA_OECONF += "--with-python3" | ||
15 | |||
16 | do_install:append() { | ||
17 | rm -rf ${D}${bindir} | ||
18 | rm -rf ${D}${libdir}/.debug | ||
19 | rm -f ${D}${libdir}/lib* | ||
20 | rm -rf ${D}${libdir}/pkgconfig | ||
21 | rm -rf ${D}${datadir} | ||
22 | rm -rf ${D}${includedir} | ||
23 | } | ||
24 | |||
25 | # PACKAGES = "${PN}" | ||
26 | |||
27 | FILES:${PN} = "${libdir}/python${PYTHON_BASEVERSION}" | ||
28 | FILES:${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/.debug/_capng.so" | ||
29 | |||
diff --git a/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb b/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb new file mode 100644 index 0000000000..f702056f02 --- /dev/null +++ b/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | require libcap-ng.inc | ||
2 | |||
3 | FILESEXTRAPATHS:prepend := "${THISDIR}/libcap-ng:" | ||
4 | |||
5 | SUMMARY .= " - python" | ||
6 | |||
7 | inherit python3targetconfig | ||
8 | |||
9 | DEPENDS += "libcap-ng python3 swig-native" | ||
10 | |||
11 | EXTRA_OECONF += "--with-python3" | ||
12 | |||
13 | do_install() { | ||
14 | oe_runmake 'DESTDIR=${D}' install -C ${B}/bindings/python3 | ||
15 | } | ||
16 | |||
17 | FILES:${PN} = "${libdir}/python${PYTHON_BASEVERSION}" | ||
diff --git a/meta/recipes-support/libcap-ng/libcap-ng.inc b/meta/recipes-support/libcap-ng/libcap-ng.inc index 845b7c2f0a..ed8712bf2b 100644 --- a/meta/recipes-support/libcap-ng/libcap-ng.inc +++ b/meta/recipes-support/libcap-ng/libcap-ng.inc | |||
@@ -1,17 +1,22 @@ | |||
1 | SUMMARY = "An alternate posix capabilities library" | 1 | SUMMARY = "An alternate posix capabilities library" |
2 | DESCRIPTION = "The libcap-ng library is intended to make programming \ | 2 | DESCRIPTION = "The libcap-ng library is intended to make programming \ |
3 | with POSIX capabilities much easier than the traditional libcap library." | 3 | with POSIX capabilities much easier than the traditional libcap library." |
4 | HOMEPAGE = "http://freecode.com/projects/libcap-ng" | 4 | HOMEPAGE = "https://github.com/stevegrubb/libcap-ng" |
5 | SECTION = "base" | 5 | SECTION = "base" |
6 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" | 6 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ |
8 | file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" | 8 | file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" |
9 | 9 | ||
10 | SRC_URI = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \ | 10 | SRC_URI = "git://github.com/stevegrubb/libcap-ng.git;protocol=https;branch=master \ |
11 | file://fix-issues-with-swig-4-2.patch \ | 11 | file://0001-Fix-python-path-when-invoking-py-compile-54.patch \ |
12 | " | 12 | " |
13 | SRCREV = "f5d39702622208b3ada064d7b2eaeaf1454c9bd3" | ||
13 | 14 | ||
14 | SRC_URI[sha256sum] = "68581d3b38e7553cb6f6ddf7813b1fc99e52856f21421f7b477ce5abd2605a8a" | 15 | inherit lib_package autotools |
16 | |||
17 | do_configure:prepend() { | ||
18 | touch ${S}/NEWS | ||
19 | } | ||
15 | 20 | ||
16 | EXTRA_OECONF:append:class-target = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h" | 21 | EXTRA_OECONF:append:class-target = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h" |
17 | EXTRA_OECONF:append:class-nativesdk = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h" | 22 | EXTRA_OECONF:append:class-nativesdk = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h" |
diff --git a/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb b/meta/recipes-support/libcap-ng/libcap-ng_0.8.5.bb index 3dbe3e2ffd..b482368a41 100644 --- a/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb +++ b/meta/recipes-support/libcap-ng/libcap-ng_0.8.5.bb | |||
@@ -1,7 +1,5 @@ | |||
1 | require libcap-ng.inc | 1 | require libcap-ng.inc |
2 | 2 | ||
3 | inherit lib_package autotools | ||
4 | |||
5 | EXTRA_OECONF += "--without-python3" | 3 | EXTRA_OECONF += "--without-python3" |
6 | 4 | ||
7 | BBCLASSEXTEND = "native nativesdk" | 5 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch b/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch deleted file mode 100644 index 05c771ac10..0000000000 --- a/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | Ensure the XATTR_NAME_CAPS is defined when it is used | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | |||
5 | VFS_CAP_U32 can not ensure that XATTR_NAME_CAPS is defined, and failed to build | ||
6 | libcap-native in old release, like CentOS release 6.7 (Final), with the blow | ||
7 | error: | ||
8 | cap_file.c: In function ‘cap_get_fd’: | ||
9 | cap_file.c:199: error: ‘XATTR_NAME_CAPS’ undeclared (first use in this function) | ||
10 | cap_file.c:199: error: (Each undeclared identifier is reported only once | ||
11 | |||
12 | Signed-off-by: Roy Li <rongqing.li@windriver.com> | ||
13 | --- | ||
14 | libcap/cap_file.c | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/libcap/cap_file.c b/libcap/cap_file.c | ||
18 | index 40756ea..e27ca80 100644 | ||
19 | --- a/libcap/cap_file.c | ||
20 | +++ b/libcap/cap_file.c | ||
21 | @@ -25,7 +25,7 @@ extern int fremovexattr(int, const char *); | ||
22 | |||
23 | #include "libcap.h" | ||
24 | |||
25 | -#ifdef VFS_CAP_U32 | ||
26 | +#if defined (VFS_CAP_U32) && defined (XATTR_NAME_CAPS) | ||
27 | |||
28 | #if VFS_CAP_U32 != __CAP_BLKS | ||
29 | # error VFS representation of capabilities is not the same size as kernel | ||
30 | -- | ||
31 | 2.8.1 | ||
32 | |||
diff --git a/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch index 2ac1e6e560..2cec20b4b1 100644 --- a/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch +++ b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 709aa8e156415215b0bb034d05b2aa2f44be044e Mon Sep 17 00:00:00 2001 | 1 | From 969d21aa2bf474d9c5c80a64de1a9fe0e17e31b2 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Thu, 14 Oct 2021 15:57:36 +0800 | 3 | Date: Thu, 14 Oct 2021 15:57:36 +0800 |
4 | Subject: [PATCH] nativesdk-libcap: Raise the size of arrays containing dl | 4 | Subject: [PATCH] nativesdk-libcap: Raise the size of arrays containing dl |
@@ -14,18 +14,17 @@ the strings in a certain path. | |||
14 | Upstream-Status: Inappropriate [SDK specific] | 14 | Upstream-Status: Inappropriate [SDK specific] |
15 | 15 | ||
16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
17 | |||
18 | --- | 17 | --- |
19 | libcap/execable.h | 2 +- | 18 | libcap/execable.h | 2 +- |
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | 19 | 1 file changed, 1 insertion(+), 1 deletion(-) |
21 | 20 | ||
22 | diff --git a/libcap/execable.h b/libcap/execable.h | 21 | diff --git a/libcap/execable.h b/libcap/execable.h |
23 | index fee17b4..5bb0c55 100644 | 22 | index a68ea24..60d3853 100644 |
24 | --- a/libcap/execable.h | 23 | --- a/libcap/execable.h |
25 | +++ b/libcap/execable.h | 24 | +++ b/libcap/execable.h |
26 | @@ -23,7 +23,7 @@ | 25 | @@ -34,7 +34,7 @@ extern const int _IO_stdin_used; |
27 | #endif | 26 | const int _IO_stdin_used __attribute__((weak)) = 131073; |
28 | #define __EXECABLE_H | 27 | #endif /* def __GLIBC__ */ |
29 | 28 | ||
30 | -const char __execable_dl_loader[] __attribute((section(".interp"))) = | 29 | -const char __execable_dl_loader[] __attribute((section(".interp"))) = |
31 | +const char __execable_dl_loader[4096] __attribute((section(".interp"))) = | 30 | +const char __execable_dl_loader[4096] __attribute((section(".interp"))) = |
diff --git a/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch b/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch deleted file mode 100644 index 20346cf2fb..0000000000 --- a/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From 10212b6d4e8843feffbeab5336342d97f3a46bb2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Fri, 20 Dec 2019 16:54:05 +0100 | ||
4 | Subject: [PATCH] tests: do not run target executables | ||
5 | |||
6 | Upstream-Status: Inappropriate [oe-core specific] | ||
7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
8 | |||
9 | --- | ||
10 | tests/Makefile | 2 -- | ||
11 | 1 file changed, 2 deletions(-) | ||
12 | |||
13 | diff --git a/tests/Makefile b/tests/Makefile | ||
14 | index ecb7d1b..8950c73 100644 | ||
15 | --- a/tests/Makefile | ||
16 | +++ b/tests/Makefile | ||
17 | @@ -61,13 +61,11 @@ endif | ||
18 | |||
19 | # unprivileged | ||
20 | run_psx_test: psx_test | ||
21 | - ./psx_test | ||
22 | |||
23 | psx_test: psx_test.c $(DEPS) | ||
24 | $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB) | ||
25 | |||
26 | run_libcap_psx_test: libcap_psx_test | ||
27 | - ./libcap_psx_test | ||
28 | |||
29 | libcap_psx_test: libcap_psx_test.c $(DEPS) | ||
30 | $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) | ||
diff --git a/meta/recipes-support/libcap/libcap_2.69.bb b/meta/recipes-support/libcap/libcap_2.76.bb index 92fa766d37..c842246fc0 100644 --- a/meta/recipes-support/libcap/libcap_2.69.bb +++ b/meta/recipes-support/libcap/libcap_2.76.bb | |||
@@ -3,34 +3,30 @@ DESCRIPTION = "A library providing the API to access POSIX capabilities. \ | |||
3 | These allow giving various kinds of specific privileges to individual \ | 3 | These allow giving various kinds of specific privileges to individual \ |
4 | users, without giving them full root permissions." | 4 | users, without giving them full root permissions." |
5 | HOMEPAGE = "http://sites.google.com/site/fullycapable/" | 5 | HOMEPAGE = "http://sites.google.com/site/fullycapable/" |
6 | # no specific GPL version required | 6 | |
7 | LICENSE = "BSD-3-Clause | GPL-2.0-only" | 7 | # The library is BSD | GPLv2, the PAM module is BSD | LGPLv2+ |
8 | LIC_FILES_CHKSUM_PAM = "file://pam_cap/License;md5=905326f41d3d1f8df21943f9a4ed6b50" | 8 | LICENSE = "(BSD-3-Clause | GPL-2.0-only) & (BSD-3-Clause | LGPL-2.0-or-later)" |
9 | LIC_FILES_CHKSUM = "file://License;md5=2965a646645b72ecee859b43c592dcaa \ | 9 | LIC_FILES_CHKSUM = "file://License;md5=2965a646645b72ecee859b43c592dcaa \ |
10 | ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${LIC_FILES_CHKSUM_PAM}', '', d)} \ | 10 | file://pam_cap/License;md5=905326f41d3d1f8df21943f9a4ed6b50 \ |
11 | " | 11 | " |
12 | 12 | ||
13 | DEPENDS = "hostperl-runtime-native gperf-native" | 13 | DEPENDS = "hostperl-runtime-native gperf-native" |
14 | 14 | ||
15 | SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \ | 15 | SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz" |
16 | file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ | ||
17 | file://0002-tests-do-not-run-target-executables.patch \ | ||
18 | " | ||
19 | SRC_URI:append:class-nativesdk = " \ | 16 | SRC_URI:append:class-nativesdk = " \ |
20 | file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \ | 17 | file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \ |
21 | " | 18 | " |
22 | SRC_URI[sha256sum] = "f311f8f3dad84699d0566d1d6f7ec943a9298b28f714cae3c931dfd57492d7eb" | 19 | SRC_URI[sha256sum] = "629da4ab29900d0f7fcc36227073743119925fd711c99a1689bbf5c9b40c8e6f" |
23 | 20 | ||
24 | UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" | 21 | UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" |
25 | 22 | ||
26 | inherit lib_package | 23 | inherit lib_package |
27 | 24 | ||
28 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" | 25 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" |
29 | PACKAGECONFIG:class-native ??= "" | ||
30 | |||
31 | PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" | 26 | PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" |
32 | 27 | ||
33 | EXTRA_OEMAKE = " \ | 28 | EXTRA_OEMAKE = " \ |
29 | ${PACKAGECONFIG_CONFARGS} \ | ||
34 | INDENT= \ | 30 | INDENT= \ |
35 | lib='${baselib}' \ | 31 | lib='${baselib}' \ |
36 | RAISE_SETFCAP=no \ | 32 | RAISE_SETFCAP=no \ |
@@ -38,23 +34,16 @@ EXTRA_OEMAKE = " \ | |||
38 | USE_GPERF=yes \ | 34 | USE_GPERF=yes \ |
39 | " | 35 | " |
40 | 36 | ||
41 | EXTRA_OEMAKE:append:class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}" | ||
42 | |||
43 | do_compile() { | 37 | do_compile() { |
44 | unset CFLAGS BUILD_CFLAGS | ||
45 | oe_runmake \ | 38 | oe_runmake \ |
46 | ${PACKAGECONFIG_CONFARGS} \ | ||
47 | AR="${AR}" \ | 39 | AR="${AR}" \ |
48 | CC="${CC}" \ | 40 | CC="${CC}" \ |
49 | RANLIB="${RANLIB}" \ | 41 | RANLIB="${RANLIB}" \ |
50 | OBJCOPY="${OBJCOPY}" \ | 42 | OBJCOPY="${OBJCOPY}" |
51 | COPTS="${CFLAGS}" \ | ||
52 | BUILD_COPTS="${BUILD_CFLAGS}" | ||
53 | } | 43 | } |
54 | 44 | ||
55 | do_install() { | 45 | do_install() { |
56 | oe_runmake install \ | 46 | oe_runmake install \ |
57 | ${PACKAGECONFIG_CONFARGS} \ | ||
58 | DESTDIR="${D}" \ | 47 | DESTDIR="${D}" \ |
59 | prefix="${prefix}" \ | 48 | prefix="${prefix}" \ |
60 | SBINDIR="${sbindir}" | 49 | SBINDIR="${sbindir}" |
@@ -71,9 +60,11 @@ do_install:append() { | |||
71 | fi | 60 | fi |
72 | } | 61 | } |
73 | 62 | ||
74 | FILES:${PN}-dev += "${base_libdir}/*.so" | ||
75 | |||
76 | # pam files | 63 | # pam files |
77 | FILES:${PN} += "${base_libdir}/security/*.so" | 64 | FILES:${PN} += "${base_libdir}/security/*.so" |
78 | 65 | ||
66 | # The license of the main package depends on whether PAM is enabled or not | ||
67 | LICENSE:${PN} = "(BSD-3-Clause | GPL-2.0-only)${@bb.utils.contains('PACKAGECONFIG', 'pam', ' & (BSD-3-Clause | LGPL-2.0-or-later)', '', d)}" | ||
68 | LICENSE:${PN}-dev = "(BSD-3-Clause | GPL-2.0-only)" | ||
69 | |||
79 | BBCLASSEXTEND = "native nativesdk" | 70 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch b/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch deleted file mode 100644 index 3c7572700d..0000000000 --- a/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | Do not echo compiler info in a comment line to check_stdint.h which causes | ||
2 | multilib install file conflict. | ||
3 | |||
4 | Upstream-Status: Pending | ||
5 | |||
6 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
7 | |||
8 | diff --git a/m4/ax_create_stdint_h.m4 b/m4/ax_create_stdint_h.m4 | ||
9 | index 33a21f8..eacc37a 100644 | ||
10 | --- a/m4/ax_create_stdint_h.m4 | ||
11 | +++ b/m4/ax_create_stdint_h.m4 | ||
12 | @@ -272,7 +272,6 @@ echo "#ifndef" $_ac_stdint_h >$ac_stdint | ||
13 | echo "#define" $_ac_stdint_h "1" >>$ac_stdint | ||
14 | echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint | ||
15 | echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint | ||
16 | -echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint | ||
17 | if test "_$ac_cv_header_stdint_t" != "_" ; then | ||
18 | echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint | ||
19 | echo "#include <stdint.h>" >>$ac_stdint | ||
diff --git a/meta/recipes-support/libcheck/libcheck/subunit.patch b/meta/recipes-support/libcheck/libcheck/subunit.patch new file mode 100644 index 0000000000..29c4b15601 --- /dev/null +++ b/meta/recipes-support/libcheck/libcheck/subunit.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | From a6cd376b9ebcb4afc9ab06bce23b9bd909811ece Mon Sep 17 00:00:00 2001 | ||
2 | From: Christopher Obbard <christopher.obbard@linaro.org> | ||
3 | Date: Thu, 13 Jun 2024 09:49:53 +0100 | ||
4 | Subject: [PATCH] Allow disabling autodetection of subunit library | ||
5 | |||
6 | It can be useful to avoid linking to subunit when we are building the check | ||
7 | library for the host, e.g. in a buildroot recipe, where the built check is | ||
8 | linked into other applications which are used on the host to build images. | ||
9 | |||
10 | These applications are built with the host's cross-compiler and can use | ||
11 | the host's pkgconfig to determine if libraries are available. When check | ||
12 | is linked against other libraries, it can fail this check for subunit. | ||
13 | |||
14 | Allow disabling the autodetection of subunit with a configure flag | ||
15 | -DENABLE_SUBUNIT_EXT=OFF | ||
16 | |||
17 | Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org> | ||
18 | |||
19 | Upstream-Status: Submitted [https://github.com/libcheck/check/pull/353/] | ||
20 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
21 | --- | ||
22 | CMakeLists.txt | 8 +++++++- | ||
23 | 1 file changed, 7 insertions(+), 1 deletion(-) | ||
24 | |||
25 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
26 | index 2ee580bc..6b36015b 100644 | ||
27 | --- a/CMakeLists.txt | ||
28 | +++ b/CMakeLists.txt | ||
29 | @@ -393,7 +393,13 @@ if (HAVE_LIBRT) | ||
30 | ADD_DEFINITIONS(-DHAVE_LIBRT=1) | ||
31 | endif (HAVE_LIBRT) | ||
32 | |||
33 | -check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT) | ||
34 | +# Allow disabling subunit | ||
35 | +IF(ENABLE_SUBUNIT_EXT) | ||
36 | + check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT) | ||
37 | +ELSE(ENABLE_SUBUNIT_EXT) | ||
38 | + set(HAVE_SUBUNIT, false) | ||
39 | +ENDIF(ENABLE_SUBUNIT_EXT) | ||
40 | + | ||
41 | if (HAVE_SUBUNIT) | ||
42 | set(SUBUNIT "subunit") | ||
43 | set(ENABLE_SUBUNIT 1) | ||
diff --git a/meta/recipes-support/libcheck/libcheck_0.15.2.bb b/meta/recipes-support/libcheck/libcheck_0.15.2.bb index 5ab67b8728..33f8f54888 100644 --- a/meta/recipes-support/libcheck/libcheck_0.15.2.bb +++ b/meta/recipes-support/libcheck/libcheck_0.15.2.bb | |||
@@ -12,21 +12,23 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" | |||
12 | 12 | ||
13 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \ | 13 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \ |
14 | file://automake-output.patch \ | 14 | file://automake-output.patch \ |
15 | file://not-echo-compiler-info-to-check_stdint.h.patch" | 15 | file://subunit.patch" |
16 | SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a" | 16 | SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a" |
17 | GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/" | 17 | GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/" |
18 | 18 | ||
19 | S = "${WORKDIR}/check-${PV}" | 19 | S = "${UNPACKDIR}/check-${PV}" |
20 | 20 | ||
21 | inherit autotools pkgconfig texinfo github-releases | 21 | inherit cmake pkgconfig texinfo github-releases |
22 | |||
23 | CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" | ||
24 | 22 | ||
25 | RREPLACES:${PN} = "check (<= 0.9.5)" | 23 | RREPLACES:${PN} = "check (<= 0.9.5)" |
26 | 24 | ||
25 | EXTRA_OECMAKE:append:class-target = " -DAWK_PATH=${bindir}/awk" | ||
26 | EXTRA_OECMAKE = "-DENABLE_SUBUNIT_EXT=OFF" | ||
27 | |||
27 | do_install:append:class-native() { | 28 | do_install:append:class-native() { |
28 | create_cmdline_shebang_wrapper ${D}${bindir}/checkmk | 29 | create_cmdline_shebang_wrapper ${D}${bindir}/checkmk |
29 | } | 30 | } |
31 | |||
30 | BBCLASSEXTEND = "native nativesdk" | 32 | BBCLASSEXTEND = "native nativesdk" |
31 | 33 | ||
32 | PACKAGES =+ "checkmk" | 34 | PACKAGES =+ "checkmk" |
diff --git a/meta/recipes-support/libdaemon/libdaemon_0.14.bb b/meta/recipes-support/libdaemon/libdaemon_0.14.bb index 089f19d1cd..a0378802c9 100644 --- a/meta/recipes-support/libdaemon/libdaemon_0.14.bb +++ b/meta/recipes-support/libdaemon/libdaemon_0.14.bb | |||
@@ -13,7 +13,6 @@ SRC_URI = "http://0pointer.de/lennart/projects/libdaemon/libdaemon-${PV}.tar.gz | |||
13 | file://fix-includes.patch \ | 13 | file://fix-includes.patch \ |
14 | " | 14 | " |
15 | 15 | ||
16 | SRC_URI[md5sum] = "509dc27107c21bcd9fbf2f95f5669563" | ||
17 | SRC_URI[sha256sum] = "fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834" | 16 | SRC_URI[sha256sum] = "fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834" |
18 | 17 | ||
19 | inherit autotools pkgconfig | 18 | inherit autotools pkgconfig |
diff --git a/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb b/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb new file mode 100644 index 0000000000..812a30495e --- /dev/null +++ b/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SUMMARY = "EDID and DisplayID library" | ||
2 | DESCRIPTION = "The goal of this library is to provide a set of high-level, \ | ||
3 | easy-to-use, and opinionated functions, as well as low-level functions for \ | ||
4 | accessing detailed information, prioritizing simplicity and correctness over \ | ||
5 | performance and resource usage, while being well-tested and fuzzed." | ||
6 | HOMEPAGE = "https://gitlab.freedesktop.org/emersion/libdisplay-info" | ||
7 | LICENSE = "MIT" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e4426409957080ee0352128354cea2de" | ||
9 | DEPENDS = "hwdata-native" | ||
10 | |||
11 | SRC_URI = "git://gitlab.freedesktop.org/emersion/libdisplay-info.git;branch=main;protocol=https" | ||
12 | SRCREV = "66b802d05b374cd8f388dc6ad1e7ae4f08cb3300" | ||
13 | |||
14 | inherit meson pkgconfig lib_package | ||
diff --git a/meta/recipes-support/libevdev/libevdev_1.13.1.bb b/meta/recipes-support/libevdev/libevdev_1.13.4.bb index 85cfd78507..3ff64bd04b 100644 --- a/meta/recipes-support/libevdev/libevdev_1.13.1.bb +++ b/meta/recipes-support/libevdev/libevdev_1.13.4.bb | |||
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=80c550b3197bcb8da7d7557ebcc3fc46 \ | |||
10 | " | 10 | " |
11 | 11 | ||
12 | SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" | 12 | SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" |
13 | SRC_URI[sha256sum] = "06a77bf2ac5c993305882bc1641017f5bec1592d6d1b64787bad492ab34f2f36" | 13 | SRC_URI[sha256sum] = "f00ab8d42ad8b905296fab67e13b871f1a424839331516642100f82ad88127cd" |
14 | 14 | ||
15 | inherit autotools pkgconfig | 15 | inherit autotools pkgconfig |
16 | 16 | ||
diff --git a/meta/recipes-support/libevent/libevent_2.1.12.bb b/meta/recipes-support/libevent/libevent_2.1.12.bb index 25388fb4d7..2fadf10943 100644 --- a/meta/recipes-support/libevent/libevent_2.1.12.bb +++ b/meta/recipes-support/libevent/libevent_2.1.12.bb | |||
@@ -23,7 +23,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/release-${PV}-stable/${BP}-stable.tar.gz | |||
23 | SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb" | 23 | SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb" |
24 | UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable" | 24 | UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable" |
25 | 25 | ||
26 | S = "${WORKDIR}/${BPN}-${PV}-stable" | 26 | S = "${UNPACKDIR}/${BPN}-${PV}-stable" |
27 | 27 | ||
28 | PACKAGECONFIG ??= "" | 28 | PACKAGECONFIG ??= "" |
29 | PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" | 29 | PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" |
diff --git a/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch b/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch index 505aa07330..26ab7f657f 100644 --- a/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch +++ b/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 1ee7217c8ae724d793f9a9876c3608057a2ccbf8 Mon Sep 17 00:00:00 2001 | 1 | From ea0110e5def8eaf2567193323601f06ff892ce15 Mon Sep 17 00:00:00 2001 |
2 | From: Julien Stephan <jstephan@baylibre.com> | 2 | From: Julien Stephan <jstephan@baylibre.com> |
3 | Date: Tue, 11 Jul 2023 16:07:54 +0200 | 3 | Date: Tue, 11 Jul 2023 16:07:54 +0200 |
4 | Subject: [PATCH] Add serial-tests config needed by ptest | 4 | Subject: [PATCH] Add serial-tests config needed by ptest |
@@ -13,10 +13,10 @@ Signed-off-by: Julien Stephan <jstephan@baylibre.com> | |||
13 | 1 file changed, 1 insertion(+) | 13 | 1 file changed, 1 insertion(+) |
14 | 14 | ||
15 | diff --git a/configure.ac b/configure.ac | 15 | diff --git a/configure.ac b/configure.ac |
16 | index cd48047..5413907 100644 | 16 | index 9e483c9..561b61c 100644 |
17 | --- a/configure.ac | 17 | --- a/configure.ac |
18 | +++ b/configure.ac | 18 | +++ b/configure.ac |
19 | @@ -16,6 +16,7 @@ AM_INIT_AUTOMAKE([ | 19 | @@ -21,6 +21,7 @@ AM_INIT_AUTOMAKE([ |
20 | dist-zip | 20 | dist-zip |
21 | check-news | 21 | check-news |
22 | subdir-objects | 22 | subdir-objects |
diff --git a/meta/recipes-support/libexif/libexif_0.6.24.bb b/meta/recipes-support/libexif/libexif_0.6.25.bb index b407ee52de..59c22753d0 100644 --- a/meta/recipes-support/libexif/libexif_0.6.24.bb +++ b/meta/recipes-support/libexif/libexif_0.6.25.bb | |||
@@ -12,7 +12,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libexif-${PV}.tar.bz2 \ | |||
12 | file://run-ptest \ | 12 | file://run-ptest \ |
13 | " | 13 | " |
14 | 14 | ||
15 | SRC_URI[sha256sum] = "d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae" | 15 | SRC_URI[sha256sum] = "7c9eba99aed3e6594d8c3e85861f1c6aaf450c218621528bc989d3b3e7a26307" |
16 | 16 | ||
17 | inherit autotools gettext github-releases ptest | 17 | inherit autotools gettext github-releases ptest |
18 | 18 | ||
diff --git a/meta/recipes-support/libffi/libffi/not-win32.patch b/meta/recipes-support/libffi/libffi/not-win32.patch index f4ed839ed8..26263731f3 100644 --- a/meta/recipes-support/libffi/libffi/not-win32.patch +++ b/meta/recipes-support/libffi/libffi/not-win32.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From be9d4cc110c159812699780348686da371296b94 Mon Sep 17 00:00:00 2001 | 1 | From 28d0fd6b73163fc2dbc10c7dc838a8222671f88c Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@intel.com> | 2 | From: Ross Burton <ross.burton@intel.com> |
3 | Date: Thu, 4 Feb 2016 16:22:50 +0000 | 3 | Date: Thu, 4 Feb 2016 16:22:50 +0000 |
4 | Subject: [PATCH] libffi: ensure sysroot paths are not in libffi.pc | 4 | Subject: [PATCH] libffi: ensure sysroot paths are not in libffi.pc |
@@ -20,10 +20,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com> | |||
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | 20 | 1 file changed, 1 insertion(+), 1 deletion(-) |
21 | 21 | ||
22 | diff --git a/configure.ac b/configure.ac | 22 | diff --git a/configure.ac b/configure.ac |
23 | index 816bfd6..e37c5a8 100644 | 23 | index 258107d..ef1a285 100644 |
24 | --- a/configure.ac | 24 | --- a/configure.ac |
25 | +++ b/configure.ac | 25 | +++ b/configure.ac |
26 | @@ -401,7 +401,7 @@ AC_ARG_ENABLE(multi-os-directory, | 26 | @@ -403,7 +403,7 @@ AC_ARG_ENABLE(multi-os-directory, |
27 | 27 | ||
28 | # These variables are only ever used when we cross-build to X86_WIN32. | 28 | # These variables are only ever used when we cross-build to X86_WIN32. |
29 | # And we only support this with GCC, so... | 29 | # And we only support this with GCC, so... |
diff --git a/meta/recipes-support/libffi/libffi_3.4.6.bb b/meta/recipes-support/libffi/libffi_3.5.1.bb index a6857a3981..be16008e0f 100644 --- a/meta/recipes-support/libffi/libffi_3.4.6.bb +++ b/meta/recipes-support/libffi/libffi_3.5.1.bb | |||
@@ -8,12 +8,12 @@ library really only provides the lowest, machine dependent layer of a fully feat | |||
8 | A layer must exist above `libffi' that handles type conversions for values passed between the two languages." | 8 | A layer must exist above `libffi' that handles type conversions for values passed between the two languages." |
9 | 9 | ||
10 | LICENSE = "MIT" | 10 | LICENSE = "MIT" |
11 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1db54c9fd307a12218766c3c7f650ca7" | 11 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ce4763670c5b7756000561f9af1ab178" |
12 | 12 | ||
13 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BPN}-${PV}.tar.gz \ | 13 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BPN}-${PV}.tar.gz \ |
14 | file://not-win32.patch \ | 14 | file://not-win32.patch \ |
15 | " | 15 | " |
16 | SRC_URI[sha256sum] = "b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e" | 16 | SRC_URI[sha256sum] = "f99eb68a67c7d54866b7706af245e87ba060d419a062474b456d3bc8d4abdbd1" |
17 | 17 | ||
18 | EXTRA_OECONF += "--disable-builddir --disable-exec-static-tramp" | 18 | EXTRA_OECONF += "--disable-builddir --disable-exec-static-tramp" |
19 | EXTRA_OECONF:class-native += "--with-gcc-arch=generic" | 19 | EXTRA_OECONF:class-native += "--with-gcc-arch=generic" |
diff --git a/meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch b/meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch deleted file mode 100644 index 69a51d5662..0000000000 --- a/meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | From c320799c941d42a9b7e351805359694ea3b36d2d Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sun, 5 Apr 2015 09:08:38 -0700 | ||
4 | Subject: [PATCH] nls.m4: Take it from gettext-0.15 | ||
5 | |||
6 | It otherwise expects gettext to provide it. Lets go independent | ||
7 | |||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | --- | ||
12 | m4/nls.m4 | 30 ++++++++++++++++++++++++++++++ | ||
13 | 1 file changed, 30 insertions(+) | ||
14 | create mode 100644 m4/nls.m4 | ||
15 | |||
16 | diff --git a/m4/nls.m4 b/m4/nls.m4 | ||
17 | new file mode 100644 | ||
18 | index 0000000..2c8fe69 | ||
19 | --- /dev/null | ||
20 | +++ b/m4/nls.m4 | ||
21 | @@ -0,0 +1,30 @@ | ||
22 | +dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. | ||
23 | +dnl This file is free software; the Free Software Foundation | ||
24 | +dnl gives unlimited permission to copy and/or distribute it, | ||
25 | +dnl with or without modifications, as long as this notice is preserved. | ||
26 | +dnl | ||
27 | +dnl This file can can be used in projects which are not available under | ||
28 | +dnl the GNU General Public License or the GNU Library General Public | ||
29 | +dnl License but which still want to provide support for the GNU gettext | ||
30 | +dnl functionality. | ||
31 | +dnl Please note that the actual code of the GNU gettext library is covered | ||
32 | +dnl by the GNU Library General Public License, and the rest of the GNU | ||
33 | +dnl gettext package package is covered by the GNU General Public License. | ||
34 | +dnl They are not in the public domain. | ||
35 | + | ||
36 | +dnl Authors: | ||
37 | +dnl Ulrich Drepper drepper@cygnus.com, 1995-2000. | ||
38 | +dnl Bruno Haible haible@clisp.cons.org, 2000-2003. | ||
39 | + | ||
40 | +AC_PREREQ(2.50) | ||
41 | + | ||
42 | +AC_DEFUN([AM_NLS], | ||
43 | +[ | ||
44 | +AC_MSG_CHECKING([whether NLS is requested]) | ||
45 | +dnl Default is enabled NLS | ||
46 | +AC_ARG_ENABLE(nls, | ||
47 | +[ --disable-nls do not use Native Language Support], | ||
48 | +USE_NLS=$enableval, USE_NLS=yes) | ||
49 | +AC_MSG_RESULT($USE_NLS) | ||
50 | +AC_SUBST(USE_NLS) | ||
51 | +]) | ||
52 | -- | ||
53 | 2.1.4 | ||
54 | |||
diff --git a/meta/recipes-support/libfm/libfm-extra_1.3.2.bb b/meta/recipes-support/libfm/libfm-extra_1.3.2.bb index 79dd1d92dc..5bf2f0f502 100644 --- a/meta/recipes-support/libfm/libfm-extra_1.3.2.bb +++ b/meta/recipes-support/libfm/libfm-extra_1.3.2.bb | |||
@@ -8,16 +8,16 @@ LIC_FILES_CHKSUM = "file://src/fm-extra.h;beginline=8;endline=21;md5=ef1f84da64b | |||
8 | SECTION = "x11/libs" | 8 | SECTION = "x11/libs" |
9 | DEPENDS = "glib-2.0-native glib-2.0 intltool-native" | 9 | DEPENDS = "glib-2.0-native glib-2.0 intltool-native" |
10 | 10 | ||
11 | SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \ | 11 | SOURCEFORGE_PROJECT = "pcmanfm" |
12 | file://0001-nls.m4-Take-it-from-gettext-0.15.patch \ | 12 | SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/libfm-${PV}.tar.xz \ |
13 | " | 13 | " |
14 | 14 | ||
15 | SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" | 15 | SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" |
16 | 16 | ||
17 | S = "${WORKDIR}/libfm-${PV}" | 17 | S = "${UNPACKDIR}/libfm-${PV}" |
18 | 18 | ||
19 | EXTRA_OECONF = "--with-extra-only --with-gtk=no" | 19 | EXTRA_OECONF = "--with-extra-only --with-gtk=no" |
20 | 20 | ||
21 | inherit autotools pkgconfig gtk-doc gettext | 21 | inherit autotools pkgconfig gtk-doc gettext sourceforge-releases |
22 | 22 | ||
23 | do_configure[dirs] =+ "${S}/m4" | 23 | do_configure[dirs] =+ "${S}/m4" |
diff --git a/meta/recipes-support/libfm/libfm_1.3.2.bb b/meta/recipes-support/libfm/libfm_1.3.2.bb index 057c737029..ab29ce4b40 100644 --- a/meta/recipes-support/libfm/libfm_1.3.2.bb +++ b/meta/recipes-support/libfm/libfm_1.3.2.bb | |||
@@ -9,18 +9,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b \ | |||
9 | file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \ | 9 | file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \ |
10 | file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd" | 10 | file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd" |
11 | 11 | ||
12 | |||
13 | SECTION = "x11/libs" | 12 | SECTION = "x11/libs" |
14 | DEPENDS = "glib-2.0 glib-2.0-native pango gtk+3 menu-cache intltool-native libexif libfm-extra" | 13 | DEPENDS = "glib-2.0 glib-2.0-native pango gtk+3 menu-cache intltool-native libexif libfm-extra" |
15 | 14 | ||
16 | SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \ | 15 | SOURCEFORGE_PROJECT = "pcmanfm" |
16 | SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/libfm-${PV}.tar.xz \ | ||
17 | file://0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch \ | 17 | file://0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch \ |
18 | file://0001-Do-not-add-library-path-to-avoid-host-contamination.patch \ | 18 | file://0001-Do-not-add-library-path-to-avoid-host-contamination.patch \ |
19 | " | 19 | " |
20 | 20 | ||
21 | SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" | 21 | SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" |
22 | 22 | ||
23 | inherit autotools pkgconfig gtk-doc gettext features_check mime mime-xdg | 23 | inherit autotools pkgconfig gtk-doc gettext features_check mime mime-xdg sourceforge-releases |
24 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" | 24 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" |
25 | 25 | ||
26 | EXTRA_OECONF = "--with-gtk=3" | 26 | EXTRA_OECONF = "--with-gtk=3" |
@@ -53,3 +53,7 @@ do_install:append () { | |||
53 | rm -f ${D}${libdir}/libfm-extra.a | 53 | rm -f ${D}${libdir}/libfm-extra.a |
54 | rm -f ${D}${libdir}/libfm-extra.la | 54 | rm -f ${D}${libdir}/libfm-extra.la |
55 | } | 55 | } |
56 | |||
57 | # http://errors.yoctoproject.org/Errors/Details/766924/ | ||
58 | # libfm-1.3.2/src/actions/action.c:2050:25: error: assignment to 'gchar **' {aka 'char **'} from incompatible pointer type 'const gchar * const*' {aka 'const char * const*'} [-Wincompatible-pointer-types] | ||
59 | CFLAGS += "-Wno-error=incompatible-pointer-types" | ||
diff --git a/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch b/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch index cbfa30f0ad..7b840644d4 100644 --- a/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch +++ b/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From bcfd89abdb5110b93314297120412d4c7f2da313 Mon Sep 17 00:00:00 2001 | 1 | From fcb53181b18c00083a8b08625db74829cfd6b4b2 Mon Sep 17 00:00:00 2001 |
2 | From: Trevor Gamblin <trevor.gamblin@windriver.com> | 2 | From: Trevor Gamblin <trevor.gamblin@windriver.com> |
3 | Date: Tue, 29 Oct 2019 14:08:32 -0400 | 3 | Date: Tue, 29 Oct 2019 14:08:32 -0400 |
4 | Subject: [PATCH] libgcrypt: fix m4 file for oe-core | 4 | Subject: [PATCH] libgcrypt: fix m4 file for oe-core |
@@ -11,19 +11,18 @@ settings. | |||
11 | Upstream-Status: Inappropriate [oe-specific] | 11 | Upstream-Status: Inappropriate [oe-specific] |
12 | 12 | ||
13 | Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> | 13 | Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> |
14 | |||
15 | --- | 14 | --- |
16 | src/libgcrypt.m4 | 90 +++--------------------------------------------- | 15 | src/libgcrypt.m4 | 90 +++--------------------------------------------- |
17 | 1 file changed, 4 insertions(+), 86 deletions(-) | 16 | 1 file changed, 4 insertions(+), 86 deletions(-) |
18 | 17 | ||
19 | diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 | 18 | diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 |
20 | index cd4249e..e53a36f 100644 | 19 | index 353df81..b195e22 100644 |
21 | --- a/src/libgcrypt.m4 | 20 | --- a/src/libgcrypt.m4 |
22 | +++ b/src/libgcrypt.m4 | 21 | +++ b/src/libgcrypt.m4 |
23 | @@ -29,41 +29,6 @@ dnl is added to the gpg_config_script_warn variable. | 22 | @@ -116,41 +116,6 @@ dnl |
24 | dnl | ||
25 | AC_DEFUN([AM_PATH_LIBGCRYPT], | 23 | AC_DEFUN([AM_PATH_LIBGCRYPT], |
26 | [ AC_REQUIRE([AC_CANONICAL_HOST]) | 24 | [ AC_REQUIRE([AC_CANONICAL_HOST])dnl |
25 | AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | ||
27 | - AC_ARG_WITH(libgcrypt-prefix, | 26 | - AC_ARG_WITH(libgcrypt-prefix, |
28 | - AS_HELP_STRING([--with-libgcrypt-prefix=PFX], | 27 | - AS_HELP_STRING([--with-libgcrypt-prefix=PFX], |
29 | - [prefix where LIBGCRYPT is installed (optional)]), | 28 | - [prefix where LIBGCRYPT is installed (optional)]), |
@@ -62,7 +61,7 @@ index cd4249e..e53a36f 100644 | |||
62 | 61 | ||
63 | tmp=ifelse([$1], ,1:1.2.0,$1) | 62 | tmp=ifelse([$1], ,1:1.2.0,$1) |
64 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | 63 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then |
65 | @@ -74,56 +39,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], | 64 | @@ -161,56 +126,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], |
66 | min_libgcrypt_version="$tmp" | 65 | min_libgcrypt_version="$tmp" |
67 | fi | 66 | fi |
68 | 67 | ||
@@ -122,7 +121,7 @@ index cd4249e..e53a36f 100644 | |||
122 | if test "$tmp" -gt 0 ; then | 121 | if test "$tmp" -gt 0 ; then |
123 | AC_MSG_CHECKING([LIBGCRYPT API version]) | 122 | AC_MSG_CHECKING([LIBGCRYPT API version]) |
124 | if test "$req_libgcrypt_api" -eq "$tmp" ; then | 123 | if test "$req_libgcrypt_api" -eq "$tmp" ; then |
125 | @@ -136,11 +58,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], | 124 | @@ -223,11 +145,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], |
126 | fi | 125 | fi |
127 | fi | 126 | fi |
128 | if test $ok = yes; then | 127 | if test $ok = yes; then |
@@ -135,7 +134,7 @@ index cd4249e..e53a36f 100644 | |||
135 | else | 134 | else |
136 | libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none` | 135 | libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none` |
137 | fi | 136 | fi |
138 | @@ -158,8 +78,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], | 137 | @@ -245,8 +165,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], |
139 | fi | 138 | fi |
140 | fi | 139 | fi |
141 | else | 140 | else |
diff --git a/meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch b/meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch new file mode 100644 index 0000000000..5ebc3831d4 --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 746dc1c3837546c1085102e546a83da8d1c773e1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Collin Funk <collin.funk1@gmail.com> | ||
3 | Date: Thu, 1 May 2025 22:20:58 -0700 | ||
4 | Subject: [PATCH] tests: Fix link errors for t-thread-local. | ||
5 | |||
6 | On platforms where pthread_create is not in libc t-thread-local fails to | ||
7 | link. Issue found on NetBSD 10.0. | ||
8 | * tests/Makefile.am (t_thread_local_LDADD): Add $(standard_ldadd), | ||
9 | $(GPG_ERROR_MT_LIBS), and @LDADD_FOR_TESTS_KLUDGE@. | ||
10 | (t_thread_local_CFLAGS): Add $(GPG_ERROR_MT_CFLAGS). | ||
11 | |||
12 | -- | ||
13 | |||
14 | Upstream-Status: Backport [793eda7b258a562757b51c96044b103b638f1a63] | ||
15 | GnuPG-bug-id: 7634 | ||
16 | Signed-off-by: Collin Funk <collin.funk1@gmail.com> | ||
17 | Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> | ||
18 | --- | ||
19 | tests/Makefile.am | 2 ++ | ||
20 | 1 file changed, 2 insertions(+) | ||
21 | |||
22 | diff --git a/tests/Makefile.am b/tests/Makefile.am | ||
23 | index 9a9e1c2c264a..b80f266f97c2 100644 | ||
24 | --- a/tests/Makefile.am | ||
25 | +++ b/tests/Makefile.am | ||
26 | @@ -94,6 +94,8 @@ t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ | ||
27 | testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ | ||
28 | t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ | ||
29 | t_lock_CFLAGS = $(GPG_ERROR_MT_CFLAGS) -lpthread | ||
30 | +t_thread_local_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ | ||
31 | +t_thread_local_CFLAGS = $(GPG_ERROR_MT_CFLAGS) -lpthread | ||
32 | testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE) | ||
33 | |||
34 | # Build a version of the test driver for the build platform. | ||
diff --git a/meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch b/meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch deleted file mode 100644 index cf9ebfb3e6..0000000000 --- a/meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | From 0f66e796a8522e1043dda03b88d5f6feae839d16 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
3 | Date: Wed, 16 Aug 2017 10:44:41 +0800 | ||
4 | Subject: [PATCH] libgcrypt: fix building error with '-O2' in sysroot path | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Characters like '-O2' or '-Ofast' will be replaced by '-O1' when | ||
9 | compiling cipher. | ||
10 | If we are cross compiling libgcrypt and sysroot contains such | ||
11 | characters, we would | ||
12 | get compile errors because the sysroot path has been modified. | ||
13 | |||
14 | Fix this by adding blank spaces before and after the original matching | ||
15 | pattern in the | ||
16 | sed command. | ||
17 | |||
18 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
19 | |||
20 | Rebase to 1.8.0 | ||
21 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
22 | |||
23 | --- | ||
24 | cipher/Makefile.am | 2 +- | ||
25 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
26 | |||
27 | diff --git a/cipher/Makefile.am b/cipher/Makefile.am | ||
28 | index c3d642b..88c883a 100644 | ||
29 | --- a/cipher/Makefile.am | ||
30 | +++ b/cipher/Makefile.am | ||
31 | @@ -153,7 +153,7 @@ gost-s-box: gost-s-box.c | ||
32 | |||
33 | |||
34 | if ENABLE_O_FLAG_MUNGING | ||
35 | -o_flag_munging = sed -e 's/-O\([2-9sgz][2-9sgz]*\)/-O1/' -e 's/-Ofast/-O1/g' | ||
36 | +o_flag_munging = sed -e 's/ -O\([2-9sgz][2-9sgz]*\) / -O1 /' -e 's/ -Ofast / -O1 /g' | ||
37 | else | ||
38 | o_flag_munging = cat | ||
39 | endif | ||
diff --git a/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch b/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch index 4233fa7877..ccf4e18910 100644 --- a/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch +++ b/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 9182bc2dc676858a823c477d8f45a578b8c4f69f Mon Sep 17 00:00:00 2001 | 1 | From c7a99e7a15f1f703ac90fc2a16b2c2115a66a996 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Sun, 12 Jun 2016 04:44:29 -0400 | 3 | Date: Sun, 12 Jun 2016 04:44:29 -0400 |
4 | Subject: [PATCH] tests/Makefile.am: fix undefined reference to | 4 | Subject: [PATCH] tests/Makefile.am: fix undefined reference to |
@@ -9,16 +9,15 @@ Add missing '-lpthread' to CFLAGS | |||
9 | Upstream-Status: Pending | 9 | Upstream-Status: Pending |
10 | 10 | ||
11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | 11 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
12 | |||
13 | --- | 12 | --- |
14 | tests/Makefile.am | 4 ++-- | 13 | tests/Makefile.am | 4 ++-- |
15 | 1 file changed, 2 insertions(+), 2 deletions(-) | 14 | 1 file changed, 2 insertions(+), 2 deletions(-) |
16 | 15 | ||
17 | diff --git a/tests/Makefile.am b/tests/Makefile.am | 16 | diff --git a/tests/Makefile.am b/tests/Makefile.am |
18 | index e6953fd..f47e1d3 100644 | 17 | index 3170a58..9a9e1c2 100644 |
19 | --- a/tests/Makefile.am | 18 | --- a/tests/Makefile.am |
20 | +++ b/tests/Makefile.am | 19 | +++ b/tests/Makefile.am |
21 | @@ -76,7 +76,7 @@ t_mpi_bit_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ | 20 | @@ -93,7 +93,7 @@ t_mpi_bit_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ |
22 | t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ | 21 | t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ |
23 | testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ | 22 | testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ |
24 | t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ | 23 | t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ |
@@ -27,7 +26,7 @@ index e6953fd..f47e1d3 100644 | |||
27 | testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE) | 26 | testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE) |
28 | 27 | ||
29 | # Build a version of the test driver for the build platform. | 28 | # Build a version of the test driver for the build platform. |
30 | @@ -95,7 +95,7 @@ else | 29 | @@ -112,7 +112,7 @@ else |
31 | xtestsuite_libs = ../src/.libs/libgcrypt.so* | 30 | xtestsuite_libs = ../src/.libs/libgcrypt.so* |
32 | xtestsuite_driver = testdrv | 31 | xtestsuite_driver = testdrv |
33 | t_kdf_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ | 32 | t_kdf_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ |
diff --git a/meta/recipes-support/libgcrypt/files/no-bench-slope.patch b/meta/recipes-support/libgcrypt/files/no-bench-slope.patch index 8de3c6713b..44aac1913e 100644 --- a/meta/recipes-support/libgcrypt/files/no-bench-slope.patch +++ b/meta/recipes-support/libgcrypt/files/no-bench-slope.patch | |||
@@ -1,3 +1,8 @@ | |||
1 | From eb3a5bc4d5a212da64c0f9396c7f31f83aa6f36c Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Fri, 9 Sep 2022 11:13:37 +0100 | ||
4 | Subject: [PATCH] libgcrypt: disable bench-slope test case | ||
5 | |||
1 | The bench-slope test appears to be aborting fairly frequently, which causes | 6 | The bench-slope test appears to be aborting fairly frequently, which causes |
2 | failures on the autobuilder. | 7 | failures on the autobuilder. |
3 | 8 | ||
@@ -5,16 +10,19 @@ Until this has been root-caused, disable the test. | |||
5 | 10 | ||
6 | Upstream-Status: Inappropriate | 11 | Upstream-Status: Inappropriate |
7 | Signed-off-by: Ross Burton <ross.burton@arm.com> | 12 | Signed-off-by: Ross Burton <ross.burton@arm.com> |
13 | --- | ||
14 | tests/testdrv.c | 1 - | ||
15 | 1 file changed, 1 deletion(-) | ||
8 | 16 | ||
9 | diff --git a/tests/testdrv.c b/tests/testdrv.c | 17 | diff --git a/tests/testdrv.c b/tests/testdrv.c |
10 | index 0ccde326..d3455186 100644 | 18 | index 634b718..1e9dddb 100644 |
11 | --- a/tests/testdrv.c | 19 | --- a/tests/testdrv.c |
12 | +++ b/tests/testdrv.c | 20 | +++ b/tests/testdrv.c |
13 | @@ -77,7 +77,6 @@ static struct { | 21 | @@ -76,7 +76,6 @@ static struct { |
14 | { "t-x448" }, | 22 | { "t-x448" }, |
15 | { "t-ed448" }, | 23 | { "t-ed448" }, |
16 | { "benchmark" }, | 24 | { "benchmark" }, |
17 | - { "bench-slope" }, | 25 | - { "bench-slope" }, |
18 | { "hashtest-256g", "hashtest", "--gigs 256 SHA1 SHA256 SHA512 SM3", | 26 | { "hashtest-6g", "hashtest", "--hugeblock --gigs 6 SHA1 SHA256 SHA512 " |
19 | LONG_RUNNING }, | 27 | "SHA3-512 SM3 BLAKE2S_256 " |
20 | { NULL } | 28 | "BLAKE2B_512 CRC32 " |
diff --git a/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch b/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch index b9a607863d..98874ce12a 100644 --- a/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch +++ b/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch | |||
@@ -1,11 +1,19 @@ | |||
1 | From ede03b847038afc294e206ca345d12d75bbba844 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Fri, 26 Aug 2022 15:23:37 +0100 | ||
4 | Subject: [PATCH] libgcrypt: rewrite ptest | ||
5 | |||
1 | Don't depend on a native libgpg-error to build the test driver, as it's | 6 | Don't depend on a native libgpg-error to build the test driver, as it's |
2 | an optional dependency for some C annotations. | 7 | an optional dependency for some C annotations. |
3 | 8 | ||
4 | Upstream-Status: Inappropriate | 9 | Upstream-Status: Inappropriate |
5 | Signed-off-by: Ross Burton <ross.burton@arm.com> | 10 | Signed-off-by: Ross Burton <ross.burton@arm.com> |
11 | --- | ||
12 | tests/testdrv.c | 1 - | ||
13 | 1 file changed, 1 deletion(-) | ||
6 | 14 | ||
7 | diff --git a/tests/testdrv.c b/tests/testdrv.c | 15 | diff --git a/tests/testdrv.c b/tests/testdrv.c |
8 | index 0ccde326..6d6abd57 100644 | 16 | index bfca4c2..634b718 100644 |
9 | --- a/tests/testdrv.c | 17 | --- a/tests/testdrv.c |
10 | +++ b/tests/testdrv.c | 18 | +++ b/tests/testdrv.c |
11 | @@ -32,7 +32,6 @@ | 19 | @@ -32,7 +32,6 @@ |
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.11.1.bb index 5a76201ab5..14cbe53647 100644 --- a/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb +++ b/meta/recipes-support/libgcrypt/libgcrypt_1.11.1.bb | |||
@@ -6,14 +6,13 @@ HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" | |||
6 | BUGTRACKER = "https://bugs.g10code.com/gnupg/index" | 6 | BUGTRACKER = "https://bugs.g10code.com/gnupg/index" |
7 | SECTION = "libs" | 7 | SECTION = "libs" |
8 | 8 | ||
9 | # helper program gcryptrnd and getrandom are under GPL, rest LGPL | 9 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause" |
10 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" | 10 | LICENSE:${PN} = "LGPL-2.1-or-later & BSD-3-Clause" |
11 | LICENSE:${PN} = "LGPL-2.1-or-later" | ||
12 | LICENSE:${PN}-dev = "GPL-2.0-or-later & LGPL-2.1-or-later" | 11 | LICENSE:${PN}-dev = "GPL-2.0-or-later & LGPL-2.1-or-later" |
13 | 12 | ||
14 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | 13 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ |
15 | file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ | 14 | file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ |
16 | file://LICENSES;md5=ef545b6cc717747072616519a1256d69 \ | 15 | file://LICENSES;md5=034b4e369944ad4b52a68368f1cf98b8 \ |
17 | " | 16 | " |
18 | 17 | ||
19 | DEPENDS = "libgpg-error" | 18 | DEPENDS = "libgpg-error" |
@@ -21,18 +20,20 @@ DEPENDS = "libgpg-error" | |||
21 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | 20 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" |
22 | SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ | 21 | SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ |
23 | file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ | 22 | file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ |
24 | file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ | ||
25 | file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ | 23 | file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ |
24 | file://0001-tests-Fix-link-errors-for-t-thread-local.patch \ | ||
26 | file://no-native-gpg-error.patch \ | 25 | file://no-native-gpg-error.patch \ |
27 | file://no-bench-slope.patch \ | 26 | file://no-bench-slope.patch \ |
28 | file://run-ptest \ | 27 | file://run-ptest \ |
29 | " | 28 | " |
30 | SRC_URI[sha256sum] = "8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa" | 29 | SRC_URI[sha256sum] = "24e91c9123a46c54e8371f3a3a2502f1198f2893fbfbf59af95bc1c21499b00e" |
31 | 30 | ||
32 | BINCONFIG = "${bindir}/libgcrypt-config" | 31 | BINCONFIG = "${bindir}/libgcrypt-config" |
33 | 32 | ||
34 | inherit autotools texinfo binconfig-disabled pkgconfig ptest | 33 | inherit autotools texinfo binconfig-disabled pkgconfig ptest |
35 | 34 | ||
35 | require recipes-support/gnupg/drop-unknown-suffix.inc | ||
36 | |||
36 | EXTRA_OECONF = "--disable-asm" | 37 | EXTRA_OECONF = "--disable-asm" |
37 | EXTRA_OEMAKE:class-target = "LIBTOOLFLAGS='--tag=CC'" | 38 | EXTRA_OEMAKE:class-target = "LIBTOOLFLAGS='--tag=CC'" |
38 | 39 | ||
diff --git a/meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch b/meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch new file mode 100644 index 0000000000..ae48524e0d --- /dev/null +++ b/meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 8ca35649c33d0d2fcdcd573ce6a9edd91c77e4da Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Tue, 7 Jan 2025 18:56:19 +0100 | ||
4 | Subject: [PATCH] src/libgit2/CMakeLists.txt: install cmake files into | ||
5 | configured libdir | ||
6 | |||
7 | libdir can be something else than /usr/lib, e.g. /usr/lib64 or similar. | ||
8 | |||
9 | Upstream-Status: Submitted [https://github.com/libgit2/libgit2/pull/7004] | ||
10 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
11 | --- | ||
12 | src/libgit2/CMakeLists.txt | 4 ++-- | ||
13 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt | ||
16 | index a7d3c7ca4..16b3a23d9 100644 | ||
17 | --- a/src/libgit2/CMakeLists.txt | ||
18 | +++ b/src/libgit2/CMakeLists.txt | ||
19 | @@ -119,11 +119,11 @@ configure_file(config.cmake.in | ||
20 | install(FILES | ||
21 | "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake" | ||
22 | "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" | ||
23 | - DESTINATION "lib/cmake/${PROJECT_NAME}") | ||
24 | + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") | ||
25 | install( | ||
26 | EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME} | ||
27 | NAMESPACE "${PROJECT_NAME}::" | ||
28 | - DESTINATION "lib/cmake/${PROJECT_NAME}") | ||
29 | + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") | ||
30 | |||
31 | # Install | ||
32 | |||
diff --git a/meta/recipes-support/libgit2/libgit2_1.7.2.bb b/meta/recipes-support/libgit2/libgit2_1.9.0.bb index d1629c0c0b..66ec62f17a 100644 --- a/meta/recipes-support/libgit2/libgit2_1.7.2.bb +++ b/meta/recipes-support/libgit2/libgit2_1.9.0.bb | |||
@@ -1,14 +1,14 @@ | |||
1 | SUMMARY = "the Git linkable library" | 1 | SUMMARY = "the Git linkable library" |
2 | HOMEPAGE = "http://libgit2.github.com/" | 2 | HOMEPAGE = "http://libgit2.github.com/" |
3 | LICENSE = "GPL-2.0-with-GCC-exception & MIT & OpenSSL & BSD-3-Clause & Zlib & ISC & LGPL-2.1-or-later & CC0-1.0 & BSD-2-Clause" | 3 | LICENSE = "GPL-2.0-with-GCC-exception & MIT & OpenSSL & BSD-3-Clause & Zlib & ISC & LGPL-2.1-or-later & CC0-1.0 & BSD-2-Clause" |
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=5bdf47bbc9a39dc6ce076d59e322dc17" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=8eacfdc17c8f4d219e131a073973b97d" |
5 | 5 | ||
6 | DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2" | 6 | DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2" |
7 | 7 | ||
8 | SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v1.7;protocol=https" | 8 | SRC_URI = "git://github.com/libgit2/libgit2.git;branch=main;protocol=https \ |
9 | SRCREV = "a418d9d4ab87bae16b87d8f37143a4687ae0e4b2" | 9 | file://0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch \ |
10 | 10 | " | |
11 | S = "${WORKDIR}/git" | 11 | SRCREV = "338e6fb681369ff0537719095e22ce9dc602dbf0" |
12 | 12 | ||
13 | inherit cmake | 13 | inherit cmake |
14 | 14 | ||
@@ -19,3 +19,7 @@ EXTRA_OECMAKE = "\ | |||
19 | " | 19 | " |
20 | 20 | ||
21 | BBCLASSEXTEND = "native" | 21 | BBCLASSEXTEND = "native" |
22 | |||
23 | do_install:append() { | ||
24 | sed -i -e 's,${RECIPE_SYSROOT},,g' ${D}${libdir}/cmake/libgit2/libgit2Targets.cmake | ||
25 | } | ||
diff --git a/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch b/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch index d72838bb05..39798c009f 100644 --- a/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch +++ b/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 75622f8b21459eb556b36edc3537fdaded7f04bf Mon Sep 17 00:00:00 2001 | 1 | From b1b6c28b4753c027052aeb6275a73eed06f0bf49 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Fri, 28 Feb 2020 09:19:56 +0000 | 3 | Date: Fri, 28 Feb 2020 09:19:56 +0000 |
4 | Subject: [PATCH] Do not fail when testing config scripts | 4 | Subject: [PATCH] Do not fail when testing config scripts |
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | |||
14 | 1 file changed, 1 deletion(-) | 14 | 1 file changed, 1 deletion(-) |
15 | 15 | ||
16 | diff --git a/src/Makefile.am b/src/Makefile.am | 16 | diff --git a/src/Makefile.am b/src/Makefile.am |
17 | index 9389e99..6ded263 100644 | 17 | index e56bb23..8c3ba7b 100644 |
18 | --- a/src/Makefile.am | 18 | --- a/src/Makefile.am |
19 | +++ b/src/Makefile.am | 19 | +++ b/src/Makefile.am |
20 | @@ -324,6 +324,5 @@ gpg-error-config: gpgrt-config gpg-error-config-old gpg-error-config-test.sh | 20 | @@ -326,6 +326,5 @@ gpg-error-config: gpgrt-config gpg-error-config-old gpg-error-config-test.sh |
21 | else \ | 21 | else \ |
22 | echo "no"; \ | 22 | echo "no"; \ |
23 | echo "*** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log"; \ | 23 | echo "*** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log"; \ |
diff --git a/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch b/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch index 3d886bcaa4..dbf728b2de 100644 --- a/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch +++ b/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch | |||
@@ -1,6 +1,6 @@ | |||
1 | From b0df1cb468264a9bb9113524f0e1318c456b2348 Mon Sep 17 00:00:00 2001 | 1 | From 3529df77cd20253ce2a9c1962d7a72058a04fd98 Mon Sep 17 00:00:00 2001 |
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
3 | Date: Thu, 29 Mar 2018 15:12:17 +0800 | 3 | Date: Wed, 21 Aug 2024 20:03:29 -0700 |
4 | Subject: [PATCH] support pkgconfig | 4 | Subject: [PATCH] support pkgconfig |
5 | 5 | ||
6 | Upstream-Status: Inappropriate [gnupg upstream will not take this, it has been tried with other components] | 6 | Upstream-Status: Inappropriate [gnupg upstream will not take this, it has been tried with other components] |
@@ -13,15 +13,17 @@ Refactored for 1.33 | |||
13 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | 13 | Signed-off-by: Armin Kuster <akuster808@gmail.com> |
14 | Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> | 14 | Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> |
15 | 15 | ||
16 | Rebase to 1.50 | ||
17 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
16 | --- | 18 | --- |
17 | src/gpg-error.m4 | 192 ++--------------------------------------------- | 19 | src/gpg-error.m4 | 200 ++--------------------------------------------- |
18 | 1 file changed, 5 insertions(+), 187 deletions(-) | 20 | 1 file changed, 5 insertions(+), 195 deletions(-) |
19 | 21 | ||
20 | diff --git a/src/gpg-error.m4 b/src/gpg-error.m4 | 22 | diff --git a/src/gpg-error.m4 b/src/gpg-error.m4 |
21 | index 7fa52b1..15a0859 100644 | 23 | index 2d24071..c561725 100644 |
22 | --- a/src/gpg-error.m4 | 24 | --- a/src/gpg-error.m4 |
23 | +++ b/src/gpg-error.m4 | 25 | +++ b/src/gpg-error.m4 |
24 | @@ -15,187 +15,14 @@ | 26 | @@ -15,196 +15,14 @@ |
25 | dnl | 27 | dnl |
26 | dnl Find gpg-error-config, for backward compatibility | 28 | dnl Find gpg-error-config, for backward compatibility |
27 | dnl | 29 | dnl |
@@ -135,17 +137,16 @@ index 7fa52b1..15a0859 100644 | |||
135 | - fi | 137 | - fi |
136 | - | 138 | - |
137 | - if test -n "$gpgrt_libdir"; then | 139 | - if test -n "$gpgrt_libdir"; then |
140 | - # Add the --libdir option to GPGRT_CONFIG | ||
138 | - GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir" | 141 | - GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir" |
139 | - if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then | 142 | - # Make sure if gpgrt-config really works, by testing config gpg-error |
140 | - GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error" | 143 | - if ! $GPGRT_CONFIG gpg-error --exists; then |
141 | - AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) | 144 | - # If it doesn't work, clear the GPGRT_CONFIG variable. |
142 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` | ||
143 | - else | ||
144 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --version` | ||
145 | - unset GPGRT_CONFIG | 145 | - unset GPGRT_CONFIG |
146 | - fi | 146 | - fi |
147 | - elif test "$GPG_ERROR_CONFIG" != "no"; then | 147 | - else |
148 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --version` | 148 | - # GPGRT_CONFIG found but no suitable dir for --libdir found. |
149 | - # This is a failure. Clear the GPGRT_CONFIG variable. | ||
149 | - unset GPGRT_CONFIG | 150 | - unset GPGRT_CONFIG |
150 | - fi | 151 | - fi |
151 | -]) | 152 | -]) |
@@ -155,17 +156,27 @@ index 7fa52b1..15a0859 100644 | |||
155 | -dnl | 156 | -dnl |
156 | -dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS, | 157 | -dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS, |
157 | -dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are | 158 | -dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are |
158 | -dnl used for programs requireing real multi thread support. | 159 | -dnl used for programs requiring real multi thread support. |
159 | -dnl | 160 | -dnl |
160 | -dnl If a prefix option is not used, the config script is first | 161 | -dnl If a prefix option is not used, the config script is first |
161 | -dnl searched in $SYSROOT/bin and then along $PATH. If the used | 162 | -dnl searched in $SYSROOT/bin and then along $PATH. If the used |
162 | -dnl config script does not match the host specification the script | 163 | -dnl config script does not match the host specification the script |
163 | -dnl is added to the gpg_config_script_warn variable. | 164 | -dnl is added to the gpg_config_script_warn variable. |
164 | -dnl | 165 | -dnl |
165 | -AC_DEFUN([AM_PATH_GPG_ERROR],[dnl | 166 | AC_DEFUN([AM_PATH_GPG_ERROR], |
166 | -AC_REQUIRE([AC_CANONICAL_HOST])dnl | 167 | -[ AC_REQUIRE([AC_CANONICAL_HOST])dnl |
167 | -AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl | 168 | - AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl |
168 | -AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | 169 | - AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl |
170 | - if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then | ||
171 | - GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error" | ||
172 | - AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) | ||
173 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` | ||
174 | - elif test x"$GPG_ERROR_CONFIG" != x -a "$GPG_ERROR_CONFIG" != "no"; then | ||
175 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --version` | ||
176 | - else | ||
177 | - gpg_error_config_version="0.0" | ||
178 | - fi | ||
179 | - | ||
169 | - min_gpg_error_version=ifelse([$1], ,1.33,$1) | 180 | - min_gpg_error_version=ifelse([$1], ,1.33,$1) |
170 | - ok=no | 181 | - ok=no |
171 | - if test "$GPG_ERROR_CONFIG" != "no"; then | 182 | - if test "$GPG_ERROR_CONFIG" != "no"; then |
@@ -188,7 +199,6 @@ index 7fa52b1..15a0859 100644 | |||
188 | - fi | 199 | - fi |
189 | - fi | 200 | - fi |
190 | - AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) | 201 | - AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) |
191 | +AC_DEFUN([AM_PATH_GPG_ERROR], | ||
192 | +[ AC_REQUIRE([AC_CANONICAL_HOST]) | 202 | +[ AC_REQUIRE([AC_CANONICAL_HOST]) |
193 | + min_gpg_error_version=ifelse([$1], ,0.0,$1) | 203 | + min_gpg_error_version=ifelse([$1], ,0.0,$1) |
194 | + PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version], [ok=yes], [ok=no]) | 204 | + PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version], [ok=yes], [ok=no]) |
@@ -214,7 +224,7 @@ index 7fa52b1..15a0859 100644 | |||
214 | fi | 224 | fi |
215 | if test x"$gpg_error_config_host" != xnone ; then | 225 | if test x"$gpg_error_config_host" != xnone ; then |
216 | if test x"$gpg_error_config_host" != x"$host" ; then | 226 | if test x"$gpg_error_config_host" != x"$host" ; then |
217 | @@ -211,15 +38,6 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | 227 | @@ -220,15 +38,7 @@ AC_DEFUN([AM_PATH_GPG_ERROR], |
218 | fi | 228 | fi |
219 | fi | 229 | fi |
220 | else | 230 | else |
@@ -230,3 +240,4 @@ index 7fa52b1..15a0859 100644 | |||
230 | - AC_SUBST(GPG_ERROR_MT_CFLAGS) | 240 | - AC_SUBST(GPG_ERROR_MT_CFLAGS) |
231 | - AC_SUBST(GPG_ERROR_MT_LIBS) | 241 | - AC_SUBST(GPG_ERROR_MT_LIBS) |
232 | ]) | 242 | ]) |
243 | + | ||
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.48.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb index 9f2b49209d..7de52314a4 100644 --- a/meta/recipes-support/libgpg-error/libgpg-error_1.48.bb +++ b/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb | |||
@@ -6,11 +6,10 @@ BUGTRACKER = "https://bugs.g10code.com/gnupg/index" | |||
6 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" | 6 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ |
8 | file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | 8 | file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ |
9 | file://src/gpg-error.h.in;beginline=2;endline=18;md5=20f4cf5d81ea2fad18f6297500018654 \ | 9 | file://src/gpg-error.h.in;beginline=2;endline=18;md5=badc79a9308e1cbd2657b2441c7cf017 \ |
10 | file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \ | 10 | file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \ |
11 | " | 11 | " |
12 | 12 | ||
13 | |||
14 | SECTION = "libs" | 13 | SECTION = "libs" |
15 | 14 | ||
16 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | 15 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" |
@@ -20,12 +19,14 @@ SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \ | |||
20 | file://run-ptest \ | 19 | file://run-ptest \ |
21 | " | 20 | " |
22 | 21 | ||
23 | SRC_URI[sha256sum] = "89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f" | 22 | SRC_URI[sha256sum] = "95b178148863f07d45df0cea67e880a79b9ef71f5d230baddc0071128516ef78" |
24 | 23 | ||
25 | BINCONFIG = "${bindir}/gpg-error-config" | 24 | BINCONFIG = "${bindir}/gpg-error-config" |
26 | 25 | ||
27 | inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script ptest | 26 | inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script ptest |
28 | 27 | ||
28 | require recipes-support/gnupg/drop-unknown-suffix.inc | ||
29 | |||
29 | RDEPENDS:${PN}-ptest:append = " make bash" | 30 | RDEPENDS:${PN}-ptest:append = " make bash" |
30 | 31 | ||
31 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config" | 32 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config" |
diff --git a/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch b/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch index 3841c060ee..0f0dadb4e4 100644 --- a/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch +++ b/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From c06d8a8990c996cbb854508a944202ba70ba7a7c Mon Sep 17 00:00:00 2001 | 1 | From 7b20ca7f24a4cac25998bfcc70eed75bf796816b Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Thu, 3 Mar 2022 20:10:04 -0800 | 3 | Date: Thu, 3 Mar 2022 20:10:04 -0800 |
4 | Subject: [PATCH] cmake: Do not export CC into gir compiler | 4 | Subject: [PATCH] cmake: Do not export CC into gir compiler |
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
15 | 1 file changed, 1 insertion(+), 2 deletions(-) | 15 | 1 file changed, 1 insertion(+), 2 deletions(-) |
16 | 16 | ||
17 | diff --git a/cmake/modules/GObjectIntrospectionMacros.cmake b/cmake/modules/GObjectIntrospectionMacros.cmake | 17 | diff --git a/cmake/modules/GObjectIntrospectionMacros.cmake b/cmake/modules/GObjectIntrospectionMacros.cmake |
18 | index 83aff931..d7d3f898 100644 | 18 | index 83aff93..d7d3f89 100644 |
19 | --- a/cmake/modules/GObjectIntrospectionMacros.cmake | 19 | --- a/cmake/modules/GObjectIntrospectionMacros.cmake |
20 | +++ b/cmake/modules/GObjectIntrospectionMacros.cmake | 20 | +++ b/cmake/modules/GObjectIntrospectionMacros.cmake |
21 | @@ -50,8 +50,7 @@ macro(gir_add_introspections introspections_girs) | 21 | @@ -50,8 +50,7 @@ macro(gir_add_introspections introspections_girs) |
@@ -28,6 +28,3 @@ index 83aff931..d7d3f898 100644 | |||
28 | ${GObjectIntrospection_SCANNER_ARGS} | 28 | ${GObjectIntrospection_SCANNER_ARGS} |
29 | --namespace=${_gir_namespace} | 29 | --namespace=${_gir_namespace} |
30 | --nsversion=${_gir_version} | 30 | --nsversion=${_gir_version} |
31 | -- | ||
32 | 2.35.1 | ||
33 | |||
diff --git a/meta/recipes-support/libical/libical_3.0.18.bb b/meta/recipes-support/libical/libical_3.0.20.bb index 040d23b69d..d62c88e347 100644 --- a/meta/recipes-support/libical/libical_3.0.18.bb +++ b/meta/recipes-support/libical/libical_3.0.20.bb | |||
@@ -15,7 +15,7 @@ SECTION = "libs" | |||
15 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ | 15 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ |
16 | file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \ | 16 | file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \ |
17 | " | 17 | " |
18 | SRC_URI[sha256sum] = "72b7dc1a5937533aee5a2baefc990983b66b141dd80d43b51f80aced4aae219c" | 18 | SRC_URI[sha256sum] = "e73de92f5a6ce84c1b00306446b290a2b08cdf0a80988eca0a2c9d5c3510b4c2" |
19 | 19 | ||
20 | inherit cmake pkgconfig gobject-introspection vala github-releases | 20 | inherit cmake pkgconfig gobject-introspection vala github-releases |
21 | 21 | ||
@@ -37,7 +37,8 @@ EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false" | |||
37 | EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper" | 37 | EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper" |
38 | EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper" | 38 | EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper" |
39 | EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen" | 39 | EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen" |
40 | EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}" | 40 | EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF', d)}" |
41 | EXTRA_OECMAKE:append:class-native = " -DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF" | ||
41 | 42 | ||
42 | # Tell the cross-libical where the tool it needs to build is | 43 | # Tell the cross-libical where the tool it needs to build is |
43 | EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake" | 44 | EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake" |
diff --git a/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb b/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb index 6cef8c068c..7890dfa5c7 100644 --- a/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb +++ b/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb | |||
@@ -5,13 +5,12 @@ stamp. It is a small-scale, yet fast entropy source that is viable in almost \ | |||
5 | all environments and on a lot of CPU architectures." | 5 | all environments and on a lot of CPU architectures." |
6 | HOMEPAGE = "http://www.chronox.de/jent.html" | 6 | HOMEPAGE = "http://www.chronox.de/jent.html" |
7 | LICENSE = "GPL-2.0-or-later | BSD-3-Clause" | 7 | LICENSE = "GPL-2.0-or-later | BSD-3-Clause" |
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=64a87180908540620ce364b5e69b3b03 \ | 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e01027c4ad1fe5a4768f8488c945d491 \ |
9 | file://LICENSE.gplv2;md5=eb723b61539feef013de476e68b5c50a \ | 9 | file://LICENSE.gplv2;md5=eb723b61539feef013de476e68b5c50a \ |
10 | file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \ | 10 | file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \ |
11 | " | 11 | " |
12 | SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https" | 12 | SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https;tag=v${PV}" |
13 | SRCREV = "4544e11320138ac02797af81766f4476a71bb09f" | 13 | SRCREV = "c90ff465dcdb6a6949542c72a26a8ab496daa8cb" |
14 | S = "${WORKDIR}/git" | ||
15 | 14 | ||
16 | do_configure[noexec] = "1" | 15 | do_configure[noexec] = "1" |
17 | 16 | ||
diff --git a/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch b/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch index bdb80ff34d..468fbd76f8 100644 --- a/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch +++ b/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From ca8174aa81d7bf364b33f7254a9e887735c4996d Mon Sep 17 00:00:00 2001 | 1 | From 46c0582d1087220e9404a14a851085b8f29773c4 Mon Sep 17 00:00:00 2001 |
2 | From: Chen Qi <Qi.Chen@windriver.com> | 2 | From: Chen Qi <Qi.Chen@windriver.com> |
3 | Date: Mon, 3 Dec 2012 18:17:31 +0800 | 3 | Date: Mon, 3 Dec 2012 18:17:31 +0800 |
4 | Subject: [PATCH] libksba: add pkgconfig support | 4 | Subject: [PATCH] libksba: add pkgconfig support |
@@ -10,19 +10,20 @@ This patch is rejected by upstream for the reason below: | |||
10 | They think pkgconfig adds no portability and maintaining them is not worthwhile. | 10 | They think pkgconfig adds no portability and maintaining them is not worthwhile. |
11 | 11 | ||
12 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | 12 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> |
13 | |||
14 | --- | 13 | --- |
15 | src/ksba.m4 | 90 +++-------------------------------------------------- | 14 | src/ksba.m4 | 93 +++-------------------------------------------------- |
16 | 1 file changed, 4 insertions(+), 86 deletions(-) | 15 | 1 file changed, 5 insertions(+), 88 deletions(-) |
17 | 16 | ||
18 | diff --git a/src/ksba.m4 b/src/ksba.m4 | 17 | diff --git a/src/ksba.m4 b/src/ksba.m4 |
19 | index 452c245..aa96255 100644 | 18 | index 80f0d38..8f8761a 100644 |
20 | --- a/src/ksba.m4 | 19 | --- a/src/ksba.m4 |
21 | +++ b/src/ksba.m4 | 20 | +++ b/src/ksba.m4 |
22 | @@ -23,37 +23,6 @@ dnl with a changed API. | 21 | @@ -107,39 +107,7 @@ dnl this features allows to prevent build against newer versions of libksba |
22 | dnl with a changed API. | ||
23 | dnl | 23 | dnl |
24 | AC_DEFUN([AM_PATH_KSBA], | 24 | AC_DEFUN([AM_PATH_KSBA], |
25 | [ AC_REQUIRE([AC_CANONICAL_HOST]) | 25 | -[ AC_REQUIRE([AC_CANONICAL_HOST])dnl |
26 | - AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | ||
26 | - dnl --with-libksba-prefix=PFX is the preferred name for this option, | 27 | - dnl --with-libksba-prefix=PFX is the preferred name for this option, |
27 | - dnl since that is consistent with how our three siblings use the directory/ | 28 | - dnl since that is consistent with how our three siblings use the directory/ |
28 | - dnl package name in --with-$dir_name-prefix=PFX. | 29 | - dnl package name in --with-$dir_name-prefix=PFX. |
@@ -54,10 +55,11 @@ index 452c245..aa96255 100644 | |||
54 | - if test -z "$use_gpgrt_config"; then | 55 | - if test -z "$use_gpgrt_config"; then |
55 | - AC_PATH_PROG(KSBA_CONFIG, ksba-config, no) | 56 | - AC_PATH_PROG(KSBA_CONFIG, ksba-config, no) |
56 | - fi | 57 | - fi |
58 | +[ AC_REQUIRE([AC_CANONICAL_HOST]) | ||
57 | 59 | ||
58 | tmp=ifelse([$1], ,1:1.0.0,$1) | 60 | tmp=ifelse([$1], ,1:1.0.0,$1) |
59 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | 61 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then |
60 | @@ -64,56 +33,13 @@ AC_DEFUN([AM_PATH_KSBA], | 62 | @@ -150,56 +118,13 @@ AC_DEFUN([AM_PATH_KSBA], |
61 | min_ksba_version="$tmp" | 63 | min_ksba_version="$tmp" |
62 | fi | 64 | fi |
63 | 65 | ||
@@ -117,7 +119,7 @@ index 452c245..aa96255 100644 | |||
117 | if test "$tmp" -gt 0 ; then | 119 | if test "$tmp" -gt 0 ; then |
118 | AC_MSG_CHECKING([KSBA API version]) | 120 | AC_MSG_CHECKING([KSBA API version]) |
119 | if test "$req_ksba_api" -eq "$tmp" ; then | 121 | if test "$req_ksba_api" -eq "$tmp" ; then |
120 | @@ -126,14 +52,8 @@ AC_DEFUN([AM_PATH_KSBA], | 122 | @@ -212,14 +137,8 @@ AC_DEFUN([AM_PATH_KSBA], |
121 | fi | 123 | fi |
122 | fi | 124 | fi |
123 | if test $ok = yes; then | 125 | if test $ok = yes; then |
@@ -133,7 +135,7 @@ index 452c245..aa96255 100644 | |||
133 | if test x"$libksba_config_host" != xnone ; then | 135 | if test x"$libksba_config_host" != xnone ; then |
134 | if test x"$libksba_config_host" != x"$host" ; then | 136 | if test x"$libksba_config_host" != x"$host" ; then |
135 | AC_MSG_WARN([[ | 137 | AC_MSG_WARN([[ |
136 | @@ -147,8 +67,6 @@ AC_DEFUN([AM_PATH_KSBA], | 138 | @@ -233,8 +152,6 @@ AC_DEFUN([AM_PATH_KSBA], |
137 | fi | 139 | fi |
138 | fi | 140 | fi |
139 | else | 141 | else |
diff --git a/meta/recipes-support/libksba/libksba_1.6.6.bb b/meta/recipes-support/libksba/libksba_1.6.7.bb index 2230a032f6..d97fa84977 100644 --- a/meta/recipes-support/libksba/libksba_1.6.6.bb +++ b/meta/recipes-support/libksba/libksba_1.6.7.bb | |||
@@ -20,11 +20,13 @@ BINCONFIG = "${bindir}/ksba-config" | |||
20 | 20 | ||
21 | inherit autotools binconfig-disabled pkgconfig texinfo | 21 | inherit autotools binconfig-disabled pkgconfig texinfo |
22 | 22 | ||
23 | require recipes-support/gnupg/drop-unknown-suffix.inc | ||
24 | |||
23 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | 25 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" |
24 | SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ | 26 | SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ |
25 | file://ksba-add-pkgconfig-support.patch" | 27 | file://ksba-add-pkgconfig-support.patch" |
26 | 28 | ||
27 | SRC_URI[sha256sum] = "5dec033d211559338838c0c4957c73dfdc3ee86f73977d6279640c9cd08ce6a4" | 29 | SRC_URI[sha256sum] = "cf72510b8ebb4eb6693eef765749d83677a03c79291a311040a5bfd79baab763" |
28 | 30 | ||
29 | do_configure:prepend () { | 31 | do_configure:prepend () { |
30 | # Else these could be used in preference to those in aclocal-copy | 32 | # Else these could be used in preference to those in aclocal-copy |
diff --git a/meta/recipes-support/libmpc/libmpc_1.3.1.bb b/meta/recipes-support/libmpc/libmpc_1.3.1.bb index ed57396c0a..b3853fc964 100644 --- a/meta/recipes-support/libmpc/libmpc_1.3.1.bb +++ b/meta/recipes-support/libmpc/libmpc_1.3.1.bb | |||
@@ -7,6 +7,6 @@ SRC_URI = "${GNU_MIRROR}/mpc/mpc-${PV}.tar.gz" | |||
7 | 7 | ||
8 | SRC_URI[sha256sum] = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8" | 8 | SRC_URI[sha256sum] = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8" |
9 | 9 | ||
10 | S = "${WORKDIR}/mpc-${PV}" | 10 | S = "${UNPACKDIR}/mpc-${PV}" |
11 | BBCLASSEXTEND = "native nativesdk" | 11 | BBCLASSEXTEND = "native nativesdk" |
12 | 12 | ||
diff --git a/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch b/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch new file mode 100644 index 0000000000..cc5e3890a1 --- /dev/null +++ b/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 9e45c8809fc4e0aa1dd2ec2ac3e57352049f1b92 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Tue, 20 Aug 2024 19:01:59 +0200 | ||
4 | Subject: [PATCH] tests/cksuite-all-netns.c: disable route_1 | ||
5 | |||
6 | This is a new test added in https://github.com/thom311/libnl/commit/49f7822961f5bc6b18cd2a2d3f3b8d2ab0896d3f | ||
7 | and while it passes on host Debian, it doesn't inside poky. | ||
8 | |||
9 | Investigation into why is proceeding slowly, and I'm simply | ||
10 | not skilled enough in AF_NETLINK, so let's disable until the | ||
11 | core reason for the fail is arrived at. | ||
12 | |||
13 | Upstream-Status: Inappropriate [fail reported and investigated at https://github.com/thom311/libnl/issues/399] | ||
14 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
15 | --- | ||
16 | tests/cksuite-all-netns.c | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/tests/cksuite-all-netns.c b/tests/cksuite-all-netns.c | ||
20 | index 5b9d3a5..b2fc46a 100644 | ||
21 | --- a/tests/cksuite-all-netns.c | ||
22 | +++ b/tests/cksuite-all-netns.c | ||
23 | @@ -341,7 +341,7 @@ Suite *make_nl_netns_suite(void) | ||
24 | nltst_netns_fixture_teardown); | ||
25 | tcase_add_test(tc, cache_and_clone); | ||
26 | tcase_add_loop_test(tc, test_create_iface, 0, 17); | ||
27 | - tcase_add_test(tc, route_1); | ||
28 | + //tcase_add_test(tc, route_1); | ||
29 | suite_add_tcase(suite, tc); | ||
30 | |||
31 | return suite; | ||
diff --git a/meta/recipes-support/libnl/libnl_3.9.0.bb b/meta/recipes-support/libnl/libnl_3.11.0.bb index db9d93e8cb..26c87dbb1c 100644 --- a/meta/recipes-support/libnl/libnl_3.9.0.bb +++ b/meta/recipes-support/libnl/libnl_3.11.0.bb | |||
@@ -4,7 +4,7 @@ APIs to netlink protocol based Linux kernel interfaces. libnl is the core \ | |||
4 | library implementing the fundamentals required to use the netlink protocol \ | 4 | library implementing the fundamentals required to use the netlink protocol \ |
5 | such as socket handling, message construction and parsing, and sending \ | 5 | such as socket handling, message construction and parsing, and sending \ |
6 | and receiving of data." | 6 | and receiving of data." |
7 | HOMEPAGE = "http://www.infradead.org/~tgr/libnl/" | 7 | HOMEPAGE = "https://github.com/thom311/libnl" |
8 | SECTION = "libs/network" | 8 | SECTION = "libs/network" |
9 | 9 | ||
10 | PE = "1" | 10 | PE = "1" |
@@ -16,9 +16,10 @@ DEPENDS = "flex-native bison-native" | |||
16 | 16 | ||
17 | SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \ | 17 | SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \ |
18 | file://run-ptest \ | 18 | file://run-ptest \ |
19 | file://0001-tests-cksuite-all-netns.c-disable-route_1.patch \ | ||
19 | " | 20 | " |
20 | 21 | ||
21 | SRC_URI[sha256sum] = "aed507004d728a5cf11eab48ca4bf9e6e1874444e33939b9d3dfed25018ee9bb" | 22 | SRC_URI[sha256sum] = "2a56e1edefa3e68a7c00879496736fdbf62fc94ed3232c0baba127ecfa76874d" |
22 | 23 | ||
23 | GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases" | 24 | GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases" |
24 | UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)" | 25 | UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)" |
@@ -52,6 +53,7 @@ RCONFLICTS:${PN}-genl = "libnl-genl2" | |||
52 | 53 | ||
53 | DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'libcheck', '', d)}" | 54 | DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'libcheck', '', d)}" |
54 | RRECOMMENDS:${PN}-ptest += "kernel-module-dummy kernel-module-bonding" | 55 | RRECOMMENDS:${PN}-ptest += "kernel-module-dummy kernel-module-bonding" |
56 | RDEPENDS:${PN}-ptest += "iproute2-ip" | ||
55 | 57 | ||
56 | do_compile_ptest() { | 58 | do_compile_ptest() { |
57 | oe_runmake ./tests/check-all | 59 | oe_runmake ./tests/check-all |
diff --git a/meta/recipes-support/libpcre/libpcre2_10.43.bb b/meta/recipes-support/libpcre/libpcre2_10.45.bb index fd0bd79212..4fbb8921c5 100644 --- a/meta/recipes-support/libpcre/libpcre2_10.43.bb +++ b/meta/recipes-support/libpcre/libpcre2_10.45.bb | |||
@@ -8,18 +8,18 @@ SUMMARY = "Perl Compatible Regular Expressions version 2" | |||
8 | HOMEPAGE = "http://www.pcre.org" | 8 | HOMEPAGE = "http://www.pcre.org" |
9 | SECTION = "devel" | 9 | SECTION = "devel" |
10 | LICENSE = "BSD-3-Clause" | 10 | LICENSE = "BSD-3-Clause" |
11 | LIC_FILES_CHKSUM = "file://LICENCE;md5=321a5eb46acae6b6c1ff2c7a866d836a" | 11 | LIC_FILES_CHKSUM = "file://LICENCE.md;md5=8446a1fd12e40d9d64c79234fbb1f812" |
12 | 12 | ||
13 | SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2" | 13 | SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2" |
14 | 14 | ||
15 | GITHUB_BASE_URI = "https://github.com/PhilipHazel/pcre2/releases" | 15 | GITHUB_BASE_URI = "https://github.com/PCRE2Project/pcre2/releases" |
16 | UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>\d+(\.\d+)+)$" | 16 | UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>\d+(\.\d+)+)$" |
17 | 17 | ||
18 | SRC_URI[sha256sum] = "e2a53984ff0b07dfdb5ae4486bbb9b21cca8e7df2434096cc9bf1b728c350bcb" | 18 | SRC_URI[sha256sum] = "21547f3516120c75597e5b30a992e27a592a31950b5140e7b8bfde3f192033c4" |
19 | 19 | ||
20 | CVE_PRODUCT = "pcre2" | 20 | CVE_PRODUCT = "pcre2" |
21 | 21 | ||
22 | S = "${WORKDIR}/pcre2-${PV}" | 22 | S = "${UNPACKDIR}/pcre2-${PV}" |
23 | 23 | ||
24 | PROVIDES += "pcre2" | 24 | PROVIDES += "pcre2" |
25 | DEPENDS += "bzip2 zlib" | 25 | DEPENDS += "bzip2 zlib" |
diff --git a/meta/recipes-support/libpcre/libpcre_8.45.bb b/meta/recipes-support/libpcre/libpcre_8.45.bb index 46fedbae48..67327065e4 100644 --- a/meta/recipes-support/libpcre/libpcre_8.45.bb +++ b/meta/recipes-support/libpcre/libpcre_8.45.bb | |||
@@ -7,7 +7,8 @@ HOMEPAGE = "http://www.pcre.org" | |||
7 | SECTION = "devel" | 7 | SECTION = "devel" |
8 | LICENSE = "BSD-3-Clause" | 8 | LICENSE = "BSD-3-Clause" |
9 | LIC_FILES_CHKSUM = "file://LICENCE;md5=b5d5d1a69a24ea2718263f1ff85a1c58" | 9 | LIC_FILES_CHKSUM = "file://LICENCE;md5=b5d5d1a69a24ea2718263f1ff85a1c58" |
10 | SRC_URI = "${SOURCEFORGE_MIRROR}/pcre/pcre-${PV}.tar.bz2 \ | 10 | SOURCEFORGE_PROJECT = "pcre" |
11 | SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/pcre-${PV}.tar.bz2 \ | ||
11 | file://run-ptest \ | 12 | file://run-ptest \ |
12 | file://Makefile \ | 13 | file://Makefile \ |
13 | " | 14 | " |
@@ -16,7 +17,7 @@ SRC_URI[sha256sum] = "4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e321 | |||
16 | 17 | ||
17 | CVE_PRODUCT = "pcre" | 18 | CVE_PRODUCT = "pcre" |
18 | 19 | ||
19 | S = "${WORKDIR}/pcre-${PV}" | 20 | S = "${UNPACKDIR}/pcre-${PV}" |
20 | 21 | ||
21 | PROVIDES += "pcre" | 22 | PROVIDES += "pcre" |
22 | DEPENDS += "bzip2 zlib" | 23 | DEPENDS += "bzip2 zlib" |
@@ -32,7 +33,7 @@ PACKAGECONFIG[jit] = "--enable-jit=auto,--disable-jit" | |||
32 | 33 | ||
33 | BINCONFIG = "${bindir}/pcre-config" | 34 | BINCONFIG = "${bindir}/pcre-config" |
34 | 35 | ||
35 | inherit autotools binconfig-disabled ptest | 36 | inherit autotools binconfig-disabled ptest sourceforge-releases |
36 | 37 | ||
37 | EXTRA_OECONF = "--enable-utf" | 38 | EXTRA_OECONF = "--enable-utf" |
38 | 39 | ||
@@ -56,7 +57,7 @@ BBCLASSEXTEND = "native nativesdk" | |||
56 | 57 | ||
57 | do_install_ptest() { | 58 | do_install_ptest() { |
58 | t=${D}${PTEST_PATH} | 59 | t=${D}${PTEST_PATH} |
59 | cp ${WORKDIR}/Makefile $t | 60 | cp ${UNPACKDIR}/Makefile $t |
60 | cp -r ${S}/testdata $t | 61 | cp -r ${S}/testdata $t |
61 | for i in pcre_stringpiece_unittest pcregrep pcretest; \ | 62 | for i in pcre_stringpiece_unittest pcregrep pcretest; \ |
62 | do cp ${B}/.libs/$i $t; \ | 63 | do cp ${B}/.libs/$i $t; \ |
diff --git a/meta/recipes-support/libproxy/libproxy_0.5.4.bb b/meta/recipes-support/libproxy/libproxy_0.5.10.bb index b4f4c6d254..21930ada00 100644 --- a/meta/recipes-support/libproxy/libproxy_0.5.4.bb +++ b/meta/recipes-support/libproxy/libproxy_0.5.10.bb | |||
@@ -13,9 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ | |||
13 | 13 | ||
14 | DEPENDS = "glib-2.0" | 14 | DEPENDS = "glib-2.0" |
15 | 15 | ||
16 | SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main" | 16 | SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main;tag=${PV}" |
17 | SRCREV = "dff9a603d823dcc740ec966cd27960daa6b891b1" | 17 | SRCREV = "7e4852f9658084c61a95973b8a1d720b1763437a" |
18 | S = "${WORKDIR}/git" | ||
19 | 18 | ||
20 | inherit meson pkgconfig gobject-introspection vala gi-docgen | 19 | inherit meson pkgconfig gobject-introspection vala gi-docgen |
21 | GIDOCGEN_MESON_OPTION = 'docs' | 20 | GIDOCGEN_MESON_OPTION = 'docs' |
diff --git a/meta/recipes-support/libseccomp/libseccomp_2.5.5.bb b/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb index 478e5f4289..97988afa27 100644 --- a/meta/recipes-support/libseccomp/libseccomp_2.5.5.bb +++ b/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb | |||
@@ -7,14 +7,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=7c13b3376cea0ce68d2d2da0a1b3a72c" | |||
7 | 7 | ||
8 | DEPENDS += "gperf-native" | 8 | DEPENDS += "gperf-native" |
9 | 9 | ||
10 | SRCREV = "f0b04ab0b4fc0bc2cde6da1f407b4a487fe6d78f" | 10 | SRCREV = "c7c0caed1d04292500ed4b9bb386566053eb9775" |
11 | 11 | ||
12 | SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.5;protocol=https \ | 12 | SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.6;protocol=https \ |
13 | file://run-ptest \ | 13 | file://run-ptest \ |
14 | " | 14 | " |
15 | 15 | ||
16 | S = "${WORKDIR}/git" | ||
17 | |||
18 | inherit autotools-brokensep pkgconfig ptest features_check | 16 | inherit autotools-brokensep pkgconfig ptest features_check |
19 | 17 | ||
20 | inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} | 18 | inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} |
diff --git a/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch b/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch deleted file mode 100644 index d867e5bc17..0000000000 --- a/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | From ced3c5d8cad0177b297666343f1561799dfefb0d Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Wed, 22 Nov 2023 18:49:10 -0800 | ||
4 | Subject: [PATCH] Fix build with libxml2-2.12.0 and clang-17 | ||
5 | |||
6 | Fixes build errors about missing function prototypes with clang-17 | ||
7 | |||
8 | Fixes | ||
9 | | ../libsoup-2.74.3/libsoup/soup-xmlrpc-old.c:512:8: error: call to undeclared function 'xmlParseMemory'; ISO C99 and later do not support implicit function declarations | ||
10 | |||
11 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/385] | ||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
13 | --- | ||
14 | libsoup/soup-xmlrpc-old.c | 1 + | ||
15 | libsoup/soup-xmlrpc.c | 1 + | ||
16 | 2 files changed, 2 insertions(+) | ||
17 | |||
18 | diff --git a/libsoup/soup-xmlrpc-old.c b/libsoup/soup-xmlrpc-old.c | ||
19 | index c57086b6..527e3b23 100644 | ||
20 | --- a/libsoup/soup-xmlrpc-old.c | ||
21 | +++ b/libsoup/soup-xmlrpc-old.c | ||
22 | @@ -11,6 +11,7 @@ | ||
23 | |||
24 | #include <string.h> | ||
25 | |||
26 | +#include <libxml/parser.h> | ||
27 | #include <libxml/tree.h> | ||
28 | |||
29 | #include "soup-xmlrpc-old.h" | ||
30 | diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c | ||
31 | index 42dcda9c..e991cbf0 100644 | ||
32 | --- a/libsoup/soup-xmlrpc.c | ||
33 | +++ b/libsoup/soup-xmlrpc.c | ||
34 | @@ -17,6 +17,7 @@ | ||
35 | |||
36 | #include <string.h> | ||
37 | #include <errno.h> | ||
38 | +#include <libxml/parser.h> | ||
39 | #include <libxml/tree.h> | ||
40 | #include "soup-xmlrpc.h" | ||
41 | #include "soup.h" | ||
42 | -- | ||
43 | 2.43.0 | ||
44 | |||
diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb deleted file mode 100644 index ee20530b64..0000000000 --- a/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | SUMMARY = "An HTTP library implementation in C" | ||
2 | DESCRIPTION = "libsoup is an HTTP client/server library for GNOME. It uses GObjects \ | ||
3 | and the glib main loop, to integrate well with GNOME applications." | ||
4 | HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup" | ||
5 | BUGTRACKER = "https://bugzilla.gnome.org/" | ||
6 | SECTION = "x11/gnome/libs" | ||
7 | LICENSE = "LGPL-2.0-only" | ||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" | ||
9 | |||
10 | DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl" | ||
11 | |||
12 | SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" | ||
13 | |||
14 | SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \ | ||
15 | file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch" | ||
16 | SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" | ||
17 | |||
18 | CVE_PRODUCT = "libsoup" | ||
19 | |||
20 | S = "${WORKDIR}/libsoup-${PV}" | ||
21 | |||
22 | inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc | ||
23 | |||
24 | UPSTREAM_CHECK_REGEX = "libsoup-(?P<pver>2(\.(?!99)\d+)+)\.tar" | ||
25 | |||
26 | GIR_MESON_ENABLE_FLAG = 'enabled' | ||
27 | GIR_MESON_DISABLE_FLAG = 'disabled' | ||
28 | |||
29 | PACKAGECONFIG ??= "" | ||
30 | PACKAGECONFIG[brotli] = "-Dbrotli=enabled,-Dbrotli=disabled,brotli" | ||
31 | # libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards | ||
32 | PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false" | ||
33 | PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5" | ||
34 | PACKAGECONFIG[ntlm] = "-Dntlm=enabled,-Dntlm=disabled" | ||
35 | PACKAGECONFIG[sysprof] = "-Dsysprof=enabled,-Dsysprof=disabled,sysprof" | ||
36 | |||
37 | # Tell libsoup where the target ntlm_auth is installed | ||
38 | do_write_config:append:class-target() { | ||
39 | cat >${WORKDIR}/soup.cross <<EOF | ||
40 | [binaries] | ||
41 | ntlm_auth = '${bindir}/ntlm_auth' | ||
42 | EOF | ||
43 | } | ||
44 | EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/soup.cross" | ||
45 | |||
46 | EXTRA_OEMESON += "-Dvapi=disabled -Dtls_check=false" | ||
47 | |||
48 | GTKDOC_MESON_OPTION = "gtk_doc" | ||
49 | |||
50 | # When built without gnome support, libsoup-2.4 will contain only one shared lib | ||
51 | # and will therefore become subject to renaming by debian.bbclass. Prevent | ||
52 | # renaming in order to keep the package name consistent regardless of whether | ||
53 | # gnome support is enabled or disabled. | ||
54 | DEBIAN_NOAUTONAME:${PN} = "1" | ||
55 | |||
56 | # glib-networking is needed for SSL, proxies, etc. | ||
57 | RRECOMMENDS:${PN} = "glib-networking" | ||
58 | |||
59 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-support/libsoup/libsoup_3.4.4.bb b/meta/recipes-support/libsoup/libsoup_3.6.5.bb index 6f7cac4cf8..29e45dfb97 100644 --- a/meta/recipes-support/libsoup/libsoup_3.4.4.bb +++ b/meta/recipes-support/libsoup/libsoup_3.6.5.bb | |||
@@ -12,12 +12,12 @@ DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl nghttp2" | |||
12 | SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" | 12 | SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" |
13 | 13 | ||
14 | SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz" | 14 | SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz" |
15 | SRC_URI[sha256sum] = "291c67725f36ed90ea43efff25064b69c5a2d1981488477c05c481a3b4b0c5aa" | 15 | SRC_URI[sha256sum] = "6891765aac3e949017945c3eaebd8cc8216df772456dc9f460976fbdb7ada234" |
16 | 16 | ||
17 | PROVIDES = "libsoup-3.0" | 17 | PROVIDES = "libsoup-3.0" |
18 | CVE_PRODUCT = "libsoup" | 18 | CVE_PRODUCT = "libsoup" |
19 | 19 | ||
20 | S = "${WORKDIR}/libsoup-${PV}" | 20 | S = "${UNPACKDIR}/libsoup-${PV}" |
21 | 21 | ||
22 | inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala | 22 | inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala |
23 | 23 | ||
diff --git a/meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch b/meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch deleted file mode 100644 index ab0f419ac5..0000000000 --- a/meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch +++ /dev/null | |||
@@ -1,466 +0,0 @@ | |||
1 | From d4634630432594b139b3af6b9f254b890c0f275d Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Buckley <michael@buckleyisms.com> | ||
3 | Date: Thu, 30 Nov 2023 15:08:02 -0800 | ||
4 | Subject: [PATCH] src: add 'strict KEX' to fix CVE-2023-48795 "Terrapin Attack" | ||
5 | |||
6 | Refs: | ||
7 | https://terrapin-attack.com/ | ||
8 | https://seclists.org/oss-sec/2023/q4/292 | ||
9 | https://osv.dev/list?ecosystem=&q=CVE-2023-48795 | ||
10 | https://github.com/advisories/GHSA-45x7-px36-x8w8 | ||
11 | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-48795 | ||
12 | |||
13 | Fixes #1290 | ||
14 | Closes #1291 | ||
15 | |||
16 | CVE: CVE-2023-48795 | ||
17 | Upstream-Status: Backport | ||
18 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
19 | --- | ||
20 | src/kex.c | 63 +++++++++++++++++++++++------------ | ||
21 | src/libssh2_priv.h | 18 +++++++--- | ||
22 | src/packet.c | 83 +++++++++++++++++++++++++++++++++++++++++++--- | ||
23 | src/packet.h | 2 +- | ||
24 | src/session.c | 3 ++ | ||
25 | src/transport.c | 12 ++++++- | ||
26 | 6 files changed, 149 insertions(+), 32 deletions(-) | ||
27 | |||
28 | diff --git a/src/kex.c b/src/kex.c | ||
29 | index d4034a0a..b4b748ca 100644 | ||
30 | --- a/src/kex.c | ||
31 | +++ b/src/kex.c | ||
32 | @@ -3037,6 +3037,13 @@ kex_method_extension_negotiation = { | ||
33 | 0, | ||
34 | }; | ||
35 | |||
36 | +static const LIBSSH2_KEX_METHOD | ||
37 | +kex_method_strict_client_extension = { | ||
38 | + "kex-strict-c-v00@openssh.com", | ||
39 | + NULL, | ||
40 | + 0, | ||
41 | +}; | ||
42 | + | ||
43 | static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = { | ||
44 | #if LIBSSH2_ED25519 | ||
45 | &kex_method_ssh_curve25519_sha256, | ||
46 | @@ -3055,6 +3062,7 @@ static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = { | ||
47 | &kex_method_diffie_helman_group1_sha1, | ||
48 | &kex_method_diffie_helman_group_exchange_sha1, | ||
49 | &kex_method_extension_negotiation, | ||
50 | + &kex_method_strict_client_extension, | ||
51 | NULL | ||
52 | }; | ||
53 | |||
54 | @@ -3307,13 +3315,13 @@ static int kexinit(LIBSSH2_SESSION * session) | ||
55 | return 0; | ||
56 | } | ||
57 | |||
58 | -/* kex_agree_instr | ||
59 | +/* _libssh2_kex_agree_instr | ||
60 | * Kex specific variant of strstr() | ||
61 | * Needle must be preceded by BOL or ',', and followed by ',' or EOL | ||
62 | */ | ||
63 | -static unsigned char * | ||
64 | -kex_agree_instr(unsigned char *haystack, size_t haystack_len, | ||
65 | - const unsigned char *needle, size_t needle_len) | ||
66 | +unsigned char * | ||
67 | +_libssh2_kex_agree_instr(unsigned char *haystack, size_t haystack_len, | ||
68 | + const unsigned char *needle, size_t needle_len) | ||
69 | { | ||
70 | unsigned char *s; | ||
71 | unsigned char *end_haystack; | ||
72 | @@ -3398,7 +3406,7 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session, | ||
73 | while(s && *s) { | ||
74 | unsigned char *p = (unsigned char *) strchr((char *) s, ','); | ||
75 | size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); | ||
76 | - if(kex_agree_instr(hostkey, hostkey_len, s, method_len)) { | ||
77 | + if(_libssh2_kex_agree_instr(hostkey, hostkey_len, s, method_len)) { | ||
78 | const LIBSSH2_HOSTKEY_METHOD *method = | ||
79 | (const LIBSSH2_HOSTKEY_METHOD *) | ||
80 | kex_get_method_by_name((char *) s, method_len, | ||
81 | @@ -3432,9 +3440,9 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session, | ||
82 | } | ||
83 | |||
84 | while(hostkeyp && (*hostkeyp) && (*hostkeyp)->name) { | ||
85 | - s = kex_agree_instr(hostkey, hostkey_len, | ||
86 | - (unsigned char *) (*hostkeyp)->name, | ||
87 | - strlen((*hostkeyp)->name)); | ||
88 | + s = _libssh2_kex_agree_instr(hostkey, hostkey_len, | ||
89 | + (unsigned char *) (*hostkeyp)->name, | ||
90 | + strlen((*hostkeyp)->name)); | ||
91 | if(s) { | ||
92 | /* So far so good, but does it suit our purposes? (Encrypting vs | ||
93 | Signing) */ | ||
94 | @@ -3468,6 +3476,12 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex, | ||
95 | { | ||
96 | const LIBSSH2_KEX_METHOD **kexp = libssh2_kex_methods; | ||
97 | unsigned char *s; | ||
98 | + const unsigned char *strict = | ||
99 | + (unsigned char *)"kex-strict-s-v00@openssh.com"; | ||
100 | + | ||
101 | + if(_libssh2_kex_agree_instr(kex, kex_len, strict, 28)) { | ||
102 | + session->kex_strict = 1; | ||
103 | + } | ||
104 | |||
105 | if(session->kex_prefs) { | ||
106 | s = (unsigned char *) session->kex_prefs; | ||
107 | @@ -3475,7 +3489,7 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex, | ||
108 | while(s && *s) { | ||
109 | unsigned char *q, *p = (unsigned char *) strchr((char *) s, ','); | ||
110 | size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); | ||
111 | - q = kex_agree_instr(kex, kex_len, s, method_len); | ||
112 | + q = _libssh2_kex_agree_instr(kex, kex_len, s, method_len); | ||
113 | if(q) { | ||
114 | const LIBSSH2_KEX_METHOD *method = (const LIBSSH2_KEX_METHOD *) | ||
115 | kex_get_method_by_name((char *) s, method_len, | ||
116 | @@ -3509,9 +3523,9 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex, | ||
117 | } | ||
118 | |||
119 | while(*kexp && (*kexp)->name) { | ||
120 | - s = kex_agree_instr(kex, kex_len, | ||
121 | - (unsigned char *) (*kexp)->name, | ||
122 | - strlen((*kexp)->name)); | ||
123 | + s = _libssh2_kex_agree_instr(kex, kex_len, | ||
124 | + (unsigned char *) (*kexp)->name, | ||
125 | + strlen((*kexp)->name)); | ||
126 | if(s) { | ||
127 | /* We've agreed on a key exchange method, | ||
128 | * Can we agree on a hostkey that works with this kex? | ||
129 | @@ -3555,7 +3569,7 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session, | ||
130 | unsigned char *p = (unsigned char *) strchr((char *) s, ','); | ||
131 | size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); | ||
132 | |||
133 | - if(kex_agree_instr(crypt, crypt_len, s, method_len)) { | ||
134 | + if(_libssh2_kex_agree_instr(crypt, crypt_len, s, method_len)) { | ||
135 | const LIBSSH2_CRYPT_METHOD *method = | ||
136 | (const LIBSSH2_CRYPT_METHOD *) | ||
137 | kex_get_method_by_name((char *) s, method_len, | ||
138 | @@ -3577,9 +3591,9 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session, | ||
139 | } | ||
140 | |||
141 | while(*cryptp && (*cryptp)->name) { | ||
142 | - s = kex_agree_instr(crypt, crypt_len, | ||
143 | - (unsigned char *) (*cryptp)->name, | ||
144 | - strlen((*cryptp)->name)); | ||
145 | + s = _libssh2_kex_agree_instr(crypt, crypt_len, | ||
146 | + (unsigned char *) (*cryptp)->name, | ||
147 | + strlen((*cryptp)->name)); | ||
148 | if(s) { | ||
149 | endpoint->crypt = *cryptp; | ||
150 | return 0; | ||
151 | @@ -3619,7 +3633,7 @@ static int kex_agree_mac(LIBSSH2_SESSION * session, | ||
152 | unsigned char *p = (unsigned char *) strchr((char *) s, ','); | ||
153 | size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); | ||
154 | |||
155 | - if(kex_agree_instr(mac, mac_len, s, method_len)) { | ||
156 | + if(_libssh2_kex_agree_instr(mac, mac_len, s, method_len)) { | ||
157 | const LIBSSH2_MAC_METHOD *method = (const LIBSSH2_MAC_METHOD *) | ||
158 | kex_get_method_by_name((char *) s, method_len, | ||
159 | (const LIBSSH2_COMMON_METHOD **) | ||
160 | @@ -3640,8 +3654,9 @@ static int kex_agree_mac(LIBSSH2_SESSION * session, | ||
161 | } | ||
162 | |||
163 | while(*macp && (*macp)->name) { | ||
164 | - s = kex_agree_instr(mac, mac_len, (unsigned char *) (*macp)->name, | ||
165 | - strlen((*macp)->name)); | ||
166 | + s = _libssh2_kex_agree_instr(mac, mac_len, | ||
167 | + (unsigned char *) (*macp)->name, | ||
168 | + strlen((*macp)->name)); | ||
169 | if(s) { | ||
170 | endpoint->mac = *macp; | ||
171 | return 0; | ||
172 | @@ -3672,7 +3687,7 @@ static int kex_agree_comp(LIBSSH2_SESSION *session, | ||
173 | unsigned char *p = (unsigned char *) strchr((char *) s, ','); | ||
174 | size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s)); | ||
175 | |||
176 | - if(kex_agree_instr(comp, comp_len, s, method_len)) { | ||
177 | + if(_libssh2_kex_agree_instr(comp, comp_len, s, method_len)) { | ||
178 | const LIBSSH2_COMP_METHOD *method = | ||
179 | (const LIBSSH2_COMP_METHOD *) | ||
180 | kex_get_method_by_name((char *) s, method_len, | ||
181 | @@ -3694,8 +3709,9 @@ static int kex_agree_comp(LIBSSH2_SESSION *session, | ||
182 | } | ||
183 | |||
184 | while(*compp && (*compp)->name) { | ||
185 | - s = kex_agree_instr(comp, comp_len, (unsigned char *) (*compp)->name, | ||
186 | - strlen((*compp)->name)); | ||
187 | + s = _libssh2_kex_agree_instr(comp, comp_len, | ||
188 | + (unsigned char *) (*compp)->name, | ||
189 | + strlen((*compp)->name)); | ||
190 | if(s) { | ||
191 | endpoint->comp = *compp; | ||
192 | return 0; | ||
193 | @@ -3876,6 +3892,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, | ||
194 | session->local.kexinit = key_state->oldlocal; | ||
195 | session->local.kexinit_len = key_state->oldlocal_len; | ||
196 | key_state->state = libssh2_NB_state_idle; | ||
197 | + session->state &= ~LIBSSH2_STATE_INITIAL_KEX; | ||
198 | session->state &= ~LIBSSH2_STATE_KEX_ACTIVE; | ||
199 | session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; | ||
200 | return -1; | ||
201 | @@ -3901,6 +3918,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, | ||
202 | session->local.kexinit = key_state->oldlocal; | ||
203 | session->local.kexinit_len = key_state->oldlocal_len; | ||
204 | key_state->state = libssh2_NB_state_idle; | ||
205 | + session->state &= ~LIBSSH2_STATE_INITIAL_KEX; | ||
206 | session->state &= ~LIBSSH2_STATE_KEX_ACTIVE; | ||
207 | session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; | ||
208 | return -1; | ||
209 | @@ -3949,6 +3967,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, | ||
210 | session->remote.kexinit = NULL; | ||
211 | } | ||
212 | |||
213 | + session->state &= ~LIBSSH2_STATE_INITIAL_KEX; | ||
214 | session->state &= ~LIBSSH2_STATE_KEX_ACTIVE; | ||
215 | session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; | ||
216 | |||
217 | diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h | ||
218 | index 82c3afe2..ee1d8b5c 100644 | ||
219 | --- a/src/libssh2_priv.h | ||
220 | +++ b/src/libssh2_priv.h | ||
221 | @@ -699,6 +699,9 @@ struct _LIBSSH2_SESSION | ||
222 | /* key signing algorithm preferences -- NULL yields server order */ | ||
223 | char *sign_algo_prefs; | ||
224 | |||
225 | + /* Whether to use the OpenSSH Strict KEX extension */ | ||
226 | + int kex_strict; | ||
227 | + | ||
228 | /* (remote as source of data -- packet_read ) */ | ||
229 | libssh2_endpoint_data remote; | ||
230 | |||
231 | @@ -870,6 +873,7 @@ struct _LIBSSH2_SESSION | ||
232 | int fullpacket_macstate; | ||
233 | size_t fullpacket_payload_len; | ||
234 | int fullpacket_packet_type; | ||
235 | + uint32_t fullpacket_required_type; | ||
236 | |||
237 | /* State variables used in libssh2_sftp_init() */ | ||
238 | libssh2_nonblocking_states sftpInit_state; | ||
239 | @@ -910,10 +914,11 @@ struct _LIBSSH2_SESSION | ||
240 | }; | ||
241 | |||
242 | /* session.state bits */ | ||
243 | -#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000001 | ||
244 | -#define LIBSSH2_STATE_NEWKEYS 0x00000002 | ||
245 | -#define LIBSSH2_STATE_AUTHENTICATED 0x00000004 | ||
246 | -#define LIBSSH2_STATE_KEX_ACTIVE 0x00000008 | ||
247 | +#define LIBSSH2_STATE_INITIAL_KEX 0x00000001 | ||
248 | +#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000002 | ||
249 | +#define LIBSSH2_STATE_NEWKEYS 0x00000004 | ||
250 | +#define LIBSSH2_STATE_AUTHENTICATED 0x00000008 | ||
251 | +#define LIBSSH2_STATE_KEX_ACTIVE 0x00000010 | ||
252 | |||
253 | /* session.flag helpers */ | ||
254 | #ifdef MSG_NOSIGNAL | ||
255 | @@ -1144,6 +1149,11 @@ ssize_t _libssh2_send(libssh2_socket_t socket, const void *buffer, | ||
256 | int _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange, | ||
257 | key_exchange_state_t * state); | ||
258 | |||
259 | +unsigned char *_libssh2_kex_agree_instr(unsigned char *haystack, | ||
260 | + size_t haystack_len, | ||
261 | + const unsigned char *needle, | ||
262 | + size_t needle_len); | ||
263 | + | ||
264 | /* Let crypt.c/hostkey.c expose their method structs */ | ||
265 | const LIBSSH2_CRYPT_METHOD **libssh2_crypt_methods(void); | ||
266 | const LIBSSH2_HOSTKEY_METHOD **libssh2_hostkey_methods(void); | ||
267 | diff --git a/src/packet.c b/src/packet.c | ||
268 | index b5b41981..35d4d39e 100644 | ||
269 | --- a/src/packet.c | ||
270 | +++ b/src/packet.c | ||
271 | @@ -605,14 +605,13 @@ authagent_exit: | ||
272 | * layer when it has received a packet. | ||
273 | * | ||
274 | * The input pointer 'data' is pointing to allocated data that this function | ||
275 | - * is asked to deal with so on failure OR success, it must be freed fine. | ||
276 | - * The only exception is when the return code is LIBSSH2_ERROR_EAGAIN. | ||
277 | + * will be freed unless return the code is LIBSSH2_ERROR_EAGAIN. | ||
278 | * | ||
279 | * This function will always be called with 'datalen' greater than zero. | ||
280 | */ | ||
281 | int | ||
282 | _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, | ||
283 | - size_t datalen, int macstate) | ||
284 | + size_t datalen, int macstate, uint32_t seq) | ||
285 | { | ||
286 | int rc = 0; | ||
287 | unsigned char *message = NULL; | ||
288 | @@ -657,6 +656,70 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, | ||
289 | break; | ||
290 | } | ||
291 | |||
292 | + if(session->state & LIBSSH2_STATE_INITIAL_KEX) { | ||
293 | + if(msg == SSH_MSG_KEXINIT) { | ||
294 | + if(!session->kex_strict) { | ||
295 | + if(datalen < 17) { | ||
296 | + LIBSSH2_FREE(session, data); | ||
297 | + session->packAdd_state = libssh2_NB_state_idle; | ||
298 | + return _libssh2_error(session, | ||
299 | + LIBSSH2_ERROR_BUFFER_TOO_SMALL, | ||
300 | + "Data too short extracting kex"); | ||
301 | + } | ||
302 | + else { | ||
303 | + const unsigned char *strict = | ||
304 | + (unsigned char *)"kex-strict-s-v00@openssh.com"; | ||
305 | + struct string_buf buf; | ||
306 | + unsigned char *algs = NULL; | ||
307 | + size_t algs_len = 0; | ||
308 | + | ||
309 | + buf.data = (unsigned char *)data; | ||
310 | + buf.dataptr = buf.data; | ||
311 | + buf.len = datalen; | ||
312 | + buf.dataptr += 17; /* advance past type and cookie */ | ||
313 | + | ||
314 | + if(_libssh2_get_string(&buf, &algs, &algs_len)) { | ||
315 | + LIBSSH2_FREE(session, data); | ||
316 | + session->packAdd_state = libssh2_NB_state_idle; | ||
317 | + return _libssh2_error(session, | ||
318 | + LIBSSH2_ERROR_BUFFER_TOO_SMALL, | ||
319 | + "Algs too short"); | ||
320 | + } | ||
321 | + | ||
322 | + if(algs_len == 0 || | ||
323 | + _libssh2_kex_agree_instr(algs, algs_len, strict, 28)) { | ||
324 | + session->kex_strict = 1; | ||
325 | + } | ||
326 | + } | ||
327 | + } | ||
328 | + | ||
329 | + if(session->kex_strict && seq) { | ||
330 | + LIBSSH2_FREE(session, data); | ||
331 | + session->socket_state = LIBSSH2_SOCKET_DISCONNECTED; | ||
332 | + session->packAdd_state = libssh2_NB_state_idle; | ||
333 | + libssh2_session_disconnect(session, "strict KEX violation: " | ||
334 | + "KEXINIT was not the first packet"); | ||
335 | + | ||
336 | + return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT, | ||
337 | + "strict KEX violation: " | ||
338 | + "KEXINIT was not the first packet"); | ||
339 | + } | ||
340 | + } | ||
341 | + | ||
342 | + if(session->kex_strict && session->fullpacket_required_type && | ||
343 | + session->fullpacket_required_type != msg) { | ||
344 | + LIBSSH2_FREE(session, data); | ||
345 | + session->socket_state = LIBSSH2_SOCKET_DISCONNECTED; | ||
346 | + session->packAdd_state = libssh2_NB_state_idle; | ||
347 | + libssh2_session_disconnect(session, "strict KEX violation: " | ||
348 | + "unexpected packet type"); | ||
349 | + | ||
350 | + return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT, | ||
351 | + "strict KEX violation: " | ||
352 | + "unexpected packet type"); | ||
353 | + } | ||
354 | + } | ||
355 | + | ||
356 | if(session->packAdd_state == libssh2_NB_state_allocated) { | ||
357 | /* A couple exceptions to the packet adding rule: */ | ||
358 | switch(msg) { | ||
359 | @@ -1341,6 +1404,15 @@ _libssh2_packet_ask(LIBSSH2_SESSION * session, unsigned char packet_type, | ||
360 | |||
361 | return 0; | ||
362 | } | ||
363 | + else if(session->kex_strict && | ||
364 | + (session->state & LIBSSH2_STATE_INITIAL_KEX)) { | ||
365 | + libssh2_session_disconnect(session, "strict KEX violation: " | ||
366 | + "unexpected packet type"); | ||
367 | + | ||
368 | + return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT, | ||
369 | + "strict KEX violation: " | ||
370 | + "unexpected packet type"); | ||
371 | + } | ||
372 | packet = _libssh2_list_next(&packet->node); | ||
373 | } | ||
374 | return -1; | ||
375 | @@ -1402,7 +1474,10 @@ _libssh2_packet_require(LIBSSH2_SESSION * session, unsigned char packet_type, | ||
376 | } | ||
377 | |||
378 | while(session->socket_state == LIBSSH2_SOCKET_CONNECTED) { | ||
379 | - int ret = _libssh2_transport_read(session); | ||
380 | + int ret; | ||
381 | + session->fullpacket_required_type = packet_type; | ||
382 | + ret = _libssh2_transport_read(session); | ||
383 | + session->fullpacket_required_type = 0; | ||
384 | if(ret == LIBSSH2_ERROR_EAGAIN) | ||
385 | return ret; | ||
386 | else if(ret < 0) { | ||
387 | diff --git a/src/packet.h b/src/packet.h | ||
388 | index 79018bcf..6ea100a5 100644 | ||
389 | --- a/src/packet.h | ||
390 | +++ b/src/packet.h | ||
391 | @@ -71,6 +71,6 @@ int _libssh2_packet_burn(LIBSSH2_SESSION * session, | ||
392 | int _libssh2_packet_write(LIBSSH2_SESSION * session, unsigned char *data, | ||
393 | unsigned long data_len); | ||
394 | int _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data, | ||
395 | - size_t datalen, int macstate); | ||
396 | + size_t datalen, int macstate, uint32_t seq); | ||
397 | |||
398 | #endif /* __LIBSSH2_PACKET_H */ | ||
399 | diff --git a/src/session.c b/src/session.c | ||
400 | index a4d602ba..f4bafb57 100644 | ||
401 | --- a/src/session.c | ||
402 | +++ b/src/session.c | ||
403 | @@ -464,6 +464,8 @@ libssh2_session_init_ex(LIBSSH2_ALLOC_FUNC((*my_alloc)), | ||
404 | session->abstract = abstract; | ||
405 | session->api_timeout = 0; /* timeout-free API by default */ | ||
406 | session->api_block_mode = 1; /* blocking API by default */ | ||
407 | + session->state = LIBSSH2_STATE_INITIAL_KEX; | ||
408 | + session->fullpacket_required_type = 0; | ||
409 | session->packet_read_timeout = LIBSSH2_DEFAULT_READ_TIMEOUT; | ||
410 | session->flag.quote_paths = 1; /* default behavior is to quote paths | ||
411 | for the scp subsystem */ | ||
412 | @@ -1186,6 +1188,7 @@ libssh2_session_disconnect_ex(LIBSSH2_SESSION *session, int reason, | ||
413 | const char *desc, const char *lang) | ||
414 | { | ||
415 | int rc; | ||
416 | + session->state &= ~LIBSSH2_STATE_INITIAL_KEX; | ||
417 | session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS; | ||
418 | BLOCK_ADJUST(rc, session, | ||
419 | session_disconnect(session, reason, desc, lang)); | ||
420 | diff --git a/src/transport.c b/src/transport.c | ||
421 | index 6d902d33..3b30ff84 100644 | ||
422 | --- a/src/transport.c | ||
423 | +++ b/src/transport.c | ||
424 | @@ -187,6 +187,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ ) | ||
425 | struct transportpacket *p = &session->packet; | ||
426 | int rc; | ||
427 | int compressed; | ||
428 | + uint32_t seq = session->remote.seqno; | ||
429 | |||
430 | if(session->fullpacket_state == libssh2_NB_state_idle) { | ||
431 | session->fullpacket_macstate = LIBSSH2_MAC_CONFIRMED; | ||
432 | @@ -318,7 +319,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ ) | ||
433 | if(session->fullpacket_state == libssh2_NB_state_created) { | ||
434 | rc = _libssh2_packet_add(session, p->payload, | ||
435 | session->fullpacket_payload_len, | ||
436 | - session->fullpacket_macstate); | ||
437 | + session->fullpacket_macstate, seq); | ||
438 | if(rc == LIBSSH2_ERROR_EAGAIN) | ||
439 | return rc; | ||
440 | if(rc) { | ||
441 | @@ -329,6 +330,11 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ ) | ||
442 | |||
443 | session->fullpacket_state = libssh2_NB_state_idle; | ||
444 | |||
445 | + if(session->kex_strict && | ||
446 | + session->fullpacket_packet_type == SSH_MSG_NEWKEYS) { | ||
447 | + session->remote.seqno = 0; | ||
448 | + } | ||
449 | + | ||
450 | return session->fullpacket_packet_type; | ||
451 | } | ||
452 | |||
453 | @@ -1091,6 +1097,10 @@ int _libssh2_transport_send(LIBSSH2_SESSION *session, | ||
454 | |||
455 | session->local.seqno++; | ||
456 | |||
457 | + if(session->kex_strict && data[0] == SSH_MSG_NEWKEYS) { | ||
458 | + session->local.seqno = 0; | ||
459 | + } | ||
460 | + | ||
461 | ret = LIBSSH2_SEND(session, p->outbuf, total_length, | ||
462 | LIBSSH2_SOCKET_SEND_FLAGS(session)); | ||
463 | if(ret < 0) | ||
464 | -- | ||
465 | 2.34.1 | ||
466 | |||
diff --git a/meta/recipes-support/libssh2/libssh2_1.11.0.bb b/meta/recipes-support/libssh2/libssh2_1.11.1.bb index 5100e6f7f9..6d2580072b 100644 --- a/meta/recipes-support/libssh2/libssh2_1.11.0.bb +++ b/meta/recipes-support/libssh2/libssh2_1.11.1.bb | |||
@@ -5,14 +5,13 @@ SECTION = "libs" | |||
5 | DEPENDS = "zlib" | 5 | DEPENDS = "zlib" |
6 | 6 | ||
7 | LICENSE = "BSD-3-Clause" | 7 | LICENSE = "BSD-3-Clause" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=24a33237426720395ebb1dd1349ca225" | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=2fbf8f834408079bf1fcbadb9814b1bc" |
9 | 9 | ||
10 | SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \ | 10 | SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \ |
11 | file://run-ptest \ | 11 | file://run-ptest \ |
12 | file://CVE-2023-48795.patch \ | ||
13 | " | 12 | " |
14 | 13 | ||
15 | SRC_URI[sha256sum] = "3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461" | 14 | SRC_URI[sha256sum] = "d9ec76cbe34db98eec3539fe2c899d26b0c837cb3eb466a56b0f109cabf658f7" |
16 | 15 | ||
17 | inherit autotools pkgconfig ptest | 16 | inherit autotools pkgconfig ptest |
18 | 17 | ||
@@ -31,7 +30,7 @@ PACKAGECONFIG[gcrypt] = "--with-crypto=libgcrypt --with-libgcrypt-prefix=${STAGI | |||
31 | BBCLASSEXTEND = "native nativesdk" | 30 | BBCLASSEXTEND = "native nativesdk" |
32 | 31 | ||
33 | # required for ptest on documentation | 32 | # required for ptest on documentation |
34 | RDEPENDS:${PN}-ptest = "bash man-db openssh util-linux-col" | 33 | RDEPENDS:${PN}-ptest = "bash man-db openssh" |
35 | RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us" | 34 | RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us" |
36 | 35 | ||
37 | do_compile_ptest() { | 36 | do_compile_ptest() { |
diff --git a/meta/recipes-support/libunistring/libunistring_1.2.bb b/meta/recipes-support/libunistring/libunistring_1.3.bb index 3018dbfdfb..08531acec1 100644 --- a/meta/recipes-support/libunistring/libunistring_1.2.bb +++ b/meta/recipes-support/libunistring/libunistring_1.3.bb | |||
@@ -21,7 +21,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ | |||
21 | DEPENDS = "gperf-native" | 21 | DEPENDS = "gperf-native" |
22 | 22 | ||
23 | SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz" | 23 | SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz" |
24 | SRC_URI[sha256sum] = "fd6d5662fa706487c48349a758b57bc149ce94ec6c30624ec9fdc473ceabbc8e" | 24 | SRC_URI[sha256sum] = "8ea8ccf86c09dd801c8cac19878e804e54f707cf69884371130d20bde68386b7" |
25 | 25 | ||
26 | inherit autotools texinfo | 26 | inherit autotools texinfo |
27 | BBCLASSEXTEND = "native nativesdk" | 27 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch b/meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch deleted file mode 100644 index 5840c2b4f6..0000000000 --- a/meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From 9b27fa9bcd5cadd4c841c42710f41a090377e531 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Fri, 24 Mar 2023 16:18:44 +0000 | ||
4 | Subject: [PATCH] src/Gtrace: remove unguarded print() calls | ||
5 | |||
6 | There is a use of printf() without #include stdio.h in src/arm/Gtrace.c, | ||
7 | which results in a compiler error if clang 16 is used: | ||
8 | |||
9 | src/arm/Gtrace.c:529:7: error: call to undeclared library function | ||
10 | 'printf' with type 'int (const char *, ...)'; ISO C99 and later do not | ||
11 | support implicit function declarations [-Wimplicit-function-declaration] | ||
12 | |||
13 | Replace the printf("XXX") with a Dprintf, so it doesn't pull stdio in | ||
14 | unless in a debug build, and reword the message to be clearer. | ||
15 | |||
16 | Also there is another printf("XXX") inside a FreeBSD-specific block in | ||
17 | the UNW_ARM_FRAME_SIGRETURN case, replace this with a #error as the code | ||
18 | needs to be implemented. | ||
19 | |||
20 | Fixes #482. | ||
21 | |||
22 | Upstream-Status: Backport [9b27fa9bcd5cadd4c841c42710f41a090377e531] | ||
23 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
24 | --- | ||
25 | src/arm/Gtrace.c | 4 ++-- | ||
26 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
27 | |||
28 | diff --git a/src/arm/Gtrace.c b/src/arm/Gtrace.c | ||
29 | index 51fc281d..9e0f25af 100644 | ||
30 | --- a/src/arm/Gtrace.c | ||
31 | +++ b/src/arm/Gtrace.c | ||
32 | @@ -514,7 +514,7 @@ tdep_trace (unw_cursor_t *cursor, void **buffer, int *size) | ||
33 | if (likely(ret >= 0)) | ||
34 | ACCESS_MEM_FAST(ret, c->validate, d, cfa + LINUX_SC_LR_OFF, lr); | ||
35 | #elif defined(__FreeBSD__) | ||
36 | - printf("XXX\n"); | ||
37 | + #error implement UNW_ARM_FRAME_SIGRETURN on FreeBSD | ||
38 | #endif | ||
39 | |||
40 | /* Resume stack at signal restoration point. The stack is not | ||
41 | @@ -526,7 +526,7 @@ tdep_trace (unw_cursor_t *cursor, void **buffer, int *size) | ||
42 | break; | ||
43 | |||
44 | case UNW_ARM_FRAME_SYSCALL: | ||
45 | - printf("XXX1\n"); | ||
46 | + Dprintf ("%s: implement me\n", __FUNCTION__); | ||
47 | break; | ||
48 | |||
49 | default: | ||
50 | -- | ||
51 | 2.34.1 | ||
52 | |||
diff --git a/meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch b/meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch new file mode 100644 index 0000000000..f7af9a3fce --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch | |||
@@ -0,0 +1,73 @@ | |||
1 | From 2f03399911abdd549237fa2db64a4a8311fe67dc Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Mon, 15 Jan 2024 16:59:14 +0000 | ||
4 | Subject: [PATCH 1/4] tests/Garm64-test-sve-signal: check that SVE is present | ||
5 | before running tests | ||
6 | |||
7 | If the compiler supports -march=armv8-a+sve then those options are used | ||
8 | to build this test, but all that needs is a sufficiently new compiler. | ||
9 | |||
10 | This then results in the __ARM_FEATURE_SVE check always passing, because | ||
11 | SVE is explicitly enabled. | ||
12 | |||
13 | However it's perfectly possible for the compiler to support +sve but the | ||
14 | machine running the code to not, which results with the test crashing | ||
15 | with "Illegal instruction". | ||
16 | |||
17 | Handle this case by checking HWCAP for SVE support, and skipping the | ||
18 | test unless we know it is available. This check is Linux-specific at | ||
19 | present, but the logic is easily extended. | ||
20 | |||
21 | Upstream-Status: Backport | ||
22 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
23 | --- | ||
24 | tests/Garm64-test-sve-signal.c | 19 +++++++++++++++++++ | ||
25 | 1 file changed, 19 insertions(+) | ||
26 | |||
27 | diff --git a/tests/Garm64-test-sve-signal.c b/tests/Garm64-test-sve-signal.c | ||
28 | index 52cb9ac6..cf66b3f1 100644 | ||
29 | --- a/tests/Garm64-test-sve-signal.c | ||
30 | +++ b/tests/Garm64-test-sve-signal.c | ||
31 | @@ -9,11 +9,16 @@ | ||
32 | #include <libunwind.h> | ||
33 | #include <signal.h> | ||
34 | #include <stdio.h> | ||
35 | +#include <stdbool.h> | ||
36 | #include <stdlib.h> | ||
37 | #include <string.h> | ||
38 | #include <time.h> | ||
39 | #include <unistd.h> | ||
40 | |||
41 | +#if defined(__linux__) | ||
42 | +#include <sys/auxv.h> | ||
43 | +#endif | ||
44 | + | ||
45 | int64_t z[100]; | ||
46 | |||
47 | void signal_handler(int signum) | ||
48 | @@ -96,8 +101,22 @@ int64_t square(svint64_t z0) | ||
49 | return res; | ||
50 | } | ||
51 | |||
52 | +bool has_sve(void) { | ||
53 | +#if defined(__linux__) | ||
54 | + return (getauxval(AT_HWCAP) & HWCAP_SVE) ? true : false; | ||
55 | +#else | ||
56 | + printf("Cannot determine if SVE is present, assuming it is not\n"); | ||
57 | + return false; | ||
58 | +#endif | ||
59 | +} | ||
60 | + | ||
61 | int main() | ||
62 | { | ||
63 | + if (!has_sve()) { | ||
64 | + printf("SVE not available, skipping\n"); | ||
65 | + return 77; | ||
66 | + } | ||
67 | + | ||
68 | signal(SIGUSR1, signal_handler); | ||
69 | for (unsigned int i = 0; i < sizeof(z) / sizeof(z[0]); ++i) | ||
70 | z[i] = rand(); | ||
71 | -- | ||
72 | 2.34.1 | ||
73 | |||
diff --git a/meta/recipes-support/libunwind/libunwind/mips-coredump-register.patch b/meta/recipes-support/libunwind/libunwind/0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch index 68adcd1d71..f458bc3c6f 100644 --- a/meta/recipes-support/libunwind/libunwind/mips-coredump-register.patch +++ b/meta/recipes-support/libunwind/libunwind/0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch | |||
@@ -1,24 +1,27 @@ | |||
1 | From 7750e2a29b084ee033acc82abab410035e220d3f Mon Sep 17 00:00:00 2001 | 1 | From 2a5473a31c6b02e9c49d688691e848d6281ffd2e Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@arm.com> | 2 | From: Ross Burton <ross.burton@arm.com> |
3 | Date: Tue, 16 Jan 2024 18:21:26 +0000 | 3 | Date: Tue, 16 Jan 2024 18:21:26 +0000 |
4 | Subject: [PATCH 1/2] coredump-mips-register | 4 | Subject: [PATCH 2/4] coredump: use glibc or musl register names as appropriate |
5 | on MIPS | ||
5 | 6 | ||
6 | glibc and musl have different names for the registers, add a | 7 | glibc has register macros of the form EF_REGx, but musl uses EF_Rx. |
7 | macro that generates the names appropriately. | ||
8 | 8 | ||
9 | Upstream-Status: Pending | 9 | Handle this by using a macro to use the correct names. |
10 | Signed-off-by: Ross Burton <ross.burton@arm.com> | 10 | |
11 | Closes #708. | ||
11 | 12 | ||
13 | Upstream-Status: Backport | ||
14 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
12 | --- | 15 | --- |
13 | src/coredump/_UCD_access_reg_linux.c | 69 ++++++++++++++++------------ | 16 | src/coredump/_UCD_access_reg_linux.c | 69 ++++++++++++++++------------ |
14 | 1 file changed, 39 insertions(+), 30 deletions(-) | 17 | 1 file changed, 39 insertions(+), 30 deletions(-) |
15 | 18 | ||
16 | diff --git a/src/coredump/_UCD_access_reg_linux.c b/src/coredump/_UCD_access_reg_linux.c | 19 | diff --git a/src/coredump/_UCD_access_reg_linux.c b/src/coredump/_UCD_access_reg_linux.c |
17 | index 27eef123..beefdb47 100644 | 20 | index 302f7bdf..05100ed6 100644 |
18 | --- a/src/coredump/_UCD_access_reg_linux.c | 21 | --- a/src/coredump/_UCD_access_reg_linux.c |
19 | +++ b/src/coredump/_UCD_access_reg_linux.c | 22 | +++ b/src/coredump/_UCD_access_reg_linux.c |
20 | @@ -67,38 +67,47 @@ _UCD_access_reg (unw_addr_space_t as, | 23 | @@ -100,38 +100,47 @@ _UCD_access_reg (unw_addr_space_t as UNUSED, |
21 | goto badreg; | 24 | }; |
22 | #else | 25 | #else |
23 | #if defined(UNW_TARGET_MIPS) | 26 | #if defined(UNW_TARGET_MIPS) |
24 | + | 27 | + |
@@ -94,7 +97,7 @@ index 27eef123..beefdb47 100644 | |||
94 | + [UNW_MIPS_R31] = EF_REG(31), | 97 | + [UNW_MIPS_R31] = EF_REG(31), |
95 | [UNW_MIPS_PC] = EF_CP0_EPC, | 98 | [UNW_MIPS_PC] = EF_CP0_EPC, |
96 | }; | 99 | }; |
97 | #elif defined(UNW_TARGET_X86) | 100 | #elif defined(UNW_TARGET_S390X) |
98 | -- | 101 | -- |
99 | 2.34.1 | 102 | 2.34.1 |
100 | 103 | ||
diff --git a/meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch b/meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch new file mode 100644 index 0000000000..63d3c85de4 --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch | |||
@@ -0,0 +1,88 @@ | |||
1 | From 7bd4fbdea43310e52feb57fb5afab6bec798cc99 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Wed, 17 Jan 2024 16:28:39 +0000 | ||
4 | Subject: [PATCH 5/5] Handle musl on PPC32 | ||
5 | |||
6 | On Linux, glibc and musl disagree over the layout of the ucontext_t | ||
7 | structure. For more details, see the musl mailing list: | ||
8 | |||
9 | https://www.openwall.com/lists/musl/2018/02/22/1 | ||
10 | |||
11 | Add conditionals to handle both the glibc and musl layout of the | ||
12 | structures. | ||
13 | |||
14 | Closes #709. | ||
15 | |||
16 | Upstream-Status: Submitted [https://github.com/libunwind/libunwind/pull/710] | ||
17 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
18 | --- | ||
19 | src/ppc32/Ginit.c | 13 ++++++++++--- | ||
20 | src/ppc32/ucontext_i.h | 5 +++++ | ||
21 | 2 files changed, 15 insertions(+), 3 deletions(-) | ||
22 | |||
23 | diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c | ||
24 | index 9444cbb8..5e94ed8a 100644 | ||
25 | --- a/src/ppc32/Ginit.c | ||
26 | +++ b/src/ppc32/Ginit.c | ||
27 | @@ -42,6 +42,13 @@ static struct unw_addr_space local_addr_space; | ||
28 | |||
29 | unw_addr_space_t unw_local_addr_space = &local_addr_space; | ||
30 | |||
31 | +/* glibc and musl disagree over the layout of this struct */ | ||
32 | +#ifdef __GLIBC__ | ||
33 | +#define _UCONTEXT_UC_REGS(uc) uc->uc_mcontext.uc_regs | ||
34 | +#else | ||
35 | +#define _UCONTEXT_UC_REGS(uc) uc->uc_regs | ||
36 | +#endif | ||
37 | + | ||
38 | static void * | ||
39 | uc_addr (ucontext_t *uc, int reg) | ||
40 | { | ||
41 | @@ -49,7 +56,7 @@ uc_addr (ucontext_t *uc, int reg) | ||
42 | |||
43 | if ((unsigned) (reg - UNW_PPC32_R0) < 32) | ||
44 | #if defined(__linux__) | ||
45 | - addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0]; | ||
46 | + addr = &_UCONTEXT_UC_REGS(uc)->gregs[reg - UNW_PPC32_R0]; | ||
47 | #elif defined(__FreeBSD__) | ||
48 | addr = &uc->uc_mcontext.mc_gpr[reg - UNW_PPC32_R0]; | ||
49 | #endif | ||
50 | @@ -58,7 +65,7 @@ uc_addr (ucontext_t *uc, int reg) | ||
51 | if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) && | ||
52 | ((unsigned) (reg - UNW_PPC32_F0) >= 0) ) | ||
53 | #if defined(__linux__) | ||
54 | - addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0]; | ||
55 | + addr = &_UCONTEXT_UC_REGS(uc)->fpregs.fpregs[reg - UNW_PPC32_F0]; | ||
56 | #elif defined(__FreeBSD__) | ||
57 | addr = &uc->uc_mcontext.mc_fpreg[reg - UNW_PPC32_F0]; | ||
58 | #endif | ||
59 | @@ -85,7 +92,7 @@ uc_addr (ucontext_t *uc, int reg) | ||
60 | return NULL; | ||
61 | } | ||
62 | #if defined(__linux__) | ||
63 | - addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx]; | ||
64 | + addr = &_UCONTEXT_UC_REGS(uc)->gregs[gregs_idx]; | ||
65 | #elif defined(__FreeBSD__) | ||
66 | addr = &uc->uc_mcontext.mc_gpr[gregs_idx]; | ||
67 | #endif | ||
68 | diff --git a/src/ppc32/ucontext_i.h b/src/ppc32/ucontext_i.h | ||
69 | index ee93c697..cfd8fe0e 100644 | ||
70 | --- a/src/ppc32/ucontext_i.h | ||
71 | +++ b/src/ppc32/ucontext_i.h | ||
72 | @@ -44,8 +44,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ | ||
73 | //#define MQ_IDX 36 | ||
74 | #define LINK_IDX 36 | ||
75 | |||
76 | +#ifdef __GLIBC__ | ||
77 | #define _UC_MCONTEXT_GPR(x) ( ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[x] - (void *)&dmy_ctxt) ) | ||
78 | #define _UC_MCONTEXT_FPR(x) ( ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[x] - (void *)&dmy_ctxt) ) | ||
79 | +#else | ||
80 | +#define _UC_MCONTEXT_GPR(x) ( ((void *)&dmy_ctxt.uc_regs->gregs[x] - (void *)&dmy_ctxt) ) | ||
81 | +#define _UC_MCONTEXT_FPR(x) ( ((void *)&dmy_ctxt.uc_regs->fpregs.fpregs[x] - (void *)&dmy_ctxt) ) | ||
82 | +#endif | ||
83 | |||
84 | /* These are dummy structures used only for obtaining the offsets of the | ||
85 | various structure members. */ | ||
86 | -- | ||
87 | 2.34.1 | ||
88 | |||
diff --git a/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch b/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch deleted file mode 100644 index e58a71b741..0000000000 --- a/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch +++ /dev/null | |||
@@ -1,247 +0,0 @@ | |||
1 | From 24c751f9d21e892a9833e1b70a696b07872b0f7f Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 9 Jul 2016 01:07:53 +0000 | ||
4 | Subject: [PATCH] ppc32: Consider ucontext mismatches between glibc and | ||
5 | |||
6 | musl | ||
7 | |||
8 | This helps in porting libunwind onto musl based systems | ||
9 | ptrace.h change is required again an error that surfaces | ||
10 | with musl | ||
11 | |||
12 | /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/asm/ptrace.h:31:8: error: redefinition of 'struct pt_regs' | ||
13 | struct pt_regs { | ||
14 | ^~~~~~~ | ||
15 | In file included from /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/sys/user.h:11:0, | ||
16 | from /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/sys/procfs.h:9, | ||
17 | from ../../git/src/ptrace/_UPT_internal.h:40, | ||
18 | from ../../git/src/ptrace/_UPT_reg_offset.c:27: | ||
19 | /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/bits/user.h:1:8: note: originally defined here | ||
20 | struct pt_regs { | ||
21 | ^~~~~~~ | ||
22 | |||
23 | Upstream-Status: Pending | ||
24 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
25 | |||
26 | --- | ||
27 | src/ppc32/Ginit.c | 6 +- | ||
28 | src/ppc32/ucontext_i.h | 158 ++++++++++++++++++----------------- | ||
29 | src/ptrace/_UPT_reg_offset.c | 7 ++ | ||
30 | 3 files changed, 92 insertions(+), 79 deletions(-) | ||
31 | |||
32 | diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c | ||
33 | index 7b45455..f8d6886 100644 | ||
34 | --- a/src/ppc32/Ginit.c | ||
35 | +++ b/src/ppc32/Ginit.c | ||
36 | @@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg) | ||
37 | void *addr; | ||
38 | |||
39 | if ((unsigned) (reg - UNW_PPC32_R0) < 32) | ||
40 | - addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0]; | ||
41 | + addr = &uc->GET_UC_REGS->gregs[reg - UNW_PPC32_R0]; | ||
42 | |||
43 | else | ||
44 | if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) && | ||
45 | ((unsigned) (reg - UNW_PPC32_F0) >= 0) ) | ||
46 | - addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0]; | ||
47 | + addr = &uc->GET_UC_REGS->fpregs.fpregs[reg - UNW_PPC32_F0]; | ||
48 | |||
49 | else | ||
50 | { | ||
51 | @@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg) | ||
52 | default: | ||
53 | return NULL; | ||
54 | } | ||
55 | - addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx]; | ||
56 | + addr = &uc->GET_UC_REGS->gregs[gregs_idx]; | ||
57 | } | ||
58 | return addr; | ||
59 | } | ||
60 | diff --git a/src/ppc32/ucontext_i.h b/src/ppc32/ucontext_i.h | ||
61 | index c6ba806..b79f15c 100644 | ||
62 | --- a/src/ppc32/ucontext_i.h | ||
63 | +++ b/src/ppc32/ucontext_i.h | ||
64 | @@ -46,83 +46,89 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ | ||
65 | various structure members. */ | ||
66 | static ucontext_t dmy_ctxt UNUSED; | ||
67 | |||
68 | -#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt) | ||
69 | -#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt) | ||
70 | -#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt) | ||
71 | -#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt) | ||
72 | -#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt) | ||
73 | -#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt) | ||
74 | -#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt) | ||
75 | -#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt) | ||
76 | -#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt) | ||
77 | -#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt) | ||
78 | -#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt) | ||
79 | -#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt) | ||
80 | -#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt) | ||
81 | -#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt) | ||
82 | -#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt) | ||
83 | -#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt) | ||
84 | -#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt) | ||
85 | -#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt) | ||
86 | -#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt) | ||
87 | -#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt) | ||
88 | -#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt) | ||
89 | -#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt) | ||
90 | -#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt) | ||
91 | -#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt) | ||
92 | -#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt) | ||
93 | -#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt) | ||
94 | -#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt) | ||
95 | -#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt) | ||
96 | -#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt) | ||
97 | -#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt) | ||
98 | -#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt) | ||
99 | -#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt) | ||
100 | +#ifdef __GLIBC__ | ||
101 | +#define GET_UC_REGS uc_mcontext.uc_regs | ||
102 | +#else | ||
103 | +#define GET_UC_REGS uc_regs | ||
104 | +#endif | ||
105 | + | ||
106 | +#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[0] - (void *)&dmy_ctxt) | ||
107 | +#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[1] - (void *)&dmy_ctxt) | ||
108 | +#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[2] - (void *)&dmy_ctxt) | ||
109 | +#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[3] - (void *)&dmy_ctxt) | ||
110 | +#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[4] - (void *)&dmy_ctxt) | ||
111 | +#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[5] - (void *)&dmy_ctxt) | ||
112 | +#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[6] - (void *)&dmy_ctxt) | ||
113 | +#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[7] - (void *)&dmy_ctxt) | ||
114 | +#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[8] - (void *)&dmy_ctxt) | ||
115 | +#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[9] - (void *)&dmy_ctxt) | ||
116 | +#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[10] - (void *)&dmy_ctxt) | ||
117 | +#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[11] - (void *)&dmy_ctxt) | ||
118 | +#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[12] - (void *)&dmy_ctxt) | ||
119 | +#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[13] - (void *)&dmy_ctxt) | ||
120 | +#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[14] - (void *)&dmy_ctxt) | ||
121 | +#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[15] - (void *)&dmy_ctxt) | ||
122 | +#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[16] - (void *)&dmy_ctxt) | ||
123 | +#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[17] - (void *)&dmy_ctxt) | ||
124 | +#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[18] - (void *)&dmy_ctxt) | ||
125 | +#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[19] - (void *)&dmy_ctxt) | ||
126 | +#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[20] - (void *)&dmy_ctxt) | ||
127 | +#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[21] - (void *)&dmy_ctxt) | ||
128 | +#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[22] - (void *)&dmy_ctxt) | ||
129 | +#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[23] - (void *)&dmy_ctxt) | ||
130 | +#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[24] - (void *)&dmy_ctxt) | ||
131 | +#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[25] - (void *)&dmy_ctxt) | ||
132 | +#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[26] - (void *)&dmy_ctxt) | ||
133 | +#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[27] - (void *)&dmy_ctxt) | ||
134 | +#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[28] - (void *)&dmy_ctxt) | ||
135 | +#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[29] - (void *)&dmy_ctxt) | ||
136 | +#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[30] - (void *)&dmy_ctxt) | ||
137 | +#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[31] - (void *)&dmy_ctxt) | ||
138 | |||
139 | -#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt) | ||
140 | -#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt) | ||
141 | -#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt) | ||
142 | -#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt) | ||
143 | -#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt) | ||
144 | -#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt) | ||
145 | -#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt) | ||
146 | -#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt) | ||
147 | -#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt) | ||
148 | -#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt) | ||
149 | -#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt) | ||
150 | +#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[MSR_IDX] - (void *)&dmy_ctxt) | ||
151 | +#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt) | ||
152 | +#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[CTR_IDX] - (void *)&dmy_ctxt) | ||
153 | +#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.GET_UC_REGS->gregs[LINK_IDX] - (void *)&dmy_ctxt) | ||
154 | +#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.GET_UC_REGS->gregs[XER_IDX] - (void *)&dmy_ctxt) | ||
155 | +#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[CCR_IDX] - (void *)&dmy_ctxt) | ||
156 | +#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.GET_UC_REGS->gregs[SOFTE_IDX] - (void *)&dmy_ctxt) | ||
157 | +#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.GET_UC_REGS->gregs[TRAP_IDX] - (void *)&dmy_ctxt) | ||
158 | +#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[DAR_IDX] - (void *)&dmy_ctxt) | ||
159 | +#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[DSISR_IDX] - (void *)&dmy_ctxt) | ||
160 | +#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.GET_UC_REGS->gregs[RESULT_IDX] - (void *)&dmy_ctxt) | ||
161 | |||
162 | -#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt) | ||
163 | -#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt) | ||
164 | -#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt) | ||
165 | -#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt) | ||
166 | -#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt) | ||
167 | -#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt) | ||
168 | -#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt) | ||
169 | -#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt) | ||
170 | -#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt) | ||
171 | -#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt) | ||
172 | -#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt) | ||
173 | -#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt) | ||
174 | -#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt) | ||
175 | -#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt) | ||
176 | -#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt) | ||
177 | -#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt) | ||
178 | -#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt) | ||
179 | -#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt) | ||
180 | -#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt) | ||
181 | -#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt) | ||
182 | -#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt) | ||
183 | -#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt) | ||
184 | -#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt) | ||
185 | -#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt) | ||
186 | -#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt) | ||
187 | -#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt) | ||
188 | -#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt) | ||
189 | -#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt) | ||
190 | -#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt) | ||
191 | -#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt) | ||
192 | -#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt) | ||
193 | -#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt) | ||
194 | -#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt) | ||
195 | +#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[0] - (void *)&dmy_ctxt) | ||
196 | +#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[1] - (void *)&dmy_ctxt) | ||
197 | +#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[2] - (void *)&dmy_ctxt) | ||
198 | +#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[3] - (void *)&dmy_ctxt) | ||
199 | +#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[4] - (void *)&dmy_ctxt) | ||
200 | +#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[5] - (void *)&dmy_ctxt) | ||
201 | +#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[6] - (void *)&dmy_ctxt) | ||
202 | +#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[7] - (void *)&dmy_ctxt) | ||
203 | +#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[8] - (void *)&dmy_ctxt) | ||
204 | +#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[9] - (void *)&dmy_ctxt) | ||
205 | +#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[10] - (void *)&dmy_ctxt) | ||
206 | +#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[11] - (void *)&dmy_ctxt) | ||
207 | +#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[12] - (void *)&dmy_ctxt) | ||
208 | +#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[13] - (void *)&dmy_ctxt) | ||
209 | +#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[14] - (void *)&dmy_ctxt) | ||
210 | +#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[15] - (void *)&dmy_ctxt) | ||
211 | +#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[16] - (void *)&dmy_ctxt) | ||
212 | +#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[17] - (void *)&dmy_ctxt) | ||
213 | +#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[18] - (void *)&dmy_ctxt) | ||
214 | +#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[19] - (void *)&dmy_ctxt) | ||
215 | +#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[20] - (void *)&dmy_ctxt) | ||
216 | +#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[21] - (void *)&dmy_ctxt) | ||
217 | +#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[22] - (void *)&dmy_ctxt) | ||
218 | +#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[23] - (void *)&dmy_ctxt) | ||
219 | +#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[24] - (void *)&dmy_ctxt) | ||
220 | +#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[25] - (void *)&dmy_ctxt) | ||
221 | +#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[26] - (void *)&dmy_ctxt) | ||
222 | +#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[27] - (void *)&dmy_ctxt) | ||
223 | +#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[28] - (void *)&dmy_ctxt) | ||
224 | +#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[29] - (void *)&dmy_ctxt) | ||
225 | +#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[30] - (void *)&dmy_ctxt) | ||
226 | +#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[31] - (void *)&dmy_ctxt) | ||
227 | +#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[32] - (void *)&dmy_ctxt) | ||
228 | |||
229 | #endif | ||
230 | diff --git a/src/ptrace/_UPT_reg_offset.c b/src/ptrace/_UPT_reg_offset.c | ||
231 | index b7dd3b7..bfaf756 100644 | ||
232 | --- a/src/ptrace/_UPT_reg_offset.c | ||
233 | +++ b/src/ptrace/_UPT_reg_offset.c | ||
234 | @@ -27,6 +27,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ | ||
235 | #include "_UPT_internal.h" | ||
236 | |||
237 | #include <stddef.h> | ||
238 | +#if !defined(__GLIBC__) | ||
239 | +# define pt_regs uapi_pt_regs | ||
240 | +#endif | ||
241 | +#include <asm/ptrace.h> | ||
242 | +#if !defined(__GLIBC__) | ||
243 | +# undef pt_regs | ||
244 | +#endif | ||
245 | |||
246 | #ifdef HAVE_ASM_PTRACE_H | ||
247 | # include <asm/ptrace.h> | ||
diff --git a/meta/recipes-support/libunwind/libunwind/libatomic.patch b/meta/recipes-support/libunwind/libunwind/libatomic.patch new file mode 100644 index 0000000000..e783128e2c --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind/libatomic.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From a331e3a63981427724d2d9cfdcb4a456153299b5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Stephen Webb <swebb@blackberry.com> | ||
3 | Date: Mon, 18 Mar 2024 10:22:26 -0400 | ||
4 | Subject: [PATCH] configure.ac: detect if -latomic is required | ||
5 | |||
6 | Some OS runtimes require libatomic be linked in separately to get | ||
7 | standard atomic operations to work. Try to detect that at configure | ||
8 | time. | ||
9 | |||
10 | Upstream-Status: Submitted [https://github.com/libunwind/libunwind/pull/732/] | ||
11 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
12 | --- | ||
13 | configure.ac | 12 ++++++++++++ | ||
14 | 1 file changed, 12 insertions(+) | ||
15 | |||
16 | diff --git a/configure.ac b/configure.ac | ||
17 | index eaa0ddc..d5f1d4a 100644 | ||
18 | --- a/configure.ac | ||
19 | +++ b/configure.ac | ||
20 | @@ -93,6 +93,18 @@ dnl Checks for library functions. | ||
21 | AC_CHECK_FUNCS(dl_iterate_phdr dl_phdr_removals_counter dlmodinfo getunwind \ | ||
22 | ttrace mincore pipe2 sigaltstack execvpe) | ||
23 | |||
24 | +AC_MSG_CHECKING([if -latomic is required]) | ||
25 | + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ | ||
26 | + #include <stdatomic.h> | ||
27 | + atomic_bool ab_ = 0; atomic_llong al_ = 0; | ||
28 | + ]],[[ | ||
29 | + atomic_load(&ab_); atomic_load(&al_); | ||
30 | + ]])], | ||
31 | + [use_libatomic=no], | ||
32 | + [use_libatomic=yes]) | ||
33 | +AC_MSG_RESULT([$use_libatomic]) | ||
34 | +AS_IF([test "$use_libatomic" = "yes"],[LIBS="-latomic $LIBS"]) | ||
35 | + | ||
36 | AC_MSG_CHECKING([if building with AltiVec]) | ||
37 | AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ | ||
38 | #ifndef __ALTIVEC__ | ||
diff --git a/meta/recipes-support/libunwind/libunwind/malloc.patch b/meta/recipes-support/libunwind/libunwind/malloc.patch new file mode 100644 index 0000000000..cfcef1ccdc --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind/malloc.patch | |||
@@ -0,0 +1,255 @@ | |||
1 | From 8fd3e0c24fdfed64e0642ec0334548f16a2a9390 Mon Sep 17 00:00:00 2001 | ||
2 | From: Stephen Webb <swebb@blackberry.com> | ||
3 | Date: Wed, 12 Feb 2025 12:08:07 -0500 | ||
4 | Subject: [PATCH] Fix bad prototype for malloc() in test | ||
5 | |||
6 | The unit test Gtest-nomalloc.c had an incorrect prototype for malloc() | ||
7 | which caused newer compilers to fail compiling for newer C editions. | ||
8 | |||
9 | Corrected the prototype and corrected a few other errors. The unit now | ||
10 | compiles using GCC with `CFLAGS=-Wall -Wextra -pedantic -C11` with no | ||
11 | warnings, which is the minimum requirement. | ||
12 | |||
13 | Added the tests/unw_test.h header as a first step to cleaning up some | ||
14 | unit tests further. | ||
15 | |||
16 | Upstream-Status: Backport [https://github.com/libunwind/libunwind/commit/b67d508]] | ||
17 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
18 | --- | ||
19 | tests/Gtest-nomalloc.c | 124 +++++++++++++++++++++++------------------ | ||
20 | tests/Makefile.am | 2 +- | ||
21 | tests/unw_test.h | 47 ++++++++++++++++ | ||
22 | 3 files changed, 117 insertions(+), 56 deletions(-) | ||
23 | create mode 100644 tests/unw_test.h | ||
24 | |||
25 | diff --git a/tests/Gtest-nomalloc.c b/tests/Gtest-nomalloc.c | ||
26 | index 5b97fc7..e770ff6 100644 | ||
27 | --- a/tests/Gtest-nomalloc.c | ||
28 | +++ b/tests/Gtest-nomalloc.c | ||
29 | @@ -1,78 +1,92 @@ | ||
30 | -/* libunwind - a platform-independent unwind library | ||
31 | - Copyright (C) 2009 Google, Inc | ||
32 | - Contributed by Arun Sharma <arun.sharma@google.com> | ||
33 | +/** | ||
34 | + * @file tests/Gtest-nomalloc.c | ||
35 | + * | ||
36 | + * Verify that @c malloc() is not called during an unwinding operation. | ||
37 | + */ | ||
38 | +/* | ||
39 | + * This file is part of libunwind. | ||
40 | + * Copyright 2025 Stephen M. Webb <stephen.webb@bregmasoft.ca> | ||
41 | + * Copyright (C) 2009 Google, Inc | ||
42 | + * Contributed by Arun Sharma <arun.sharma@google.com> | ||
43 | + * | ||
44 | + * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
45 | + * of this software and associated documentation files (the "Software"), to | ||
46 | + * deal in the Software without restriction, including without limitation the | ||
47 | + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||
48 | + * sell copies of the Software, and to permit persons to whom the Software is | ||
49 | + * furnished to do so, subject to the following conditions: | ||
50 | + * | ||
51 | + * The above copyright notice and this permission notice shall be included in | ||
52 | + * all copies or substantial portions of the Software. | ||
53 | + * | ||
54 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
55 | + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
56 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
57 | + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
58 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
59 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
60 | + * IN THE SOFTWARE. | ||
61 | + */ | ||
62 | |||
63 | -Permission is hereby granted, free of charge, to any person obtaining | ||
64 | -a copy of this software and associated documentation files (the | ||
65 | -"Software"), to deal in the Software without restriction, including | ||
66 | -without limitation the rights to use, copy, modify, merge, publish, | ||
67 | -distribute, sublicense, and/or sell copies of the Software, and to | ||
68 | -permit persons to whom the Software is furnished to do so, subject to | ||
69 | -the following conditions: | ||
70 | - | ||
71 | -The above copyright notice and this permission notice shall be | ||
72 | -included in all copies or substantial portions of the Software. | ||
73 | - | ||
74 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
75 | -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
76 | -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
77 | -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||
78 | -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
79 | -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
80 | -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ | ||
81 | - | ||
82 | -#include <unistd.h> | ||
83 | -#include <stdio.h> | ||
84 | -#include <stdlib.h> | ||
85 | #include <dlfcn.h> | ||
86 | #include <libunwind.h> | ||
87 | +#include <stdio.h> | ||
88 | +#include <stdlib.h> | ||
89 | +#include <unistd.h> | ||
90 | |||
91 | -#define panic(args...) \ | ||
92 | - { fprintf (stderr, args); exit (-1); } | ||
93 | +#include "unw_test.h" | ||
94 | |||
95 | -int verbose; | ||
96 | -int num_errors; | ||
97 | +int malloc_call_count; | ||
98 | int in_unwind; | ||
99 | |||
100 | +/** | ||
101 | + * Intercepted malloc() call. | ||
102 | + * | ||
103 | + * If invoked during unwinding this call will increment the test error count | ||
104 | + * and indicate a failure by returning NULL. Otherwise it just calls the real | ||
105 | + * malloc(). | ||
106 | + */ | ||
107 | void * | ||
108 | -malloc(size_t s) | ||
109 | +malloc (size_t sz) | ||
110 | { | ||
111 | - static void * (*func)(); | ||
112 | + typedef void *(*malloc_t) (size_t); | ||
113 | |||
114 | - if(!func) | ||
115 | - func = (void *(*)()) dlsym(RTLD_NEXT, "malloc"); | ||
116 | + static malloc_t real_malloc = NULL; | ||
117 | + if (real_malloc == NULL) | ||
118 | + { | ||
119 | + real_malloc = (malloc_t)(intptr_t)dlsym (RTLD_NEXT, "malloc"); | ||
120 | + if (real_malloc == NULL) | ||
121 | + { | ||
122 | + fprintf (stderr, "no malloc() found\n"); | ||
123 | + exit (UNW_TEST_EXIT_HARD_ERROR); \ | ||
124 | + } | ||
125 | + } | ||
126 | |||
127 | - if (in_unwind) { | ||
128 | - num_errors++; | ||
129 | - return NULL; | ||
130 | - } else { | ||
131 | - return func(s); | ||
132 | - } | ||
133 | + if (in_unwind) | ||
134 | + { | ||
135 | + malloc_call_count++; | ||
136 | + } | ||
137 | + return real_malloc (sz); | ||
138 | } | ||
139 | |||
140 | static void | ||
141 | do_backtrace (void) | ||
142 | { | ||
143 | - unw_word_t ip, sp; | ||
144 | - unw_cursor_t cursor; | ||
145 | + unw_cursor_t cursor; | ||
146 | unw_context_t uc; | ||
147 | - int ret; | ||
148 | + int ret; | ||
149 | |||
150 | in_unwind = 1; | ||
151 | unw_getcontext (&uc); | ||
152 | if (unw_init_local (&cursor, &uc) < 0) | ||
153 | - panic ("unw_init_local failed!\n"); | ||
154 | + { | ||
155 | + fprintf (stderr, "unw_init_local failed!\n"); | ||
156 | + exit (UNW_TEST_EXIT_HARD_ERROR); \ | ||
157 | + } | ||
158 | |||
159 | do | ||
160 | { | ||
161 | - unw_get_reg (&cursor, UNW_REG_IP, &ip); | ||
162 | - unw_get_reg (&cursor, UNW_REG_SP, &sp); | ||
163 | - | ||
164 | ret = unw_step (&cursor); | ||
165 | - if (ret < 0) | ||
166 | - { | ||
167 | - ++num_errors; | ||
168 | - } | ||
169 | } | ||
170 | while (ret > 0); | ||
171 | in_unwind = 0; | ||
172 | @@ -99,12 +113,12 @@ foo1 (void) | ||
173 | int | ||
174 | main (void) | ||
175 | { | ||
176 | - foo1(); | ||
177 | + foo1 (); | ||
178 | |||
179 | - if (num_errors > 0) | ||
180 | + if (malloc_call_count > 0) | ||
181 | { | ||
182 | - fprintf (stderr, "FAILURE: detected %d errors\n", num_errors); | ||
183 | - exit (-1); | ||
184 | + fprintf (stderr, "FAILURE: malloc called %d times, expected 0\n", malloc_call_count); | ||
185 | + exit (UNW_TEST_EXIT_FAIL); | ||
186 | } | ||
187 | - return 0; | ||
188 | + exit (UNW_TEST_EXIT_PASS); | ||
189 | } | ||
190 | diff --git a/tests/Makefile.am b/tests/Makefile.am | ||
191 | index e2b07bc..844105a 100644 | ||
192 | --- a/tests/Makefile.am | ||
193 | +++ b/tests/Makefile.am | ||
194 | @@ -200,7 +200,7 @@ endif | ||
195 | |||
196 | noinst_PROGRAMS = $(noinst_PROGRAMS_common) $(noinst_PROGRAMS_cdep) \ | ||
197 | $(noinst_PROGRAMS_arch) | ||
198 | -noinst_HEADERS = ident.h | ||
199 | +noinst_HEADERS = ident.h unw_test.h | ||
200 | |||
201 | do_test_subst = sed -e 's,[@]TESTS[@],$(TESTS),g' \ | ||
202 | -e 's,[@]XFAIL_TESTS[@],$(XFAIL_TESTS),g' \ | ||
203 | diff --git a/tests/unw_test.h b/tests/unw_test.h | ||
204 | new file mode 100644 | ||
205 | index 0000000..9ae86dc | ||
206 | --- /dev/null | ||
207 | +++ b/tests/unw_test.h | ||
208 | @@ -0,0 +1,47 @@ | ||
209 | +/** | ||
210 | + * @file tests/unw_test.h | ||
211 | + * | ||
212 | + * Common unit test API for libunwind. | ||
213 | + */ | ||
214 | +/* | ||
215 | + * This file is part of libunwind. | ||
216 | + * Copyright 2025 Stephen M. Webb <stephen.webb@bregmasoft.ca> | ||
217 | + * | ||
218 | + * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
219 | + * of this software and associated documentation files (the "Software"), to | ||
220 | + * deal in the Software without restriction, including without limitation the | ||
221 | + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||
222 | + * sell copies of the Software, and to permit persons to whom the Software is | ||
223 | + * furnished to do so, subject to the following conditions: | ||
224 | + * | ||
225 | + * The above copyright notice and this permission notice shall be included in | ||
226 | + * all copies or substantial portions of the Software. | ||
227 | + * | ||
228 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
229 | + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
230 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
231 | + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
232 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
233 | + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
234 | + * IN THE SOFTWARE. | ||
235 | + */ | ||
236 | +#ifndef LIBUNWIND_UNW_TEST_H | ||
237 | +#define LIBUNWIND_UNW_TEST_H 1 | ||
238 | + | ||
239 | +/** | ||
240 | + * Exit values for test programs. | ||
241 | + * Based on https://www.gnu.org/software/automake/manual/html_node/Scripts_002dbased-Testsuites.html | ||
242 | + * | ||
243 | + * These are used to interact with the test harness (eg. a TAP-based harness, | ||
244 | + * CTest, or automake). | ||
245 | + */ | ||
246 | +enum { | ||
247 | + UNW_TEST_EXIT_PASS = 0, /* Item under test is a PASS */ | ||
248 | + UNW_TEST_EXIT_FAIL = 1, /* Item under test is a FAIL */ | ||
249 | + UNW_TEST_EXIT_BAD_COMMAND = 2, /* Test program is invoked with invalid arguments */ | ||
250 | + UNW_TEST_EXIT_SKIP = 77, /* Test should be skipped */ | ||
251 | + UNW_TEST_EXIT_HARD_ERROR = 99 /* Test program itself has failed */ | ||
252 | +}; | ||
253 | + | ||
254 | +#endif /* LIBUNWIND_UNW_TEST_H */ | ||
255 | + | ||
diff --git a/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch b/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch index 8848780fd1..3336b79055 100644 --- a/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch +++ b/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch | |||
@@ -6,7 +6,7 @@ Subject: [PATCH 2/2] byte order | |||
6 | endian.h on musl/mips can't be included in __ASSEMBLER__ mode, | 6 | endian.h on musl/mips can't be included in __ASSEMBLER__ mode, |
7 | so use the __BYTE_ORDER__ symbol instead. | 7 | so use the __BYTE_ORDER__ symbol instead. |
8 | 8 | ||
9 | Upstream-Status: Pending | 9 | Upstream-Status: Submitted [https://github.com/libunwind/libunwind/pull/816] |
10 | Signed-off-by: Ross Burton <ross.burton@arm.com> | 10 | Signed-off-by: Ross Burton <ross.burton@arm.com> |
11 | --- | 11 | --- |
12 | src/mips/getcontext.S | 3 +-- | 12 | src/mips/getcontext.S | 3 +-- |
diff --git a/meta/recipes-support/libunwind/libunwind_1.6.2.bb b/meta/recipes-support/libunwind/libunwind_1.6.2.bb deleted file mode 100644 index 3208785124..0000000000 --- a/meta/recipes-support/libunwind/libunwind_1.6.2.bb +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | SUMMARY = "Library for obtaining the call-chain of a program" | ||
2 | DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program" | ||
3 | HOMEPAGE = "http://www.nongnu.org/libunwind" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f" | ||
6 | DEPENDS += "libatomic-ops" | ||
7 | DEPENDS:append:libc-musl = " libucontext" | ||
8 | |||
9 | SRC_URI = "http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PV}.tar.gz \ | ||
10 | file://mips-byte-order.patch \ | ||
11 | file://mips-coredump-register.patch \ | ||
12 | file://0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \ | ||
13 | file://0001-src-Gtrace-remove-unguarded-print-calls.patch \ | ||
14 | " | ||
15 | |||
16 | SRC_URI[sha256sum] = "4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976" | ||
17 | |||
18 | inherit autotools multilib_header | ||
19 | |||
20 | COMPATIBLE_HOST:riscv32 = "null" | ||
21 | |||
22 | PACKAGECONFIG ??= "" | ||
23 | PACKAGECONFIG[lzma] = "--enable-minidebuginfo,--disable-minidebuginfo,xz" | ||
24 | PACKAGECONFIG[zlib] = "--enable-zlibdebuginfo,--disable-zlibdebuginfo,zlib" | ||
25 | PACKAGECONFIG[latexdocs] = "--enable-documentation, --disable-documentation, latex2man-native" | ||
26 | |||
27 | EXTRA_OECONF = "--enable-static" | ||
28 | |||
29 | # http://errors.yoctoproject.org/Errors/Details/20487/ | ||
30 | ARM_INSTRUCTION_SET:armv4 = "arm" | ||
31 | ARM_INSTRUCTION_SET:armv5 = "arm" | ||
32 | |||
33 | LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" | ||
34 | |||
35 | SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared" | ||
36 | CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'" | ||
37 | |||
38 | do_install:append () { | ||
39 | oe_multilib_header libunwind.h | ||
40 | } | ||
41 | |||
42 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-support/libunwind/libunwind_1.8.2.bb b/meta/recipes-support/libunwind/libunwind_1.8.2.bb new file mode 100644 index 0000000000..6f7168b5df --- /dev/null +++ b/meta/recipes-support/libunwind/libunwind_1.8.2.bb | |||
@@ -0,0 +1,53 @@ | |||
1 | SUMMARY = "Library for obtaining the call-chain of a program" | ||
2 | DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program" | ||
3 | HOMEPAGE = "http://www.nongnu.org/libunwind" | ||
4 | LICENSE = "MIT" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f" | ||
6 | DEPENDS:append:libc-musl = " libucontext" | ||
7 | |||
8 | GITHUB_BASE_URI = "https://github.com/libunwind/libunwind/releases" | ||
9 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ | ||
10 | file://mips-byte-order.patch \ | ||
11 | file://0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch \ | ||
12 | file://0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch \ | ||
13 | file://0005-Handle-musl-on-PPC32.patch \ | ||
14 | file://libatomic.patch \ | ||
15 | file://malloc.patch \ | ||
16 | " | ||
17 | |||
18 | SRC_URI[sha256sum] = "7f262f1a1224f437ede0f96a6932b582c8f5421ff207c04e3d9504dfa04c8b82" | ||
19 | |||
20 | inherit autotools multilib_header github-releases | ||
21 | |||
22 | COMPATIBLE_HOST:riscv32 = "null" | ||
23 | |||
24 | PACKAGECONFIG ??= "" | ||
25 | PACKAGECONFIG[lzma] = "--enable-minidebuginfo,--disable-minidebuginfo,xz" | ||
26 | PACKAGECONFIG[zlib] = "--enable-zlibdebuginfo,--disable-zlibdebuginfo,zlib" | ||
27 | PACKAGECONFIG[latexdocs] = "--enable-documentation, --disable-documentation, latex2man-native" | ||
28 | |||
29 | EXTRA_OECONF = "--enable-static --disable-tests" | ||
30 | |||
31 | # http://errors.yoctoproject.org/Errors/Details/20487/ | ||
32 | ARM_INSTRUCTION_SET:armv4 = "arm" | ||
33 | ARM_INSTRUCTION_SET:armv5 = "arm" | ||
34 | |||
35 | # With qemuarm64 and poky-tiny: | ||
36 | # ld: .libs/Gtest-trace: hidden symbol `__aarch64_cas8_acq_rel' in libgcc.a(cas_8_4.o) is referenced by DSO | ||
37 | LDFLAGS_SECTION_REMOVAL = "" | ||
38 | |||
39 | LDFLAGS += "-Wl,-z,relro,-z,now" | ||
40 | |||
41 | SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared" | ||
42 | CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'" | ||
43 | |||
44 | do_install:append () { | ||
45 | oe_multilib_header libunwind.h | ||
46 | } | ||
47 | |||
48 | BBCLASSEXTEND = "native" | ||
49 | |||
50 | # libunwind-1.8.1/src/elfxx.c:205:44: error: passing argument 3 of '_Uppc32_get_func_addr' from incompatible pointer type [-Wincompatible-pointer-types] | ||
51 | # libunwind-1.8.1/src/elfxx.c:279:52: error: passing argument 3 of '_Uppc32_get_func_addr' from incompatible pointer type [-Wincompatible-pointer-types] | ||
52 | # and others | ||
53 | CFLAGS:append:powerpc:libc-musl = " -Wno-error=incompatible-pointer-types" | ||
diff --git a/meta/recipes-support/liburcu/liburcu_0.14.0.bb b/meta/recipes-support/liburcu/liburcu_0.15.3.bb index f03c990632..fdbd79e016 100644 --- a/meta/recipes-support/liburcu/liburcu_0.14.0.bb +++ b/meta/recipes-support/liburcu/liburcu_0.15.3.bb | |||
@@ -6,15 +6,16 @@ HOMEPAGE = "http://lttng.org/urcu" | |||
6 | BUGTRACKER = "http://lttng.org/project/issues" | 6 | BUGTRACKER = "http://lttng.org/project/issues" |
7 | 7 | ||
8 | LICENSE = "LGPL-2.1-or-later & MIT" | 8 | LICENSE = "LGPL-2.1-or-later & MIT" |
9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \ | 9 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c2a92498b6e88e276f986877995425b8 \ |
10 | file://include/urcu/urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \ | 10 | file://include/urcu/urcu.h;beginline=1;endline=18;md5=d35fe8cc2613ca70e0a624ed8bf6fef9 \ |
11 | file://include/urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b" | 11 | file://include/urcu/uatomic/x86.h;beginline=1;endline=6;md5=358d69272ba7b5f85e29e342430d440c \ |
12 | " | ||
12 | 13 | ||
13 | SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2" | 14 | SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2" |
14 | 15 | ||
15 | SRC_URI[sha256sum] = "ca43bf261d4d392cff20dfae440836603bf009fce24fdc9b2697d837a2239d4f" | 16 | SRC_URI[sha256sum] = "26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d" |
16 | 17 | ||
17 | S = "${WORKDIR}/userspace-rcu-${PV}" | 18 | S = "${UNPACKDIR}/userspace-rcu-${PV}" |
18 | inherit autotools multilib_header | 19 | inherit autotools multilib_header |
19 | 20 | ||
20 | CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT" | 21 | CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT" |
diff --git a/meta/recipes-support/libusb/libusb1_1.0.27.bb b/meta/recipes-support/libusb/libusb1_1.0.29.bb index f2431d75c8..2f43ee68b7 100644 --- a/meta/recipes-support/libusb/libusb1_1.0.27.bb +++ b/meta/recipes-support/libusb/libusb1_1.0.29.bb | |||
@@ -8,6 +8,8 @@ SECTION = "libs" | |||
8 | LICENSE = "LGPL-2.1-or-later" | 8 | LICENSE = "LGPL-2.1-or-later" |
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" |
10 | 10 | ||
11 | CVE_PRODUCT = "libusb" | ||
12 | |||
11 | BBCLASSEXTEND = "native nativesdk" | 13 | BBCLASSEXTEND = "native nativesdk" |
12 | 14 | ||
13 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \ | 15 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \ |
@@ -17,9 +19,9 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \ | |||
17 | GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases" | 19 | GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases" |
18 | UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" | 20 | UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" |
19 | 21 | ||
20 | SRC_URI[sha256sum] = "ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575" | 22 | SRC_URI[sha256sum] = "5977fc950f8d1395ccea9bd48c06b3f808fd3c2c961b44b0c2e6e29fc3a70a85" |
21 | 23 | ||
22 | S = "${WORKDIR}/libusb-${PV}" | 24 | S = "${UNPACKDIR}/libusb-${PV}" |
23 | 25 | ||
24 | inherit autotools pkgconfig ptest github-releases | 26 | inherit autotools pkgconfig ptest github-releases |
25 | 27 | ||
diff --git a/meta/recipes-support/libxslt/libxslt_1.1.39.bb b/meta/recipes-support/libxslt/libxslt_1.1.43.bb index 2cc0c84bec..c0699cbce8 100644 --- a/meta/recipes-support/libxslt/libxslt_1.1.39.bb +++ b/meta/recipes-support/libxslt/libxslt_1.1.43.bb | |||
@@ -15,13 +15,13 @@ DEPENDS = "libxml2" | |||
15 | 15 | ||
16 | SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz" | 16 | SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz" |
17 | 17 | ||
18 | SRC_URI[sha256sum] = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0" | 18 | SRC_URI[sha256sum] = "5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a" |
19 | 19 | ||
20 | UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar" | 20 | UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar" |
21 | 21 | ||
22 | CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled." | 22 | CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled." |
23 | 23 | ||
24 | S = "${WORKDIR}/libxslt-${PV}" | 24 | S = "${UNPACKDIR}/libxslt-${PV}" |
25 | 25 | ||
26 | BINCONFIG = "${bindir}/xslt-config" | 26 | BINCONFIG = "${bindir}/xslt-config" |
27 | 27 | ||
@@ -37,7 +37,7 @@ do_configure:prepend () { | |||
37 | touch ${S}/doc/xsltproc.1 | 37 | touch ${S}/doc/xsltproc.1 |
38 | } | 38 | } |
39 | 39 | ||
40 | EXTRA_OECONF = "--without-python --without-debug --without-mem-debug --without-crypto" | 40 | EXTRA_OECONF = "--without-python --without-debug --without-crypto" |
41 | # older versions of this recipe had ${PN}-utils | 41 | # older versions of this recipe had ${PN}-utils |
42 | RPROVIDES:${PN}-bin += "${PN}-utils" | 42 | RPROVIDES:${PN}-bin += "${PN}-utils" |
43 | RCONFLICTS:${PN}-bin += "${PN}-utils" | 43 | RCONFLICTS:${PN}-bin += "${PN}-utils" |
diff --git a/meta/recipes-support/libyaml/libyaml_0.2.5.bb b/meta/recipes-support/libyaml/libyaml_0.2.5.bb index 4cb5717ece..9b77e7cfc8 100644 --- a/meta/recipes-support/libyaml/libyaml_0.2.5.bb +++ b/meta/recipes-support/libyaml/libyaml_0.2.5.bb | |||
@@ -8,14 +8,17 @@ LICENSE = "MIT" | |||
8 | LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d" | 8 | LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d" |
9 | 9 | ||
10 | SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz" | 10 | SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz" |
11 | SRC_URI[md5sum] = "bb15429d8fb787e7d3f1c83ae129a999" | ||
12 | SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" | 11 | SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" |
13 | 12 | ||
14 | S = "${WORKDIR}/yaml-${PV}" | 13 | S = "${UNPACKDIR}/yaml-${PV}" |
15 | 14 | ||
16 | inherit autotools | 15 | inherit autotools |
17 | 16 | ||
18 | DISABLE_STATIC:class-nativesdk = "" | 17 | DISABLE_STATIC:class-nativesdk = "" |
19 | DISABLE_STATIC:class-native = "" | 18 | DISABLE_STATIC:class-native = "" |
20 | 19 | ||
20 | CVE_STATUS[CVE-2024-35325] = "upstream-wontfix: Upstream thinks this is a misuse (or wrong use) of the libyaml API - https://github.com/yaml/libyaml/issues/303" | ||
21 | CVE_STATUS[CVE-2024-35326] = "upstream-wontfix: Upstream thinks there is no working code that is exploitable - https://github.com/yaml/libyaml/issues/302" | ||
22 | CVE_STATUS[CVE-2024-35328] = "upstream-wontfix: Upstream thinks there is no working code that is exploitable - https://github.com/yaml/libyaml/issues/302" | ||
23 | |||
21 | BBCLASSEXTEND = "native nativesdk" | 24 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/lz4/lz4/reproducibility.patch b/meta/recipes-support/lz4/lz4/reproducibility.patch new file mode 100644 index 0000000000..c138986da8 --- /dev/null +++ b/meta/recipes-support/lz4/lz4/reproducibility.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | lib/Makefile: Fix static library reproducibility | ||
2 | |||
3 | The static library contents varies depending of the order of the object files on disk meaning | ||
4 | it isn't reproducible. | ||
5 | |||
6 | To avoid this, use the SRCFILES values which are already sorted, mapped to the object names | ||
7 | instead. | ||
8 | |||
9 | |||
10 | Upstream-Status: Submitted [https://github.com/lz4/lz4/pull/1497] | ||
11 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
12 | |||
13 | Index: git/lib/Makefile | ||
14 | =================================================================== | ||
15 | --- git.orig/lib/Makefile | ||
16 | +++ git/lib/Makefile | ||
17 | @@ -55,6 +55,7 @@ CFLAGS = $(DEBUGFLAGS) $(USERCFLAGS) | ||
18 | ALLFLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) | ||
19 | |||
20 | SRCFILES := $(sort $(wildcard *.c)) | ||
21 | +OBJFILES = $(SRCFILES:.c=.o) | ||
22 | |||
23 | include ../Makefile.inc | ||
24 | |||
25 | @@ -102,7 +103,7 @@ liblz4.a: $(SRCFILES) | ||
26 | ifeq ($(BUILD_STATIC),yes) # can be disabled on command line | ||
27 | @echo compiling static library | ||
28 | $(COMPILE.c) $^ | ||
29 | - $(AR) rcs $@ *.o | ||
30 | + $(AR) rcs $@ $(OBJFILES) | ||
31 | endif | ||
32 | |||
33 | ifeq ($(WINBASED),yes) | ||
diff --git a/meta/recipes-support/lz4/files/run-ptest b/meta/recipes-support/lz4/lz4/run-ptest index f4a46a4f2c..f4a46a4f2c 100644 --- a/meta/recipes-support/lz4/files/run-ptest +++ b/meta/recipes-support/lz4/lz4/run-ptest | |||
diff --git a/meta/recipes-support/lz4/lz4_1.9.4.bb b/meta/recipes-support/lz4/lz4_1.10.0.bb index 51a854d44a..9bd3cfc27b 100644 --- a/meta/recipes-support/lz4/lz4_1.9.4.bb +++ b/meta/recipes-support/lz4/lz4_1.10.0.bb | |||
@@ -2,28 +2,26 @@ SUMMARY = "Extremely Fast Compression algorithm" | |||
2 | DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems." | 2 | DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems." |
3 | HOMEPAGE = "https://github.com/lz4/lz4" | 3 | HOMEPAGE = "https://github.com/lz4/lz4" |
4 | 4 | ||
5 | LICENSE = "BSD-2-Clause | GPL-2.0-only" | 5 | LICENSE = "BSD-2-Clause | GPL-2.0-or-later" |
6 | LIC_FILES_CHKSUM = "file://lib/LICENSE;md5=5cd5f851b52ec832b10eedb3f01f885a \ | 6 | LIC_FILES_CHKSUM = "file://lib/LICENSE;md5=5cd5f851b52ec832b10eedb3f01f885a \ |
7 | file://programs/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | 7 | file://programs/COPYING;md5=492daf447d6db0e5eb344a7922e7ec25 \ |
8 | file://LICENSE;md5=c5cc3cd6f9274b4d32988096df9c3ec3 \ | 8 | file://LICENSE;md5=c111c47e301c2ffe8776729b40b44477 \ |
9 | " | 9 | " |
10 | 10 | ||
11 | PE = "1" | 11 | PE = "1" |
12 | 12 | ||
13 | SRCREV = "5ff839680134437dbf4678f3d0c7b371d84f4964" | 13 | SRCREV = "ebb370ca83af193212df4dcbadcc5d87bc0de2f0" |
14 | 14 | ||
15 | SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \ | 15 | SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \ |
16 | file://run-ptest \ | 16 | file://reproducibility.patch \ |
17 | " | 17 | file://run-ptest" |
18 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" | 18 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" |
19 | 19 | ||
20 | S = "${WORKDIR}/git" | ||
21 | |||
22 | inherit ptest | 20 | inherit ptest |
23 | 21 | ||
24 | CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version." | 22 | CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version." |
25 | 23 | ||
26 | EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no" | 24 | EXTRA_OEMAKE = "DESTDIR=${D} BUILD_STATIC=no" |
27 | 25 | ||
28 | do_install() { | 26 | do_install() { |
29 | oe_runmake install | 27 | oe_runmake install |
diff --git a/meta/recipes-support/lzo/lzo_2.10.bb b/meta/recipes-support/lzo/lzo_2.10.bb index 195c2f2939..dbe789b4e6 100644 --- a/meta/recipes-support/lzo/lzo_2.10.bb +++ b/meta/recipes-support/lzo/lzo_2.10.bb | |||
@@ -13,7 +13,6 @@ SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \ | |||
13 | file://run-ptest \ | 13 | file://run-ptest \ |
14 | " | 14 | " |
15 | 15 | ||
16 | SRC_URI[md5sum] = "39d3f3f9c55c87b1e5d6888e1420f4b5" | ||
17 | SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" | 16 | SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" |
18 | 17 | ||
19 | inherit autotools ptest | 18 | inherit autotools ptest |
@@ -31,5 +30,4 @@ do_install_ptest() { | |||
31 | done | 30 | done |
32 | } | 31 | } |
33 | 32 | ||
34 | |||
35 | BBCLASSEXTEND = "native nativesdk" | 33 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/lzop/lzop_1.04.bb b/meta/recipes-support/lzop/lzop_1.04.bb index d9b3524b67..c32aa53422 100644 --- a/meta/recipes-support/lzop/lzop_1.04.bb +++ b/meta/recipes-support/lzop/lzop_1.04.bb | |||
@@ -15,13 +15,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | |||
15 | SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \ | 15 | SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \ |
16 | file://acinclude.m4 \ | 16 | file://acinclude.m4 \ |
17 | " | 17 | " |
18 | SRC_URI[md5sum] = "271eb10fde77a0a96b9cbf745e719ddf" | ||
19 | SRC_URI[sha256sum] = "7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41" | 18 | SRC_URI[sha256sum] = "7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41" |
20 | 19 | ||
21 | inherit autotools | 20 | inherit autotools |
22 | 21 | ||
23 | do_configure:prepend () { | 22 | do_configure:prepend () { |
24 | install -Dm 0644 ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4 | 23 | install -Dm 0644 ${UNPACKDIR}/acinclude.m4 ${S}/acinclude.m4 |
25 | } | 24 | } |
26 | 25 | ||
27 | BBCLASSEXTEND = "native nativesdk" | 26 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/mpfr/mpfr_4.2.1.bb b/meta/recipes-support/mpfr/mpfr_4.2.2.bb index a2067e1036..88cef0cfe1 100644 --- a/meta/recipes-support/mpfr/mpfr_4.2.1.bb +++ b/meta/recipes-support/mpfr/mpfr_4.2.2.bb | |||
@@ -9,10 +9,12 @@ inherit autotools texinfo | |||
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ |
10 | file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ | 10 | file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ |
11 | " | 11 | " |
12 | CVE_PRODUCT = "gnu_mpfr" | ||
13 | |||
12 | DEPENDS = "gmp autoconf-archive-native" | 14 | DEPENDS = "gmp autoconf-archive-native" |
13 | 15 | ||
14 | SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz" | 16 | SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz" |
15 | SRC_URI[sha256sum] = "277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2" | 17 | SRC_URI[sha256sum] = "b67ba0383ef7e8a8563734e2e889ef5ec3c3b898a01d00fa0a6869ad81c6ce01" |
16 | 18 | ||
17 | UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/" | 19 | UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/" |
18 | 20 | ||
diff --git a/meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch b/meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch new file mode 100644 index 0000000000..c6f75e9150 --- /dev/null +++ b/meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From 20eb61eded3bf2ef03e1f37c8c1535b9c246d0f7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 22 Mar 2025 13:48:29 -0700 | ||
4 | Subject: [PATCH] getopt: Fix getopt/getenv signatures in declarations | ||
5 | |||
6 | GCC-15 complains about this when trying to build on musl | ||
7 | |||
8 | | ../nettle-3.10.1/getopt.c:139:14: error: conflicting types for 'getenv'; have 'char *(void)' | ||
9 | | 139 | extern char *getenv (); | ||
10 | | | ^~~~~~ | ||
11 | |||
12 | Upstream-Status: Submitted [https://lists.lysator.liu.se/mailman/hyperkitty/list/nettle-bugs@lists.lysator.liu.se/thread/R6BDHRO44KSRDAOZQAREYICI2RG5PVNC/] | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | --- | ||
15 | getopt.c | 2 +- | ||
16 | getopt.h | 2 +- | ||
17 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
18 | |||
19 | diff --git a/getopt.c b/getopt.c | ||
20 | index 9d29de7..5b89302 100644 | ||
21 | --- a/getopt.c | ||
22 | +++ b/getopt.c | ||
23 | @@ -136,7 +136,7 @@ static struct _getopt_data getopt_data; | ||
24 | whose names are inconsistent. */ | ||
25 | |||
26 | #ifndef getenv | ||
27 | -extern char *getenv (); | ||
28 | +extern char *getenv (const char *); | ||
29 | #endif | ||
30 | |||
31 | #endif /* not __GNU_LIBRARY__ */ | ||
32 | diff --git a/getopt.h b/getopt.h | ||
33 | index da1a01f..ab50792 100644 | ||
34 | --- a/getopt.h | ||
35 | +++ b/getopt.h | ||
36 | @@ -166,7 +166,7 @@ extern int __posix_getopt (int ___argc, char *const *___argv, | ||
37 | # endif | ||
38 | # endif | ||
39 | #else /* not __GNU_LIBRARY__ */ | ||
40 | -extern int getopt (); | ||
41 | +extern int getopt(int, char * const [], const char *); | ||
42 | #endif /* __GNU_LIBRARY__ */ | ||
43 | |||
44 | #ifndef __need_getopt | ||
diff --git a/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch b/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch index e3f5c6de7d..ee3e74c43b 100644 --- a/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch +++ b/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch | |||
@@ -1,4 +1,7 @@ | |||
1 | Add target to only build tests (not run them) | 1 | From 3ea3eaf5bda21529fc8a8da3d8b07ebc3875ba7e Mon Sep 17 00:00:00 2001 |
2 | From: Trevor Gamblin <tgamblin@baylibre.com> | ||
3 | Date: Fri, 2 Aug 2024 09:48:43 -0400 | ||
4 | Subject: [PATCH] Makefile.in: Add target to only build tests (not run them) | ||
2 | 5 | ||
3 | Not sending upstream as this is only a start of a solution to | 6 | Not sending upstream as this is only a start of a solution to |
4 | installable tests: It's useful for us already as is. | 7 | installable tests: It's useful for us already as is. |
@@ -8,16 +11,20 @@ Upstream-Status: Inappropriate [not a complete solution] | |||
8 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | 11 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> |
9 | Refactored for 3.4 | 12 | Refactored for 3.4 |
10 | Signed-off-by: Armin Kuster <akuster@mvista.com> | 13 | Signed-off-by: Armin Kuster <akuster@mvista.com> |
14 | |||
15 | Refactor for 3.10, including turning it into an mbox for easier use. | ||
16 | |||
17 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> | ||
11 | --- | 18 | --- |
12 | Makefile.in | 3 +++ | 19 | Makefile.in | 3 +++ |
13 | testsuite/Makefile.in | 2 ++ | 20 | testsuite/Makefile.in | 2 ++ |
14 | 2 files changed, 5 insertions(+) | 21 | 2 files changed, 5 insertions(+) |
15 | 22 | ||
16 | diff --git a/Makefile.in b/Makefile.in | 23 | diff --git a/Makefile.in b/Makefile.in |
17 | index e5ccfc7..15c9275 100644 | 24 | index 71ad761..0f239f4 100644 |
18 | --- a/Makefile.in | 25 | --- a/Makefile.in |
19 | +++ b/Makefile.in | 26 | +++ b/Makefile.in |
20 | @@ -52,6 +52,9 @@ clean distclean mostlyclean maintainer-clean tags: | 27 | @@ -53,6 +53,9 @@ clean distclean mostlyclean maintainer-clean tags: |
21 | echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done | 28 | echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done |
22 | $(MAKE) $@-here | 29 | $(MAKE) $@-here |
23 | 30 | ||
@@ -28,18 +35,15 @@ index e5ccfc7..15c9275 100644 | |||
28 | true | 35 | true |
29 | 36 | ||
30 | diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in | 37 | diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in |
31 | index 3f5e5f6..8fd68a3 100644 | 38 | index 0699fa0..8ac9983 100644 |
32 | --- a/testsuite/Makefile.in | 39 | --- a/testsuite/Makefile.in |
33 | +++ b/testsuite/Makefile.in | 40 | +++ b/testsuite/Makefile.in |
34 | @@ -122,6 +122,8 @@ $(TARGETS) $(EXTRA_TARGETS): testutils.$(OBJEXT) ../nettle-internal.$(OBJEXT) \ | 41 | @@ -137,6 +137,8 @@ $(TARGETS) $(EXTRA_TARGETS): testutils.$(OBJEXT) ../non-nettle.$(OBJEXT) \ |
35 | # data. | 42 | # data. |
36 | VALGRIND = valgrind --error-exitcode=1 --leak-check=full --show-reachable=yes @IF_ASM@ --partial-loads-ok=yes | 43 | VALGRIND = valgrind --error-exitcode=1 --leak-check=full --show-reachable=yes @IF_ASM@ --partial-loads-ok=yes |
37 | 44 | ||
38 | +buildtest: $(TS_ALL) | 45 | +buildtest: $(TS_ALL) |
39 | + | 46 | + |
40 | check: $(TS_ALL) | 47 | check: $(TS_ALL) $(TS_ALL:sc-%=%) |
41 | TEST_SHLIB_DIR="$(TEST_SHLIB_DIR)" \ | 48 | TEST_SHLIB_DIR="$(TEST_SHLIB_DIR)" \ |
42 | srcdir="$(srcdir)" \ | 49 | srcdir="$(srcdir)" \ |
43 | -- | ||
44 | 2.17.1 | ||
45 | |||
diff --git a/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch b/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch index d5f266681e..89b5c7bec4 100644 --- a/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch +++ b/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From ffee6b5f6204a0210f717968ec6ce514d70acca1 Mon Sep 17 00:00:00 2001 | 1 | From ec2ca7e505e6bfe1fff2a7d6e6bb39b60b93e19a Mon Sep 17 00:00:00 2001 |
2 | From: Haiqing Bai <Haiqing.Bai@windriver.com> | 2 | From: Haiqing Bai <Haiqing.Bai@windriver.com> |
3 | Date: Fri, 9 Dec 2016 15:23:17 +0800 | 3 | Date: Fri, 9 Dec 2016 15:23:17 +0800 |
4 | Subject: [PATCH] nettle: check header files of openssl only if | 4 | Subject: [PATCH] nettle: check header files of openssl only if |
@@ -15,19 +15,26 @@ refactored for 3.4. pending not in as of 3.4 | |||
15 | 15 | ||
16 | Signed-off-by: Armin Kuster <akuster@mvista.com> | 16 | Signed-off-by: Armin Kuster <akuster@mvista.com> |
17 | 17 | ||
18 | Index: nettle-3.4/configure.ac | 18 | Refactor for 3.10. |
19 | =================================================================== | 19 | |
20 | --- nettle-3.4.orig/configure.ac | 20 | Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> |
21 | +++ nettle-3.4/configure.ac | 21 | --- |
22 | @@ -185,9 +185,11 @@ AC_HEADER_TIME | 22 | configure.ac | 8 +++++--- |
23 | 1 file changed, 5 insertions(+), 3 deletions(-) | ||
24 | |||
25 | diff --git a/configure.ac b/configure.ac | ||
26 | index 7c003bb..779f7ff 100644 | ||
27 | --- a/configure.ac | ||
28 | +++ b/configure.ac | ||
29 | @@ -197,9 +197,11 @@ AC_TYPE_SIZE_T | ||
23 | AC_CHECK_SIZEOF(long) | 30 | AC_CHECK_SIZEOF(long) |
24 | AC_CHECK_SIZEOF(size_t) | 31 | AC_CHECK_SIZEOF(size_t) |
25 | 32 | ||
26 | -AC_CHECK_HEADERS([openssl/evp.h openssl/ecdsa.h],, | 33 | -AC_CHECK_HEADERS([openssl/evp.h openssl/ec.h openssl/rsa.h],, |
27 | -[enable_openssl=no | 34 | -[enable_openssl=no |
28 | - break]) | 35 | - break]) |
29 | +if test "x$enable_openssl" = "xyes"; then | 36 | +if test "x$enable_openssl" = "xyes"; then |
30 | + AC_CHECK_HEADERS([openssl/evp.h openssl/ecdsa.h],, | 37 | + AC_CHECK_HEADERS([openssl/evp.h openssl/ec.h openssl/rsa.h],, |
31 | + [enable_openssl=no | 38 | + [enable_openssl=no |
32 | + break]) | 39 | + break]) |
33 | +fi | 40 | +fi |
diff --git a/meta/recipes-support/nettle/nettle_3.9.1.bb b/meta/recipes-support/nettle/nettle_3.10.1.bb index 396708cf87..267a6ed449 100644 --- a/meta/recipes-support/nettle/nettle_3.9.1.bb +++ b/meta/recipes-support/nettle/nettle_3.10.1.bb | |||
@@ -18,9 +18,10 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ | |||
18 | file://Add-target-to-only-build-tests-not-run-them.patch \ | 18 | file://Add-target-to-only-build-tests-not-run-them.patch \ |
19 | file://run-ptest \ | 19 | file://run-ptest \ |
20 | file://check-header-files-of-openssl-only-if-enable_.patch \ | 20 | file://check-header-files-of-openssl-only-if-enable_.patch \ |
21 | file://0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch \ | ||
21 | " | 22 | " |
22 | 23 | ||
23 | SRC_URI[sha256sum] = "ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3" | 24 | SRC_URI[sha256sum] = "b0fcdd7fc0cdea6e80dcf1dd85ba794af0d5b4a57e26397eee3bc193272d9132" |
24 | 25 | ||
25 | UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar" | 26 | UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar" |
26 | 27 | ||
@@ -46,6 +47,7 @@ do_install_ptest() { | |||
46 | install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ | 47 | install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ |
47 | install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ | 48 | install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ |
48 | install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ | 49 | install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ |
50 | install ${S}/testsuite/sc-valgrind.sh ${D}${PTEST_PATH}/testsuite/ | ||
49 | 51 | ||
50 | # Install a symlink for dlopen-test | 52 | # Install a symlink for dlopen-test |
51 | ln -sr ${D}${libdir}/libnettle.so.*.* ${D}${PTEST_PATH}/libnettle.so | 53 | ln -sr ${D}${libdir}/libnettle.so.*.* ${D}${PTEST_PATH}/libnettle.so |
diff --git a/meta/recipes-support/nghttp2/nghttp2_1.61.0.bb b/meta/recipes-support/nghttp2/nghttp2_1.65.0.bb index ad85576dcb..008935f165 100644 --- a/meta/recipes-support/nghttp2/nghttp2_1.61.0.bb +++ b/meta/recipes-support/nghttp2/nghttp2_1.65.0.bb | |||
@@ -5,7 +5,7 @@ LICENSE = "MIT" | |||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec" | 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec" |
6 | 6 | ||
7 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz" | 7 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz" |
8 | SRC_URI[sha256sum] = "c0e660175b9dc429f11d25b9507a834fb752eea9135ab420bb7cb7e9dbcc9654" | 8 | SRC_URI[sha256sum] = "f1b9df5f02e9942b31247e3d415483553bc4ac501c87aa39340b6d19c92a9331" |
9 | 9 | ||
10 | inherit cmake manpages python3native github-releases | 10 | inherit cmake manpages python3native github-releases |
11 | PACKAGECONFIG[manpages] = "" | 11 | PACKAGECONFIG[manpages] = "" |
diff --git a/meta/recipes-support/npth/npth/musl-fix.patch b/meta/recipes-support/npth/npth/musl-fix.patch deleted file mode 100644 index fabe78b14c..0000000000 --- a/meta/recipes-support/npth/npth/musl-fix.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From 417abd56fd7bf45cd4948414050615cb1ad59134 Mon Sep 17 00:00:00 2001 | ||
2 | From: NIIBE Yutaka <gniibe@fsij.org> | ||
3 | Date: Fri, 1 Mar 2024 13:53:52 +0900 | ||
4 | Subject: [PATCH] Fix INSERT_EXPOSE_RWLOCK_API for musl C library. | ||
5 | |||
6 | * configure.ac: Add a case for musl system. | ||
7 | |||
8 | Upstream-Status: Backport [https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=417abd56fd7bf45cd4948414050615cb1ad59134] | ||
9 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
10 | -- | ||
11 | |||
12 | GnuPG-bug-id: 5664 | ||
13 | Signed-off-by: NIIBE Yutaka <gniibe@fsij.org> | ||
14 | --- | ||
15 | configure.ac | 5 ++++- | ||
16 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/configure.ac b/configure.ac | ||
19 | index c1091b1..576a26e 100644 | ||
20 | --- a/configure.ac | ||
21 | +++ b/configure.ac | ||
22 | @@ -381,7 +381,10 @@ fi | ||
23 | AC_SUBST(INSERT_NO_RWLOCK) | ||
24 | |||
25 | case "${host}" in | ||
26 | - *-*-linux*|*-*-gnu*) | ||
27 | + *-*-linux-musl*) | ||
28 | + INSERT_EXPOSE_RWLOCK_API="1" | ||
29 | + ;; | ||
30 | + *-*-linux-gnu*|*-*-gnu*) | ||
31 | INSERT_EXPOSE_RWLOCK_API="defined(__USE_UNIX98) || defined(__USE_XOPEN2K)" | ||
32 | ;; | ||
33 | *) | ||
34 | -- | ||
35 | 2.30.2 | ||
36 | |||
37 | |||
diff --git a/meta/recipes-support/npth/npth/pkgconfig.patch b/meta/recipes-support/npth/npth/pkgconfig.patch deleted file mode 100644 index e736921b43..0000000000 --- a/meta/recipes-support/npth/npth/pkgconfig.patch +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | From ff19a9648f1c7d93087e2c33ca64bb881d53ea5a Mon Sep 17 00:00:00 2001 | ||
2 | From: Saul Wold <sgw@linux.intel.com> | ||
3 | Date: Mon, 10 Nov 2014 13:59:03 -0800 | ||
4 | Subject: [PATCH] Added npth pkgconfig file | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Signed-off-by: Saul Wold <sgw@linux.intel.com> | ||
9 | --- | ||
10 | configure.ac | 1 + | ||
11 | src/Makefile.am | 4 +++- | ||
12 | src/npth.pc.in | 10 ++++++++++ | ||
13 | 3 files changed, 14 insertions(+), 1 deletion(-) | ||
14 | create mode 100644 src/npth.pc.in | ||
15 | |||
16 | diff --git a/configure.ac b/configure.ac | ||
17 | index 10f3629..65b76a1 100644 | ||
18 | --- a/configure.ac | ||
19 | +++ b/configure.ac | ||
20 | @@ -476,6 +476,7 @@ src/Makefile | ||
21 | w32/Makefile | ||
22 | tests/Makefile]) | ||
23 | AC_CONFIG_FILES(npth-config, chmod +x npth-config) | ||
24 | +AC_CONFIG_FILES([src/npth.pc]) | ||
25 | AC_OUTPUT | ||
26 | |||
27 | echo " | ||
28 | diff --git a/src/Makefile.am b/src/Makefile.am | ||
29 | index 7070118..6f01c64 100644 | ||
30 | --- a/src/Makefile.am | ||
31 | +++ b/src/Makefile.am | ||
32 | @@ -17,8 +17,10 @@ | ||
33 | # License along with this program; if not, see <http://www.gnu.org/licenses/>. | ||
34 | |||
35 | ## Process this file with automake to produce Makefile.in | ||
36 | +pkgconfigdir = $(libdir)/pkgconfig | ||
37 | +pkgconfig_DATA = npth.pc | ||
38 | |||
39 | -EXTRA_DIST = libnpth.vers | ||
40 | +EXTRA_DIST = libnpth.vers npth.pc | ||
41 | # versioninfo.rc.in | ||
42 | nodist_include_HEADERS = npth.h | ||
43 | |||
44 | diff --git a/src/npth.pc.in b/src/npth.pc.in | ||
45 | new file mode 100644 | ||
46 | index 0000000..db091e8 | ||
47 | --- /dev/null | ||
48 | +++ b/src/npth.pc.in | ||
49 | @@ -0,0 +1,10 @@ | ||
50 | +prefix=@prefix@ | ||
51 | +exec_prefix=@exec_prefix@ | ||
52 | +libdir=@libdir@ | ||
53 | +includedir=@includedir@ | ||
54 | + | ||
55 | +Name: npth | ||
56 | +Description: a new portable posix threading library | ||
57 | +Version: @VERSION@ | ||
58 | +Libs: -L${libdir} -lnpth -lpthread | ||
59 | +Cflags: -I${includedir} | ||
diff --git a/meta/recipes-support/npth/npth_1.7.bb b/meta/recipes-support/npth/npth_1.7.bb deleted file mode 100644 index f02a731f85..0000000000 --- a/meta/recipes-support/npth/npth_1.7.bb +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | SUMMARY = "New GNU Portable Threads library" | ||
2 | DESCRIPTION = "nPth is a library to provide the GNU Pth API and thus a non-preemptive threads implementation. " | ||
3 | HOMEPAGE = "https://www.gnu.org/software/pth/" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "LGPL-2.0-or-later" | ||
6 | LIC_FILES_CHKSUM = "\ | ||
7 | file://COPYING.LIB;md5=2caced0b25dfefd4c601d92bd15116de\ | ||
8 | " | ||
9 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | ||
10 | SRC_URI = "${GNUPG_MIRROR}/npth/npth-${PV}.tar.bz2 \ | ||
11 | file://pkgconfig.patch \ | ||
12 | file://musl-fix.patch \ | ||
13 | " | ||
14 | |||
15 | SRC_URI[sha256sum] = "8589f56937b75ce33b28d312fccbf302b3b71ec3f3945fde6aaa74027914ad05" | ||
16 | |||
17 | inherit autotools binconfig-disabled multilib_header | ||
18 | |||
19 | FILES:${PN} = "${libdir}/libnpth.so.*" | ||
20 | |||
21 | do_install:append() { | ||
22 | oe_multilib_header npth.h | ||
23 | } | ||
24 | |||
25 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-support/npth/npth_1.8.bb b/meta/recipes-support/npth/npth_1.8.bb new file mode 100644 index 0000000000..a354af2a7c --- /dev/null +++ b/meta/recipes-support/npth/npth_1.8.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "New GNU Portable Threads library" | ||
2 | DESCRIPTION = "nPth is a library to provide the GNU Pth API and thus a non-preemptive threads implementation. " | ||
3 | HOMEPAGE = "https://gnupg.org/software/npth/" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "LGPL-2.0-or-later" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2caced0b25dfefd4c601d92bd15116de" | ||
7 | UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" | ||
8 | |||
9 | SRC_URI = "${GNUPG_MIRROR}/npth/npth-${PV}.tar.bz2" | ||
10 | |||
11 | SRC_URI[sha256sum] = "8bd24b4f23a3065d6e5b26e98aba9ce783ea4fd781069c1b35d149694e90ca3e" | ||
12 | |||
13 | inherit autotools multilib_header | ||
14 | |||
15 | do_install:append() { | ||
16 | oe_multilib_header npth.h | ||
17 | } | ||
18 | |||
19 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb index 742e77eb18..9e41c5b9ed 100644 --- a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb +++ b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb | |||
@@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1" | |||
9 | SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${PV}.tar.gz \ | 9 | SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${PV}.tar.gz \ |
10 | " | 10 | " |
11 | 11 | ||
12 | SRC_URI[md5sum] = "d4ab9ac36c053ab8fb836db1cbd4a48f" | ||
13 | SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2" | 12 | SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2" |
14 | 13 | ||
15 | inherit autotools features_check | 14 | inherit autotools features_check |
diff --git a/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch index 8345f71d72..b7a2e51582 100644 --- a/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch +++ b/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch | |||
@@ -3,7 +3,7 @@ From: Li xin <lixin.fnst@cn.fujitsu.com> | |||
3 | Date: Tue, 21 Jul 2015 02:01:22 +0900 | 3 | Date: Tue, 21 Jul 2015 02:01:22 +0900 |
4 | Subject: [PATCH] Fix the test output format | 4 | Subject: [PATCH] Fix the test output format |
5 | 5 | ||
6 | Upstream-Status: Pending | 6 | Upstream-Status: Inappropriate [needs a Makefile fix: regress/regress2 should be part of 'make check' rather than 'make test'] |
7 | 7 | ||
8 | Signed-off-by: Roy Li <rongqing.li@windriver.com> | 8 | Signed-off-by: Roy Li <rongqing.li@windriver.com> |
9 | Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> | 9 | Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> |
diff --git a/meta/recipes-support/numactl/numactl_git.bb b/meta/recipes-support/numactl/numactl_2.0.19.bb index bd16df91ec..5ac9380c6c 100644 --- a/meta/recipes-support/numactl/numactl_git.bb +++ b/meta/recipes-support/numactl/numactl_2.0.19.bb | |||
@@ -10,8 +10,7 @@ inherit autotools-brokensep ptest | |||
10 | 10 | ||
11 | LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=9f34c3af4ed6f3f5df0da5f3c0835a43" | 11 | LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=9f34c3af4ed6f3f5df0da5f3c0835a43" |
12 | 12 | ||
13 | SRCREV = "3871b1c42fc71bceadafd745d2eff5dddfc2d67e" | 13 | SRCREV = "3bc85e37d5a30da6790cb7e8bb488bb8f679170f" |
14 | PV = "2.0.18" | ||
15 | 14 | ||
16 | SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \ | 15 | SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \ |
17 | file://Fix-the-test-output-format.patch \ | 16 | file://Fix-the-test-output-format.patch \ |
@@ -20,8 +19,6 @@ SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \ | |||
20 | file://0001-define-run-test-target.patch \ | 19 | file://0001-define-run-test-target.patch \ |
21 | " | 20 | " |
22 | 21 | ||
23 | S = "${WORKDIR}/git" | ||
24 | |||
25 | LDFLAGS:append:riscv64 = " -latomic" | 22 | LDFLAGS:append:riscv64 = " -latomic" |
26 | LDFLAGS:append:riscv32 = " -latomic" | 23 | LDFLAGS:append:riscv32 = " -latomic" |
27 | 24 | ||
@@ -52,7 +49,7 @@ do_install_ptest() { | |||
52 | install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test | 49 | install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test |
53 | done | 50 | done |
54 | 51 | ||
55 | install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/ | 52 | install -m 0755 ${UNPACKDIR}/Makefile ${D}${PTEST_PATH}/ |
56 | install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/ | 53 | install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/ |
57 | } | 54 | } |
58 | 55 | ||
diff --git a/meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch b/meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch deleted file mode 100644 index 47df027106..0000000000 --- a/meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | It fails occasionally with missing generated header files: | ||
2 | |||
3 | | ../git/common/asn1.c:42:10: fatal error: openssl.asn.h: No such file or directory | ||
4 | | 42 | #include "openssl.asn.h" | ||
5 | | | ^~~~~~~~~~~~~~~ | ||
6 | | compilation terminated. | ||
7 | |||
8 | According to meson manual page: | ||
9 | |||
10 | https://mesonbuild.com/Wrap-best-practices-and-tips.html#declare-generated-headers-explicitly | ||
11 | |||
12 | 'asn_h_dep' should be a dependency of static_library target 'libp11_asn1' to | ||
13 | make sure that required header files generated before compile common/asn1.c. | ||
14 | |||
15 | Upstream-Status: Submitted [https://github.com/p11-glue/p11-kit/pull/619] | ||
16 | |||
17 | Signed-off-by: Kai Kang <kai.kang@windriver.com> | ||
18 | --- | ||
19 | common/meson.build | 1 + | ||
20 | 1 file changed, 1 insertion(+) | ||
21 | |||
22 | diff --git a/common/meson.build b/common/meson.build | ||
23 | index dc86d7b..cc3ec48 100644 | ||
24 | --- a/common/meson.build | ||
25 | +++ b/common/meson.build | ||
26 | @@ -113,6 +113,7 @@ if with_asn1 | ||
27 | 'p11-asn1', libp11_asn1_sources, | ||
28 | gnu_symbol_visibility: 'hidden', | ||
29 | include_directories: configinc, | ||
30 | + dependencies: asn_h_dep, | ||
31 | ) | ||
32 | |||
33 | libp11_asn1_dep = declare_dependency( | ||
diff --git a/meta/recipes-support/p11-kit/p11-kit_0.25.3.bb b/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb index b7ebd44abc..d60e4abdaf 100644 --- a/meta/recipes-support/p11-kit/p11-kit_0.25.3.bb +++ b/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb | |||
@@ -11,10 +11,8 @@ DEPENDS = "libtasn1 libtasn1-native libffi" | |||
11 | DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" | 11 | DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" |
12 | 12 | ||
13 | SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https \ | 13 | SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https \ |
14 | file://fix-parallel-build-failures.patch \ | ||
15 | " | 14 | " |
16 | SRCREV = "917e02a3211dabbdea4b079cb598581dce84fda1" | 15 | SRCREV = "0dd113361057e477f40ff4d8788f3e7e400af5f9" |
17 | S = "${WORKDIR}/git" | ||
18 | 16 | ||
19 | PACKAGECONFIG ??= "" | 17 | PACKAGECONFIG ??= "" |
20 | PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native" | 18 | PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native" |
@@ -32,3 +30,13 @@ FILES:${PN} += " \ | |||
32 | INSANE_SKIP:${PN} = "dev-so" | 30 | INSANE_SKIP:${PN} = "dev-so" |
33 | 31 | ||
34 | BBCLASSEXTEND = "native nativesdk" | 32 | BBCLASSEXTEND = "native nativesdk" |
33 | |||
34 | # # This one is reproducible only on 32bit MACHINEs | ||
35 | # http://errors.yoctoproject.org/Errors/Details/766969/ | ||
36 | # git/p11-kit/import-object.c:223:62: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types] | ||
37 | # git/p11-kit/import-object.c:229:70: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types] | ||
38 | # git/p11-kit/import-object.c:264:78: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types] | ||
39 | # git/p11-kit/import-object.c:223:62: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types] | ||
40 | # git/p11-kit/import-object.c:229:70: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types] | ||
41 | # git/p11-kit/import-object.c:264:78: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types] | ||
42 | CFLAGS += "-Wno-error=incompatible-pointer-types" | ||
diff --git a/meta/recipes-support/pinentry/pinentry-1.2.1/gpg-error_pkconf.patch b/meta/recipes-support/pinentry/pinentry-1.3.1/gpg-error_pkconf.patch index bb7e43b1e7..863ba9e34b 100644 --- a/meta/recipes-support/pinentry/pinentry-1.2.1/gpg-error_pkconf.patch +++ b/meta/recipes-support/pinentry/pinentry-1.3.1/gpg-error_pkconf.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 785777dc0bc6b69ff68c91547ec6b6634049662f Mon Sep 17 00:00:00 2001 | 1 | From ccc3c6a8d469bbfa6717b970cfe70816c1fd545e Mon Sep 17 00:00:00 2001 |
2 | From: Armin Kuster <akuster@mvista.com> | 2 | From: Armin Kuster <akuster@mvista.com> |
3 | Date: Fri, 2 Sep 2005 11:50:01 +0000 | 3 | Date: Fri, 2 Sep 2005 11:50:01 +0000 |
4 | Subject: [PATCH] Add gtk+, avahi, dbus-0.34 (.36 coming soon) and | 4 | Subject: [PATCH] Add gtk+, avahi, dbus-0.34 (.36 coming soon) and |
@@ -9,20 +9,20 @@ the gpg-error recipe for gpg-error.pc generation. | |||
9 | Upstream-Status: Inappropriate [OE specific] | 9 | Upstream-Status: Inappropriate [OE specific] |
10 | 10 | ||
11 | Signed-off-by: Armin Kuster <akuster@mvista.com> | 11 | Signed-off-by: Armin Kuster <akuster@mvista.com> |
12 | |||
13 | --- | 12 | --- |
14 | m4/gpg-error.m4 | 160 ++---------------------------------------------- | 13 | m4/gpg-error.m4 | 184 ++---------------------------------------------- |
15 | 1 file changed, 4 insertions(+), 156 deletions(-) | 14 | 1 file changed, 5 insertions(+), 179 deletions(-) |
16 | 15 | ||
17 | diff --git a/m4/gpg-error.m4 b/m4/gpg-error.m4 | 16 | diff --git a/m4/gpg-error.m4 b/m4/gpg-error.m4 |
18 | index 4b5cd40..7dfbb83 100644 | 17 | index 7fa52b1..c0784ed 100644 |
19 | --- a/m4/gpg-error.m4 | 18 | --- a/m4/gpg-error.m4 |
20 | +++ b/m4/gpg-error.m4 | 19 | +++ b/m4/gpg-error.m4 |
21 | @@ -26,160 +26,12 @@ dnl config script does not match the host specification the script | 20 | @@ -15,188 +15,18 @@ |
22 | dnl is added to the gpg_config_script_warn variable. | 21 | dnl |
22 | dnl Find gpg-error-config, for backward compatibility | ||
23 | dnl | 23 | dnl |
24 | AC_DEFUN([AM_PATH_GPG_ERROR], | 24 | -dnl _AM_PATH_POSSIBLE_GPG_ERROR_CONFIG |
25 | -[ AC_REQUIRE([AC_CANONICAL_HOST]) | 25 | -AC_DEFUN([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG],[dnl |
26 | - gpg_error_config_prefix="" | 26 | - gpg_error_config_prefix="" |
27 | - dnl --with-libgpg-error-prefix=PFX is the preferred name for this option, | 27 | - dnl --with-libgpg-error-prefix=PFX is the preferred name for this option, |
28 | - dnl since that is consistent with how our three siblings use the directory/ | 28 | - dnl since that is consistent with how our three siblings use the directory/ |
@@ -58,9 +58,14 @@ index 4b5cd40..7dfbb83 100644 | |||
58 | - fi | 58 | - fi |
59 | - | 59 | - |
60 | - AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no) | 60 | - AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no) |
61 | - min_gpg_error_version=ifelse([$1], ,1.33,$1) | 61 | -]) |
62 | - ok=no | ||
63 | - | 62 | - |
63 | -dnl | ||
64 | -dnl Find gpgrt-config, which uses .pc file | ||
65 | -dnl (minimum pkg-config functionality, supporting cross build) | ||
66 | -dnl | ||
67 | -dnl _AM_PATH_GPGRT_CONFIG | ||
68 | -AC_DEFUN([_AM_PATH_GPGRT_CONFIG],[dnl | ||
64 | - AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH]) | 69 | - AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH]) |
65 | - if test "$GPGRT_CONFIG" != "no"; then | 70 | - if test "$GPGRT_CONFIG" != "no"; then |
66 | - # Determine gpgrt_libdir | 71 | - # Determine gpgrt_libdir |
@@ -116,8 +121,9 @@ index 4b5cd40..7dfbb83 100644 | |||
116 | - fi | 121 | - fi |
117 | - if test -n "$gpgrt_libdir"; then break; fi | 122 | - if test -n "$gpgrt_libdir"; then break; fi |
118 | - done | 123 | - done |
119 | - else | 124 | - fi |
120 | - # When we cannot determine system libdir-format, use this: | 125 | - if test -z "$gpgrt_libdir"; then |
126 | - # No valid pkgconfig dir in any of the system directories, fallback | ||
121 | - gpgrt_libdir=${possible_libdir1} | 127 | - gpgrt_libdir=${possible_libdir1} |
122 | - fi | 128 | - fi |
123 | - else | 129 | - else |
@@ -131,12 +137,33 @@ index 4b5cd40..7dfbb83 100644 | |||
131 | - AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) | 137 | - AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) |
132 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` | 138 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` |
133 | - else | 139 | - else |
140 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --version` | ||
134 | - unset GPGRT_CONFIG | 141 | - unset GPGRT_CONFIG |
135 | - fi | 142 | - fi |
136 | - elif test "$GPG_ERROR_CONFIG" != "no"; then | 143 | - elif test "$GPG_ERROR_CONFIG" != "no"; then |
137 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --version` | 144 | - gpg_error_config_version=`$GPG_ERROR_CONFIG --version` |
138 | - unset GPGRT_CONFIG | 145 | - unset GPGRT_CONFIG |
139 | - fi | 146 | - fi |
147 | -]) | ||
148 | - | ||
149 | -dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION, | ||
150 | -dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) | ||
151 | -dnl | ||
152 | -dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS, | ||
153 | -dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are | ||
154 | -dnl used for programs requireing real multi thread support. | ||
155 | -dnl | ||
156 | dnl If a prefix option is not used, the config script is first | ||
157 | dnl searched in $SYSROOT/bin and then along $PATH. If the used | ||
158 | dnl config script does not match the host specification the script | ||
159 | dnl is added to the gpg_config_script_warn variable. | ||
160 | dnl | ||
161 | -AC_DEFUN([AM_PATH_GPG_ERROR],[dnl | ||
162 | -AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
163 | -AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl | ||
164 | -AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl | ||
165 | - min_gpg_error_version=ifelse([$1], ,1.33,$1) | ||
166 | - ok=no | ||
140 | - if test "$GPG_ERROR_CONFIG" != "no"; then | 167 | - if test "$GPG_ERROR_CONFIG" != "no"; then |
141 | - req_major=`echo $min_gpg_error_version | \ | 168 | - req_major=`echo $min_gpg_error_version | \ |
142 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` | 169 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` |
@@ -157,6 +184,7 @@ index 4b5cd40..7dfbb83 100644 | |||
157 | - fi | 184 | - fi |
158 | - fi | 185 | - fi |
159 | - AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) | 186 | - AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) |
187 | +AC_DEFUN([AM_PATH_GPG_ERROR], | ||
160 | +[ | 188 | +[ |
161 | + min_gpg_error_version=ifelse([$1], ,0.0,$1) | 189 | + min_gpg_error_version=ifelse([$1], ,0.0,$1) |
162 | + PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version gpg-error], [ok=yes], [ok=no]) | 190 | + PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version gpg-error], [ok=yes], [ok=no]) |
@@ -183,7 +211,7 @@ index 4b5cd40..7dfbb83 100644 | |||
183 | if test x"$gpg_error_config_host" != xnone ; then | 211 | if test x"$gpg_error_config_host" != xnone ; then |
184 | if test x"$gpg_error_config_host" != x"$host" ; then | 212 | if test x"$gpg_error_config_host" != x"$host" ; then |
185 | AC_MSG_WARN([[ | 213 | AC_MSG_WARN([[ |
186 | @@ -194,10 +46,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR], | 214 | @@ -211,10 +41,6 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl |
187 | fi | 215 | fi |
188 | fi | 216 | fi |
189 | else | 217 | else |
diff --git a/meta/recipes-support/pinentry/pinentry-1.2.1/libassuan_pkgconf.patch b/meta/recipes-support/pinentry/pinentry-1.3.1/libassuan_pkgconf.patch index f4aec2d1c3..f2d50010c5 100644 --- a/meta/recipes-support/pinentry/pinentry-1.2.1/libassuan_pkgconf.patch +++ b/meta/recipes-support/pinentry/pinentry-1.3.1/libassuan_pkgconf.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 26fb6c3faa27180c8ed9ada1728c3d8683a65f3a Mon Sep 17 00:00:00 2001 | 1 | From 1bf04756b90832494020c39661ea944a0b11204f Mon Sep 17 00:00:00 2001 |
2 | From: Armin Kuster <akuster@mvista.com> | 2 | From: Armin Kuster <akuster@mvista.com> |
3 | Date: Thu, 22 May 2014 10:50:00 +0100 | 3 | Date: Thu, 22 May 2014 10:50:00 +0100 |
4 | Subject: [PATCH] libassuan: Improve pkgconfig support | 4 | Subject: [PATCH] libassuan: Improve pkgconfig support |
@@ -9,17 +9,16 @@ the libassuan recipe for libassuan.pc generation. | |||
9 | Upstream-Status: Inappropriate [OE specific] | 9 | Upstream-Status: Inappropriate [OE specific] |
10 | 10 | ||
11 | Signed-off-by: Armin Kuster <akuster@mvista.com> | 11 | Signed-off-by: Armin Kuster <akuster@mvista.com> |
12 | |||
13 | --- | 12 | --- |
14 | configure.ac | 4 +-- | 13 | configure.ac | 4 +-- |
15 | m4/libassuan.m4 | 93 ++++--------------------------------------------- | 14 | m4/libassuan.m4 | 94 ++++--------------------------------------------- |
16 | 2 files changed, 9 insertions(+), 88 deletions(-) | 15 | 2 files changed, 9 insertions(+), 89 deletions(-) |
17 | 16 | ||
18 | diff --git a/configure.ac b/configure.ac | 17 | diff --git a/configure.ac b/configure.ac |
19 | index d8dcc0c..ca51766 100644 | 18 | index 4944f7c..f03cbb7 100644 |
20 | --- a/configure.ac | 19 | --- a/configure.ac |
21 | +++ b/configure.ac | 20 | +++ b/configure.ac |
22 | @@ -267,8 +267,8 @@ if test "$have_libassuan" = "yes"; then | 21 | @@ -264,8 +264,8 @@ if test "$have_libassuan" = "yes"; then |
23 | [version of the libassuan library]) | 22 | [version of the libassuan library]) |
24 | fi | 23 | fi |
25 | 24 | ||
@@ -31,7 +30,7 @@ index d8dcc0c..ca51766 100644 | |||
31 | 30 | ||
32 | dnl Checks for libsecmem. | 31 | dnl Checks for libsecmem. |
33 | diff --git a/m4/libassuan.m4 b/m4/libassuan.m4 | 32 | diff --git a/m4/libassuan.m4 b/m4/libassuan.m4 |
34 | index df50484..2057412 100644 | 33 | index a2eb5d9..897f407 100644 |
35 | --- a/m4/libassuan.m4 | 34 | --- a/m4/libassuan.m4 |
36 | +++ b/m4/libassuan.m4 | 35 | +++ b/m4/libassuan.m4 |
37 | @@ -15,30 +15,8 @@ dnl | 36 | @@ -15,30 +15,8 @@ dnl |
@@ -51,7 +50,7 @@ index df50484..2057412 100644 | |||
51 | - fi | 50 | - fi |
52 | - | 51 | - |
53 | - use_gpgrt_config="" | 52 | - use_gpgrt_config="" |
54 | - if test x"${LIBASSUAN_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then | 53 | - if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then |
55 | - if $GPGRT_CONFIG libassuan --exists; then | 54 | - if $GPGRT_CONFIG libassuan --exists; then |
56 | - LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" | 55 | - LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" |
57 | - AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) | 56 | - AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) |
@@ -67,7 +66,7 @@ index df50484..2057412 100644 | |||
67 | tmp=ifelse([$1], ,1:0.9.2,$1) | 66 | tmp=ifelse([$1], ,1:0.9.2,$1) |
68 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | 67 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then |
69 | req_libassuan_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` | 68 | req_libassuan_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` |
70 | @@ -48,58 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], | 69 | @@ -48,59 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], |
71 | min_libassuan_version="$tmp" | 70 | min_libassuan_version="$tmp" |
72 | fi | 71 | fi |
73 | 72 | ||
@@ -112,6 +111,7 @@ index df50484..2057412 100644 | |||
112 | - | 111 | - |
113 | - if test $ok = yes; then | 112 | - if test $ok = yes; then |
114 | - AC_MSG_RESULT([yes ($libassuan_config_version)]) | 113 | - AC_MSG_RESULT([yes ($libassuan_config_version)]) |
114 | - AC_DEFINE(LIBASSUAN_API_REQUESTED, $req_libassuan_api, Requested API version for libassuan) | ||
115 | - else | 115 | - else |
116 | - AC_MSG_RESULT(no) | 116 | - AC_MSG_RESULT(no) |
117 | - fi | 117 | - fi |
@@ -128,7 +128,7 @@ index df50484..2057412 100644 | |||
128 | if test "$tmp" -gt 0 ; then | 128 | if test "$tmp" -gt 0 ; then |
129 | AC_MSG_CHECKING([LIBASSUAN API version]) | 129 | AC_MSG_CHECKING([LIBASSUAN API version]) |
130 | if test "$req_libassuan_api" -eq "$tmp" ; then | 130 | if test "$req_libassuan_api" -eq "$tmp" ; then |
131 | @@ -114,11 +45,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], | 131 | @@ -117,11 +47,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], |
132 | 132 | ||
133 | if test $ok = yes; then | 133 | if test $ok = yes; then |
134 | if test x"$host" != x ; then | 134 | if test x"$host" != x ; then |
@@ -141,7 +141,7 @@ index df50484..2057412 100644 | |||
141 | if test x"$libassuan_config_host" != xnone ; then | 141 | if test x"$libassuan_config_host" != xnone ; then |
142 | if test x"$libassuan_config_host" != x"$host" ; then | 142 | if test x"$libassuan_config_host" != x"$host" ; then |
143 | AC_MSG_WARN([[ | 143 | AC_MSG_WARN([[ |
144 | @@ -141,7 +68,7 @@ dnl Test whether libassuan has at least MINIMUM-VERSION. This is | 144 | @@ -144,7 +70,7 @@ dnl Test whether libassuan has at least MINIMUM-VERSION. This is |
145 | dnl used to test for features only available in newer versions. | 145 | dnl used to test for features only available in newer versions. |
146 | dnl | 146 | dnl |
147 | AC_DEFUN([AM_CHECK_LIBASSUAN], | 147 | AC_DEFUN([AM_CHECK_LIBASSUAN], |
@@ -150,7 +150,7 @@ index df50484..2057412 100644 | |||
150 | if test $ok = yes; then | 150 | if test $ok = yes; then |
151 | ifelse([$2], , :, [$2]) | 151 | ifelse([$2], , :, [$2]) |
152 | else | 152 | else |
153 | @@ -157,16 +84,10 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) | 153 | @@ -160,16 +86,10 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) |
154 | dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS | 154 | dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS |
155 | dnl | 155 | dnl |
156 | AC_DEFUN([AM_PATH_LIBASSUAN], | 156 | AC_DEFUN([AM_PATH_LIBASSUAN], |
diff --git a/meta/recipes-support/pinentry/pinentry_1.2.1.bb b/meta/recipes-support/pinentry/pinentry_1.3.1.bb index 7daf80f36e..0fc652cdba 100644 --- a/meta/recipes-support/pinentry/pinentry_1.2.1.bb +++ b/meta/recipes-support/pinentry/pinentry_1.3.1.bb | |||
@@ -6,7 +6,7 @@ DESCRIPTION = "\ | |||
6 | 6 | ||
7 | HOMEPAGE = "http://www.gnupg.org/related_software/pinentry/index.en.html" | 7 | HOMEPAGE = "http://www.gnupg.org/related_software/pinentry/index.en.html" |
8 | LICENSE = "GPL-2.0-only" | 8 | LICENSE = "GPL-2.0-only" |
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=cbbd794e2a0a289b9dfcc9f513d1996e" | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" |
10 | 10 | ||
11 | DEPENDS = "gettext-native libassuan libgpg-error" | 11 | DEPENDS = "gettext-native libassuan libgpg-error" |
12 | 12 | ||
@@ -16,10 +16,12 @@ SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ | |||
16 | file://gpg-error_pkconf.patch \ | 16 | file://gpg-error_pkconf.patch \ |
17 | " | 17 | " |
18 | 18 | ||
19 | SRC_URI[sha256sum] = "457a185e5a85238fb945a955dc6352ab962dc8b48720b62fc9fa48c7540a4067" | 19 | SRC_URI[sha256sum] = "bc72ee27c7239007ab1896c3c2fae53b076e2c9bd2483dc2769a16902bce8c04" |
20 | 20 | ||
21 | inherit autotools pkgconfig | 21 | inherit autotools pkgconfig |
22 | 22 | ||
23 | require recipes-support/gnupg/drop-unknown-suffix.inc | ||
24 | |||
23 | PACKAGECONFIG ??= "ncurses" | 25 | PACKAGECONFIG ??= "ncurses" |
24 | 26 | ||
25 | PACKAGECONFIG[ncurses] = "--enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses" | 27 | PACKAGECONFIG[ncurses] = "--enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses" |
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_2.4.3.bb b/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb index e6668da01f..89f85e2455 100644 --- a/meta/recipes-support/ptest-runner/ptest-runner_2.4.3.bb +++ b/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb | |||
@@ -7,14 +7,11 @@ HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/" | |||
7 | LICENSE = "GPL-2.0-or-later" | 7 | LICENSE = "GPL-2.0-or-later" |
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" | 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" |
9 | 9 | ||
10 | SRCREV = "92c1b97bfdb4a94acc1cabcaf97eef52dc29144c" | 10 | SRCREV = "c99e8c2737ff802f110612cc2d90c60233c33255" |
11 | PV .= "+git" | ||
12 | 11 | ||
13 | SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \ | 12 | SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \ |
14 | " | 13 | " |
15 | 14 | ||
16 | S = "${WORKDIR}/git" | ||
17 | |||
18 | FILES:${PN} = "${bindir}/ptest-runner ${bindir}/ptest-runner-collect-system-data" | 15 | FILES:${PN} = "${bindir}/ptest-runner ${bindir}/ptest-runner-collect-system-data" |
19 | 16 | ||
20 | EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\""" | 17 | EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\""" |
diff --git a/meta/recipes-support/re2c/re2c_3.1.bb b/meta/recipes-support/re2c/re2c_4.2.bb index a4b20422f6..0696080603 100644 --- a/meta/recipes-support/re2c/re2c_3.1.bb +++ b/meta/recipes-support/re2c/re2c_4.2.bb | |||
@@ -7,7 +7,7 @@ LICENSE = "PD" | |||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d" | 7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d" |
8 | 8 | ||
9 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" | 9 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" |
10 | SRC_URI[sha256sum] = "0ac299ad359e3f512b06a99397d025cfff81d3be34464ded0656f8a96676c029" | 10 | SRC_URI[sha256sum] = "c9dc2b24f340d135a07a1ac63ff53f7f8f74997fed5a4e9132a64050dbc3da1f" |
11 | GITHUB_BASE_URI = "https://github.com/skvadrik/re2c/releases" | 11 | GITHUB_BASE_URI = "https://github.com/skvadrik/re2c/releases" |
12 | 12 | ||
13 | BBCLASSEXTEND = "native nativesdk" | 13 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.16.bb b/meta/recipes-support/rng-tools/rng-tools_6.17.bb index f0aa3ff93f..c979a91640 100644 --- a/meta/recipes-support/rng-tools/rng-tools_6.16.bb +++ b/meta/recipes-support/rng-tools/rng-tools_6.17.bb | |||
@@ -11,9 +11,7 @@ SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \ | |||
11 | file://default \ | 11 | file://default \ |
12 | file://rng-tools.service \ | 12 | file://rng-tools.service \ |
13 | " | 13 | " |
14 | SRCREV = "e061c313b95890eb5fa0ada0cd6eec619dafdfe2" | 14 | SRCREV = "bd00c08b0c3c6a880b0988befe97fd35b315468c" |
15 | |||
16 | S = "${WORKDIR}/git" | ||
17 | 15 | ||
18 | inherit autotools update-rc.d systemd pkgconfig | 16 | inherit autotools update-rc.d systemd pkgconfig |
19 | 17 | ||
@@ -50,9 +48,9 @@ do_configure:prepend() { | |||
50 | } | 48 | } |
51 | 49 | ||
52 | do_install:append() { | 50 | do_install:append() { |
53 | install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools | 51 | install -Dm 0644 ${UNPACKDIR}/default ${D}${sysconfdir}/default/rng-tools |
54 | install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools | 52 | install -Dm 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/rng-tools |
55 | install -Dm 0644 ${WORKDIR}/rng-tools.service \ | 53 | install -Dm 0644 ${UNPACKDIR}/rng-tools.service \ |
56 | ${D}${systemd_system_unitdir}/rng-tools.service | 54 | ${D}${systemd_system_unitdir}/rng-tools.service |
57 | sed -i \ | 55 | sed -i \ |
58 | -e 's,@SYSCONFDIR@,${sysconfdir},g' \ | 56 | -e 's,@SYSCONFDIR@,${sysconfdir},g' \ |
@@ -67,3 +65,7 @@ do_install:append() { | |||
67 | ${D}${systemd_system_unitdir}/rng-tools.service | 65 | ${D}${systemd_system_unitdir}/rng-tools.service |
68 | fi | 66 | fi |
69 | } | 67 | } |
68 | |||
69 | # libargp detection fails | ||
70 | # http://errors.yoctoproject.org/Errors/Details/766951/ | ||
71 | CFLAGS += "-Wno-error=incompatible-pointer-types" | ||
diff --git a/meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch b/meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch new file mode 100644 index 0000000000..d1356dc83a --- /dev/null +++ b/meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch | |||
@@ -0,0 +1,87 @@ | |||
1 | From e5af3bbc9ea6e56e3d4e5cabcb5ac57b521fa6c0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
3 | Date: Thu, 24 Apr 2025 22:47:52 +0800 | ||
4 | Subject: [PATCH] Remove version.h from source directory | ||
5 | |||
6 | The version.h should be generated from version.h.in. If the build | ||
7 | directory is out of the source directory, the version.h is generated in | ||
8 | build directory and the original version.h in source directory is not | ||
9 | overwritten. However, the latter is used during the build, resulting in | ||
10 | a missing runtime version: | ||
11 | |||
12 | $ sassc --version | ||
13 | sassc: [NA] | ||
14 | libsass: [NA] | ||
15 | sass2scss: 1.1.1 | ||
16 | sass: 3.5 | ||
17 | |||
18 | Remove version.h from source directory to ensure that the version.h in | ||
19 | build directory is used during the build. | ||
20 | |||
21 | Also remove '--dirty' option from 'git describe' command line in | ||
22 | version.sh to get rid of '-dirty' suffix from version number that | ||
23 | was introduced with this change. | ||
24 | |||
25 | Upstream-Status: Submitted [https://github.com/sass/libsass/pull/3196] | ||
26 | |||
27 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
28 | --- | ||
29 | include/sass/version.h | 12 ------------ | ||
30 | src/GNUmakefile.am | 4 ++-- | ||
31 | version.sh | 2 +- | ||
32 | 3 files changed, 3 insertions(+), 15 deletions(-) | ||
33 | delete mode 100644 include/sass/version.h | ||
34 | |||
35 | diff --git a/include/sass/version.h b/include/sass/version.h | ||
36 | deleted file mode 100644 | ||
37 | index 56ea016a..00000000 | ||
38 | --- a/include/sass/version.h | ||
39 | +++ /dev/null | ||
40 | @@ -1,12 +0,0 @@ | ||
41 | -#ifndef SASS_VERSION_H | ||
42 | -#define SASS_VERSION_H | ||
43 | - | ||
44 | -#ifndef LIBSASS_VERSION | ||
45 | -#define LIBSASS_VERSION "[NA]" | ||
46 | -#endif | ||
47 | - | ||
48 | -#ifndef LIBSASS_LANGUAGE_VERSION | ||
49 | -#define LIBSASS_LANGUAGE_VERSION "3.5" | ||
50 | -#endif | ||
51 | - | ||
52 | -#endif | ||
53 | diff --git a/src/GNUmakefile.am b/src/GNUmakefile.am | ||
54 | index 9b0e6a99..e955f0b4 100644 | ||
55 | --- a/src/GNUmakefile.am | ||
56 | +++ b/src/GNUmakefile.am | ||
57 | @@ -8,7 +8,7 @@ if ENABLE_COVERAGE | ||
58 | AM_COVLDFLAGS += -lgcov | ||
59 | endif | ||
60 | |||
61 | -AM_CPPFLAGS = -I$(top_srcdir)/include | ||
62 | +AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include | ||
63 | AM_CFLAGS = $(AM_COPT) | ||
64 | AM_CXXFLAGS = $(AM_COPT) | ||
65 | AM_LDFLAGS = $(AM_COPT) $(AM_COVLDFLAGS) | ||
66 | @@ -45,6 +45,6 @@ sass_includedir = $(includedir)/sass | ||
67 | |||
68 | sass_include_HEADERS = $(top_srcdir)/include/sass/base.h \ | ||
69 | $(top_srcdir)/include/sass/values.h \ | ||
70 | - $(top_srcdir)/include/sass/version.h \ | ||
71 | + $(top_builddir)/include/sass/version.h \ | ||
72 | $(top_srcdir)/include/sass/context.h \ | ||
73 | $(top_srcdir)/include/sass/functions.h | ||
74 | diff --git a/version.sh b/version.sh | ||
75 | index 281de74d..7bc57230 100755 | ||
76 | --- a/version.sh | ||
77 | +++ b/version.sh | ||
78 | @@ -1,5 +1,5 @@ | ||
79 | if test "x$LIBSASS_VERSION" = "x"; then | ||
80 | - LIBSASS_VERSION=`git describe --abbrev=4 --dirty --always --tags 2>/dev/null` | ||
81 | + LIBSASS_VERSION=`git describe --abbrev=4 --always --tags 2>/dev/null` | ||
82 | fi | ||
83 | if test "x$LIBSASS_VERSION" = "x"; then | ||
84 | LIBSASS_VERSION=`cat VERSION 2>/dev/null` | ||
85 | -- | ||
86 | 2.34.1 | ||
87 | |||
diff --git a/meta/recipes-support/sass/libsass_3.6.6.bb b/meta/recipes-support/sass/libsass_3.6.6.bb new file mode 100644 index 0000000000..de608f0a6b --- /dev/null +++ b/meta/recipes-support/sass/libsass_3.6.6.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | SUMMARY = "C/C++ port of the Sass CSS precompiler" | ||
2 | HOMEPAGE = "http://sass-lang.com/libsass" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d" | ||
5 | |||
6 | inherit autotools | ||
7 | |||
8 | SRC_URI = "git://github.com/sass/libsass.git;protocol=https;branch=master \ | ||
9 | file://0001-Remove-version.h-from-source-directory.patch" | ||
10 | |||
11 | SRCREV = "7037f03fabeb2b18b5efa84403f5a6d7a990f460" | ||
12 | |||
13 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch b/meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch new file mode 100644 index 0000000000..c6717995c5 --- /dev/null +++ b/meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch | |||
@@ -0,0 +1,61 @@ | |||
1 | From b5d03d5313d4cc19a7e6e9ba5fd74d1f8400cd46 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
3 | Date: Thu, 24 Apr 2025 21:28:55 +0800 | ||
4 | Subject: [PATCH] Remove sassc_version.h from source directory | ||
5 | |||
6 | The sassc_version.h should be generated from sassc_version.h.in. If the | ||
7 | build directory is out of the source directory, the sassc_version.h is | ||
8 | generated in build directory and the original sassc_version.h in source | ||
9 | directory is not overwritten. However, the latter is used during the | ||
10 | build, resulting in a missing runtime version: | ||
11 | |||
12 | $ sassc --version | ||
13 | sassc: [NA] | ||
14 | libsass: [NA] | ||
15 | sass2scss: 1.1.1 | ||
16 | sass: 3.5 | ||
17 | |||
18 | Remove sassc_version.h from source directory to ensure that the | ||
19 | sassc_version.h in build directory is used during the build. | ||
20 | |||
21 | Also remove '--dirty' option from 'git describe' command line in | ||
22 | version.sh to get rid of '-dirty' suffix from version number that | ||
23 | was introduced with this change. | ||
24 | |||
25 | Upstream-Status: Submitted [https://github.com/sass/sassc/pull/283] | ||
26 | |||
27 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
28 | --- | ||
29 | sassc_version.h | 8 -------- | ||
30 | version.sh | 2 +- | ||
31 | 2 files changed, 1 insertion(+), 9 deletions(-) | ||
32 | delete mode 100644 sassc_version.h | ||
33 | |||
34 | diff --git a/sassc_version.h b/sassc_version.h | ||
35 | deleted file mode 100644 | ||
36 | index 3ca12e3..0000000 | ||
37 | --- a/sassc_version.h | ||
38 | +++ /dev/null | ||
39 | @@ -1,8 +0,0 @@ | ||
40 | -#ifndef SASSC_VERSION_H | ||
41 | -#define SASSC_VERSION_H | ||
42 | - | ||
43 | -#ifndef SASSC_VERSION | ||
44 | -#define SASSC_VERSION "[NA]" | ||
45 | -#endif | ||
46 | - | ||
47 | -#endif | ||
48 | diff --git a/version.sh b/version.sh | ||
49 | index d56af99..cf97d82 100755 | ||
50 | --- a/version.sh | ||
51 | +++ b/version.sh | ||
52 | @@ -1,5 +1,5 @@ | ||
53 | if test "x$SASSC_VERSION" = "x"; then | ||
54 | - SASSC_VERSION=`git describe --abbrev=4 --dirty --always --tags 2>/dev/null` | ||
55 | + SASSC_VERSION=`git describe --abbrev=4 --always --tags 2>/dev/null` | ||
56 | fi | ||
57 | if test "x$SASSC_VERSION" = "x"; then | ||
58 | SASSC_VERSION=`cat VERSION 2>/dev/null` | ||
59 | -- | ||
60 | 2.34.1 | ||
61 | |||
diff --git a/meta/recipes-support/sass/sassc_3.6.2.bb b/meta/recipes-support/sass/sassc_3.6.2.bb new file mode 100644 index 0000000000..1de02f44b6 --- /dev/null +++ b/meta/recipes-support/sass/sassc_3.6.2.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | SUMMARY = "libsass command line driver " | ||
2 | HOMEPAGE = "https://sass-lang.com/libsass/" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=2f8a76980411a3f1f1480b141ce06744" | ||
5 | |||
6 | DEPENDS = "libsass" | ||
7 | |||
8 | inherit autotools pkgconfig | ||
9 | |||
10 | SRC_URI = "git://github.com/sass/sassc.git;protocol=https;branch=master \ | ||
11 | file://0001-Remove-sassc_version.h-from-source-directory.patch" | ||
12 | |||
13 | SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0" | ||
14 | |||
15 | CVE_STATUS[CVE-2022-43357] = "cpe-incorrect: this is CVE for libsass, not sassc wrapper" | ||
16 | |||
17 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch index 91640d6044..c8e6eddfec 100644 --- a/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch +++ b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch | |||
@@ -31,7 +31,7 @@ ERROR: scons install execution failed. | |||
31 | and the installed paths (including the paths inside libserf*.pc) | 31 | and the installed paths (including the paths inside libserf*.pc) |
32 | look correct | 32 | look correct |
33 | 33 | ||
34 | Upstream-Status: Pending | 34 | Upstream-Status: Inappropriate [removes block of code rather than fixing the problem in that block] |
35 | 35 | ||
36 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | 36 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> |
37 | 37 | ||
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb index ef5df44ad6..8790a9dc11 100644 --- a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb +++ b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb | |||
@@ -6,15 +6,13 @@ SECTION = "base" | |||
6 | LICENSE = "GPL-2.0-only" | 6 | LICENSE = "GPL-2.0-only" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" |
8 | 8 | ||
9 | DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native" | 9 | DEPENDS = "libxml2 glib-2.0 shared-mime-info-native xmlto-native" |
10 | 10 | ||
11 | SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \ | 11 | SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \ |
12 | file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \ | 12 | file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \ |
13 | file://0002-Handle-build-with-older-versions-of-GCC.patch" | 13 | file://0002-Handle-build-with-older-versions-of-GCC.patch" |
14 | SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada" | 14 | SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada" |
15 | 15 | ||
16 | S = "${WORKDIR}/git" | ||
17 | |||
18 | inherit meson pkgconfig gettext python3native mime | 16 | inherit meson pkgconfig gettext python3native mime |
19 | 17 | ||
20 | EXTRA_OEMESON = "-Dupdate-mimedb=true" | 18 | EXTRA_OEMESON = "-Dupdate-mimedb=true" |
diff --git a/meta/recipes-support/sqlite/sqlite3.inc b/meta/recipes-support/sqlite/sqlite3.inc index 9a0de08553..28a33282ae 100644 --- a/meta/recipes-support/sqlite/sqlite3.inc +++ b/meta/recipes-support/sqlite/sqlite3.inc | |||
@@ -13,7 +13,7 @@ def sqlite_download_version(d): | |||
13 | 13 | ||
14 | SQLITE_PV = "${@sqlite_download_version(d)}" | 14 | SQLITE_PV = "${@sqlite_download_version(d)}" |
15 | 15 | ||
16 | S = "${WORKDIR}/sqlite-autoconf-${SQLITE_PV}" | 16 | S = "${UNPACKDIR}/sqlite-autoconf-${SQLITE_PV}" |
17 | 17 | ||
18 | UPSTREAM_CHECK_URI = "http://www.sqlite.org/" | 18 | UPSTREAM_CHECK_URI = "http://www.sqlite.org/" |
19 | UPSTREAM_CHECK_REGEX = "releaselog/(?P<pver>(\d+[\.\-_]*)+)\.html" | 19 | UPSTREAM_CHECK_REGEX = "releaselog/(?P<pver>(\d+[\.\-_]*)+)\.html" |
@@ -45,14 +45,14 @@ EXTRA_OECONF = " \ | |||
45 | " | 45 | " |
46 | 46 | ||
47 | # pread() is in POSIX.1-2001 so any reasonable system must surely support it | 47 | # pread() is in POSIX.1-2001 so any reasonable system must surely support it |
48 | CFLAGS:append = " -DUSE_PREAD" | 48 | CFLAGS += "-DUSE_PREAD" |
49 | 49 | ||
50 | # Provide column meta-data API | 50 | # Provide column meta-data API |
51 | CFLAGS:append = " -DSQLITE_ENABLE_COLUMN_METADATA" | 51 | CFLAGS += "-DSQLITE_ENABLE_COLUMN_METADATA" |
52 | 52 | ||
53 | # Unless SQLITE_BYTEORDER is predefined, the code falls back to build time | 53 | # Unless SQLITE_BYTEORDER is predefined, the code falls back to build time |
54 | # huristics, which are not always correct | 54 | # huristics, which are not always correct |
55 | CFLAGS:append = " ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}" | 55 | CFLAGS += "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}" |
56 | 56 | ||
57 | PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}" | 57 | PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}" |
58 | 58 | ||
diff --git a/meta/recipes-support/sqlite/sqlite3_3.45.1.bb b/meta/recipes-support/sqlite/sqlite3_3.45.1.bb deleted file mode 100644 index 50612feb25..0000000000 --- a/meta/recipes-support/sqlite/sqlite3_3.45.1.bb +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | require sqlite3.inc | ||
2 | |||
3 | LICENSE = "PD" | ||
4 | LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" | ||
5 | |||
6 | SRC_URI = "http://www.sqlite.org/2024/sqlite-autoconf-${SQLITE_PV}.tar.gz" | ||
7 | SRC_URI[sha256sum] = "cd9c27841b7a5932c9897651e20b86c701dd740556989b01ca596fcfa3d49a0a" | ||
8 | |||
diff --git a/meta/recipes-support/sqlite/sqlite3_3.48.0.bb b/meta/recipes-support/sqlite/sqlite3_3.48.0.bb new file mode 100644 index 0000000000..bd2ac6614d --- /dev/null +++ b/meta/recipes-support/sqlite/sqlite3_3.48.0.bb | |||
@@ -0,0 +1,8 @@ | |||
1 | require sqlite3.inc | ||
2 | |||
3 | LICENSE = "PD" | ||
4 | LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" | ||
5 | |||
6 | SRC_URI = "http://www.sqlite.org/2025/sqlite-autoconf-${SQLITE_PV}.tar.gz" | ||
7 | SRC_URI[sha256sum] = "ac992f7fca3989de7ed1fe99c16363f848794c8c32a158dafd4eb927a2e02fd5" | ||
8 | |||
diff --git a/meta/recipes-support/taglib/taglib_2.0.bb b/meta/recipes-support/taglib/taglib_2.1.bb index 4bf9be15ae..a337af74d0 100644 --- a/meta/recipes-support/taglib/taglib_2.0.bb +++ b/meta/recipes-support/taglib/taglib_2.1.bb | |||
@@ -11,7 +11,7 @@ DEPENDS = "zlib utfcpp" | |||
11 | 11 | ||
12 | SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz" | 12 | SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz" |
13 | 13 | ||
14 | SRC_URI[sha256sum] = "e36ea877a6370810b97d84cf8f72b1e4ed205149ab3ac8232d44c850f38a2859" | 14 | SRC_URI[sha256sum] = "95b788b39eaebab41f7e6d1c1d05ceee01a5d1225e4b6d11ed8976e96ba90b0c" |
15 | 15 | ||
16 | UPSTREAM_CHECK_URI = "https://taglib.org/" | 16 | UPSTREAM_CHECK_URI = "https://taglib.org/" |
17 | UPSTREAM_CHECK_REGEX = "taglib-(?P<pver>\d+(\.\d+)+)\.tar" | 17 | UPSTREAM_CHECK_REGEX = "taglib-(?P<pver>\d+(\.\d+)+)\.tar" |
diff --git a/meta/recipes-support/user-creation/xuser-account_0.1.bb b/meta/recipes-support/user-creation/xuser-account_0.1.bb index 639b01f6eb..04f506e7a3 100644 --- a/meta/recipes-support/user-creation/xuser-account_0.1.bb +++ b/meta/recipes-support/user-creation/xuser-account_0.1.bb | |||
@@ -6,6 +6,8 @@ SRC_URI = "file://system-xuser.conf" | |||
6 | 6 | ||
7 | inherit allarch useradd | 7 | inherit allarch useradd |
8 | 8 | ||
9 | S = "${UNPACKDIR}" | ||
10 | |||
9 | do_configure() { | 11 | do_configure() { |
10 | : | 12 | : |
11 | } | 13 | } |
@@ -15,7 +17,7 @@ do_compile() { | |||
15 | } | 17 | } |
16 | 18 | ||
17 | do_install() { | 19 | do_install() { |
18 | install -D -m 0644 ${WORKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf | 20 | install -D -m 0644 ${UNPACKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf |
19 | } | 21 | } |
20 | 22 | ||
21 | FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf" | 23 | FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf" |
diff --git a/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb b/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb index 5ac6fd369a..344f270158 100644 --- a/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb +++ b/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb | |||
@@ -7,9 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e4224ccaecb14d942c71d31bef20d78c \ | |||
7 | 7 | ||
8 | SRC_URI = "gitsm://github.com/nemtrif/utfcpp;protocol=https;branch=master" | 8 | SRC_URI = "gitsm://github.com/nemtrif/utfcpp;protocol=https;branch=master" |
9 | 9 | ||
10 | SRCREV = "6be08bbea14ffa0a5c594257fb6285a054395cd7" | 10 | SRCREV = "b26a5f718f4f370af1852a0d5c6ae8fa031ba7d0" |
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | 11 | ||
14 | inherit cmake | 12 | inherit cmake |
15 | 13 | ||
diff --git a/meta/recipes-support/vim/files/no-path-adjust.patch b/meta/recipes-support/vim/files/no-path-adjust.patch index 908459a95e..a92b1e7cdc 100644 --- a/meta/recipes-support/vim/files/no-path-adjust.patch +++ b/meta/recipes-support/vim/files/no-path-adjust.patch | |||
@@ -6,7 +6,7 @@ Subject: [PATCH] vim: do not adjust script pathnames | |||
6 | When cross-compiling, we do not want to reference the host versions of | 6 | When cross-compiling, we do not want to reference the host versions of |
7 | things like perl and awk. | 7 | things like perl and awk. |
8 | 8 | ||
9 | Upstream-Status: Pending | 9 | Upstream-Status: Inappropriate [specific to cross compilation and sysroots] |
10 | 10 | ||
11 | Signed-off-by: Joe Slater <joe.slater@windriver.com> | 11 | Signed-off-by: Joe Slater <joe.slater@windriver.com> |
12 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | 12 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> |
diff --git a/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch deleted file mode 100644 index 5284ba45b6..0000000000 --- a/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | From 38de4bccdb8a861ffdd447f12fdab19d6d852c02 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chong Lu <Chong.Lu@windriver.com> | ||
3 | Date: Tue, 26 Jun 2018 17:34:15 +0800 | ||
4 | Subject: [PATCH] vim: add knob whether elf.h are checked | ||
5 | |||
6 | Previously, it still was checked when there was no elf library in sysroots directory. | ||
7 | Add knob to decide whether elf.h are checked or not. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Chong Lu <Chong.Lu@windriver.com> | ||
12 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
13 | --- | ||
14 | src/configure.ac | 7 +++++++ | ||
15 | 1 file changed, 7 insertions(+) | ||
16 | |||
17 | Index: git/src/configure.ac | ||
18 | =================================================================== | ||
19 | --- git.orig/src/configure.ac | ||
20 | +++ git/src/configure.ac | ||
21 | @@ -3264,11 +3264,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [in | ||
22 | AC_MSG_RESULT(no)) | ||
23 | |||
24 | dnl Checks for header files. | ||
25 | +AC_MSG_CHECKING(whether or not to look for elf.h) | ||
26 | +AC_ARG_ENABLE(elf-check, | ||
27 | + [ --enable-elf-check If elfutils, check for elf.h [default=no]], | ||
28 | + , enable_elf_check="no") | ||
29 | +AC_MSG_RESULT($enable_elf_check) | ||
30 | +if test "x$enable_elf_check" != "xno"; then | ||
31 | AC_CHECK_HEADER(elf.h, HAS_ELF=1) | ||
32 | dnl AC_CHECK_HEADER(dwarf.h, SVR4=1) | ||
33 | if test "$HAS_ELF" = 1; then | ||
34 | AC_CHECK_LIB(elf, main) | ||
35 | fi | ||
36 | +fi | ||
37 | |||
38 | AC_HEADER_DIRENT | ||
39 | |||
diff --git a/meta/recipes-support/vim/vim.inc b/meta/recipes-support/vim/vim.inc index 071deed338..278a5baeb2 100644 --- a/meta/recipes-support/vim/vim.inc +++ b/meta/recipes-support/vim/vim.inc | |||
@@ -14,21 +14,18 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d1a651ab770b45d41c0f8cb5a8ca930e" | |||
14 | 14 | ||
15 | SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \ | 15 | SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \ |
16 | file://disable_acl_header_check.patch \ | 16 | file://disable_acl_header_check.patch \ |
17 | file://vim-add-knob-whether-elf.h-are-checked.patch \ | ||
18 | file://0001-src-Makefile-improve-reproducibility.patch \ | 17 | file://0001-src-Makefile-improve-reproducibility.patch \ |
19 | file://no-path-adjust.patch \ | 18 | file://no-path-adjust.patch \ |
20 | " | 19 | " |
21 | 20 | ||
22 | PV .= ".0114" | 21 | PV .= ".1198" |
23 | SRCREV = "fcaed6a70faf73bff3e5405ada556d726024f866" | 22 | SRCREV = "f209dcd3defb95bae21b2740910e6aa7bb940531" |
24 | 23 | ||
25 | # Do not consider .z in x.y.z, as that is updated with every commit | 24 | # Do not consider .z in x.y.z, as that is updated with every commit |
26 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0" | 25 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0" |
27 | # Ignore that the upstream version .z in x.y.z is always newer | 26 | # Ignore that the upstream version .z in x.y.z is always newer |
28 | UPSTREAM_VERSION_UNKNOWN = "1" | 27 | UPSTREAM_VERSION_UNKNOWN = "1" |
29 | 28 | ||
30 | S = "${WORKDIR}/git" | ||
31 | |||
32 | VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}" | 29 | VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}" |
33 | 30 | ||
34 | inherit autotools-brokensep update-alternatives mime-xdg pkgconfig | 31 | inherit autotools-brokensep update-alternatives mime-xdg pkgconfig |
@@ -128,7 +125,6 @@ FILES:${PN}-data = "${datadir}/${BPN}" | |||
128 | # We do not want to complain if perl or gawk are not on the target. | 125 | # We do not want to complain if perl or gawk are not on the target. |
129 | # | 126 | # |
130 | FILES:${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools" | 127 | FILES:${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools" |
131 | INSANE_SKIP:${PN}-tools = "file-rdeps" | ||
132 | 128 | ||
133 | FILES:${PN}-common = " \ | 129 | FILES:${PN}-common = " \ |
134 | ${datadir}/${BPN}/${VIMDIR}/*.vim \ | 130 | ${datadir}/${BPN}/${VIMDIR}/*.vim \ |
diff --git a/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch index 8934d5f80a..e2cff6cf76 100644 --- a/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch +++ b/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From de9639baac792327c701e509258b8a13f6959e82 Mon Sep 17 00:00:00 2001 | 1 | From b8795dda629614cd842fcba1c4b50be759c20da4 Mon Sep 17 00:00:00 2001 |
2 | From: Danilo Spinella <danyspin97@protonmail.com> | 2 | From: Danilo Spinella <danyspin97@protonmail.com> |
3 | Date: Thu, 21 Mar 2019 14:19:26 +0100 | 3 | Date: Thu, 21 Mar 2019 14:19:26 +0100 |
4 | Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems | 4 | Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems |
@@ -12,11 +12,11 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> | |||
12 | 12 | ||
13 | [1] https://gitlab.gnome.org/GNOME/vte/issues/72 | 13 | [1] https://gitlab.gnome.org/GNOME/vte/issues/72 |
14 | --- | 14 | --- |
15 | src/widget.cc | 4 +++ | 15 | src/widget.cc | 4 ++++ |
16 | 1 files changed, 4 insertions(+) | 16 | 1 file changed, 4 insertions(+) |
17 | 17 | ||
18 | diff --git a/src/widget.cc b/src/widget.cc | 18 | diff --git a/src/widget.cc b/src/widget.cc |
19 | index 07f7cabf..31a77f68 100644 | 19 | index b8daa5c..c357960 100644 |
20 | --- a/src/widget.cc | 20 | --- a/src/widget.cc |
21 | +++ b/src/widget.cc | 21 | +++ b/src/widget.cc |
22 | @@ -16,6 +16,10 @@ | 22 | @@ -16,6 +16,10 @@ |
@@ -30,6 +30,3 @@ index 07f7cabf..31a77f68 100644 | |||
30 | #include "config.h" | 30 | #include "config.h" |
31 | 31 | ||
32 | #include "widget.hh" | 32 | #include "widget.hh" |
33 | -- | ||
34 | 2.42.0 | ||
35 | |||
diff --git a/meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch b/meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch new file mode 100644 index 0000000000..410d506806 --- /dev/null +++ b/meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch | |||
@@ -0,0 +1,25 @@ | |||
1 | From 6b7440996819c12ec32bfaf4e73b27baeb273207 Mon Sep 17 00:00:00 2001 | ||
2 | From: Christian Persch <chpe@src.gnome.org> | ||
3 | Date: Thu, 5 Sep 2024 23:59:05 +0200 | ||
4 | Subject: [PATCH 2/3] lib: Typo fix | ||
5 | |||
6 | Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2816 | ||
7 | Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/vte/-/commit/e24087d953d9352c8bc46074e2662c80f9bfbc2d] | ||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | src/vteinternal.hh | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/src/vteinternal.hh b/src/vteinternal.hh | ||
14 | index 051e78c..b1adc19 100644 | ||
15 | --- a/src/vteinternal.hh | ||
16 | +++ b/src/vteinternal.hh | ||
17 | @@ -1233,7 +1233,7 @@ public: | ||
18 | void reset_decoder(); | ||
19 | |||
20 | void feed(std::string_view const& data, | ||
21 | - bool start_processsing_ = true); | ||
22 | + bool start_processing_ = true); | ||
23 | void feed_child(char const* data, | ||
24 | size_t length) { assert(data); feed_child({data, length}); } | ||
25 | void feed_child(std::string_view const& str); | ||
diff --git a/meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch b/meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch new file mode 100644 index 0000000000..731dba729d --- /dev/null +++ b/meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch | |||
@@ -0,0 +1,3922 @@ | |||
1 | From 2a32e43e43b04771a3357d3d4ccbafa7714e0114 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 4 Oct 2024 21:21:11 -0700 | ||
4 | Subject: [PATCH 4/5] fast_float: Add single header library for from_char | ||
5 | implementation | ||
6 | |||
7 | Document the process to re-generate the file whenever new release | ||
8 | is made for fast_float upstream. | ||
9 | |||
10 | This would make it work with llvm libc++ | ||
11 | |||
12 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/vte/-/issues/2823#note_2239888] | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | --- | ||
15 | README.md | 17 + | ||
16 | src/fast_float.hh | 3869 +++++++++++++++++++++++++++++++++++++++++++++ | ||
17 | 2 files changed, 3886 insertions(+) | ||
18 | create mode 100644 src/fast_float.hh | ||
19 | |||
20 | diff --git a/README.md b/README.md | ||
21 | index a32465a9..20ed5ba2 100644 | ||
22 | --- a/README.md | ||
23 | +++ b/README.md | ||
24 | @@ -21,6 +21,23 @@ on download.gnome.org, but please note that any tarball for releases | ||
25 | after 0.60.3 were made by either the gnome release team or other | ||
26 | gnome contributors, but not by a VTE maintainer. | ||
27 | |||
28 | +fast_float library[1] is used to provide from_chars implementation for faster | ||
29 | +and more portable parsing of 64 decimal strings. | ||
30 | + | ||
31 | +fast_float.hh is an amalgamation of the entire library, | ||
32 | +which can be regenerated by using amalgamate.py script provided by | ||
33 | +fast_float repository. Following command can be used to re-generate the | ||
34 | +header file | ||
35 | + | ||
36 | +``` | ||
37 | +git clone https://github.com/fastfloat/fast_float | ||
38 | +cd fast_float | ||
39 | +git checkout v6.1.6 | ||
40 | +python3 ./script/amalgamate.py --license=MIT > $VTE_SRC/src/fast_float.hh | ||
41 | +``` | ||
42 | + | ||
43 | +[1]: https://github.com/fastfloat/fast_float | ||
44 | + | ||
45 | Installation | ||
46 | ------------ | ||
47 | |||
48 | diff --git a/src/fast_float.hh b/src/fast_float.hh | ||
49 | new file mode 100644 | ||
50 | index 00000000..e0d5dd53 | ||
51 | --- /dev/null | ||
52 | +++ b/src/fast_float.hh | ||
53 | @@ -0,0 +1,3869 @@ | ||
54 | +// fast_float by Daniel Lemire | ||
55 | +// fast_float by João Paulo Magalhaes | ||
56 | +// | ||
57 | +// | ||
58 | +// with contributions from Eugene Golushkov | ||
59 | +// with contributions from Maksim Kita | ||
60 | +// with contributions from Marcin Wojdyr | ||
61 | +// with contributions from Neal Richardson | ||
62 | +// with contributions from Tim Paine | ||
63 | +// with contributions from Fabio Pellacini | ||
64 | +// with contributions from Lénárd Szolnoki | ||
65 | +// with contributions from Jan Pharago | ||
66 | +// with contributions from Maya Warrier | ||
67 | +// with contributions from Taha Khokhar | ||
68 | +// | ||
69 | +// | ||
70 | +// MIT License Notice | ||
71 | +// | ||
72 | +// MIT License | ||
73 | +// | ||
74 | +// Copyright (c) 2021 The fast_float authors | ||
75 | +// | ||
76 | +// Permission is hereby granted, free of charge, to any | ||
77 | +// person obtaining a copy of this software and associated | ||
78 | +// documentation files (the "Software"), to deal in the | ||
79 | +// Software without restriction, including without | ||
80 | +// limitation the rights to use, copy, modify, merge, | ||
81 | +// publish, distribute, sublicense, and/or sell copies of | ||
82 | +// the Software, and to permit persons to whom the Software | ||
83 | +// is furnished to do so, subject to the following | ||
84 | +// conditions: | ||
85 | +// | ||
86 | +// The above copyright notice and this permission notice | ||
87 | +// shall be included in all copies or substantial portions | ||
88 | +// of the Software. | ||
89 | +// | ||
90 | +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF | ||
91 | +// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED | ||
92 | +// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A | ||
93 | +// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | ||
94 | +// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||
95 | +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
96 | +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR | ||
97 | +// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
98 | +// DEALINGS IN THE SOFTWARE. | ||
99 | +// | ||
100 | + | ||
101 | +#ifndef FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H | ||
102 | +#define FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H | ||
103 | + | ||
104 | +#ifdef __has_include | ||
105 | +#if __has_include(<version>) | ||
106 | +#include <version> | ||
107 | +#endif | ||
108 | +#endif | ||
109 | + | ||
110 | +// Testing for https://wg21.link/N3652, adopted in C++14 | ||
111 | +#if __cpp_constexpr >= 201304 | ||
112 | +#define FASTFLOAT_CONSTEXPR14 constexpr | ||
113 | +#else | ||
114 | +#define FASTFLOAT_CONSTEXPR14 | ||
115 | +#endif | ||
116 | + | ||
117 | +#if defined(__cpp_lib_bit_cast) && __cpp_lib_bit_cast >= 201806L | ||
118 | +#define FASTFLOAT_HAS_BIT_CAST 1 | ||
119 | +#else | ||
120 | +#define FASTFLOAT_HAS_BIT_CAST 0 | ||
121 | +#endif | ||
122 | + | ||
123 | +#if defined(__cpp_lib_is_constant_evaluated) && \ | ||
124 | + __cpp_lib_is_constant_evaluated >= 201811L | ||
125 | +#define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 1 | ||
126 | +#else | ||
127 | +#define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 0 | ||
128 | +#endif | ||
129 | + | ||
130 | +// Testing for relevant C++20 constexpr library features | ||
131 | +#if FASTFLOAT_HAS_IS_CONSTANT_EVALUATED && FASTFLOAT_HAS_BIT_CAST && \ | ||
132 | + __cpp_lib_constexpr_algorithms >= 201806L /*For std::copy and std::fill*/ | ||
133 | +#define FASTFLOAT_CONSTEXPR20 constexpr | ||
134 | +#define FASTFLOAT_IS_CONSTEXPR 1 | ||
135 | +#else | ||
136 | +#define FASTFLOAT_CONSTEXPR20 | ||
137 | +#define FASTFLOAT_IS_CONSTEXPR 0 | ||
138 | +#endif | ||
139 | + | ||
140 | +#if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) | ||
141 | +#define FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE 0 | ||
142 | +#else | ||
143 | +#define FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE 1 | ||
144 | +#endif | ||
145 | + | ||
146 | +#endif // FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H | ||
147 | + | ||
148 | +#ifndef FASTFLOAT_FLOAT_COMMON_H | ||
149 | +#define FASTFLOAT_FLOAT_COMMON_H | ||
150 | + | ||
151 | +#include <cfloat> | ||
152 | +#include <cstdint> | ||
153 | +#include <cassert> | ||
154 | +#include <cstring> | ||
155 | +#include <type_traits> | ||
156 | +#include <system_error> | ||
157 | +#ifdef __has_include | ||
158 | +#if __has_include(<stdfloat>) && (__cplusplus > 202002L || _MSVC_LANG > 202002L) | ||
159 | +#include <stdfloat> | ||
160 | +#endif | ||
161 | +#endif | ||
162 | + | ||
163 | +namespace fast_float { | ||
164 | + | ||
165 | +#define FASTFLOAT_JSONFMT (1 << 5) | ||
166 | +#define FASTFLOAT_FORTRANFMT (1 << 6) | ||
167 | + | ||
168 | +enum chars_format { | ||
169 | + scientific = 1 << 0, | ||
170 | + fixed = 1 << 2, | ||
171 | + hex = 1 << 3, | ||
172 | + no_infnan = 1 << 4, | ||
173 | + // RFC 8259: https://datatracker.ietf.org/doc/html/rfc8259#section-6 | ||
174 | + json = FASTFLOAT_JSONFMT | fixed | scientific | no_infnan, | ||
175 | + // Extension of RFC 8259 where, e.g., "inf" and "nan" are allowed. | ||
176 | + json_or_infnan = FASTFLOAT_JSONFMT | fixed | scientific, | ||
177 | + fortran = FASTFLOAT_FORTRANFMT | fixed | scientific, | ||
178 | + general = fixed | scientific | ||
179 | +}; | ||
180 | + | ||
181 | +template <typename UC> struct from_chars_result_t { | ||
182 | + UC const *ptr; | ||
183 | + std::errc ec; | ||
184 | +}; | ||
185 | +using from_chars_result = from_chars_result_t<char>; | ||
186 | + | ||
187 | +template <typename UC> struct parse_options_t { | ||
188 | + constexpr explicit parse_options_t(chars_format fmt = chars_format::general, | ||
189 | + UC dot = UC('.')) | ||
190 | + : format(fmt), decimal_point(dot) {} | ||
191 | + | ||
192 | + /** Which number formats are accepted */ | ||
193 | + chars_format format; | ||
194 | + /** The character used as decimal point */ | ||
195 | + UC decimal_point; | ||
196 | +}; | ||
197 | +using parse_options = parse_options_t<char>; | ||
198 | + | ||
199 | +} // namespace fast_float | ||
200 | + | ||
201 | +#if FASTFLOAT_HAS_BIT_CAST | ||
202 | +#include <bit> | ||
203 | +#endif | ||
204 | + | ||
205 | +#if (defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ | ||
206 | + defined(__amd64) || defined(__aarch64__) || defined(_M_ARM64) || \ | ||
207 | + defined(__MINGW64__) || defined(__s390x__) || \ | ||
208 | + (defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \ | ||
209 | + defined(__PPC64LE__)) || \ | ||
210 | + defined(__loongarch64)) | ||
211 | +#define FASTFLOAT_64BIT 1 | ||
212 | +#elif (defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ | ||
213 | + defined(__arm__) || defined(_M_ARM) || defined(__ppc__) || \ | ||
214 | + defined(__MINGW32__) || defined(__EMSCRIPTEN__)) | ||
215 | +#define FASTFLOAT_32BIT 1 | ||
216 | +#else | ||
217 | + // Need to check incrementally, since SIZE_MAX is a size_t, avoid overflow. | ||
218 | +// We can never tell the register width, but the SIZE_MAX is a good | ||
219 | +// approximation. UINTPTR_MAX and INTPTR_MAX are optional, so avoid them for max | ||
220 | +// portability. | ||
221 | +#if SIZE_MAX == 0xffff | ||
222 | +#error Unknown platform (16-bit, unsupported) | ||
223 | +#elif SIZE_MAX == 0xffffffff | ||
224 | +#define FASTFLOAT_32BIT 1 | ||
225 | +#elif SIZE_MAX == 0xffffffffffffffff | ||
226 | +#define FASTFLOAT_64BIT 1 | ||
227 | +#else | ||
228 | +#error Unknown platform (not 32-bit, not 64-bit?) | ||
229 | +#endif | ||
230 | +#endif | ||
231 | + | ||
232 | +#if ((defined(_WIN32) || defined(_WIN64)) && !defined(__clang__)) || \ | ||
233 | + (defined(_M_ARM64) && !defined(__MINGW32__)) | ||
234 | +#include <intrin.h> | ||
235 | +#endif | ||
236 | + | ||
237 | +#if defined(_MSC_VER) && !defined(__clang__) | ||
238 | +#define FASTFLOAT_VISUAL_STUDIO 1 | ||
239 | +#endif | ||
240 | + | ||
241 | +#if defined __BYTE_ORDER__ && defined __ORDER_BIG_ENDIAN__ | ||
242 | +#define FASTFLOAT_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) | ||
243 | +#elif defined _WIN32 | ||
244 | +#define FASTFLOAT_IS_BIG_ENDIAN 0 | ||
245 | +#else | ||
246 | +#if defined(__APPLE__) || defined(__FreeBSD__) | ||
247 | +#include <machine/endian.h> | ||
248 | +#elif defined(sun) || defined(__sun) | ||
249 | +#include <sys/byteorder.h> | ||
250 | +#elif defined(__MVS__) | ||
251 | +#include <sys/endian.h> | ||
252 | +#else | ||
253 | +#ifdef __has_include | ||
254 | +#if __has_include(<endian.h>) | ||
255 | +#include <endian.h> | ||
256 | +#endif //__has_include(<endian.h>) | ||
257 | +#endif //__has_include | ||
258 | +#endif | ||
259 | +# | ||
260 | +#ifndef __BYTE_ORDER__ | ||
261 | +// safe choice | ||
262 | +#define FASTFLOAT_IS_BIG_ENDIAN 0 | ||
263 | +#endif | ||
264 | +# | ||
265 | +#ifndef __ORDER_LITTLE_ENDIAN__ | ||
266 | +// safe choice | ||
267 | +#define FASTFLOAT_IS_BIG_ENDIAN 0 | ||
268 | +#endif | ||
269 | +# | ||
270 | +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ | ||
271 | +#define FASTFLOAT_IS_BIG_ENDIAN 0 | ||
272 | +#else | ||
273 | +#define FASTFLOAT_IS_BIG_ENDIAN 1 | ||
274 | +#endif | ||
275 | +#endif | ||
276 | + | ||
277 | +#if defined(__SSE2__) || (defined(FASTFLOAT_VISUAL_STUDIO) && \ | ||
278 | + (defined(_M_AMD64) || defined(_M_X64) || \ | ||
279 | + (defined(_M_IX86_FP) && _M_IX86_FP == 2))) | ||
280 | +#define FASTFLOAT_SSE2 1 | ||
281 | +#endif | ||
282 | + | ||
283 | +#if defined(__aarch64__) || defined(_M_ARM64) | ||
284 | +#define FASTFLOAT_NEON 1 | ||
285 | +#endif | ||
286 | + | ||
287 | +#if defined(FASTFLOAT_SSE2) || defined(FASTFLOAT_NEON) | ||
288 | +#define FASTFLOAT_HAS_SIMD 1 | ||
289 | +#endif | ||
290 | + | ||
291 | +#if defined(__GNUC__) | ||
292 | +// disable -Wcast-align=strict (GCC only) | ||
293 | +#define FASTFLOAT_SIMD_DISABLE_WARNINGS \ | ||
294 | + _Pragma("GCC diagnostic push") \ | ||
295 | + _Pragma("GCC diagnostic ignored \"-Wcast-align\"") | ||
296 | +#else | ||
297 | +#define FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
298 | +#endif | ||
299 | + | ||
300 | +#if defined(__GNUC__) | ||
301 | +#define FASTFLOAT_SIMD_RESTORE_WARNINGS _Pragma("GCC diagnostic pop") | ||
302 | +#else | ||
303 | +#define FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
304 | +#endif | ||
305 | + | ||
306 | +#ifdef FASTFLOAT_VISUAL_STUDIO | ||
307 | +#define fastfloat_really_inline __forceinline | ||
308 | +#else | ||
309 | +#define fastfloat_really_inline inline __attribute__((always_inline)) | ||
310 | +#endif | ||
311 | + | ||
312 | +#ifndef FASTFLOAT_ASSERT | ||
313 | +#define FASTFLOAT_ASSERT(x) \ | ||
314 | + { ((void)(x)); } | ||
315 | +#endif | ||
316 | + | ||
317 | +#ifndef FASTFLOAT_DEBUG_ASSERT | ||
318 | +#define FASTFLOAT_DEBUG_ASSERT(x) \ | ||
319 | + { ((void)(x)); } | ||
320 | +#endif | ||
321 | + | ||
322 | +// rust style `try!()` macro, or `?` operator | ||
323 | +#define FASTFLOAT_TRY(x) \ | ||
324 | + { \ | ||
325 | + if (!(x)) \ | ||
326 | + return false; \ | ||
327 | + } | ||
328 | + | ||
329 | +#define FASTFLOAT_ENABLE_IF(...) \ | ||
330 | + typename std::enable_if<(__VA_ARGS__), int>::type | ||
331 | + | ||
332 | +namespace fast_float { | ||
333 | + | ||
334 | +fastfloat_really_inline constexpr bool cpp20_and_in_constexpr() { | ||
335 | +#if FASTFLOAT_HAS_IS_CONSTANT_EVALUATED | ||
336 | + return std::is_constant_evaluated(); | ||
337 | +#else | ||
338 | + return false; | ||
339 | +#endif | ||
340 | +} | ||
341 | + | ||
342 | +template <typename T> | ||
343 | +fastfloat_really_inline constexpr bool is_supported_float_type() { | ||
344 | + return std::is_same<T, float>::value || std::is_same<T, double>::value | ||
345 | +#if __STDCPP_FLOAT32_T__ | ||
346 | + || std::is_same<T, std::float32_t>::value | ||
347 | +#endif | ||
348 | +#if __STDCPP_FLOAT64_T__ | ||
349 | + || std::is_same<T, std::float64_t>::value | ||
350 | +#endif | ||
351 | + ; | ||
352 | +} | ||
353 | + | ||
354 | +template <typename UC> | ||
355 | +fastfloat_really_inline constexpr bool is_supported_char_type() { | ||
356 | + return std::is_same<UC, char>::value || std::is_same<UC, wchar_t>::value || | ||
357 | + std::is_same<UC, char16_t>::value || std::is_same<UC, char32_t>::value; | ||
358 | +} | ||
359 | + | ||
360 | +// Compares two ASCII strings in a case insensitive manner. | ||
361 | +template <typename UC> | ||
362 | +inline FASTFLOAT_CONSTEXPR14 bool | ||
363 | +fastfloat_strncasecmp(UC const *input1, UC const *input2, size_t length) { | ||
364 | + char running_diff{0}; | ||
365 | + for (size_t i = 0; i < length; ++i) { | ||
366 | + running_diff |= (char(input1[i]) ^ char(input2[i])); | ||
367 | + } | ||
368 | + return (running_diff == 0) || (running_diff == 32); | ||
369 | +} | ||
370 | + | ||
371 | +#ifndef FLT_EVAL_METHOD | ||
372 | +#error "FLT_EVAL_METHOD should be defined, please include cfloat." | ||
373 | +#endif | ||
374 | + | ||
375 | +// a pointer and a length to a contiguous block of memory | ||
376 | +template <typename T> struct span { | ||
377 | + const T *ptr; | ||
378 | + size_t length; | ||
379 | + constexpr span(const T *_ptr, size_t _length) : ptr(_ptr), length(_length) {} | ||
380 | + constexpr span() : ptr(nullptr), length(0) {} | ||
381 | + | ||
382 | + constexpr size_t len() const noexcept { return length; } | ||
383 | + | ||
384 | + FASTFLOAT_CONSTEXPR14 const T &operator[](size_t index) const noexcept { | ||
385 | + FASTFLOAT_DEBUG_ASSERT(index < length); | ||
386 | + return ptr[index]; | ||
387 | + } | ||
388 | +}; | ||
389 | + | ||
390 | +struct value128 { | ||
391 | + uint64_t low; | ||
392 | + uint64_t high; | ||
393 | + constexpr value128(uint64_t _low, uint64_t _high) : low(_low), high(_high) {} | ||
394 | + constexpr value128() : low(0), high(0) {} | ||
395 | +}; | ||
396 | + | ||
397 | +/* Helper C++14 constexpr generic implementation of leading_zeroes */ | ||
398 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 int | ||
399 | +leading_zeroes_generic(uint64_t input_num, int last_bit = 0) { | ||
400 | + if (input_num & uint64_t(0xffffffff00000000)) { | ||
401 | + input_num >>= 32; | ||
402 | + last_bit |= 32; | ||
403 | + } | ||
404 | + if (input_num & uint64_t(0xffff0000)) { | ||
405 | + input_num >>= 16; | ||
406 | + last_bit |= 16; | ||
407 | + } | ||
408 | + if (input_num & uint64_t(0xff00)) { | ||
409 | + input_num >>= 8; | ||
410 | + last_bit |= 8; | ||
411 | + } | ||
412 | + if (input_num & uint64_t(0xf0)) { | ||
413 | + input_num >>= 4; | ||
414 | + last_bit |= 4; | ||
415 | + } | ||
416 | + if (input_num & uint64_t(0xc)) { | ||
417 | + input_num >>= 2; | ||
418 | + last_bit |= 2; | ||
419 | + } | ||
420 | + if (input_num & uint64_t(0x2)) { /* input_num >>= 1; */ | ||
421 | + last_bit |= 1; | ||
422 | + } | ||
423 | + return 63 - last_bit; | ||
424 | +} | ||
425 | + | ||
426 | +/* result might be undefined when input_num is zero */ | ||
427 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 int | ||
428 | +leading_zeroes(uint64_t input_num) { | ||
429 | + assert(input_num > 0); | ||
430 | + if (cpp20_and_in_constexpr()) { | ||
431 | + return leading_zeroes_generic(input_num); | ||
432 | + } | ||
433 | +#ifdef FASTFLOAT_VISUAL_STUDIO | ||
434 | +#if defined(_M_X64) || defined(_M_ARM64) | ||
435 | + unsigned long leading_zero = 0; | ||
436 | + // Search the mask data from most significant bit (MSB) | ||
437 | + // to least significant bit (LSB) for a set bit (1). | ||
438 | + _BitScanReverse64(&leading_zero, input_num); | ||
439 | + return (int)(63 - leading_zero); | ||
440 | +#else | ||
441 | + return leading_zeroes_generic(input_num); | ||
442 | +#endif | ||
443 | +#else | ||
444 | + return __builtin_clzll(input_num); | ||
445 | +#endif | ||
446 | +} | ||
447 | + | ||
448 | +// slow emulation routine for 32-bit | ||
449 | +fastfloat_really_inline constexpr uint64_t emulu(uint32_t x, uint32_t y) { | ||
450 | + return x * (uint64_t)y; | ||
451 | +} | ||
452 | + | ||
453 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint64_t | ||
454 | +umul128_generic(uint64_t ab, uint64_t cd, uint64_t *hi) { | ||
455 | + uint64_t ad = emulu((uint32_t)(ab >> 32), (uint32_t)cd); | ||
456 | + uint64_t bd = emulu((uint32_t)ab, (uint32_t)cd); | ||
457 | + uint64_t adbc = ad + emulu((uint32_t)ab, (uint32_t)(cd >> 32)); | ||
458 | + uint64_t adbc_carry = (uint64_t)(adbc < ad); | ||
459 | + uint64_t lo = bd + (adbc << 32); | ||
460 | + *hi = emulu((uint32_t)(ab >> 32), (uint32_t)(cd >> 32)) + (adbc >> 32) + | ||
461 | + (adbc_carry << 32) + (uint64_t)(lo < bd); | ||
462 | + return lo; | ||
463 | +} | ||
464 | + | ||
465 | +#ifdef FASTFLOAT_32BIT | ||
466 | + | ||
467 | +// slow emulation routine for 32-bit | ||
468 | +#if !defined(__MINGW64__) | ||
469 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint64_t _umul128(uint64_t ab, | ||
470 | + uint64_t cd, | ||
471 | + uint64_t *hi) { | ||
472 | + return umul128_generic(ab, cd, hi); | ||
473 | +} | ||
474 | +#endif // !__MINGW64__ | ||
475 | + | ||
476 | +#endif // FASTFLOAT_32BIT | ||
477 | + | ||
478 | +// compute 64-bit a*b | ||
479 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 value128 | ||
480 | +full_multiplication(uint64_t a, uint64_t b) { | ||
481 | + if (cpp20_and_in_constexpr()) { | ||
482 | + value128 answer; | ||
483 | + answer.low = umul128_generic(a, b, &answer.high); | ||
484 | + return answer; | ||
485 | + } | ||
486 | + value128 answer; | ||
487 | +#if defined(_M_ARM64) && !defined(__MINGW32__) | ||
488 | + // ARM64 has native support for 64-bit multiplications, no need to emulate | ||
489 | + // But MinGW on ARM64 doesn't have native support for 64-bit multiplications | ||
490 | + answer.high = __umulh(a, b); | ||
491 | + answer.low = a * b; | ||
492 | +#elif defined(FASTFLOAT_32BIT) || \ | ||
493 | + (defined(_WIN64) && !defined(__clang__) && !defined(_M_ARM64)) | ||
494 | + answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64 | ||
495 | +#elif defined(FASTFLOAT_64BIT) && defined(__SIZEOF_INT128__) | ||
496 | + __uint128_t r = ((__uint128_t)a) * b; | ||
497 | + answer.low = uint64_t(r); | ||
498 | + answer.high = uint64_t(r >> 64); | ||
499 | +#else | ||
500 | + answer.low = umul128_generic(a, b, &answer.high); | ||
501 | +#endif | ||
502 | + return answer; | ||
503 | +} | ||
504 | + | ||
505 | +struct adjusted_mantissa { | ||
506 | + uint64_t mantissa{0}; | ||
507 | + int32_t power2{0}; // a negative value indicates an invalid result | ||
508 | + adjusted_mantissa() = default; | ||
509 | + constexpr bool operator==(const adjusted_mantissa &o) const { | ||
510 | + return mantissa == o.mantissa && power2 == o.power2; | ||
511 | + } | ||
512 | + constexpr bool operator!=(const adjusted_mantissa &o) const { | ||
513 | + return mantissa != o.mantissa || power2 != o.power2; | ||
514 | + } | ||
515 | +}; | ||
516 | + | ||
517 | +// Bias so we can get the real exponent with an invalid adjusted_mantissa. | ||
518 | +constexpr static int32_t invalid_am_bias = -0x8000; | ||
519 | + | ||
520 | +// used for binary_format_lookup_tables<T>::max_mantissa | ||
521 | +constexpr uint64_t constant_55555 = 5 * 5 * 5 * 5 * 5; | ||
522 | + | ||
523 | +template <typename T, typename U = void> struct binary_format_lookup_tables; | ||
524 | + | ||
525 | +template <typename T> struct binary_format : binary_format_lookup_tables<T> { | ||
526 | + using equiv_uint = | ||
527 | + typename std::conditional<sizeof(T) == 4, uint32_t, uint64_t>::type; | ||
528 | + | ||
529 | + static inline constexpr int mantissa_explicit_bits(); | ||
530 | + static inline constexpr int minimum_exponent(); | ||
531 | + static inline constexpr int infinite_power(); | ||
532 | + static inline constexpr int sign_index(); | ||
533 | + static inline constexpr int | ||
534 | + min_exponent_fast_path(); // used when fegetround() == FE_TONEAREST | ||
535 | + static inline constexpr int max_exponent_fast_path(); | ||
536 | + static inline constexpr int max_exponent_round_to_even(); | ||
537 | + static inline constexpr int min_exponent_round_to_even(); | ||
538 | + static inline constexpr uint64_t max_mantissa_fast_path(int64_t power); | ||
539 | + static inline constexpr uint64_t | ||
540 | + max_mantissa_fast_path(); // used when fegetround() == FE_TONEAREST | ||
541 | + static inline constexpr int largest_power_of_ten(); | ||
542 | + static inline constexpr int smallest_power_of_ten(); | ||
543 | + static inline constexpr T exact_power_of_ten(int64_t power); | ||
544 | + static inline constexpr size_t max_digits(); | ||
545 | + static inline constexpr equiv_uint exponent_mask(); | ||
546 | + static inline constexpr equiv_uint mantissa_mask(); | ||
547 | + static inline constexpr equiv_uint hidden_bit_mask(); | ||
548 | +}; | ||
549 | + | ||
550 | +template <typename U> struct binary_format_lookup_tables<double, U> { | ||
551 | + static constexpr double powers_of_ten[] = { | ||
552 | + 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, | ||
553 | + 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22}; | ||
554 | + | ||
555 | + // Largest integer value v so that (5**index * v) <= 1<<53. | ||
556 | + // 0x20000000000000 == 1 << 53 | ||
557 | + static constexpr uint64_t max_mantissa[] = { | ||
558 | + 0x20000000000000, | ||
559 | + 0x20000000000000 / 5, | ||
560 | + 0x20000000000000 / (5 * 5), | ||
561 | + 0x20000000000000 / (5 * 5 * 5), | ||
562 | + 0x20000000000000 / (5 * 5 * 5 * 5), | ||
563 | + 0x20000000000000 / (constant_55555), | ||
564 | + 0x20000000000000 / (constant_55555 * 5), | ||
565 | + 0x20000000000000 / (constant_55555 * 5 * 5), | ||
566 | + 0x20000000000000 / (constant_55555 * 5 * 5 * 5), | ||
567 | + 0x20000000000000 / (constant_55555 * 5 * 5 * 5 * 5), | ||
568 | + 0x20000000000000 / (constant_55555 * constant_55555), | ||
569 | + 0x20000000000000 / (constant_55555 * constant_55555 * 5), | ||
570 | + 0x20000000000000 / (constant_55555 * constant_55555 * 5 * 5), | ||
571 | + 0x20000000000000 / (constant_55555 * constant_55555 * 5 * 5 * 5), | ||
572 | + 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555), | ||
573 | + 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 * 5), | ||
574 | + 0x20000000000000 / | ||
575 | + (constant_55555 * constant_55555 * constant_55555 * 5 * 5), | ||
576 | + 0x20000000000000 / | ||
577 | + (constant_55555 * constant_55555 * constant_55555 * 5 * 5 * 5), | ||
578 | + 0x20000000000000 / | ||
579 | + (constant_55555 * constant_55555 * constant_55555 * 5 * 5 * 5 * 5), | ||
580 | + 0x20000000000000 / | ||
581 | + (constant_55555 * constant_55555 * constant_55555 * constant_55555), | ||
582 | + 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 * | ||
583 | + constant_55555 * 5), | ||
584 | + 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 * | ||
585 | + constant_55555 * 5 * 5), | ||
586 | + 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 * | ||
587 | + constant_55555 * 5 * 5 * 5), | ||
588 | + 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 * | ||
589 | + constant_55555 * 5 * 5 * 5 * 5)}; | ||
590 | +}; | ||
591 | + | ||
592 | +#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE | ||
593 | + | ||
594 | +template <typename U> | ||
595 | +constexpr double binary_format_lookup_tables<double, U>::powers_of_ten[]; | ||
596 | + | ||
597 | +template <typename U> | ||
598 | +constexpr uint64_t binary_format_lookup_tables<double, U>::max_mantissa[]; | ||
599 | + | ||
600 | +#endif | ||
601 | + | ||
602 | +template <typename U> struct binary_format_lookup_tables<float, U> { | ||
603 | + static constexpr float powers_of_ten[] = {1e0f, 1e1f, 1e2f, 1e3f, 1e4f, 1e5f, | ||
604 | + 1e6f, 1e7f, 1e8f, 1e9f, 1e10f}; | ||
605 | + | ||
606 | + // Largest integer value v so that (5**index * v) <= 1<<24. | ||
607 | + // 0x1000000 == 1<<24 | ||
608 | + static constexpr uint64_t max_mantissa[] = { | ||
609 | + 0x1000000, | ||
610 | + 0x1000000 / 5, | ||
611 | + 0x1000000 / (5 * 5), | ||
612 | + 0x1000000 / (5 * 5 * 5), | ||
613 | + 0x1000000 / (5 * 5 * 5 * 5), | ||
614 | + 0x1000000 / (constant_55555), | ||
615 | + 0x1000000 / (constant_55555 * 5), | ||
616 | + 0x1000000 / (constant_55555 * 5 * 5), | ||
617 | + 0x1000000 / (constant_55555 * 5 * 5 * 5), | ||
618 | + 0x1000000 / (constant_55555 * 5 * 5 * 5 * 5), | ||
619 | + 0x1000000 / (constant_55555 * constant_55555), | ||
620 | + 0x1000000 / (constant_55555 * constant_55555 * 5)}; | ||
621 | +}; | ||
622 | + | ||
623 | +#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE | ||
624 | + | ||
625 | +template <typename U> | ||
626 | +constexpr float binary_format_lookup_tables<float, U>::powers_of_ten[]; | ||
627 | + | ||
628 | +template <typename U> | ||
629 | +constexpr uint64_t binary_format_lookup_tables<float, U>::max_mantissa[]; | ||
630 | + | ||
631 | +#endif | ||
632 | + | ||
633 | +template <> | ||
634 | +inline constexpr int binary_format<double>::min_exponent_fast_path() { | ||
635 | +#if (FLT_EVAL_METHOD != 1) && (FLT_EVAL_METHOD != 0) | ||
636 | + return 0; | ||
637 | +#else | ||
638 | + return -22; | ||
639 | +#endif | ||
640 | +} | ||
641 | + | ||
642 | +template <> | ||
643 | +inline constexpr int binary_format<float>::min_exponent_fast_path() { | ||
644 | +#if (FLT_EVAL_METHOD != 1) && (FLT_EVAL_METHOD != 0) | ||
645 | + return 0; | ||
646 | +#else | ||
647 | + return -10; | ||
648 | +#endif | ||
649 | +} | ||
650 | + | ||
651 | +template <> | ||
652 | +inline constexpr int binary_format<double>::mantissa_explicit_bits() { | ||
653 | + return 52; | ||
654 | +} | ||
655 | +template <> | ||
656 | +inline constexpr int binary_format<float>::mantissa_explicit_bits() { | ||
657 | + return 23; | ||
658 | +} | ||
659 | + | ||
660 | +template <> | ||
661 | +inline constexpr int binary_format<double>::max_exponent_round_to_even() { | ||
662 | + return 23; | ||
663 | +} | ||
664 | + | ||
665 | +template <> | ||
666 | +inline constexpr int binary_format<float>::max_exponent_round_to_even() { | ||
667 | + return 10; | ||
668 | +} | ||
669 | + | ||
670 | +template <> | ||
671 | +inline constexpr int binary_format<double>::min_exponent_round_to_even() { | ||
672 | + return -4; | ||
673 | +} | ||
674 | + | ||
675 | +template <> | ||
676 | +inline constexpr int binary_format<float>::min_exponent_round_to_even() { | ||
677 | + return -17; | ||
678 | +} | ||
679 | + | ||
680 | +template <> inline constexpr int binary_format<double>::minimum_exponent() { | ||
681 | + return -1023; | ||
682 | +} | ||
683 | +template <> inline constexpr int binary_format<float>::minimum_exponent() { | ||
684 | + return -127; | ||
685 | +} | ||
686 | + | ||
687 | +template <> inline constexpr int binary_format<double>::infinite_power() { | ||
688 | + return 0x7FF; | ||
689 | +} | ||
690 | +template <> inline constexpr int binary_format<float>::infinite_power() { | ||
691 | + return 0xFF; | ||
692 | +} | ||
693 | + | ||
694 | +template <> inline constexpr int binary_format<double>::sign_index() { | ||
695 | + return 63; | ||
696 | +} | ||
697 | +template <> inline constexpr int binary_format<float>::sign_index() { | ||
698 | + return 31; | ||
699 | +} | ||
700 | + | ||
701 | +template <> | ||
702 | +inline constexpr int binary_format<double>::max_exponent_fast_path() { | ||
703 | + return 22; | ||
704 | +} | ||
705 | +template <> | ||
706 | +inline constexpr int binary_format<float>::max_exponent_fast_path() { | ||
707 | + return 10; | ||
708 | +} | ||
709 | + | ||
710 | +template <> | ||
711 | +inline constexpr uint64_t binary_format<double>::max_mantissa_fast_path() { | ||
712 | + return uint64_t(2) << mantissa_explicit_bits(); | ||
713 | +} | ||
714 | +template <> | ||
715 | +inline constexpr uint64_t | ||
716 | +binary_format<double>::max_mantissa_fast_path(int64_t power) { | ||
717 | + // caller is responsible to ensure that | ||
718 | + // power >= 0 && power <= 22 | ||
719 | + // | ||
720 | + // Work around clang bug https://godbolt.org/z/zedh7rrhc | ||
721 | + return (void)max_mantissa[0], max_mantissa[power]; | ||
722 | +} | ||
723 | +template <> | ||
724 | +inline constexpr uint64_t binary_format<float>::max_mantissa_fast_path() { | ||
725 | + return uint64_t(2) << mantissa_explicit_bits(); | ||
726 | +} | ||
727 | +template <> | ||
728 | +inline constexpr uint64_t | ||
729 | +binary_format<float>::max_mantissa_fast_path(int64_t power) { | ||
730 | + // caller is responsible to ensure that | ||
731 | + // power >= 0 && power <= 10 | ||
732 | + // | ||
733 | + // Work around clang bug https://godbolt.org/z/zedh7rrhc | ||
734 | + return (void)max_mantissa[0], max_mantissa[power]; | ||
735 | +} | ||
736 | + | ||
737 | +template <> | ||
738 | +inline constexpr double | ||
739 | +binary_format<double>::exact_power_of_ten(int64_t power) { | ||
740 | + // Work around clang bug https://godbolt.org/z/zedh7rrhc | ||
741 | + return (void)powers_of_ten[0], powers_of_ten[power]; | ||
742 | +} | ||
743 | +template <> | ||
744 | +inline constexpr float binary_format<float>::exact_power_of_ten(int64_t power) { | ||
745 | + // Work around clang bug https://godbolt.org/z/zedh7rrhc | ||
746 | + return (void)powers_of_ten[0], powers_of_ten[power]; | ||
747 | +} | ||
748 | + | ||
749 | +template <> inline constexpr int binary_format<double>::largest_power_of_ten() { | ||
750 | + return 308; | ||
751 | +} | ||
752 | +template <> inline constexpr int binary_format<float>::largest_power_of_ten() { | ||
753 | + return 38; | ||
754 | +} | ||
755 | + | ||
756 | +template <> | ||
757 | +inline constexpr int binary_format<double>::smallest_power_of_ten() { | ||
758 | + return -342; | ||
759 | +} | ||
760 | +template <> inline constexpr int binary_format<float>::smallest_power_of_ten() { | ||
761 | + return -64; | ||
762 | +} | ||
763 | + | ||
764 | +template <> inline constexpr size_t binary_format<double>::max_digits() { | ||
765 | + return 769; | ||
766 | +} | ||
767 | +template <> inline constexpr size_t binary_format<float>::max_digits() { | ||
768 | + return 114; | ||
769 | +} | ||
770 | + | ||
771 | +template <> | ||
772 | +inline constexpr binary_format<float>::equiv_uint | ||
773 | +binary_format<float>::exponent_mask() { | ||
774 | + return 0x7F800000; | ||
775 | +} | ||
776 | +template <> | ||
777 | +inline constexpr binary_format<double>::equiv_uint | ||
778 | +binary_format<double>::exponent_mask() { | ||
779 | + return 0x7FF0000000000000; | ||
780 | +} | ||
781 | + | ||
782 | +template <> | ||
783 | +inline constexpr binary_format<float>::equiv_uint | ||
784 | +binary_format<float>::mantissa_mask() { | ||
785 | + return 0x007FFFFF; | ||
786 | +} | ||
787 | +template <> | ||
788 | +inline constexpr binary_format<double>::equiv_uint | ||
789 | +binary_format<double>::mantissa_mask() { | ||
790 | + return 0x000FFFFFFFFFFFFF; | ||
791 | +} | ||
792 | + | ||
793 | +template <> | ||
794 | +inline constexpr binary_format<float>::equiv_uint | ||
795 | +binary_format<float>::hidden_bit_mask() { | ||
796 | + return 0x00800000; | ||
797 | +} | ||
798 | +template <> | ||
799 | +inline constexpr binary_format<double>::equiv_uint | ||
800 | +binary_format<double>::hidden_bit_mask() { | ||
801 | + return 0x0010000000000000; | ||
802 | +} | ||
803 | + | ||
804 | +template <typename T> | ||
805 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
806 | +to_float(bool negative, adjusted_mantissa am, T &value) { | ||
807 | + using fastfloat_uint = typename binary_format<T>::equiv_uint; | ||
808 | + fastfloat_uint word = (fastfloat_uint)am.mantissa; | ||
809 | + word |= fastfloat_uint(am.power2) | ||
810 | + << binary_format<T>::mantissa_explicit_bits(); | ||
811 | + word |= fastfloat_uint(negative) << binary_format<T>::sign_index(); | ||
812 | +#if FASTFLOAT_HAS_BIT_CAST | ||
813 | + value = std::bit_cast<T>(word); | ||
814 | +#else | ||
815 | + ::memcpy(&value, &word, sizeof(T)); | ||
816 | +#endif | ||
817 | +} | ||
818 | + | ||
819 | +#ifdef FASTFLOAT_SKIP_WHITE_SPACE // disabled by default | ||
820 | +template <typename = void> struct space_lut { | ||
821 | + static constexpr bool value[] = { | ||
822 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
823 | + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
824 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
825 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
826 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
827 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
828 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
829 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
830 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
831 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
832 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
833 | +}; | ||
834 | + | ||
835 | +#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE | ||
836 | + | ||
837 | +template <typename T> constexpr bool space_lut<T>::value[]; | ||
838 | + | ||
839 | +#endif | ||
840 | + | ||
841 | +inline constexpr bool is_space(uint8_t c) { return space_lut<>::value[c]; } | ||
842 | +#endif | ||
843 | + | ||
844 | +template <typename UC> static constexpr uint64_t int_cmp_zeros() { | ||
845 | + static_assert((sizeof(UC) == 1) || (sizeof(UC) == 2) || (sizeof(UC) == 4), | ||
846 | + "Unsupported character size"); | ||
847 | + return (sizeof(UC) == 1) ? 0x3030303030303030 | ||
848 | + : (sizeof(UC) == 2) | ||
849 | + ? (uint64_t(UC('0')) << 48 | uint64_t(UC('0')) << 32 | | ||
850 | + uint64_t(UC('0')) << 16 | UC('0')) | ||
851 | + : (uint64_t(UC('0')) << 32 | UC('0')); | ||
852 | +} | ||
853 | +template <typename UC> static constexpr int int_cmp_len() { | ||
854 | + return sizeof(uint64_t) / sizeof(UC); | ||
855 | +} | ||
856 | +template <typename UC> static constexpr UC const *str_const_nan() { | ||
857 | + return nullptr; | ||
858 | +} | ||
859 | +template <> constexpr char const *str_const_nan<char>() { return "nan"; } | ||
860 | +template <> constexpr wchar_t const *str_const_nan<wchar_t>() { return L"nan"; } | ||
861 | +template <> constexpr char16_t const *str_const_nan<char16_t>() { | ||
862 | + return u"nan"; | ||
863 | +} | ||
864 | +template <> constexpr char32_t const *str_const_nan<char32_t>() { | ||
865 | + return U"nan"; | ||
866 | +} | ||
867 | +template <typename UC> static constexpr UC const *str_const_inf() { | ||
868 | + return nullptr; | ||
869 | +} | ||
870 | +template <> constexpr char const *str_const_inf<char>() { return "infinity"; } | ||
871 | +template <> constexpr wchar_t const *str_const_inf<wchar_t>() { | ||
872 | + return L"infinity"; | ||
873 | +} | ||
874 | +template <> constexpr char16_t const *str_const_inf<char16_t>() { | ||
875 | + return u"infinity"; | ||
876 | +} | ||
877 | +template <> constexpr char32_t const *str_const_inf<char32_t>() { | ||
878 | + return U"infinity"; | ||
879 | +} | ||
880 | + | ||
881 | +template <typename = void> struct int_luts { | ||
882 | + static constexpr uint8_t chdigit[] = { | ||
883 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
884 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
885 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
886 | + 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, | ||
887 | + 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | ||
888 | + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | ||
889 | + 35, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, | ||
890 | + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, | ||
891 | + 33, 34, 35, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
892 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
893 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
894 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
895 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
896 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
897 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
898 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
899 | + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, | ||
900 | + 255}; | ||
901 | + | ||
902 | + static constexpr size_t maxdigits_u64[] = { | ||
903 | + 64, 41, 32, 28, 25, 23, 22, 21, 20, 19, 18, 18, 17, 17, 16, 16, 16, 16, | ||
904 | + 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13}; | ||
905 | + | ||
906 | + static constexpr uint64_t min_safe_u64[] = { | ||
907 | + 9223372036854775808ull, 12157665459056928801ull, 4611686018427387904, | ||
908 | + 7450580596923828125, 4738381338321616896, 3909821048582988049, | ||
909 | + 9223372036854775808ull, 12157665459056928801ull, 10000000000000000000ull, | ||
910 | + 5559917313492231481, 2218611106740436992, 8650415919381337933, | ||
911 | + 2177953337809371136, 6568408355712890625, 1152921504606846976, | ||
912 | + 2862423051509815793, 6746640616477458432, 15181127029874798299ull, | ||
913 | + 1638400000000000000, 3243919932521508681, 6221821273427820544, | ||
914 | + 11592836324538749809ull, 876488338465357824, 1490116119384765625, | ||
915 | + 2481152873203736576, 4052555153018976267, 6502111422497947648, | ||
916 | + 10260628712958602189ull, 15943230000000000000ull, 787662783788549761, | ||
917 | + 1152921504606846976, 1667889514952984961, 2386420683693101056, | ||
918 | + 3379220508056640625, 4738381338321616896}; | ||
919 | +}; | ||
920 | + | ||
921 | +#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE | ||
922 | + | ||
923 | +template <typename T> constexpr uint8_t int_luts<T>::chdigit[]; | ||
924 | + | ||
925 | +template <typename T> constexpr size_t int_luts<T>::maxdigits_u64[]; | ||
926 | + | ||
927 | +template <typename T> constexpr uint64_t int_luts<T>::min_safe_u64[]; | ||
928 | + | ||
929 | +#endif | ||
930 | + | ||
931 | +template <typename UC> | ||
932 | +fastfloat_really_inline constexpr uint8_t ch_to_digit(UC c) { | ||
933 | + return int_luts<>::chdigit[static_cast<unsigned char>(c)]; | ||
934 | +} | ||
935 | + | ||
936 | +fastfloat_really_inline constexpr size_t max_digits_u64(int base) { | ||
937 | + return int_luts<>::maxdigits_u64[base - 2]; | ||
938 | +} | ||
939 | + | ||
940 | +// If a u64 is exactly max_digits_u64() in length, this is | ||
941 | +// the value below which it has definitely overflowed. | ||
942 | +fastfloat_really_inline constexpr uint64_t min_safe_u64(int base) { | ||
943 | + return int_luts<>::min_safe_u64[base - 2]; | ||
944 | +} | ||
945 | + | ||
946 | +} // namespace fast_float | ||
947 | + | ||
948 | +#endif | ||
949 | + | ||
950 | + | ||
951 | +#ifndef FASTFLOAT_FAST_FLOAT_H | ||
952 | +#define FASTFLOAT_FAST_FLOAT_H | ||
953 | + | ||
954 | + | ||
955 | +namespace fast_float { | ||
956 | +/** | ||
957 | + * This function parses the character sequence [first,last) for a number. It | ||
958 | + * parses floating-point numbers expecting a locale-indepent format equivalent | ||
959 | + * to what is used by std::strtod in the default ("C") locale. The resulting | ||
960 | + * floating-point value is the closest floating-point values (using either float | ||
961 | + * or double), using the "round to even" convention for values that would | ||
962 | + * otherwise fall right in-between two values. That is, we provide exact parsing | ||
963 | + * according to the IEEE standard. | ||
964 | + * | ||
965 | + * Given a successful parse, the pointer (`ptr`) in the returned value is set to | ||
966 | + * point right after the parsed number, and the `value` referenced is set to the | ||
967 | + * parsed value. In case of error, the returned `ec` contains a representative | ||
968 | + * error, otherwise the default (`std::errc()`) value is stored. | ||
969 | + * | ||
970 | + * The implementation does not throw and does not allocate memory (e.g., with | ||
971 | + * `new` or `malloc`). | ||
972 | + * | ||
973 | + * Like the C++17 standard, the `fast_float::from_chars` functions take an | ||
974 | + * optional last argument of the type `fast_float::chars_format`. It is a bitset | ||
975 | + * value: we check whether `fmt & fast_float::chars_format::fixed` and `fmt & | ||
976 | + * fast_float::chars_format::scientific` are set to determine whether we allow | ||
977 | + * the fixed point and scientific notation respectively. The default is | ||
978 | + * `fast_float::chars_format::general` which allows both `fixed` and | ||
979 | + * `scientific`. | ||
980 | + */ | ||
981 | +template <typename T, typename UC = char, | ||
982 | + typename = FASTFLOAT_ENABLE_IF(is_supported_float_type<T>())> | ||
983 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
984 | +from_chars(UC const *first, UC const *last, T &value, | ||
985 | + chars_format fmt = chars_format::general) noexcept; | ||
986 | + | ||
987 | +/** | ||
988 | + * Like from_chars, but accepts an `options` argument to govern number parsing. | ||
989 | + */ | ||
990 | +template <typename T, typename UC = char> | ||
991 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
992 | +from_chars_advanced(UC const *first, UC const *last, T &value, | ||
993 | + parse_options_t<UC> options) noexcept; | ||
994 | +/** | ||
995 | + * from_chars for integer types. | ||
996 | + */ | ||
997 | +template <typename T, typename UC = char, | ||
998 | + typename = FASTFLOAT_ENABLE_IF(!is_supported_float_type<T>())> | ||
999 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
1000 | +from_chars(UC const *first, UC const *last, T &value, int base = 10) noexcept; | ||
1001 | + | ||
1002 | +} // namespace fast_float | ||
1003 | +#endif // FASTFLOAT_FAST_FLOAT_H | ||
1004 | + | ||
1005 | +#ifndef FASTFLOAT_ASCII_NUMBER_H | ||
1006 | +#define FASTFLOAT_ASCII_NUMBER_H | ||
1007 | + | ||
1008 | +#include <cctype> | ||
1009 | +#include <cstdint> | ||
1010 | +#include <cstring> | ||
1011 | +#include <iterator> | ||
1012 | +#include <limits> | ||
1013 | +#include <type_traits> | ||
1014 | + | ||
1015 | + | ||
1016 | +#ifdef FASTFLOAT_SSE2 | ||
1017 | +#include <emmintrin.h> | ||
1018 | +#endif | ||
1019 | + | ||
1020 | +#ifdef FASTFLOAT_NEON | ||
1021 | +#include <arm_neon.h> | ||
1022 | +#endif | ||
1023 | + | ||
1024 | +namespace fast_float { | ||
1025 | + | ||
1026 | +template <typename UC> fastfloat_really_inline constexpr bool has_simd_opt() { | ||
1027 | +#ifdef FASTFLOAT_HAS_SIMD | ||
1028 | + return std::is_same<UC, char16_t>::value; | ||
1029 | +#else | ||
1030 | + return false; | ||
1031 | +#endif | ||
1032 | +} | ||
1033 | + | ||
1034 | +// Next function can be micro-optimized, but compilers are entirely | ||
1035 | +// able to optimize it well. | ||
1036 | +template <typename UC> | ||
1037 | +fastfloat_really_inline constexpr bool is_integer(UC c) noexcept { | ||
1038 | + return !(c > UC('9') || c < UC('0')); | ||
1039 | +} | ||
1040 | + | ||
1041 | +fastfloat_really_inline constexpr uint64_t byteswap(uint64_t val) { | ||
1042 | + return (val & 0xFF00000000000000) >> 56 | (val & 0x00FF000000000000) >> 40 | | ||
1043 | + (val & 0x0000FF0000000000) >> 24 | (val & 0x000000FF00000000) >> 8 | | ||
1044 | + (val & 0x00000000FF000000) << 8 | (val & 0x0000000000FF0000) << 24 | | ||
1045 | + (val & 0x000000000000FF00) << 40 | (val & 0x00000000000000FF) << 56; | ||
1046 | +} | ||
1047 | + | ||
1048 | +// Read 8 UC into a u64. Truncates UC if not char. | ||
1049 | +template <typename UC> | ||
1050 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t | ||
1051 | +read8_to_u64(const UC *chars) { | ||
1052 | + if (cpp20_and_in_constexpr() || !std::is_same<UC, char>::value) { | ||
1053 | + uint64_t val = 0; | ||
1054 | + for (int i = 0; i < 8; ++i) { | ||
1055 | + val |= uint64_t(uint8_t(*chars)) << (i * 8); | ||
1056 | + ++chars; | ||
1057 | + } | ||
1058 | + return val; | ||
1059 | + } | ||
1060 | + uint64_t val; | ||
1061 | + ::memcpy(&val, chars, sizeof(uint64_t)); | ||
1062 | +#if FASTFLOAT_IS_BIG_ENDIAN == 1 | ||
1063 | + // Need to read as-if the number was in little-endian order. | ||
1064 | + val = byteswap(val); | ||
1065 | +#endif | ||
1066 | + return val; | ||
1067 | +} | ||
1068 | + | ||
1069 | +#ifdef FASTFLOAT_SSE2 | ||
1070 | + | ||
1071 | +fastfloat_really_inline uint64_t simd_read8_to_u64(const __m128i data) { | ||
1072 | + FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
1073 | + const __m128i packed = _mm_packus_epi16(data, data); | ||
1074 | +#ifdef FASTFLOAT_64BIT | ||
1075 | + return uint64_t(_mm_cvtsi128_si64(packed)); | ||
1076 | +#else | ||
1077 | + uint64_t value; | ||
1078 | + // Visual Studio + older versions of GCC don't support _mm_storeu_si64 | ||
1079 | + _mm_storel_epi64(reinterpret_cast<__m128i *>(&value), packed); | ||
1080 | + return value; | ||
1081 | +#endif | ||
1082 | + FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
1083 | +} | ||
1084 | + | ||
1085 | +fastfloat_really_inline uint64_t simd_read8_to_u64(const char16_t *chars) { | ||
1086 | + FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
1087 | + return simd_read8_to_u64( | ||
1088 | + _mm_loadu_si128(reinterpret_cast<const __m128i *>(chars))); | ||
1089 | + FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
1090 | +} | ||
1091 | + | ||
1092 | +#elif defined(FASTFLOAT_NEON) | ||
1093 | + | ||
1094 | +fastfloat_really_inline uint64_t simd_read8_to_u64(const uint16x8_t data) { | ||
1095 | + FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
1096 | + uint8x8_t utf8_packed = vmovn_u16(data); | ||
1097 | + return vget_lane_u64(vreinterpret_u64_u8(utf8_packed), 0); | ||
1098 | + FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
1099 | +} | ||
1100 | + | ||
1101 | +fastfloat_really_inline uint64_t simd_read8_to_u64(const char16_t *chars) { | ||
1102 | + FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
1103 | + return simd_read8_to_u64( | ||
1104 | + vld1q_u16(reinterpret_cast<const uint16_t *>(chars))); | ||
1105 | + FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
1106 | +} | ||
1107 | + | ||
1108 | +#endif // FASTFLOAT_SSE2 | ||
1109 | + | ||
1110 | +// MSVC SFINAE is broken pre-VS2017 | ||
1111 | +#if defined(_MSC_VER) && _MSC_VER <= 1900 | ||
1112 | +template <typename UC> | ||
1113 | +#else | ||
1114 | +template <typename UC, FASTFLOAT_ENABLE_IF(!has_simd_opt<UC>()) = 0> | ||
1115 | +#endif | ||
1116 | +// dummy for compile | ||
1117 | +uint64_t simd_read8_to_u64(UC const *) { | ||
1118 | + return 0; | ||
1119 | +} | ||
1120 | + | ||
1121 | +// credit @aqrit | ||
1122 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint32_t | ||
1123 | +parse_eight_digits_unrolled(uint64_t val) { | ||
1124 | + const uint64_t mask = 0x000000FF000000FF; | ||
1125 | + const uint64_t mul1 = 0x000F424000000064; // 100 + (1000000ULL << 32) | ||
1126 | + const uint64_t mul2 = 0x0000271000000001; // 1 + (10000ULL << 32) | ||
1127 | + val -= 0x3030303030303030; | ||
1128 | + val = (val * 10) + (val >> 8); // val = (val * 2561) >> 8; | ||
1129 | + val = (((val & mask) * mul1) + (((val >> 16) & mask) * mul2)) >> 32; | ||
1130 | + return uint32_t(val); | ||
1131 | +} | ||
1132 | + | ||
1133 | +// Call this if chars are definitely 8 digits. | ||
1134 | +template <typename UC> | ||
1135 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint32_t | ||
1136 | +parse_eight_digits_unrolled(UC const *chars) noexcept { | ||
1137 | + if (cpp20_and_in_constexpr() || !has_simd_opt<UC>()) { | ||
1138 | + return parse_eight_digits_unrolled(read8_to_u64(chars)); // truncation okay | ||
1139 | + } | ||
1140 | + return parse_eight_digits_unrolled(simd_read8_to_u64(chars)); | ||
1141 | +} | ||
1142 | + | ||
1143 | +// credit @aqrit | ||
1144 | +fastfloat_really_inline constexpr bool | ||
1145 | +is_made_of_eight_digits_fast(uint64_t val) noexcept { | ||
1146 | + return !((((val + 0x4646464646464646) | (val - 0x3030303030303030)) & | ||
1147 | + 0x8080808080808080)); | ||
1148 | +} | ||
1149 | + | ||
1150 | +#ifdef FASTFLOAT_HAS_SIMD | ||
1151 | + | ||
1152 | +// Call this if chars might not be 8 digits. | ||
1153 | +// Using this style (instead of is_made_of_eight_digits_fast() then | ||
1154 | +// parse_eight_digits_unrolled()) ensures we don't load SIMD registers twice. | ||
1155 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool | ||
1156 | +simd_parse_if_eight_digits_unrolled(const char16_t *chars, | ||
1157 | + uint64_t &i) noexcept { | ||
1158 | + if (cpp20_and_in_constexpr()) { | ||
1159 | + return false; | ||
1160 | + } | ||
1161 | +#ifdef FASTFLOAT_SSE2 | ||
1162 | + FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
1163 | + const __m128i data = | ||
1164 | + _mm_loadu_si128(reinterpret_cast<const __m128i *>(chars)); | ||
1165 | + | ||
1166 | + // (x - '0') <= 9 | ||
1167 | + // http://0x80.pl/articles/simd-parsing-int-sequences.html | ||
1168 | + const __m128i t0 = _mm_add_epi16(data, _mm_set1_epi16(32720)); | ||
1169 | + const __m128i t1 = _mm_cmpgt_epi16(t0, _mm_set1_epi16(-32759)); | ||
1170 | + | ||
1171 | + if (_mm_movemask_epi8(t1) == 0) { | ||
1172 | + i = i * 100000000 + parse_eight_digits_unrolled(simd_read8_to_u64(data)); | ||
1173 | + return true; | ||
1174 | + } else | ||
1175 | + return false; | ||
1176 | + FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
1177 | +#elif defined(FASTFLOAT_NEON) | ||
1178 | + FASTFLOAT_SIMD_DISABLE_WARNINGS | ||
1179 | + const uint16x8_t data = vld1q_u16(reinterpret_cast<const uint16_t *>(chars)); | ||
1180 | + | ||
1181 | + // (x - '0') <= 9 | ||
1182 | + // http://0x80.pl/articles/simd-parsing-int-sequences.html | ||
1183 | + const uint16x8_t t0 = vsubq_u16(data, vmovq_n_u16('0')); | ||
1184 | + const uint16x8_t mask = vcltq_u16(t0, vmovq_n_u16('9' - '0' + 1)); | ||
1185 | + | ||
1186 | + if (vminvq_u16(mask) == 0xFFFF) { | ||
1187 | + i = i * 100000000 + parse_eight_digits_unrolled(simd_read8_to_u64(data)); | ||
1188 | + return true; | ||
1189 | + } else | ||
1190 | + return false; | ||
1191 | + FASTFLOAT_SIMD_RESTORE_WARNINGS | ||
1192 | +#else | ||
1193 | + (void)chars; | ||
1194 | + (void)i; | ||
1195 | + return false; | ||
1196 | +#endif // FASTFLOAT_SSE2 | ||
1197 | +} | ||
1198 | + | ||
1199 | +#endif // FASTFLOAT_HAS_SIMD | ||
1200 | + | ||
1201 | +// MSVC SFINAE is broken pre-VS2017 | ||
1202 | +#if defined(_MSC_VER) && _MSC_VER <= 1900 | ||
1203 | +template <typename UC> | ||
1204 | +#else | ||
1205 | +template <typename UC, FASTFLOAT_ENABLE_IF(!has_simd_opt<UC>()) = 0> | ||
1206 | +#endif | ||
1207 | +// dummy for compile | ||
1208 | +bool simd_parse_if_eight_digits_unrolled(UC const *, uint64_t &) { | ||
1209 | + return 0; | ||
1210 | +} | ||
1211 | + | ||
1212 | +template <typename UC, FASTFLOAT_ENABLE_IF(!std::is_same<UC, char>::value) = 0> | ||
1213 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
1214 | +loop_parse_if_eight_digits(const UC *&p, const UC *const pend, uint64_t &i) { | ||
1215 | + if (!has_simd_opt<UC>()) { | ||
1216 | + return; | ||
1217 | + } | ||
1218 | + while ((std::distance(p, pend) >= 8) && | ||
1219 | + simd_parse_if_eight_digits_unrolled( | ||
1220 | + p, i)) { // in rare cases, this will overflow, but that's ok | ||
1221 | + p += 8; | ||
1222 | + } | ||
1223 | +} | ||
1224 | + | ||
1225 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
1226 | +loop_parse_if_eight_digits(const char *&p, const char *const pend, | ||
1227 | + uint64_t &i) { | ||
1228 | + // optimizes better than parse_if_eight_digits_unrolled() for UC = char. | ||
1229 | + while ((std::distance(p, pend) >= 8) && | ||
1230 | + is_made_of_eight_digits_fast(read8_to_u64(p))) { | ||
1231 | + i = i * 100000000 + | ||
1232 | + parse_eight_digits_unrolled(read8_to_u64( | ||
1233 | + p)); // in rare cases, this will overflow, but that's ok | ||
1234 | + p += 8; | ||
1235 | + } | ||
1236 | +} | ||
1237 | + | ||
1238 | +enum class parse_error { | ||
1239 | + no_error, | ||
1240 | + // [JSON-only] The minus sign must be followed by an integer. | ||
1241 | + missing_integer_after_sign, | ||
1242 | + // A sign must be followed by an integer or dot. | ||
1243 | + missing_integer_or_dot_after_sign, | ||
1244 | + // [JSON-only] The integer part must not have leading zeros. | ||
1245 | + leading_zeros_in_integer_part, | ||
1246 | + // [JSON-only] The integer part must have at least one digit. | ||
1247 | + no_digits_in_integer_part, | ||
1248 | + // [JSON-only] If there is a decimal point, there must be digits in the | ||
1249 | + // fractional part. | ||
1250 | + no_digits_in_fractional_part, | ||
1251 | + // The mantissa must have at least one digit. | ||
1252 | + no_digits_in_mantissa, | ||
1253 | + // Scientific notation requires an exponential part. | ||
1254 | + missing_exponential_part, | ||
1255 | +}; | ||
1256 | + | ||
1257 | +template <typename UC> struct parsed_number_string_t { | ||
1258 | + int64_t exponent{0}; | ||
1259 | + uint64_t mantissa{0}; | ||
1260 | + UC const *lastmatch{nullptr}; | ||
1261 | + bool negative{false}; | ||
1262 | + bool valid{false}; | ||
1263 | + bool too_many_digits{false}; | ||
1264 | + // contains the range of the significant digits | ||
1265 | + span<const UC> integer{}; // non-nullable | ||
1266 | + span<const UC> fraction{}; // nullable | ||
1267 | + parse_error error{parse_error::no_error}; | ||
1268 | +}; | ||
1269 | + | ||
1270 | +using byte_span = span<const char>; | ||
1271 | +using parsed_number_string = parsed_number_string_t<char>; | ||
1272 | + | ||
1273 | +template <typename UC> | ||
1274 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 parsed_number_string_t<UC> | ||
1275 | +report_parse_error(UC const *p, parse_error error) { | ||
1276 | + parsed_number_string_t<UC> answer; | ||
1277 | + answer.valid = false; | ||
1278 | + answer.lastmatch = p; | ||
1279 | + answer.error = error; | ||
1280 | + return answer; | ||
1281 | +} | ||
1282 | + | ||
1283 | +// Assuming that you use no more than 19 digits, this will | ||
1284 | +// parse an ASCII string. | ||
1285 | +template <typename UC> | ||
1286 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 parsed_number_string_t<UC> | ||
1287 | +parse_number_string(UC const *p, UC const *pend, | ||
1288 | + parse_options_t<UC> options) noexcept { | ||
1289 | + chars_format const fmt = options.format; | ||
1290 | + UC const decimal_point = options.decimal_point; | ||
1291 | + | ||
1292 | + parsed_number_string_t<UC> answer; | ||
1293 | + answer.valid = false; | ||
1294 | + answer.too_many_digits = false; | ||
1295 | + answer.negative = (*p == UC('-')); | ||
1296 | +#ifdef FASTFLOAT_ALLOWS_LEADING_PLUS // disabled by default | ||
1297 | + if ((*p == UC('-')) || (!(fmt & FASTFLOAT_JSONFMT) && *p == UC('+'))) { | ||
1298 | +#else | ||
1299 | + if (*p == UC('-')) { // C++17 20.19.3.(7.1) explicitly forbids '+' sign here | ||
1300 | +#endif | ||
1301 | + ++p; | ||
1302 | + if (p == pend) { | ||
1303 | + return report_parse_error<UC>( | ||
1304 | + p, parse_error::missing_integer_or_dot_after_sign); | ||
1305 | + } | ||
1306 | + if (fmt & FASTFLOAT_JSONFMT) { | ||
1307 | + if (!is_integer(*p)) { // a sign must be followed by an integer | ||
1308 | + return report_parse_error<UC>(p, | ||
1309 | + parse_error::missing_integer_after_sign); | ||
1310 | + } | ||
1311 | + } else { | ||
1312 | + if (!is_integer(*p) && | ||
1313 | + (*p != | ||
1314 | + decimal_point)) { // a sign must be followed by an integer or the dot | ||
1315 | + return report_parse_error<UC>( | ||
1316 | + p, parse_error::missing_integer_or_dot_after_sign); | ||
1317 | + } | ||
1318 | + } | ||
1319 | + } | ||
1320 | + UC const *const start_digits = p; | ||
1321 | + | ||
1322 | + uint64_t i = 0; // an unsigned int avoids signed overflows (which are bad) | ||
1323 | + | ||
1324 | + while ((p != pend) && is_integer(*p)) { | ||
1325 | + // a multiplication by 10 is cheaper than an arbitrary integer | ||
1326 | + // multiplication | ||
1327 | + i = 10 * i + | ||
1328 | + uint64_t(*p - | ||
1329 | + UC('0')); // might overflow, we will handle the overflow later | ||
1330 | + ++p; | ||
1331 | + } | ||
1332 | + UC const *const end_of_integer_part = p; | ||
1333 | + int64_t digit_count = int64_t(end_of_integer_part - start_digits); | ||
1334 | + answer.integer = span<const UC>(start_digits, size_t(digit_count)); | ||
1335 | + if (fmt & FASTFLOAT_JSONFMT) { | ||
1336 | + // at least 1 digit in integer part, without leading zeros | ||
1337 | + if (digit_count == 0) { | ||
1338 | + return report_parse_error<UC>(p, parse_error::no_digits_in_integer_part); | ||
1339 | + } | ||
1340 | + if ((start_digits[0] == UC('0') && digit_count > 1)) { | ||
1341 | + return report_parse_error<UC>(start_digits, | ||
1342 | + parse_error::leading_zeros_in_integer_part); | ||
1343 | + } | ||
1344 | + } | ||
1345 | + | ||
1346 | + int64_t exponent = 0; | ||
1347 | + const bool has_decimal_point = (p != pend) && (*p == decimal_point); | ||
1348 | + if (has_decimal_point) { | ||
1349 | + ++p; | ||
1350 | + UC const *before = p; | ||
1351 | + // can occur at most twice without overflowing, but let it occur more, since | ||
1352 | + // for integers with many digits, digit parsing is the primary bottleneck. | ||
1353 | + loop_parse_if_eight_digits(p, pend, i); | ||
1354 | + | ||
1355 | + while ((p != pend) && is_integer(*p)) { | ||
1356 | + uint8_t digit = uint8_t(*p - UC('0')); | ||
1357 | + ++p; | ||
1358 | + i = i * 10 + digit; // in rare cases, this will overflow, but that's ok | ||
1359 | + } | ||
1360 | + exponent = before - p; | ||
1361 | + answer.fraction = span<const UC>(before, size_t(p - before)); | ||
1362 | + digit_count -= exponent; | ||
1363 | + } | ||
1364 | + if (fmt & FASTFLOAT_JSONFMT) { | ||
1365 | + // at least 1 digit in fractional part | ||
1366 | + if (has_decimal_point && exponent == 0) { | ||
1367 | + return report_parse_error<UC>(p, | ||
1368 | + parse_error::no_digits_in_fractional_part); | ||
1369 | + } | ||
1370 | + } else if (digit_count == | ||
1371 | + 0) { // we must have encountered at least one integer! | ||
1372 | + return report_parse_error<UC>(p, parse_error::no_digits_in_mantissa); | ||
1373 | + } | ||
1374 | + int64_t exp_number = 0; // explicit exponential part | ||
1375 | + if (((fmt & chars_format::scientific) && (p != pend) && | ||
1376 | + ((UC('e') == *p) || (UC('E') == *p))) || | ||
1377 | + ((fmt & FASTFLOAT_FORTRANFMT) && (p != pend) && | ||
1378 | + ((UC('+') == *p) || (UC('-') == *p) || (UC('d') == *p) || | ||
1379 | + (UC('D') == *p)))) { | ||
1380 | + UC const *location_of_e = p; | ||
1381 | + if ((UC('e') == *p) || (UC('E') == *p) || (UC('d') == *p) || | ||
1382 | + (UC('D') == *p)) { | ||
1383 | + ++p; | ||
1384 | + } | ||
1385 | + bool neg_exp = false; | ||
1386 | + if ((p != pend) && (UC('-') == *p)) { | ||
1387 | + neg_exp = true; | ||
1388 | + ++p; | ||
1389 | + } else if ((p != pend) && | ||
1390 | + (UC('+') == | ||
1391 | + *p)) { // '+' on exponent is allowed by C++17 20.19.3.(7.1) | ||
1392 | + ++p; | ||
1393 | + } | ||
1394 | + if ((p == pend) || !is_integer(*p)) { | ||
1395 | + if (!(fmt & chars_format::fixed)) { | ||
1396 | + // The exponential part is invalid for scientific notation, so it must | ||
1397 | + // be a trailing token for fixed notation. However, fixed notation is | ||
1398 | + // disabled, so report a scientific notation error. | ||
1399 | + return report_parse_error<UC>(p, parse_error::missing_exponential_part); | ||
1400 | + } | ||
1401 | + // Otherwise, we will be ignoring the 'e'. | ||
1402 | + p = location_of_e; | ||
1403 | + } else { | ||
1404 | + while ((p != pend) && is_integer(*p)) { | ||
1405 | + uint8_t digit = uint8_t(*p - UC('0')); | ||
1406 | + if (exp_number < 0x10000000) { | ||
1407 | + exp_number = 10 * exp_number + digit; | ||
1408 | + } | ||
1409 | + ++p; | ||
1410 | + } | ||
1411 | + if (neg_exp) { | ||
1412 | + exp_number = -exp_number; | ||
1413 | + } | ||
1414 | + exponent += exp_number; | ||
1415 | + } | ||
1416 | + } else { | ||
1417 | + // If it scientific and not fixed, we have to bail out. | ||
1418 | + if ((fmt & chars_format::scientific) && !(fmt & chars_format::fixed)) { | ||
1419 | + return report_parse_error<UC>(p, parse_error::missing_exponential_part); | ||
1420 | + } | ||
1421 | + } | ||
1422 | + answer.lastmatch = p; | ||
1423 | + answer.valid = true; | ||
1424 | + | ||
1425 | + // If we frequently had to deal with long strings of digits, | ||
1426 | + // we could extend our code by using a 128-bit integer instead | ||
1427 | + // of a 64-bit integer. However, this is uncommon. | ||
1428 | + // | ||
1429 | + // We can deal with up to 19 digits. | ||
1430 | + if (digit_count > 19) { // this is uncommon | ||
1431 | + // It is possible that the integer had an overflow. | ||
1432 | + // We have to handle the case where we have 0.0000somenumber. | ||
1433 | + // We need to be mindful of the case where we only have zeroes... | ||
1434 | + // E.g., 0.000000000...000. | ||
1435 | + UC const *start = start_digits; | ||
1436 | + while ((start != pend) && (*start == UC('0') || *start == decimal_point)) { | ||
1437 | + if (*start == UC('0')) { | ||
1438 | + digit_count--; | ||
1439 | + } | ||
1440 | + start++; | ||
1441 | + } | ||
1442 | + | ||
1443 | + if (digit_count > 19) { | ||
1444 | + answer.too_many_digits = true; | ||
1445 | + // Let us start again, this time, avoiding overflows. | ||
1446 | + // We don't need to check if is_integer, since we use the | ||
1447 | + // pre-tokenized spans from above. | ||
1448 | + i = 0; | ||
1449 | + p = answer.integer.ptr; | ||
1450 | + UC const *int_end = p + answer.integer.len(); | ||
1451 | + const uint64_t minimal_nineteen_digit_integer{1000000000000000000}; | ||
1452 | + while ((i < minimal_nineteen_digit_integer) && (p != int_end)) { | ||
1453 | + i = i * 10 + uint64_t(*p - UC('0')); | ||
1454 | + ++p; | ||
1455 | + } | ||
1456 | + if (i >= minimal_nineteen_digit_integer) { // We have a big integers | ||
1457 | + exponent = end_of_integer_part - p + exp_number; | ||
1458 | + } else { // We have a value with a fractional component. | ||
1459 | + p = answer.fraction.ptr; | ||
1460 | + UC const *frac_end = p + answer.fraction.len(); | ||
1461 | + while ((i < minimal_nineteen_digit_integer) && (p != frac_end)) { | ||
1462 | + i = i * 10 + uint64_t(*p - UC('0')); | ||
1463 | + ++p; | ||
1464 | + } | ||
1465 | + exponent = answer.fraction.ptr - p + exp_number; | ||
1466 | + } | ||
1467 | + // We have now corrected both exponent and i, to a truncated value | ||
1468 | + } | ||
1469 | + } | ||
1470 | + answer.exponent = exponent; | ||
1471 | + answer.mantissa = i; | ||
1472 | + return answer; | ||
1473 | +} | ||
1474 | + | ||
1475 | +template <typename T, typename UC> | ||
1476 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
1477 | +parse_int_string(UC const *p, UC const *pend, T &value, int base) { | ||
1478 | + from_chars_result_t<UC> answer; | ||
1479 | + | ||
1480 | + UC const *const first = p; | ||
1481 | + | ||
1482 | + bool negative = (*p == UC('-')); | ||
1483 | + if (!std::is_signed<T>::value && negative) { | ||
1484 | + answer.ec = std::errc::invalid_argument; | ||
1485 | + answer.ptr = first; | ||
1486 | + return answer; | ||
1487 | + } | ||
1488 | +#ifdef FASTFLOAT_ALLOWS_LEADING_PLUS // disabled by default | ||
1489 | + if ((*p == UC('-')) || (*p == UC('+'))) { | ||
1490 | +#else | ||
1491 | + if (*p == UC('-')) { | ||
1492 | +#endif | ||
1493 | + ++p; | ||
1494 | + } | ||
1495 | + | ||
1496 | + UC const *const start_num = p; | ||
1497 | + | ||
1498 | + while (p != pend && *p == UC('0')) { | ||
1499 | + ++p; | ||
1500 | + } | ||
1501 | + | ||
1502 | + const bool has_leading_zeros = p > start_num; | ||
1503 | + | ||
1504 | + UC const *const start_digits = p; | ||
1505 | + | ||
1506 | + uint64_t i = 0; | ||
1507 | + if (base == 10) { | ||
1508 | + loop_parse_if_eight_digits(p, pend, i); // use SIMD if possible | ||
1509 | + } | ||
1510 | + while (p != pend) { | ||
1511 | + uint8_t digit = ch_to_digit(*p); | ||
1512 | + if (digit >= base) { | ||
1513 | + break; | ||
1514 | + } | ||
1515 | + i = uint64_t(base) * i + digit; // might overflow, check this later | ||
1516 | + p++; | ||
1517 | + } | ||
1518 | + | ||
1519 | + size_t digit_count = size_t(p - start_digits); | ||
1520 | + | ||
1521 | + if (digit_count == 0) { | ||
1522 | + if (has_leading_zeros) { | ||
1523 | + value = 0; | ||
1524 | + answer.ec = std::errc(); | ||
1525 | + answer.ptr = p; | ||
1526 | + } else { | ||
1527 | + answer.ec = std::errc::invalid_argument; | ||
1528 | + answer.ptr = first; | ||
1529 | + } | ||
1530 | + return answer; | ||
1531 | + } | ||
1532 | + | ||
1533 | + answer.ptr = p; | ||
1534 | + | ||
1535 | + // check u64 overflow | ||
1536 | + size_t max_digits = max_digits_u64(base); | ||
1537 | + if (digit_count > max_digits) { | ||
1538 | + answer.ec = std::errc::result_out_of_range; | ||
1539 | + return answer; | ||
1540 | + } | ||
1541 | + // this check can be eliminated for all other types, but they will all require | ||
1542 | + // a max_digits(base) equivalent | ||
1543 | + if (digit_count == max_digits && i < min_safe_u64(base)) { | ||
1544 | + answer.ec = std::errc::result_out_of_range; | ||
1545 | + return answer; | ||
1546 | + } | ||
1547 | + | ||
1548 | + // check other types overflow | ||
1549 | + if (!std::is_same<T, uint64_t>::value) { | ||
1550 | + if (i > uint64_t(std::numeric_limits<T>::max()) + uint64_t(negative)) { | ||
1551 | + answer.ec = std::errc::result_out_of_range; | ||
1552 | + return answer; | ||
1553 | + } | ||
1554 | + } | ||
1555 | + | ||
1556 | + if (negative) { | ||
1557 | +#ifdef FASTFLOAT_VISUAL_STUDIO | ||
1558 | +#pragma warning(push) | ||
1559 | +#pragma warning(disable : 4146) | ||
1560 | +#endif | ||
1561 | + // this weird workaround is required because: | ||
1562 | + // - converting unsigned to signed when its value is greater than signed max | ||
1563 | + // is UB pre-C++23. | ||
1564 | + // - reinterpret_casting (~i + 1) would work, but it is not constexpr | ||
1565 | + // this is always optimized into a neg instruction (note: T is an integer | ||
1566 | + // type) | ||
1567 | + value = T(-std::numeric_limits<T>::max() - | ||
1568 | + T(i - uint64_t(std::numeric_limits<T>::max()))); | ||
1569 | +#ifdef FASTFLOAT_VISUAL_STUDIO | ||
1570 | +#pragma warning(pop) | ||
1571 | +#endif | ||
1572 | + } else { | ||
1573 | + value = T(i); | ||
1574 | + } | ||
1575 | + | ||
1576 | + answer.ec = std::errc(); | ||
1577 | + return answer; | ||
1578 | +} | ||
1579 | + | ||
1580 | +} // namespace fast_float | ||
1581 | + | ||
1582 | +#endif | ||
1583 | + | ||
1584 | +#ifndef FASTFLOAT_FAST_TABLE_H | ||
1585 | +#define FASTFLOAT_FAST_TABLE_H | ||
1586 | + | ||
1587 | +#include <cstdint> | ||
1588 | + | ||
1589 | +namespace fast_float { | ||
1590 | + | ||
1591 | +/** | ||
1592 | + * When mapping numbers from decimal to binary, | ||
1593 | + * we go from w * 10^q to m * 2^p but we have | ||
1594 | + * 10^q = 5^q * 2^q, so effectively | ||
1595 | + * we are trying to match | ||
1596 | + * w * 2^q * 5^q to m * 2^p. Thus the powers of two | ||
1597 | + * are not a concern since they can be represented | ||
1598 | + * exactly using the binary notation, only the powers of five | ||
1599 | + * affect the binary significand. | ||
1600 | + */ | ||
1601 | + | ||
1602 | +/** | ||
1603 | + * The smallest non-zero float (binary64) is 2^-1074. | ||
1604 | + * We take as input numbers of the form w x 10^q where w < 2^64. | ||
1605 | + * We have that w * 10^-343 < 2^(64-344) 5^-343 < 2^-1076. | ||
1606 | + * However, we have that | ||
1607 | + * (2^64-1) * 10^-342 = (2^64-1) * 2^-342 * 5^-342 > 2^-1074. | ||
1608 | + * Thus it is possible for a number of the form w * 10^-342 where | ||
1609 | + * w is a 64-bit value to be a non-zero floating-point number. | ||
1610 | + ********* | ||
1611 | + * Any number of form w * 10^309 where w>= 1 is going to be | ||
1612 | + * infinite in binary64 so we never need to worry about powers | ||
1613 | + * of 5 greater than 308. | ||
1614 | + */ | ||
1615 | +template <class unused = void> struct powers_template { | ||
1616 | + | ||
1617 | + constexpr static int smallest_power_of_five = | ||
1618 | + binary_format<double>::smallest_power_of_ten(); | ||
1619 | + constexpr static int largest_power_of_five = | ||
1620 | + binary_format<double>::largest_power_of_ten(); | ||
1621 | + constexpr static int number_of_entries = | ||
1622 | + 2 * (largest_power_of_five - smallest_power_of_five + 1); | ||
1623 | + // Powers of five from 5^-342 all the way to 5^308 rounded toward one. | ||
1624 | + constexpr static uint64_t power_of_five_128[number_of_entries] = { | ||
1625 | + 0xeef453d6923bd65a, 0x113faa2906a13b3f, | ||
1626 | + 0x9558b4661b6565f8, 0x4ac7ca59a424c507, | ||
1627 | + 0xbaaee17fa23ebf76, 0x5d79bcf00d2df649, | ||
1628 | + 0xe95a99df8ace6f53, 0xf4d82c2c107973dc, | ||
1629 | + 0x91d8a02bb6c10594, 0x79071b9b8a4be869, | ||
1630 | + 0xb64ec836a47146f9, 0x9748e2826cdee284, | ||
1631 | + 0xe3e27a444d8d98b7, 0xfd1b1b2308169b25, | ||
1632 | + 0x8e6d8c6ab0787f72, 0xfe30f0f5e50e20f7, | ||
1633 | + 0xb208ef855c969f4f, 0xbdbd2d335e51a935, | ||
1634 | + 0xde8b2b66b3bc4723, 0xad2c788035e61382, | ||
1635 | + 0x8b16fb203055ac76, 0x4c3bcb5021afcc31, | ||
1636 | + 0xaddcb9e83c6b1793, 0xdf4abe242a1bbf3d, | ||
1637 | + 0xd953e8624b85dd78, 0xd71d6dad34a2af0d, | ||
1638 | + 0x87d4713d6f33aa6b, 0x8672648c40e5ad68, | ||
1639 | + 0xa9c98d8ccb009506, 0x680efdaf511f18c2, | ||
1640 | + 0xd43bf0effdc0ba48, 0x212bd1b2566def2, | ||
1641 | + 0x84a57695fe98746d, 0x14bb630f7604b57, | ||
1642 | + 0xa5ced43b7e3e9188, 0x419ea3bd35385e2d, | ||
1643 | + 0xcf42894a5dce35ea, 0x52064cac828675b9, | ||
1644 | + 0x818995ce7aa0e1b2, 0x7343efebd1940993, | ||
1645 | + 0xa1ebfb4219491a1f, 0x1014ebe6c5f90bf8, | ||
1646 | + 0xca66fa129f9b60a6, 0xd41a26e077774ef6, | ||
1647 | + 0xfd00b897478238d0, 0x8920b098955522b4, | ||
1648 | + 0x9e20735e8cb16382, 0x55b46e5f5d5535b0, | ||
1649 | + 0xc5a890362fddbc62, 0xeb2189f734aa831d, | ||
1650 | + 0xf712b443bbd52b7b, 0xa5e9ec7501d523e4, | ||
1651 | + 0x9a6bb0aa55653b2d, 0x47b233c92125366e, | ||
1652 | + 0xc1069cd4eabe89f8, 0x999ec0bb696e840a, | ||
1653 | + 0xf148440a256e2c76, 0xc00670ea43ca250d, | ||
1654 | + 0x96cd2a865764dbca, 0x380406926a5e5728, | ||
1655 | + 0xbc807527ed3e12bc, 0xc605083704f5ecf2, | ||
1656 | + 0xeba09271e88d976b, 0xf7864a44c633682e, | ||
1657 | + 0x93445b8731587ea3, 0x7ab3ee6afbe0211d, | ||
1658 | + 0xb8157268fdae9e4c, 0x5960ea05bad82964, | ||
1659 | + 0xe61acf033d1a45df, 0x6fb92487298e33bd, | ||
1660 | + 0x8fd0c16206306bab, 0xa5d3b6d479f8e056, | ||
1661 | + 0xb3c4f1ba87bc8696, 0x8f48a4899877186c, | ||
1662 | + 0xe0b62e2929aba83c, 0x331acdabfe94de87, | ||
1663 | + 0x8c71dcd9ba0b4925, 0x9ff0c08b7f1d0b14, | ||
1664 | + 0xaf8e5410288e1b6f, 0x7ecf0ae5ee44dd9, | ||
1665 | + 0xdb71e91432b1a24a, 0xc9e82cd9f69d6150, | ||
1666 | + 0x892731ac9faf056e, 0xbe311c083a225cd2, | ||
1667 | + 0xab70fe17c79ac6ca, 0x6dbd630a48aaf406, | ||
1668 | + 0xd64d3d9db981787d, 0x92cbbccdad5b108, | ||
1669 | + 0x85f0468293f0eb4e, 0x25bbf56008c58ea5, | ||
1670 | + 0xa76c582338ed2621, 0xaf2af2b80af6f24e, | ||
1671 | + 0xd1476e2c07286faa, 0x1af5af660db4aee1, | ||
1672 | + 0x82cca4db847945ca, 0x50d98d9fc890ed4d, | ||
1673 | + 0xa37fce126597973c, 0xe50ff107bab528a0, | ||
1674 | + 0xcc5fc196fefd7d0c, 0x1e53ed49a96272c8, | ||
1675 | + 0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7a, | ||
1676 | + 0x9faacf3df73609b1, 0x77b191618c54e9ac, | ||
1677 | + 0xc795830d75038c1d, 0xd59df5b9ef6a2417, | ||
1678 | + 0xf97ae3d0d2446f25, 0x4b0573286b44ad1d, | ||
1679 | + 0x9becce62836ac577, 0x4ee367f9430aec32, | ||
1680 | + 0xc2e801fb244576d5, 0x229c41f793cda73f, | ||
1681 | + 0xf3a20279ed56d48a, 0x6b43527578c1110f, | ||
1682 | + 0x9845418c345644d6, 0x830a13896b78aaa9, | ||
1683 | + 0xbe5691ef416bd60c, 0x23cc986bc656d553, | ||
1684 | + 0xedec366b11c6cb8f, 0x2cbfbe86b7ec8aa8, | ||
1685 | + 0x94b3a202eb1c3f39, 0x7bf7d71432f3d6a9, | ||
1686 | + 0xb9e08a83a5e34f07, 0xdaf5ccd93fb0cc53, | ||
1687 | + 0xe858ad248f5c22c9, 0xd1b3400f8f9cff68, | ||
1688 | + 0x91376c36d99995be, 0x23100809b9c21fa1, | ||
1689 | + 0xb58547448ffffb2d, 0xabd40a0c2832a78a, | ||
1690 | + 0xe2e69915b3fff9f9, 0x16c90c8f323f516c, | ||
1691 | + 0x8dd01fad907ffc3b, 0xae3da7d97f6792e3, | ||
1692 | + 0xb1442798f49ffb4a, 0x99cd11cfdf41779c, | ||
1693 | + 0xdd95317f31c7fa1d, 0x40405643d711d583, | ||
1694 | + 0x8a7d3eef7f1cfc52, 0x482835ea666b2572, | ||
1695 | + 0xad1c8eab5ee43b66, 0xda3243650005eecf, | ||
1696 | + 0xd863b256369d4a40, 0x90bed43e40076a82, | ||
1697 | + 0x873e4f75e2224e68, 0x5a7744a6e804a291, | ||
1698 | + 0xa90de3535aaae202, 0x711515d0a205cb36, | ||
1699 | + 0xd3515c2831559a83, 0xd5a5b44ca873e03, | ||
1700 | + 0x8412d9991ed58091, 0xe858790afe9486c2, | ||
1701 | + 0xa5178fff668ae0b6, 0x626e974dbe39a872, | ||
1702 | + 0xce5d73ff402d98e3, 0xfb0a3d212dc8128f, | ||
1703 | + 0x80fa687f881c7f8e, 0x7ce66634bc9d0b99, | ||
1704 | + 0xa139029f6a239f72, 0x1c1fffc1ebc44e80, | ||
1705 | + 0xc987434744ac874e, 0xa327ffb266b56220, | ||
1706 | + 0xfbe9141915d7a922, 0x4bf1ff9f0062baa8, | ||
1707 | + 0x9d71ac8fada6c9b5, 0x6f773fc3603db4a9, | ||
1708 | + 0xc4ce17b399107c22, 0xcb550fb4384d21d3, | ||
1709 | + 0xf6019da07f549b2b, 0x7e2a53a146606a48, | ||
1710 | + 0x99c102844f94e0fb, 0x2eda7444cbfc426d, | ||
1711 | + 0xc0314325637a1939, 0xfa911155fefb5308, | ||
1712 | + 0xf03d93eebc589f88, 0x793555ab7eba27ca, | ||
1713 | + 0x96267c7535b763b5, 0x4bc1558b2f3458de, | ||
1714 | + 0xbbb01b9283253ca2, 0x9eb1aaedfb016f16, | ||
1715 | + 0xea9c227723ee8bcb, 0x465e15a979c1cadc, | ||
1716 | + 0x92a1958a7675175f, 0xbfacd89ec191ec9, | ||
1717 | + 0xb749faed14125d36, 0xcef980ec671f667b, | ||
1718 | + 0xe51c79a85916f484, 0x82b7e12780e7401a, | ||
1719 | + 0x8f31cc0937ae58d2, 0xd1b2ecb8b0908810, | ||
1720 | + 0xb2fe3f0b8599ef07, 0x861fa7e6dcb4aa15, | ||
1721 | + 0xdfbdcece67006ac9, 0x67a791e093e1d49a, | ||
1722 | + 0x8bd6a141006042bd, 0xe0c8bb2c5c6d24e0, | ||
1723 | + 0xaecc49914078536d, 0x58fae9f773886e18, | ||
1724 | + 0xda7f5bf590966848, 0xaf39a475506a899e, | ||
1725 | + 0x888f99797a5e012d, 0x6d8406c952429603, | ||
1726 | + 0xaab37fd7d8f58178, 0xc8e5087ba6d33b83, | ||
1727 | + 0xd5605fcdcf32e1d6, 0xfb1e4a9a90880a64, | ||
1728 | + 0x855c3be0a17fcd26, 0x5cf2eea09a55067f, | ||
1729 | + 0xa6b34ad8c9dfc06f, 0xf42faa48c0ea481e, | ||
1730 | + 0xd0601d8efc57b08b, 0xf13b94daf124da26, | ||
1731 | + 0x823c12795db6ce57, 0x76c53d08d6b70858, | ||
1732 | + 0xa2cb1717b52481ed, 0x54768c4b0c64ca6e, | ||
1733 | + 0xcb7ddcdda26da268, 0xa9942f5dcf7dfd09, | ||
1734 | + 0xfe5d54150b090b02, 0xd3f93b35435d7c4c, | ||
1735 | + 0x9efa548d26e5a6e1, 0xc47bc5014a1a6daf, | ||
1736 | + 0xc6b8e9b0709f109a, 0x359ab6419ca1091b, | ||
1737 | + 0xf867241c8cc6d4c0, 0xc30163d203c94b62, | ||
1738 | + 0x9b407691d7fc44f8, 0x79e0de63425dcf1d, | ||
1739 | + 0xc21094364dfb5636, 0x985915fc12f542e4, | ||
1740 | + 0xf294b943e17a2bc4, 0x3e6f5b7b17b2939d, | ||
1741 | + 0x979cf3ca6cec5b5a, 0xa705992ceecf9c42, | ||
1742 | + 0xbd8430bd08277231, 0x50c6ff782a838353, | ||
1743 | + 0xece53cec4a314ebd, 0xa4f8bf5635246428, | ||
1744 | + 0x940f4613ae5ed136, 0x871b7795e136be99, | ||
1745 | + 0xb913179899f68584, 0x28e2557b59846e3f, | ||
1746 | + 0xe757dd7ec07426e5, 0x331aeada2fe589cf, | ||
1747 | + 0x9096ea6f3848984f, 0x3ff0d2c85def7621, | ||
1748 | + 0xb4bca50b065abe63, 0xfed077a756b53a9, | ||
1749 | + 0xe1ebce4dc7f16dfb, 0xd3e8495912c62894, | ||
1750 | + 0x8d3360f09cf6e4bd, 0x64712dd7abbbd95c, | ||
1751 | + 0xb080392cc4349dec, 0xbd8d794d96aacfb3, | ||
1752 | + 0xdca04777f541c567, 0xecf0d7a0fc5583a0, | ||
1753 | + 0x89e42caaf9491b60, 0xf41686c49db57244, | ||
1754 | + 0xac5d37d5b79b6239, 0x311c2875c522ced5, | ||
1755 | + 0xd77485cb25823ac7, 0x7d633293366b828b, | ||
1756 | + 0x86a8d39ef77164bc, 0xae5dff9c02033197, | ||
1757 | + 0xa8530886b54dbdeb, 0xd9f57f830283fdfc, | ||
1758 | + 0xd267caa862a12d66, 0xd072df63c324fd7b, | ||
1759 | + 0x8380dea93da4bc60, 0x4247cb9e59f71e6d, | ||
1760 | + 0xa46116538d0deb78, 0x52d9be85f074e608, | ||
1761 | + 0xcd795be870516656, 0x67902e276c921f8b, | ||
1762 | + 0x806bd9714632dff6, 0xba1cd8a3db53b6, | ||
1763 | + 0xa086cfcd97bf97f3, 0x80e8a40eccd228a4, | ||
1764 | + 0xc8a883c0fdaf7df0, 0x6122cd128006b2cd, | ||
1765 | + 0xfad2a4b13d1b5d6c, 0x796b805720085f81, | ||
1766 | + 0x9cc3a6eec6311a63, 0xcbe3303674053bb0, | ||
1767 | + 0xc3f490aa77bd60fc, 0xbedbfc4411068a9c, | ||
1768 | + 0xf4f1b4d515acb93b, 0xee92fb5515482d44, | ||
1769 | + 0x991711052d8bf3c5, 0x751bdd152d4d1c4a, | ||
1770 | + 0xbf5cd54678eef0b6, 0xd262d45a78a0635d, | ||
1771 | + 0xef340a98172aace4, 0x86fb897116c87c34, | ||
1772 | + 0x9580869f0e7aac0e, 0xd45d35e6ae3d4da0, | ||
1773 | + 0xbae0a846d2195712, 0x8974836059cca109, | ||
1774 | + 0xe998d258869facd7, 0x2bd1a438703fc94b, | ||
1775 | + 0x91ff83775423cc06, 0x7b6306a34627ddcf, | ||
1776 | + 0xb67f6455292cbf08, 0x1a3bc84c17b1d542, | ||
1777 | + 0xe41f3d6a7377eeca, 0x20caba5f1d9e4a93, | ||
1778 | + 0x8e938662882af53e, 0x547eb47b7282ee9c, | ||
1779 | + 0xb23867fb2a35b28d, 0xe99e619a4f23aa43, | ||
1780 | + 0xdec681f9f4c31f31, 0x6405fa00e2ec94d4, | ||
1781 | + 0x8b3c113c38f9f37e, 0xde83bc408dd3dd04, | ||
1782 | + 0xae0b158b4738705e, 0x9624ab50b148d445, | ||
1783 | + 0xd98ddaee19068c76, 0x3badd624dd9b0957, | ||
1784 | + 0x87f8a8d4cfa417c9, 0xe54ca5d70a80e5d6, | ||
1785 | + 0xa9f6d30a038d1dbc, 0x5e9fcf4ccd211f4c, | ||
1786 | + 0xd47487cc8470652b, 0x7647c3200069671f, | ||
1787 | + 0x84c8d4dfd2c63f3b, 0x29ecd9f40041e073, | ||
1788 | + 0xa5fb0a17c777cf09, 0xf468107100525890, | ||
1789 | + 0xcf79cc9db955c2cc, 0x7182148d4066eeb4, | ||
1790 | + 0x81ac1fe293d599bf, 0xc6f14cd848405530, | ||
1791 | + 0xa21727db38cb002f, 0xb8ada00e5a506a7c, | ||
1792 | + 0xca9cf1d206fdc03b, 0xa6d90811f0e4851c, | ||
1793 | + 0xfd442e4688bd304a, 0x908f4a166d1da663, | ||
1794 | + 0x9e4a9cec15763e2e, 0x9a598e4e043287fe, | ||
1795 | + 0xc5dd44271ad3cdba, 0x40eff1e1853f29fd, | ||
1796 | + 0xf7549530e188c128, 0xd12bee59e68ef47c, | ||
1797 | + 0x9a94dd3e8cf578b9, 0x82bb74f8301958ce, | ||
1798 | + 0xc13a148e3032d6e7, 0xe36a52363c1faf01, | ||
1799 | + 0xf18899b1bc3f8ca1, 0xdc44e6c3cb279ac1, | ||
1800 | + 0x96f5600f15a7b7e5, 0x29ab103a5ef8c0b9, | ||
1801 | + 0xbcb2b812db11a5de, 0x7415d448f6b6f0e7, | ||
1802 | + 0xebdf661791d60f56, 0x111b495b3464ad21, | ||
1803 | + 0x936b9fcebb25c995, 0xcab10dd900beec34, | ||
1804 | + 0xb84687c269ef3bfb, 0x3d5d514f40eea742, | ||
1805 | + 0xe65829b3046b0afa, 0xcb4a5a3112a5112, | ||
1806 | + 0x8ff71a0fe2c2e6dc, 0x47f0e785eaba72ab, | ||
1807 | + 0xb3f4e093db73a093, 0x59ed216765690f56, | ||
1808 | + 0xe0f218b8d25088b8, 0x306869c13ec3532c, | ||
1809 | + 0x8c974f7383725573, 0x1e414218c73a13fb, | ||
1810 | + 0xafbd2350644eeacf, 0xe5d1929ef90898fa, | ||
1811 | + 0xdbac6c247d62a583, 0xdf45f746b74abf39, | ||
1812 | + 0x894bc396ce5da772, 0x6b8bba8c328eb783, | ||
1813 | + 0xab9eb47c81f5114f, 0x66ea92f3f326564, | ||
1814 | + 0xd686619ba27255a2, 0xc80a537b0efefebd, | ||
1815 | + 0x8613fd0145877585, 0xbd06742ce95f5f36, | ||
1816 | + 0xa798fc4196e952e7, 0x2c48113823b73704, | ||
1817 | + 0xd17f3b51fca3a7a0, 0xf75a15862ca504c5, | ||
1818 | + 0x82ef85133de648c4, 0x9a984d73dbe722fb, | ||
1819 | + 0xa3ab66580d5fdaf5, 0xc13e60d0d2e0ebba, | ||
1820 | + 0xcc963fee10b7d1b3, 0x318df905079926a8, | ||
1821 | + 0xffbbcfe994e5c61f, 0xfdf17746497f7052, | ||
1822 | + 0x9fd561f1fd0f9bd3, 0xfeb6ea8bedefa633, | ||
1823 | + 0xc7caba6e7c5382c8, 0xfe64a52ee96b8fc0, | ||
1824 | + 0xf9bd690a1b68637b, 0x3dfdce7aa3c673b0, | ||
1825 | + 0x9c1661a651213e2d, 0x6bea10ca65c084e, | ||
1826 | + 0xc31bfa0fe5698db8, 0x486e494fcff30a62, | ||
1827 | + 0xf3e2f893dec3f126, 0x5a89dba3c3efccfa, | ||
1828 | + 0x986ddb5c6b3a76b7, 0xf89629465a75e01c, | ||
1829 | + 0xbe89523386091465, 0xf6bbb397f1135823, | ||
1830 | + 0xee2ba6c0678b597f, 0x746aa07ded582e2c, | ||
1831 | + 0x94db483840b717ef, 0xa8c2a44eb4571cdc, | ||
1832 | + 0xba121a4650e4ddeb, 0x92f34d62616ce413, | ||
1833 | + 0xe896a0d7e51e1566, 0x77b020baf9c81d17, | ||
1834 | + 0x915e2486ef32cd60, 0xace1474dc1d122e, | ||
1835 | + 0xb5b5ada8aaff80b8, 0xd819992132456ba, | ||
1836 | + 0xe3231912d5bf60e6, 0x10e1fff697ed6c69, | ||
1837 | + 0x8df5efabc5979c8f, 0xca8d3ffa1ef463c1, | ||
1838 | + 0xb1736b96b6fd83b3, 0xbd308ff8a6b17cb2, | ||
1839 | + 0xddd0467c64bce4a0, 0xac7cb3f6d05ddbde, | ||
1840 | + 0x8aa22c0dbef60ee4, 0x6bcdf07a423aa96b, | ||
1841 | + 0xad4ab7112eb3929d, 0x86c16c98d2c953c6, | ||
1842 | + 0xd89d64d57a607744, 0xe871c7bf077ba8b7, | ||
1843 | + 0x87625f056c7c4a8b, 0x11471cd764ad4972, | ||
1844 | + 0xa93af6c6c79b5d2d, 0xd598e40d3dd89bcf, | ||
1845 | + 0xd389b47879823479, 0x4aff1d108d4ec2c3, | ||
1846 | + 0x843610cb4bf160cb, 0xcedf722a585139ba, | ||
1847 | + 0xa54394fe1eedb8fe, 0xc2974eb4ee658828, | ||
1848 | + 0xce947a3da6a9273e, 0x733d226229feea32, | ||
1849 | + 0x811ccc668829b887, 0x806357d5a3f525f, | ||
1850 | + 0xa163ff802a3426a8, 0xca07c2dcb0cf26f7, | ||
1851 | + 0xc9bcff6034c13052, 0xfc89b393dd02f0b5, | ||
1852 | + 0xfc2c3f3841f17c67, 0xbbac2078d443ace2, | ||
1853 | + 0x9d9ba7832936edc0, 0xd54b944b84aa4c0d, | ||
1854 | + 0xc5029163f384a931, 0xa9e795e65d4df11, | ||
1855 | + 0xf64335bcf065d37d, 0x4d4617b5ff4a16d5, | ||
1856 | + 0x99ea0196163fa42e, 0x504bced1bf8e4e45, | ||
1857 | + 0xc06481fb9bcf8d39, 0xe45ec2862f71e1d6, | ||
1858 | + 0xf07da27a82c37088, 0x5d767327bb4e5a4c, | ||
1859 | + 0x964e858c91ba2655, 0x3a6a07f8d510f86f, | ||
1860 | + 0xbbe226efb628afea, 0x890489f70a55368b, | ||
1861 | + 0xeadab0aba3b2dbe5, 0x2b45ac74ccea842e, | ||
1862 | + 0x92c8ae6b464fc96f, 0x3b0b8bc90012929d, | ||
1863 | + 0xb77ada0617e3bbcb, 0x9ce6ebb40173744, | ||
1864 | + 0xe55990879ddcaabd, 0xcc420a6a101d0515, | ||
1865 | + 0x8f57fa54c2a9eab6, 0x9fa946824a12232d, | ||
1866 | + 0xb32df8e9f3546564, 0x47939822dc96abf9, | ||
1867 | + 0xdff9772470297ebd, 0x59787e2b93bc56f7, | ||
1868 | + 0x8bfbea76c619ef36, 0x57eb4edb3c55b65a, | ||
1869 | + 0xaefae51477a06b03, 0xede622920b6b23f1, | ||
1870 | + 0xdab99e59958885c4, 0xe95fab368e45eced, | ||
1871 | + 0x88b402f7fd75539b, 0x11dbcb0218ebb414, | ||
1872 | + 0xaae103b5fcd2a881, 0xd652bdc29f26a119, | ||
1873 | + 0xd59944a37c0752a2, 0x4be76d3346f0495f, | ||
1874 | + 0x857fcae62d8493a5, 0x6f70a4400c562ddb, | ||
1875 | + 0xa6dfbd9fb8e5b88e, 0xcb4ccd500f6bb952, | ||
1876 | + 0xd097ad07a71f26b2, 0x7e2000a41346a7a7, | ||
1877 | + 0x825ecc24c873782f, 0x8ed400668c0c28c8, | ||
1878 | + 0xa2f67f2dfa90563b, 0x728900802f0f32fa, | ||
1879 | + 0xcbb41ef979346bca, 0x4f2b40a03ad2ffb9, | ||
1880 | + 0xfea126b7d78186bc, 0xe2f610c84987bfa8, | ||
1881 | + 0x9f24b832e6b0f436, 0xdd9ca7d2df4d7c9, | ||
1882 | + 0xc6ede63fa05d3143, 0x91503d1c79720dbb, | ||
1883 | + 0xf8a95fcf88747d94, 0x75a44c6397ce912a, | ||
1884 | + 0x9b69dbe1b548ce7c, 0xc986afbe3ee11aba, | ||
1885 | + 0xc24452da229b021b, 0xfbe85badce996168, | ||
1886 | + 0xf2d56790ab41c2a2, 0xfae27299423fb9c3, | ||
1887 | + 0x97c560ba6b0919a5, 0xdccd879fc967d41a, | ||
1888 | + 0xbdb6b8e905cb600f, 0x5400e987bbc1c920, | ||
1889 | + 0xed246723473e3813, 0x290123e9aab23b68, | ||
1890 | + 0x9436c0760c86e30b, 0xf9a0b6720aaf6521, | ||
1891 | + 0xb94470938fa89bce, 0xf808e40e8d5b3e69, | ||
1892 | + 0xe7958cb87392c2c2, 0xb60b1d1230b20e04, | ||
1893 | + 0x90bd77f3483bb9b9, 0xb1c6f22b5e6f48c2, | ||
1894 | + 0xb4ecd5f01a4aa828, 0x1e38aeb6360b1af3, | ||
1895 | + 0xe2280b6c20dd5232, 0x25c6da63c38de1b0, | ||
1896 | + 0x8d590723948a535f, 0x579c487e5a38ad0e, | ||
1897 | + 0xb0af48ec79ace837, 0x2d835a9df0c6d851, | ||
1898 | + 0xdcdb1b2798182244, 0xf8e431456cf88e65, | ||
1899 | + 0x8a08f0f8bf0f156b, 0x1b8e9ecb641b58ff, | ||
1900 | + 0xac8b2d36eed2dac5, 0xe272467e3d222f3f, | ||
1901 | + 0xd7adf884aa879177, 0x5b0ed81dcc6abb0f, | ||
1902 | + 0x86ccbb52ea94baea, 0x98e947129fc2b4e9, | ||
1903 | + 0xa87fea27a539e9a5, 0x3f2398d747b36224, | ||
1904 | + 0xd29fe4b18e88640e, 0x8eec7f0d19a03aad, | ||
1905 | + 0x83a3eeeef9153e89, 0x1953cf68300424ac, | ||
1906 | + 0xa48ceaaab75a8e2b, 0x5fa8c3423c052dd7, | ||
1907 | + 0xcdb02555653131b6, 0x3792f412cb06794d, | ||
1908 | + 0x808e17555f3ebf11, 0xe2bbd88bbee40bd0, | ||
1909 | + 0xa0b19d2ab70e6ed6, 0x5b6aceaeae9d0ec4, | ||
1910 | + 0xc8de047564d20a8b, 0xf245825a5a445275, | ||
1911 | + 0xfb158592be068d2e, 0xeed6e2f0f0d56712, | ||
1912 | + 0x9ced737bb6c4183d, 0x55464dd69685606b, | ||
1913 | + 0xc428d05aa4751e4c, 0xaa97e14c3c26b886, | ||
1914 | + 0xf53304714d9265df, 0xd53dd99f4b3066a8, | ||
1915 | + 0x993fe2c6d07b7fab, 0xe546a8038efe4029, | ||
1916 | + 0xbf8fdb78849a5f96, 0xde98520472bdd033, | ||
1917 | + 0xef73d256a5c0f77c, 0x963e66858f6d4440, | ||
1918 | + 0x95a8637627989aad, 0xdde7001379a44aa8, | ||
1919 | + 0xbb127c53b17ec159, 0x5560c018580d5d52, | ||
1920 | + 0xe9d71b689dde71af, 0xaab8f01e6e10b4a6, | ||
1921 | + 0x9226712162ab070d, 0xcab3961304ca70e8, | ||
1922 | + 0xb6b00d69bb55c8d1, 0x3d607b97c5fd0d22, | ||
1923 | + 0xe45c10c42a2b3b05, 0x8cb89a7db77c506a, | ||
1924 | + 0x8eb98a7a9a5b04e3, 0x77f3608e92adb242, | ||
1925 | + 0xb267ed1940f1c61c, 0x55f038b237591ed3, | ||
1926 | + 0xdf01e85f912e37a3, 0x6b6c46dec52f6688, | ||
1927 | + 0x8b61313bbabce2c6, 0x2323ac4b3b3da015, | ||
1928 | + 0xae397d8aa96c1b77, 0xabec975e0a0d081a, | ||
1929 | + 0xd9c7dced53c72255, 0x96e7bd358c904a21, | ||
1930 | + 0x881cea14545c7575, 0x7e50d64177da2e54, | ||
1931 | + 0xaa242499697392d2, 0xdde50bd1d5d0b9e9, | ||
1932 | + 0xd4ad2dbfc3d07787, 0x955e4ec64b44e864, | ||
1933 | + 0x84ec3c97da624ab4, 0xbd5af13bef0b113e, | ||
1934 | + 0xa6274bbdd0fadd61, 0xecb1ad8aeacdd58e, | ||
1935 | + 0xcfb11ead453994ba, 0x67de18eda5814af2, | ||
1936 | + 0x81ceb32c4b43fcf4, 0x80eacf948770ced7, | ||
1937 | + 0xa2425ff75e14fc31, 0xa1258379a94d028d, | ||
1938 | + 0xcad2f7f5359a3b3e, 0x96ee45813a04330, | ||
1939 | + 0xfd87b5f28300ca0d, 0x8bca9d6e188853fc, | ||
1940 | + 0x9e74d1b791e07e48, 0x775ea264cf55347e, | ||
1941 | + 0xc612062576589dda, 0x95364afe032a819e, | ||
1942 | + 0xf79687aed3eec551, 0x3a83ddbd83f52205, | ||
1943 | + 0x9abe14cd44753b52, 0xc4926a9672793543, | ||
1944 | + 0xc16d9a0095928a27, 0x75b7053c0f178294, | ||
1945 | + 0xf1c90080baf72cb1, 0x5324c68b12dd6339, | ||
1946 | + 0x971da05074da7bee, 0xd3f6fc16ebca5e04, | ||
1947 | + 0xbce5086492111aea, 0x88f4bb1ca6bcf585, | ||
1948 | + 0xec1e4a7db69561a5, 0x2b31e9e3d06c32e6, | ||
1949 | + 0x9392ee8e921d5d07, 0x3aff322e62439fd0, | ||
1950 | + 0xb877aa3236a4b449, 0x9befeb9fad487c3, | ||
1951 | + 0xe69594bec44de15b, 0x4c2ebe687989a9b4, | ||
1952 | + 0x901d7cf73ab0acd9, 0xf9d37014bf60a11, | ||
1953 | + 0xb424dc35095cd80f, 0x538484c19ef38c95, | ||
1954 | + 0xe12e13424bb40e13, 0x2865a5f206b06fba, | ||
1955 | + 0x8cbccc096f5088cb, 0xf93f87b7442e45d4, | ||
1956 | + 0xafebff0bcb24aafe, 0xf78f69a51539d749, | ||
1957 | + 0xdbe6fecebdedd5be, 0xb573440e5a884d1c, | ||
1958 | + 0x89705f4136b4a597, 0x31680a88f8953031, | ||
1959 | + 0xabcc77118461cefc, 0xfdc20d2b36ba7c3e, | ||
1960 | + 0xd6bf94d5e57a42bc, 0x3d32907604691b4d, | ||
1961 | + 0x8637bd05af6c69b5, 0xa63f9a49c2c1b110, | ||
1962 | + 0xa7c5ac471b478423, 0xfcf80dc33721d54, | ||
1963 | + 0xd1b71758e219652b, 0xd3c36113404ea4a9, | ||
1964 | + 0x83126e978d4fdf3b, 0x645a1cac083126ea, | ||
1965 | + 0xa3d70a3d70a3d70a, 0x3d70a3d70a3d70a4, | ||
1966 | + 0xcccccccccccccccc, 0xcccccccccccccccd, | ||
1967 | + 0x8000000000000000, 0x0, | ||
1968 | + 0xa000000000000000, 0x0, | ||
1969 | + 0xc800000000000000, 0x0, | ||
1970 | + 0xfa00000000000000, 0x0, | ||
1971 | + 0x9c40000000000000, 0x0, | ||
1972 | + 0xc350000000000000, 0x0, | ||
1973 | + 0xf424000000000000, 0x0, | ||
1974 | + 0x9896800000000000, 0x0, | ||
1975 | + 0xbebc200000000000, 0x0, | ||
1976 | + 0xee6b280000000000, 0x0, | ||
1977 | + 0x9502f90000000000, 0x0, | ||
1978 | + 0xba43b74000000000, 0x0, | ||
1979 | + 0xe8d4a51000000000, 0x0, | ||
1980 | + 0x9184e72a00000000, 0x0, | ||
1981 | + 0xb5e620f480000000, 0x0, | ||
1982 | + 0xe35fa931a0000000, 0x0, | ||
1983 | + 0x8e1bc9bf04000000, 0x0, | ||
1984 | + 0xb1a2bc2ec5000000, 0x0, | ||
1985 | + 0xde0b6b3a76400000, 0x0, | ||
1986 | + 0x8ac7230489e80000, 0x0, | ||
1987 | + 0xad78ebc5ac620000, 0x0, | ||
1988 | + 0xd8d726b7177a8000, 0x0, | ||
1989 | + 0x878678326eac9000, 0x0, | ||
1990 | + 0xa968163f0a57b400, 0x0, | ||
1991 | + 0xd3c21bcecceda100, 0x0, | ||
1992 | + 0x84595161401484a0, 0x0, | ||
1993 | + 0xa56fa5b99019a5c8, 0x0, | ||
1994 | + 0xcecb8f27f4200f3a, 0x0, | ||
1995 | + 0x813f3978f8940984, 0x4000000000000000, | ||
1996 | + 0xa18f07d736b90be5, 0x5000000000000000, | ||
1997 | + 0xc9f2c9cd04674ede, 0xa400000000000000, | ||
1998 | + 0xfc6f7c4045812296, 0x4d00000000000000, | ||
1999 | + 0x9dc5ada82b70b59d, 0xf020000000000000, | ||
2000 | + 0xc5371912364ce305, 0x6c28000000000000, | ||
2001 | + 0xf684df56c3e01bc6, 0xc732000000000000, | ||
2002 | + 0x9a130b963a6c115c, 0x3c7f400000000000, | ||
2003 | + 0xc097ce7bc90715b3, 0x4b9f100000000000, | ||
2004 | + 0xf0bdc21abb48db20, 0x1e86d40000000000, | ||
2005 | + 0x96769950b50d88f4, 0x1314448000000000, | ||
2006 | + 0xbc143fa4e250eb31, 0x17d955a000000000, | ||
2007 | + 0xeb194f8e1ae525fd, 0x5dcfab0800000000, | ||
2008 | + 0x92efd1b8d0cf37be, 0x5aa1cae500000000, | ||
2009 | + 0xb7abc627050305ad, 0xf14a3d9e40000000, | ||
2010 | + 0xe596b7b0c643c719, 0x6d9ccd05d0000000, | ||
2011 | + 0x8f7e32ce7bea5c6f, 0xe4820023a2000000, | ||
2012 | + 0xb35dbf821ae4f38b, 0xdda2802c8a800000, | ||
2013 | + 0xe0352f62a19e306e, 0xd50b2037ad200000, | ||
2014 | + 0x8c213d9da502de45, 0x4526f422cc340000, | ||
2015 | + 0xaf298d050e4395d6, 0x9670b12b7f410000, | ||
2016 | + 0xdaf3f04651d47b4c, 0x3c0cdd765f114000, | ||
2017 | + 0x88d8762bf324cd0f, 0xa5880a69fb6ac800, | ||
2018 | + 0xab0e93b6efee0053, 0x8eea0d047a457a00, | ||
2019 | + 0xd5d238a4abe98068, 0x72a4904598d6d880, | ||
2020 | + 0x85a36366eb71f041, 0x47a6da2b7f864750, | ||
2021 | + 0xa70c3c40a64e6c51, 0x999090b65f67d924, | ||
2022 | + 0xd0cf4b50cfe20765, 0xfff4b4e3f741cf6d, | ||
2023 | + 0x82818f1281ed449f, 0xbff8f10e7a8921a4, | ||
2024 | + 0xa321f2d7226895c7, 0xaff72d52192b6a0d, | ||
2025 | + 0xcbea6f8ceb02bb39, 0x9bf4f8a69f764490, | ||
2026 | + 0xfee50b7025c36a08, 0x2f236d04753d5b4, | ||
2027 | + 0x9f4f2726179a2245, 0x1d762422c946590, | ||
2028 | + 0xc722f0ef9d80aad6, 0x424d3ad2b7b97ef5, | ||
2029 | + 0xf8ebad2b84e0d58b, 0xd2e0898765a7deb2, | ||
2030 | + 0x9b934c3b330c8577, 0x63cc55f49f88eb2f, | ||
2031 | + 0xc2781f49ffcfa6d5, 0x3cbf6b71c76b25fb, | ||
2032 | + 0xf316271c7fc3908a, 0x8bef464e3945ef7a, | ||
2033 | + 0x97edd871cfda3a56, 0x97758bf0e3cbb5ac, | ||
2034 | + 0xbde94e8e43d0c8ec, 0x3d52eeed1cbea317, | ||
2035 | + 0xed63a231d4c4fb27, 0x4ca7aaa863ee4bdd, | ||
2036 | + 0x945e455f24fb1cf8, 0x8fe8caa93e74ef6a, | ||
2037 | + 0xb975d6b6ee39e436, 0xb3e2fd538e122b44, | ||
2038 | + 0xe7d34c64a9c85d44, 0x60dbbca87196b616, | ||
2039 | + 0x90e40fbeea1d3a4a, 0xbc8955e946fe31cd, | ||
2040 | + 0xb51d13aea4a488dd, 0x6babab6398bdbe41, | ||
2041 | + 0xe264589a4dcdab14, 0xc696963c7eed2dd1, | ||
2042 | + 0x8d7eb76070a08aec, 0xfc1e1de5cf543ca2, | ||
2043 | + 0xb0de65388cc8ada8, 0x3b25a55f43294bcb, | ||
2044 | + 0xdd15fe86affad912, 0x49ef0eb713f39ebe, | ||
2045 | + 0x8a2dbf142dfcc7ab, 0x6e3569326c784337, | ||
2046 | + 0xacb92ed9397bf996, 0x49c2c37f07965404, | ||
2047 | + 0xd7e77a8f87daf7fb, 0xdc33745ec97be906, | ||
2048 | + 0x86f0ac99b4e8dafd, 0x69a028bb3ded71a3, | ||
2049 | + 0xa8acd7c0222311bc, 0xc40832ea0d68ce0c, | ||
2050 | + 0xd2d80db02aabd62b, 0xf50a3fa490c30190, | ||
2051 | + 0x83c7088e1aab65db, 0x792667c6da79e0fa, | ||
2052 | + 0xa4b8cab1a1563f52, 0x577001b891185938, | ||
2053 | + 0xcde6fd5e09abcf26, 0xed4c0226b55e6f86, | ||
2054 | + 0x80b05e5ac60b6178, 0x544f8158315b05b4, | ||
2055 | + 0xa0dc75f1778e39d6, 0x696361ae3db1c721, | ||
2056 | + 0xc913936dd571c84c, 0x3bc3a19cd1e38e9, | ||
2057 | + 0xfb5878494ace3a5f, 0x4ab48a04065c723, | ||
2058 | + 0x9d174b2dcec0e47b, 0x62eb0d64283f9c76, | ||
2059 | + 0xc45d1df942711d9a, 0x3ba5d0bd324f8394, | ||
2060 | + 0xf5746577930d6500, 0xca8f44ec7ee36479, | ||
2061 | + 0x9968bf6abbe85f20, 0x7e998b13cf4e1ecb, | ||
2062 | + 0xbfc2ef456ae276e8, 0x9e3fedd8c321a67e, | ||
2063 | + 0xefb3ab16c59b14a2, 0xc5cfe94ef3ea101e, | ||
2064 | + 0x95d04aee3b80ece5, 0xbba1f1d158724a12, | ||
2065 | + 0xbb445da9ca61281f, 0x2a8a6e45ae8edc97, | ||
2066 | + 0xea1575143cf97226, 0xf52d09d71a3293bd, | ||
2067 | + 0x924d692ca61be758, 0x593c2626705f9c56, | ||
2068 | + 0xb6e0c377cfa2e12e, 0x6f8b2fb00c77836c, | ||
2069 | + 0xe498f455c38b997a, 0xb6dfb9c0f956447, | ||
2070 | + 0x8edf98b59a373fec, 0x4724bd4189bd5eac, | ||
2071 | + 0xb2977ee300c50fe7, 0x58edec91ec2cb657, | ||
2072 | + 0xdf3d5e9bc0f653e1, 0x2f2967b66737e3ed, | ||
2073 | + 0x8b865b215899f46c, 0xbd79e0d20082ee74, | ||
2074 | + 0xae67f1e9aec07187, 0xecd8590680a3aa11, | ||
2075 | + 0xda01ee641a708de9, 0xe80e6f4820cc9495, | ||
2076 | + 0x884134fe908658b2, 0x3109058d147fdcdd, | ||
2077 | + 0xaa51823e34a7eede, 0xbd4b46f0599fd415, | ||
2078 | + 0xd4e5e2cdc1d1ea96, 0x6c9e18ac7007c91a, | ||
2079 | + 0x850fadc09923329e, 0x3e2cf6bc604ddb0, | ||
2080 | + 0xa6539930bf6bff45, 0x84db8346b786151c, | ||
2081 | + 0xcfe87f7cef46ff16, 0xe612641865679a63, | ||
2082 | + 0x81f14fae158c5f6e, 0x4fcb7e8f3f60c07e, | ||
2083 | + 0xa26da3999aef7749, 0xe3be5e330f38f09d, | ||
2084 | + 0xcb090c8001ab551c, 0x5cadf5bfd3072cc5, | ||
2085 | + 0xfdcb4fa002162a63, 0x73d9732fc7c8f7f6, | ||
2086 | + 0x9e9f11c4014dda7e, 0x2867e7fddcdd9afa, | ||
2087 | + 0xc646d63501a1511d, 0xb281e1fd541501b8, | ||
2088 | + 0xf7d88bc24209a565, 0x1f225a7ca91a4226, | ||
2089 | + 0x9ae757596946075f, 0x3375788de9b06958, | ||
2090 | + 0xc1a12d2fc3978937, 0x52d6b1641c83ae, | ||
2091 | + 0xf209787bb47d6b84, 0xc0678c5dbd23a49a, | ||
2092 | + 0x9745eb4d50ce6332, 0xf840b7ba963646e0, | ||
2093 | + 0xbd176620a501fbff, 0xb650e5a93bc3d898, | ||
2094 | + 0xec5d3fa8ce427aff, 0xa3e51f138ab4cebe, | ||
2095 | + 0x93ba47c980e98cdf, 0xc66f336c36b10137, | ||
2096 | + 0xb8a8d9bbe123f017, 0xb80b0047445d4184, | ||
2097 | + 0xe6d3102ad96cec1d, 0xa60dc059157491e5, | ||
2098 | + 0x9043ea1ac7e41392, 0x87c89837ad68db2f, | ||
2099 | + 0xb454e4a179dd1877, 0x29babe4598c311fb, | ||
2100 | + 0xe16a1dc9d8545e94, 0xf4296dd6fef3d67a, | ||
2101 | + 0x8ce2529e2734bb1d, 0x1899e4a65f58660c, | ||
2102 | + 0xb01ae745b101e9e4, 0x5ec05dcff72e7f8f, | ||
2103 | + 0xdc21a1171d42645d, 0x76707543f4fa1f73, | ||
2104 | + 0x899504ae72497eba, 0x6a06494a791c53a8, | ||
2105 | + 0xabfa45da0edbde69, 0x487db9d17636892, | ||
2106 | + 0xd6f8d7509292d603, 0x45a9d2845d3c42b6, | ||
2107 | + 0x865b86925b9bc5c2, 0xb8a2392ba45a9b2, | ||
2108 | + 0xa7f26836f282b732, 0x8e6cac7768d7141e, | ||
2109 | + 0xd1ef0244af2364ff, 0x3207d795430cd926, | ||
2110 | + 0x8335616aed761f1f, 0x7f44e6bd49e807b8, | ||
2111 | + 0xa402b9c5a8d3a6e7, 0x5f16206c9c6209a6, | ||
2112 | + 0xcd036837130890a1, 0x36dba887c37a8c0f, | ||
2113 | + 0x802221226be55a64, 0xc2494954da2c9789, | ||
2114 | + 0xa02aa96b06deb0fd, 0xf2db9baa10b7bd6c, | ||
2115 | + 0xc83553c5c8965d3d, 0x6f92829494e5acc7, | ||
2116 | + 0xfa42a8b73abbf48c, 0xcb772339ba1f17f9, | ||
2117 | + 0x9c69a97284b578d7, 0xff2a760414536efb, | ||
2118 | + 0xc38413cf25e2d70d, 0xfef5138519684aba, | ||
2119 | + 0xf46518c2ef5b8cd1, 0x7eb258665fc25d69, | ||
2120 | + 0x98bf2f79d5993802, 0xef2f773ffbd97a61, | ||
2121 | + 0xbeeefb584aff8603, 0xaafb550ffacfd8fa, | ||
2122 | + 0xeeaaba2e5dbf6784, 0x95ba2a53f983cf38, | ||
2123 | + 0x952ab45cfa97a0b2, 0xdd945a747bf26183, | ||
2124 | + 0xba756174393d88df, 0x94f971119aeef9e4, | ||
2125 | + 0xe912b9d1478ceb17, 0x7a37cd5601aab85d, | ||
2126 | + 0x91abb422ccb812ee, 0xac62e055c10ab33a, | ||
2127 | + 0xb616a12b7fe617aa, 0x577b986b314d6009, | ||
2128 | + 0xe39c49765fdf9d94, 0xed5a7e85fda0b80b, | ||
2129 | + 0x8e41ade9fbebc27d, 0x14588f13be847307, | ||
2130 | + 0xb1d219647ae6b31c, 0x596eb2d8ae258fc8, | ||
2131 | + 0xde469fbd99a05fe3, 0x6fca5f8ed9aef3bb, | ||
2132 | + 0x8aec23d680043bee, 0x25de7bb9480d5854, | ||
2133 | + 0xada72ccc20054ae9, 0xaf561aa79a10ae6a, | ||
2134 | + 0xd910f7ff28069da4, 0x1b2ba1518094da04, | ||
2135 | + 0x87aa9aff79042286, 0x90fb44d2f05d0842, | ||
2136 | + 0xa99541bf57452b28, 0x353a1607ac744a53, | ||
2137 | + 0xd3fa922f2d1675f2, 0x42889b8997915ce8, | ||
2138 | + 0x847c9b5d7c2e09b7, 0x69956135febada11, | ||
2139 | + 0xa59bc234db398c25, 0x43fab9837e699095, | ||
2140 | + 0xcf02b2c21207ef2e, 0x94f967e45e03f4bb, | ||
2141 | + 0x8161afb94b44f57d, 0x1d1be0eebac278f5, | ||
2142 | + 0xa1ba1ba79e1632dc, 0x6462d92a69731732, | ||
2143 | + 0xca28a291859bbf93, 0x7d7b8f7503cfdcfe, | ||
2144 | + 0xfcb2cb35e702af78, 0x5cda735244c3d43e, | ||
2145 | + 0x9defbf01b061adab, 0x3a0888136afa64a7, | ||
2146 | + 0xc56baec21c7a1916, 0x88aaa1845b8fdd0, | ||
2147 | + 0xf6c69a72a3989f5b, 0x8aad549e57273d45, | ||
2148 | + 0x9a3c2087a63f6399, 0x36ac54e2f678864b, | ||
2149 | + 0xc0cb28a98fcf3c7f, 0x84576a1bb416a7dd, | ||
2150 | + 0xf0fdf2d3f3c30b9f, 0x656d44a2a11c51d5, | ||
2151 | + 0x969eb7c47859e743, 0x9f644ae5a4b1b325, | ||
2152 | + 0xbc4665b596706114, 0x873d5d9f0dde1fee, | ||
2153 | + 0xeb57ff22fc0c7959, 0xa90cb506d155a7ea, | ||
2154 | + 0x9316ff75dd87cbd8, 0x9a7f12442d588f2, | ||
2155 | + 0xb7dcbf5354e9bece, 0xc11ed6d538aeb2f, | ||
2156 | + 0xe5d3ef282a242e81, 0x8f1668c8a86da5fa, | ||
2157 | + 0x8fa475791a569d10, 0xf96e017d694487bc, | ||
2158 | + 0xb38d92d760ec4455, 0x37c981dcc395a9ac, | ||
2159 | + 0xe070f78d3927556a, 0x85bbe253f47b1417, | ||
2160 | + 0x8c469ab843b89562, 0x93956d7478ccec8e, | ||
2161 | + 0xaf58416654a6babb, 0x387ac8d1970027b2, | ||
2162 | + 0xdb2e51bfe9d0696a, 0x6997b05fcc0319e, | ||
2163 | + 0x88fcf317f22241e2, 0x441fece3bdf81f03, | ||
2164 | + 0xab3c2fddeeaad25a, 0xd527e81cad7626c3, | ||
2165 | + 0xd60b3bd56a5586f1, 0x8a71e223d8d3b074, | ||
2166 | + 0x85c7056562757456, 0xf6872d5667844e49, | ||
2167 | + 0xa738c6bebb12d16c, 0xb428f8ac016561db, | ||
2168 | + 0xd106f86e69d785c7, 0xe13336d701beba52, | ||
2169 | + 0x82a45b450226b39c, 0xecc0024661173473, | ||
2170 | + 0xa34d721642b06084, 0x27f002d7f95d0190, | ||
2171 | + 0xcc20ce9bd35c78a5, 0x31ec038df7b441f4, | ||
2172 | + 0xff290242c83396ce, 0x7e67047175a15271, | ||
2173 | + 0x9f79a169bd203e41, 0xf0062c6e984d386, | ||
2174 | + 0xc75809c42c684dd1, 0x52c07b78a3e60868, | ||
2175 | + 0xf92e0c3537826145, 0xa7709a56ccdf8a82, | ||
2176 | + 0x9bbcc7a142b17ccb, 0x88a66076400bb691, | ||
2177 | + 0xc2abf989935ddbfe, 0x6acff893d00ea435, | ||
2178 | + 0xf356f7ebf83552fe, 0x583f6b8c4124d43, | ||
2179 | + 0x98165af37b2153de, 0xc3727a337a8b704a, | ||
2180 | + 0xbe1bf1b059e9a8d6, 0x744f18c0592e4c5c, | ||
2181 | + 0xeda2ee1c7064130c, 0x1162def06f79df73, | ||
2182 | + 0x9485d4d1c63e8be7, 0x8addcb5645ac2ba8, | ||
2183 | + 0xb9a74a0637ce2ee1, 0x6d953e2bd7173692, | ||
2184 | + 0xe8111c87c5c1ba99, 0xc8fa8db6ccdd0437, | ||
2185 | + 0x910ab1d4db9914a0, 0x1d9c9892400a22a2, | ||
2186 | + 0xb54d5e4a127f59c8, 0x2503beb6d00cab4b, | ||
2187 | + 0xe2a0b5dc971f303a, 0x2e44ae64840fd61d, | ||
2188 | + 0x8da471a9de737e24, 0x5ceaecfed289e5d2, | ||
2189 | + 0xb10d8e1456105dad, 0x7425a83e872c5f47, | ||
2190 | + 0xdd50f1996b947518, 0xd12f124e28f77719, | ||
2191 | + 0x8a5296ffe33cc92f, 0x82bd6b70d99aaa6f, | ||
2192 | + 0xace73cbfdc0bfb7b, 0x636cc64d1001550b, | ||
2193 | + 0xd8210befd30efa5a, 0x3c47f7e05401aa4e, | ||
2194 | + 0x8714a775e3e95c78, 0x65acfaec34810a71, | ||
2195 | + 0xa8d9d1535ce3b396, 0x7f1839a741a14d0d, | ||
2196 | + 0xd31045a8341ca07c, 0x1ede48111209a050, | ||
2197 | + 0x83ea2b892091e44d, 0x934aed0aab460432, | ||
2198 | + 0xa4e4b66b68b65d60, 0xf81da84d5617853f, | ||
2199 | + 0xce1de40642e3f4b9, 0x36251260ab9d668e, | ||
2200 | + 0x80d2ae83e9ce78f3, 0xc1d72b7c6b426019, | ||
2201 | + 0xa1075a24e4421730, 0xb24cf65b8612f81f, | ||
2202 | + 0xc94930ae1d529cfc, 0xdee033f26797b627, | ||
2203 | + 0xfb9b7cd9a4a7443c, 0x169840ef017da3b1, | ||
2204 | + 0x9d412e0806e88aa5, 0x8e1f289560ee864e, | ||
2205 | + 0xc491798a08a2ad4e, 0xf1a6f2bab92a27e2, | ||
2206 | + 0xf5b5d7ec8acb58a2, 0xae10af696774b1db, | ||
2207 | + 0x9991a6f3d6bf1765, 0xacca6da1e0a8ef29, | ||
2208 | + 0xbff610b0cc6edd3f, 0x17fd090a58d32af3, | ||
2209 | + 0xeff394dcff8a948e, 0xddfc4b4cef07f5b0, | ||
2210 | + 0x95f83d0a1fb69cd9, 0x4abdaf101564f98e, | ||
2211 | + 0xbb764c4ca7a4440f, 0x9d6d1ad41abe37f1, | ||
2212 | + 0xea53df5fd18d5513, 0x84c86189216dc5ed, | ||
2213 | + 0x92746b9be2f8552c, 0x32fd3cf5b4e49bb4, | ||
2214 | + 0xb7118682dbb66a77, 0x3fbc8c33221dc2a1, | ||
2215 | + 0xe4d5e82392a40515, 0xfabaf3feaa5334a, | ||
2216 | + 0x8f05b1163ba6832d, 0x29cb4d87f2a7400e, | ||
2217 | + 0xb2c71d5bca9023f8, 0x743e20e9ef511012, | ||
2218 | + 0xdf78e4b2bd342cf6, 0x914da9246b255416, | ||
2219 | + 0x8bab8eefb6409c1a, 0x1ad089b6c2f7548e, | ||
2220 | + 0xae9672aba3d0c320, 0xa184ac2473b529b1, | ||
2221 | + 0xda3c0f568cc4f3e8, 0xc9e5d72d90a2741e, | ||
2222 | + 0x8865899617fb1871, 0x7e2fa67c7a658892, | ||
2223 | + 0xaa7eebfb9df9de8d, 0xddbb901b98feeab7, | ||
2224 | + 0xd51ea6fa85785631, 0x552a74227f3ea565, | ||
2225 | + 0x8533285c936b35de, 0xd53a88958f87275f, | ||
2226 | + 0xa67ff273b8460356, 0x8a892abaf368f137, | ||
2227 | + 0xd01fef10a657842c, 0x2d2b7569b0432d85, | ||
2228 | + 0x8213f56a67f6b29b, 0x9c3b29620e29fc73, | ||
2229 | + 0xa298f2c501f45f42, 0x8349f3ba91b47b8f, | ||
2230 | + 0xcb3f2f7642717713, 0x241c70a936219a73, | ||
2231 | + 0xfe0efb53d30dd4d7, 0xed238cd383aa0110, | ||
2232 | + 0x9ec95d1463e8a506, 0xf4363804324a40aa, | ||
2233 | + 0xc67bb4597ce2ce48, 0xb143c6053edcd0d5, | ||
2234 | + 0xf81aa16fdc1b81da, 0xdd94b7868e94050a, | ||
2235 | + 0x9b10a4e5e9913128, 0xca7cf2b4191c8326, | ||
2236 | + 0xc1d4ce1f63f57d72, 0xfd1c2f611f63a3f0, | ||
2237 | + 0xf24a01a73cf2dccf, 0xbc633b39673c8cec, | ||
2238 | + 0x976e41088617ca01, 0xd5be0503e085d813, | ||
2239 | + 0xbd49d14aa79dbc82, 0x4b2d8644d8a74e18, | ||
2240 | + 0xec9c459d51852ba2, 0xddf8e7d60ed1219e, | ||
2241 | + 0x93e1ab8252f33b45, 0xcabb90e5c942b503, | ||
2242 | + 0xb8da1662e7b00a17, 0x3d6a751f3b936243, | ||
2243 | + 0xe7109bfba19c0c9d, 0xcc512670a783ad4, | ||
2244 | + 0x906a617d450187e2, 0x27fb2b80668b24c5, | ||
2245 | + 0xb484f9dc9641e9da, 0xb1f9f660802dedf6, | ||
2246 | + 0xe1a63853bbd26451, 0x5e7873f8a0396973, | ||
2247 | + 0x8d07e33455637eb2, 0xdb0b487b6423e1e8, | ||
2248 | + 0xb049dc016abc5e5f, 0x91ce1a9a3d2cda62, | ||
2249 | + 0xdc5c5301c56b75f7, 0x7641a140cc7810fb, | ||
2250 | + 0x89b9b3e11b6329ba, 0xa9e904c87fcb0a9d, | ||
2251 | + 0xac2820d9623bf429, 0x546345fa9fbdcd44, | ||
2252 | + 0xd732290fbacaf133, 0xa97c177947ad4095, | ||
2253 | + 0x867f59a9d4bed6c0, 0x49ed8eabcccc485d, | ||
2254 | + 0xa81f301449ee8c70, 0x5c68f256bfff5a74, | ||
2255 | + 0xd226fc195c6a2f8c, 0x73832eec6fff3111, | ||
2256 | + 0x83585d8fd9c25db7, 0xc831fd53c5ff7eab, | ||
2257 | + 0xa42e74f3d032f525, 0xba3e7ca8b77f5e55, | ||
2258 | + 0xcd3a1230c43fb26f, 0x28ce1bd2e55f35eb, | ||
2259 | + 0x80444b5e7aa7cf85, 0x7980d163cf5b81b3, | ||
2260 | + 0xa0555e361951c366, 0xd7e105bcc332621f, | ||
2261 | + 0xc86ab5c39fa63440, 0x8dd9472bf3fefaa7, | ||
2262 | + 0xfa856334878fc150, 0xb14f98f6f0feb951, | ||
2263 | + 0x9c935e00d4b9d8d2, 0x6ed1bf9a569f33d3, | ||
2264 | + 0xc3b8358109e84f07, 0xa862f80ec4700c8, | ||
2265 | + 0xf4a642e14c6262c8, 0xcd27bb612758c0fa, | ||
2266 | + 0x98e7e9cccfbd7dbd, 0x8038d51cb897789c, | ||
2267 | + 0xbf21e44003acdd2c, 0xe0470a63e6bd56c3, | ||
2268 | + 0xeeea5d5004981478, 0x1858ccfce06cac74, | ||
2269 | + 0x95527a5202df0ccb, 0xf37801e0c43ebc8, | ||
2270 | + 0xbaa718e68396cffd, 0xd30560258f54e6ba, | ||
2271 | + 0xe950df20247c83fd, 0x47c6b82ef32a2069, | ||
2272 | + 0x91d28b7416cdd27e, 0x4cdc331d57fa5441, | ||
2273 | + 0xb6472e511c81471d, 0xe0133fe4adf8e952, | ||
2274 | + 0xe3d8f9e563a198e5, 0x58180fddd97723a6, | ||
2275 | + 0x8e679c2f5e44ff8f, 0x570f09eaa7ea7648, | ||
2276 | + }; | ||
2277 | +}; | ||
2278 | + | ||
2279 | +#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE | ||
2280 | + | ||
2281 | +template <class unused> | ||
2282 | +constexpr uint64_t | ||
2283 | + powers_template<unused>::power_of_five_128[number_of_entries]; | ||
2284 | + | ||
2285 | +#endif | ||
2286 | + | ||
2287 | +using powers = powers_template<>; | ||
2288 | + | ||
2289 | +} // namespace fast_float | ||
2290 | + | ||
2291 | +#endif | ||
2292 | + | ||
2293 | +#ifndef FASTFLOAT_DECIMAL_TO_BINARY_H | ||
2294 | +#define FASTFLOAT_DECIMAL_TO_BINARY_H | ||
2295 | + | ||
2296 | +#include <cfloat> | ||
2297 | +#include <cinttypes> | ||
2298 | +#include <cmath> | ||
2299 | +#include <cstdint> | ||
2300 | +#include <cstdlib> | ||
2301 | +#include <cstring> | ||
2302 | + | ||
2303 | +namespace fast_float { | ||
2304 | + | ||
2305 | +// This will compute or rather approximate w * 5**q and return a pair of 64-bit | ||
2306 | +// words approximating the result, with the "high" part corresponding to the | ||
2307 | +// most significant bits and the low part corresponding to the least significant | ||
2308 | +// bits. | ||
2309 | +// | ||
2310 | +template <int bit_precision> | ||
2311 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 value128 | ||
2312 | +compute_product_approximation(int64_t q, uint64_t w) { | ||
2313 | + const int index = 2 * int(q - powers::smallest_power_of_five); | ||
2314 | + // For small values of q, e.g., q in [0,27], the answer is always exact | ||
2315 | + // because The line value128 firstproduct = full_multiplication(w, | ||
2316 | + // power_of_five_128[index]); gives the exact answer. | ||
2317 | + value128 firstproduct = | ||
2318 | + full_multiplication(w, powers::power_of_five_128[index]); | ||
2319 | + static_assert((bit_precision >= 0) && (bit_precision <= 64), | ||
2320 | + " precision should be in (0,64]"); | ||
2321 | + constexpr uint64_t precision_mask = | ||
2322 | + (bit_precision < 64) ? (uint64_t(0xFFFFFFFFFFFFFFFF) >> bit_precision) | ||
2323 | + : uint64_t(0xFFFFFFFFFFFFFFFF); | ||
2324 | + if ((firstproduct.high & precision_mask) == | ||
2325 | + precision_mask) { // could further guard with (lower + w < lower) | ||
2326 | + // regarding the second product, we only need secondproduct.high, but our | ||
2327 | + // expectation is that the compiler will optimize this extra work away if | ||
2328 | + // needed. | ||
2329 | + value128 secondproduct = | ||
2330 | + full_multiplication(w, powers::power_of_five_128[index + 1]); | ||
2331 | + firstproduct.low += secondproduct.high; | ||
2332 | + if (secondproduct.high > firstproduct.low) { | ||
2333 | + firstproduct.high++; | ||
2334 | + } | ||
2335 | + } | ||
2336 | + return firstproduct; | ||
2337 | +} | ||
2338 | + | ||
2339 | +namespace detail { | ||
2340 | +/** | ||
2341 | + * For q in (0,350), we have that | ||
2342 | + * f = (((152170 + 65536) * q ) >> 16); | ||
2343 | + * is equal to | ||
2344 | + * floor(p) + q | ||
2345 | + * where | ||
2346 | + * p = log(5**q)/log(2) = q * log(5)/log(2) | ||
2347 | + * | ||
2348 | + * For negative values of q in (-400,0), we have that | ||
2349 | + * f = (((152170 + 65536) * q ) >> 16); | ||
2350 | + * is equal to | ||
2351 | + * -ceil(p) + q | ||
2352 | + * where | ||
2353 | + * p = log(5**-q)/log(2) = -q * log(5)/log(2) | ||
2354 | + */ | ||
2355 | +constexpr fastfloat_really_inline int32_t power(int32_t q) noexcept { | ||
2356 | + return (((152170 + 65536) * q) >> 16) + 63; | ||
2357 | +} | ||
2358 | +} // namespace detail | ||
2359 | + | ||
2360 | +// create an adjusted mantissa, biased by the invalid power2 | ||
2361 | +// for significant digits already multiplied by 10 ** q. | ||
2362 | +template <typename binary> | ||
2363 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 adjusted_mantissa | ||
2364 | +compute_error_scaled(int64_t q, uint64_t w, int lz) noexcept { | ||
2365 | + int hilz = int(w >> 63) ^ 1; | ||
2366 | + adjusted_mantissa answer; | ||
2367 | + answer.mantissa = w << hilz; | ||
2368 | + int bias = binary::mantissa_explicit_bits() - binary::minimum_exponent(); | ||
2369 | + answer.power2 = int32_t(detail::power(int32_t(q)) + bias - hilz - lz - 62 + | ||
2370 | + invalid_am_bias); | ||
2371 | + return answer; | ||
2372 | +} | ||
2373 | + | ||
2374 | +// w * 10 ** q, without rounding the representation up. | ||
2375 | +// the power2 in the exponent will be adjusted by invalid_am_bias. | ||
2376 | +template <typename binary> | ||
2377 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa | ||
2378 | +compute_error(int64_t q, uint64_t w) noexcept { | ||
2379 | + int lz = leading_zeroes(w); | ||
2380 | + w <<= lz; | ||
2381 | + value128 product = | ||
2382 | + compute_product_approximation<binary::mantissa_explicit_bits() + 3>(q, w); | ||
2383 | + return compute_error_scaled<binary>(q, product.high, lz); | ||
2384 | +} | ||
2385 | + | ||
2386 | +// w * 10 ** q | ||
2387 | +// The returned value should be a valid ieee64 number that simply need to be | ||
2388 | +// packed. However, in some very rare cases, the computation will fail. In such | ||
2389 | +// cases, we return an adjusted_mantissa with a negative power of 2: the caller | ||
2390 | +// should recompute in such cases. | ||
2391 | +template <typename binary> | ||
2392 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa | ||
2393 | +compute_float(int64_t q, uint64_t w) noexcept { | ||
2394 | + adjusted_mantissa answer; | ||
2395 | + if ((w == 0) || (q < binary::smallest_power_of_ten())) { | ||
2396 | + answer.power2 = 0; | ||
2397 | + answer.mantissa = 0; | ||
2398 | + // result should be zero | ||
2399 | + return answer; | ||
2400 | + } | ||
2401 | + if (q > binary::largest_power_of_ten()) { | ||
2402 | + // we want to get infinity: | ||
2403 | + answer.power2 = binary::infinite_power(); | ||
2404 | + answer.mantissa = 0; | ||
2405 | + return answer; | ||
2406 | + } | ||
2407 | + // At this point in time q is in [powers::smallest_power_of_five, | ||
2408 | + // powers::largest_power_of_five]. | ||
2409 | + | ||
2410 | + // We want the most significant bit of i to be 1. Shift if needed. | ||
2411 | + int lz = leading_zeroes(w); | ||
2412 | + w <<= lz; | ||
2413 | + | ||
2414 | + // The required precision is binary::mantissa_explicit_bits() + 3 because | ||
2415 | + // 1. We need the implicit bit | ||
2416 | + // 2. We need an extra bit for rounding purposes | ||
2417 | + // 3. We might lose a bit due to the "upperbit" routine (result too small, | ||
2418 | + // requiring a shift) | ||
2419 | + | ||
2420 | + value128 product = | ||
2421 | + compute_product_approximation<binary::mantissa_explicit_bits() + 3>(q, w); | ||
2422 | + // The computed 'product' is always sufficient. | ||
2423 | + // Mathematical proof: | ||
2424 | + // Noble Mushtak and Daniel Lemire, Fast Number Parsing Without Fallback (to | ||
2425 | + // appear) See script/mushtak_lemire.py | ||
2426 | + | ||
2427 | + // The "compute_product_approximation" function can be slightly slower than a | ||
2428 | + // branchless approach: value128 product = compute_product(q, w); but in | ||
2429 | + // practice, we can win big with the compute_product_approximation if its | ||
2430 | + // additional branch is easily predicted. Which is best is data specific. | ||
2431 | + int upperbit = int(product.high >> 63); | ||
2432 | + int shift = upperbit + 64 - binary::mantissa_explicit_bits() - 3; | ||
2433 | + | ||
2434 | + answer.mantissa = product.high >> shift; | ||
2435 | + | ||
2436 | + answer.power2 = int32_t(detail::power(int32_t(q)) + upperbit - lz - | ||
2437 | + binary::minimum_exponent()); | ||
2438 | + if (answer.power2 <= 0) { // we have a subnormal? | ||
2439 | + // Here have that answer.power2 <= 0 so -answer.power2 >= 0 | ||
2440 | + if (-answer.power2 + 1 >= | ||
2441 | + 64) { // if we have more than 64 bits below the minimum exponent, you | ||
2442 | + // have a zero for sure. | ||
2443 | + answer.power2 = 0; | ||
2444 | + answer.mantissa = 0; | ||
2445 | + // result should be zero | ||
2446 | + return answer; | ||
2447 | + } | ||
2448 | + // next line is safe because -answer.power2 + 1 < 64 | ||
2449 | + answer.mantissa >>= -answer.power2 + 1; | ||
2450 | + // Thankfully, we can't have both "round-to-even" and subnormals because | ||
2451 | + // "round-to-even" only occurs for powers close to 0. | ||
2452 | + answer.mantissa += (answer.mantissa & 1); // round up | ||
2453 | + answer.mantissa >>= 1; | ||
2454 | + // There is a weird scenario where we don't have a subnormal but just. | ||
2455 | + // Suppose we start with 2.2250738585072013e-308, we end up | ||
2456 | + // with 0x3fffffffffffff x 2^-1023-53 which is technically subnormal | ||
2457 | + // whereas 0x40000000000000 x 2^-1023-53 is normal. Now, we need to round | ||
2458 | + // up 0x3fffffffffffff x 2^-1023-53 and once we do, we are no longer | ||
2459 | + // subnormal, but we can only know this after rounding. | ||
2460 | + // So we only declare a subnormal if we are smaller than the threshold. | ||
2461 | + answer.power2 = | ||
2462 | + (answer.mantissa < (uint64_t(1) << binary::mantissa_explicit_bits())) | ||
2463 | + ? 0 | ||
2464 | + : 1; | ||
2465 | + return answer; | ||
2466 | + } | ||
2467 | + | ||
2468 | + // usually, we round *up*, but if we fall right in between and and we have an | ||
2469 | + // even basis, we need to round down | ||
2470 | + // We are only concerned with the cases where 5**q fits in single 64-bit word. | ||
2471 | + if ((product.low <= 1) && (q >= binary::min_exponent_round_to_even()) && | ||
2472 | + (q <= binary::max_exponent_round_to_even()) && | ||
2473 | + ((answer.mantissa & 3) == 1)) { // we may fall between two floats! | ||
2474 | + // To be in-between two floats we need that in doing | ||
2475 | + // answer.mantissa = product.high >> (upperbit + 64 - | ||
2476 | + // binary::mantissa_explicit_bits() - 3); | ||
2477 | + // ... we dropped out only zeroes. But if this happened, then we can go | ||
2478 | + // back!!! | ||
2479 | + if ((answer.mantissa << shift) == product.high) { | ||
2480 | + answer.mantissa &= ~uint64_t(1); // flip it so that we do not round up | ||
2481 | + } | ||
2482 | + } | ||
2483 | + | ||
2484 | + answer.mantissa += (answer.mantissa & 1); // round up | ||
2485 | + answer.mantissa >>= 1; | ||
2486 | + if (answer.mantissa >= (uint64_t(2) << binary::mantissa_explicit_bits())) { | ||
2487 | + answer.mantissa = (uint64_t(1) << binary::mantissa_explicit_bits()); | ||
2488 | + answer.power2++; // undo previous addition | ||
2489 | + } | ||
2490 | + | ||
2491 | + answer.mantissa &= ~(uint64_t(1) << binary::mantissa_explicit_bits()); | ||
2492 | + if (answer.power2 >= binary::infinite_power()) { // infinity | ||
2493 | + answer.power2 = binary::infinite_power(); | ||
2494 | + answer.mantissa = 0; | ||
2495 | + } | ||
2496 | + return answer; | ||
2497 | +} | ||
2498 | + | ||
2499 | +} // namespace fast_float | ||
2500 | + | ||
2501 | +#endif | ||
2502 | + | ||
2503 | +#ifndef FASTFLOAT_BIGINT_H | ||
2504 | +#define FASTFLOAT_BIGINT_H | ||
2505 | + | ||
2506 | +#include <algorithm> | ||
2507 | +#include <cstdint> | ||
2508 | +#include <climits> | ||
2509 | +#include <cstring> | ||
2510 | + | ||
2511 | + | ||
2512 | +namespace fast_float { | ||
2513 | + | ||
2514 | +// the limb width: we want efficient multiplication of double the bits in | ||
2515 | +// limb, or for 64-bit limbs, at least 64-bit multiplication where we can | ||
2516 | +// extract the high and low parts efficiently. this is every 64-bit | ||
2517 | +// architecture except for sparc, which emulates 128-bit multiplication. | ||
2518 | +// we might have platforms where `CHAR_BIT` is not 8, so let's avoid | ||
2519 | +// doing `8 * sizeof(limb)`. | ||
2520 | +#if defined(FASTFLOAT_64BIT) && !defined(__sparc) | ||
2521 | +#define FASTFLOAT_64BIT_LIMB 1 | ||
2522 | +typedef uint64_t limb; | ||
2523 | +constexpr size_t limb_bits = 64; | ||
2524 | +#else | ||
2525 | +#define FASTFLOAT_32BIT_LIMB | ||
2526 | +typedef uint32_t limb; | ||
2527 | +constexpr size_t limb_bits = 32; | ||
2528 | +#endif | ||
2529 | + | ||
2530 | +typedef span<limb> limb_span; | ||
2531 | + | ||
2532 | +// number of bits in a bigint. this needs to be at least the number | ||
2533 | +// of bits required to store the largest bigint, which is | ||
2534 | +// `log2(10**(digits + max_exp))`, or `log2(10**(767 + 342))`, or | ||
2535 | +// ~3600 bits, so we round to 4000. | ||
2536 | +constexpr size_t bigint_bits = 4000; | ||
2537 | +constexpr size_t bigint_limbs = bigint_bits / limb_bits; | ||
2538 | + | ||
2539 | +// vector-like type that is allocated on the stack. the entire | ||
2540 | +// buffer is pre-allocated, and only the length changes. | ||
2541 | +template <uint16_t size> struct stackvec { | ||
2542 | + limb data[size]; | ||
2543 | + // we never need more than 150 limbs | ||
2544 | + uint16_t length{0}; | ||
2545 | + | ||
2546 | + stackvec() = default; | ||
2547 | + stackvec(const stackvec &) = delete; | ||
2548 | + stackvec &operator=(const stackvec &) = delete; | ||
2549 | + stackvec(stackvec &&) = delete; | ||
2550 | + stackvec &operator=(stackvec &&other) = delete; | ||
2551 | + | ||
2552 | + // create stack vector from existing limb span. | ||
2553 | + FASTFLOAT_CONSTEXPR20 stackvec(limb_span s) { | ||
2554 | + FASTFLOAT_ASSERT(try_extend(s)); | ||
2555 | + } | ||
2556 | + | ||
2557 | + FASTFLOAT_CONSTEXPR14 limb &operator[](size_t index) noexcept { | ||
2558 | + FASTFLOAT_DEBUG_ASSERT(index < length); | ||
2559 | + return data[index]; | ||
2560 | + } | ||
2561 | + FASTFLOAT_CONSTEXPR14 const limb &operator[](size_t index) const noexcept { | ||
2562 | + FASTFLOAT_DEBUG_ASSERT(index < length); | ||
2563 | + return data[index]; | ||
2564 | + } | ||
2565 | + // index from the end of the container | ||
2566 | + FASTFLOAT_CONSTEXPR14 const limb &rindex(size_t index) const noexcept { | ||
2567 | + FASTFLOAT_DEBUG_ASSERT(index < length); | ||
2568 | + size_t rindex = length - index - 1; | ||
2569 | + return data[rindex]; | ||
2570 | + } | ||
2571 | + | ||
2572 | + // set the length, without bounds checking. | ||
2573 | + FASTFLOAT_CONSTEXPR14 void set_len(size_t len) noexcept { | ||
2574 | + length = uint16_t(len); | ||
2575 | + } | ||
2576 | + constexpr size_t len() const noexcept { return length; } | ||
2577 | + constexpr bool is_empty() const noexcept { return length == 0; } | ||
2578 | + constexpr size_t capacity() const noexcept { return size; } | ||
2579 | + // append item to vector, without bounds checking | ||
2580 | + FASTFLOAT_CONSTEXPR14 void push_unchecked(limb value) noexcept { | ||
2581 | + data[length] = value; | ||
2582 | + length++; | ||
2583 | + } | ||
2584 | + // append item to vector, returning if item was added | ||
2585 | + FASTFLOAT_CONSTEXPR14 bool try_push(limb value) noexcept { | ||
2586 | + if (len() < capacity()) { | ||
2587 | + push_unchecked(value); | ||
2588 | + return true; | ||
2589 | + } else { | ||
2590 | + return false; | ||
2591 | + } | ||
2592 | + } | ||
2593 | + // add items to the vector, from a span, without bounds checking | ||
2594 | + FASTFLOAT_CONSTEXPR20 void extend_unchecked(limb_span s) noexcept { | ||
2595 | + limb *ptr = data + length; | ||
2596 | + std::copy_n(s.ptr, s.len(), ptr); | ||
2597 | + set_len(len() + s.len()); | ||
2598 | + } | ||
2599 | + // try to add items to the vector, returning if items were added | ||
2600 | + FASTFLOAT_CONSTEXPR20 bool try_extend(limb_span s) noexcept { | ||
2601 | + if (len() + s.len() <= capacity()) { | ||
2602 | + extend_unchecked(s); | ||
2603 | + return true; | ||
2604 | + } else { | ||
2605 | + return false; | ||
2606 | + } | ||
2607 | + } | ||
2608 | + // resize the vector, without bounds checking | ||
2609 | + // if the new size is longer than the vector, assign value to each | ||
2610 | + // appended item. | ||
2611 | + FASTFLOAT_CONSTEXPR20 | ||
2612 | + void resize_unchecked(size_t new_len, limb value) noexcept { | ||
2613 | + if (new_len > len()) { | ||
2614 | + size_t count = new_len - len(); | ||
2615 | + limb *first = data + len(); | ||
2616 | + limb *last = first + count; | ||
2617 | + ::std::fill(first, last, value); | ||
2618 | + set_len(new_len); | ||
2619 | + } else { | ||
2620 | + set_len(new_len); | ||
2621 | + } | ||
2622 | + } | ||
2623 | + // try to resize the vector, returning if the vector was resized. | ||
2624 | + FASTFLOAT_CONSTEXPR20 bool try_resize(size_t new_len, limb value) noexcept { | ||
2625 | + if (new_len > capacity()) { | ||
2626 | + return false; | ||
2627 | + } else { | ||
2628 | + resize_unchecked(new_len, value); | ||
2629 | + return true; | ||
2630 | + } | ||
2631 | + } | ||
2632 | + // check if any limbs are non-zero after the given index. | ||
2633 | + // this needs to be done in reverse order, since the index | ||
2634 | + // is relative to the most significant limbs. | ||
2635 | + FASTFLOAT_CONSTEXPR14 bool nonzero(size_t index) const noexcept { | ||
2636 | + while (index < len()) { | ||
2637 | + if (rindex(index) != 0) { | ||
2638 | + return true; | ||
2639 | + } | ||
2640 | + index++; | ||
2641 | + } | ||
2642 | + return false; | ||
2643 | + } | ||
2644 | + // normalize the big integer, so most-significant zero limbs are removed. | ||
2645 | + FASTFLOAT_CONSTEXPR14 void normalize() noexcept { | ||
2646 | + while (len() > 0 && rindex(0) == 0) { | ||
2647 | + length--; | ||
2648 | + } | ||
2649 | + } | ||
2650 | +}; | ||
2651 | + | ||
2652 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint64_t | ||
2653 | +empty_hi64(bool &truncated) noexcept { | ||
2654 | + truncated = false; | ||
2655 | + return 0; | ||
2656 | +} | ||
2657 | + | ||
2658 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t | ||
2659 | +uint64_hi64(uint64_t r0, bool &truncated) noexcept { | ||
2660 | + truncated = false; | ||
2661 | + int shl = leading_zeroes(r0); | ||
2662 | + return r0 << shl; | ||
2663 | +} | ||
2664 | + | ||
2665 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t | ||
2666 | +uint64_hi64(uint64_t r0, uint64_t r1, bool &truncated) noexcept { | ||
2667 | + int shl = leading_zeroes(r0); | ||
2668 | + if (shl == 0) { | ||
2669 | + truncated = r1 != 0; | ||
2670 | + return r0; | ||
2671 | + } else { | ||
2672 | + int shr = 64 - shl; | ||
2673 | + truncated = (r1 << shl) != 0; | ||
2674 | + return (r0 << shl) | (r1 >> shr); | ||
2675 | + } | ||
2676 | +} | ||
2677 | + | ||
2678 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t | ||
2679 | +uint32_hi64(uint32_t r0, bool &truncated) noexcept { | ||
2680 | + return uint64_hi64(r0, truncated); | ||
2681 | +} | ||
2682 | + | ||
2683 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t | ||
2684 | +uint32_hi64(uint32_t r0, uint32_t r1, bool &truncated) noexcept { | ||
2685 | + uint64_t x0 = r0; | ||
2686 | + uint64_t x1 = r1; | ||
2687 | + return uint64_hi64((x0 << 32) | x1, truncated); | ||
2688 | +} | ||
2689 | + | ||
2690 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t | ||
2691 | +uint32_hi64(uint32_t r0, uint32_t r1, uint32_t r2, bool &truncated) noexcept { | ||
2692 | + uint64_t x0 = r0; | ||
2693 | + uint64_t x1 = r1; | ||
2694 | + uint64_t x2 = r2; | ||
2695 | + return uint64_hi64(x0, (x1 << 32) | x2, truncated); | ||
2696 | +} | ||
2697 | + | ||
2698 | +// add two small integers, checking for overflow. | ||
2699 | +// we want an efficient operation. for msvc, where | ||
2700 | +// we don't have built-in intrinsics, this is still | ||
2701 | +// pretty fast. | ||
2702 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 limb | ||
2703 | +scalar_add(limb x, limb y, bool &overflow) noexcept { | ||
2704 | + limb z; | ||
2705 | +// gcc and clang | ||
2706 | +#if defined(__has_builtin) | ||
2707 | +#if __has_builtin(__builtin_add_overflow) | ||
2708 | + if (!cpp20_and_in_constexpr()) { | ||
2709 | + overflow = __builtin_add_overflow(x, y, &z); | ||
2710 | + return z; | ||
2711 | + } | ||
2712 | +#endif | ||
2713 | +#endif | ||
2714 | + | ||
2715 | + // generic, this still optimizes correctly on MSVC. | ||
2716 | + z = x + y; | ||
2717 | + overflow = z < x; | ||
2718 | + return z; | ||
2719 | +} | ||
2720 | + | ||
2721 | +// multiply two small integers, getting both the high and low bits. | ||
2722 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 limb | ||
2723 | +scalar_mul(limb x, limb y, limb &carry) noexcept { | ||
2724 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
2725 | +#if defined(__SIZEOF_INT128__) | ||
2726 | + // GCC and clang both define it as an extension. | ||
2727 | + __uint128_t z = __uint128_t(x) * __uint128_t(y) + __uint128_t(carry); | ||
2728 | + carry = limb(z >> limb_bits); | ||
2729 | + return limb(z); | ||
2730 | +#else | ||
2731 | + // fallback, no native 128-bit integer multiplication with carry. | ||
2732 | + // on msvc, this optimizes identically, somehow. | ||
2733 | + value128 z = full_multiplication(x, y); | ||
2734 | + bool overflow; | ||
2735 | + z.low = scalar_add(z.low, carry, overflow); | ||
2736 | + z.high += uint64_t(overflow); // cannot overflow | ||
2737 | + carry = z.high; | ||
2738 | + return z.low; | ||
2739 | +#endif | ||
2740 | +#else | ||
2741 | + uint64_t z = uint64_t(x) * uint64_t(y) + uint64_t(carry); | ||
2742 | + carry = limb(z >> limb_bits); | ||
2743 | + return limb(z); | ||
2744 | +#endif | ||
2745 | +} | ||
2746 | + | ||
2747 | +// add scalar value to bigint starting from offset. | ||
2748 | +// used in grade school multiplication | ||
2749 | +template <uint16_t size> | ||
2750 | +inline FASTFLOAT_CONSTEXPR20 bool small_add_from(stackvec<size> &vec, limb y, | ||
2751 | + size_t start) noexcept { | ||
2752 | + size_t index = start; | ||
2753 | + limb carry = y; | ||
2754 | + bool overflow; | ||
2755 | + while (carry != 0 && index < vec.len()) { | ||
2756 | + vec[index] = scalar_add(vec[index], carry, overflow); | ||
2757 | + carry = limb(overflow); | ||
2758 | + index += 1; | ||
2759 | + } | ||
2760 | + if (carry != 0) { | ||
2761 | + FASTFLOAT_TRY(vec.try_push(carry)); | ||
2762 | + } | ||
2763 | + return true; | ||
2764 | +} | ||
2765 | + | ||
2766 | +// add scalar value to bigint. | ||
2767 | +template <uint16_t size> | ||
2768 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool | ||
2769 | +small_add(stackvec<size> &vec, limb y) noexcept { | ||
2770 | + return small_add_from(vec, y, 0); | ||
2771 | +} | ||
2772 | + | ||
2773 | +// multiply bigint by scalar value. | ||
2774 | +template <uint16_t size> | ||
2775 | +inline FASTFLOAT_CONSTEXPR20 bool small_mul(stackvec<size> &vec, | ||
2776 | + limb y) noexcept { | ||
2777 | + limb carry = 0; | ||
2778 | + for (size_t index = 0; index < vec.len(); index++) { | ||
2779 | + vec[index] = scalar_mul(vec[index], y, carry); | ||
2780 | + } | ||
2781 | + if (carry != 0) { | ||
2782 | + FASTFLOAT_TRY(vec.try_push(carry)); | ||
2783 | + } | ||
2784 | + return true; | ||
2785 | +} | ||
2786 | + | ||
2787 | +// add bigint to bigint starting from index. | ||
2788 | +// used in grade school multiplication | ||
2789 | +template <uint16_t size> | ||
2790 | +FASTFLOAT_CONSTEXPR20 bool large_add_from(stackvec<size> &x, limb_span y, | ||
2791 | + size_t start) noexcept { | ||
2792 | + // the effective x buffer is from `xstart..x.len()`, so exit early | ||
2793 | + // if we can't get that current range. | ||
2794 | + if (x.len() < start || y.len() > x.len() - start) { | ||
2795 | + FASTFLOAT_TRY(x.try_resize(y.len() + start, 0)); | ||
2796 | + } | ||
2797 | + | ||
2798 | + bool carry = false; | ||
2799 | + for (size_t index = 0; index < y.len(); index++) { | ||
2800 | + limb xi = x[index + start]; | ||
2801 | + limb yi = y[index]; | ||
2802 | + bool c1 = false; | ||
2803 | + bool c2 = false; | ||
2804 | + xi = scalar_add(xi, yi, c1); | ||
2805 | + if (carry) { | ||
2806 | + xi = scalar_add(xi, 1, c2); | ||
2807 | + } | ||
2808 | + x[index + start] = xi; | ||
2809 | + carry = c1 | c2; | ||
2810 | + } | ||
2811 | + | ||
2812 | + // handle overflow | ||
2813 | + if (carry) { | ||
2814 | + FASTFLOAT_TRY(small_add_from(x, 1, y.len() + start)); | ||
2815 | + } | ||
2816 | + return true; | ||
2817 | +} | ||
2818 | + | ||
2819 | +// add bigint to bigint. | ||
2820 | +template <uint16_t size> | ||
2821 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool | ||
2822 | +large_add_from(stackvec<size> &x, limb_span y) noexcept { | ||
2823 | + return large_add_from(x, y, 0); | ||
2824 | +} | ||
2825 | + | ||
2826 | +// grade-school multiplication algorithm | ||
2827 | +template <uint16_t size> | ||
2828 | +FASTFLOAT_CONSTEXPR20 bool long_mul(stackvec<size> &x, limb_span y) noexcept { | ||
2829 | + limb_span xs = limb_span(x.data, x.len()); | ||
2830 | + stackvec<size> z(xs); | ||
2831 | + limb_span zs = limb_span(z.data, z.len()); | ||
2832 | + | ||
2833 | + if (y.len() != 0) { | ||
2834 | + limb y0 = y[0]; | ||
2835 | + FASTFLOAT_TRY(small_mul(x, y0)); | ||
2836 | + for (size_t index = 1; index < y.len(); index++) { | ||
2837 | + limb yi = y[index]; | ||
2838 | + stackvec<size> zi; | ||
2839 | + if (yi != 0) { | ||
2840 | + // re-use the same buffer throughout | ||
2841 | + zi.set_len(0); | ||
2842 | + FASTFLOAT_TRY(zi.try_extend(zs)); | ||
2843 | + FASTFLOAT_TRY(small_mul(zi, yi)); | ||
2844 | + limb_span zis = limb_span(zi.data, zi.len()); | ||
2845 | + FASTFLOAT_TRY(large_add_from(x, zis, index)); | ||
2846 | + } | ||
2847 | + } | ||
2848 | + } | ||
2849 | + | ||
2850 | + x.normalize(); | ||
2851 | + return true; | ||
2852 | +} | ||
2853 | + | ||
2854 | +// grade-school multiplication algorithm | ||
2855 | +template <uint16_t size> | ||
2856 | +FASTFLOAT_CONSTEXPR20 bool large_mul(stackvec<size> &x, limb_span y) noexcept { | ||
2857 | + if (y.len() == 1) { | ||
2858 | + FASTFLOAT_TRY(small_mul(x, y[0])); | ||
2859 | + } else { | ||
2860 | + FASTFLOAT_TRY(long_mul(x, y)); | ||
2861 | + } | ||
2862 | + return true; | ||
2863 | +} | ||
2864 | + | ||
2865 | +template <typename = void> struct pow5_tables { | ||
2866 | + static constexpr uint32_t large_step = 135; | ||
2867 | + static constexpr uint64_t small_power_of_5[] = { | ||
2868 | + 1UL, | ||
2869 | + 5UL, | ||
2870 | + 25UL, | ||
2871 | + 125UL, | ||
2872 | + 625UL, | ||
2873 | + 3125UL, | ||
2874 | + 15625UL, | ||
2875 | + 78125UL, | ||
2876 | + 390625UL, | ||
2877 | + 1953125UL, | ||
2878 | + 9765625UL, | ||
2879 | + 48828125UL, | ||
2880 | + 244140625UL, | ||
2881 | + 1220703125UL, | ||
2882 | + 6103515625UL, | ||
2883 | + 30517578125UL, | ||
2884 | + 152587890625UL, | ||
2885 | + 762939453125UL, | ||
2886 | + 3814697265625UL, | ||
2887 | + 19073486328125UL, | ||
2888 | + 95367431640625UL, | ||
2889 | + 476837158203125UL, | ||
2890 | + 2384185791015625UL, | ||
2891 | + 11920928955078125UL, | ||
2892 | + 59604644775390625UL, | ||
2893 | + 298023223876953125UL, | ||
2894 | + 1490116119384765625UL, | ||
2895 | + 7450580596923828125UL, | ||
2896 | + }; | ||
2897 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
2898 | + constexpr static limb large_power_of_5[] = { | ||
2899 | + 1414648277510068013UL, 9180637584431281687UL, 4539964771860779200UL, | ||
2900 | + 10482974169319127550UL, 198276706040285095UL}; | ||
2901 | +#else | ||
2902 | + constexpr static limb large_power_of_5[] = { | ||
2903 | + 4279965485U, 329373468U, 4020270615U, 2137533757U, 4287402176U, | ||
2904 | + 1057042919U, 1071430142U, 2440757623U, 381945767U, 46164893U}; | ||
2905 | +#endif | ||
2906 | +}; | ||
2907 | + | ||
2908 | +#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE | ||
2909 | + | ||
2910 | +template <typename T> constexpr uint32_t pow5_tables<T>::large_step; | ||
2911 | + | ||
2912 | +template <typename T> constexpr uint64_t pow5_tables<T>::small_power_of_5[]; | ||
2913 | + | ||
2914 | +template <typename T> constexpr limb pow5_tables<T>::large_power_of_5[]; | ||
2915 | + | ||
2916 | +#endif | ||
2917 | + | ||
2918 | +// big integer type. implements a small subset of big integer | ||
2919 | +// arithmetic, using simple algorithms since asymptotically | ||
2920 | +// faster algorithms are slower for a small number of limbs. | ||
2921 | +// all operations assume the big-integer is normalized. | ||
2922 | +struct bigint : pow5_tables<> { | ||
2923 | + // storage of the limbs, in little-endian order. | ||
2924 | + stackvec<bigint_limbs> vec; | ||
2925 | + | ||
2926 | + FASTFLOAT_CONSTEXPR20 bigint() : vec() {} | ||
2927 | + bigint(const bigint &) = delete; | ||
2928 | + bigint &operator=(const bigint &) = delete; | ||
2929 | + bigint(bigint &&) = delete; | ||
2930 | + bigint &operator=(bigint &&other) = delete; | ||
2931 | + | ||
2932 | + FASTFLOAT_CONSTEXPR20 bigint(uint64_t value) : vec() { | ||
2933 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
2934 | + vec.push_unchecked(value); | ||
2935 | +#else | ||
2936 | + vec.push_unchecked(uint32_t(value)); | ||
2937 | + vec.push_unchecked(uint32_t(value >> 32)); | ||
2938 | +#endif | ||
2939 | + vec.normalize(); | ||
2940 | + } | ||
2941 | + | ||
2942 | + // get the high 64 bits from the vector, and if bits were truncated. | ||
2943 | + // this is to get the significant digits for the float. | ||
2944 | + FASTFLOAT_CONSTEXPR20 uint64_t hi64(bool &truncated) const noexcept { | ||
2945 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
2946 | + if (vec.len() == 0) { | ||
2947 | + return empty_hi64(truncated); | ||
2948 | + } else if (vec.len() == 1) { | ||
2949 | + return uint64_hi64(vec.rindex(0), truncated); | ||
2950 | + } else { | ||
2951 | + uint64_t result = uint64_hi64(vec.rindex(0), vec.rindex(1), truncated); | ||
2952 | + truncated |= vec.nonzero(2); | ||
2953 | + return result; | ||
2954 | + } | ||
2955 | +#else | ||
2956 | + if (vec.len() == 0) { | ||
2957 | + return empty_hi64(truncated); | ||
2958 | + } else if (vec.len() == 1) { | ||
2959 | + return uint32_hi64(vec.rindex(0), truncated); | ||
2960 | + } else if (vec.len() == 2) { | ||
2961 | + return uint32_hi64(vec.rindex(0), vec.rindex(1), truncated); | ||
2962 | + } else { | ||
2963 | + uint64_t result = | ||
2964 | + uint32_hi64(vec.rindex(0), vec.rindex(1), vec.rindex(2), truncated); | ||
2965 | + truncated |= vec.nonzero(3); | ||
2966 | + return result; | ||
2967 | + } | ||
2968 | +#endif | ||
2969 | + } | ||
2970 | + | ||
2971 | + // compare two big integers, returning the large value. | ||
2972 | + // assumes both are normalized. if the return value is | ||
2973 | + // negative, other is larger, if the return value is | ||
2974 | + // positive, this is larger, otherwise they are equal. | ||
2975 | + // the limbs are stored in little-endian order, so we | ||
2976 | + // must compare the limbs in ever order. | ||
2977 | + FASTFLOAT_CONSTEXPR20 int compare(const bigint &other) const noexcept { | ||
2978 | + if (vec.len() > other.vec.len()) { | ||
2979 | + return 1; | ||
2980 | + } else if (vec.len() < other.vec.len()) { | ||
2981 | + return -1; | ||
2982 | + } else { | ||
2983 | + for (size_t index = vec.len(); index > 0; index--) { | ||
2984 | + limb xi = vec[index - 1]; | ||
2985 | + limb yi = other.vec[index - 1]; | ||
2986 | + if (xi > yi) { | ||
2987 | + return 1; | ||
2988 | + } else if (xi < yi) { | ||
2989 | + return -1; | ||
2990 | + } | ||
2991 | + } | ||
2992 | + return 0; | ||
2993 | + } | ||
2994 | + } | ||
2995 | + | ||
2996 | + // shift left each limb n bits, carrying over to the new limb | ||
2997 | + // returns true if we were able to shift all the digits. | ||
2998 | + FASTFLOAT_CONSTEXPR20 bool shl_bits(size_t n) noexcept { | ||
2999 | + // Internally, for each item, we shift left by n, and add the previous | ||
3000 | + // right shifted limb-bits. | ||
3001 | + // For example, we transform (for u8) shifted left 2, to: | ||
3002 | + // b10100100 b01000010 | ||
3003 | + // b10 b10010001 b00001000 | ||
3004 | + FASTFLOAT_DEBUG_ASSERT(n != 0); | ||
3005 | + FASTFLOAT_DEBUG_ASSERT(n < sizeof(limb) * 8); | ||
3006 | + | ||
3007 | + size_t shl = n; | ||
3008 | + size_t shr = limb_bits - shl; | ||
3009 | + limb prev = 0; | ||
3010 | + for (size_t index = 0; index < vec.len(); index++) { | ||
3011 | + limb xi = vec[index]; | ||
3012 | + vec[index] = (xi << shl) | (prev >> shr); | ||
3013 | + prev = xi; | ||
3014 | + } | ||
3015 | + | ||
3016 | + limb carry = prev >> shr; | ||
3017 | + if (carry != 0) { | ||
3018 | + return vec.try_push(carry); | ||
3019 | + } | ||
3020 | + return true; | ||
3021 | + } | ||
3022 | + | ||
3023 | + // move the limbs left by `n` limbs. | ||
3024 | + FASTFLOAT_CONSTEXPR20 bool shl_limbs(size_t n) noexcept { | ||
3025 | + FASTFLOAT_DEBUG_ASSERT(n != 0); | ||
3026 | + if (n + vec.len() > vec.capacity()) { | ||
3027 | + return false; | ||
3028 | + } else if (!vec.is_empty()) { | ||
3029 | + // move limbs | ||
3030 | + limb *dst = vec.data + n; | ||
3031 | + const limb *src = vec.data; | ||
3032 | + std::copy_backward(src, src + vec.len(), dst + vec.len()); | ||
3033 | + // fill in empty limbs | ||
3034 | + limb *first = vec.data; | ||
3035 | + limb *last = first + n; | ||
3036 | + ::std::fill(first, last, 0); | ||
3037 | + vec.set_len(n + vec.len()); | ||
3038 | + return true; | ||
3039 | + } else { | ||
3040 | + return true; | ||
3041 | + } | ||
3042 | + } | ||
3043 | + | ||
3044 | + // move the limbs left by `n` bits. | ||
3045 | + FASTFLOAT_CONSTEXPR20 bool shl(size_t n) noexcept { | ||
3046 | + size_t rem = n % limb_bits; | ||
3047 | + size_t div = n / limb_bits; | ||
3048 | + if (rem != 0) { | ||
3049 | + FASTFLOAT_TRY(shl_bits(rem)); | ||
3050 | + } | ||
3051 | + if (div != 0) { | ||
3052 | + FASTFLOAT_TRY(shl_limbs(div)); | ||
3053 | + } | ||
3054 | + return true; | ||
3055 | + } | ||
3056 | + | ||
3057 | + // get the number of leading zeros in the bigint. | ||
3058 | + FASTFLOAT_CONSTEXPR20 int ctlz() const noexcept { | ||
3059 | + if (vec.is_empty()) { | ||
3060 | + return 0; | ||
3061 | + } else { | ||
3062 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
3063 | + return leading_zeroes(vec.rindex(0)); | ||
3064 | +#else | ||
3065 | + // no use defining a specialized leading_zeroes for a 32-bit type. | ||
3066 | + uint64_t r0 = vec.rindex(0); | ||
3067 | + return leading_zeroes(r0 << 32); | ||
3068 | +#endif | ||
3069 | + } | ||
3070 | + } | ||
3071 | + | ||
3072 | + // get the number of bits in the bigint. | ||
3073 | + FASTFLOAT_CONSTEXPR20 int bit_length() const noexcept { | ||
3074 | + int lz = ctlz(); | ||
3075 | + return int(limb_bits * vec.len()) - lz; | ||
3076 | + } | ||
3077 | + | ||
3078 | + FASTFLOAT_CONSTEXPR20 bool mul(limb y) noexcept { return small_mul(vec, y); } | ||
3079 | + | ||
3080 | + FASTFLOAT_CONSTEXPR20 bool add(limb y) noexcept { return small_add(vec, y); } | ||
3081 | + | ||
3082 | + // multiply as if by 2 raised to a power. | ||
3083 | + FASTFLOAT_CONSTEXPR20 bool pow2(uint32_t exp) noexcept { return shl(exp); } | ||
3084 | + | ||
3085 | + // multiply as if by 5 raised to a power. | ||
3086 | + FASTFLOAT_CONSTEXPR20 bool pow5(uint32_t exp) noexcept { | ||
3087 | + // multiply by a power of 5 | ||
3088 | + size_t large_length = sizeof(large_power_of_5) / sizeof(limb); | ||
3089 | + limb_span large = limb_span(large_power_of_5, large_length); | ||
3090 | + while (exp >= large_step) { | ||
3091 | + FASTFLOAT_TRY(large_mul(vec, large)); | ||
3092 | + exp -= large_step; | ||
3093 | + } | ||
3094 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
3095 | + uint32_t small_step = 27; | ||
3096 | + limb max_native = 7450580596923828125UL; | ||
3097 | +#else | ||
3098 | + uint32_t small_step = 13; | ||
3099 | + limb max_native = 1220703125U; | ||
3100 | +#endif | ||
3101 | + while (exp >= small_step) { | ||
3102 | + FASTFLOAT_TRY(small_mul(vec, max_native)); | ||
3103 | + exp -= small_step; | ||
3104 | + } | ||
3105 | + if (exp != 0) { | ||
3106 | + // Work around clang bug https://godbolt.org/z/zedh7rrhc | ||
3107 | + // This is similar to https://github.com/llvm/llvm-project/issues/47746, | ||
3108 | + // except the workaround described there don't work here | ||
3109 | + FASTFLOAT_TRY(small_mul( | ||
3110 | + vec, limb(((void)small_power_of_5[0], small_power_of_5[exp])))); | ||
3111 | + } | ||
3112 | + | ||
3113 | + return true; | ||
3114 | + } | ||
3115 | + | ||
3116 | + // multiply as if by 10 raised to a power. | ||
3117 | + FASTFLOAT_CONSTEXPR20 bool pow10(uint32_t exp) noexcept { | ||
3118 | + FASTFLOAT_TRY(pow5(exp)); | ||
3119 | + return pow2(exp); | ||
3120 | + } | ||
3121 | +}; | ||
3122 | + | ||
3123 | +} // namespace fast_float | ||
3124 | + | ||
3125 | +#endif | ||
3126 | + | ||
3127 | +#ifndef FASTFLOAT_DIGIT_COMPARISON_H | ||
3128 | +#define FASTFLOAT_DIGIT_COMPARISON_H | ||
3129 | + | ||
3130 | +#include <algorithm> | ||
3131 | +#include <cstdint> | ||
3132 | +#include <cstring> | ||
3133 | +#include <iterator> | ||
3134 | + | ||
3135 | + | ||
3136 | +namespace fast_float { | ||
3137 | + | ||
3138 | +// 1e0 to 1e19 | ||
3139 | +constexpr static uint64_t powers_of_ten_uint64[] = {1UL, | ||
3140 | + 10UL, | ||
3141 | + 100UL, | ||
3142 | + 1000UL, | ||
3143 | + 10000UL, | ||
3144 | + 100000UL, | ||
3145 | + 1000000UL, | ||
3146 | + 10000000UL, | ||
3147 | + 100000000UL, | ||
3148 | + 1000000000UL, | ||
3149 | + 10000000000UL, | ||
3150 | + 100000000000UL, | ||
3151 | + 1000000000000UL, | ||
3152 | + 10000000000000UL, | ||
3153 | + 100000000000000UL, | ||
3154 | + 1000000000000000UL, | ||
3155 | + 10000000000000000UL, | ||
3156 | + 100000000000000000UL, | ||
3157 | + 1000000000000000000UL, | ||
3158 | + 10000000000000000000UL}; | ||
3159 | + | ||
3160 | +// calculate the exponent, in scientific notation, of the number. | ||
3161 | +// this algorithm is not even close to optimized, but it has no practical | ||
3162 | +// effect on performance: in order to have a faster algorithm, we'd need | ||
3163 | +// to slow down performance for faster algorithms, and this is still fast. | ||
3164 | +template <typename UC> | ||
3165 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 int32_t | ||
3166 | +scientific_exponent(parsed_number_string_t<UC> &num) noexcept { | ||
3167 | + uint64_t mantissa = num.mantissa; | ||
3168 | + int32_t exponent = int32_t(num.exponent); | ||
3169 | + while (mantissa >= 10000) { | ||
3170 | + mantissa /= 10000; | ||
3171 | + exponent += 4; | ||
3172 | + } | ||
3173 | + while (mantissa >= 100) { | ||
3174 | + mantissa /= 100; | ||
3175 | + exponent += 2; | ||
3176 | + } | ||
3177 | + while (mantissa >= 10) { | ||
3178 | + mantissa /= 10; | ||
3179 | + exponent += 1; | ||
3180 | + } | ||
3181 | + return exponent; | ||
3182 | +} | ||
3183 | + | ||
3184 | +// this converts a native floating-point number to an extended-precision float. | ||
3185 | +template <typename T> | ||
3186 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa | ||
3187 | +to_extended(T value) noexcept { | ||
3188 | + using equiv_uint = typename binary_format<T>::equiv_uint; | ||
3189 | + constexpr equiv_uint exponent_mask = binary_format<T>::exponent_mask(); | ||
3190 | + constexpr equiv_uint mantissa_mask = binary_format<T>::mantissa_mask(); | ||
3191 | + constexpr equiv_uint hidden_bit_mask = binary_format<T>::hidden_bit_mask(); | ||
3192 | + | ||
3193 | + adjusted_mantissa am; | ||
3194 | + int32_t bias = binary_format<T>::mantissa_explicit_bits() - | ||
3195 | + binary_format<T>::minimum_exponent(); | ||
3196 | + equiv_uint bits; | ||
3197 | +#if FASTFLOAT_HAS_BIT_CAST | ||
3198 | + bits = std::bit_cast<equiv_uint>(value); | ||
3199 | +#else | ||
3200 | + ::memcpy(&bits, &value, sizeof(T)); | ||
3201 | +#endif | ||
3202 | + if ((bits & exponent_mask) == 0) { | ||
3203 | + // denormal | ||
3204 | + am.power2 = 1 - bias; | ||
3205 | + am.mantissa = bits & mantissa_mask; | ||
3206 | + } else { | ||
3207 | + // normal | ||
3208 | + am.power2 = int32_t((bits & exponent_mask) >> | ||
3209 | + binary_format<T>::mantissa_explicit_bits()); | ||
3210 | + am.power2 -= bias; | ||
3211 | + am.mantissa = (bits & mantissa_mask) | hidden_bit_mask; | ||
3212 | + } | ||
3213 | + | ||
3214 | + return am; | ||
3215 | +} | ||
3216 | + | ||
3217 | +// get the extended precision value of the halfway point between b and b+u. | ||
3218 | +// we are given a native float that represents b, so we need to adjust it | ||
3219 | +// halfway between b and b+u. | ||
3220 | +template <typename T> | ||
3221 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa | ||
3222 | +to_extended_halfway(T value) noexcept { | ||
3223 | + adjusted_mantissa am = to_extended(value); | ||
3224 | + am.mantissa <<= 1; | ||
3225 | + am.mantissa += 1; | ||
3226 | + am.power2 -= 1; | ||
3227 | + return am; | ||
3228 | +} | ||
3229 | + | ||
3230 | +// round an extended-precision float to the nearest machine float. | ||
3231 | +template <typename T, typename callback> | ||
3232 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void round(adjusted_mantissa &am, | ||
3233 | + callback cb) noexcept { | ||
3234 | + int32_t mantissa_shift = 64 - binary_format<T>::mantissa_explicit_bits() - 1; | ||
3235 | + if (-am.power2 >= mantissa_shift) { | ||
3236 | + // have a denormal float | ||
3237 | + int32_t shift = -am.power2 + 1; | ||
3238 | + cb(am, std::min<int32_t>(shift, 64)); | ||
3239 | + // check for round-up: if rounding-nearest carried us to the hidden bit. | ||
3240 | + am.power2 = (am.mantissa < | ||
3241 | + (uint64_t(1) << binary_format<T>::mantissa_explicit_bits())) | ||
3242 | + ? 0 | ||
3243 | + : 1; | ||
3244 | + return; | ||
3245 | + } | ||
3246 | + | ||
3247 | + // have a normal float, use the default shift. | ||
3248 | + cb(am, mantissa_shift); | ||
3249 | + | ||
3250 | + // check for carry | ||
3251 | + if (am.mantissa >= | ||
3252 | + (uint64_t(2) << binary_format<T>::mantissa_explicit_bits())) { | ||
3253 | + am.mantissa = (uint64_t(1) << binary_format<T>::mantissa_explicit_bits()); | ||
3254 | + am.power2++; | ||
3255 | + } | ||
3256 | + | ||
3257 | + // check for infinite: we could have carried to an infinite power | ||
3258 | + am.mantissa &= ~(uint64_t(1) << binary_format<T>::mantissa_explicit_bits()); | ||
3259 | + if (am.power2 >= binary_format<T>::infinite_power()) { | ||
3260 | + am.power2 = binary_format<T>::infinite_power(); | ||
3261 | + am.mantissa = 0; | ||
3262 | + } | ||
3263 | +} | ||
3264 | + | ||
3265 | +template <typename callback> | ||
3266 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void | ||
3267 | +round_nearest_tie_even(adjusted_mantissa &am, int32_t shift, | ||
3268 | + callback cb) noexcept { | ||
3269 | + const uint64_t mask = (shift == 64) ? UINT64_MAX : (uint64_t(1) << shift) - 1; | ||
3270 | + const uint64_t halfway = (shift == 0) ? 0 : uint64_t(1) << (shift - 1); | ||
3271 | + uint64_t truncated_bits = am.mantissa & mask; | ||
3272 | + bool is_above = truncated_bits > halfway; | ||
3273 | + bool is_halfway = truncated_bits == halfway; | ||
3274 | + | ||
3275 | + // shift digits into position | ||
3276 | + if (shift == 64) { | ||
3277 | + am.mantissa = 0; | ||
3278 | + } else { | ||
3279 | + am.mantissa >>= shift; | ||
3280 | + } | ||
3281 | + am.power2 += shift; | ||
3282 | + | ||
3283 | + bool is_odd = (am.mantissa & 1) == 1; | ||
3284 | + am.mantissa += uint64_t(cb(is_odd, is_halfway, is_above)); | ||
3285 | +} | ||
3286 | + | ||
3287 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void | ||
3288 | +round_down(adjusted_mantissa &am, int32_t shift) noexcept { | ||
3289 | + if (shift == 64) { | ||
3290 | + am.mantissa = 0; | ||
3291 | + } else { | ||
3292 | + am.mantissa >>= shift; | ||
3293 | + } | ||
3294 | + am.power2 += shift; | ||
3295 | +} | ||
3296 | +template <typename UC> | ||
3297 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
3298 | +skip_zeros(UC const *&first, UC const *last) noexcept { | ||
3299 | + uint64_t val; | ||
3300 | + while (!cpp20_and_in_constexpr() && | ||
3301 | + std::distance(first, last) >= int_cmp_len<UC>()) { | ||
3302 | + ::memcpy(&val, first, sizeof(uint64_t)); | ||
3303 | + if (val != int_cmp_zeros<UC>()) { | ||
3304 | + break; | ||
3305 | + } | ||
3306 | + first += int_cmp_len<UC>(); | ||
3307 | + } | ||
3308 | + while (first != last) { | ||
3309 | + if (*first != UC('0')) { | ||
3310 | + break; | ||
3311 | + } | ||
3312 | + first++; | ||
3313 | + } | ||
3314 | +} | ||
3315 | + | ||
3316 | +// determine if any non-zero digits were truncated. | ||
3317 | +// all characters must be valid digits. | ||
3318 | +template <typename UC> | ||
3319 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool | ||
3320 | +is_truncated(UC const *first, UC const *last) noexcept { | ||
3321 | + // do 8-bit optimizations, can just compare to 8 literal 0s. | ||
3322 | + uint64_t val; | ||
3323 | + while (!cpp20_and_in_constexpr() && | ||
3324 | + std::distance(first, last) >= int_cmp_len<UC>()) { | ||
3325 | + ::memcpy(&val, first, sizeof(uint64_t)); | ||
3326 | + if (val != int_cmp_zeros<UC>()) { | ||
3327 | + return true; | ||
3328 | + } | ||
3329 | + first += int_cmp_len<UC>(); | ||
3330 | + } | ||
3331 | + while (first != last) { | ||
3332 | + if (*first != UC('0')) { | ||
3333 | + return true; | ||
3334 | + } | ||
3335 | + ++first; | ||
3336 | + } | ||
3337 | + return false; | ||
3338 | +} | ||
3339 | +template <typename UC> | ||
3340 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool | ||
3341 | +is_truncated(span<const UC> s) noexcept { | ||
3342 | + return is_truncated(s.ptr, s.ptr + s.len()); | ||
3343 | +} | ||
3344 | + | ||
3345 | +template <typename UC> | ||
3346 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
3347 | +parse_eight_digits(const UC *&p, limb &value, size_t &counter, | ||
3348 | + size_t &count) noexcept { | ||
3349 | + value = value * 100000000 + parse_eight_digits_unrolled(p); | ||
3350 | + p += 8; | ||
3351 | + counter += 8; | ||
3352 | + count += 8; | ||
3353 | +} | ||
3354 | + | ||
3355 | +template <typename UC> | ||
3356 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void | ||
3357 | +parse_one_digit(UC const *&p, limb &value, size_t &counter, | ||
3358 | + size_t &count) noexcept { | ||
3359 | + value = value * 10 + limb(*p - UC('0')); | ||
3360 | + p++; | ||
3361 | + counter++; | ||
3362 | + count++; | ||
3363 | +} | ||
3364 | + | ||
3365 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
3366 | +add_native(bigint &big, limb power, limb value) noexcept { | ||
3367 | + big.mul(power); | ||
3368 | + big.add(value); | ||
3369 | +} | ||
3370 | + | ||
3371 | +fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void | ||
3372 | +round_up_bigint(bigint &big, size_t &count) noexcept { | ||
3373 | + // need to round-up the digits, but need to avoid rounding | ||
3374 | + // ....9999 to ...10000, which could cause a false halfway point. | ||
3375 | + add_native(big, 10, 1); | ||
3376 | + count++; | ||
3377 | +} | ||
3378 | + | ||
3379 | +// parse the significant digits into a big integer | ||
3380 | +template <typename UC> | ||
3381 | +inline FASTFLOAT_CONSTEXPR20 void | ||
3382 | +parse_mantissa(bigint &result, parsed_number_string_t<UC> &num, | ||
3383 | + size_t max_digits, size_t &digits) noexcept { | ||
3384 | + // try to minimize the number of big integer and scalar multiplication. | ||
3385 | + // therefore, try to parse 8 digits at a time, and multiply by the largest | ||
3386 | + // scalar value (9 or 19 digits) for each step. | ||
3387 | + size_t counter = 0; | ||
3388 | + digits = 0; | ||
3389 | + limb value = 0; | ||
3390 | +#ifdef FASTFLOAT_64BIT_LIMB | ||
3391 | + size_t step = 19; | ||
3392 | +#else | ||
3393 | + size_t step = 9; | ||
3394 | +#endif | ||
3395 | + | ||
3396 | + // process all integer digits. | ||
3397 | + UC const *p = num.integer.ptr; | ||
3398 | + UC const *pend = p + num.integer.len(); | ||
3399 | + skip_zeros(p, pend); | ||
3400 | + // process all digits, in increments of step per loop | ||
3401 | + while (p != pend) { | ||
3402 | + while ((std::distance(p, pend) >= 8) && (step - counter >= 8) && | ||
3403 | + (max_digits - digits >= 8)) { | ||
3404 | + parse_eight_digits(p, value, counter, digits); | ||
3405 | + } | ||
3406 | + while (counter < step && p != pend && digits < max_digits) { | ||
3407 | + parse_one_digit(p, value, counter, digits); | ||
3408 | + } | ||
3409 | + if (digits == max_digits) { | ||
3410 | + // add the temporary value, then check if we've truncated any digits | ||
3411 | + add_native(result, limb(powers_of_ten_uint64[counter]), value); | ||
3412 | + bool truncated = is_truncated(p, pend); | ||
3413 | + if (num.fraction.ptr != nullptr) { | ||
3414 | + truncated |= is_truncated(num.fraction); | ||
3415 | + } | ||
3416 | + if (truncated) { | ||
3417 | + round_up_bigint(result, digits); | ||
3418 | + } | ||
3419 | + return; | ||
3420 | + } else { | ||
3421 | + add_native(result, limb(powers_of_ten_uint64[counter]), value); | ||
3422 | + counter = 0; | ||
3423 | + value = 0; | ||
3424 | + } | ||
3425 | + } | ||
3426 | + | ||
3427 | + // add our fraction digits, if they're available. | ||
3428 | + if (num.fraction.ptr != nullptr) { | ||
3429 | + p = num.fraction.ptr; | ||
3430 | + pend = p + num.fraction.len(); | ||
3431 | + if (digits == 0) { | ||
3432 | + skip_zeros(p, pend); | ||
3433 | + } | ||
3434 | + // process all digits, in increments of step per loop | ||
3435 | + while (p != pend) { | ||
3436 | + while ((std::distance(p, pend) >= 8) && (step - counter >= 8) && | ||
3437 | + (max_digits - digits >= 8)) { | ||
3438 | + parse_eight_digits(p, value, counter, digits); | ||
3439 | + } | ||
3440 | + while (counter < step && p != pend && digits < max_digits) { | ||
3441 | + parse_one_digit(p, value, counter, digits); | ||
3442 | + } | ||
3443 | + if (digits == max_digits) { | ||
3444 | + // add the temporary value, then check if we've truncated any digits | ||
3445 | + add_native(result, limb(powers_of_ten_uint64[counter]), value); | ||
3446 | + bool truncated = is_truncated(p, pend); | ||
3447 | + if (truncated) { | ||
3448 | + round_up_bigint(result, digits); | ||
3449 | + } | ||
3450 | + return; | ||
3451 | + } else { | ||
3452 | + add_native(result, limb(powers_of_ten_uint64[counter]), value); | ||
3453 | + counter = 0; | ||
3454 | + value = 0; | ||
3455 | + } | ||
3456 | + } | ||
3457 | + } | ||
3458 | + | ||
3459 | + if (counter != 0) { | ||
3460 | + add_native(result, limb(powers_of_ten_uint64[counter]), value); | ||
3461 | + } | ||
3462 | +} | ||
3463 | + | ||
3464 | +template <typename T> | ||
3465 | +inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa | ||
3466 | +positive_digit_comp(bigint &bigmant, int32_t exponent) noexcept { | ||
3467 | + FASTFLOAT_ASSERT(bigmant.pow10(uint32_t(exponent))); | ||
3468 | + adjusted_mantissa answer; | ||
3469 | + bool truncated; | ||
3470 | + answer.mantissa = bigmant.hi64(truncated); | ||
3471 | + int bias = binary_format<T>::mantissa_explicit_bits() - | ||
3472 | + binary_format<T>::minimum_exponent(); | ||
3473 | + answer.power2 = bigmant.bit_length() - 64 + bias; | ||
3474 | + | ||
3475 | + round<T>(answer, [truncated](adjusted_mantissa &a, int32_t shift) { | ||
3476 | + round_nearest_tie_even( | ||
3477 | + a, shift, | ||
3478 | + [truncated](bool is_odd, bool is_halfway, bool is_above) -> bool { | ||
3479 | + return is_above || (is_halfway && truncated) || | ||
3480 | + (is_odd && is_halfway); | ||
3481 | + }); | ||
3482 | + }); | ||
3483 | + | ||
3484 | + return answer; | ||
3485 | +} | ||
3486 | + | ||
3487 | +// the scaling here is quite simple: we have, for the real digits `m * 10^e`, | ||
3488 | +// and for the theoretical digits `n * 2^f`. Since `e` is always negative, | ||
3489 | +// to scale them identically, we do `n * 2^f * 5^-f`, so we now have `m * 2^e`. | ||
3490 | +// we then need to scale by `2^(f- e)`, and then the two significant digits | ||
3491 | +// are of the same magnitude. | ||
3492 | +template <typename T> | ||
3493 | +inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa negative_digit_comp( | ||
3494 | + bigint &bigmant, adjusted_mantissa am, int32_t exponent) noexcept { | ||
3495 | + bigint &real_digits = bigmant; | ||
3496 | + int32_t real_exp = exponent; | ||
3497 | + | ||
3498 | + // get the value of `b`, rounded down, and get a bigint representation of b+h | ||
3499 | + adjusted_mantissa am_b = am; | ||
3500 | + // gcc7 buf: use a lambda to remove the noexcept qualifier bug with | ||
3501 | + // -Wnoexcept-type. | ||
3502 | + round<T>(am_b, | ||
3503 | + [](adjusted_mantissa &a, int32_t shift) { round_down(a, shift); }); | ||
3504 | + T b; | ||
3505 | + to_float(false, am_b, b); | ||
3506 | + adjusted_mantissa theor = to_extended_halfway(b); | ||
3507 | + bigint theor_digits(theor.mantissa); | ||
3508 | + int32_t theor_exp = theor.power2; | ||
3509 | + | ||
3510 | + // scale real digits and theor digits to be same power. | ||
3511 | + int32_t pow2_exp = theor_exp - real_exp; | ||
3512 | + uint32_t pow5_exp = uint32_t(-real_exp); | ||
3513 | + if (pow5_exp != 0) { | ||
3514 | + FASTFLOAT_ASSERT(theor_digits.pow5(pow5_exp)); | ||
3515 | + } | ||
3516 | + if (pow2_exp > 0) { | ||
3517 | + FASTFLOAT_ASSERT(theor_digits.pow2(uint32_t(pow2_exp))); | ||
3518 | + } else if (pow2_exp < 0) { | ||
3519 | + FASTFLOAT_ASSERT(real_digits.pow2(uint32_t(-pow2_exp))); | ||
3520 | + } | ||
3521 | + | ||
3522 | + // compare digits, and use it to director rounding | ||
3523 | + int ord = real_digits.compare(theor_digits); | ||
3524 | + adjusted_mantissa answer = am; | ||
3525 | + round<T>(answer, [ord](adjusted_mantissa &a, int32_t shift) { | ||
3526 | + round_nearest_tie_even( | ||
3527 | + a, shift, [ord](bool is_odd, bool _, bool __) -> bool { | ||
3528 | + (void)_; // not needed, since we've done our comparison | ||
3529 | + (void)__; // not needed, since we've done our comparison | ||
3530 | + if (ord > 0) { | ||
3531 | + return true; | ||
3532 | + } else if (ord < 0) { | ||
3533 | + return false; | ||
3534 | + } else { | ||
3535 | + return is_odd; | ||
3536 | + } | ||
3537 | + }); | ||
3538 | + }); | ||
3539 | + | ||
3540 | + return answer; | ||
3541 | +} | ||
3542 | + | ||
3543 | +// parse the significant digits as a big integer to unambiguously round the | ||
3544 | +// the significant digits. here, we are trying to determine how to round | ||
3545 | +// an extended float representation close to `b+h`, halfway between `b` | ||
3546 | +// (the float rounded-down) and `b+u`, the next positive float. this | ||
3547 | +// algorithm is always correct, and uses one of two approaches. when | ||
3548 | +// the exponent is positive relative to the significant digits (such as | ||
3549 | +// 1234), we create a big-integer representation, get the high 64-bits, | ||
3550 | +// determine if any lower bits are truncated, and use that to direct | ||
3551 | +// rounding. in case of a negative exponent relative to the significant | ||
3552 | +// digits (such as 1.2345), we create a theoretical representation of | ||
3553 | +// `b` as a big-integer type, scaled to the same binary exponent as | ||
3554 | +// the actual digits. we then compare the big integer representations | ||
3555 | +// of both, and use that to direct rounding. | ||
3556 | +template <typename T, typename UC> | ||
3557 | +inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa | ||
3558 | +digit_comp(parsed_number_string_t<UC> &num, adjusted_mantissa am) noexcept { | ||
3559 | + // remove the invalid exponent bias | ||
3560 | + am.power2 -= invalid_am_bias; | ||
3561 | + | ||
3562 | + int32_t sci_exp = scientific_exponent(num); | ||
3563 | + size_t max_digits = binary_format<T>::max_digits(); | ||
3564 | + size_t digits = 0; | ||
3565 | + bigint bigmant; | ||
3566 | + parse_mantissa(bigmant, num, max_digits, digits); | ||
3567 | + // can't underflow, since digits is at most max_digits. | ||
3568 | + int32_t exponent = sci_exp + 1 - int32_t(digits); | ||
3569 | + if (exponent >= 0) { | ||
3570 | + return positive_digit_comp<T>(bigmant, exponent); | ||
3571 | + } else { | ||
3572 | + return negative_digit_comp<T>(bigmant, am, exponent); | ||
3573 | + } | ||
3574 | +} | ||
3575 | + | ||
3576 | +} // namespace fast_float | ||
3577 | + | ||
3578 | +#endif | ||
3579 | + | ||
3580 | +#ifndef FASTFLOAT_PARSE_NUMBER_H | ||
3581 | +#define FASTFLOAT_PARSE_NUMBER_H | ||
3582 | + | ||
3583 | + | ||
3584 | +#include <cmath> | ||
3585 | +#include <cstring> | ||
3586 | +#include <limits> | ||
3587 | +#include <system_error> | ||
3588 | +namespace fast_float { | ||
3589 | + | ||
3590 | +namespace detail { | ||
3591 | +/** | ||
3592 | + * Special case +inf, -inf, nan, infinity, -infinity. | ||
3593 | + * The case comparisons could be made much faster given that we know that the | ||
3594 | + * strings a null-free and fixed. | ||
3595 | + **/ | ||
3596 | +template <typename T, typename UC> | ||
3597 | +from_chars_result_t<UC> FASTFLOAT_CONSTEXPR14 parse_infnan(UC const *first, | ||
3598 | + UC const *last, | ||
3599 | + T &value) noexcept { | ||
3600 | + from_chars_result_t<UC> answer{}; | ||
3601 | + answer.ptr = first; | ||
3602 | + answer.ec = std::errc(); // be optimistic | ||
3603 | + bool minusSign = false; | ||
3604 | + if (*first == | ||
3605 | + UC('-')) { // assume first < last, so dereference without checks; | ||
3606 | + // C++17 20.19.3.(7.1) explicitly forbids '+' here | ||
3607 | + minusSign = true; | ||
3608 | + ++first; | ||
3609 | + } | ||
3610 | +#ifdef FASTFLOAT_ALLOWS_LEADING_PLUS // disabled by default | ||
3611 | + if (*first == UC('+')) { | ||
3612 | + ++first; | ||
3613 | + } | ||
3614 | +#endif | ||
3615 | + if (last - first >= 3) { | ||
3616 | + if (fastfloat_strncasecmp(first, str_const_nan<UC>(), 3)) { | ||
3617 | + answer.ptr = (first += 3); | ||
3618 | + value = minusSign ? -std::numeric_limits<T>::quiet_NaN() | ||
3619 | + : std::numeric_limits<T>::quiet_NaN(); | ||
3620 | + // Check for possible nan(n-char-seq-opt), C++17 20.19.3.7, | ||
3621 | + // C11 7.20.1.3.3. At least MSVC produces nan(ind) and nan(snan). | ||
3622 | + if (first != last && *first == UC('(')) { | ||
3623 | + for (UC const *ptr = first + 1; ptr != last; ++ptr) { | ||
3624 | + if (*ptr == UC(')')) { | ||
3625 | + answer.ptr = ptr + 1; // valid nan(n-char-seq-opt) | ||
3626 | + break; | ||
3627 | + } else if (!((UC('a') <= *ptr && *ptr <= UC('z')) || | ||
3628 | + (UC('A') <= *ptr && *ptr <= UC('Z')) || | ||
3629 | + (UC('0') <= *ptr && *ptr <= UC('9')) || *ptr == UC('_'))) | ||
3630 | + break; // forbidden char, not nan(n-char-seq-opt) | ||
3631 | + } | ||
3632 | + } | ||
3633 | + return answer; | ||
3634 | + } | ||
3635 | + if (fastfloat_strncasecmp(first, str_const_inf<UC>(), 3)) { | ||
3636 | + if ((last - first >= 8) && | ||
3637 | + fastfloat_strncasecmp(first + 3, str_const_inf<UC>() + 3, 5)) { | ||
3638 | + answer.ptr = first + 8; | ||
3639 | + } else { | ||
3640 | + answer.ptr = first + 3; | ||
3641 | + } | ||
3642 | + value = minusSign ? -std::numeric_limits<T>::infinity() | ||
3643 | + : std::numeric_limits<T>::infinity(); | ||
3644 | + return answer; | ||
3645 | + } | ||
3646 | + } | ||
3647 | + answer.ec = std::errc::invalid_argument; | ||
3648 | + return answer; | ||
3649 | +} | ||
3650 | + | ||
3651 | +/** | ||
3652 | + * Returns true if the floating-pointing rounding mode is to 'nearest'. | ||
3653 | + * It is the default on most system. This function is meant to be inexpensive. | ||
3654 | + * Credit : @mwalcott3 | ||
3655 | + */ | ||
3656 | +fastfloat_really_inline bool rounds_to_nearest() noexcept { | ||
3657 | + // https://lemire.me/blog/2020/06/26/gcc-not-nearest/ | ||
3658 | +#if (FLT_EVAL_METHOD != 1) && (FLT_EVAL_METHOD != 0) | ||
3659 | + return false; | ||
3660 | +#endif | ||
3661 | + // See | ||
3662 | + // A fast function to check your floating-point rounding mode | ||
3663 | + // https://lemire.me/blog/2022/11/16/a-fast-function-to-check-your-floating-point-rounding-mode/ | ||
3664 | + // | ||
3665 | + // This function is meant to be equivalent to : | ||
3666 | + // prior: #include <cfenv> | ||
3667 | + // return fegetround() == FE_TONEAREST; | ||
3668 | + // However, it is expected to be much faster than the fegetround() | ||
3669 | + // function call. | ||
3670 | + // | ||
3671 | + // The volatile keywoard prevents the compiler from computing the function | ||
3672 | + // at compile-time. | ||
3673 | + // There might be other ways to prevent compile-time optimizations (e.g., | ||
3674 | + // asm). The value does not need to be std::numeric_limits<float>::min(), any | ||
3675 | + // small value so that 1 + x should round to 1 would do (after accounting for | ||
3676 | + // excess precision, as in 387 instructions). | ||
3677 | + static volatile float fmin = std::numeric_limits<float>::min(); | ||
3678 | + float fmini = fmin; // we copy it so that it gets loaded at most once. | ||
3679 | +// | ||
3680 | +// Explanation: | ||
3681 | +// Only when fegetround() == FE_TONEAREST do we have that | ||
3682 | +// fmin + 1.0f == 1.0f - fmin. | ||
3683 | +// | ||
3684 | +// FE_UPWARD: | ||
3685 | +// fmin + 1.0f > 1 | ||
3686 | +// 1.0f - fmin == 1 | ||
3687 | +// | ||
3688 | +// FE_DOWNWARD or FE_TOWARDZERO: | ||
3689 | +// fmin + 1.0f == 1 | ||
3690 | +// 1.0f - fmin < 1 | ||
3691 | +// | ||
3692 | +// Note: This may fail to be accurate if fast-math has been | ||
3693 | +// enabled, as rounding conventions may not apply. | ||
3694 | +#ifdef FASTFLOAT_VISUAL_STUDIO | ||
3695 | +#pragma warning(push) | ||
3696 | +// todo: is there a VS warning? | ||
3697 | +// see | ||
3698 | +// https://stackoverflow.com/questions/46079446/is-there-a-warning-for-floating-point-equality-checking-in-visual-studio-2013 | ||
3699 | +#elif defined(__clang__) | ||
3700 | +#pragma clang diagnostic push | ||
3701 | +#pragma clang diagnostic ignored "-Wfloat-equal" | ||
3702 | +#elif defined(__GNUC__) | ||
3703 | +#pragma GCC diagnostic push | ||
3704 | +#pragma GCC diagnostic ignored "-Wfloat-equal" | ||
3705 | +#endif | ||
3706 | + return (fmini + 1.0f == 1.0f - fmini); | ||
3707 | +#ifdef FASTFLOAT_VISUAL_STUDIO | ||
3708 | +#pragma warning(pop) | ||
3709 | +#elif defined(__clang__) | ||
3710 | +#pragma clang diagnostic pop | ||
3711 | +#elif defined(__GNUC__) | ||
3712 | +#pragma GCC diagnostic pop | ||
3713 | +#endif | ||
3714 | +} | ||
3715 | + | ||
3716 | +} // namespace detail | ||
3717 | + | ||
3718 | +template <typename T> struct from_chars_caller { | ||
3719 | + template <typename UC> | ||
3720 | + FASTFLOAT_CONSTEXPR20 static from_chars_result_t<UC> | ||
3721 | + call(UC const *first, UC const *last, T &value, | ||
3722 | + parse_options_t<UC> options) noexcept { | ||
3723 | + return from_chars_advanced(first, last, value, options); | ||
3724 | + } | ||
3725 | +}; | ||
3726 | + | ||
3727 | +#if __STDCPP_FLOAT32_T__ == 1 | ||
3728 | +template <> struct from_chars_caller<std::float32_t> { | ||
3729 | + template <typename UC> | ||
3730 | + FASTFLOAT_CONSTEXPR20 static from_chars_result_t<UC> | ||
3731 | + call(UC const *first, UC const *last, std::float32_t &value, | ||
3732 | + parse_options_t<UC> options) noexcept { | ||
3733 | + // if std::float32_t is defined, and we are in C++23 mode; macro set for | ||
3734 | + // float32; set value to float due to equivalence between float and | ||
3735 | + // float32_t | ||
3736 | + float val; | ||
3737 | + auto ret = from_chars_advanced(first, last, val, options); | ||
3738 | + value = val; | ||
3739 | + return ret; | ||
3740 | + } | ||
3741 | +}; | ||
3742 | +#endif | ||
3743 | + | ||
3744 | +#if __STDCPP_FLOAT64_T__ == 1 | ||
3745 | +template <> struct from_chars_caller<std::float64_t> { | ||
3746 | + template <typename UC> | ||
3747 | + FASTFLOAT_CONSTEXPR20 static from_chars_result_t<UC> | ||
3748 | + call(UC const *first, UC const *last, std::float64_t &value, | ||
3749 | + parse_options_t<UC> options) noexcept { | ||
3750 | + // if std::float64_t is defined, and we are in C++23 mode; macro set for | ||
3751 | + // float64; set value as double due to equivalence between double and | ||
3752 | + // float64_t | ||
3753 | + double val; | ||
3754 | + auto ret = from_chars_advanced(first, last, val, options); | ||
3755 | + value = val; | ||
3756 | + return ret; | ||
3757 | + } | ||
3758 | +}; | ||
3759 | +#endif | ||
3760 | + | ||
3761 | +template <typename T, typename UC, typename> | ||
3762 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
3763 | +from_chars(UC const *first, UC const *last, T &value, | ||
3764 | + chars_format fmt /*= chars_format::general*/) noexcept { | ||
3765 | + return from_chars_caller<T>::call(first, last, value, | ||
3766 | + parse_options_t<UC>(fmt)); | ||
3767 | +} | ||
3768 | + | ||
3769 | +/** | ||
3770 | + * This function overload takes parsed_number_string_t structure that is created | ||
3771 | + * and populated either by from_chars_advanced function taking chars range and | ||
3772 | + * parsing options or other parsing custom function implemented by user. | ||
3773 | + */ | ||
3774 | +template <typename T, typename UC> | ||
3775 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
3776 | +from_chars_advanced(parsed_number_string_t<UC> &pns, T &value) noexcept { | ||
3777 | + | ||
3778 | + static_assert(is_supported_float_type<T>(), | ||
3779 | + "only some floating-point types are supported"); | ||
3780 | + static_assert(is_supported_char_type<UC>(), | ||
3781 | + "only char, wchar_t, char16_t and char32_t are supported"); | ||
3782 | + | ||
3783 | + from_chars_result_t<UC> answer; | ||
3784 | + | ||
3785 | + answer.ec = std::errc(); // be optimistic | ||
3786 | + answer.ptr = pns.lastmatch; | ||
3787 | + // The implementation of the Clinger's fast path is convoluted because | ||
3788 | + // we want round-to-nearest in all cases, irrespective of the rounding mode | ||
3789 | + // selected on the thread. | ||
3790 | + // We proceed optimistically, assuming that detail::rounds_to_nearest() | ||
3791 | + // returns true. | ||
3792 | + if (binary_format<T>::min_exponent_fast_path() <= pns.exponent && | ||
3793 | + pns.exponent <= binary_format<T>::max_exponent_fast_path() && | ||
3794 | + !pns.too_many_digits) { | ||
3795 | + // Unfortunately, the conventional Clinger's fast path is only possible | ||
3796 | + // when the system rounds to the nearest float. | ||
3797 | + // | ||
3798 | + // We expect the next branch to almost always be selected. | ||
3799 | + // We could check it first (before the previous branch), but | ||
3800 | + // there might be performance advantages at having the check | ||
3801 | + // be last. | ||
3802 | + if (!cpp20_and_in_constexpr() && detail::rounds_to_nearest()) { | ||
3803 | + // We have that fegetround() == FE_TONEAREST. | ||
3804 | + // Next is Clinger's fast path. | ||
3805 | + if (pns.mantissa <= binary_format<T>::max_mantissa_fast_path()) { | ||
3806 | + value = T(pns.mantissa); | ||
3807 | + if (pns.exponent < 0) { | ||
3808 | + value = value / binary_format<T>::exact_power_of_ten(-pns.exponent); | ||
3809 | + } else { | ||
3810 | + value = value * binary_format<T>::exact_power_of_ten(pns.exponent); | ||
3811 | + } | ||
3812 | + if (pns.negative) { | ||
3813 | + value = -value; | ||
3814 | + } | ||
3815 | + return answer; | ||
3816 | + } | ||
3817 | + } else { | ||
3818 | + // We do not have that fegetround() == FE_TONEAREST. | ||
3819 | + // Next is a modified Clinger's fast path, inspired by Jakub JelÃnek's | ||
3820 | + // proposal | ||
3821 | + if (pns.exponent >= 0 && | ||
3822 | + pns.mantissa <= | ||
3823 | + binary_format<T>::max_mantissa_fast_path(pns.exponent)) { | ||
3824 | +#if defined(__clang__) || defined(FASTFLOAT_32BIT) | ||
3825 | + // Clang may map 0 to -0.0 when fegetround() == FE_DOWNWARD | ||
3826 | + if (pns.mantissa == 0) { | ||
3827 | + value = pns.negative ? T(-0.) : T(0.); | ||
3828 | + return answer; | ||
3829 | + } | ||
3830 | +#endif | ||
3831 | + value = T(pns.mantissa) * | ||
3832 | + binary_format<T>::exact_power_of_ten(pns.exponent); | ||
3833 | + if (pns.negative) { | ||
3834 | + value = -value; | ||
3835 | + } | ||
3836 | + return answer; | ||
3837 | + } | ||
3838 | + } | ||
3839 | + } | ||
3840 | + adjusted_mantissa am = | ||
3841 | + compute_float<binary_format<T>>(pns.exponent, pns.mantissa); | ||
3842 | + if (pns.too_many_digits && am.power2 >= 0) { | ||
3843 | + if (am != compute_float<binary_format<T>>(pns.exponent, pns.mantissa + 1)) { | ||
3844 | + am = compute_error<binary_format<T>>(pns.exponent, pns.mantissa); | ||
3845 | + } | ||
3846 | + } | ||
3847 | + // If we called compute_float<binary_format<T>>(pns.exponent, pns.mantissa) | ||
3848 | + // and we have an invalid power (am.power2 < 0), then we need to go the long | ||
3849 | + // way around again. This is very uncommon. | ||
3850 | + if (am.power2 < 0) { | ||
3851 | + am = digit_comp<T>(pns, am); | ||
3852 | + } | ||
3853 | + to_float(pns.negative, am, value); | ||
3854 | + // Test for over/underflow. | ||
3855 | + if ((pns.mantissa != 0 && am.mantissa == 0 && am.power2 == 0) || | ||
3856 | + am.power2 == binary_format<T>::infinite_power()) { | ||
3857 | + answer.ec = std::errc::result_out_of_range; | ||
3858 | + } | ||
3859 | + return answer; | ||
3860 | +} | ||
3861 | + | ||
3862 | +template <typename T, typename UC> | ||
3863 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
3864 | +from_chars_advanced(UC const *first, UC const *last, T &value, | ||
3865 | + parse_options_t<UC> options) noexcept { | ||
3866 | + | ||
3867 | + static_assert(is_supported_float_type<T>(), | ||
3868 | + "only some floating-point types are supported"); | ||
3869 | + static_assert(is_supported_char_type<UC>(), | ||
3870 | + "only char, wchar_t, char16_t and char32_t are supported"); | ||
3871 | + | ||
3872 | + from_chars_result_t<UC> answer; | ||
3873 | +#ifdef FASTFLOAT_SKIP_WHITE_SPACE // disabled by default | ||
3874 | + while ((first != last) && fast_float::is_space(uint8_t(*first))) { | ||
3875 | + first++; | ||
3876 | + } | ||
3877 | +#endif | ||
3878 | + if (first == last) { | ||
3879 | + answer.ec = std::errc::invalid_argument; | ||
3880 | + answer.ptr = first; | ||
3881 | + return answer; | ||
3882 | + } | ||
3883 | + parsed_number_string_t<UC> pns = | ||
3884 | + parse_number_string<UC>(first, last, options); | ||
3885 | + if (!pns.valid) { | ||
3886 | + if (options.format & chars_format::no_infnan) { | ||
3887 | + answer.ec = std::errc::invalid_argument; | ||
3888 | + answer.ptr = first; | ||
3889 | + return answer; | ||
3890 | + } else { | ||
3891 | + return detail::parse_infnan(first, last, value); | ||
3892 | + } | ||
3893 | + } | ||
3894 | + | ||
3895 | + // call overload that takes parsed_number_string_t directly. | ||
3896 | + return from_chars_advanced(pns, value); | ||
3897 | +} | ||
3898 | + | ||
3899 | +template <typename T, typename UC, typename> | ||
3900 | +FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC> | ||
3901 | +from_chars(UC const *first, UC const *last, T &value, int base) noexcept { | ||
3902 | + static_assert(is_supported_char_type<UC>(), | ||
3903 | + "only char, wchar_t, char16_t and char32_t are supported"); | ||
3904 | + | ||
3905 | + from_chars_result_t<UC> answer; | ||
3906 | +#ifdef FASTFLOAT_SKIP_WHITE_SPACE // disabled by default | ||
3907 | + while ((first != last) && fast_float::is_space(uint8_t(*first))) { | ||
3908 | + first++; | ||
3909 | + } | ||
3910 | +#endif | ||
3911 | + if (first == last || base < 2 || base > 36) { | ||
3912 | + answer.ec = std::errc::invalid_argument; | ||
3913 | + answer.ptr = first; | ||
3914 | + return answer; | ||
3915 | + } | ||
3916 | + return parse_int_string(first, last, value, base); | ||
3917 | +} | ||
3918 | + | ||
3919 | +} // namespace fast_float | ||
3920 | + | ||
3921 | +#endif | ||
3922 | + | ||
diff --git a/meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch b/meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch new file mode 100644 index 0000000000..b951bbac18 --- /dev/null +++ b/meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch | |||
@@ -0,0 +1,102 @@ | |||
1 | From 08b90d0a5bf8ceb68dd1b4e9ded0f8a2b5287a6e Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 4 Oct 2024 21:22:52 -0700 | ||
4 | Subject: [PATCH 5/5] color-parser: Use fast_float implementation for | ||
5 | from_chars | ||
6 | |||
7 | Removed dependency on c++ runtime to provide it. | ||
8 | |||
9 | Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2823 | ||
10 | |||
11 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/vte/-/issues/2823#note_2239888] | ||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
13 | --- | ||
14 | src/color-parser.cc | 12 ++++++------ | ||
15 | src/termprops.hh | 12 ++++++------ | ||
16 | 2 files changed, 12 insertions(+), 12 deletions(-) | ||
17 | |||
18 | diff --git a/src/color-parser.cc b/src/color-parser.cc | ||
19 | index 02ec5d3a..42c51966 100644 | ||
20 | --- a/src/color-parser.cc | ||
21 | +++ b/src/color-parser.cc | ||
22 | @@ -17,7 +17,7 @@ | ||
23 | |||
24 | #include "color-parser.hh" | ||
25 | #include "color.hh" | ||
26 | - | ||
27 | +#include "fast_float.hh" | ||
28 | #include <algorithm> | ||
29 | #include <cctype> | ||
30 | #include <charconv> | ||
31 | @@ -298,7 +298,7 @@ parse_csslike(std::string const& spec) noexcept | ||
32 | auto value = uint64_t{}; | ||
33 | auto const start = spec.c_str() + 1; | ||
34 | auto const end = spec.c_str() + spec.size(); | ||
35 | - auto const rv = std::from_chars(start, end, value, 16); | ||
36 | + auto const rv = fast_float::from_chars(start, end, value, 16); | ||
37 | if (rv.ec != std::errc{} || rv.ptr != end) | ||
38 | return std::nullopt; | ||
39 | |||
40 | @@ -424,7 +424,7 @@ parse_x11like(std::string const& spec) noexcept | ||
41 | auto value = uint64_t{}; | ||
42 | auto const start = spec.c_str() + 1; | ||
43 | auto const end = spec.c_str() + spec.size(); | ||
44 | - auto const rv = std::from_chars(start, end, value, 16); | ||
45 | + auto const rv = fast_float::from_chars(start, end, value, 16); | ||
46 | if (rv.ec != std::errc{} || rv.ptr != end) | ||
47 | return std::nullopt; | ||
48 | |||
49 | @@ -447,13 +447,13 @@ parse_x11like(std::string const& spec) noexcept | ||
50 | // Note that the length check above makes sure that @r, @g, @b, | ||
51 | // don't exceed @bits. | ||
52 | auto r = UINT64_C(0), b = UINT64_C(0), g = UINT64_C(0); | ||
53 | - auto rv = std::from_chars(start, end, r, 16); | ||
54 | + auto rv = fast_float::from_chars(start, end, r, 16); | ||
55 | if (rv.ec != std::errc{} || rv.ptr == end || *rv.ptr != '/') | ||
56 | return std::nullopt; | ||
57 | - rv = std::from_chars(rv.ptr + 1, end, g, 16); | ||
58 | + rv = fast_float::from_chars(rv.ptr + 1, end, g, 16); | ||
59 | if (rv.ec != std::errc{} || rv.ptr == end || *rv.ptr != '/') | ||
60 | return std::nullopt; | ||
61 | - rv = std::from_chars(rv.ptr + 1, end, b, 16); | ||
62 | + rv = fast_float::from_chars(rv.ptr + 1, end, b, 16); | ||
63 | if (rv.ec != std::errc{} || rv.ptr != end) | ||
64 | return std::nullopt; | ||
65 | |||
66 | diff --git a/src/termprops.hh b/src/termprops.hh | ||
67 | index 0d3f0f4c..a10fc7d1 100644 | ||
68 | --- a/src/termprops.hh | ||
69 | +++ b/src/termprops.hh | ||
70 | @@ -17,6 +17,7 @@ | ||
71 | |||
72 | #include <glib.h> | ||
73 | |||
74 | +#include "fast_float.hh" | ||
75 | #include "fwd.hh" | ||
76 | #include "uuid.hh" | ||
77 | #include "color.hh" | ||
78 | @@ -355,8 +356,8 @@ inline std::optional<TermpropValue> | ||
79 | parse_termprop_integral(std::string_view const& str) noexcept | ||
80 | { | ||
81 | auto v = T{}; | ||
82 | - if (auto [ptr, err] = std::from_chars(std::begin(str), | ||
83 | - std::end(str), | ||
84 | + if (auto [ptr, err] = fast_float::from_chars(str.data(), | ||
85 | + str.data()+str.size(), | ||
86 | v); | ||
87 | err == std::errc() && ptr == std::end(str)) { | ||
88 | if constexpr (std::is_unsigned_v<T>) { | ||
89 | @@ -389,10 +390,9 @@ inline std::optional<TermpropValue> | ||
90 | parse_termprop_floating(std::string_view const& str) noexcept | ||
91 | { | ||
92 | auto v = T{}; | ||
93 | - if (auto [ptr, err] = std::from_chars(std::begin(str), | ||
94 | - std::end(str), | ||
95 | - v, | ||
96 | - std::chars_format::general); | ||
97 | + if (auto [ptr, err] = fast_float::from_chars(str.data(), | ||
98 | + str.data() + str.size(), | ||
99 | + v); | ||
100 | err == std::errc() && | ||
101 | ptr == std::end(str) && | ||
102 | std::isfinite(v)) { | ||
diff --git a/meta/recipes-support/vte/vte_0.74.2.bb b/meta/recipes-support/vte/vte_0.78.2.bb index d8eafde2fb..0593d16cd8 100644 --- a/meta/recipes-support/vte/vte_0.74.2.bb +++ b/meta/recipes-support/vte/vte_0.78.2.bb | |||
@@ -11,15 +11,18 @@ LIC_FILES_CHKSUM = " \ | |||
11 | file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \ | 11 | file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \ |
12 | " | 12 | " |
13 | 13 | ||
14 | DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu" | 14 | DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu lz4" |
15 | 15 | ||
16 | GIR_MESON_OPTION = 'gir' | 16 | GIR_MESON_OPTION = 'gir' |
17 | GIDOCGEN_MESON_OPTION = "docs" | 17 | GIDOCGEN_MESON_OPTION = "docs" |
18 | |||
19 | inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection systemd vala | 18 | inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection systemd vala |
20 | 19 | ||
21 | SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch" | 20 | SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \ |
22 | SRC_URI[archive.sha256sum] = "a535fb2a98fea8a2449cd1a02cccf5190131dddff52e715afdace3feb536eae7" | 21 | file://0002-lib-Typo-fix.patch \ |
22 | file://0004-fast_float-Add-single-header-library-for-from_char-i.patch \ | ||
23 | file://0005-color-parser-Use-fast_float-implementation-for-from_.patch \ | ||
24 | " | ||
25 | SRC_URI[archive.sha256sum] = "35d7bcde07356846b4a12881c8e016705b70a9004a9082285eee5834ccc49890" | ||
23 | 26 | ||
24 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" | 27 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" |
25 | 28 | ||
@@ -38,7 +41,7 @@ PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd" | |||
38 | 41 | ||
39 | PACKAGES =+ "libvte-gtk4 ${PN}-gtk4 ${PN}-gtk4-dev libvte ${PN}-prompt" | 42 | PACKAGES =+ "libvte-gtk4 ${PN}-gtk4 ${PN}-gtk4-dev libvte ${PN}-prompt" |
40 | FILES:libvte-gtk4 = "${libdir}/lib*gtk4.so.* ${libdir}/girepository-1.0/Vte-3.91.typelib" | 43 | FILES:libvte-gtk4 = "${libdir}/lib*gtk4.so.* ${libdir}/girepository-1.0/Vte-3.91.typelib" |
41 | FILES:${PN}-gtk4 ="${bindir}/vte-2.91-gtk4" | 44 | FILES:${PN}-gtk4 = "${bindir}/vte-2.91-gtk4" |
42 | FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \ | 45 | FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \ |
43 | ${libdir}/pkgconfig/vte-2.91-gtk4.pc \ | 46 | ${libdir}/pkgconfig/vte-2.91-gtk4.pc \ |
44 | ${datadir}/gir-1.0/Vte-3.91.gir \ | 47 | ${datadir}/gir-1.0/Vte-3.91.gir \ |
@@ -46,7 +49,7 @@ FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \ | |||
46 | ${datadir}/vala/vapi/vte-2.91-gtk4.vapi \ | 49 | ${datadir}/vala/vapi/vte-2.91-gtk4.vapi \ |
47 | ${includedir}/vte-2.91-gtk4 \ | 50 | ${includedir}/vte-2.91-gtk4 \ |
48 | " | 51 | " |
49 | FILES:${PN} +="${systemd_user_unitdir}" | 52 | FILES:${PN} += "${systemd_user_unitdir}" |
50 | FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" | 53 | FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" |
51 | FILES:${PN}-prompt = " \ | 54 | FILES:${PN}-prompt = " \ |
52 | ${sysconfdir}/profile.d \ | 55 | ${sysconfdir}/profile.d \ |
diff --git a/meta/recipes-support/xxhash/xxhash_0.8.2.bb b/meta/recipes-support/xxhash/xxhash_0.8.3.bb index f16b183c95..15436113b1 100644 --- a/meta/recipes-support/xxhash/xxhash_0.8.2.bb +++ b/meta/recipes-support/xxhash/xxhash_0.8.3.bb | |||
@@ -10,9 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=13be6b481ff5616f77dda971191bb29b \ | |||
10 | SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=https" | 10 | SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=https" |
11 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | 11 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" |
12 | 12 | ||
13 | SRCREV = "bbb27a5efb85b92a0486cf361a8635715a53f6ba" | 13 | SRCREV = "e626a72bc2321cd320e953a0ccf1584cad60f363" |
14 | |||
15 | S = "${WORKDIR}/git" | ||
16 | 14 | ||
17 | CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}" | 15 | CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}" |
18 | 16 | ||