summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch')
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch117
1 files changed, 0 insertions, 117 deletions
diff --git a/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch b/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch
deleted file mode 100644
index 6c0fb60868..0000000000
--- a/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From e20a5d13935a41a856e8f71c49f2cc9d81b1d92c Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Fri, 13 Nov 2020 17:07:00 +0800
-Subject: [PATCH] support link against libatomic if no built-in atomic exist
-
-fix error:
-| framework/lib/ppc/libframework.a(device.cpp.o): in function `std::__atomic_base<unsigned long long>::load(std::memory_order) const':
-| /usr/include/c++/10.2.0/bits/atomic_base.h:426: undefined reference to `__atomic_load_8'
-
-Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Samples/pull/212]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- CMakeLists.txt | 1 +
- bldsys/cmake/check_atomic.cmake | 62 +++++++++++++++++++++++++++++++++
- framework/CMakeLists.txt | 4 +++
- 3 files changed, 67 insertions(+)
- create mode 100644 bldsys/cmake/check_atomic.cmake
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e72e829..466f51d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -42,6 +42,7 @@ endmacro(vulkan_samples_pch)
- include(utils)
- include(global_options)
- include(sample_helper)
-+include(check_atomic)
-
- # Add third party libraries
- add_subdirectory(third_party)
-diff --git a/bldsys/cmake/check_atomic.cmake b/bldsys/cmake/check_atomic.cmake
-new file mode 100644
-index 0000000..6b47a7a
---- /dev/null
-+++ b/bldsys/cmake/check_atomic.cmake
-@@ -0,0 +1,62 @@
-+# check weither need to link atomic library explicitly
-+INCLUDE(CheckCXXSourceCompiles)
-+INCLUDE(CheckLibraryExists)
-+
-+if(NOT DEFINED VULKAN_COMPILER_IS_GCC_COMPATIBLE)
-+ if(CMAKE_COMPILER_IS_GNUCXX)
-+ set(VULKAN_COMPILER_IS_GCC_COMPATIBLE ON)
-+ elseif( MSVC )
-+ set(VULKAN_COMPILER_IS_GCC_COMPATIBLE OFF)
-+ elseif( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
-+ set(VULKAN_COMPILER_IS_GCC_COMPATIBLE ON)
-+ elseif( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel" )
-+ set(VULKAN_COMPILER_IS_GCC_COMPATIBLE ON)
-+ endif()
-+endif()
-+
-+# Sometimes linking against libatomic is required for atomic ops, if
-+# the platform doesn't support lock-free atomics.
-+
-+function(check_working_cxx_atomics varname)
-+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
-+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
-+ CHECK_CXX_SOURCE_COMPILES("
-+#include <atomic>
-+std::atomic<int> x;
-+std::atomic<short> y;
-+std::atomic<char> z;
-+int main() {
-+ ++z;
-+ ++y;
-+ return ++x;
-+}
-+" ${varname})
-+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
-+endfunction(check_working_cxx_atomics)
-+
-+function(check_working_cxx_atomics64 varname)
-+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
-+ set(CMAKE_REQUIRED_FLAGS "-std=c++11 ${CMAKE_REQUIRED_FLAGS}")
-+ CHECK_CXX_SOURCE_COMPILES("
-+#include <atomic>
-+#include <cstdint>
-+std::atomic<uint64_t> x (0);
-+int main() {
-+ uint64_t i = x.load(std::memory_order_relaxed);
-+ (void)i;
-+ return 0;
-+}
-+" ${varname})
-+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
-+endfunction(check_working_cxx_atomics64)
-+
-+set(NEED_LINK_ATOMIC OFF CACHE BOOL "weither need to link against atomic library")
-+if(VULKAN_COMPILER_IS_GCC_COMPATIBLE)
-+ # check if non-64-bit atomics work without the library.
-+ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
-+ # check 64-bit atomics work without the library.
-+ check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITHOUT_LIB)
-+ if (NOT HAVE_CXX_ATOMICS_WITHOUT_LIB OR NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
-+ set(NEED_LINK_ATOMIC ON CACHE BOOL "weither need to link to atomic library" FORCE)
-+ endif()
-+endif()
-diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt
-index bf26786..322526e 100644
---- a/framework/CMakeLists.txt
-+++ b/framework/CMakeLists.txt
-@@ -412,6 +412,10 @@ target_link_libraries(${PROJECT_NAME}
- ctpl
- docopt)
-
-+if(${NEED_LINK_ATOMIC})
-+ target_link_libraries(${PROJECT_NAME} atomic)
-+endif()
-+
- # Link platform specific libraries
- if(ANDROID)
- target_link_libraries(${PROJECT_NAME} log android native_app_glue)
---
-2.17.1
-