diff options
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-opencl')
24 files changed, 457 insertions, 484 deletions
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 index 631e0ce6..265fcfa2 100644 --- 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 @@ -1,44 +1,51 @@ -From 32851d269ac0c027730168c04d9ce32d0eb50905 Mon Sep 17 00:00:00 2001 -From: Naveen Saini <naveen.kumar.saini@intel.com> -Date: Wed, 27 May 2020 11:12:09 +0000 -Subject: [PATCH] intel-compute-runtime: allow to find cpp_generation_tool - -Build not able to locate cpp_generation_tool. +From a6361d635e5f3046853883f3ac06fb175116933c Mon Sep 17 00:00:00 2001 +From: Dongwon Kim <dongwon.kim@intel.com> +Date: Sat, 21 Aug 2021 16:09:39 -0700 +Subject: [PATCH] Build not able to locate cpp_generation_tool. Upstream-Status: Inappropriate [oe specific] + Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> +Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> --- - shared/source/built_ins/kernels/CMakeLists.txt | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) + shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/shared/source/built_ins/kernels/CMakeLists.txt b/shared/source/built_ins/kernels/CMakeLists.txt -index 1b1225077..2e8148c25 100644 +index ed85a37c52..f7c9e79137 100644 --- a/shared/source/built_ins/kernels/CMakeLists.txt +++ b/shared/source/built_ins/kernels/CMakeLists.txt -@@ -93,9 +93,9 @@ function(compile_builtin gen_type platform_type builtin bits builtin_options mod - ) - add_custom_command( - OUTPUT ${OUTPUT_FILE_CPP} -- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --platform ${family_name_with_type} -+ COMMAND cpp_generate_tool --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --platform ${family_name_with_type} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -- DEPENDS ${OUTPUTPATH_BASE}.gen $<TARGET_FILE:cpp_generate_tool> -+ DEPENDS ${OUTPUTPATH_BASE}.gen cpp_generate_tool - ) - endfunction() - -@@ -136,9 +136,9 @@ function(generate_cpp_spirv builtin) - ) - add_custom_command( - OUTPUT ${OUTPUT_FILE_CPP} -- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} -+ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool> -+ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool +@@ -107,9 +107,9 @@ function(compile_builtin core_type platform_it builtin bits builtin_options mode + ) + add_custom_command( + OUTPUT ${OUTPUT_FILE_CPP} +- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME} ++ COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool> ++ DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool + ) + list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}") + else() +@@ -159,9 +159,9 @@ function(generate_cpp_spirv builtin) + ) + add_custom_command( + OUTPUT ${OUTPUT_FILE_CPP} +- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} ++ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool> ++ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool + ) + set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE) + else() +@@ -277,4 +277,4 @@ if(NOT "${OUTPUT_LIST_CPP_FILES}" STREQUAL "") ) - endfunction() + endif() +-apply_macro_for_each_core_type("SUPPORTED") +\ No newline at end of file ++apply_macro_for_each_core_type("SUPPORTED") -- -2.28.0 +2.43.2 diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch new file mode 100644 index 00000000..20d9b847 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch @@ -0,0 +1,16 @@ +Upstream-Status: Inappropriate +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d52e089778..bc0cf35014 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -727,7 +727,7 @@ if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") # Added for gtest + endif() + endif() +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Werror=vla") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=vla") + + if(USE_SANITIZE_UB) + check_cxx_compiler_flag(-fsanitize=undefined COMPILER_SUPPORTS_UNDEFINED_BEHAVIOR_SANITIZER) diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch new file mode 100644 index 00000000..5f93b7b6 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch @@ -0,0 +1,40 @@ +From 1f58c22992ddea4167b01b44448528de427f50d5 Mon Sep 17 00:00:00 2001 +From: Dongwon Kim <dongwon.kim@intel.com> +Date: Wed, 2 Mar 2022 15:52:45 -0800 +Subject: [PATCH] external ocloc + +Upstream-Status: Inappropriate + +Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> +--- + cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/cmake/ocloc_cmd_prefix.cmake b/cmake/ocloc_cmd_prefix.cmake +index 2b44330831..03067c9df0 100644 +--- a/cmake/ocloc_cmd_prefix.cmake ++++ b/cmake/ocloc_cmd_prefix.cmake +@@ -4,12 +4,14 @@ + # SPDX-License-Identifier: MIT + # + +-if(WIN32) +- set(ocloc_cmd_prefix ocloc) +-else() +- if(DEFINED NEO__IGC_LIBRARY_PATH) +- 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>) ++if(NOT DEFINED ocloc_cmd_prefix) ++ if(WIN32) ++ set(ocloc_cmd_prefix ocloc) + else() +- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>) ++ if(DEFINED NEO__IGC_LIBRARY_PATH) ++ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>) ++ else() ++ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>) ++ endif() + endif() + endif() +-- +2.37.3 + diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.46.18421.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.46.18421.bb deleted file mode 100644 index 6c530c2a..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_20.46.18421.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)" -DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \ -is an open source project to converge Intel's development efforts \ -on OpenCL(TM) compute stacks supporting the GEN graphics hardware \ -architecture." - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ae27f47fd6755510247c19e547e4c804 \ - file://third_party/opencl_headers/LICENSE;md5=dcefc90f4c3c689ec0c2489064e7273b" - -SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https \ - " -SRC_URI_append_class-target = " file://allow-to-find-cpp-generation-tool.patch" - -SRCREV = "3f6d1f5ee958f6243d994f564ee29345f7869271" - -S = "${WORKDIR}/git" - -DEPENDS += " intel-graphics-compiler gmmlib clang" -DEPENDS_append_class-target = " intel-compute-runtime-native libva" - -RDEPENDS_${PN} += " intel-graphics-compiler gmmlib" - -inherit cmake pkgconfig - -COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST_libc-musl = "null" - -EXTRA_OECMAKE = " \ - -DIGC_DIR=${STAGING_INCDIR}/igc \ - -DBUILD_TYPE=Release \ - -DSKIP_UNIT_TESTS=1 \ - -DCCACHE_ALLOWED=FALSE \ - " -EXTRA_OECMAKE_append_class-target = " \ - -Dcloc_cmd_prefix=ocloc \ - " - -PACKAGECONFIG ??= "" -PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero" - -do_install_append_class-native() { - install -d ${D}${bindir} - install ${B}/bin/cpp_generate_tool ${D}${bindir}/ -} - -FILES_${PN} += " \ - ${libdir}/intel-opencl/libigdrcl.so \ - ${libdir}/libocloc.so \ - " - -FILES_${PN}-dev = "${includedir}" - -BBCLASSEXTEND = "native nativesdk" - -UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb new file mode 100644 index 00000000..5214d5cf --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb @@ -0,0 +1,64 @@ +SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)" +DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \ +is an open source project to converge Intel's development efforts \ +on OpenCL(TM) compute stacks supporting the GEN graphics hardware \ +architecture." + +LICENSE = "MIT & Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \ + file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/24.13 \ + file://disable-werror.patch \ + file://allow-to-find-cpp-generation-tool.patch \ + file://external-ocloc.patch \ + " + +SRCREV = "7131387cdbb02d480a225c70daef913a6c024a6e" + +S = "${WORKDIR}/git" + +DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native" + +RDEPENDS:${PN} += " intel-graphics-compiler gmmlib" + +inherit cmake pkgconfig qemu + +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:libc-musl = "null" + +EXTRA_OECMAKE = " \ + -DIGC_DIR=${STAGING_INCDIR}/igc \ + -DBUILD_TYPE=Release \ + -DSKIP_UNIT_TESTS=1 \ + -DCCACHE_ALLOWED=FALSE \ + -DNEO_DISABLE_LD_LLD=ON \ + -DNEO_DISABLE_LD_GOLD=ON \ + " + +EXTRA_OECMAKE:append:class-target = " \ + -Docloc_cmd_prefix=ocloc \ + -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ + " + +PACKAGECONFIG ??= "" +PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero" + +do_configure:prepend:class-target () { + # Write out a qemu wrapper that will be used by cmake. + 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}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +FILES:${PN} += " \ + ${libdir}/intel-opencl/libigdrcl.so \ + ${libdir}/libocloc.so \ + " + +FILES:${PN}-dev = "${includedir}" + +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..377081fd --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch @@ -0,0 +1,35 @@ +From 3d71670f8ad5b54d434c2f5f71713bb1d5433ae4 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Tue, 12 Oct 2021 23:46:42 +0800 +Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS + +Otherwise it starts failing with: + +| ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it + +We don't need to explicitly make sure opt is built when +using prebuilt binaries. + +Upstream-Status: Inappropriate + +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> +--- + IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake +index d20d7f887..882e09fea 100644 +--- a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake ++++ b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake +@@ -109,7 +109,7 @@ function(vc_build_bif TARGET RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE) + COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}" + COMMAND CMCLTranslatorTool -o ${BIF_CMCL_BC_NAME} ${BIF_CLANG_BC_NAME_FINAL} + COMMAND ${LLVM_OPT_EXE} ${IGC_LLVM_DEPENDENT_OPT_FLAGS} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME} +- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${BIF_CLANG_BC_PATH_FINAL} ++ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL} + BYPRODUCTS ${BIF_OPT_BC_PATH} + SOURCES ${CMCL_SRC_PATH}) + set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE) +-- +2.43.2 + 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..dca75e22 --- /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,31 @@ +From e69a3181482e5f442756a61c7b683914072884f1 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Mon, 9 Jan 2023 11:43:05 +0800 +Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers + +We clone the SPIRV headers and tools in a different directory to ensure +file path substitutions take place. + +Upstream-Status: Inappropriate + +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +--- + external/SPIRV-Tools/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/external/SPIRV-Tools/CMakeLists.txt b/external/SPIRV-Tools/CMakeLists.txt +index 9afa5746c..7ca24d5dc 100644 +--- a/external/SPIRV-Tools/CMakeLists.txt ++++ b/external/SPIRV-Tools/CMakeLists.txt +@@ -43,8 +43,8 @@ else() #By default use build from sources + message(STATUS "[SPIRV-Tools] : Building from source") + message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}") + +- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory +- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools") ++ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory ++ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools") + + set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build") + 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..39443931 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch @@ -0,0 +1,24 @@ +From 5648568e597acd0fed82aac3e6aef0f95a1b78d1 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Thu, 19 May 2022 22:50:09 +0800 +Subject: [PATCH] fix tblgen + +Upstream-Status: Inappropriate [OE specific] + +--- + IGC/cmake/igc_llvm.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake +index 10322533c..9020cb3c8 100644 +--- a/IGC/cmake/igc_llvm.cmake ++++ b/IGC/cmake/igc_llvm.cmake +@@ -52,7 +52,7 @@ else() + set(LLVM_OPT_EXE "opt" CACHE STRING "") + + set(LLVM_TABLEGEN_EXE "llvm-tblgen") +- if(CMAKE_CROSSCOMPILING) ++ if(TRUE) + if(DEFINED LLVM_TABLEGEN) + set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN}) + 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 @@ -From 5501fab763aa2b11437fbdb19e07a11157a7d3e6 Mon Sep 17 00:00:00 2001 -From: Naveen Saini <naveen.kumar.saini@intel.com> -Date: Thu, 6 Feb 2020 14:56:56 +0800 -Subject: [PATCH] skip execution of ElfPackager - -ElfPackager adds the ability to convert llvm bitcode into elf files for -easier partitioning. Skip for now until we start building a native -version for this. - -Upstream-Status: Inappropriate [configuration specific] - -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> -Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> ---- - IGC/ElfPackager/CMakeLists.txt | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt -index 563ac9d6..c6c74ce9 100644 ---- a/IGC/ElfPackager/CMakeLists.txt -+++ b/IGC/ElfPackager/CMakeLists.txt -@@ -71,12 +71,12 @@ include_directories ( - ${IGC_SOURCE_DIR}/AdaptorOCL/CLElfLib/ - ) - --if(NOT ANDROID) -- add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager} -- POST_BUILD -- 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 -- ) --endif() -+#if(NOT ANDROID) -+# add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager} -+# POST_BUILD -+# 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 -+# ) -+#endif() - - - add_dependencies("${IGC_BUILD__PROJ__ElfPackager}" "${IGC_BUILD__PROJ__BiFModule_OCL}") --- -2.17.1 - diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/improve_src_package_reproducibility.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch index c694836f..650130a8 100644 --- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/improve_src_package_reproducibility.patch +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch @@ -1,4 +1,4 @@ -From 2fa3f2da1179bd5b2eeac82839d386f0111e611c Mon Sep 17 00:00:00 2001 +From 0559332abd04b6c8bc70171d201f43d2e4735336 Mon Sep 17 00:00:00 2001 From: Lee Chee Yang <chee.yang.lee@intel.com> Date: Wed, 2 Sep 2020 08:28:35 +0800 Subject: [PATCH] Improve Reproducibility for src package @@ -9,15 +9,16 @@ this only works on bison 3.7 onward, hence check for bison version before adding the flags. Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream] Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> + --- visa/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt -index 981c35d2..d5944370 100644 +index 6be467587..930c386a6 100644 --- a/visa/CMakeLists.txt +++ b/visa/CMakeLists.txt -@@ -109,8 +109,11 @@ endif() +@@ -123,8 +123,11 @@ endif() set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp) set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp) @@ -31,6 +32,3 @@ index 981c35d2..d5944370 100644 ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser) set(CISAScanner_dependencies) --- -2.28.0 - diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/link-to-LLVMGenXIntrinsics.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/link-to-LLVMGenXIntrinsics.patch deleted file mode 100644 index 89a28097..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/link-to-LLVMGenXIntrinsics.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 483154871f72590b81c036b000be09627376b5a9 Mon Sep 17 00:00:00 2001 -From: Naveen Saini <naveen.kumar.saini@intel.com> -Date: Thu, 27 Aug 2020 12:17:12 +0800 -Subject: [PATCH] IGC/VectorCompiler/CMakeLists.txt: link to external - LLVMGenXIntrinsics - -By default LLVMGenXIntrinsics is to be build In-tree, but we want to -link externally. - -Fix llvm-tblgen path. - -Upstream-Status: Inappropriate [configuration specific] - -Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> ---- - IGC/VectorCompiler/CMakeLists.txt | 23 ++--------------------- - 1 file changed, 2 insertions(+), 21 deletions(-) - -diff --git a/IGC/VectorCompiler/CMakeLists.txt b/IGC/VectorCompiler/CMakeLists.txt -index 3592e0b4..ae754b8b 100644 ---- a/IGC/VectorCompiler/CMakeLists.txt -+++ b/IGC/VectorCompiler/CMakeLists.txt -@@ -50,10 +50,7 @@ if(IGC_BUILD__USING_SYSTEM_LLVM OR (WIN32 AND LLVM_USE_PREBUILT)) - message(STATUS "[VC] Using system llvm") - - # Need to search for llvm-tblgen -- find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" -- ${LLVM_TOOLS_BINARY_DIR} -- NO_DEFAULT_PATH -- ) -+ find_program(LLVM_TABLEGEN_EXE "llvm-tblgen") - if(LLVM_TABLEGEN_EXE-NOTFOUND) - message(FATAL_ERROR "[VC] llvm-tblgen is not found") - endif() -@@ -131,23 +128,7 @@ if(LLVM_ON_WIN32) - add_compile_options(/wd4624) - endif() - --if(DEFINED VC_INTRINSICS_SRC) -- set(INTRSRC "${VC_INTRINSICS_SRC}/GenXIntrinsics") --endif() -- --if(NOT DEFINED INTRSRC) -- set(INTRSRC "${CMAKE_CURRENT_SOURCE_DIR}/../../../vc-intrinsics/GenXIntrinsics") --endif() -- --message(STATUS "[VC] Using vc-intrinsics source from: ${INTRSRC}") -- --# We are using prebuilt SPIRV and building intrinsics. --set(INTRBUILD "${CMAKE_CURRENT_BINARY_DIR}/intrbuild") -- -- --# Do not copy anything from prebuilts. libSPIRVDLL.so will be dynamically loaded at runtime. --add_subdirectory(${INTRSRC} ${INTRBUILD}) --include_directories(${INTRSRC}/include ${INTRBUILD}/include) -+find_package(LLVMGenXIntrinsics REQUIRED) - - include(cmake/spirv.cmake) - include(${IGC_SOURCE_DIR}/cmake/utils.cmake) --- -2.17.1 - diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb new file mode 100644 index 00000000..24eb97bd --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb @@ -0,0 +1,75 @@ +SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" +DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ +llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ +hardware architecture." + +LICENSE = "MIT & Apache-2.0" +LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \ + file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \ + file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880" + +SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.16510 \ + git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \ + git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/SPIRV-Tools;name=spirv-tools;branch=main \ + git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \ + file://0003-Improve-Reproducibility-for-src-package.patch \ + file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \ + file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \ + " + +SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" + +SRCREV_igc = "c2495d45f37fadd963ad22eb0cc1a8235a306775" +SRCREV_vc = "f9c34404d0ea9abad83875a10bd48d88cea90ebd" +SRCREV_spirv-tools = "f0cc85efdbbe3a46eae90e0f915dc1509836d0fc" +SRCREV_spirv-headers = "1c6bb2743599e6eb6f37b2969acc0aef812e32e3" + +SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers" + +# Used to replace with relative path in reproducibility patch +export B + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig qemu python3native + +CXXFLAGS:append = " -Wno-error=nonnull" + +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:libc-musl = "null" + +DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native" + +RDEPENDS:${PN} += "opencl-clang" + +PACKAGECONFIG ??= "vc" +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," + +EXTRA_OECMAKE = " \ + -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ + -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \ + -DIGC_OPTION__LLVM_MODE=Prebuilds \ + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ + -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ + -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \ + -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ + " + +do_configure:prepend:class-target () { + # Write out a qemu wrapper that will be used by cmake. + qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$" + +FILES:${PN} += " \ + ${libdir}/igc/NOTICES.txt \ + " + +# libigc.so contains buildpaths +INSANE_SKIP:${PN} += "buildpaths" diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.5435.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.5435.bb deleted file mode 100644 index 502200fa..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.5435.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" -DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ -llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ -hardware architecture." - -LICENSE = "MIT & BSD-3-Clause" -LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \ - file://IGC/Compiler/LegalizationPass.cpp;beginline=1;endline=25;md5=4abf1738ff96b18e34186eb763e28eeb \ - file://NOTICES.txt;md5=b12e73994de4fbe0f688cf0bc91512a0" - -SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https; \ - file://0001-skip-execution-of-ElfPackager.patch \ - file://link-to-LLVMGenXIntrinsics.patch \ - file://improve_src_package_reproducibility.patch \ - " - -SRCREV = "93f02a7dfa37d879abc2ff5d62fd1e527fa4b03a" - -# Used to replace with relative path in reproducibility patch -export B - -S = "${WORKDIR}/git" - -inherit cmake - -COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST_libc-musl = "null" - -DEPENDS += " flex-native bison-native clang opencl-clang vc-intrinsics" -DEPENDS_append_class-target = " clang-cross-x86_64" - -RDEPENDS_${PN} += "opencl-clang" - -LLVM_COMPAT_VERSION = "${@bb.utils.contains('LLVMVERSION', '10.0.1', '10.0.0', '11.0.0', d)}" -EXTRA_OECMAKE = "-DIGC_PREFERRED_LLVM_VERSION=${LLVM_COMPAT_VERSION} -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 -DINSTALL_SPIRVDLL=0 -DIGC_BUILD__VC_ENABLED=OFF" - -# VectorCompiler doesn't build with LLVM11 as of this release. -# Re-enable after those issues have been fixed. -EXTRA_OECMAKE_append = " ${@bb.utils.contains('LLVMVERSION', '11.0.0', "-DIGC_BUILD__VC_ENABLED=OFF", "", d)}" - -BBCLASSEXTEND = "native nativesdk" - -UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$" - -FILES_${PN} += " \ - ${libdir}/igc/NOTICES.txt \ - " 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 @@ -From 7fc05c52dd91902fa324a7aac9b90715cfca4717 Mon Sep 17 00:00:00 2001 -From: Naveen Saini <naveen.kumar.saini@intel.com> -Date: Wed, 15 Apr 2020 17:55:32 +0800 -Subject: [PATCH] Building in-tree with LLVM 10.0 with the LLVM_LINK_LLVM_DYLIB - -Failed to link with the LLVMSPIRVLib library. - -Add an explicit dependency to force the correct build order and linking. - -Reference: -https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/a6d4ccf082858e63e139ca06c02a071c343d2657 - -Upstream-Status: Submitted [https://github.com/intel/opencl-clang/pull/118] - -Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 51c140d..b8b514e 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -208,7 +208,7 @@ link_directories( - - set(OPENCL_CLANG_LINK_LIBS ${CMAKE_DL_LIBS}) - --if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS) -+if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS OR (USE_PREBUILT_LLVM AND LLVM_LINK_LLVM_DYLIB)) - # SPIRV-LLVM-Translator is not included into LLVM as a component. - # So, we need to list it here explicitly as an external library - list(APPEND OPENCL_CLANG_LINK_LIBS LLVMSPIRVLib) --- -2.17.1 - 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 @@ +From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Tue, 1 Aug 2023 11:15:31 +0800 +Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot + +Allow clang to be found in target sysroot for target builds and dont try +to compile cross binaries, we do that ourselves. + +Upstream-Status: Inappropriate [oe-specific] +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> +--- + CMakeLists.txt | 8 ++++---- + cl_headers/CMakeLists.txt | 2 +- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5864009..60ba39e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -35,10 +35,10 @@ set(CMAKE_MODULE_PATH + + include(CMakeFunctions) + +-if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL) +- include(CrossCompile) +- llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release) +-endif() ++#if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL) ++# include(CrossCompile) ++# llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release) ++#endif() + + if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + set(USE_PREBUILT_LLVM ON) +diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt +index 16cabb7..4423536 100644 +--- a/cl_headers/CMakeLists.txt ++++ b/cl_headers/CMakeLists.txt +@@ -1,6 +1,6 @@ + set(CL_HEADERS_LIB cl_headers) + if(USE_PREBUILT_LLVM) +- find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) ++ find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR}) + else() + set(CLANG_COMMAND $<TARGET_FILE:clang>) + endif() +-- +2.37.3 + 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 @@ -From f3ef79a6301bab0b3a447f07ceb94c39a95009df Mon Sep 17 00:00:00 2001 -From: Anuj Mittal <anuj.mittal@intel.com> -Date: Thu, 2 Apr 2020 08:59:20 +0800 -Subject: [PATCH] don't redefine LLVM_TABLEGEN_EXE - -Use the value that has been passed by the user. - -Upstream-Status: Submitted -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - CMakeLists.txt | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6893e97..941b0ae 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -137,7 +137,10 @@ endif(NOT USE_PREBUILT_LLVM) - set (COMPILE_OPTIONS_TD opencl_clang_options.td) - set (COMPILE_OPTIONS_INC opencl_clang_options.inc) - --set(LLVM_TABLEGEN_EXE "llvm-tblgen") -+if(NOT DEFINED LLVM_TABLEGEN_EXE) -+ set(LLVM_TABLEGEN_EXE "llvm-tblgen") -+endif() -+ - set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD}) - if(USE_PREBUILT_LLVM) - set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS}) --- -2.25.1 - 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 @@ +From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001 +From: Tim Creech <timothy.m.creech@intel.com> +Date: Wed, 28 Jun 2023 03:45:51 -0400 +Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464) + +* Request native clang only when cross-compiling + +LLVM_USE_HOST_TOOLS may be set if LLVM is configured with +LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate +cross-compilation or that clang will only execute on the target. + +By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only +build/use clang again if necessary for host execution. + +* fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS + +Co-authored-by: Wenju He <wenju.he@intel.com> + +* fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt + +--------- + +Co-authored-by: Wenju He <wenju.he@intel.com> + +Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86] +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> +--- + CMakeLists.txt | 2 +- + cl_headers/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e772de9..5864009 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -35,7 +35,7 @@ set(CMAKE_MODULE_PATH + + include(CMakeFunctions) + +-if(LLVM_USE_HOST_TOOLS AND OPENCL_CLANG_BUILD_EXTERNAL) ++if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL) + include(CrossCompile) + llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release) + endif() +diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt +index 18296c2..16cabb7 100644 +--- a/cl_headers/CMakeLists.txt ++++ b/cl_headers/CMakeLists.txt +@@ -4,7 +4,7 @@ if(USE_PREBUILT_LLVM) + else() + set(CLANG_COMMAND $<TARGET_FILE:clang>) + endif() +-if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL) ++if(CMAKE_CROSSCOMPILING AND NOT OPENCL_CLANG_BUILD_EXTERNAL) + build_native_tool(clang CLANG_COMMAND) + endif() + +-- +2.37.3 + 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 @@ -From b29e00e6fe428a031cf577dfb703cf13eff837f6 Mon Sep 17 00:00:00 2001 -From: Naveen Saini <naveen.kumar.saini@intel.com> -Date: Wed, 15 Apr 2020 18:05:14 +0800 -Subject: [PATCH 2/2] make sure only static libraries linked for native build - -LINK_COMPONENTS=all isn't working for static libs for out of tree builds. Use -LLVM_AVAILABLE_LIBS instead. Reported: - -https://github.com/intel/opencl-clang/issues/114 - -Upstream-Status: Pending - -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> -Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> ---- - CMakeLists.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8707487..ad2dbda 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -218,7 +218,7 @@ add_subdirectory(cl_headers) - - set(LLVM_REQUIRES_EH ON) - --if(USE_PREBUILT_LLVM OR CLANG_LINK_CLANG_DYLIB) -+if(false) - list(APPEND OPENCL_CLANG_LINK_LIBS clang-cpp) - else() - list(APPEND OPENCL_CLANG_LINK_LIBS -@@ -266,6 +266,7 @@ add_llvm_library(${TARGET_NAME} SHARED - all - LINK_LIBS - ${OPENCL_CLANG_LINK_LIBS} -+ ${LLVM_AVAILABLE_LIBS} - ) - - # Configure resource file on Windows --- -2.17.1 - diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_11.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc index 57b56d73..31a3fb21 100644 --- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_11.0.0.bb +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc @@ -5,30 +5,30 @@ DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \ LICENSE = "NCSA" LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" -SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-110;protocol=https \ - file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \ +SRC_URI = "git://github.com/intel/opencl-clang.git;branch=${BRANCH};protocol=https \ + file://0002-Request-native-clang-only-when-cross-compiling-464.patch \ + file://0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch \ " -SRC_URI_append_class-native = " file://0002-make-sure-only-static-libraries-linked-for-native-bu.patch" - -SRCREV = "7a88e28f00b1479fa5809ce4cf8388938c0d7495" - S = "${WORKDIR}/git" inherit cmake DEPENDS += "clang" -DEPENDS_append_class-target = " opencl-clang-native" +DEPENDS:append:class-target = " opencl-clang-native" COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST_libc-musl = "null" +COMPATIBLE_HOST:libc-musl = "null" + +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() { +do_install:append:class-native() { install -d ${D}${bindir} - install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/ + install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/ } BBCLASSEXTEND = "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 c5ba96c1..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Common clang is a thin wrapper library around clang" -DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \ - to compile OpenCL C kernels to SPIR-V modules." - -LICENSE = "NCSA" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" - -SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-100;protocol=https \ - file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \ - file://0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch \ - " -SRC_URI_append_class-native = " file://0002-make-sure-only-static-libraries-linked-for-native-bu.patch" - -SRCREV = "92f3f7f1a06f25fb13708f87c26b0fbf50924c96" - -S = "${WORKDIR}/git" - -inherit cmake -DEPENDS += "clang" -DEPENDS_append_class-target = " opencl-clang-native" - -COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST_libc-musl = "null" - -EXTRA_OECMAKE += "\ - -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ - -DCMAKE_SKIP_RPATH=TRUE \ - " - -do_install_append_class-native() { - install -d ${D}${bindir} - install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/ -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb new file mode 100644 index 00000000..7e56af75 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb @@ -0,0 +1,5 @@ +require opencl-clang.inc + +SRCREV = "980f1691c5babcf824ee10375a04a0d0c5d7d44a" + +BRANCH = "ocl-open-140" 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 @@ +require opencl-clang.inc + +SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd" + +BRANCH = "ocl-open-150" diff --git a/dynamic-layers/clang-layer/recipes-opencl/vc-intrinsics/vc-intrinsics/0001-Use-standard-installation-directory-variables.patch b/dynamic-layers/clang-layer/recipes-opencl/vc-intrinsics/vc-intrinsics/0001-Use-standard-installation-directory-variables.patch deleted file mode 100644 index 35469a1c..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/vc-intrinsics/vc-intrinsics/0001-Use-standard-installation-directory-variables.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 33f60fe2c64272cf1472aa541bcb491a62f81ca5 Mon Sep 17 00:00:00 2001 -From: Naveen Saini <naveen.kumar.saini@intel.com> -Date: Mon, 26 Oct 2020 16:24:09 +0800 -Subject: [PATCH] Use standard installation directory variables - -Upstream-Status: Submitted [https://github.com/intel/vc-intrinsics/pull/35] - -Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> ---- - GenXIntrinsics/CMakeLists.txt | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/GenXIntrinsics/CMakeLists.txt b/GenXIntrinsics/CMakeLists.txt -index c59c589..5bcf0d1 100644 ---- a/GenXIntrinsics/CMakeLists.txt -+++ b/GenXIntrinsics/CMakeLists.txt -@@ -33,7 +33,7 @@ endif() - # this option is to switch on install when we are building not inside IGC - if(INSTALL_REQUIRED) - install(DIRECTORY include/llvm -- DESTINATION include -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT genx-intrinsics-headers - FILES_MATCHING - PATTERN "*.h" -@@ -43,7 +43,7 @@ if(INSTALL_REQUIRED) - # and then "install(DIRECTORY" installs them even if they are empty - # so generated file has to be installed separetely - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/llvm/GenXIntrinsics/${GENX_INTRINSICS_DESCRIPTION} -- DESTINATION include/llvm/GenXIntrinsics -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm/GenXIntrinsics - COMPONENT genx-intrinsics-headers - ) - -@@ -52,15 +52,15 @@ if(INSTALL_REQUIRED) - # we need to limit it to external build - if(BUILD_EXTERNAL) - install(TARGETS LLVMGenXIntrinsics EXPORT LLVMGenXIntrinsicsTargets -- LIBRARY DESTINATION lib -- ARCHIVE DESTINATION lib -- RUNTIME DESTINATION bin -- INCLUDES DESTINATION include -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) - - install(EXPORT LLVMGenXIntrinsicsTargets - FILE LLVMGenXIntrinsicsConfig.cmake -- DESTINATION lib/cmake/LLVMGenXIntrinsics -+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LLVMGenXIntrinsics - ) - endif() # BUILD_EXTERNAL - endif() # INSTALL_REQUIRED --- -2.17.1 - diff --git a/dynamic-layers/clang-layer/recipes-opencl/vc-intrinsics/vc-intrinsics_1.0.bb b/dynamic-layers/clang-layer/recipes-opencl/vc-intrinsics/vc-intrinsics_1.0.bb deleted file mode 100644 index 39bf5803..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/vc-intrinsics/vc-intrinsics_1.0.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "VC Intrinsics" -DESCRIPTION = "VC Intrinsics project contains a set of new intrinsics on \ -top of core LLVM IR instructions that represent SIMD semantics of a program \ -targeting GPU" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://License.md;md5=c18ea6bb4786a26bf4eee88a7424a408" - -SRC_URI = "git://github.com/intel/vc-intrinsics.git;protocol=https; \ - file://0001-Use-standard-installation-directory-variables.patch \ - " - -SRCREV = "c8c52b5fb14b33e32de9df573b7de186a0c97c94" - -S = "${WORKDIR}/git" - -inherit cmake - -COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST_libc-musl = "null" - -DEPENDS += " clang" - -EXTRA_OECMAKE = "-DLLVM_DIR=${STAGING_LIBDIR}" - -BBCLASSEXTEND = "native nativesdk" |