From cd258cb76f4e51b982d00cea112a1c8a1ddaccab Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Tue, 17 Mar 2020 14:01:38 +0800 Subject: opencl-clang: upgrade 9.0.0 -> 10.0.0 Use a submitted patch instead to point to correct llvm-tblgen and include a fix to really link with all libs when LLVM libs are built statically. Signed-off-by: Anuj Mittal --- .../0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch | 32 ++++++++++++++++ .../opencl-clang/files/link-with-all-libs.patch | 32 ++++++++++++++++ .../files/point-to-correct-llvm-tblgen.patch | 43 ---------------------- .../opencl-clang/opencl-clang_10.0.0.bb | 34 +++++++++++++++++ .../opencl-clang/opencl-clang_9.0.0.bb | 34 ----------------- 5 files changed, 98 insertions(+), 77 deletions(-) create mode 100644 dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch create mode 100644 dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/link-with-all-libs.patch delete mode 100644 dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch create mode 100644 dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb delete mode 100644 dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb 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 new file mode 100644 index 00000000..8df7e3ab --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch @@ -0,0 +1,32 @@ +From f3ef79a6301bab0b3a447f07ceb94c39a95009df Mon Sep 17 00:00:00 2001 +From: Anuj Mittal +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 +--- + 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/link-with-all-libs.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/link-with-all-libs.patch new file mode 100644 index 00000000..bd6c9676 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/link-with-all-libs.patch @@ -0,0 +1,32 @@ +From cc0769fb72561f82976e40c5b7ea8bf07069c87a Mon Sep 17 00:00:00 2001 +From: Anuj Mittal +Date: Thu, 19 Mar 2020 16:30:07 +0800 +Subject: [PATCH] link to all libs + +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 +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4590a11..2ff9901 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -261,6 +261,7 @@ add_llvm_library(${TARGET_NAME} SHARED + clangLex + clangBasic + ${ADDITIONAL_LIBS} ++ ${LLVM_AVAILABLE_LIBS} + ) + + # Configure resource file on Windows +-- +2.25.1 + 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 @@ -From 2ce2619b544678541e0cc56494e2927086718613 Mon Sep 17 00:00:00 2001 -From: Anuj Mittal -Date: Tue, 26 Mar 2019 14:11:29 +0800 -Subject: [PATCH] point to correct llvm-tblgen - -Let llvm-tblgen path be passed from recipe itself. - -Also since we're going to do the patching ourselves, no need to look for -git through cmake. - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Anuj Mittal -Signed-off-by: Naveen Saini ---- - CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1371a67..f83ffcc 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -53,7 +53,7 @@ endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - include(AddLLVM) - include(TableGen) - --find_package(Git REQUIRED) -+#find_package(Git REQUIRED) - - if (NOT WIN32) - add_subdirectory( linux_linker ) -@@ -138,7 +138,7 @@ 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") -+#set(LLVM_TABLEGEN_EXE "llvm-tblgen") - set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD}) - if(USE_PREBUILT_LLVM) - set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS}) --- -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_10.0.0.bb new file mode 100644 index 00000000..cc897c64 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_10.0.0.bb @@ -0,0 +1,34 @@ +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://link-with-all-libs.patch \ + " + +SRCREV = "0a5a9f67b56431ef7b9436d1af812df6dfb44975" + +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_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 @@ -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-90;protocol=https \ - file://point-to-correct-llvm-tblgen.patch \ - " - -SRCREV = "e6049638474112ad26db13eb167a16b2d497b841" - -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" -- cgit v1.2.3-54-g00ecf