summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2016-10-15 19:49:43 -0700
committerKhem Raj <raj.khem@gmail.com>2016-10-15 19:49:43 -0700
commitdd04c7f561c66e6edd9363e5da266fffa3bca26e (patch)
treed1aca2643c90a20b5a9cd56f40504680b53c84f1
parentafcd6a10cf70ffc92f6be8a13e57647635555192 (diff)
downloadmeta-clang-dd04c7f561c66e6edd9363e5da266fffa3bca26e.tar.gz
clang/llvm: Switch to 4.0.0 development version
3.9 is now branched for morty Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-devtools/clang/clang.inc16
-rw-r--r--recipes-devtools/clang/clang/0001-clang-driver-Use-lib-for-ldso-on-OE.patch14
-rw-r--r--recipes-devtools/clang/clang/0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch12
-rw-r--r--recipes-devtools/clang/clang/0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch10
-rw-r--r--recipes-devtools/clang/clang/0002-llvm-Do-not-assume-linux-glibc.patch6
-rw-r--r--recipes-devtools/clang/clang/0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch10
-rw-r--r--recipes-devtools/clang/clang/0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch12
-rw-r--r--recipes-devtools/clang/clang/0004-clang-Check-for-float-ABI-on-arm.patch33
-rw-r--r--recipes-devtools/clang/clang/0004-llvm-Fix-inconsistent-uses-of-.cfi_sections.patch124
-rw-r--r--recipes-devtools/clang/clang/0005-llvm-Fix-build-on-mips-ppc-disable-EH-table-support.patch27
-rw-r--r--recipes-devtools/clang/clang_git.bb3
-rw-r--r--recipes-devtools/clang/compiler-rt/0001-compiler-rt-Fix-target-architecture-matching.patch37
-rw-r--r--recipes-devtools/clang/compiler-rt/0001-support-a-new-embedded-linux-target.patch (renamed from recipes-devtools/clang/compiler-rt/0002-support-a-new-embedded-linux-target.patch)6
-rw-r--r--recipes-devtools/clang/compiler-rt/0002-Simplify-cross-compilation.-Don-t-use-native-compile.patch45
-rw-r--r--recipes-devtools/clang/compiler-rt/0003-Disable-tsan-on-OE-glibc.patch (renamed from recipes-devtools/clang/compiler-rt/0004-Disable-tsan-on-OE-glibc.patch)10
-rw-r--r--recipes-devtools/clang/compiler-rt/0003-Simplify-cross-compilation.-Don-t-use-native-compile.patch67
-rw-r--r--recipes-devtools/clang/compiler-rt/0005-builtins-Specifiy-builtins-using-VFP-separately.patch147
-rw-r--r--recipes-devtools/clang/compiler-rt_git.bb8
-rw-r--r--recipes-devtools/clang/libcxx/0001-use-constexpr-when-using-glibc.patch4
-rw-r--r--recipes-devtools/clang/libcxxabi/0001-Do-not-use-LIBCXXABI_ARM_EHABI.patch6
20 files changed, 101 insertions, 496 deletions
diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc
index 3bcad36..1bf981e 100644
--- a/recipes-devtools/clang/clang.inc
+++ b/recipes-devtools/clang/clang.inc
@@ -8,14 +8,14 @@ LLVM_GIT_PROTOCOL ?= "git"
8# Uncomment below to enable master version of clang/llvm 8# Uncomment below to enable master version of clang/llvm
9# 9#
10 10
11PV = "3.9.1" 11PV = "4.0.0"
12BRANCH = "release_39" 12BRANCH = "master"
13SRCREV_llvm = "46079999e9111e8e8c2c1f0511477c3bec38d74a" 13SRCREV_llvm = "e0043a340f7f9f64a16859279348dd09eab346b4"
14SRCREV_clang = "c3709e72d22432f53f8e2f14354def31a96734fe" 14SRCREV_clang = "fce476b6e965594e2bf2ea2f03a3d1021e2e227a"
15SRCREV_compiler-rt = "38631afc1dec4d5b13b6460e808b5dae6c009081" 15SRCREV_compiler-rt = "d9e6c738682c2012e5e7e87909941becd55cfbbd"
16SRCREV_cxxabi = "47803aa110d52c542c7a116b5b40daab7265fd27" 16SRCREV_cxxabi = "8ac10e4bb995075208e8d6b99e03e9f315d0f5a3"
17SRCREV_libcxx = "ff4c6a0a9eff9b3ad77418bec839bec723da7754" 17SRCREV_libcxx = "34c6b805cf0358809ea95c0d4303537be3225db7"
18SRCREV_libunwind = "63ed8dc8e4a73efd7d46b6cb79453bb428eb138d" 18SRCREV_libunwind = "122a0f8114e58a294ee3b2bb1d4f9537ef7ed6df"
19 19
20LLVMMD5SUM = "b99eb43c934ceebecab85c6b9b1a08be" 20LLVMMD5SUM = "b99eb43c934ceebecab85c6b9b1a08be"
21CLANGMD5SUM = "a77eac638a3aae44a2d604217d6f0f01" 21CLANGMD5SUM = "a77eac638a3aae44a2d604217d6f0f01"
diff --git a/recipes-devtools/clang/clang/0001-clang-driver-Use-lib-for-ldso-on-OE.patch b/recipes-devtools/clang/clang/0001-clang-driver-Use-lib-for-ldso-on-OE.patch
index dac007a..2a55498 100644
--- a/recipes-devtools/clang/clang/0001-clang-driver-Use-lib-for-ldso-on-OE.patch
+++ b/recipes-devtools/clang/clang/0001-clang-driver-Use-lib-for-ldso-on-OE.patch
@@ -1,7 +1,7 @@
1From f34c165de2b0365cb9931956db78315c8e4dc688 Mon Sep 17 00:00:00 2001 1From db4b34c68445356d303f7f7fffce27b68e1228d6 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 21 May 2016 21:52:36 -0700 3Date: Sat, 21 May 2016 21:52:36 -0700
4Subject: [PATCH 1/4] clang: driver: Use /lib for ldso on OE 4Subject: [PATCH 1/3] clang: driver: Use /lib for ldso on OE
5 5
6OE does not follow the default base_libdir 6OE does not follow the default base_libdir
7that clang has, therefore adjust it for OE 7that clang has, therefore adjust it for OE
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 4 insertions(+), 4 deletions(-) 15 1 file changed, 4 insertions(+), 4 deletions(-)
16 16
17diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp 17diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
18index 4ecbf2b..bcd91f0 100644 18index e71aaf3..fded7ad 100644
19--- a/lib/Driver/ToolChains.cpp 19--- a/lib/Driver/ToolChains.cpp
20+++ b/lib/Driver/ToolChains.cpp 20+++ b/lib/Driver/ToolChains.cpp
21@@ -4270,12 +4270,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 21@@ -4388,12 +4388,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
22 Loader = "ld.so.1"; 22 Loader = "ld.so.1";
23 break; 23 break;
24 case llvm::Triple::ppc64: 24 case llvm::Triple::ppc64:
@@ -33,7 +33,7 @@ index 4ecbf2b..bcd91f0 100644
33 Loader = 33 Loader =
34 (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; 34 (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
35 break; 35 break;
36@@ -4285,7 +4285,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 36@@ -4403,7 +4403,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
37 Loader = "ld-linux.so.2"; 37 Loader = "ld-linux.so.2";
38 break; 38 break;
39 case llvm::Triple::sparcv9: 39 case llvm::Triple::sparcv9:
@@ -42,7 +42,7 @@ index 4ecbf2b..bcd91f0 100644
42 Loader = "ld-linux.so.2"; 42 Loader = "ld-linux.so.2";
43 break; 43 break;
44 case llvm::Triple::systemz: 44 case llvm::Triple::systemz:
45@@ -4299,7 +4299,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 45@@ -4417,7 +4417,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
46 case llvm::Triple::x86_64: { 46 case llvm::Triple::x86_64: {
47 bool X32 = Triple.getEnvironment() == llvm::Triple::GNUX32; 47 bool X32 = Triple.getEnvironment() == llvm::Triple::GNUX32;
48 48
@@ -52,5 +52,5 @@ index 4ecbf2b..bcd91f0 100644
52 break; 52 break;
53 } 53 }
54-- 54--
552.9.0 552.10.0
56 56
diff --git a/recipes-devtools/clang/clang/0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch b/recipes-devtools/clang/clang/0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch
index c343ded..ba2f20d 100644
--- a/recipes-devtools/clang/clang/0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch
+++ b/recipes-devtools/clang/clang/0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch
@@ -1,7 +1,7 @@
1From 2d4ae5fa80d95542ea4df12400c96f28ce2a4484 Mon Sep 17 00:00:00 2001 1From f7c00426faede13d8ba7e8cbfbe31368dcba97d4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 15 May 2015 12:13:17 -0700 3Date: Fri, 15 May 2015 12:13:17 -0700
4Subject: [PATCH 1/5] llvm: Remove CMAKE_CROSSCOMPILING so it can cross compile 4Subject: [PATCH 1/3] llvm: Remove CMAKE_CROSSCOMPILING so it can cross compile
5 5
6we already have llvm-config from clang-native 6we already have llvm-config from clang-native
7 7
@@ -11,10 +11,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
11 1 file changed, 2 insertions(+), 2 deletions(-) 11 1 file changed, 2 insertions(+), 2 deletions(-)
12 12
13diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt 13diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
14index d458771..2e0c634 100644 14index 744fa4e..6713523 100644
15--- a/tools/llvm-config/CMakeLists.txt 15--- a/tools/llvm-config/CMakeLists.txt
16+++ b/tools/llvm-config/CMakeLists.txt 16+++ b/tools/llvm-config/CMakeLists.txt
17@@ -57,7 +57,7 @@ add_definitions(-DCMAKE_CFG_INTDIR="${CMAKE_CFG_INTDIR}") 17@@ -61,7 +61,7 @@ add_definitions(-DCMAKE_CFG_INTDIR="${CMAKE_CFG_INTDIR}")
18 # Add the dependency on the generation step. 18 # Add the dependency on the generation step.
19 add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH}) 19 add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH})
20 20
@@ -23,12 +23,12 @@ index d458771..2e0c634 100644
23 set(${project}_LLVM_CONFIG_EXE "${LLVM_NATIVE_BUILD}/bin/llvm-config") 23 set(${project}_LLVM_CONFIG_EXE "${LLVM_NATIVE_BUILD}/bin/llvm-config")
24 set(${project}_LLVM_CONFIG_EXE ${${project}_LLVM_CONFIG_EXE} PARENT_SCOPE) 24 set(${project}_LLVM_CONFIG_EXE ${${project}_LLVM_CONFIG_EXE} PARENT_SCOPE)
25 25
26@@ -70,4 +70,4 @@ if(CMAKE_CROSSCOMPILING) 26@@ -74,4 +74,4 @@ if(CMAKE_CROSSCOMPILING)
27 add_dependencies(${project}NativeLLVMConfig CONFIGURE_LLVM_NATIVE) 27 add_dependencies(${project}NativeLLVMConfig CONFIGURE_LLVM_NATIVE)
28 28
29 add_dependencies(llvm-config ${project}NativeLLVMConfig) 29 add_dependencies(llvm-config ${project}NativeLLVMConfig)
30-endif(CMAKE_CROSSCOMPILING) 30-endif(CMAKE_CROSSCOMPILING)
31+endif(CMAKE_CROSSCOMPILING1) 31+endif(CMAKE_CROSSCOMPILING1)
32-- 32--
332.9.2 332.10.0
34 34
diff --git a/recipes-devtools/clang/clang/0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch b/recipes-devtools/clang/clang/0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch
index a9057e4..ca11f2f 100644
--- a/recipes-devtools/clang/clang/0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch
+++ b/recipes-devtools/clang/clang/0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch
@@ -1,7 +1,7 @@
1From a30d994ddc3611bca15ff3138c6d0ee7f9fd4021 Mon Sep 17 00:00:00 2001 1From 600e639657ff82be38456919003a11289d35d200 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 May 2016 21:11:06 -0700 3Date: Thu, 19 May 2016 21:11:06 -0700
4Subject: [PATCH 2/4] clang: Driver/tools.cpp: Add -lssp and -lssp_nonshared on 4Subject: [PATCH 2/3] clang: Driver/tools.cpp: Add -lssp and -lssp_nonshared on
5 musl 5 musl
6 6
7musl driver will need to add ssp libraries to linker cmdline 7musl driver will need to add ssp libraries to linker cmdline
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 7 insertions(+) 13 1 file changed, 7 insertions(+)
14 14
15diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp 15diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
16index d3844dd..de7d1b5 100644 16index b7a323f..18f0513 100644
17--- a/lib/Driver/Tools.cpp 17--- a/lib/Driver/Tools.cpp
18+++ b/lib/Driver/Tools.cpp 18+++ b/lib/Driver/Tools.cpp
19@@ -9460,6 +9460,13 @@ void gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, 19@@ -9836,6 +9836,13 @@ void gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
20 if (IsIAMCU) 20 if (IsIAMCU)
21 CmdArgs.push_back("-lgloss"); 21 CmdArgs.push_back("-lgloss");
22 22
@@ -31,5 +31,5 @@ index d3844dd..de7d1b5 100644
31 CmdArgs.push_back("--end-group"); 31 CmdArgs.push_back("--end-group");
32 else 32 else
33-- 33--
342.9.0 342.10.0
35 35
diff --git a/recipes-devtools/clang/clang/0002-llvm-Do-not-assume-linux-glibc.patch b/recipes-devtools/clang/clang/0002-llvm-Do-not-assume-linux-glibc.patch
index 9aaa5fd..ffa30ac 100644
--- a/recipes-devtools/clang/clang/0002-llvm-Do-not-assume-linux-glibc.patch
+++ b/recipes-devtools/clang/clang/0002-llvm-Do-not-assume-linux-glibc.patch
@@ -1,7 +1,7 @@
1From a478964d32e6521a68ef47464b26e50106dc943e Mon Sep 17 00:00:00 2001 1From 17624af2fddd212cc76a5d3c645c4eed3bc897fe Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 15 Mar 2016 05:26:47 +0000 3Date: Tue, 15 Mar 2016 05:26:47 +0000
4Subject: [PATCH 2/5] llvm: Do not assume linux == glibc 4Subject: [PATCH 2/3] llvm: Do not assume linux == glibc
5 5
6musl's implementation of std functions is different 6musl's implementation of std functions is different
7 7
@@ -24,5 +24,5 @@ index 9a7aeb5..e3b7fe2 100644
24 EXPLICIT_SYMBOL(stderr); 24 EXPLICIT_SYMBOL(stderr);
25 EXPLICIT_SYMBOL(stdout); 25 EXPLICIT_SYMBOL(stdout);
26-- 26--
272.9.2 272.10.0
28 28
diff --git a/recipes-devtools/clang/clang/0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch b/recipes-devtools/clang/clang/0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch
index b128390..af07658 100644
--- a/recipes-devtools/clang/clang/0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch
+++ b/recipes-devtools/clang/clang/0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch
@@ -1,7 +1,7 @@
1From 2cf62aa12f3161bc366bfc873964d6fed8454702 Mon Sep 17 00:00:00 2001 1From d123fe38061f40780fb6914139ef76832c46e655 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 10 May 2016 02:00:11 -0700 3Date: Tue, 10 May 2016 02:00:11 -0700
4Subject: [PATCH 3/4] clang: musl/ppc does not support 128-bit long double 4Subject: [PATCH 3/3] clang: musl/ppc does not support 128-bit long double
5 5
6Signed-off-by: Khem Raj <raj.khem@gmail.com> 6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7--- 7---
@@ -9,10 +9,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
9 1 file changed, 2 insertions(+), 1 deletion(-) 9 1 file changed, 2 insertions(+), 1 deletion(-)
10 10
11diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp 11diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
12index c3ca8c8..bd54075 100644 12index 92d07e1..2a99aa9 100644
13--- a/lib/Basic/Targets.cpp 13--- a/lib/Basic/Targets.cpp
14+++ b/lib/Basic/Targets.cpp 14+++ b/lib/Basic/Targets.cpp
15@@ -1593,7 +1593,8 @@ public: 15@@ -1646,7 +1646,8 @@ public:
16 break; 16 break;
17 } 17 }
18 18
@@ -23,5 +23,5 @@ index c3ca8c8..bd54075 100644
23 LongDoubleFormat = &llvm::APFloat::IEEEdouble; 23 LongDoubleFormat = &llvm::APFloat::IEEEdouble;
24 } 24 }
25-- 25--
262.9.0 262.10.0
27 27
diff --git a/recipes-devtools/clang/clang/0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/recipes-devtools/clang/clang/0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
index f62251d..0e09e66 100644
--- a/recipes-devtools/clang/clang/0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
+++ b/recipes-devtools/clang/clang/0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
@@ -1,7 +1,7 @@
1From 9992bf63b2fa53e87d80372f89b6be51678cf6e5 Mon Sep 17 00:00:00 2001 1From 594e0c73c9c37b3016a558914bf3024dc78746ac Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 21 May 2016 00:33:20 +0000 3Date: Sat, 21 May 2016 00:33:20 +0000
4Subject: [PATCH 3/5] llvm: TargetLibraryInfo: Undefine libc functions if they 4Subject: [PATCH 3/3] llvm: TargetLibraryInfo: Undefine libc functions if they
5 are macros 5 are macros
6 6
7musl defines some functions as macros and not inline functions 7musl defines some functions as macros and not inline functions
@@ -13,7 +13,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 21 insertions(+) 13 1 file changed, 21 insertions(+)
14 14
15diff --git a/include/llvm/Analysis/TargetLibraryInfo.def b/include/llvm/Analysis/TargetLibraryInfo.def 15diff --git a/include/llvm/Analysis/TargetLibraryInfo.def b/include/llvm/Analysis/TargetLibraryInfo.def
16index b2a593d..327894c 100644 16index 5d5e5b1..af4d901 100644
17--- a/include/llvm/Analysis/TargetLibraryInfo.def 17--- a/include/llvm/Analysis/TargetLibraryInfo.def
18+++ b/include/llvm/Analysis/TargetLibraryInfo.def 18+++ b/include/llvm/Analysis/TargetLibraryInfo.def
19@@ -531,6 +531,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") 19@@ -531,6 +531,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl")
@@ -66,7 +66,7 @@ index b2a593d..327894c 100644
66 TLI_DEFINE_ENUM_INTERNAL(lstat64) 66 TLI_DEFINE_ENUM_INTERNAL(lstat64)
67 TLI_DEFINE_STRING_INTERNAL("lstat64") 67 TLI_DEFINE_STRING_INTERNAL("lstat64")
68 /// void *malloc(size_t size); 68 /// void *malloc(size_t size);
69@@ -927,6 +942,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") 69@@ -930,6 +945,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf")
70 TLI_DEFINE_ENUM_INTERNAL(stat) 70 TLI_DEFINE_ENUM_INTERNAL(stat)
71 TLI_DEFINE_STRING_INTERNAL("stat") 71 TLI_DEFINE_STRING_INTERNAL("stat")
72 /// int stat64(const char *path, struct stat64 *buf); 72 /// int stat64(const char *path, struct stat64 *buf);
@@ -76,7 +76,7 @@ index b2a593d..327894c 100644
76 TLI_DEFINE_ENUM_INTERNAL(stat64) 76 TLI_DEFINE_ENUM_INTERNAL(stat64)
77 TLI_DEFINE_STRING_INTERNAL("stat64") 77 TLI_DEFINE_STRING_INTERNAL("stat64")
78 /// int statvfs(const char *path, struct statvfs *buf); 78 /// int statvfs(const char *path, struct statvfs *buf);
79@@ -1056,6 +1074,9 @@ TLI_DEFINE_STRING_INTERNAL("times") 79@@ -1059,6 +1077,9 @@ TLI_DEFINE_STRING_INTERNAL("times")
80 TLI_DEFINE_ENUM_INTERNAL(tmpfile) 80 TLI_DEFINE_ENUM_INTERNAL(tmpfile)
81 TLI_DEFINE_STRING_INTERNAL("tmpfile") 81 TLI_DEFINE_STRING_INTERNAL("tmpfile")
82 /// FILE *tmpfile64(void) 82 /// FILE *tmpfile64(void)
@@ -87,5 +87,5 @@ index b2a593d..327894c 100644
87 TLI_DEFINE_STRING_INTERNAL("tmpfile64") 87 TLI_DEFINE_STRING_INTERNAL("tmpfile64")
88 /// int toascii(int c); 88 /// int toascii(int c);
89-- 89--
902.9.2 902.10.0
91 91
diff --git a/recipes-devtools/clang/clang/0004-clang-Check-for-float-ABI-on-arm.patch b/recipes-devtools/clang/clang/0004-clang-Check-for-float-ABI-on-arm.patch
deleted file mode 100644
index e47b48e..0000000
--- a/recipes-devtools/clang/clang/0004-clang-Check-for-float-ABI-on-arm.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 56cdacb669a182e69159b840a6a440f7f19211f9 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 4 Jul 2016 20:14:52 -0700
4Subject: [PATCH 4/4] clang: Check for float ABI on arm
5
6Triggering hard-float on arm does not just
7depend upong triplet being *-*-eabihf but
8also check for float ABI which can be
9set on commandline
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/Driver/ToolChains.cpp | 4 +++-
14 1 file changed, 3 insertions(+), 1 deletion(-)
15
16diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
17index bcd91f0..fd31d7e 100644
18--- a/lib/Driver/ToolChains.cpp
19+++ b/lib/Driver/ToolChains.cpp
20@@ -4212,7 +4212,9 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
21 default:
22 ArchName = Triple.getArchName().str();
23 }
24- if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF)
25+ if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF ||
26+ (Triple.getEnvironment() == llvm::Triple::MuslEABI &&
27+ tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard))
28 ArchName += "hf";
29
30 return "/lib/ld-musl-" + ArchName + ".so.1";
31--
322.9.0
33
diff --git a/recipes-devtools/clang/clang/0004-llvm-Fix-inconsistent-uses-of-.cfi_sections.patch b/recipes-devtools/clang/clang/0004-llvm-Fix-inconsistent-uses-of-.cfi_sections.patch
deleted file mode 100644
index c77a8d2..0000000
--- a/recipes-devtools/clang/clang/0004-llvm-Fix-inconsistent-uses-of-.cfi_sections.patch
+++ /dev/null
@@ -1,124 +0,0 @@
1From 260b42499a218f18730b946f053890cc1641e4c3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 7 Aug 2016 22:48:44 -0700
4Subject: [PATCH 4/5] llvm: Fix inconsistent uses of .cfi_sections
5
6Error: inconsistent uses of .cfi_sections
7
8From the 2.27 binutils assemblers. It seems that 2.27 doesn't like the
9
10.cfi_sections .debug_frame
11
12directive following previous .cfi directives. The assemblers seem to be happy if the .cfi_sections directive precedes any other .cfi directive. Is this a bug in binutils or LLVM? It looks as if a fix might be to move the generation of the .cfi_sections directive from endModule() to somewhere else (maybe a non-existant beginModule()?).
13
14As a work-around I modified DwarfCFIException.cpp and ARMException.cpp to send the .cfi_sections directive before the first function is processed. Seems to work.
15
16-Rich
17
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19---
20 lib/CodeGen/AsmPrinter/ARMException.cpp | 10 +++++++++-
21 lib/CodeGen/AsmPrinter/DwarfCFIException.cpp | 11 ++++++++++-
22 lib/CodeGen/AsmPrinter/DwarfException.h | 4 ++++
23 3 files changed, 23 insertions(+), 2 deletions(-)
24
25diff --git a/lib/CodeGen/AsmPrinter/ARMException.cpp b/lib/CodeGen/AsmPrinter/ARMException.cpp
26index 5294c98..8295326 100644
27--- a/lib/CodeGen/AsmPrinter/ARMException.cpp
28+++ b/lib/CodeGen/AsmPrinter/ARMException.cpp
29@@ -34,7 +34,8 @@
30 #include "llvm/Target/TargetRegisterInfo.h"
31 using namespace llvm;
32
33-ARMException::ARMException(AsmPrinter *A) : DwarfCFIExceptionBase(A) {}
34+ARMException::ARMException(AsmPrinter *A)
35+ : DwarfCFIExceptionBase(A) {}
36
37 ARMException::~ARMException() {}
38
39@@ -46,8 +47,10 @@ ARMTargetStreamer &ARMException::getTargetStreamer() {
40 /// endModule - Emit all exception information that should come after the
41 /// content.
42 void ARMException::endModule() {
43+#if RICH
44 if (shouldEmitCFI)
45 Asm->OutStreamer->EmitCFISections(false, true);
46+#endif
47 }
48
49 void ARMException::beginFunction(const MachineFunction *MF) {
50@@ -59,6 +62,11 @@ void ARMException::beginFunction(const MachineFunction *MF) {
51 "non-EH CFI not yet supported in prologue with EHABI lowering");
52 if (MoveType == AsmPrinter::CFI_M_Debug) {
53 shouldEmitCFI = true;
54+ // RICH:
55+ if (cfiSectionsNeeded) {
56+ Asm->OutStreamer->EmitCFISections(false, true);
57+ cfiSectionsNeeded = false;
58+ }
59 Asm->OutStreamer->EmitCFIStartProc(false);
60 }
61 }
62diff --git a/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp b/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
63index 2eae1b2..af4c081 100644
64--- a/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
65+++ b/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
66@@ -39,7 +39,7 @@
67 using namespace llvm;
68
69 DwarfCFIExceptionBase::DwarfCFIExceptionBase(AsmPrinter *A)
70- : EHStreamer(A), shouldEmitCFI(false) {}
71+ : EHStreamer(A), shouldEmitCFI(false), cfiSectionsNeeded(true) {}
72
73 void DwarfCFIExceptionBase::markFunctionEnd() {
74 endFragment();
75@@ -70,8 +70,10 @@ void DwarfCFIException::endModule() {
76 if (!Asm->MAI->usesCFIForEH())
77 return;
78
79+#if RICH
80 if (moveTypeModule == AsmPrinter::CFI_M_Debug)
81 Asm->OutStreamer->EmitCFISections(false, true);
82+#endif
83
84 const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
85
86@@ -97,6 +99,13 @@ void DwarfCFIException::beginFunction(const MachineFunction *MF) {
87 shouldEmitMoves = shouldEmitPersonality = shouldEmitLSDA = false;
88 const Function *F = MF->getFunction();
89
90+ // RICH: SjLj uses this pass and it doesn't need this info.
91+ if (cfiSectionsNeeded && Asm->MAI->usesCFIForEH()) {
92+ if (moveTypeModule == AsmPrinter::CFI_M_Debug)
93+ Asm->OutStreamer->EmitCFISections(false, true);
94+ }
95+ cfiSectionsNeeded = false;
96+
97 // If any landing pads survive, we need an EH table.
98 bool hasLandingPads = !MMI->getLandingPads().empty();
99
100diff --git a/lib/CodeGen/AsmPrinter/DwarfException.h b/lib/CodeGen/AsmPrinter/DwarfException.h
101index 8287f28..f150f4e 100644
102--- a/lib/CodeGen/AsmPrinter/DwarfException.h
103+++ b/lib/CodeGen/AsmPrinter/DwarfException.h
104@@ -29,6 +29,9 @@ protected:
105 /// Per-function flag to indicate if frame CFI info should be emitted.
106 bool shouldEmitCFI;
107
108+ /// Cleared if the .cfi_sections directive has been output.
109+ bool cfiSectionsNeeded;
110+
111 void markFunctionEnd() override;
112 void endFragment() override;
113 };
114@@ -46,6 +49,7 @@ class LLVM_LIBRARY_VISIBILITY DwarfCFIException : public DwarfCFIExceptionBase {
115 /// Per-function flag to indicate if frame moves info should be emitted.
116 bool shouldEmitMoves;
117
118+
119 AsmPrinter::CFIMoveType moveTypeModule;
120
121 public:
122--
1232.9.2
124
diff --git a/recipes-devtools/clang/clang/0005-llvm-Fix-build-on-mips-ppc-disable-EH-table-support.patch b/recipes-devtools/clang/clang/0005-llvm-Fix-build-on-mips-ppc-disable-EH-table-support.patch
deleted file mode 100644
index 82e0bb2..0000000
--- a/recipes-devtools/clang/clang/0005-llvm-Fix-build-on-mips-ppc-disable-EH-table-support.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 28df3d17ac3f7925aba87eb2dc191342c11e59ae Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 7 Aug 2016 22:52:09 -0700
4Subject: [PATCH 5/5] llvm: Fix build on mips/ppc disable EH table support
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp | 3 ++-
9 1 file changed, 2 insertions(+), 1 deletion(-)
10
11diff --git a/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp b/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
12index e39acc7..69e165e 100644
13--- a/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
14+++ b/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
15@@ -34,7 +34,8 @@ RTDyldMemoryManager::~RTDyldMemoryManager() {}
16
17 // Determine whether we can register EH tables.
18 #if (defined(__GNUC__) && !defined(__ARM_EABI__) && !defined(__ia64__) && \
19- !defined(__SEH__) && !defined(__USING_SJLJ_EXCEPTIONS__))
20+ !defined(__SEH__) && !defined(__USING_SJLJ_EXCEPTIONS__)) && \
21+ !defined(__mips__) && !defined(__ppc__)
22 #define HAVE_EHTABLE_SUPPORT 1
23 #else
24 #define HAVE_EHTABLE_SUPPORT 0
25--
262.9.2
27
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index 2c22ed4..b5331fb 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -18,13 +18,10 @@ SRC_URI = "${LLVM_GIT}/llvm.git;protocol=${LLVM_GIT_PROTOCOL};branch=${BRANCH};n
18 file://0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch \ 18 file://0001-llvm-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-com.patch \
19 file://0002-llvm-Do-not-assume-linux-glibc.patch \ 19 file://0002-llvm-Do-not-assume-linux-glibc.patch \
20 file://0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch \ 20 file://0003-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch \
21 file://0004-llvm-Fix-inconsistent-uses-of-.cfi_sections.patch \
22 file://0005-llvm-Fix-build-on-mips-ppc-disable-EH-table-support.patch \
23 \ 21 \
24 file://0001-clang-driver-Use-lib-for-ldso-on-OE.patch;patchdir=tools/clang \ 22 file://0001-clang-driver-Use-lib-for-ldso-on-OE.patch;patchdir=tools/clang \
25 file://0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch;patchdir=tools/clang \ 23 file://0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch;patchdir=tools/clang \
26 file://0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch;patchdir=tools/clang \ 24 file://0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch;patchdir=tools/clang \
27 file://0004-clang-Check-for-float-ABI-on-arm.patch;patchdir=tools/clang \
28 " 25 "
29 26
30SRCREV_FORMAT = "llvm_clang" 27SRCREV_FORMAT = "llvm_clang"
diff --git a/recipes-devtools/clang/compiler-rt/0001-compiler-rt-Fix-target-architecture-matching.patch b/recipes-devtools/clang/compiler-rt/0001-compiler-rt-Fix-target-architecture-matching.patch
deleted file mode 100644
index 604d1eb..0000000
--- a/recipes-devtools/clang/compiler-rt/0001-compiler-rt-Fix-target-architecture-matching.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 921549310c98ac7d594d1f290f053b8e2b3a32d0 Mon Sep 17 00:00:00 2001
2From: Francis Ricci <francisjricci@gmail.com>
3Date: Wed, 20 Jul 2016 18:06:31 +0000
4Subject: [PATCH 1/4] [compiler-rt] Fix target architecture matching
5
6Summary:
7Use stricter comparisons for architecture. This prevents cmake from failing
8for sysroots which can only compile armhf and not arm, since
9arm MATCHES armhf is true, while arm STREQUAL armhf is false.
10
11Reviewers: beanz, compnerd
12
13Subscribers: aemerson, llvm-commits
14
15Differential Revision: https://reviews.llvm.org/D22473
16
17git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@276148 91177308-0d34-0410-b5e6-96231b3b80d8
18---
19 cmake/Modules/CompilerRTUtils.cmake | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
23index 78b6dce..5987cf5 100644
24--- a/cmake/Modules/CompilerRTUtils.cmake
25+++ b/cmake/Modules/CompilerRTUtils.cmake
26@@ -126,7 +126,7 @@ macro(test_target_arch arch def)
27 endif()
28 if(${CAN_TARGET_${arch}})
29 list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch})
30- elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "${arch}" AND
31+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" STREQUAL "${arch}" AND
32 COMPILER_RT_HAS_EXPLICIT_DEFAULT_TARGET_TRIPLE)
33 # Bail out if we cannot target the architecture we plan to test.
34 message(FATAL_ERROR "Cannot compile for ${arch}:\n${TARGET_${arch}_OUTPUT}")
35--
362.9.0
37
diff --git a/recipes-devtools/clang/compiler-rt/0002-support-a-new-embedded-linux-target.patch b/recipes-devtools/clang/compiler-rt/0001-support-a-new-embedded-linux-target.patch
index 67c7678..111c556 100644
--- a/recipes-devtools/clang/compiler-rt/0002-support-a-new-embedded-linux-target.patch
+++ b/recipes-devtools/clang/compiler-rt/0001-support-a-new-embedded-linux-target.patch
@@ -1,7 +1,7 @@
1From 4bdc7871ab0a6134ee01c138e863476de9c08e25 Mon Sep 17 00:00:00 2001 1From 2d08c5752ce9d3170798d12d46827e85a6e8ef42 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 19 Apr 2015 15:16:23 -0700 3Date: Sun, 19 Apr 2015 15:16:23 -0700
4Subject: [PATCH 2/4] support a new embedded linux target 4Subject: [PATCH 1/3] support a new embedded linux target
5 5
6Signed-off-by: Khem Raj <raj.khem@gmail.com> 6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7--- 7---
@@ -322,5 +322,5 @@ diff --git a/make/platform/clang_linux_embedded_test_input.c b/make/platform/cla
322new file mode 100644 322new file mode 100644
323index 0000000..e69de29 323index 0000000..e69de29
324-- 324--
3252.9.0 3252.10.0
326 326
diff --git a/recipes-devtools/clang/compiler-rt/0002-Simplify-cross-compilation.-Don-t-use-native-compile.patch b/recipes-devtools/clang/compiler-rt/0002-Simplify-cross-compilation.-Don-t-use-native-compile.patch
new file mode 100644
index 0000000..dbf3ea5
--- /dev/null
+++ b/recipes-devtools/clang/compiler-rt/0002-Simplify-cross-compilation.-Don-t-use-native-compile.patch
@@ -0,0 +1,45 @@
1From dc8fde5074321b80d23419127d28ce90ac984c96 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 May 2016 23:11:45 -0700
4Subject: [PATCH 2/3] Simplify cross-compilation. Don't use native-compiled
5 llvm-config.
6
7 Note: AddLLVM.cmake does not expose the LLVM source directory.
8 So if you want to run the test suite, you need to either:
9
10 1) set LLVM_MAIN_SRC_DIR explicitly (to find lit.py)
11 2) change AddLLVM.cmake to point to an installed 'lit'.
12 3) add_subdirectory(compiler-rt/test) from clang instead of compiler-rt.
13
14https://us.codeaurora.org/patches/quic/llvm/50683/compiler-rt-cross-compilation.patch
15
16Signed-off-by: Greg Fitzgerald <gregf@codeaurora.org>
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
18---
19 CMakeLists.txt | 10 +++++++++-
20 1 file changed, 9 insertions(+), 1 deletion(-)
21
22diff --git a/CMakeLists.txt b/CMakeLists.txt
23index 5b1591e..7c6c0f4 100644
24--- a/CMakeLists.txt
25+++ b/CMakeLists.txt
26@@ -42,7 +42,15 @@ option(COMPILER_RT_BUILD_XRAY "Build xray" ON)
27 mark_as_advanced(COMPILER_RT_BUILD_XRAY)
28
29 if (COMPILER_RT_STANDALONE_BUILD)
30- load_llvm_config()
31+ find_package(LLVM REQUIRED)
32+ list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
33+
34+ # Variables that AddLLVM.cmake depends on (included by AddCompilerRT)
35+ set(LLVM_TOOLS_BINARY_DIR "${LLVM_INSTALL_PREFIX}/bin")
36+ set(LLVM_LIBRARY_DIR "${LLVM_INSTALL_PREFIX}/lib")
37+
38+ set(LLVM_LIBRARY_OUTPUT_INTDIR
39+ ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
40
41 # Find Python interpreter.
42 set(Python_ADDITIONAL_VERSIONS 2.7 2.6 2.5)
43--
442.10.0
45
diff --git a/recipes-devtools/clang/compiler-rt/0004-Disable-tsan-on-OE-glibc.patch b/recipes-devtools/clang/compiler-rt/0003-Disable-tsan-on-OE-glibc.patch
index 8da7512..67e660d 100644
--- a/recipes-devtools/clang/compiler-rt/0004-Disable-tsan-on-OE-glibc.patch
+++ b/recipes-devtools/clang/compiler-rt/0003-Disable-tsan-on-OE-glibc.patch
@@ -1,7 +1,7 @@
1From baeeb27bb523b2bff96ab2fe2c5b38ecdd0570d0 Mon Sep 17 00:00:00 2001 1From 622ef6bbd65f71ebbaf3525d50fb357e62631a08 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 18 Jul 2016 08:05:02 +0000 3Date: Mon, 18 Jul 2016 08:05:02 +0000
4Subject: [PATCH 4/4] Disable tsan on OE/glibc 4Subject: [PATCH 3/3] Disable tsan on OE/glibc
5 5
6It does not build see 6It does not build see
7http://lists.llvm.org/pipermail/llvm-dev/2016-July/102235.html 7http://lists.llvm.org/pipermail/llvm-dev/2016-July/102235.html
@@ -12,10 +12,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
12 1 file changed, 1 insertion(+), 1 deletion(-) 12 1 file changed, 1 insertion(+), 1 deletion(-)
13 13
14diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake 14diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
15index ddb0304..4241771 100644 15index cb9f74b..d7e0fba 100644
16--- a/cmake/config-ix.cmake 16--- a/cmake/config-ix.cmake
17+++ b/cmake/config-ix.cmake 17+++ b/cmake/config-ix.cmake
18@@ -452,7 +452,7 @@ else() 18@@ -472,7 +472,7 @@ else()
19 endif() 19 endif()
20 20
21 if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND 21 if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND
@@ -25,5 +25,5 @@ index ddb0304..4241771 100644
25 else() 25 else()
26 set(COMPILER_RT_HAS_TSAN FALSE) 26 set(COMPILER_RT_HAS_TSAN FALSE)
27-- 27--
282.9.0 282.10.0
29 29
diff --git a/recipes-devtools/clang/compiler-rt/0003-Simplify-cross-compilation.-Don-t-use-native-compile.patch b/recipes-devtools/clang/compiler-rt/0003-Simplify-cross-compilation.-Don-t-use-native-compile.patch
deleted file mode 100644
index 9354f66..0000000
--- a/recipes-devtools/clang/compiler-rt/0003-Simplify-cross-compilation.-Don-t-use-native-compile.patch
+++ /dev/null
@@ -1,67 +0,0 @@
1From 6676553c56ac1879d8d597351b457ba2e087168c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 May 2016 23:11:45 -0700
4Subject: [PATCH 3/4] Simplify cross-compilation. Don't use native-compiled
5 llvm-config.
6
7 Note: AddLLVM.cmake does not expose the LLVM source directory.
8 So if you want to run the test suite, you need to either:
9
10 1) set LLVM_MAIN_SRC_DIR explicitly (to find lit.py)
11 2) change AddLLVM.cmake to point to an installed 'lit'.
12 3) add_subdirectory(compiler-rt/test) from clang instead of compiler-rt.
13
14https://us.codeaurora.org/patches/quic/llvm/50683/compiler-rt-cross-compilation.patch
15
16Signed-off-by: Greg Fitzgerald <gregf@codeaurora.org>
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
18---
19 CMakeLists.txt | 32 ++++++--------------------------
20 1 file changed, 6 insertions(+), 26 deletions(-)
21
22diff --git a/CMakeLists.txt b/CMakeLists.txt
23index a067581..ce904c0 100644
24--- a/CMakeLists.txt
25+++ b/CMakeLists.txt
26@@ -39,32 +39,12 @@ option(COMPILER_RT_BUILD_SANITIZERS "Build sanitizers" ON)
27 mark_as_advanced(COMPILER_RT_BUILD_SANITIZERS)
28
29 if (COMPILER_RT_STANDALONE_BUILD)
30- if (NOT LLVM_CONFIG_PATH)
31- find_program(LLVM_CONFIG_PATH "llvm-config"
32- DOC "Path to llvm-config binary")
33- if (NOT LLVM_CONFIG_PATH)
34- message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
35- endif()
36- endif()
37- execute_process(
38- COMMAND ${LLVM_CONFIG_PATH} "--obj-root" "--bindir" "--libdir" "--src-root"
39- RESULT_VARIABLE HAD_ERROR
40- OUTPUT_VARIABLE CONFIG_OUTPUT)
41- if (HAD_ERROR)
42- message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}")
43- endif()
44- string(REGEX REPLACE "[ \t]*[\r\n]+[ \t]*" ";" CONFIG_OUTPUT ${CONFIG_OUTPUT})
45- list(GET CONFIG_OUTPUT 0 LLVM_BINARY_DIR)
46- list(GET CONFIG_OUTPUT 1 LLVM_TOOLS_BINARY_DIR)
47- list(GET CONFIG_OUTPUT 2 LLVM_LIBRARY_DIR)
48- list(GET CONFIG_OUTPUT 3 LLVM_MAIN_SRC_DIR)
49-
50- # Make use of LLVM CMake modules.
51- file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE)
52- set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
53- list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")
54- # Get some LLVM variables from LLVMConfig.
55- include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
56+ find_package(LLVM REQUIRED)
57+ list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
58+
59+ # Variables that AddLLVM.cmake depends on (included by AddCompilerRT)
60+ set(LLVM_TOOLS_BINARY_DIR "${LLVM_INSTALL_PREFIX}/bin")
61+ set(LLVM_LIBRARY_DIR "${LLVM_INSTALL_PREFIX}/lib")
62
63 set(LLVM_LIBRARY_OUTPUT_INTDIR
64 ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
65--
662.9.0
67
diff --git a/recipes-devtools/clang/compiler-rt/0005-builtins-Specifiy-builtins-using-VFP-separately.patch b/recipes-devtools/clang/compiler-rt/0005-builtins-Specifiy-builtins-using-VFP-separately.patch
deleted file mode 100644
index 5e7a43b..0000000
--- a/recipes-devtools/clang/compiler-rt/0005-builtins-Specifiy-builtins-using-VFP-separately.patch
+++ /dev/null
@@ -1,147 +0,0 @@
1From 59cffbd825a2f9c9c9b21d1314f7a2824e01a158 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 13 Aug 2016 00:33:15 +0000
4Subject: [PATCH] builtins: Specifiy builtins using VFP separately
5
6This helps in compiling compiler-rt for armv5
7using soft-float
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 lib/builtins/CMakeLists.txt | 84 +++++++++++++++++++++++----------------------
12 1 file changed, 43 insertions(+), 41 deletions(-)
13
14diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
15index d5a1efe..d84bf96 100644
16--- a/lib/builtins/CMakeLists.txt
17+++ b/lib/builtins/CMakeLists.txt
18@@ -257,8 +257,6 @@ else () # MSVC
19 endif () # if (NOT MSVC)
20
21 set(arm_SOURCES
22- arm/adddf3vfp.S
23- arm/addsf3vfp.S
24 arm/aeabi_cdcmp.S
25 arm/aeabi_cdcmpeq_check_nan.c
26 arm/aeabi_cfcmp.S
27@@ -281,10 +279,44 @@ set(arm_SOURCES
28 arm/clzdi2.S
29 arm/clzsi2.S
30 arm/comparesf2.S
31- arm/divdf3vfp.S
32 arm/divmodsi4.S
33- arm/divsf3vfp.S
34 arm/divsi3.S
35+ arm/modsi3.S
36+ arm/switch16.S
37+ arm/switch32.S
38+ arm/switch8.S
39+ arm/switchu8.S
40+ arm/sync_fetch_and_add_4.S
41+ arm/sync_fetch_and_add_8.S
42+ arm/sync_fetch_and_and_4.S
43+ arm/sync_fetch_and_and_8.S
44+ arm/sync_fetch_and_max_4.S
45+ arm/sync_fetch_and_max_8.S
46+ arm/sync_fetch_and_min_4.S
47+ arm/sync_fetch_and_min_8.S
48+ arm/sync_fetch_and_nand_4.S
49+ arm/sync_fetch_and_nand_8.S
50+ arm/sync_fetch_and_or_4.S
51+ arm/sync_fetch_and_or_8.S
52+ arm/sync_fetch_and_sub_4.S
53+ arm/sync_fetch_and_sub_8.S
54+ arm/sync_fetch_and_umax_4.S
55+ arm/sync_fetch_and_umax_8.S
56+ arm/sync_fetch_and_umin_4.S
57+ arm/sync_fetch_and_umin_8.S
58+ arm/sync_fetch_and_xor_4.S
59+ arm/sync_fetch_and_xor_8.S
60+ arm/sync_synchronize.S
61+ arm/udivmodsi4.S
62+ arm/udivsi3.S
63+ arm/umodsi3.S
64+ ${GENERIC_SOURCES})
65+
66+set(armvfp_SOURCES
67+ arm/adddf3vfp.S
68+ arm/addsf3vfp.S
69+ arm/divdf3vfp.S
70+ arm/divsf3vfp.S
71 arm/eqdf2vfp.S
72 arm/eqsf2vfp.S
73 arm/extendsfdf2vfp.S
74@@ -304,7 +336,6 @@ set(arm_SOURCES
75 arm/lesf2vfp.S
76 arm/ltdf2vfp.S
77 arm/ltsf2vfp.S
78- arm/modsi3.S
79 arm/muldf3vfp.S
80 arm/mulsf3vfp.S
81 arm/nedf2vfp.S
82@@ -315,38 +346,9 @@ set(arm_SOURCES
83 arm/save_vfp_d8_d15_regs.S
84 arm/subdf3vfp.S
85 arm/subsf3vfp.S
86- arm/switch16.S
87- arm/switch32.S
88- arm/switch8.S
89- arm/switchu8.S
90- arm/sync_fetch_and_add_4.S
91- arm/sync_fetch_and_add_8.S
92- arm/sync_fetch_and_and_4.S
93- arm/sync_fetch_and_and_8.S
94- arm/sync_fetch_and_max_4.S
95- arm/sync_fetch_and_max_8.S
96- arm/sync_fetch_and_min_4.S
97- arm/sync_fetch_and_min_8.S
98- arm/sync_fetch_and_nand_4.S
99- arm/sync_fetch_and_nand_8.S
100- arm/sync_fetch_and_or_4.S
101- arm/sync_fetch_and_or_8.S
102- arm/sync_fetch_and_sub_4.S
103- arm/sync_fetch_and_sub_8.S
104- arm/sync_fetch_and_umax_4.S
105- arm/sync_fetch_and_umax_8.S
106- arm/sync_fetch_and_umin_4.S
107- arm/sync_fetch_and_umin_8.S
108- arm/sync_fetch_and_xor_4.S
109- arm/sync_fetch_and_xor_8.S
110- arm/sync_synchronize.S
111 arm/truncdfsf2vfp.S
112- arm/udivmodsi4.S
113- arm/udivsi3.S
114- arm/umodsi3.S
115 arm/unorddf2vfp.S
116- arm/unordsf2vfp.S
117- ${GENERIC_SOURCES})
118+ arm/unordsf2vfp.S)
119
120 set(aarch64_SOURCES
121 comparetf2.c
122@@ -367,16 +369,16 @@ set(aarch64_SOURCES
123 trunctfsf2.c
124 ${GENERIC_SOURCES})
125
126-set(armhf_SOURCES ${arm_SOURCES})
127-set(armv7_SOURCES ${arm_SOURCES})
128-set(armv7s_SOURCES ${arm_SOURCES})
129-set(armv7k_SOURCES ${arm_SOURCES})
130+set(armhf_SOURCES ${arm_SOURCES} ${armvfp_SOURCES})
131+set(armv7_SOURCES ${arm_SOURCES} ${armvfp_SOURCES})
132+set(armv7s_SOURCES ${arm_SOURCES} ${armvfp_SOURCES})
133+set(armv7k_SOURCES ${arm_SOURCES} ${armvfp_SOURCES})
134 set(arm64_SOURCES ${aarch64_SOURCES})
135
136 # macho_embedded archs
137 set(armv6m_SOURCES ${GENERIC_SOURCES})
138-set(armv7m_SOURCES ${arm_SOURCES})
139-set(armv7em_SOURCES ${arm_SOURCES})
140+set(armv7m_SOURCES ${arm_SOURCES} ${armvfp_SOURCES})
141+set(armv7em_SOURCES ${arm_SOURCES} ${armvfp_SOURCES})
142
143 set(mips_SOURCES ${GENERIC_SOURCES})
144 set(mipsel_SOURCES ${mips_SOURCES})
145--
1461.9.1
147
diff --git a/recipes-devtools/clang/compiler-rt_git.bb b/recipes-devtools/clang/compiler-rt_git.bb
index 7aa3fd6..36171d4 100644
--- a/recipes-devtools/clang/compiler-rt_git.bb
+++ b/recipes-devtools/clang/compiler-rt_git.bb
@@ -17,11 +17,9 @@ PV .= "+git${SRCPV}"
17LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=bf24bca27049b52e9738451aa55771d4; \ 17LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=bf24bca27049b52e9738451aa55771d4; \
18" 18"
19SRC_URI = "${LLVM_GIT}/compiler-rt.git;protocol=${LLVM_GIT_PROTOCOL};branch=${BRANCH};name=compiler-rt \ 19SRC_URI = "${LLVM_GIT}/compiler-rt.git;protocol=${LLVM_GIT_PROTOCOL};branch=${BRANCH};name=compiler-rt \
20 file://0001-compiler-rt-Fix-target-architecture-matching.patch \ 20 file://0001-support-a-new-embedded-linux-target.patch \
21 file://0002-support-a-new-embedded-linux-target.patch \ 21 file://0002-Simplify-cross-compilation.-Don-t-use-native-compile.patch \
22 file://0003-Simplify-cross-compilation.-Don-t-use-native-compile.patch \ 22 file://0003-Disable-tsan-on-OE-glibc.patch \
23 file://0004-Disable-tsan-on-OE-glibc.patch \
24 file://0005-builtins-Specifiy-builtins-using-VFP-separately.patch \
25" 23"
26 24
27SRCREV_FORMAT = "compiler-rt" 25SRCREV_FORMAT = "compiler-rt"
diff --git a/recipes-devtools/clang/libcxx/0001-use-constexpr-when-using-glibc.patch b/recipes-devtools/clang/libcxx/0001-use-constexpr-when-using-glibc.patch
index c125c4a..9d2b327 100644
--- a/recipes-devtools/clang/libcxx/0001-use-constexpr-when-using-glibc.patch
+++ b/recipes-devtools/clang/libcxx/0001-use-constexpr-when-using-glibc.patch
@@ -1,4 +1,4 @@
1From 7d5006df84aeec510a07717310e17a35043e1f9e Mon Sep 17 00:00:00 2001 1From a5b8426cf21c3c303349a5be4d735123f514c435 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 May 2016 23:22:52 -0700 3Date: Thu, 19 May 2016 23:22:52 -0700
4Subject: [PATCH] use constexpr when using glibc 4Subject: [PATCH] use constexpr when using glibc
@@ -44,5 +44,5 @@ index 38a76ac..0fb1e2f 100644
44 condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;} 44 condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}
45 #endif 45 #endif
46-- 46--
472.9.0 472.10.0
48 48
diff --git a/recipes-devtools/clang/libcxxabi/0001-Do-not-use-LIBCXXABI_ARM_EHABI.patch b/recipes-devtools/clang/libcxxabi/0001-Do-not-use-LIBCXXABI_ARM_EHABI.patch
index 0684d2c..536354d 100644
--- a/recipes-devtools/clang/libcxxabi/0001-Do-not-use-LIBCXXABI_ARM_EHABI.patch
+++ b/recipes-devtools/clang/libcxxabi/0001-Do-not-use-LIBCXXABI_ARM_EHABI.patch
@@ -1,4 +1,4 @@
1From 141910ae8cee87307a89a9e43894000dcf47366e Mon Sep 17 00:00:00 2001 1From d072fa3f959a559e6913ebbc62bcdeb7f4a55143 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 24 Mar 2016 06:31:35 +0000 3Date: Thu, 24 Mar 2016 06:31:35 +0000
4Subject: [PATCH] Do not use LIBCXXABI_ARM_EHABI 4Subject: [PATCH] Do not use LIBCXXABI_ARM_EHABI
@@ -13,7 +13,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
14 14
15diff --git a/include/__cxxabi_config.h b/include/__cxxabi_config.h 15diff --git a/include/__cxxabi_config.h b/include/__cxxabi_config.h
16index 68e325f..41fc953 100644 16index 61555f1..a979694 100644
17--- a/include/__cxxabi_config.h 17--- a/include/__cxxabi_config.h
18+++ b/include/__cxxabi_config.h 18+++ b/include/__cxxabi_config.h
19@@ -12,7 +12,7 @@ 19@@ -12,7 +12,7 @@
@@ -26,5 +26,5 @@ index 68e325f..41fc953 100644
26 #define LIBCXXABI_ARM_EHABI 0 26 #define LIBCXXABI_ARM_EHABI 0
27 #endif 27 #endif
28-- 28--
291.9.1 292.9.0
30 30