summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2016-07-12 19:10:37 -0700
committerKhem Raj <raj.khem@gmail.com>2016-07-12 19:10:37 -0700
commit51203ffaf4406c96601c7e0088f41883fcf399ed (patch)
treebfde2c070c8975b6366e533d149a3535ecae6e3f
parenta24155d4a09f6c52fc3de2a50b85bd4f6458d149 (diff)
downloadmeta-clang-51203ffaf4406c96601c7e0088f41883fcf399ed.tar.gz
clang: Fix dynamic linker detection for arm hf
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-devtools/clang/clang/0001-clang-driver-Use-lib-for-ldso-on-OE.patch10
-rw-r--r--recipes-devtools/clang/clang/0002-clang-Driver-tools.cpp-Add-lssp-and-lssp_nonshared-o.patch6
-rw-r--r--recipes-devtools/clang/clang/0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch6
-rw-r--r--recipes-devtools/clang/clang/0004-clang-Check-for-float-ABI-on-arm.patch15
4 files changed, 18 insertions, 19 deletions
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 7571c3a..dac007a 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,4 +1,4 @@
1From 5273f61c9e93d1fa263fba29f0d62ab2860cde65 Mon Sep 17 00:00:00 2001 1From f34c165de2b0365cb9931956db78315c8e4dc688 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/4] clang: driver: Use /lib for ldso on 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 7884c40..706612d 100644 18index 4ecbf2b..bcd91f0 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@@ -4227,12 +4227,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 21@@ -4270,12 +4270,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 7884c40..706612d 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@@ -4242,7 +4242,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 36@@ -4285,7 +4285,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 7884c40..706612d 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@@ -4256,7 +4256,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 45@@ -4299,7 +4299,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
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 35b8009..a9057e4 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,4 +1,4 @@
1From ad80343e25ebf5ef82ab3f1b8ce339d4702e5fa6 Mon Sep 17 00:00:00 2001 1From a30d994ddc3611bca15ff3138c6d0ee7f9fd4021 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/4] clang: Driver/tools.cpp: Add -lssp and -lssp_nonshared on
@@ -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 2425619..ab048ba 100644 16index d3844dd..de7d1b5 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@@ -9451,6 +9451,13 @@ void gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, 19@@ -9460,6 +9460,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
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 182ae91..b128390 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,4 +1,4 @@
1From 8a9808b868c81d3fc65a84af74f0969dfc2df877 Mon Sep 17 00:00:00 2001 1From 2cf62aa12f3161bc366bfc873964d6fed8454702 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/4] clang: musl/ppc does not support 128-bit long double
@@ -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 5e9ea68..33f0d89 100644 12index c3ca8c8..bd54075 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@@ -1592,7 +1592,8 @@ public: 15@@ -1593,7 +1593,8 @@ public:
16 break; 16 break;
17 } 17 }
18 18
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
index 1b54c65..e47b48e 100644
--- 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
@@ -1,4 +1,4 @@
1From 30fb1a92b9d0899a2f25cf1917000aad2f4578c5 Mon Sep 17 00:00:00 2001 1From 56cdacb669a182e69159b840a6a440f7f19211f9 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 4 Jul 2016 20:14:52 -0700 3Date: Mon, 4 Jul 2016 20:14:52 -0700
4Subject: [PATCH 4/4] clang: Check for float ABI on arm 4Subject: [PATCH 4/4] clang: Check for float ABI on arm
@@ -9,23 +9,22 @@ also check for float ABI which can be
9set on commandline 9set on commandline
10 10
11Signed-off-by: Khem Raj <raj.khem@gmail.com> 11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12
13xx
14--- 12---
15 lib/Driver/ToolChains.cpp | 3 ++- 13 lib/Driver/ToolChains.cpp | 4 +++-
16 1 file changed, 2 insertions(+), 1 deletion(-) 14 1 file changed, 3 insertions(+), 1 deletion(-)
17 15
18diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp 16diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
19index 706612d..8bac35a 100644 17index bcd91f0..fd31d7e 100644
20--- a/lib/Driver/ToolChains.cpp 18--- a/lib/Driver/ToolChains.cpp
21+++ b/lib/Driver/ToolChains.cpp 19+++ b/lib/Driver/ToolChains.cpp
22@@ -4169,7 +4169,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 20@@ -4212,7 +4212,9 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
23 default: 21 default:
24 ArchName = Triple.getArchName().str(); 22 ArchName = Triple.getArchName().str();
25 } 23 }
26- if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF) 24- if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF)
27+ if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF || 25+ if (Triple.getEnvironment() == llvm::Triple::MuslEABIHF ||
28+ tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard) 26+ (Triple.getEnvironment() == llvm::Triple::MuslEABI &&
27+ tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard))
29 ArchName += "hf"; 28 ArchName += "hf";
30 29
31 return "/lib/ld-musl-" + ArchName + ".so.1"; 30 return "/lib/ld-musl-" + ArchName + ".so.1";