diff options
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-opencl')
19 files changed, 511 insertions, 241 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 @@ | |||
| 1 | From 8c330d0cb5167612296801f0202b0de35e9ca88d Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dongwon Kim <dongwon.kim@intel.com> | ||
| 3 | Date: Sat, 21 Aug 2021 16:09:39 -0700 | ||
| 4 | Subject: [PATCH 2/5] Build not able to locate cpp_generation_tool. | ||
| 5 | |||
| 6 | Upstream-Status: Inappropriate [oe specific] | ||
| 7 | |||
| 8 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
| 9 | Signed-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 | |||
| 14 | Index: 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 @@ | |||
| 1 | From 0006db5f55a9f08bd3452558a53704cd3bbb790f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dongwon Kim <dongwon.kim@intel.com> | ||
| 3 | Date: Wed, 2 Mar 2022 15:52:45 -0800 | ||
| 4 | Subject: [PATCH 3/5] external ocloc | ||
| 5 | |||
| 6 | Upstream-Status: Inappropriate | ||
| 7 | |||
| 8 | Signed-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 | |||
| 13 | Index: 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/dont-use-ld-library-path.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/dont-use-ld-library-path.patch deleted file mode 100644 index 6f7cdff8..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/dont-use-ld-library-path.patch +++ /dev/null | |||
| @@ -1,46 +0,0 @@ | |||
| 1 | From ad3e325c1af4d6533fd9b3dfc5208267b678327a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
| 3 | Date: Thu, 6 Feb 2020 18:25:19 +0800 | ||
| 4 | Subject: [PATCH] don't use LD_LIBRARY_PATH for native offline compiler | ||
| 5 | |||
| 6 | Let us supply the correct path for it to be able to find the correct | ||
| 7 | libraries. | ||
| 8 | |||
| 9 | Upstream-Status: Inappropriate | ||
| 10 | |||
| 11 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
| 12 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
| 13 | --- | ||
| 14 | runtime/built_ins/kernels/CMakeLists.txt | 2 +- | ||
| 15 | runtime/scheduler/scheduler_binary.cmake | 2 +- | ||
| 16 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/runtime/built_ins/kernels/CMakeLists.txt b/runtime/built_ins/kernels/CMakeLists.txt | ||
| 19 | index 863dba145..a385cf768 100644 | ||
| 20 | --- a/runtime/built_ins/kernels/CMakeLists.txt | ||
| 21 | +++ b/runtime/built_ins/kernels/CMakeLists.txt | ||
| 22 | @@ -66,7 +66,7 @@ function(compile_builtin gen_type platform_type builtin bits builtin_options) | ||
| 23 | if(DEFINED NEO__IGC_LIBRARY_PATH) | ||
| 24 | set(cloc_cmd_prefix LD_LIBRARY_PATH=${NEO__IGC_LIBRARY_PATH} $<TARGET_FILE:ocloc>) | ||
| 25 | else() | ||
| 26 | - set(cloc_cmd_prefix LD_LIBRARY_PATH=$<TARGET_FILE_DIR:ocloc> $<TARGET_FILE:ocloc>) | ||
| 27 | + set(cloc_cmd_prefix ocloc) | ||
| 28 | endif() | ||
| 29 | endif() | ||
| 30 | list(APPEND __cloc__options__ "-cl-kernel-arg-info") | ||
| 31 | diff --git a/runtime/scheduler/scheduler_binary.cmake b/runtime/scheduler/scheduler_binary.cmake | ||
| 32 | index a7015b909..a720d2f5c 100644 | ||
| 33 | --- a/runtime/scheduler/scheduler_binary.cmake | ||
| 34 | +++ b/runtime/scheduler/scheduler_binary.cmake | ||
| 35 | @@ -37,7 +37,7 @@ function(compile_kernel target gen_type platform_type kernel) | ||
| 36 | if(DEFINED NEO__IGC_LIBRARY_PATH) | ||
| 37 | set(cloc_cmd_prefix LD_LIBRARY_PATH=${NEO__IGC_LIBRARY_PATH} $<TARGET_FILE:ocloc>) | ||
| 38 | else() | ||
| 39 | - set(cloc_cmd_prefix LD_LIBRARY_PATH=$<TARGET_FILE_DIR:ocloc> $<TARGET_FILE:ocloc>) | ||
| 40 | + set(cloc_cmd_prefix ocloc) | ||
| 41 | endif() | ||
| 42 | endif() | ||
| 43 | list(APPEND __cloc__options__ "-cl-kernel-arg-info") | ||
| 44 | -- | ||
| 45 | 2.17.1 | ||
| 46 | |||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.04.15428.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.04.15428.bb deleted file mode 100644 index f6cfaf19..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.04.15428.bb +++ /dev/null | |||
| @@ -1,43 +0,0 @@ | |||
| 1 | SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)" | ||
| 2 | DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \ | ||
| 3 | is an open source project to converge Intel's development efforts \ | ||
| 4 | on OpenCL(TM) compute stacks supporting the GEN graphics hardware \ | ||
| 5 | architecture." | ||
| 6 | |||
| 7 | LICENSE = "MIT" | ||
| 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ae27f47fd6755510247c19e547e4c804 \ | ||
| 9 | file://third_party/opencl_headers/LICENSE;md5=dcefc90f4c3c689ec0c2489064e7273b" | ||
| 10 | |||
| 11 | SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https \ | ||
| 12 | " | ||
| 13 | |||
| 14 | SRC_URI_append_class-target = " \ | ||
| 15 | file://dont-use-ld-library-path.patch \ | ||
| 16 | " | ||
| 17 | SRCREV = "98006aa2bf282ebc5914359e0e4c5f1c539de56f" | ||
| 18 | |||
| 19 | S = "${WORKDIR}/git" | ||
| 20 | |||
| 21 | DEPENDS += " intel-graphics-compiler gmmlib clang" | ||
| 22 | DEPENDS_append_class-target = " intel-compute-runtime-native" | ||
| 23 | |||
| 24 | RDEPENDS_${PN} += " intel-graphics-compiler gmmlib" | ||
| 25 | |||
| 26 | inherit cmake pkgconfig | ||
| 27 | |||
| 28 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
| 29 | COMPATIBLE_HOST_libc-musl = "null" | ||
| 30 | |||
| 31 | EXTRA_OECMAKE = " \ | ||
| 32 | -DIGC_DIR=${STAGING_INCDIR}/igc \ | ||
| 33 | -DBUILD_TYPE=Release \ | ||
| 34 | -DSKIP_UNIT_TESTS=1 \ | ||
| 35 | -DCCACHE_ALLOWED=FALSE \ | ||
| 36 | " | ||
| 37 | |||
| 38 | FILES_${PN} += "${libdir}/intel-opencl/libigdrcl.so" | ||
| 39 | |||
| 40 | BBCLASSEXTEND = "native nativesdk" | ||
| 41 | |||
| 42 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" | ||
| 43 | EXCLUDE_FROM_WORLD = "1" | ||
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..b13daaa8 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)" | ||
| 2 | DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \ | ||
| 3 | is an open source project to converge Intel's development efforts \ | ||
| 4 | on OpenCL(TM) compute stacks supporting the GEN graphics hardware \ | ||
| 5 | architecture." | ||
| 6 | |||
| 7 | LICENSE = "MIT & Apache-2.0" | ||
| 8 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \ | ||
| 9 | file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
| 10 | |||
| 11 | SRC_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 | |||
| 16 | SRCREV = "a9961bdfaa07250fd52ff930bf8f31fb4e3b7799" | ||
| 17 | |||
| 18 | DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native" | ||
| 19 | |||
| 20 | RDEPENDS:${PN} += " intel-graphics-compiler gmmlib" | ||
| 21 | |||
| 22 | inherit cmake pkgconfig qemu | ||
| 23 | |||
| 24 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
| 25 | COMPATIBLE_HOST:libc-musl = "null" | ||
| 26 | |||
| 27 | EXTRA_OECMAKE = " \ | ||
| 28 | -DIGC_DIR=${STAGING_INCDIR}/igc \ | ||
| 29 | -DBUILD_TYPE=Release \ | ||
| 30 | -DSKIP_UNIT_TESTS=1 \ | ||
| 31 | -DCCACHE_ALLOWED=FALSE \ | ||
| 32 | -DNEO_DISABLE_LD_LLD=ON \ | ||
| 33 | -DNEO_DISABLE_LD_GOLD=ON \ | ||
| 34 | " | ||
| 35 | |||
| 36 | EXTRA_OECMAKE:append:class-target = " \ | ||
| 37 | -Docloc_cmd_prefix=ocloc \ | ||
| 38 | -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ | ||
| 39 | " | ||
| 40 | |||
| 41 | PACKAGECONFIG ??= "" | ||
| 42 | PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero" | ||
| 43 | |||
| 44 | do_configure:prepend:class-target () { | ||
| 45 | # Write out a qemu wrapper that will be used by cmake. | ||
| 46 | 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}')])}" | ||
| 47 | cat > ${WORKDIR}/qemuwrapper << EOF | ||
| 48 | #!/bin/sh | ||
| 49 | $qemu_binary "\$@" | ||
| 50 | EOF | ||
| 51 | chmod +x ${WORKDIR}/qemuwrapper | ||
| 52 | } | ||
| 53 | |||
| 54 | FILES:${PN} += " \ | ||
| 55 | ${libdir}/intel-opencl/libigdrcl.so \ | ||
| 56 | ${libdir}/libocloc.so \ | ||
| 57 | " | ||
| 58 | |||
| 59 | FILES:${PN}-dev = "${includedir}" | ||
| 60 | |||
| 61 | UPSTREAM_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 @@ | |||
| 1 | From 1b98a931c3bf8daccc48cd618335ff35e3d382da Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
| 3 | Date: Tue, 12 Oct 2021 23:46:42 +0800 | ||
| 4 | Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS | ||
| 5 | |||
| 6 | Otherwise 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 | |||
| 10 | We don't need to explicitly make sure opt is built when | ||
| 11 | using prebuilt binaries. | ||
| 12 | |||
| 13 | Upstream-Status: Inappropriate | ||
| 14 | |||
| 15 | Signed-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 | |||
| 20 | Index: 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 @@ | |||
| 1 | From 048512728eea53b3772a3f80ac9743bfc462487e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
| 3 | Date: Thu, 2 Jan 2025 15:59:27 +0530 | ||
| 4 | Subject: [PATCH] Build not able to locate BiFManager-bin | ||
| 5 | |||
| 6 | Upstream-Status: Inappropriate [oe specific] | ||
| 7 | |||
| 8 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
| 9 | --- | ||
| 10 | IGC/BiFModule/CMakeLists.txt | 4 ++-- | ||
| 11 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 12 | |||
| 13 | Index: 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-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 @@ | |||
| 1 | From 251e2854dd206ebf66e5908d3277e4585fe2a63b Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
| 3 | Date: Mon, 9 Jan 2023 11:43:05 +0800 | ||
| 4 | Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers | ||
| 5 | |||
| 6 | We clone the SPIRV headers and tools in a different directory to ensure | ||
| 7 | file path substitutions take place. | ||
| 8 | |||
| 9 | Upstream-Status: Inappropriate | ||
| 10 | |||
| 11 | Signed-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 | |||
| 16 | Index: 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 @@ | |||
| 1 | From 1641dc87b2ed6b6b87b2cef824e4d66da65b0b30 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
| 3 | Date: Thu, 19 May 2022 22:50:09 +0800 | ||
| 4 | Subject: [PATCH] fix tblgen | ||
| 5 | |||
| 6 | Upstream-Status: Inappropriate [OE specific] | ||
| 7 | --- | ||
| 8 | IGC/cmake/igc_llvm.cmake | 2 +- | ||
| 9 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 10 | |||
| 11 | diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake | ||
| 12 | index 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 @@ | |||
| 1 | From 5501fab763aa2b11437fbdb19e07a11157a7d3e6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
| 3 | Date: Thu, 6 Feb 2020 14:56:56 +0800 | ||
| 4 | Subject: [PATCH] skip execution of ElfPackager | ||
| 5 | |||
| 6 | ElfPackager adds the ability to convert llvm bitcode into elf files for | ||
| 7 | easier partitioning. Skip for now until we start building a native | ||
| 8 | version for this. | ||
| 9 | |||
| 10 | Upstream-Status: Inappropriate [configuration specific] | ||
| 11 | |||
| 12 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
| 13 | Signed-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 | |||
| 18 | diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt | ||
| 19 | index 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 | -- | ||
| 42 | 2.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 @@ | |||
| 1 | From ca136c04d4ac60e3febc8ea2b9c4d4736365a424 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Lee Chee Yang <chee.yang.lee@intel.com> | ||
| 3 | Date: Wed, 2 Sep 2020 08:28:35 +0800 | ||
| 4 | Subject: [PATCH] Improve Reproducibility for src package | ||
| 5 | |||
| 6 | Improve reproducibility for intel-graphics-compiler-src package. | ||
| 7 | needs to pass build path as environment variable to the build. | ||
| 8 | this only works on bison 3.7 onward, hence check for bison version | ||
| 9 | before adding the flags. | ||
| 10 | Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream] | ||
| 11 | Signed-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 | |||
| 16 | Index: 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.3151.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.3151.bb deleted file mode 100644 index d4827283..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.3151.bb +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" | ||
| 2 | DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ | ||
| 3 | llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ | ||
| 4 | hardware architecture." | ||
| 5 | |||
| 6 | LICENSE = "MIT & BSD-3-Clause" | ||
| 7 | LIC_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 | |||
| 10 | SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https; \ | ||
| 11 | file://0001-skip-execution-of-ElfPackager.patch \ | ||
| 12 | " | ||
| 13 | |||
| 14 | SRCREV = "ee341708a3d95738e942b6d3c5cd25b1f4b430f1" | ||
| 15 | |||
| 16 | S = "${WORKDIR}/git" | ||
| 17 | |||
| 18 | inherit cmake | ||
| 19 | |||
| 20 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
| 21 | COMPATIBLE_HOST_libc-musl = "null" | ||
| 22 | |||
| 23 | DEPENDS += " flex-native bison-native clang opencl-clang" | ||
| 24 | DEPENDS_append_class-target = " clang-cross-x86_64" | ||
| 25 | |||
| 26 | RDEPENDS_${PN} += "opencl-clang" | ||
| 27 | |||
| 28 | EXTRA_OECMAKE = "-DIGC_PREFERRED_LLVM_VERSION=9.0.0 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3" | ||
| 29 | |||
| 30 | BBCLASSEXTEND = "native nativesdk" | ||
| 31 | |||
| 32 | UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$" | ||
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..f3c19ce1 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" | ||
| 2 | DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ | ||
| 3 | llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ | ||
| 4 | hardware architecture." | ||
| 5 | |||
| 6 | LICENSE = "MIT & Apache-2.0" | ||
| 7 | LIC_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 | |||
| 11 | SRC_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=${BB_GIT_DEFAULT_DESTSUFFIX}/vc-intrinsics;name=vc;nobranch=1 \ | ||
| 13 | git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/SPIRV-Tools;name=spirv-tools;branch=main \ | ||
| 14 | git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/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 | |||
| 21 | SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" | ||
| 22 | |||
| 23 | SRCREV_igc = "83925314d4fc32b017fcbfcd73e0667ba833fb8f" | ||
| 24 | SRCREV_vc = "9d255266e1df8f1dc5d11e1fbb03213acfaa4fc7" | ||
| 25 | SRCREV_spirv-tools = "f289d047f49fb60488301ec62bafab85573668cc" | ||
| 26 | SRCREV_spirv-headers = "0e710677989b4326ac974fd80c5308191ed80965" | ||
| 27 | |||
| 28 | SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers" | ||
| 29 | |||
| 30 | # Used to replace with relative path in reproducibility patch | ||
| 31 | export B | ||
| 32 | |||
| 33 | inherit cmake pkgconfig qemu python3native | ||
| 34 | |||
| 35 | CXXFLAGS:append = " -Wno-error=nonnull" | ||
| 36 | |||
| 37 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
| 38 | COMPATIBLE_HOST:libc-musl = "null" | ||
| 39 | |||
| 40 | DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native \ | ||
| 41 | python3-pyyaml-native \ | ||
| 42 | " | ||
| 43 | |||
| 44 | RDEPENDS:${PN} += "opencl-clang" | ||
| 45 | |||
| 46 | PACKAGECONFIG ??= "vc" | ||
| 47 | PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF," | ||
| 48 | |||
| 49 | EXTRA_OECMAKE = " \ | ||
| 50 | -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ | ||
| 51 | -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \ | ||
| 52 | -DIGC_OPTION__LLVM_MODE=Prebuilds \ | ||
| 53 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | ||
| 54 | -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ | ||
| 55 | -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \ | ||
| 56 | -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ | ||
| 57 | -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ | ||
| 58 | " | ||
| 59 | |||
| 60 | do_configure:prepend:class-target () { | ||
| 61 | # Write out a qemu wrapper that will be used by cmake. | ||
| 62 | qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" | ||
| 63 | cat > ${WORKDIR}/qemuwrapper << EOF | ||
| 64 | #!/bin/sh | ||
| 65 | $qemu_binary "\$@" | ||
| 66 | EOF | ||
| 67 | chmod +x ${WORKDIR}/qemuwrapper | ||
| 68 | } | ||
| 69 | |||
| 70 | |||
| 71 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$" | ||
| 72 | |||
| 73 | FILES:${PN} += " \ | ||
| 74 | ${libdir}/igc2/NOTICES.txt \ | ||
| 75 | " | ||
| 76 | |||
| 77 | # libigc.so contains buildpaths | ||
| 78 | INSANE_SKIP:${PN} += "buildpaths" | ||
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 @@ | |||
| 1 | From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
| 3 | Date: Tue, 1 Aug 2023 11:15:31 +0800 | ||
| 4 | Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot | ||
| 5 | |||
| 6 | Allow clang to be found in target sysroot for target builds and dont try | ||
| 7 | to compile cross binaries, we do that ourselves. | ||
| 8 | |||
| 9 | Upstream-Status: Inappropriate [oe-specific] | ||
| 10 | Signed-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 | |||
| 16 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
| 17 | index 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) | ||
| 35 | diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt | ||
| 36 | index 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 | -- | ||
| 48 | 2.37.3 | ||
| 49 | |||
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 @@ | |||
| 1 | From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Tim Creech <timothy.m.creech@intel.com> | ||
| 3 | Date: Wed, 28 Jun 2023 03:45:51 -0400 | ||
| 4 | Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464) | ||
| 5 | |||
| 6 | * Request native clang only when cross-compiling | ||
| 7 | |||
| 8 | LLVM_USE_HOST_TOOLS may be set if LLVM is configured with | ||
| 9 | LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate | ||
| 10 | cross-compilation or that clang will only execute on the target. | ||
| 11 | |||
| 12 | By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only | ||
| 13 | build/use clang again if necessary for host execution. | ||
| 14 | |||
| 15 | * fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS | ||
| 16 | |||
| 17 | Co-authored-by: Wenju He <wenju.he@intel.com> | ||
| 18 | |||
| 19 | * fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt | ||
| 20 | |||
| 21 | --------- | ||
| 22 | |||
| 23 | Co-authored-by: Wenju He <wenju.he@intel.com> | ||
| 24 | |||
| 25 | Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86] | ||
| 26 | Signed-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 | |||
| 32 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
| 33 | index 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() | ||
| 45 | diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt | ||
| 46 | index 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 | -- | ||
| 59 | 2.37.3 | ||
| 60 | |||
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 @@ | |||
| 1 | From 2ce2619b544678541e0cc56494e2927086718613 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
| 3 | Date: Tue, 26 Mar 2019 14:11:29 +0800 | ||
| 4 | Subject: [PATCH] point to correct llvm-tblgen | ||
| 5 | |||
| 6 | Let llvm-tblgen path be passed from recipe itself. | ||
| 7 | |||
| 8 | Also since we're going to do the patching ourselves, no need to look for | ||
| 9 | git through cmake. | ||
| 10 | |||
| 11 | Upstream-Status: Inappropriate [OE specific] | ||
| 12 | |||
| 13 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
| 14 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
| 15 | --- | ||
| 16 | CMakeLists.txt | 4 ++-- | ||
| 17 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 18 | |||
| 19 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
| 20 | index 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 | -- | ||
| 42 | 2.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 new file mode 100644 index 00000000..943ddf46 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | SUMMARY = "Common clang is a thin wrapper library around clang" | ||
| 2 | DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \ | ||
| 3 | to compile OpenCL C kernels to SPIR-V modules." | ||
| 4 | |||
| 5 | LICENSE = "NCSA" | ||
| 6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" | ||
| 7 | |||
| 8 | SRC_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 | " | ||
| 12 | |||
| 13 | inherit cmake | ||
| 14 | DEPENDS += "clang" | ||
| 15 | DEPENDS:append:class-target = " opencl-clang-native" | ||
| 16 | |||
| 17 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
| 18 | COMPATIBLE_HOST:libc-musl = "null" | ||
| 19 | |||
| 20 | DEPENDS += " spirv-llvm-translator" | ||
| 21 | |||
| 22 | EXTRA_OECMAKE += "\ | ||
| 23 | -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | ||
| 24 | -DCMAKE_SKIP_RPATH=TRUE \ | ||
| 25 | -DPREFERRED_LLVM_VERSION=${LLVMVERSION} \ | ||
| 26 | -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ | ||
| 27 | " | ||
| 28 | |||
| 29 | do_install:append:class-native() { | ||
| 30 | install -d ${D}${bindir} | ||
| 31 | install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/ | ||
| 32 | } | ||
| 33 | |||
| 34 | BBCLASSEXTEND = "native nativesdk" | ||
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 @@ | |||
| 1 | require opencl-clang.inc | ||
| 2 | |||
| 3 | SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd" | ||
| 4 | |||
| 5 | BRANCH = "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 695749cc..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb +++ /dev/null | |||
| @@ -1,34 +0,0 @@ | |||
| 1 | SUMMARY = "Common clang is a thin wrapper library around clang" | ||
| 2 | DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \ | ||
| 3 | to compile OpenCL C kernels to SPIR-V modules." | ||
| 4 | |||
| 5 | LICENSE = "NCSA" | ||
| 6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" | ||
| 7 | |||
| 8 | SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-90;protocol=https \ | ||
| 9 | file://point-to-correct-llvm-tblgen.patch \ | ||
| 10 | " | ||
| 11 | |||
| 12 | SRCREV = "e6049638474112ad26db13eb167a16b2d497b841" | ||
| 13 | |||
| 14 | S = "${WORKDIR}/git" | ||
| 15 | |||
| 16 | inherit cmake | ||
| 17 | DEPENDS += "clang" | ||
| 18 | |||
| 19 | DEPENDS_append_class-target = " opencl-clang-native" | ||
| 20 | |||
| 21 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
| 22 | COMPATIBLE_HOST_libc-musl = "null" | ||
| 23 | |||
| 24 | EXTRA_OECMAKE += "\ | ||
| 25 | -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | ||
| 26 | -DCMAKE_SKIP_RPATH=TRUE \ | ||
| 27 | " | ||
| 28 | |||
| 29 | do_install_append_class-native() { | ||
| 30 | install -d ${D}${bindir} | ||
| 31 | install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/ | ||
| 32 | } | ||
| 33 | |||
| 34 | BBCLASSEXTEND = "native nativesdk" | ||
