ispc: fix recipe

There are few problems in current recipe:

(1)
ispc needs to invoke native llvm-config from target sysroot to list LLVM
lib libraries. clang already provides crossscripts/llvm-config, which does
the job.

However, using LLVM_TOOLS_BINARY_DIR leads to wrong llvm-config being
used. So remove it from search path for llvm-config.

(2)
Error:
ispc/1.19.0-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-ld:
ispc/1.19.0-r0/recipe-sysroot-native/usr/lib/libclang-cpp.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
error: linker command failed with exit code 1 (use -v to see invocation)

Native libraries were being linked to target libraries leading to this
failure. Fix and cleanup DEPENDS/RDEPENDS.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Naveen Saini 2023-05-12 18:12:08 +08:00 committed by Anuj Mittal
parent 2752b2e20f
commit edf80dea79
2 changed files with 44 additions and 3 deletions

View File

@ -0,0 +1,37 @@
From 51d248d3b470f3fa1cf2ed3f5742851091acb65f Mon Sep 17 00:00:00 2001
From: Naveen Saini <naveen.kumar.saini@intel.com>
Date: Fri, 12 May 2023 09:10:11 +0800
Subject: [PATCH] CMakeLists.txt: allow to pick llvm-config from
usr/bin/crossscripts/
ispc needs to invoke native llvm-config from target sysroot to list LLVM
lib libraries. clang already provides crossscripts/llvm-config, which does
the job.
However, using LLVM_TOOLS_BINARY_DIR leads to wrong llvm-config being
used. So remove it from search path for llvm-config.
Upstream-Status: Inappropriate
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
cmake/FindLLVM.cmake | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/cmake/FindLLVM.cmake b/cmake/FindLLVM.cmake
index d0297d5d..90d9fed2 100644
--- a/cmake/FindLLVM.cmake
+++ b/cmake/FindLLVM.cmake
@@ -41,8 +41,7 @@ find_package(LLVM REQUIRED CONFIG)
set(LLVM_VERSION "LLVM_${LLVM_VERSION_MAJOR}_${LLVM_VERSION_MINOR}")
message(STATUS "Found LLVM ${LLVM_VERSION}")
-find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config
- PATHS ${LLVM_TOOLS_BINARY_DIR} PATH_SUFFIXES bin NO_DEFAULT_PATH)
+find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config)
if (NOT LLVM_CONFIG_EXECUTABLE)
message(FATAL_ERROR "Failed to find llvm-config")
endif()
--
2.37.3

View File

@ -16,6 +16,7 @@ SRC_URI = "git://github.com/ispc/ispc.git;protocol=https;branch=main \
file://0002-cmake-don-t-build-for-32-bit-targets.patch \
file://0001-Fix-QA-Issues.patch \
file://0001-Add-print-function-to-print-test-run-status-in-ptest.patch \
file://0001-CMakeLists.txt-allow-to-pick-llvm-config-from-usr-bi.patch \
file://run-ptest \
"
@ -24,7 +25,7 @@ SRCREV = "ee43967286215a0511c2bc090e604848b4a32bed"
COMPATIBLE_HOST = '(x86_64).*-linux'
DEPENDS += " clang-native bison-native flex-native"
RDEPENDS:${PN} += " clang-libllvm clang clang-libclang-cpp"
DEPENDS:append:class-target = " clang"
RDEPENDS:${PN}-ptest += " python3-multiprocessing"
YFLAGS='-d -t -v -y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}'
@ -54,7 +55,10 @@ EXTRA_OECMAKE += " \
-DISPC_WINDOWS_TARGET=OFF \
-DISPC_IOS_TARGET=OFF \
-DISPC_PS4_TARGET=OFF \
-DSYSROOT_DIR=${STAGING_DIR_NATIVE} \
-DSYSROOT_DIR=${STAGING_DIR} \
-DCLANG_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang \
-DCLANGPP_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang++ \
-DLLVM_DIS_EXECUTABLE=${STAGING_BINDIR_NATIVE}/llvm-dis \
-DLLVM_AS_EXECUTABLE=${STAGING_BINDIR_NATIVE}/llvm-as \
"
BBCLASSEXTEND = "native nativesdk"