summaryrefslogtreecommitdiffstats
path: root/dynamic-layers/clang-layer/recipes-opencl
diff options
context:
space:
mode:
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-opencl')
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch41
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch38
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch32
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.24.17065.bb53
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb63
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch32
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch27
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-add-workaround-for-gcc-10-error.patch39
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch30
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch23
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch43
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch33
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.4154.bb40
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb79
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch35
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch49
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch32
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch60
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-make-sure-only-static-libraries-linked-for-native-bu.patch42
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch43
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc15
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb9
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb5
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb7
24 files changed, 491 insertions, 379 deletions
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch
new file mode 100644
index 00000000..45288ce1
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch
@@ -0,0 +1,41 @@
1From 8c330d0cb5167612296801f0202b0de35e9ca88d Mon Sep 17 00:00:00 2001
2From: Dongwon Kim <dongwon.kim@intel.com>
3Date: Sat, 21 Aug 2021 16:09:39 -0700
4Subject: [PATCH 2/5] Build not able to locate cpp_generation_tool.
5
6Upstream-Status: Inappropriate [oe specific]
7
8Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
9Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
10---
11 shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++-----
12 1 file changed, 5 insertions(+), 5 deletions(-)
13
14Index: git/shared/source/built_ins/kernels/CMakeLists.txt
15===================================================================
16--- git.orig/shared/source/built_ins/kernels/CMakeLists.txt
17+++ git/shared/source/built_ins/kernels/CMakeLists.txt
18@@ -122,9 +122,9 @@ function(compile_builtin core_type platf
19 endif()
20 add_custom_command(
21 OUTPUT ${OUTPUT_FILE_CPP}
22- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
23+ COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
24 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
25- DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool>
26+ DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool
27 )
28 list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}")
29 else()
30@@ -176,9 +176,9 @@ function(generate_cpp_spirv builtin)
31 endif()
32 add_custom_command(
33 OUTPUT ${OUTPUT_FILE_CPP}
34- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
35+ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
36 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
37- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool>
38+ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool
39 )
40 set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE)
41 else()
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch
new file mode 100644
index 00000000..2001d839
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch
@@ -0,0 +1,38 @@
1From 0006db5f55a9f08bd3452558a53704cd3bbb790f Mon Sep 17 00:00:00 2001
2From: Dongwon Kim <dongwon.kim@intel.com>
3Date: Wed, 2 Mar 2022 15:52:45 -0800
4Subject: [PATCH 3/5] external ocloc
5
6Upstream-Status: Inappropriate
7
8Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
9---
10 cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------
11 1 file changed, 8 insertions(+), 6 deletions(-)
12
13Index: git/cmake/ocloc_cmd_prefix.cmake
14===================================================================
15--- git.orig/cmake/ocloc_cmd_prefix.cmake
16+++ git/cmake/ocloc_cmd_prefix.cmake
17@@ -4,13 +4,15 @@
18 # SPDX-License-Identifier: MIT
19 #
20
21-if(WIN32)
22- set(ocloc_cmd_prefix ocloc)
23-else()
24- if(DEFINED NEO__IGC_LIBRARY_PATH)
25- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
26+if(NOT DEFINED ocloc_cmd_prefix)
27+ if(WIN32)
28+ set(ocloc_cmd_prefix ocloc)
29 else()
30- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
31+ if(DEFINED NEO__IGC_LIBRARY_PATH)
32+ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
33+ else()
34+ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
35+ endif()
36 endif()
37 endif()
38
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch
deleted file mode 100644
index eae129c7..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From d6c5bf050f3d50ca02866ec90e474ef540df2ffa Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 27 May 2020 11:12:09 +0000
4Subject: [PATCH] intel-compute-runtime: allow to find cpp_generation_tool
5
6Build not able to locate cpp_generation_tool.
7
8Upstream-Status: Inappropriate [oe specific]
9Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
10---
11 shared/source/built_ins/kernels/CMakeLists.txt | 4 ++--
12 1 file changed, 2 insertions(+), 2 deletions(-)
13
14diff --git a/shared/source/built_ins/kernels/CMakeLists.txt b/shared/source/built_ins/kernels/CMakeLists.txt
15index 308a6cb3b..9f34359c3 100644
16--- a/shared/source/built_ins/kernels/CMakeLists.txt
17+++ b/shared/source/built_ins/kernels/CMakeLists.txt
18@@ -84,9 +84,9 @@ function(compile_builtin gen_type platform_type builtin bits builtin_options)
19 )
20 add_custom_command(
21 OUTPUT ${OUTPUT_FILE_CPP}
22- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${BASENAME} --platform ${family_name_with_type}
23+ COMMAND cpp_generate_tool --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${BASENAME} --platform ${family_name_with_type}
24 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
25- DEPENDS ${OUTPUTPATH_BASE}.gen $<TARGET_FILE:cpp_generate_tool>
26+ DEPENDS ${OUTPUTPATH_BASE}.gen cpp_generate_tool
27 )
28 endfunction()
29
30--
312.24.1
32
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.24.17065.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.24.17065.bb
deleted file mode 100644
index 22fbf031..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.24.17065.bb
+++ /dev/null
@@ -1,53 +0,0 @@
1SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
3is an open source project to converge Intel's development efforts \
4on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
5architecture."
6
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=ae27f47fd6755510247c19e547e4c804 \
9 file://third_party/opencl_headers/LICENSE;md5=dcefc90f4c3c689ec0c2489064e7273b"
10
11SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https \
12 "
13SRC_URI_append_class-target = " file://allow-to-find-cpp-generation-tool.patch"
14
15SRCREV = "22076663e44135e6b7a83ad3ccd76d8a100a78ed"
16
17S = "${WORKDIR}/git"
18
19DEPENDS += " intel-graphics-compiler gmmlib clang"
20DEPENDS_append_class-target = " intel-compute-runtime-native"
21
22RDEPENDS_${PN} += " intel-graphics-compiler gmmlib"
23
24inherit cmake pkgconfig
25
26COMPATIBLE_HOST = '(x86_64).*-linux'
27COMPATIBLE_HOST_libc-musl = "null"
28
29EXTRA_OECMAKE = " \
30 -DIGC_DIR=${STAGING_INCDIR}/igc \
31 -DBUILD_TYPE=Release \
32 -DSKIP_UNIT_TESTS=1 \
33 -DCCACHE_ALLOWED=FALSE \
34 "
35EXTRA_OECMAKE_append_class-target = " \
36 -Dcloc_cmd_prefix=ocloc \
37 "
38do_install_append_class-native() {
39 install -d ${D}${bindir}
40 install ${B}/bin/cpp_generate_tool ${D}${bindir}/
41}
42
43SOLIBS = ".so"
44FILES_SOLIBSDEV = ""
45
46FILES_${PN} += " \
47 ${libdir}/intel-opencl/libigdrcl.so \
48 ${libdir}/libocloc.so \
49 "
50
51BBCLASSEXTEND = "native nativesdk"
52
53UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb
new file mode 100644
index 00000000..635e8c2f
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb
@@ -0,0 +1,63 @@
1SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
3is an open source project to converge Intel's development efforts \
4on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
5architecture."
6
7LICENSE = "MIT & Apache-2.0"
8LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \
9 file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
10
11SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/25.13 \
12 file://0002-Build-not-able-to-locate-cpp_generation_tool.patch \
13 file://0003-external-ocloc.patch \
14 "
15
16SRCREV = "a9961bdfaa07250fd52ff930bf8f31fb4e3b7799"
17
18S = "${WORKDIR}/git"
19
20DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native"
21
22RDEPENDS:${PN} += " intel-graphics-compiler gmmlib"
23
24inherit cmake pkgconfig qemu
25
26COMPATIBLE_HOST = '(x86_64).*-linux'
27COMPATIBLE_HOST:libc-musl = "null"
28
29EXTRA_OECMAKE = " \
30 -DIGC_DIR=${STAGING_INCDIR}/igc \
31 -DBUILD_TYPE=Release \
32 -DSKIP_UNIT_TESTS=1 \
33 -DCCACHE_ALLOWED=FALSE \
34 -DNEO_DISABLE_LD_LLD=ON \
35 -DNEO_DISABLE_LD_GOLD=ON \
36 "
37
38EXTRA_OECMAKE:append:class-target = " \
39 -Docloc_cmd_prefix=ocloc \
40 -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
41 "
42
43PACKAGECONFIG ??= ""
44PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero"
45
46do_configure:prepend:class-target () {
47 # Write out a qemu wrapper that will be used by cmake.
48 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${B}/bin'),d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
49 cat > ${WORKDIR}/qemuwrapper << EOF
50#!/bin/sh
51$qemu_binary "\$@"
52EOF
53 chmod +x ${WORKDIR}/qemuwrapper
54}
55
56FILES:${PN} += " \
57 ${libdir}/intel-opencl/libigdrcl.so \
58 ${libdir}/libocloc.so \
59 "
60
61FILES:${PN}-dev = "${includedir}"
62
63UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
new file mode 100644
index 00000000..456a8c65
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
@@ -0,0 +1,32 @@
1From 1b98a931c3bf8daccc48cd618335ff35e3d382da Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 12 Oct 2021 23:46:42 +0800
4Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS
5
6Otherwise it starts failing with:
7
8| ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it
9
10We don't need to explicitly make sure opt is built when
11using prebuilt binaries.
12
13Upstream-Status: Inappropriate
14
15Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
16---
17 IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20Index: git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
21===================================================================
22--- git.orig/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
23+++ git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
24@@ -121,7 +121,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_
25 COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}"
26 COMMAND CMCLTranslatorTool ${OPT_OPAQUE_ARG} -o ${BIF_CMCL_BC_PATH} ${BIF_CLANG_BC_PATH_FINAL}
27 COMMAND ${LLVM_OPT_EXE} ${OPT_OPAQUE_ARG} --O2 -o ${BIF_OPT_BC_PATH} ${BIF_CMCL_BC_PATH}
28- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${OPT_BC_DEPENDS})
29+ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL})
30
31 add_custom_target(${TARGET_NAME}
32 DEPENDS ${BIF_OPT_BC_PATH}
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch
new file mode 100644
index 00000000..87b094aa
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch
@@ -0,0 +1,27 @@
1From 048512728eea53b3772a3f80ac9743bfc462487e Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Thu, 2 Jan 2025 15:59:27 +0530
4Subject: [PATCH] Build not able to locate BiFManager-bin
5
6Upstream-Status: Inappropriate [oe specific]
7
8Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
9---
10 IGC/BiFModule/CMakeLists.txt | 4 ++--
11 1 file changed, 2 insertions(+), 2 deletions(-)
12
13Index: git/IGC/BiFModule/CMakeLists.txt
14===================================================================
15--- git.orig/IGC/BiFModule/CMakeLists.txt
16+++ git/IGC/BiFModule/CMakeLists.txt
17@@ -655,8 +655,8 @@ set(IGC_BUILD__PROJ__BiFModuleCache_OCL
18
19 add_custom_command(
20 OUTPUT "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc"
21- COMMAND $<TARGET_FILE:BiFManager-bin> "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h"
22- DEPENDS "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc"$<TARGET_FILE:BiFManager-bin>
23+ COMMAND BiFManager-bin "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h"
24+ DEPENDS "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" BiFManager-bin
25 COMMENT "BiF: ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc: Spliting output .bc."
26 COMMAND_EXPAND_LISTS
27 )
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-add-workaround-for-gcc-10-error.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-add-workaround-for-gcc-10-error.patch
deleted file mode 100644
index ae8ccbf2..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-add-workaround-for-gcc-10-error.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 8435bfb432282bdb900492f479233d2772f57f7c Mon Sep 17 00:00:00 2001
2From: 8tab <tab.debugteam@gmail.com>
3Date: Thu, 21 May 2020 14:21:58 +0200
4Subject: [PATCH] Add workaround for gcc 10 internal compiler error
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9There is a regression in recent gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95241),
10that make IGC fail to compile:
11In file included from /home/tab/dev/external/oneapi/igc/visa/iga/IGALibrary/Models/Models.cpp:7:
12/home/tab/dev/external/oneapi/igc/visa/iga/IGALibrary/Models/bxml/Model7P5.hpp:1258:34: in ‘constexpr’ expansion of ‘iga::Field(((const char*)"MathFC"), 24, 4)’
13/home/tab/dev/external/oneapi/igc/visa/iga/IGALibrary/Models/bxml/Model7P5.hpp:2085:5: internal compiler error: in tree_to_uhwi, at tree.h:4519
14 2085 | };
15 | ^
16
17Upstream-Status: Submitted [https://github.com/intel/intel-graphics-compiler/pull/135]
18Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
19---
20 visa/iga/IGALibrary/Backend/Native/Field.hpp | 2 +-
21 1 file changed, 1 insertion(+), 1 deletion(-)
22
23diff --git a/visa/iga/IGALibrary/Backend/Native/Field.hpp b/visa/iga/IGALibrary/Backend/Native/Field.hpp
24index 4b97280b..04855576 100644
25--- a/visa/iga/IGALibrary/Backend/Native/Field.hpp
26+++ b/visa/iga/IGALibrary/Backend/Native/Field.hpp
27@@ -150,8 +150,8 @@ namespace iga
28 // a simple encoded field (single contiguous)
29 constexpr Field(const char *_name, int offset, int length)
30 : name(_name)
31- , fragments{Fragment(_name, offset, length)}
32 {
33+ fragments[0] = Fragment(_name, offset, length);
34 }
35 // a zero fill field or must-be-zero field
36 constexpr Field(const char *_name, int length,
37--
382.17.1
39
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch
new file mode 100644
index 00000000..fc66b71d
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch
@@ -0,0 +1,30 @@
1From 251e2854dd206ebf66e5908d3277e4585fe2a63b Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Mon, 9 Jan 2023 11:43:05 +0800
4Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers
5
6We clone the SPIRV headers and tools in a different directory to ensure
7file path substitutions take place.
8
9Upstream-Status: Inappropriate
10
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12---
13 external/SPIRV-Tools/CMakeLists.txt | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16Index: git/external/SPIRV-Tools/CMakeLists.txt
17===================================================================
18--- git.orig/external/SPIRV-Tools/CMakeLists.txt
19+++ git/external/SPIRV-Tools/CMakeLists.txt
20@@ -45,8 +45,8 @@ else() #By default use build from source
21 message(STATUS "[SPIRV-Tools] : Building from source")
22 message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
23
24- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory
25- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools")
26+ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory
27+ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools")
28
29 set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build")
30 set(IGC_BUILD__SPIRV-Headers_DIR "${SPIRV-Headers_SOURCE_DIR}")
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
new file mode 100644
index 00000000..3d9ae02f
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
@@ -0,0 +1,23 @@
1From 1641dc87b2ed6b6b87b2cef824e4d66da65b0b30 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Thu, 19 May 2022 22:50:09 +0800
4Subject: [PATCH] fix tblgen
5
6Upstream-Status: Inappropriate [OE specific]
7---
8 IGC/cmake/igc_llvm.cmake | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
12index b708cc904..fe4668890 100644
13--- a/IGC/cmake/igc_llvm.cmake
14+++ b/IGC/cmake/igc_llvm.cmake
15@@ -53,7 +53,7 @@ else()
16 set(LLVM_OPT_EXE "opt" CACHE STRING "")
17
18 set(LLVM_TABLEGEN_EXE "llvm-tblgen")
19- if(CMAKE_CROSSCOMPILING)
20+ if(TRUE)
21 if(DEFINED LLVM_TABLEGEN)
22 set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN})
23 else()
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch
deleted file mode 100644
index 65342d9c..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From 5501fab763aa2b11437fbdb19e07a11157a7d3e6 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Thu, 6 Feb 2020 14:56:56 +0800
4Subject: [PATCH] skip execution of ElfPackager
5
6ElfPackager adds the ability to convert llvm bitcode into elf files for
7easier partitioning. Skip for now until we start building a native
8version for this.
9
10Upstream-Status: Inappropriate [configuration specific]
11
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
14---
15 IGC/ElfPackager/CMakeLists.txt | 12 ++++++------
16 1 file changed, 6 insertions(+), 6 deletions(-)
17
18diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt
19index 563ac9d6..c6c74ce9 100644
20--- a/IGC/ElfPackager/CMakeLists.txt
21+++ b/IGC/ElfPackager/CMakeLists.txt
22@@ -71,12 +71,12 @@ include_directories (
23 ${IGC_SOURCE_DIR}/AdaptorOCL/CLElfLib/
24 )
25
26-if(NOT ANDROID)
27- add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
28- POST_BUILD
29- COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin
30- )
31-endif()
32+#if(NOT ANDROID)
33+# add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
34+# POST_BUILD
35+# COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin
36+# )
37+#endif()
38
39
40 add_dependencies("${IGC_BUILD__PROJ__ElfPackager}" "${IGC_BUILD__PROJ__BiFModule_OCL}")
41--
422.17.1
43
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
new file mode 100644
index 00000000..4269fadf
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
@@ -0,0 +1,33 @@
1From ca136c04d4ac60e3febc8ea2b9c4d4736365a424 Mon Sep 17 00:00:00 2001
2From: Lee Chee Yang <chee.yang.lee@intel.com>
3Date: Wed, 2 Sep 2020 08:28:35 +0800
4Subject: [PATCH] Improve Reproducibility for src package
5
6Improve reproducibility for intel-graphics-compiler-src package.
7needs to pass build path as environment variable to the build.
8this only works on bison 3.7 onward, hence check for bison version
9before adding the flags.
10Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream]
11Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
12---
13 visa/CMakeLists.txt | 7 +++++--
14 1 file changed, 5 insertions(+), 2 deletions(-)
15
16Index: git/visa/CMakeLists.txt
17===================================================================
18--- git.orig/visa/CMakeLists.txt
19+++ git/visa/CMakeLists.txt
20@@ -135,8 +135,11 @@ endif()
21 set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp)
22 set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp)
23
24-BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-vt -p CISA")
25-FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}")
26+if(BISON_VERSION VERSION_GREATER_EQUAL "3.7.0")
27+ set(BISON_EXTRA_FLAGS " --file-prefix-map=$ENV{B}=/igc/ ")
28+endif()
29+BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-l -vt -p CISA ${BISON_EXTRA_FLAGS} ")
30+FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA -L ${WIN_FLEX_FLAG} ")
31 ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
32 set(CISAScanner_dependencies)
33
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.4154.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.4154.bb
deleted file mode 100644
index 7083ab94..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.4154.bb
+++ /dev/null
@@ -1,40 +0,0 @@
1SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
3llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
4hardware architecture."
5
6LICENSE = "MIT & BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
8 file://IGC/Compiler/LegalizationPass.cpp;beginline=1;endline=25;md5=4abf1738ff96b18e34186eb763e28eeb \
9 file://NOTICES.txt;md5=a43460284ff9e81adceffa047c306eef"
10
11SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https; \
12 file://0001-skip-execution-of-ElfPackager.patch \
13 file://0001-add-workaround-for-gcc-10-error.patch \
14 "
15
16SRCREV = "173eb2a0f5d0a16f4abc07bbd093056bf0c04ae5"
17
18S = "${WORKDIR}/git"
19
20inherit cmake
21
22COMPATIBLE_HOST = '(x86_64).*-linux'
23COMPATIBLE_HOST_libc-musl = "null"
24
25DEPENDS += " flex-native bison-native clang opencl-clang"
26DEPENDS_append_class-target = " clang-cross-x86_64"
27
28RDEPENDS_${PN} += "opencl-clang"
29
30LLVM_COMPAT_VER = "${@bb.utils.contains('LLVMVERSION', '9.0.1', '9.0.0', '10.0.0', d)}"
31
32EXTRA_OECMAKE = "-DIGC_PREFERRED_LLVM_VERSION=${LLVM_COMPAT_VER} -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3"
33
34BBCLASSEXTEND = "native nativesdk"
35
36UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$"
37
38FILES_${PN} += " \
39 ${libdir}/igc/NOTICES.txt \
40 "
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb
new file mode 100644
index 00000000..b6d8ddeb
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb
@@ -0,0 +1,79 @@
1SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
3llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
4hardware architecture."
5
6LICENSE = "MIT & Apache-2.0"
7LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
8 file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \
9 file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880"
10
11SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/2.10.x \
12 git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \
13 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/SPIRV-Tools;name=spirv-tools;branch=main \
14 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \
15 file://0003-Improve-Reproducibility-for-src-package.patch \
16 file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \
17 file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \
18 file://0001-Build-not-able-to-locate-BiFManager-bin.patch \
19 "
20
21SRC_URI:append:class-native = " file://0001-fix-tblgen.patch"
22
23SRCREV_igc = "83925314d4fc32b017fcbfcd73e0667ba833fb8f"
24SRCREV_vc = "9d255266e1df8f1dc5d11e1fbb03213acfaa4fc7"
25SRCREV_spirv-tools = "f289d047f49fb60488301ec62bafab85573668cc"
26SRCREV_spirv-headers = "0e710677989b4326ac974fd80c5308191ed80965"
27
28SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers"
29
30# Used to replace with relative path in reproducibility patch
31export B
32
33S = "${WORKDIR}/git"
34
35inherit cmake pkgconfig qemu python3native
36
37CXXFLAGS:append = " -Wno-error=nonnull"
38
39COMPATIBLE_HOST = '(x86_64).*-linux'
40COMPATIBLE_HOST:libc-musl = "null"
41
42DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native \
43 python3-pyyaml-native \
44 "
45
46RDEPENDS:${PN} += "opencl-clang"
47
48PACKAGECONFIG ??= "vc"
49PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF,"
50
51EXTRA_OECMAKE = " \
52 -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \
53 -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \
54 -DIGC_OPTION__LLVM_MODE=Prebuilds \
55 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
56 -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \
57 -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \
58 -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
59 "
60
61do_configure:prepend:class-target () {
62 # Write out a qemu wrapper that will be used by cmake.
63 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
64 cat > ${WORKDIR}/qemuwrapper << EOF
65#!/bin/sh
66$qemu_binary "\$@"
67EOF
68 chmod +x ${WORKDIR}/qemuwrapper
69}
70
71
72UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
73
74FILES:${PN} += " \
75 ${libdir}/igc2/NOTICES.txt \
76 "
77
78# libigc.so contains buildpaths
79INSANE_SKIP:${PN} += "buildpaths"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch
deleted file mode 100644
index 8ffa853b..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 7fc05c52dd91902fa324a7aac9b90715cfca4717 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 15 Apr 2020 17:55:32 +0800
4Subject: [PATCH] Building in-tree with LLVM 10.0 with the LLVM_LINK_LLVM_DYLIB
5
6Failed to link with the LLVMSPIRVLib library.
7
8Add an explicit dependency to force the correct build order and linking.
9
10Reference:
11https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/a6d4ccf082858e63e139ca06c02a071c343d2657
12
13Upstream-Status: Submitted [https://github.com/intel/opencl-clang/pull/118]
14
15Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
16---
17 CMakeLists.txt | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/CMakeLists.txt b/CMakeLists.txt
21index 51c140d..b8b514e 100644
22--- a/CMakeLists.txt
23+++ b/CMakeLists.txt
24@@ -208,7 +208,7 @@ link_directories(
25
26 set(OPENCL_CLANG_LINK_LIBS ${CMAKE_DL_LIBS})
27
28-if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS)
29+if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS OR (USE_PREBUILT_LLVM AND LLVM_LINK_LLVM_DYLIB))
30 # SPIRV-LLVM-Translator is not included into LLVM as a component.
31 # So, we need to list it here explicitly as an external library
32 list(APPEND OPENCL_CLANG_LINK_LIBS LLVMSPIRVLib)
33--
342.17.1
35
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch
new file mode 100644
index 00000000..031a77c7
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch
@@ -0,0 +1,49 @@
1From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 1 Aug 2023 11:15:31 +0800
4Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot
5
6Allow clang to be found in target sysroot for target builds and dont try
7to compile cross binaries, we do that ourselves.
8
9Upstream-Status: Inappropriate [oe-specific]
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11---
12 CMakeLists.txt | 8 ++++----
13 cl_headers/CMakeLists.txt | 2 +-
14 2 files changed, 5 insertions(+), 5 deletions(-)
15
16diff --git a/CMakeLists.txt b/CMakeLists.txt
17index 5864009..60ba39e 100644
18--- a/CMakeLists.txt
19+++ b/CMakeLists.txt
20@@ -35,10 +35,10 @@ set(CMAKE_MODULE_PATH
21
22 include(CMakeFunctions)
23
24-if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
25- include(CrossCompile)
26- llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
27-endif()
28+#if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
29+# include(CrossCompile)
30+# llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
31+#endif()
32
33 if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
34 set(USE_PREBUILT_LLVM ON)
35diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
36index 16cabb7..4423536 100644
37--- a/cl_headers/CMakeLists.txt
38+++ b/cl_headers/CMakeLists.txt
39@@ -1,6 +1,6 @@
40 set(CL_HEADERS_LIB cl_headers)
41 if(USE_PREBUILT_LLVM)
42- find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
43+ find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR})
44 else()
45 set(CLANG_COMMAND $<TARGET_FILE:clang>)
46 endif()
47--
482.37.3
49
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch
deleted file mode 100644
index 8df7e3ab..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From f3ef79a6301bab0b3a447f07ceb94c39a95009df Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Thu, 2 Apr 2020 08:59:20 +0800
4Subject: [PATCH] don't redefine LLVM_TABLEGEN_EXE
5
6Use the value that has been passed by the user.
7
8Upstream-Status: Submitted
9Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
10---
11 CMakeLists.txt | 5 ++++-
12 1 file changed, 4 insertions(+), 1 deletion(-)
13
14diff --git a/CMakeLists.txt b/CMakeLists.txt
15index 6893e97..941b0ae 100644
16--- a/CMakeLists.txt
17+++ b/CMakeLists.txt
18@@ -137,7 +137,10 @@ endif(NOT USE_PREBUILT_LLVM)
19 set (COMPILE_OPTIONS_TD opencl_clang_options.td)
20 set (COMPILE_OPTIONS_INC opencl_clang_options.inc)
21
22-set(LLVM_TABLEGEN_EXE "llvm-tblgen")
23+if(NOT DEFINED LLVM_TABLEGEN_EXE)
24+ set(LLVM_TABLEGEN_EXE "llvm-tblgen")
25+endif()
26+
27 set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD})
28 if(USE_PREBUILT_LLVM)
29 set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS})
30--
312.25.1
32
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch
new file mode 100644
index 00000000..2f1814f8
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch
@@ -0,0 +1,60 @@
1From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001
2From: Tim Creech <timothy.m.creech@intel.com>
3Date: Wed, 28 Jun 2023 03:45:51 -0400
4Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464)
5
6* Request native clang only when cross-compiling
7
8LLVM_USE_HOST_TOOLS may be set if LLVM is configured with
9LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate
10cross-compilation or that clang will only execute on the target.
11
12By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only
13build/use clang again if necessary for host execution.
14
15* fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS
16
17Co-authored-by: Wenju He <wenju.he@intel.com>
18
19* fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt
20
21---------
22
23Co-authored-by: Wenju He <wenju.he@intel.com>
24
25Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86]
26Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
27---
28 CMakeLists.txt | 2 +-
29 cl_headers/CMakeLists.txt | 2 +-
30 2 files changed, 2 insertions(+), 2 deletions(-)
31
32diff --git a/CMakeLists.txt b/CMakeLists.txt
33index e772de9..5864009 100644
34--- a/CMakeLists.txt
35+++ b/CMakeLists.txt
36@@ -35,7 +35,7 @@ set(CMAKE_MODULE_PATH
37
38 include(CMakeFunctions)
39
40-if(LLVM_USE_HOST_TOOLS AND OPENCL_CLANG_BUILD_EXTERNAL)
41+if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
42 include(CrossCompile)
43 llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
44 endif()
45diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
46index 18296c2..16cabb7 100644
47--- a/cl_headers/CMakeLists.txt
48+++ b/cl_headers/CMakeLists.txt
49@@ -4,7 +4,7 @@ if(USE_PREBUILT_LLVM)
50 else()
51 set(CLANG_COMMAND $<TARGET_FILE:clang>)
52 endif()
53-if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
54+if(CMAKE_CROSSCOMPILING AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
55 build_native_tool(clang CLANG_COMMAND)
56 endif()
57
58--
592.37.3
60
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-make-sure-only-static-libraries-linked-for-native-bu.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-make-sure-only-static-libraries-linked-for-native-bu.patch
deleted file mode 100644
index 473f4d24..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-make-sure-only-static-libraries-linked-for-native-bu.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From b29e00e6fe428a031cf577dfb703cf13eff837f6 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 15 Apr 2020 18:05:14 +0800
4Subject: [PATCH 2/2] make sure only static libraries linked for native build
5
6LINK_COMPONENTS=all isn't working for static libs for out of tree builds. Use
7LLVM_AVAILABLE_LIBS instead. Reported:
8
9https://github.com/intel/opencl-clang/issues/114
10
11Upstream-Status: Pending
12
13Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
14Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
15---
16 CMakeLists.txt | 3 ++-
17 1 file changed, 2 insertions(+), 1 deletion(-)
18
19diff --git a/CMakeLists.txt b/CMakeLists.txt
20index 8707487..ad2dbda 100644
21--- a/CMakeLists.txt
22+++ b/CMakeLists.txt
23@@ -218,7 +218,7 @@ add_subdirectory(cl_headers)
24
25 set(LLVM_REQUIRES_EH ON)
26
27-if(USE_PREBUILT_LLVM OR CLANG_LINK_CLANG_DYLIB)
28+if(false)
29 list(APPEND OPENCL_CLANG_LINK_LIBS clang-cpp)
30 else()
31 list(APPEND OPENCL_CLANG_LINK_LIBS
32@@ -266,6 +266,7 @@ add_llvm_library(${TARGET_NAME} SHARED
33 all
34 LINK_LIBS
35 ${OPENCL_CLANG_LINK_LIBS}
36+ ${LLVM_AVAILABLE_LIBS}
37 )
38
39 # Configure resource file on Windows
40--
412.17.1
42
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch
deleted file mode 100644
index 417e0221..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1From 2ce2619b544678541e0cc56494e2927086718613 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 26 Mar 2019 14:11:29 +0800
4Subject: [PATCH] point to correct llvm-tblgen
5
6Let llvm-tblgen path be passed from recipe itself.
7
8Also since we're going to do the patching ourselves, no need to look for
9git through cmake.
10
11Upstream-Status: Inappropriate [OE specific]
12
13Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
14Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
15---
16 CMakeLists.txt | 4 ++--
17 1 file changed, 2 insertions(+), 2 deletions(-)
18
19diff --git a/CMakeLists.txt b/CMakeLists.txt
20index 1371a67..f83ffcc 100644
21--- a/CMakeLists.txt
22+++ b/CMakeLists.txt
23@@ -53,7 +53,7 @@ endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
24 include(AddLLVM)
25 include(TableGen)
26
27-find_package(Git REQUIRED)
28+#find_package(Git REQUIRED)
29
30 if (NOT WIN32)
31 add_subdirectory( linux_linker )
32@@ -138,7 +138,7 @@ endif(NOT USE_PREBUILT_LLVM)
33 set (COMPILE_OPTIONS_TD opencl_clang_options.td)
34 set (COMPILE_OPTIONS_INC opencl_clang_options.inc)
35
36-set(LLVM_TABLEGEN_EXE "llvm-tblgen")
37+#set(LLVM_TABLEGEN_EXE "llvm-tblgen")
38 set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD})
39 if(USE_PREBUILT_LLVM)
40 set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS})
41--
422.17.1
43
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
index c099a509..31a3fb21 100644
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
@@ -5,23 +5,30 @@ DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
5LICENSE = "NCSA" 5LICENSE = "NCSA"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" 6LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
7 7
8SRC_URI = "git://github.com/intel/opencl-clang.git;branch=${BRANCH};protocol=https \
9 file://0002-Request-native-clang-only-when-cross-compiling-464.patch \
10 file://0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch \
11 "
8S = "${WORKDIR}/git" 12S = "${WORKDIR}/git"
9 13
10inherit cmake 14inherit cmake
11DEPENDS += "clang" 15DEPENDS += "clang"
12DEPENDS_append_class-target = " opencl-clang-native" 16DEPENDS:append:class-target = " opencl-clang-native"
13 17
14COMPATIBLE_HOST = '(x86_64).*-linux' 18COMPATIBLE_HOST = '(x86_64).*-linux'
15COMPATIBLE_HOST_libc-musl = "null" 19COMPATIBLE_HOST:libc-musl = "null"
20
21DEPENDS += " spirv-llvm-translator"
16 22
17EXTRA_OECMAKE += "\ 23EXTRA_OECMAKE += "\
18 -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ 24 -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
19 -DCMAKE_SKIP_RPATH=TRUE \ 25 -DCMAKE_SKIP_RPATH=TRUE \
26 -DPREFERRED_LLVM_VERSION=${LLVMVERSION} \
20 " 27 "
21 28
22do_install_append_class-native() { 29do_install:append:class-native() {
23 install -d ${D}${bindir} 30 install -d ${D}${bindir}
24 install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/ 31 install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/
25} 32}
26 33
27BBCLASSEXTEND = "native nativesdk" 34BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb
deleted file mode 100644
index c2b7d74a..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
1require opencl-clang.inc
2
3SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-100;protocol=https \
4 file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \
5 file://0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch \
6 "
7SRC_URI_append_class-native = " file://0002-make-sure-only-static-libraries-linked-for-native-bu.patch"
8
9SRCREV = "92f3f7f1a06f25fb13708f87c26b0fbf50924c96"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb
new file mode 100644
index 00000000..e946c31c
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb
@@ -0,0 +1,5 @@
1require opencl-clang.inc
2
3SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd"
4
5BRANCH = "ocl-open-150"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb
deleted file mode 100644
index f262a5eb..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
1require opencl-clang.inc
2
3SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-90;protocol=https \
4 file://point-to-correct-llvm-tblgen.patch \
5 "
6
7SRCREV = "6f8c329bea44321aef1a1716dd206c1f7bed23cf"