aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/machine/include/meta-intel.inc4
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-CMakLists.txt-fix-build-with-llvm-16.patch74
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_16.0.0.bb20
3 files changed, 96 insertions, 2 deletions
diff --git a/conf/machine/include/meta-intel.inc b/conf/machine/include/meta-intel.inc
index b5115fd7..8c5ab7af 100644
--- a/conf/machine/include/meta-intel.inc
+++ b/conf/machine/include/meta-intel.inc
@@ -21,8 +21,8 @@ PREFERRED_PROVIDER_libva-utils = "libva-intel-utils"
PREFERRED_PROVIDER_libva-utils-native = "libva-intel-utils-native"
PREFERRED_PROVIDER_nativesdk-libva-utils = "nativesdk-libva-intel-utils"
-PREFERRED_VERSION_opencl-clang ?= "${@bb.utils.contains('LLVMVERSION', '14.0.3', '14.0.0', '15.0.0', d)}"
-PREFERRED_VERSION_opencl-clang-native ?= "${@bb.utils.contains('LLVMVERSION', '14.0.3', '14.0.0', '15.0.0', d)}"
+PREFERRED_VERSION_opencl-clang ?= "${@bb.utils.contains('LLVMVERSION', '15.0.6', '15.0.0', '16.0.0', d)}"
+PREFERRED_VERSION_opencl-clang-native ?= "${@bb.utils.contains('LLVMVERSION', '15.0.6', '15.0.0', '16.0.0', d)}"
XSERVER_X86_ASPEED_AST = "xf86-video-ast \
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-CMakLists.txt-fix-build-with-llvm-16.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-CMakLists.txt-fix-build-with-llvm-16.patch
new file mode 100644
index 00000000..656d128b
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-CMakLists.txt-fix-build-with-llvm-16.patch
@@ -0,0 +1,74 @@
+From ac5985491f0db9401bd3ff0d30c2767c73c8b13b Mon Sep 17 00:00:00 2001
+From: Naveen Saini <naveen.kumar.saini@intel.com>
+Date: Thu, 13 Apr 2023 13:58:27 +0800
+Subject: [PATCH] CMakLists.txt: fix build with llvm-16
+
+(1)
+CMake Error at cl_headers/CMakeLists.txt:36 (add_custom_command):
+ Error evaluating generator expression:
+
+ $<TARGET_FILE:clang>
+
+ No target "clang"
+
+(2) Clang, during install uses MAJOR_VERSION only but opencl-clang still searches in
+${MAJOR_VER}.${MINOR_VER}.${PATCH_VER} for it
+
+llvm-project:
+https://github.com/llvm/llvm-project/blob/e2ddb22a00510314e5b7216f313d975d1705cf73/clang/lib/Headers/CMakeLists.txt#L441
+
+opencl-clang:
+https://github.com/intel/opencl-clang/blob/ocl-open-160/cl_headers/CMakeLists.txt#L19
+
+Error:
+| CMake Error in cl_headers/CMakeLists.txt:
+| Cannot find source file:
+|
+| /data/saininav/work/workspace/poky/build/tmp/work/x86_64-linux/opencl-clang-native/16.0.0-r0/recipe-sysroot-native/usr/lib/clang/16.0.1/include/opencl-c.h
+| /data/saininav/work/workspace/poky/build/tmp/work/x86_64-linux/opencl-clang-native/16.0.0-r0/recipe-sysroot-native/usr/lib/clang/16.0.1/include/opencl-c-base.h
+
+(3) Check clang as dependency incorrectly
+
+| NOTE: VERBOSE=1 cmake --build /data/saininav/work/workspace/poky/build/tmp/work/x86_64-linux/opencl-clang-native/16.0.0-r0/build --target all --
+| ninja: error: 'cl_headers/clang', needed by 'cl_headers/opencl-c-12-spir.pcm', missing and no known rule to make it
+| WARNING: exit code 1 from a shell command.
+
+Upstream-status: Inappropriate
+
+Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
+---
+ cl_headers/CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
+index 788adff..2b70ee2 100644
+--- a/cl_headers/CMakeLists.txt
++++ b/cl_headers/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ set(CL_HEADERS_LIB cl_headers)
+-set(CLANG_COMMAND $<TARGET_FILE:clang> )
++set(CLANG_COMMAND clang )
+ if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
+ build_native_tool(clang CLANG_COMMAND)
+ endif()
+@@ -16,7 +16,7 @@ endfunction(copy_file)
+
+ if(USE_PREBUILT_LLVM)
+ set(OPENCL_HEADERS_DIR
+- "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/")
++ "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/include/")
+ else(USE_PREBUILT_LLVM)
+ set(OPENCL_HEADERS_DIR "${CLANG_SOURCE_DIR}/lib/Headers")
+ endif(USE_PREBUILT_LLVM)
+@@ -36,7 +36,7 @@ function(create_pcm DST MODULE HEADER OPTS DEPS)
+ add_custom_command (
+ OUTPUT ${DST}
+ MAIN_DEPENDENCY ${MODMAP}
+- DEPENDS ${HEADER} ${DEPS} ${CLANG_COMMAND}
++ DEPENDS ${HEADER} ${DEPS}
+ COMMAND
+ ${CLANG_COMMAND} -cc1 -x cl
+ -I. -O0 ${OPTS}
+--
+2.37.3
+
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_16.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_16.0.0.bb
new file mode 100644
index 00000000..e1d6d9dd
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_16.0.0.bb
@@ -0,0 +1,20 @@
+require opencl-clang.inc
+
+SRC_URI:append = " file://0001-CMakLists.txt-fix-build-with-llvm-16.patch \
+ "
+SRCREV = "1adc46ef38aeba1585b3587b95b6af692a12e4f4"
+
+BRANCH = "ocl-open-160"
+
+DEPENDS += " spirv-llvm-translator"
+
+EXTRA_OECMAKE += "\
+ -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
+ -DCMAKE_SKIP_RPATH=TRUE \
+ -DPREFERRED_LLVM_VERSION=${LLVMVERSION} \
+ "
+
+do_install:append:class-native() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/
+}