1From 588a8694c6540e31140c7e242bfb5e279d6ca08c Mon Sep 17 00:00:00 2001 2From: Martin Kelly <mkelly@xevo.com> 3Date: Fri, 19 May 2017 00:22:57 -0700 4Subject: [PATCH] llvm: allow env override of exe and libdir 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: Inappropriate [OE-specific] 12 13Signed-off-by: Martin Kelly <mkelly@xevo.com> 14Signed-off-by: Khem Raj <raj.khem@gmail.com> 15--- 16 llvm/tools/llvm-config/llvm-config.cpp | 25 +++++++++++++++++++------ 17 1 file changed, 19 insertions(+), 6 deletions(-) 18 19diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp 20index e86eb2b44b10..7b2abf318dbe 100644 21--- a/llvm/tools/llvm-config/llvm-config.cpp 22+++ b/llvm/tools/llvm-config/llvm-config.cpp 23@@ -246,6 +246,13 @@ Typical components:\n\ 24 25 /// Compute the path to the main executable. 26 std::string GetExecutablePath(const char *Argv0) { 27+ // Hack for Yocto: we need to override the root path when we are using 28+ // llvm-config from within a target sysroot. 29+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); 30+ if (Sysroot != nullptr) { 31+ return Sysroot; 32+ } 33+ 34 // This just needs to be some symbol in the binary; C++ doesn't 35 // allow taking the address of ::main however. 36 void *P = (void *)(intptr_t)GetExecutablePath; 37 38