On Thu, Jan 16, 2025 at 06:25:18PM -0600, Andrew Davis via 
lists.yoctoproject.org wrote:
> ONNX and ONNX Runtime depend on a very specific version of Abseil that
> is not the version included with meta-oe scarthgap. But it just so
> happens to be the version provided in current meta-oe master.
> Backport this version for our use in scarthgap.
> 
> This patch is not needed for meta-arago master branch. If meta-oe
> master at some point moves to a newer incompatible version of
> Abseil we will deal with this dependency in a different way.

Just a note here - there's an effort to improve meta-arago-* layers quality 
and eventually seek a Yocto Project Compatible status for them. Adding a 
version of a recipe that exists upstream is possible, but requires some extra 
attention, especially when it's a newer version and gets preferred by BitBake 
automatically. One way to do it is to lower its default preference with 
DEFAULT_PREFERENCE = "-1" and then set a corresponding PREFERRED_VERSION in 
the distro conf...


> Signed-off-by: Andrew Davis <[email protected]>
> ---
>  .../0001-absl-always-use-asm-sgidefs.h.patch  |  38 +++++++
>  ...e-maes-option-from-cross-compilation.patch |  38 +++++++
>  ...e-neon-option-from-cross-compilation.patch |  49 +++++++++
>  .../abseil-cpp/0004-abseil-ppc-fixes.patch    | 103 ++++++++++++++++++
>  ...-virtual-dtor-in-the-flags-are-neede.patch |  30 +++++
>  .../abseil-cpp/abseil-cpp_20240722.0.bb       |  54 +++++++++
>  6 files changed, 312 insertions(+)
>  create mode 100644 
> meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
>  create mode 100644 
> meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
>  create mode 100644 
> meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
>  create mode 100644 
> meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0004-abseil-ppc-fixes.patch
>  create mode 100644 
> meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch
>  create mode 100644 
> meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb
> 
> diff --git 
> a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
>  
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
> new file mode 100644
> index 00000000..6fecf256
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
> @@ -0,0 +1,38 @@
> +From 11faa06436fdeb0c9948080a11f9a99d3b5ba16c Mon Sep 17 00:00:00 2001
> +From: Khem Raj <[email protected]>
> +Date: Thu, 9 Apr 2020 13:06:27 -0700
> +Subject: [PATCH] absl: always use <asm/sgidefs.h>
> +
> +Fixes mips/musl build, since sgidefs.h is not present on all C libraries
> +but on linux asm/sgidefs.h is there and contains same definitions, using
> +that makes it portable.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Khem Raj <[email protected]>
> +---
> + absl/base/internal/direct_mmap.h | 6 +-----
> + 1 file changed, 1 insertion(+), 5 deletions(-)
> +
> +diff --git a/absl/base/internal/direct_mmap.h 
> b/absl/base/internal/direct_mmap.h
> +index 1beb2ee4..140b0697 100644
> +--- a/absl/base/internal/direct_mmap.h
> ++++ b/absl/base/internal/direct_mmap.h
> +@@ -41,13 +41,9 @@
> + 
> + #ifdef __mips__
> + // Include definitions of the ABI currently in use.
> +-#if defined(__BIONIC__) || !defined(__GLIBC__)
> +-// Android doesn't have sgidefs.h, but does have asm/sgidefs.h, which has 
> the
> ++// bionic/musl C libs don't have sgidefs.h, but do have asm/sgidefs.h, 
> which has the
> + // definitions we need.
> + #include <asm/sgidefs.h>
> +-#else
> +-#include <sgidefs.h>
> +-#endif  // __BIONIC__ || !__GLIBC__
> + #endif  // __mips__
> + 
> + // SYS_mmap and SYS_munmap are not defined in Android.
> +-- 
> +2.25.1
> +
> diff --git 
> a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
>  
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
> new file mode 100644
> index 00000000..d49e860f
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
> @@ -0,0 +1,38 @@
> +From a573ccd57e713486e7d8e782d6b3b34fde01ff9e Mon Sep 17 00:00:00 2001
> +From: Sinan Kaya <[email protected]>
> +Date: Mon, 3 Feb 2020 03:25:57 +0000
> +Subject: [PATCH] Remove maes option from cross-compilation
> +
> +Upstream-Status: Pending
> +---
> + absl/copts/GENERATED_AbseilCopts.cmake | 4 ----
> + absl/copts/GENERATED_copts.bzl         | 4 ----
> + 2 files changed, 8 deletions(-)
> +
> +diff --git a/absl/copts/GENERATED_AbseilCopts.cmake 
> b/absl/copts/GENERATED_AbseilCopts.cmake
> +index da2282fe..5e0e8dfd 100644
> +--- a/absl/copts/GENERATED_AbseilCopts.cmake
> ++++ b/absl/copts/GENERATED_AbseilCopts.cmake
> +@@ -229,7 +229,3 @@ list(APPEND ABSL_RANDOM_HWAES_ARM64_FLAGS
> + list(APPEND ABSL_RANDOM_HWAES_MSVC_X64_FLAGS
> + )
> + 
> +-list(APPEND ABSL_RANDOM_HWAES_X64_FLAGS
> +-    "-maes"
> +-    "-msse4.1"
> +-)
> +diff --git a/absl/copts/GENERATED_copts.bzl b/absl/copts/GENERATED_copts.bzl
> +index b9e0071e..0072008c 100644
> +--- a/absl/copts/GENERATED_copts.bzl
> ++++ b/absl/copts/GENERATED_copts.bzl
> +@@ -230,7 +230,3 @@ ABSL_RANDOM_HWAES_ARM64_FLAGS = [
> + ABSL_RANDOM_HWAES_MSVC_X64_FLAGS = [
> + ]
> + 
> +-ABSL_RANDOM_HWAES_X64_FLAGS = [
> +-    "-maes",
> +-    "-msse4.1",
> +-]
> +-- 
> +2.25.1
> +
> diff --git 
> a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
>  
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
> new file mode 100644
> index 00000000..c82b9e1b
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
> @@ -0,0 +1,49 @@
> +From 632632508daf8bb3a5800dac937ffc33c6d85973 Mon Sep 17 00:00:00 2001
> +From: Jonas Gorski <[email protected]>
> +Date: Thu, 16 Jun 2022 11:46:31 +0000
> +Subject: [PATCH] Remove neon option from cross compilation
> +
> +Not every arm platform supports neon instructions, so do not enforce
> +them.
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Jonas Gorski <[email protected]>
> +---
> + absl/copts/GENERATED_AbseilCopts.cmake | 4 ----
> + absl/copts/GENERATED_copts.bzl         | 4 ----
> + 2 files changed, 8 deletions(-)
> +
> +diff --git a/absl/copts/GENERATED_AbseilCopts.cmake 
> b/absl/copts/GENERATED_AbseilCopts.cmake
> +index 5e0e8dfd..57cfc4d3 100644
> +--- a/absl/copts/GENERATED_AbseilCopts.cmake
> ++++ b/absl/copts/GENERATED_AbseilCopts.cmake
> +@@ -218,10 +218,6 @@ list(APPEND ABSL_MSVC_TEST_FLAGS
> +     "/DNOMINMAX"
> + )
> + 
> +-list(APPEND ABSL_RANDOM_HWAES_ARM32_FLAGS
> +-    "-mfpu=neon"
> +-)
> +-
> + list(APPEND ABSL_RANDOM_HWAES_ARM64_FLAGS
> +     "-march=armv8-a+crypto"
> + )
> +diff --git a/absl/copts/GENERATED_copts.bzl b/absl/copts/GENERATED_copts.bzl
> +index 0072008c..72840fda 100644
> +--- a/absl/copts/GENERATED_copts.bzl
> ++++ b/absl/copts/GENERATED_copts.bzl
> +@@ -219,10 +219,6 @@ ABSL_MSVC_TEST_FLAGS = [
> +     "/DNOMINMAX",
> + ]
> + 
> +-ABSL_RANDOM_HWAES_ARM32_FLAGS = [
> +-    "-mfpu=neon",
> +-]
> +-
> + ABSL_RANDOM_HWAES_ARM64_FLAGS = [
> +     "-march=armv8-a+crypto",
> + ]
> +-- 
> +2.25.1
> +
> diff --git 
> a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0004-abseil-ppc-fixes.patch
>  
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0004-abseil-ppc-fixes.patch
> new file mode 100644
> index 00000000..ba0cd669
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0004-abseil-ppc-fixes.patch
> @@ -0,0 +1,103 @@
> +From f9607924225ca59fb6c60222e6424b84e6f70029 Mon Sep 17 00:00:00 2001
> +From: Khem Raj <[email protected]>
> +Date: Sat, 21 Sep 2024 20:53:06 +0800
> +Subject: [PATCH] abseil: ppc fixes
> +
> +An all-in-one patch that fixes several issues:
> +
> +1) UnscaledCycleClock not fully implemented for ppc*-musl (disabled on musl)
> +2) powerpc stacktrace implementation only works on glibc (disabled on musl)
> +3) powerpc stacktrace implementation has ppc64 assumptions (fixed)
> +4) examine_stack.cpp makes glibc assumptions on powerpc (fixed)
> +
> +Sourced from void linux
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Khem Raj <[email protected]>
> +---
> + absl/base/internal/unscaledcycleclock.cc       | 4 ++--
> + absl/base/internal/unscaledcycleclock_config.h | 3 ++-
> + absl/debugging/internal/examine_stack.cc       | 8 +++++++-
> + absl/debugging/internal/stacktrace_config.h    | 2 +-
> + 4 files changed, 12 insertions(+), 5 deletions(-)
> +
> +diff --git a/absl/base/internal/unscaledcycleclock.cc 
> b/absl/base/internal/unscaledcycleclock.cc
> +index a0bf3a65..103b4f6a 100644
> +--- a/absl/base/internal/unscaledcycleclock.cc
> ++++ b/absl/base/internal/unscaledcycleclock.cc
> +@@ -20,7 +20,7 @@
> + #include <intrin.h>
> + #endif
> + 
> +-#if defined(__powerpc__) || defined(__ppc__)
> ++#if (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
> + #ifdef __GLIBC__
> + #include <sys/platform/ppc.h>
> + #elif defined(__FreeBSD__)
> +@@ -58,7 +58,7 @@ double UnscaledCycleClock::Frequency() {
> +   return base_internal::NominalCPUFrequency();
> + }
> + 
> +-#elif defined(__powerpc__) || defined(__ppc__)
> ++#elif (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
> + 
> + int64_t UnscaledCycleClock::Now() {
> + #ifdef __GLIBC__
> +diff --git a/absl/base/internal/unscaledcycleclock_config.h 
> b/absl/base/internal/unscaledcycleclock_config.h
> +index 43a3dabe..196a8535 100644
> +--- a/absl/base/internal/unscaledcycleclock_config.h
> ++++ b/absl/base/internal/unscaledcycleclock_config.h
> +@@ -21,7 +21,8 @@
> + 
> + // The following platforms have an implementation of a hardware counter.
> + #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
> +-    defined(__powerpc__) || defined(__ppc__) || defined(_M_IX86) ||     \
> ++    ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
> ++    defined(_M_IX86) ||     \
> +     (defined(_M_X64) && !defined(_M_ARM64EC))
> + #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
> + #else
> +diff --git a/absl/debugging/internal/examine_stack.cc 
> b/absl/debugging/internal/examine_stack.cc
> +index 3dd6ba1a..f923b055 100644
> +--- a/absl/debugging/internal/examine_stack.cc
> ++++ b/absl/debugging/internal/examine_stack.cc
> +@@ -36,6 +36,10 @@
> + #include <csignal>
> + #include <cstdio>
> + 
> ++#if defined(__powerpc__)
> ++#include <asm/ptrace.h>
> ++#endif
> ++
> + #include "absl/base/attributes.h"
> + #include "absl/base/internal/raw_logging.h"
> + #include "absl/base/macros.h"
> +@@ -177,8 +181,10 @@ void* GetProgramCounter(void* const vuc) {
> +     return reinterpret_cast<void*>(context->uc_mcontext.pc);
> + #elif defined(__powerpc64__)
> +     return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
> +-#elif defined(__powerpc__)
> ++#elif defined(__powerpc__) && defined(__GLIBC__)
> +     return reinterpret_cast<void*>(context->uc_mcontext.uc_regs->gregs[32]);
> ++#elif defined(__powerpc__)
> ++    return reinterpret_cast<void*>((context->uc_regs)->gregs[32]);
> + #elif defined(__riscv)
> +     return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
> + #elif defined(__s390__) && !defined(__s390x__)
> +diff --git a/absl/debugging/internal/stacktrace_config.h 
> b/absl/debugging/internal/stacktrace_config.h
> +index 3929b1b7..23d5e504 100644
> +--- a/absl/debugging/internal/stacktrace_config.h
> ++++ b/absl/debugging/internal/stacktrace_config.h
> +@@ -60,7 +60,7 @@
> + #elif defined(__i386__) || defined(__x86_64__)
> + #define ABSL_STACKTRACE_INL_HEADER \
> +   "absl/debugging/internal/stacktrace_x86-inl.inc"
> +-#elif defined(__ppc__) || defined(__PPC__)
> ++#elif (defined(__ppc__) || defined(__PPC__)) && defined(__GLIBC__)
> + #define ABSL_STACKTRACE_INL_HEADER \
> +   "absl/debugging/internal/stacktrace_powerpc-inl.inc"
> + #elif defined(__aarch64__)
> +-- 
> +2.25.1
> +
> diff --git 
> a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch
>  
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch
> new file mode 100644
> index 00000000..9a4fc0b4
> --- /dev/null
> +++ 
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch
> @@ -0,0 +1,30 @@
> +From 9cb5e5d15c142e5cc43a2c1db87c8e4e5b6d38a5 Mon Sep 17 00:00:00 2001
> +From: Derek Mauro <[email protected]>
> +Date: Mon, 5 Aug 2024 07:35:05 -0700
> +Subject: [PATCH] Don't match -Wnon-virtual-dtor in the "flags are needed to
> + suppress warnings in headers". It should fall through to the "don't impose
> + our warnings on others" case. Do this by matching on "-Wno-*" instead of
> + "-Wno*".
> +
> +Fixes #1737
> +
> +PiperOrigin-RevId: 659548798
> +Change-Id: I49d7ba7ddcd7be30f946fca90ba9be467181e854
> +Upstream-Status: Backport 
> [https://github.com/abseil/abseil-cpp/commit/9cb5e5d15c142e5cc43a2c1db87c8e4e5b6d38a5]
> +---
> + CMake/AbseilHelpers.cmake | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
> +index b177e590..3c4c92fe 100644
> +--- a/CMake/AbseilHelpers.cmake
> ++++ b/CMake/AbseilHelpers.cmake
> +@@ -195,7 +195,7 @@ function(absl_cc_library)
> +         # specified platform. Filter both of them out before the successor
> +         # reaches the "^-m" filter.
> +         set(skip_next_cflag ON)
> +-      elseif(${cflag} MATCHES "^(-Wno|/wd)")
> ++      elseif(${cflag} MATCHES "^(-Wno-|/wd)")
> +         # These flags are needed to suppress warnings that might fire in 
> our headers.
> +         set(PC_CFLAGS "${PC_CFLAGS} ${cflag}")
> +       elseif(${cflag} MATCHES "^(-W|/w[1234eo])")
> diff --git 
> a/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb 
> b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb
> new file mode 100644
> index 00000000..4bfc2100
> --- /dev/null
> +++ b/meta-arago-extras/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb
> @@ -0,0 +1,54 @@
> +SUMMARY = "Abseil is a cpp library like STL"
> +DESCRIPTION = "Abseil provides pieces missing from the C++ standard. 
> Contains \
> +additional useful libraries like algorithm, container, debugging, hash, 
> memory, \
> +meta, numeric, strings, synchronization, time, types and utility."
> +HOMEPAGE = "https://abseil.io/";
> +SECTION = "libs"
> +LICENSE = "Apache-2.0"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915"
> +
> +SRCREV = "4447c7562e3bc702ade25105912dce503f0c4010"
> +BRANCH = "lts_2024_07_22"
> +SRC_URI = 
> "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
> +           file://0001-absl-always-use-asm-sgidefs.h.patch             \
> +           file://0002-Remove-maes-option-from-cross-compilation.patch \
> +           file://0003-Remove-neon-option-from-cross-compilation.patch \
> +           file://0004-abseil-ppc-fixes.patch \
> +           
> file://0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch \
> +          "
> +
> +S = "${WORKDIR}/git"
> +
> +inherit cmake
> +
> +EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON \
> +                 -DBUILD_TESTING=OFF    \
> +                 -DABSL_ENABLE_INSTALL=ON \
> +                "
> +
> +SYSROOT_DIRS:append:class-nativesdk:mingw32 = " ${bindir}"
> +
> +PACKAGES_DYNAMIC += "^libabsl-*"
> +PACKAGES_DYNAMIC:class-native = ""
> +
> +PACKAGESPLITFUNCS =+ "split_dynamic_packages"
> +
> +python split_dynamic_packages() {
> +    libdir = d.getVar('libdir')
> +
> +    libpackages = do_split_packages(
> +        d,
> +        root=libdir,
> +        file_regex=r'^libabsl_(.*)\.so\..*$',
> +        output_pattern='libabsl-%s',
> +        description="abseil shared library %s",
> +        prepend=True,
> +        extra_depends='',
> +    )
> +    if libpackages:
> +        d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' 
> '.join(libpackages))
> +}
> +
> +ALLOW_EMPTY:${PN} = "1"
> +
> +BBCLASSEXTEND = "native nativesdk"
> -- 
> 2.39.2


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#15738): 
https://lists.yoctoproject.org/g/meta-arago/message/15738
Mute This Topic: https://lists.yoctoproject.org/mt/110658458/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-arago/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to