diff options
Diffstat (limited to 'poky/meta/recipes-graphics/vulkan/vulkan-samples')
2 files changed, 146 insertions, 0 deletions
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-CMakeLists.txt-do-not-hardcode-lib-as-installation-t.patch b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-CMakeLists.txt-do-not-hardcode-lib-as-installation-t.patch new file mode 100644 index 000000000..90fe277a4 --- /dev/null +++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-CMakeLists.txt-do-not-hardcode-lib-as-installation-t.patch @@ -0,0 +1,29 @@ +From 5fb216d35b6846074196e80421f3162df3b9c8cd Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Sun, 1 Nov 2020 23:19:22 +0000 +Subject: [PATCH] CMakeLists.txt: do not hardcode 'lib' as installation target + +Upstream-Status: Inappropriate [already fixed in newer versions] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e00f8c77..f9896eed 100644 +--- a/third_party/spirv-cross/CMakeLists.txt ++++ b/third_party/spirv-cross/CMakeLists.txt +@@ -67,8 +67,8 @@ macro(spirv_cross_add_library name config_name) + install(TARGETS ${name} + EXPORT ${config_name}Config + RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION include/spirv_cross) + install(FILES ${hdrs} DESTINATION include/spirv_cross) + install(EXPORT ${config_name}Config DESTINATION share/${config_name}/cmake) +-- +2.17.1 + diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch new file mode 100644 index 000000000..6c0fb6086 --- /dev/null +++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-support-link-against-libatomic-if-no-built-in-atomic.patch @@ -0,0 +1,117 @@ +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 + |