diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-05-19 16:50:02 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-05-19 16:53:06 -0700 |
commit | 5f665ab2c0cf0d818e3900a5fdfd6d06534c02b2 (patch) | |
tree | 16ff4ea5647556c756fac2ed37e84b236973cb73 | |
parent | 391c3284289c3a5c328d673dd0367c87f98f3f02 (diff) | |
download | meta-clang-5f665ab2c0cf0d818e3900a5fdfd6d06534c02b2.tar.gz |
clang: On x86_64 Modify ldso libdir only for target/cross recipes
This should ensure that builds without uninative work ok
Fixes Issue #106
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | recipes-devtools/clang/clang/0002-clang-driver-Use-lib-for-ldso-on-OE.patch | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/recipes-devtools/clang/clang/0002-clang-driver-Use-lib-for-ldso-on-OE.patch b/recipes-devtools/clang/clang/0002-clang-driver-Use-lib-for-ldso-on-OE.patch index dbeb95e..3b92897 100644 --- a/recipes-devtools/clang/clang/0002-clang-driver-Use-lib-for-ldso-on-OE.patch +++ b/recipes-devtools/clang/clang/0002-clang-driver-Use-lib-for-ldso-on-OE.patch | |||
@@ -1,7 +1,7 @@ | |||
1 | From b2205f063ec2644d0777b277d77426f0e55509fa Mon Sep 17 00:00:00 2001 | 1 | From b9831e3886b22d243eeb01f0ae67e9485aafd64b Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Sat, 21 May 2016 21:52:36 -0700 | 3 | Date: Sat, 21 May 2016 21:52:36 -0700 |
4 | Subject: [PATCH 02/18] clang: driver: Use /lib for ldso on OE | 4 | Subject: [PATCH 01/18] clang: driver: Use /lib for ldso on OE |
5 | 5 | ||
6 | OE does not follow the default base_libdir | 6 | OE does not follow the default base_libdir |
7 | that clang has, therefore adjust it for OE | 7 | that clang has, therefore adjust it for OE |
@@ -9,16 +9,19 @@ it wont be able to support multilib since | |||
9 | in multilib case OE switches the base libdir | 9 | in multilib case OE switches the base libdir |
10 | for 64bit to /lib64 instead of /lib | 10 | for 64bit to /lib64 instead of /lib |
11 | 11 | ||
12 | Make sure that the change only happens for cross | ||
13 | compilation on x86_64 architecture | ||
14 | |||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 15 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
13 | --- | 16 | --- |
14 | clang/lib/Driver/ToolChains/Linux.cpp | 8 ++++---- | 17 | clang/lib/Driver/ToolChains/Linux.cpp | 12 +++++++----- |
15 | 1 file changed, 4 insertions(+), 4 deletions(-) | 18 | 1 file changed, 7 insertions(+), 5 deletions(-) |
16 | 19 | ||
17 | diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp | 20 | diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp |
18 | index 5b757b8028c..552d329e7b8 100644 | 21 | index e9169e91fd4..9c08a794f5c 100644 |
19 | --- a/clang/lib/Driver/ToolChains/Linux.cpp | 22 | --- a/clang/lib/Driver/ToolChains/Linux.cpp |
20 | +++ b/clang/lib/Driver/ToolChains/Linux.cpp | 23 | +++ b/clang/lib/Driver/ToolChains/Linux.cpp |
21 | @@ -590,12 +590,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { | 24 | @@ -595,12 +595,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { |
22 | Loader = "ld.so.1"; | 25 | Loader = "ld.so.1"; |
23 | break; | 26 | break; |
24 | case llvm::Triple::ppc64: | 27 | case llvm::Triple::ppc64: |
@@ -33,7 +36,7 @@ index 5b757b8028c..552d329e7b8 100644 | |||
33 | Loader = | 36 | Loader = |
34 | (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; | 37 | (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; |
35 | break; | 38 | break; |
36 | @@ -617,7 +617,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { | 39 | @@ -622,7 +622,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { |
37 | Loader = "ld-linux.so.2"; | 40 | Loader = "ld-linux.so.2"; |
38 | break; | 41 | break; |
39 | case llvm::Triple::sparcv9: | 42 | case llvm::Triple::sparcv9: |
@@ -42,15 +45,19 @@ index 5b757b8028c..552d329e7b8 100644 | |||
42 | Loader = "ld-linux.so.2"; | 45 | Loader = "ld-linux.so.2"; |
43 | break; | 46 | break; |
44 | case llvm::Triple::systemz: | 47 | case llvm::Triple::systemz: |
45 | @@ -631,7 +631,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { | 48 | @@ -635,8 +635,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { |
49 | break; | ||
46 | case llvm::Triple::x86_64: { | 50 | case llvm::Triple::x86_64: { |
47 | bool X32 = Triple.getEnvironment() == llvm::Triple::GNUX32; | 51 | bool X32 = Triple.getEnvironment() == llvm::Triple::GNUX32; |
48 | 52 | - | |
49 | - LibDir = X32 ? "libx32" : "lib64"; | 53 | - LibDir = X32 ? "libx32" : "lib64"; |
50 | + LibDir = "lib"; | 54 | + if (Triple.getEnvironment() == llvm::Triple::GNU) |
55 | + LibDir = X32 ? "libx32" : "lib64"; | ||
56 | + else | ||
57 | + LibDir = "lib"; | ||
51 | Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2"; | 58 | Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2"; |
52 | break; | 59 | break; |
53 | } | 60 | } |
54 | -- | 61 | -- |
55 | 2.20.1 | 62 | 2.21.0 |
56 | 63 | ||