diff options
author | Naveen Saini <naveen.kumar.saini@intel.com> | 2020-04-16 16:22:38 +0800 |
---|---|---|
committer | Anuj Mittal <anuj.mittal@intel.com> | 2020-04-17 08:06:37 +0800 |
commit | 52dc0273759daaf167bf38656bab5cb2da27028f (patch) | |
tree | 85c795ce568d6b6b4393271be7f9acff310791c6 /dynamic-layers/clang-layer/recipes-opencl | |
parent | ee6810244211e6226cde0d2433e79461ae89b750 (diff) | |
download | meta-intel-52dc0273759daaf167bf38656bab5cb2da27028f.tar.gz |
opencl-clang: fix runtime error
Error log:
clang (LLVM option parsing): Unknown command line argument '-pgo-warn-misexpect'.
Try: 'clang (LLVM option parsing) --help'
Force opencl-clang to link with shared clang-cpp for target builds and
explicitly link with spirv library because of a change in behaviour in llvm 10.
Use the patch to link with all static libs only for native cases where meta-clang
default to building static libs only by default.
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-opencl')
4 files changed, 80 insertions, 34 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 new file mode 100644 index 00000000..8ffa853b --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch | |||
@@ -0,0 +1,35 @@ | |||
1 | From 7fc05c52dd91902fa324a7aac9b90715cfca4717 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Wed, 15 Apr 2020 17:55:32 +0800 | ||
4 | Subject: [PATCH] Building in-tree with LLVM 10.0 with the LLVM_LINK_LLVM_DYLIB | ||
5 | |||
6 | Failed to link with the LLVMSPIRVLib library. | ||
7 | |||
8 | Add an explicit dependency to force the correct build order and linking. | ||
9 | |||
10 | Reference: | ||
11 | https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/a6d4ccf082858e63e139ca06c02a071c343d2657 | ||
12 | |||
13 | Upstream-Status: Submitted [https://github.com/intel/opencl-clang/pull/118] | ||
14 | |||
15 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
16 | --- | ||
17 | CMakeLists.txt | 2 +- | ||
18 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
21 | index 51c140d..b8b514e 100644 | ||
22 | --- a/CMakeLists.txt | ||
23 | +++ b/CMakeLists.txt | ||
24 | @@ -208,7 +208,7 @@ link_directories( | ||
25 | |||
26 | set(OPENCL_CLANG_LINK_LIBS ${CMAKE_DL_LIBS}) | ||
27 | |||
28 | -if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS) | ||
29 | +if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS OR (USE_PREBUILT_LLVM AND LLVM_LINK_LLVM_DYLIB)) | ||
30 | # SPIRV-LLVM-Translator is not included into LLVM as a component. | ||
31 | # So, we need to list it here explicitly as an external library | ||
32 | list(APPEND OPENCL_CLANG_LINK_LIBS LLVMSPIRVLib) | ||
33 | -- | ||
34 | 2.17.1 | ||
35 | |||
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 new file mode 100644 index 00000000..473f4d24 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-make-sure-only-static-libraries-linked-for-native-bu.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | From b29e00e6fe428a031cf577dfb703cf13eff837f6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Wed, 15 Apr 2020 18:05:14 +0800 | ||
4 | Subject: [PATCH 2/2] make sure only static libraries linked for native build | ||
5 | |||
6 | LINK_COMPONENTS=all isn't working for static libs for out of tree builds. Use | ||
7 | LLVM_AVAILABLE_LIBS instead. Reported: | ||
8 | |||
9 | https://github.com/intel/opencl-clang/issues/114 | ||
10 | |||
11 | Upstream-Status: Pending | ||
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 | 3 ++- | ||
17 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
20 | index 8707487..ad2dbda 100644 | ||
21 | --- a/CMakeLists.txt | ||
22 | +++ b/CMakeLists.txt | ||
23 | @@ -218,7 +218,7 @@ add_subdirectory(cl_headers) | ||
24 | |||
25 | set(LLVM_REQUIRES_EH ON) | ||
26 | |||
27 | -if(USE_PREBUILT_LLVM OR CLANG_LINK_CLANG_DYLIB) | ||
28 | +if(false) | ||
29 | list(APPEND OPENCL_CLANG_LINK_LIBS clang-cpp) | ||
30 | else() | ||
31 | list(APPEND OPENCL_CLANG_LINK_LIBS | ||
32 | @@ -266,6 +266,7 @@ add_llvm_library(${TARGET_NAME} SHARED | ||
33 | all | ||
34 | LINK_LIBS | ||
35 | ${OPENCL_CLANG_LINK_LIBS} | ||
36 | + ${LLVM_AVAILABLE_LIBS} | ||
37 | ) | ||
38 | |||
39 | # Configure resource file on Windows | ||
40 | -- | ||
41 | 2.17.1 | ||
42 | |||
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 deleted file mode 100644 index bd6c9676..00000000 --- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/link-with-all-libs.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From cc0769fb72561f82976e40c5b7ea8bf07069c87a Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Thu, 19 Mar 2020 16:30:07 +0800 | ||
4 | Subject: [PATCH] link to all libs | ||
5 | |||
6 | LINK_COMPONENTS=all isn't working for static libs for out of tree builds. Use | ||
7 | LLVM_AVAILABLE_LIBS instead. Reported: | ||
8 | |||
9 | https://github.com/intel/opencl-clang/issues/114 | ||
10 | |||
11 | Upstream-Status: Pending | ||
12 | |||
13 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
14 | --- | ||
15 | CMakeLists.txt | 1 + | ||
16 | 1 file changed, 1 insertion(+) | ||
17 | |||
18 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
19 | index 4590a11..2ff9901 100644 | ||
20 | --- a/CMakeLists.txt | ||
21 | +++ b/CMakeLists.txt | ||
22 | @@ -261,6 +261,7 @@ add_llvm_library(${TARGET_NAME} SHARED | ||
23 | clangLex | ||
24 | clangBasic | ||
25 | ${ADDITIONAL_LIBS} | ||
26 | + ${LLVM_AVAILABLE_LIBS} | ||
27 | ) | ||
28 | |||
29 | # Configure resource file on Windows | ||
30 | -- | ||
31 | 2.25.1 | ||
32 | |||
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 index cc897c64..042cfa30 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_10.0.0.bb | |||
@@ -7,10 +7,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" | |||
7 | 7 | ||
8 | SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-100;protocol=https \ | 8 | SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-100;protocol=https \ |
9 | file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \ | 9 | file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \ |
10 | file://link-with-all-libs.patch \ | 10 | file://0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch \ |
11 | " | 11 | " |
12 | SRC_URI_append_class-native = " file://0002-make-sure-only-static-libraries-linked-for-native-bu.patch" | ||
12 | 13 | ||
13 | SRCREV = "0a5a9f67b56431ef7b9436d1af812df6dfb44975" | 14 | SRCREV = "9f0c2c0f5ddea1accc921aed4c94bc52c1b85637" |
14 | 15 | ||
15 | S = "${WORKDIR}/git" | 16 | S = "${WORKDIR}/git" |
16 | 17 | ||