diff options
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-opencl/opencl-clang')
7 files changed, 124 insertions, 120 deletions
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_10.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc index c5ba96c1..31a3fb21 100644 --- 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.inc @@ -5,31 +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-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 = "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 = "92f3f7f1a06f25fb13708f87c26b0fbf50924c96" - 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_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" |