summaryrefslogtreecommitdiffstats
path: root/recipes-devtools
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools')
-rw-r--r--recipes-devtools/clang/clang.inc20
-rw-r--r--recipes-devtools/clang/clang/0025-llvm-Let-llvm-ar-name-contain-lib.patch136
-rw-r--r--recipes-devtools/clang/clang/0026-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch33
-rw-r--r--recipes-devtools/clang/clang/0027-Fix-sanitizer-common-build-with-glibc-2.31.patch81
-rw-r--r--recipes-devtools/clang/clang_git.bb7
-rw-r--r--recipes-devtools/clang/common.inc2
-rw-r--r--recipes-devtools/clang/compiler-rt_git.bb13
-rw-r--r--recipes-devtools/clang/libcxx_git.bb6
-rw-r--r--recipes-devtools/clang/openmp_git.bb1
9 files changed, 271 insertions, 28 deletions
diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc
index 248ff28..3fd0723 100644
--- a/recipes-devtools/clang/clang.inc
+++ b/recipes-devtools/clang/clang.inc
@@ -8,7 +8,7 @@ MAJOR_VER = "9"
8MINOR_VER = "0" 8MINOR_VER = "0"
9PATCH_VER = "1" 9PATCH_VER = "1"
10 10
11SRCREV ?= "aa0ed8dac77bf205f2b376a44a0d161f4dafcb5a" 11SRCREV ?= "c1a0a213378a458fbea1a5c77b315c7dce08fd05"
12 12
13PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}" 13PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}"
14BRANCH = "release/${MAJOR_VER}.x" 14BRANCH = "release/${MAJOR_VER}.x"
@@ -18,4 +18,22 @@ CLANGMD5SUM = "ff42885ed2ab98f1ecb8c1fc41205343"
18LLDMD5SUM = "ae7dc7c027b1fa89b5b013d391d3ee2b" 18LLDMD5SUM = "ae7dc7c027b1fa89b5b013d391d3ee2b"
19LLDBMD5SUM = "2e0d44968471fcde980034dbb826bea9" 19LLDBMD5SUM = "2e0d44968471fcde980034dbb826bea9"
20 20
21def get_libdir_suffix(d, arch_var):
22 import re
23 multilibs = (d.getVar("MULTILIB_VARIANTS") or "").split()
24 if multilibs:
25 a = d.getVar(arch_var, True)
26 if re.match('(i.86|athlon)$', a): return '32'
27 elif re.match('x86.64$', a): return '64'
28 elif re.match('(arm|armbe)$', a): return '32'
29 elif re.match('(aarch64|aarch64_be)$', a): return '64'
30 elif re.match('mips(isa|)32(r6|)(el|)$', a): return '32'
31 elif re.match('mips(isa|)64(r6|)(el|)$', a): return '64'
32 elif re.match('p(pc|owerpc)', a): return '32'
33 elif re.match('p(pc|owerpc)64', a): return '64'
34 else:
35 return ''
36
37LLVM_LIBDIR_SUFFIX="${@get_libdir_suffix(d, 'TARGET_ARCH')}"
38
21require common.inc 39require common.inc
diff --git a/recipes-devtools/clang/clang/0025-llvm-Let-llvm-ar-name-contain-lib.patch b/recipes-devtools/clang/clang/0025-llvm-Let-llvm-ar-name-contain-lib.patch
index 5edf8ad..0d5baab 100644
--- a/recipes-devtools/clang/clang/0025-llvm-Let-llvm-ar-name-contain-lib.patch
+++ b/recipes-devtools/clang/clang/0025-llvm-Let-llvm-ar-name-contain-lib.patch
@@ -1,6 +1,6 @@
1From fa44b5037ceac5d201b5ab0395ec9c5b928f79bf Mon Sep 17 00:00:00 2001 1From e709fa8c221d21bce717b22fa4076c94d51f011e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Fangrui Song <maskray@google.com>
3Date: Wed, 4 Dec 2019 11:50:09 -0800 3Date: Tue, 10 Dec 2019 15:56:05 -0800
4Subject: [PATCH] llvm: Let llvm-ar name contain 'lib' 4Subject: [PATCH] llvm: Let llvm-ar name contain 'lib'
5 5
6In cross-compile cases canonical names are created using symlinks but 6In cross-compile cases canonical names are created using symlinks but
@@ -11,34 +11,140 @@ qc: no such file or directory
11 11
12Which is because when the llvm-ar symbol link's name contains "lib", it would be considered as llvm-lib: 12Which is because when the llvm-ar symbol link's name contains "lib", it would be considered as llvm-lib:
13 13
14Signed-off-by: Michael Davis <michael.davis@essvote.com> 14Signed-off-by: Fangrui Song <maskray@google.com>
15Signed-off-by: Khem Raj <raj.khem@gmail.com> 15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16--- 16---
17 llvm/tools/llvm-ar/llvm-ar.cpp | 8 ++++---- 17 llvm/test/tools/llvm-ar/tool-name.test | 15 ++++++++++++++
18 1 file changed, 4 insertions(+), 4 deletions(-) 18 llvm/test/tools/llvm-dlltool/tool-name.test | 13 ++++++++++++
19 llvm/test/tools/llvm-lib/tool-name.test | 14 +++++++++++++
20 llvm/test/tools/llvm-ranlib/tool-name.test | 13 ++++++++++++
21 llvm/tools/llvm-ar/llvm-ar.cpp | 23 ++++++++++++++-------
22 5 files changed, 71 insertions(+), 7 deletions(-)
23 create mode 100644 llvm/test/tools/llvm-ar/tool-name.test
24 create mode 100644 llvm/test/tools/llvm-dlltool/tool-name.test
25 create mode 100644 llvm/test/tools/llvm-lib/tool-name.test
26 create mode 100644 llvm/test/tools/llvm-ranlib/tool-name.test
19 27
28diff --git a/llvm/test/tools/llvm-ar/tool-name.test b/llvm/test/tools/llvm-ar/tool-name.test
29new file mode 100644
30index 00000000000..cb656d3b47f
31--- /dev/null
32+++ b/llvm/test/tools/llvm-ar/tool-name.test
33@@ -0,0 +1,15 @@
34+## Don't make symlinks on Windows.
35+# UNSUPPORTED: system-windows
36+
37+# RUN: rm -rf %t
38+# RUN: mkdir %t
39+# RUN: ln -s llvm-ar %t/llvm-ar-9
40+# RUN: ln -s llvm-ar %t/ar.exe
41+# RUN: ln -s llvm-ar %t/arm-pokymllib32-linux-gnueabi-llvm-ar-9
42+
43+# RUN: llvm-ar h | FileCheck %s
44+# RUN: %t/llvm-ar-9 h | FileCheck %s
45+# RUN: %t/ar.exe h | FileCheck %s
46+# RUN: %t/arm-pokymllib32-linux-gnueabi-llvm-ar-9 h | FileCheck %s
47+
48+# CHECK: USAGE: llvm-ar
49diff --git a/llvm/test/tools/llvm-dlltool/tool-name.test b/llvm/test/tools/llvm-dlltool/tool-name.test
50new file mode 100644
51index 00000000000..e9d8680322d
52--- /dev/null
53+++ b/llvm/test/tools/llvm-dlltool/tool-name.test
54@@ -0,0 +1,13 @@
55+## Don't make symlinks on Windows.
56+# UNSUPPORTED: system-windows
57+
58+# RUN: rm -rf %t
59+# RUN: mkdir %t
60+# RUN: ln -s llvm-dlltool %t/dlltool.exe
61+# RUN: ln -s llvm-dlltool %t/dlltool-10
62+
63+# RUN: not llvm-dlltool 2>&1 | FileCheck %s
64+# RUN: not %t/dlltool.exe 2>&1 | FileCheck %s
65+# RUN: not %t/dlltool-10 2>&1 | FileCheck %s
66+
67+# CHECK: USAGE: llvm-dlltool
68diff --git a/llvm/test/tools/llvm-lib/tool-name.test b/llvm/test/tools/llvm-lib/tool-name.test
69new file mode 100644
70index 00000000000..9c0f7b5de73
71--- /dev/null
72+++ b/llvm/test/tools/llvm-lib/tool-name.test
73@@ -0,0 +1,14 @@
74+## Don't make symlinks on Windows.
75+# UNSUPPORTED: system-windows
76+
77+# RUN: rm -rf %t
78+# RUN: mkdir %t
79+## See D44808, MSBuild runs Lib.exe
80+# RUN: ln -s llvm-lib %t/Lib.exe
81+# RUN: ln -s llvm-lib %t/llvm-lib-10
82+
83+# RUN: llvm-lib '/?' | FileCheck %s
84+# RUN: %t/Lib.exe '/?' | FileCheck %s
85+# RUN: %t/llvm-lib-10 '/?' | FileCheck %s
86+
87+# CHECK: USAGE: llvm-lib
88diff --git a/llvm/test/tools/llvm-ranlib/tool-name.test b/llvm/test/tools/llvm-ranlib/tool-name.test
89new file mode 100644
90index 00000000000..bd2b4965331
91--- /dev/null
92+++ b/llvm/test/tools/llvm-ranlib/tool-name.test
93@@ -0,0 +1,13 @@
94+## Don't make symlinks on Windows.
95+# UNSUPPORTED: system-windows
96+
97+# RUN: rm -rf %t
98+# RUN: mkdir %t
99+# RUN: ln -s llvm-ranlib %t/llvm-ranlib-9
100+# RUN: ln -s llvm-ranlib %t/ranlib.exe
101+
102+# RUN: llvm-ranlib -h | FileCheck %s
103+# RUN: %t/llvm-ranlib-9 -h | FileCheck %s
104+# RUN: %t/ranlib.exe -h | FileCheck %s
105+
106+# CHECK: USAGE: llvm-ranlib
20diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp 107diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp
21index 91746d0fab3..daef39ede79 100644 108index 91746d0fab3..a7118371f1e 100644
22--- a/llvm/tools/llvm-ar/llvm-ar.cpp 109--- a/llvm/tools/llvm-ar/llvm-ar.cpp
23+++ b/llvm/tools/llvm-ar/llvm-ar.cpp 110+++ b/llvm/tools/llvm-ar/llvm-ar.cpp
24@@ -1125,16 +1125,16 @@ int main(int argc, char **argv) { 111@@ -11,6 +11,7 @@
112 //
113 //===----------------------------------------------------------------------===//
114
115+#include "llvm/ADT/StringExtras.h"
116 #include "llvm/ADT/StringSwitch.h"
117 #include "llvm/ADT/Triple.h"
118 #include "llvm/IR/LLVMContext.h"
119@@ -1125,16 +1126,24 @@ int main(int argc, char **argv) {
25 llvm::InitializeAllAsmParsers(); 120 llvm::InitializeAllAsmParsers();
26 121
27 Stem = sys::path::stem(ToolName); 122 Stem = sys::path::stem(ToolName);
28- if (Stem.contains_lower("dlltool")) 123- if (Stem.contains_lower("dlltool"))
29+ if (Stem.endswith("dlltool") || Stem.contains("dlltool-")) 124+ auto Is = [](StringRef Tool) {
125+ // We need to recognize the following filenames.
126+ //
127+ // Lib.exe -> lib (see D44808, MSBuild runs Lib.exe)
128+ // dlltool.exe -> dlltool
129+ // arm-pokymllib32-linux-gnueabi-llvm-ar-10 -> ar
130+ auto I = Stem.rfind_lower(Tool);
131+ return I != StringRef::npos &&
132+ (I + Tool.size() == Stem.size() || !isAlnum(Stem[I + Tool.size()]));
133+ };
134+
135+ if (Is("dlltool"))
30 return dlltoolDriverMain(makeArrayRef(argv, argc)); 136 return dlltoolDriverMain(makeArrayRef(argv, argc));
31 137-
32- if (Stem.contains_lower("ranlib")) 138- if (Stem.contains_lower("ranlib"))
33+ if (Stem.endswith("ranlib") || Stem.contains("ranlib-")) 139+ if (Is("ranlib"))
34 return ranlib_main(argc, argv); 140 return ranlib_main(argc, argv);
35 141-
36- if (Stem.contains_lower("lib")) 142- if (Stem.contains_lower("lib"))
37+ if (Stem.endswith("lib") || Stem.contains("lib-")) 143+ if (Is("lib"))
38 return libDriverMain(makeArrayRef(argv, argc)); 144 return libDriverMain(makeArrayRef(argv, argc));
39 145-
40- if (Stem.contains_lower("ar")) 146- if (Stem.contains_lower("ar"))
41+ if (Stem.endswith("ar") || Stem.contains("ar-")) 147+ if (Is("ar"))
42 return ar_main(argc, argv); 148 return ar_main(argc, argv);
43 fail("Not ranlib, ar, lib or dlltool!"); 149 fail("Not ranlib, ar, lib or dlltool!");
44 } 150 }
diff --git a/recipes-devtools/clang/clang/0026-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch b/recipes-devtools/clang/clang/0026-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch
new file mode 100644
index 0000000..18008c3
--- /dev/null
+++ b/recipes-devtools/clang/clang/0026-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch
@@ -0,0 +1,33 @@
1From 9c37e644d96de108d931a6bcce1819a666ae91d8 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 11 Dec 2019 10:23:15 -0800
4Subject: [PATCH] libclang: Use CMAKE_DL_LIBS for deducing libdl
5
6This helps in getting right settings for libdl irrespective of platform
7it also fixes build with -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON
8
9Fixes
10
11tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o: In function clang::CIndexer::getClangResourcesPath[abi:cxx11]()': 2019-12-06T06:04:39.2987601Z | CIndexer.cpp:(.text._ZN5clang8CIndexer21getClangResourcesPathB5cxx11Ev+0x8b): undefined reference to dladdr'
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 clang/tools/libclang/CMakeLists.txt | 5 ++---
16 1 file changed, 2 insertions(+), 3 deletions(-)
17
18diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt
19index 613ead1a36b..9d5cd0ba9df 100644
20--- a/clang/tools/libclang/CMakeLists.txt
21+++ b/clang/tools/libclang/CMakeLists.txt
22@@ -58,9 +58,8 @@ if (TARGET clangTidyPlugin)
23 endif()
24 endif ()
25
26-find_library(DL_LIBRARY_PATH dl)
27-if (DL_LIBRARY_PATH)
28- list(APPEND LIBS dl)
29+if (HAVE_LIBDL)
30+ list(APPEND LIBS ${CMAKE_DL_LIBS})
31 endif()
32
33 option(LIBCLANG_BUILD_STATIC
diff --git a/recipes-devtools/clang/clang/0027-Fix-sanitizer-common-build-with-glibc-2.31.patch b/recipes-devtools/clang/clang/0027-Fix-sanitizer-common-build-with-glibc-2.31.patch
new file mode 100644
index 0000000..4c05fc6
--- /dev/null
+++ b/recipes-devtools/clang/clang/0027-Fix-sanitizer-common-build-with-glibc-2.31.patch
@@ -0,0 +1,81 @@
1From 322766bb272ca8f818fe26a74ac1254a3d2b0201 Mon Sep 17 00:00:00 2001
2From: Evgenii Stepanov <eugenis@google.com>
3Date: Mon, 25 Nov 2019 13:52:17 -0800
4Subject: [PATCH] Fix sanitizer-common build with glibc 2.31
5
6Summary:
7As mentioned in D69104, glibc changed ABI recently with the [[ https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=2f959dfe849e0646e27403f2e4091536496ac0f0| 2f959dfe ]] change.
8D69104 dealt with just 32-bit ARM, but that is just one of the many affected architectures.
9E.g. x86_64, i?86, riscv64, sparc 32-bit, s390 31-bit are affected too (and various others).
10
11This patch instead of adding a long list of further architectures that wouldn't be checked ever next to arm 32-bit changes the structures to match the 2.31 layout and performs the checking on Linux for ipc_perm mode position/size only on non-Linux or on Linux with glibc 2.31 or later. I think this matches what is done for aarch64 already.
12If needed, we could list architectures that haven't changed ABI (e.g. powerpc), so that they would be checked even with older glibcs. AFAIK sanitizers don't actually use ipc_perm.mode and
13so all they care about is the size and alignment of the whole structure.
14
15Note, s390 31-bit and arm 32-bit big-endian changed ABI even further, there will now be shmctl with old symbol version and shmctl@@GLIBC_2.31 which will be incompatible. I'm afraid this isn't really solvable unless the sanitizer libraries are symbol versioned and use matching symbol versions to glibc symbols for stuff they intercept, plus use dlvsym.
16This patch doesn't try to address that.
17
18Patch by Jakub Jelinek.
19
20Reviewers: kcc, eugenis, dvyukov
21
22Reviewed By: eugenis
23
24Subscribers: jyknight, kristof.beyls, fedor.sergeev, simoncook, PkmX, s.egerton, steven.zhang, #sanitizers, llvm-commits
25
26Tags: #sanitizers, #llvm
27
28Differential Revision: https://reviews.llvm.org/D70662
29---
30 .../sanitizer_platform_limits_posix.cc | 5 +++--
31 .../sanitizer_platform_limits_posix.h | 15 +--------------
32 2 files changed, 4 insertions(+), 16 deletions(-)
33
34diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
35index b7fa6e8f7e0..abdf7941b5c 100644
36--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
37+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
38@@ -1126,8 +1126,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
39 CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
40 CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
41 CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
42-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
43-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
44+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
45+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
46+ on many architectures. */
47 CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
48 #endif
49
50diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
51index f1a4fd7d370..029a209fc03 100644
52--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
53+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
54@@ -203,26 +203,13 @@ namespace __sanitizer {
55 u64 __unused1;
56 u64 __unused2;
57 #elif defined(__sparc__)
58-#if defined(__arch64__)
59 unsigned mode;
60- unsigned short __pad1;
61-#else
62- unsigned short __pad1;
63- unsigned short mode;
64 unsigned short __pad2;
65-#endif
66 unsigned short __seq;
67 unsigned long long __unused1;
68 unsigned long long __unused2;
69-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
70- unsigned int mode;
71- unsigned short __seq;
72- unsigned short __pad1;
73- unsigned long __unused1;
74- unsigned long __unused2;
75 #else
76- unsigned short mode;
77- unsigned short __pad1;
78+ unsigned int mode;
79 unsigned short __seq;
80 unsigned short __pad2;
81 #if defined(__x86_64__) && !defined(_LP64)
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index f33b78a..13138c1 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -55,7 +55,7 @@ PACKAGECONFIG ??= "compiler-rt libcplusplus shared-libs lldb-wchar \
55 rtti eh libedit \ 55 rtti eh libedit \
56 " 56 "
57PACKAGECONFIG_class-native = "rtti eh libedit" 57PACKAGECONFIG_class-native = "rtti eh libedit"
58PACKAGECONFIG_class-nativesdk = "rtti eh libedit thin-lto" 58PACKAGECONFIG_class-nativesdk = "rtti eh libedit ${@bb.utils.filter('DISTRO_FEATURES', 'thin-lto full-lto', d)}"
59 59
60PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,libcxx,compiler-rt" 60PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,libcxx,compiler-rt"
61PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx" 61PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx"
@@ -68,6 +68,7 @@ PACKAGECONFIG[lldb-wchar] = "-DLLDB_EDITLINE_USE_WCHAR=1,-DLLDB_EDITLINE_USE_WCH
68PACKAGECONFIG[bootstrap] = "-DCLANG_ENABLE_BOOTSTRAP=On -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin -DBOOTSTRAP_LLVM_ENABLE_LLD=ON,,," 68PACKAGECONFIG[bootstrap] = "-DCLANG_ENABLE_BOOTSTRAP=On -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin -DBOOTSTRAP_LLVM_ENABLE_LLD=ON,,,"
69PACKAGECONFIG[eh] = "-DLLVM_ENABLE_EH=ON,-DLLVM_ENABLE_EH=OFF,," 69PACKAGECONFIG[eh] = "-DLLVM_ENABLE_EH=ON,-DLLVM_ENABLE_EH=OFF,,"
70PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,," 70PACKAGECONFIG[rtti] = "-DLLVM_ENABLE_RTTI=ON,-DLLVM_ENABLE_RTTI=OFF,,"
71PACKAGECONFIG[split-dwarf] = "-DLLVM_USE_SPLIT_DWARF=ON,-DLLVM_USE_SPLIT_DWARF=OFF,,"
71PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON -DLLDB_DISABLE_LIBEDIT=0,-DLLVM_ENABLE_LIBEDIT=OFF -DLLDB_DISABLE_LIBEDIT=1,libedit libedit-native" 72PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON -DLLDB_DISABLE_LIBEDIT=0,-DLLVM_ENABLE_LIBEDIT=OFF -DLLDB_DISABLE_LIBEDIT=1,libedit libedit-native"
72 73
73BUILDTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2', '', d)}" 74BUILDTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2', '', d)}"
@@ -181,7 +182,7 @@ do_install_append_class-target () {
181if(DEFINED ENV{YOCTO_ALTERNATE_EXE_PATH})\n\ 182if(DEFINED ENV{YOCTO_ALTERNATE_EXE_PATH})\n\
182 execute_process(COMMAND \"llvm-config\" \"--bindir\" OUTPUT_VARIABLE _IMPORT_PREFIX_BIN OUTPUT_STRIP_TRAILING_WHITESPACE)\n\ 183 execute_process(COMMAND \"llvm-config\" \"--bindir\" OUTPUT_VARIABLE _IMPORT_PREFIX_BIN OUTPUT_STRIP_TRAILING_WHITESPACE)\n\
183else()\n\ 184else()\n\
184 set(_IMPORT_PREFIX_BINARY \"\${_IMPORT_PREFIX}/bin\")\n\ 185 set(_IMPORT_PREFIX_BIN \"\${_IMPORT_PREFIX}/bin\")\n\
185endif()\n" ${D}${libdir}/cmake/llvm/LLVMExports-release.cmake 186endif()\n" ${D}${libdir}/cmake/llvm/LLVMExports-release.cmake
186} 187}
187 188
@@ -210,8 +211,6 @@ do_install_append_class-nativesdk () {
210 rm -rf ${D}${datadir}/llvm 211 rm -rf ${D}${datadir}/llvm
211} 212}
212 213
213PACKAGE_DEBUG_SPLIT_STYLE_class-nativesdk = "debug-without-src"
214
215PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python libclang" 214PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python libclang"
216 215
217PROVIDES += "llvm llvm${PV}" 216PROVIDES += "llvm llvm${PV}"
diff --git a/recipes-devtools/clang/common.inc b/recipes-devtools/clang/common.inc
index c5e8d48..044a9ab 100644
--- a/recipes-devtools/clang/common.inc
+++ b/recipes-devtools/clang/common.inc
@@ -33,6 +33,8 @@ SRC_URI = "\
33 file://0023-openmp-Recognise-ARMv7ve-machine-arch.patch \ 33 file://0023-openmp-Recognise-ARMv7ve-machine-arch.patch \
34 file://0024-Check-for-atomic-double-intrinsics.patch \ 34 file://0024-Check-for-atomic-double-intrinsics.patch \
35 file://0025-llvm-Let-llvm-ar-name-contain-lib.patch \ 35 file://0025-llvm-Let-llvm-ar-name-contain-lib.patch \
36 file://0026-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch \
37 file://0027-Fix-sanitizer-common-build-with-glibc-2.31.patch \
36" 38"
37 39
38# Fallback to no-PIE if not set 40# Fallback to no-PIE if not set
diff --git a/recipes-devtools/clang/compiler-rt_git.bb b/recipes-devtools/clang/compiler-rt_git.bb
index e76a560..3c0f214 100644
--- a/recipes-devtools/clang/compiler-rt_git.bb
+++ b/recipes-devtools/clang/compiler-rt_git.bb
@@ -31,6 +31,7 @@ EXTRA_OECMAKE += "-DCOMPILER_RT_STANDALONE_BUILD=OFF \
31 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ 31 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
32 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ 32 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
33 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ 33 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \
34 -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
34 -G Ninja ${S}/llvm \ 35 -G Ninja ${S}/llvm \
35" 36"
36 37
@@ -75,12 +76,12 @@ sysroot_stage_all_append_class-target() {
75} 76}
76 77
77FILES_SOLIBSDEV = "" 78FILES_SOLIBSDEV = ""
78FILES_${PN} += "${exec_prefix}/lib/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/lib*${SOLIBSDEV} \ 79FILES_${PN} += "${exec_prefix}/lib${LLVM_LIBDIR_SUFFIX}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/lib*${SOLIBSDEV} \
79 ${exec_prefix}/lib/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/*.txt \ 80 ${exec_prefix}/lib${LLVM_LIBDIR_SUFFIX}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/*.txt \
80 ${exec_prefix}/lib/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/share/*.txt" 81 ${exec_prefix}/lib${LLVM_LIBDIR_SUFFIX}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/share/*.txt"
81FILES_${PN}-staticdev += "${exec_prefix}/lib/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/*.a" 82FILES_${PN}-staticdev += "${exec_prefix}/lib${LLVM_LIBDIR_SUFFIX}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/*.a"
82FILES_${PN}-dev += "${datadir} ${exec_prefix}/lib/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/*.syms \ 83FILES_${PN}-dev += "${datadir} ${exec_prefix}/lib${LLVM_LIBDIR_SUFFIX}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/*.syms \
83 ${exec_prefix}/lib/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/clang_rt.crt*.o \ 84 ${exec_prefix}/lib${LLVM_LIBDIR_SUFFIX}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib/linux/clang_rt.crt*.o \
84 " 85 "
85INSANE_SKIP_${PN} = "dev-so libdir" 86INSANE_SKIP_${PN} = "dev-so libdir"
86 87
diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb
index 2d530c5..7325e4f 100644
--- a/recipes-devtools/clang/libcxx_git.bb
+++ b/recipes-devtools/clang/libcxx_git.bb
@@ -32,6 +32,8 @@ LIC_FILES_CHKSUM = "file://libcxx/LICENSE.TXT;md5=55d89dd7eec8d3b4204b680e27da39
32 file://libunwind/LICENSE.TXT;md5=f66970035d12f196030658b11725e1a1 \ 32 file://libunwind/LICENSE.TXT;md5=f66970035d12f196030658b11725e1a1 \
33" 33"
34 34
35LLVM_LIBDIR_SUFFIX_powerpc64 = "64"
36
35EXTRA_OECMAKE += "\ 37EXTRA_OECMAKE += "\
36 -DCMAKE_CROSSCOMPILING=ON \ 38 -DCMAKE_CROSSCOMPILING=ON \
37 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ 39 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
@@ -46,12 +48,12 @@ EXTRA_OECMAKE += "\
46 -DLIBCXX_CXX_ABI=libcxxabi \ 48 -DLIBCXX_CXX_ABI=libcxxabi \
47 -DLIBCXX_USE_COMPILER_RT=ON \ 49 -DLIBCXX_USE_COMPILER_RT=ON \
48 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ 50 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \
49 -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/${baselib} \ 51 -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/lib${LLVM_LIBDIR_SUFFIX} \
50 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ 52 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
51 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ 53 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \
52 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ 54 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
53 -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi;libunwind' \ 55 -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi;libunwind' \
54 -DLLVM_LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ 56 -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
55 -G Ninja \ 57 -G Ninja \
56 ${S}/llvm \ 58 ${S}/llvm \
57" 59"
diff --git a/recipes-devtools/clang/openmp_git.bb b/recipes-devtools/clang/openmp_git.bb
index 4de2f4a..d2c3909 100644
--- a/recipes-devtools/clang/openmp_git.bb
+++ b/recipes-devtools/clang/openmp_git.bb
@@ -35,3 +35,4 @@ INSANE_SKIP_${PN} = "dev-so"
35 35
36COMPATIBLE_HOST_riscv64 = "null" 36COMPATIBLE_HOST_riscv64 = "null"
37COMPATIBLE_HOST_riscv32 = "null" 37COMPATIBLE_HOST_riscv32 = "null"
38COMPATIBLE_HOST_mips64 = "null"