diff options
Diffstat (limited to 'media-tv/kodi/files/kodi-19.4-atomic.patch')
-rw-r--r-- | media-tv/kodi/files/kodi-19.4-atomic.patch | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/media-tv/kodi/files/kodi-19.4-atomic.patch b/media-tv/kodi/files/kodi-19.4-atomic.patch deleted file mode 100644 index 3811fda8..00000000 --- a/media-tv/kodi/files/kodi-19.4-atomic.patch +++ /dev/null @@ -1,108 +0,0 @@ -From ac3213e683e4c62c50dc02fef3b168d883245094 Mon Sep 17 00:00:00 2001 -From: Yixun Lan <dlan@gentoo.org> -Date: Tue, 9 Aug 2022 16:45:09 +0800 -Subject: [PATCH] [cmake] link atomic library for certain CPU architectures - -For those CPU architectures: -RISC-V lack 8-bit and 16-bit atomic instructions, and -ARM/MIPS/PPC lack 64-bit atomic instruction. - -GCC is supposed to convert these atomics via masking and shifting -like LLVM, which means anything that wants to use these instructions -needs the link option -latomic. - -In this patch, we will try to detect if 8-bit, 64-bit atomic instructions exist, -otherwise the atomic library will append to the DEPLIBS list. - -Original issue: -* https://gitlab.kitware.com/cmake/cmake/-/issues/23021#note_1098733 - -For reference: -* https://gcc.gnu.org/wiki/Atomic/GCCMM - -riscv64 specific: -* https://lists.debian.org/debian-riscv/2022/01/msg00009.html - -Signed-off-by: Yixun Lan <dlan@gentoo.org> ---- - cmake/modules/FindAtomic.cmake | 56 +++++++++++++++++++++++++++++ - cmake/scripts/linux/ArchSetup.cmake | 3 ++ - 2 files changed, 59 insertions(+) - create mode 100644 cmake/modules/FindAtomic.cmake - -diff --git a/cmake/modules/FindAtomic.cmake b/cmake/modules/FindAtomic.cmake -new file mode 100644 -index 0000000000..8ea3c815d7 ---- /dev/null -+++ b/cmake/modules/FindAtomic.cmake -@@ -0,0 +1,56 @@ -+#.rst: -+# FindAtomic -+# ----- -+# Finds the ATOMIC library -+# -+# This will define the following variables:: -+# -+# ATOMIC_FOUND - system has ATOMIC -+# ATOMIC_LIBRARIES - the ATOMIC libraries -+# -+# and the following imported targets:: -+# -+# ATOMIC::ATOMIC - The ATOMIC library -+ -+ -+include(CheckCXXSourceCompiles) -+ -+set(atomic_code -+ " -+ #include <atomic> -+ #include <cstdint> -+ std::atomic<uint8_t> n8 (0); // riscv64 -+ std::atomic<uint64_t> n64 (0); // armel, mipsel, powerpc -+ int main() { -+ ++n8; -+ ++n64; -+ return 0; -+ }") -+ -+check_cxx_source_compiles("${atomic_code}" ATOMIC_LOCK_FREE_INSTRUCTIONS) -+ -+if(ATOMIC_LOCK_FREE_INSTRUCTIONS) -+ set(ATOMIC_FOUND TRUE) -+ set(ATOMIC_LIBRARIES) -+else() -+ set(CMAKE_REQUIRED_LIBRARIES "-latomic") -+ check_cxx_source_compiles("${atomic_code}" ATOMIC_IN_LIBRARY) -+ set(CMAKE_REQUIRED_LIBRARIES) -+ if(ATOMIC_IN_LIBRARY) -+ set(ATOMIC_LIBRARY atomic) -+ include(FindPackageHandleStandardArgs) -+ find_package_handle_standard_args(Atomic DEFAULT_MSG ATOMIC_LIBRARY) -+ set(ATOMIC_LIBRARIES ${ATOMIC_LIBRARY}) -+ if(NOT TARGET ATOMIC::ATOMIC) -+ add_library(ATOMIC::ATOMIC UNKNOWN IMPORTED) -+ set_target_properties(ATOMIC::ATOMIC PROPERTIES -+ IMPORTED_LOCATION "${ATOMIC_LIBRARY}") -+ endif() -+ unset(ATOMIC_LIBRARY) -+ else() -+ if(Atomic_FIND_REQUIRED) -+ message(FATAL_ERROR "Neither lock free instructions nor -latomic found.") -+ endif() -+ endif() -+endif() -+unset(atomic_code) -diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake -index 35ab1402f5..848723af1f 100644 ---- a/cmake/scripts/linux/ArchSetup.cmake -+++ b/cmake/scripts/linux/ArchSetup.cmake -@@ -199,3 +199,6 @@ if(NOT USE_INTERNAL_LIBS) - set(USE_INTERNAL_LIBS OFF) - endif() - endif() -+ -+# Atomic library -+list(APPEND PLATFORM_REQUIRED_DEPS Atomic) --- -2.35.1 - |