summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch')
-rw-r--r--meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
new file mode 100644
index 0000000000..f47080c9fd
--- /dev/null
+++ b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
@@ -0,0 +1,38 @@
1From b66d6f39a374b8df41e7235351e5dee2e81f440c Mon Sep 17 00:00:00 2001
2From: Martin Kelly <mkelly@xevo.com>
3Date: Fri, 19 May 2017 00:22:57 -0700
4Subject: [PATCH 07/19] llvm: allow env override of exe path
5
6When using a native llvm-config from inside a sysroot, we need llvm-config to
7return the libraries, include directories, etc. from inside the sysroot rather
8than from the native sysroot. Thus provide an env override for calling
9llvm-config from a target sysroot.
10
11Upstream-Status: Pending
12Signed-off-by: Martin Kelly <mkelly@xevo.com>
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
16 1 file changed, 7 insertions(+)
17
18diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
19index 7ef7c46a262..a4f7ed82c7b 100644
20--- a/llvm/tools/llvm-config/llvm-config.cpp
21+++ b/llvm/tools/llvm-config/llvm-config.cpp
22@@ -225,6 +225,13 @@ Typical components:\n\
23
24 /// Compute the path to the main executable.
25 std::string GetExecutablePath(const char *Argv0) {
26+ // Hack for Yocto: we need to override the root path when we are using
27+ // llvm-config from within a target sysroot.
28+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH");
29+ if (Sysroot != nullptr) {
30+ return Sysroot;
31+ }
32+
33 // This just needs to be some symbol in the binary; C++ doesn't
34 // allow taking the address of ::main however.
35 void *P = (void *)(intptr_t)GetExecutablePath;
36--
372.22.0
38