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