summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2015-07-09 00:24:44 -0700
committerKhem Raj <raj.khem@gmail.com>2015-07-09 00:24:44 -0700
commit422f10869cbb8d62cc5b4c71dc5a861ed43fd55e (patch)
tree78391b723a8f71d01d6696bc4a06b2f0aa960129
parentcf4d3b3c7c2d21ac581272197427f4872ddf4de1 (diff)
downloadmeta-clang-422f10869cbb8d62cc5b4c71dc5a861ed43fd55e.tar.gz
clang: Fix dynamic linker name for arm hard-float
OE depends on commandline option to decide on hf ABI unlike other distros which use target triplet *-*-gnueabihf and clang driver only reacted to triplet and not cmdline options, this patch makes it do that as well Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch40
-rw-r--r--recipes-devtools/clang/clang_git.bb1
2 files changed, 41 insertions, 0 deletions
diff --git a/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch b/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch
new file mode 100644
index 0000000..17f5fde
--- /dev/null
+++ b/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch
@@ -0,0 +1,40 @@
1From 19a19feb6bd13586463597a826bf6cda9af0e05b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 8 Jul 2015 23:25:36 -0700
4Subject: [PATCH] Choose right dynamic linker when hard float ABI is expressed
5 on commandline
6
7Currently trigger to select hard-float linker is only based of -gnueahf
8appearing in target triplet, but we should also select it when hardfloat
9is requested via cmdline
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/Driver/Tools.cpp | 6 ++++--
14 1 file changed, 4 insertions(+), 2 deletions(-)
15
16diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp
17index 756600e..89a9a64 100644
18--- a/tools/clang/lib/Driver/Tools.cpp
19+++ b/tools/clang/lib/Driver/Tools.cpp
20@@ -7715,13 +7715,15 @@ static std::string getLinuxDynamicLinker(const ArgList &Args,
21 return "/lib/ld-linux-aarch64_be.so.1";
22 else if (ToolChain.getArch() == llvm::Triple::arm ||
23 ToolChain.getArch() == llvm::Triple::thumb) {
24- if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
25+ if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF ||
26+ tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard")
27 return "/lib/ld-linux-armhf.so.3";
28 else
29 return "/lib/ld-linux.so.3";
30 } else if (ToolChain.getArch() == llvm::Triple::armeb ||
31 ToolChain.getArch() == llvm::Triple::thumbeb) {
32- if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
33+ if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF ||
34+ tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard")
35 return "/lib/ld-linux-armhf.so.3"; /* TODO: check which dynamic linker name. */
36 else
37 return "/lib/ld-linux.so.3"; /* TODO: check which dynamic linker name. */
38--
392.1.4
40
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index 638096b..55cd4bb 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -15,6 +15,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa; \
15SRC_URI = "git://github.com/llvm-mirror/llvm.git;branch=${BRANCH};name=llvm \ 15SRC_URI = "git://github.com/llvm-mirror/llvm.git;branch=${BRANCH};name=llvm \
16 git://github.com/llvm-mirror/clang.git;branch=${BRANCH};destsuffix=git/tools/clang;name=clang \ 16 git://github.com/llvm-mirror/clang.git;branch=${BRANCH};destsuffix=git/tools/clang;name=clang \
17 file://0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch \ 17 file://0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch \
18 file://0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch \
18 " 19 "
19 20
20SRCREV_llvm = "08709687efd951d1d6c3ad5f8d518129c068c737" 21SRCREV_llvm = "08709687efd951d1d6c3ad5f8d518129c068c737"