Thanks for reworking the patch, there however is still one error popping up when ptests distro feature is enabled
https://snips.sh/f/bftvz4ANO6 This patch fixes it, but I would like to see if this warning is already fixed or can be fixed. https://snips.sh/f/pRVar8hlif On Wed, Mar 27, 2024 at 4:07 PM Peter Marko via lists.openembedded.org <peter.marko=siemens....@lists.openembedded.org> wrote: > > From: Peter Marko <peter.ma...@siemens.com> > > The Guidelines Support Library (GSL) contains functions > and types that are suggested for use by the C++ Core Guidelines > maintained by the Standard C++ Foundation. > This repo contains Microsoft's implementation of GSL. > > Signed-off-by: Peter Marko <peter.ma...@siemens.com> > --- > v2: adapt conditional ptest clauses per review comments > v3: fix clang build > > .../include/ptest-packagelists-meta-oe.inc | 1 + > .../packagegroups/packagegroup-meta-oe.bb | 1 + > ...0001-Fix-initialization-in-test-1140.patch | 113 ++++++++++++++++++ > .../0002-Fix-gcc-build-problem.patch | 82 +++++++++++++ > ...eck_cxx_compiler_flag-to-cmake-3.0.2.patch | 53 ++++++++ > .../microsoft-gsl/microsoft-gsl/run-ptest | 4 + > .../microsoft-gsl/microsoft-gsl_4.0.0.bb | 43 +++++++ > 7 files changed, 297 insertions(+) > create mode 100644 > meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch > create mode 100644 > meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch > create mode 100644 > meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch > create mode 100644 > meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest > create mode 100644 > meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb > > diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc > b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc > index fadec1221..70e5dad08 100644 > --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc > +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc > @@ -27,6 +27,7 @@ PTESTS_FAST_META_OE = "\ > libxml++-5.0 \ > libyang \ > lmdb \ > + microsoft-gsl \ > minicoredumper \ > neon \ > nlohmann-json \ > diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > index 6e2012dae..bc15373b6 100644 > --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb > @@ -310,6 +310,7 @@ RDEPENDS:packagegroup-meta-oe-devtools ="\ > yasm \ > json-schema-validator \ > poke \ > + microsoft-gsl \ > " > RDEPENDS:packagegroup-meta-oe-devtools:append:x86 = " cpuid msr-tools pahole > pmtools" > RDEPENDS:packagegroup-meta-oe-devtools:append:x86-64 = " cpuid msr-tools > pahole pcimem pmtools" > diff --git > a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch > > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch > new file mode 100644 > index 000000000..84a585d3c > --- /dev/null > +++ > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch > @@ -0,0 +1,113 @@ > +From 1b4d42ca2e97061042ec44a0b34ceb176c78c7e1 Mon Sep 17 00:00:00 2001 > +From: d-winsor <dan...@microsoft.com> > +Date: Mon, 26 Feb 2024 13:17:12 -0800 > +Subject: [PATCH] Fix initialization in test (#1140) > + > +* Suppress unsafe-buffer-usage > + > +Upstream-Status: Backport > [https://github.com/microsoft/GSL/commit/1b4d42ca2e97061042ec44a0b34ceb176c78c7e1] > + > +Signed-off-by: Peter Marko <peter.ma...@siemens.com> > +--- > + include/gsl/span | 10 ++++++++++ > + include/gsl/util | 10 ++++++++++ > + tests/CMakeLists.txt | 10 ++++++++++ > + tests/span_tests.cpp | 2 +- > + 4 files changed, 31 insertions(+), 1 deletion(-) > + > +diff --git a/include/gsl/span b/include/gsl/span > +index cc8a7b9..d254e4d 100644 > +--- a/include/gsl/span > ++++ b/include/gsl/span > +@@ -58,6 +58,12 @@ > + #pragma GCC diagnostic ignored "-Wsign-conversion" > + #endif > + > ++// Turn off clang unsafe buffer warnings as all accessed are guarded by > runtime checks > ++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#pragma clang diagnostic push > ++#pragma clang diagnostic ignored "-Wunsafe-buffer-usage" > ++#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++ > + namespace gsl > + { > + > +@@ -818,4 +824,8 @@ as_writable_bytes(span<ElementType, Extent> s) noexcept > + #pragma GCC diagnostic pop > + #endif // __GNUC__ > 6 > + > ++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#pragma clang diagnostic pop > ++#endif > ++ > + #endif // GSL_SPAN_H > +diff --git a/include/gsl/util b/include/gsl/util > +index a215bad..11735a8 100644 > +--- a/include/gsl/util > ++++ b/include/gsl/util > +@@ -39,6 +39,12 @@ > + > + #endif // _MSC_VER > + > ++// Turn off clang unsafe buffer warnings as all accessed are guarded by > runtime checks > ++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#pragma clang diagnostic push > ++#pragma clang diagnostic ignored "-Wunsafe-buffer-usage" > ++#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++ > + #if defined(__cplusplus) && (__cplusplus >= 201703L) > + #define GSL_NODISCARD [[nodiscard]] > + #else > +@@ -157,4 +163,8 @@ constexpr auto at(std::span<T, extent> sp, const index > i) -> decltype(sp[sp.size > + > + #endif // _MSC_VER > + > ++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#pragma clang diagnostic pop > ++#endif > ++ > + #endif // GSL_UTIL_H > +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt > +index cab4e56..20de9e1 100644 > +--- a/tests/CMakeLists.txt > ++++ b/tests/CMakeLists.txt > +@@ -167,6 +167,11 @@ else() > + > > + ) > + endif(MSVC) > ++check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER) > ++if (WARN_UNSAFE_BUFFER) > ++ # This test uses very greedy heuristics such as "no pointer arithmetic on > raw buffer" > ++ target_compile_options(gsl_tests_config INTERFACE > "-Wno-unsafe-buffer-usage") > ++endif() > + > + # for tests to find the gtest header > + target_include_directories(gsl_tests_config SYSTEM INTERFACE > +@@ -267,6 +272,11 @@ else() > + > > + ) > + endif(MSVC) > ++check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER) > ++if (WARN_UNSAFE_BUFFER) > ++ # This test uses very greedy heuristics such as "no pointer arithmetic on > raw buffer" > ++ target_compile_options(gsl_tests_config_noexcept INTERFACE > "-Wno-unsafe-buffer-usage") > ++endif() > + > + add_executable(gsl_noexcept_tests no_exception_ensure_tests.cpp) > + target_link_libraries(gsl_noexcept_tests > +diff --git a/tests/span_tests.cpp b/tests/span_tests.cpp > +index 33ccf56..3c1dfe5 100644 > +--- a/tests/span_tests.cpp > ++++ b/tests/span_tests.cpp > +@@ -330,7 +330,7 @@ TEST(span_test, from_array_constructor) > + EXPECT_TRUE(s.data() == std::addressof(arr2d[0])); > + } > + > +- int arr3d[2][3][2] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; > ++ int arr3d[2][3][2] = { { {1, 2}, {3, 4}, {5, 6} }, { {7, 8}, {9, 10}, > {11, 12} } }; > + > + #ifdef CONFIRM_COMPILATION_ERRORS > + { > +-- > +2.30.2 > + > diff --git > a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch > > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch > new file mode 100644 > index 000000000..2f7542c62 > --- /dev/null > +++ > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch > @@ -0,0 +1,82 @@ > +From aa4fd1f57794964640005900c2b47af1a0940b7b Mon Sep 17 00:00:00 2001 > +From: Werner Henze <w.he...@avm.de> > +Date: Fri, 1 Mar 2024 15:53:50 +0100 > +Subject: [PATCH] Fix gcc build problem > + > +Closes issue #1148 by fixing problems introduced in PR #1140. > + > +Upstream-Status: Submitted [https://github.com/microsoft/GSL/pull/1149] > + > +Signed-off-by: Peter Marko <peter.ma...@siemens.com> > +--- > + include/gsl/span | 12 ++++++++---- > + include/gsl/util | 12 ++++++++---- > + 2 files changed, 16 insertions(+), 8 deletions(-) > + > +diff --git a/include/gsl/span b/include/gsl/span > +index 0de2932..d2ef9f7 100644 > +--- a/include/gsl/span > ++++ b/include/gsl/span > +@@ -59,10 +59,12 @@ > + #endif > + > + // Turn off clang unsafe buffer warnings as all accessed are guarded by > runtime checks > +-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#if defined(__clang__) > ++#if __has_warning("-Wunsafe-buffer-usage") > + #pragma clang diagnostic push > + #pragma clang diagnostic ignored "-Wunsafe-buffer-usage" > +-#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#endif // __has_warning("-Wunsafe-buffer-usage") > ++#endif // defined(__clang__) > + > + namespace gsl > + { > +@@ -824,8 +826,10 @@ as_writable_bytes(span<ElementType, Extent> s) noexcept > + #pragma GCC diagnostic pop > + #endif // __GNUC__ > 6 > + > +-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#if defined(__clang__) > ++#if __has_warning("-Wunsafe-buffer-usage") > + #pragma clang diagnostic pop > +-#endif > ++#endif // __has_warning("-Wunsafe-buffer-usage") > ++#endif // defined(__clang__) > + > + #endif // GSL_SPAN_H > +diff --git a/include/gsl/util b/include/gsl/util > +index b853017..26b2f5f 100644 > +--- a/include/gsl/util > ++++ b/include/gsl/util > +@@ -40,10 +40,12 @@ > + #endif // _MSC_VER > + > + // Turn off clang unsafe buffer warnings as all accessed are guarded by > runtime checks > +-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#if defined(__clang__) > ++#if __has_warning("-Wunsafe-buffer-usage") > + #pragma clang diagnostic push > + #pragma clang diagnostic ignored "-Wunsafe-buffer-usage" > +-#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#endif // __has_warning("-Wunsafe-buffer-usage") > ++#endif // defined(__clang__) > + > + #if defined(__cplusplus) && (__cplusplus >= 201703L) > + #define GSL_NODISCARD [[nodiscard]] > +@@ -163,8 +165,10 @@ constexpr auto at(std::span<T, extent> sp, const index > i) -> decltype(sp[sp.size > + > + #endif // _MSC_VER > + > +-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage") > ++#if defined(__clang__) > ++#if __has_warning("-Wunsafe-buffer-usage") > + #pragma clang diagnostic pop > +-#endif > ++#endif // __has_warning("-Wunsafe-buffer-usage") > ++#endif // defined(__clang__) > + > + #endif // GSL_UTIL_H > +-- > +2.30.2 > + > diff --git > a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch > > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch > new file mode 100644 > index 000000000..ed057f524 > --- /dev/null > +++ > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch > @@ -0,0 +1,53 @@ > +From 85e1c38bcf84bd4e2ce63ef74f0cfa1f5e92261e Mon Sep 17 00:00:00 2001 > +From: Peter Marko <peter.ma...@siemens.com> > +Date: Wed, 27 Mar 2024 23:46:31 +0100 > +Subject: [PATCH] Adapt check_cxx_compiler_flag to cmake 3.0.2 > + > +Backporting commits which are upgrading cmake_minimum_required and > +include check_cxx_compiler_flag have too many additional changes. > + > +Let's just do a simple adaptation of our backported patch so > +it works with older cmake version instead. > + > +This can be safely removed when recipe version is upgraded. > + > +Upstream-Status: Inappropriate > + > +Signed-off-by: Peter Marko <peter.ma...@siemens.com> > +--- > + tests/CMakeLists.txt | 5 +++-- > + 1 file changed, 3 insertions(+), 2 deletions(-) > + > +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt > +index 20de9e1..54c3ac5 100644 > +--- a/tests/CMakeLists.txt > ++++ b/tests/CMakeLists.txt > +@@ -5,6 +5,7 @@ enable_testing() # again, for support standalone testing > + > + include(FindPkgConfig) > + include(ExternalProject) > ++include(CheckCXXCompilerFlag) > + > + # will make visual studio generated project group files > + set_property(GLOBAL PROPERTY USE_FOLDERS ON) > +@@ -167,7 +168,7 @@ else() > + > > + ) > + endif(MSVC) > +-check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER) > ++CHECK_CXX_COMPILER_FLAG("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER) > + if (WARN_UNSAFE_BUFFER) > + # This test uses very greedy heuristics such as "no pointer arithmetic on > raw buffer" > + target_compile_options(gsl_tests_config INTERFACE > "-Wno-unsafe-buffer-usage") > +@@ -272,7 +273,7 @@ else() > + > > + ) > + endif(MSVC) > +-check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER) > ++CHECK_CXX_COMPILER_FLAG("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER) > + if (WARN_UNSAFE_BUFFER) > + # This test uses very greedy heuristics such as "no pointer arithmetic on > raw buffer" > + target_compile_options(gsl_tests_config_noexcept INTERFACE > "-Wno-unsafe-buffer-usage") > +-- > +2.30.2 > + > diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest > new file mode 100644 > index 000000000..2d5bdf4ff > --- /dev/null > +++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest > @@ -0,0 +1,4 @@ > +#!/bin/sh > + > +gsl_tests && echo "PASS: gsl_tests" || echo "FAIL: gsl_tests" > +gsl_noexcept_tests && echo "PASS: gsl_noexcept_tests" || echo "FAIL: > gsl_noexcept_tests" > diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb > b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb > new file mode 100644 > index 000000000..7fc31486f > --- /dev/null > +++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb > @@ -0,0 +1,43 @@ > +SUMMARY = "GSL: Guidelines Support Library" > +DESCRIPTION = "The Guidelines Support Library (GSL) contains functions \ > + and types that are suggested for use by the C++ Core Guidelines \ > + maintained by the Standard C++ Foundation. \ > + This repo contains Microsoft's implementation of GSL." > +HOMEPAGE = "https://github.com/microsoft/GSL" > + > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=363055e71e77071107ba2bb9a54bd9a7" > + > +SRC_URI = "git://github.com/microsoft/GSL.git;protocol=https;branch=main \ > + file://run-ptest \ > + file://0001-Fix-initialization-in-test-1140.patch \ > + file://0002-Fix-gcc-build-problem.patch \ > + file://0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch \ > +" > +SRCREV = "a3534567187d2edc428efd3f13466ff75fe5805c" > + > +S = "${WORKDIR}/git" > + > +inherit cmake pkgconfig ptest > + > +# this is header-only library > +ALLOW_EMPTY:${PN} = "1" > + > +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'ptest','', > d)}" > +PACKAGECONFIG[ptest] = "-DGSL_TEST=ON,-DGSL_TEST=OFF,googletest" > + > +# clang disagrees with https://github.com/google/googletest/pull/3457 > +CXXFLAGS:append:toolchain-clang = " -Wno-error=switch-default" > + > +do_install_ptest() { > + install -d ${D}${bindir} > + install -m 0755 ${B}/tests/gsl_tests ${D}${bindir} > + install -m 0755 ${B}/tests/gsl_noexcept_tests ${D}${bindir} > +} > + > +FILES:${PN}-ptest = "${bindir}/gsl*_tests" > + > +# there is already other gsl recipe, so recipe name does not match the real > component name > +CVE_PRODUCT = "microsoft:gsl" > + > +BBCLASSEXTEND = "native nativesdk" > -- > 2.30.2 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#109651): https://lists.openembedded.org/g/openembedded-devel/message/109651 Mute This Topic: https://lists.openembedded.org/mt/105187719/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-