From 4b513bf033833ebcd1cbd341ea2f8ecda6cdf22f Mon Sep 17 00:00:00 2001
|
From: Martin Kelly <mkelly@xevo.com>
|
Date: Fri, 19 May 2017 00:22:57 -0700
|
Subject: [PATCH] llvm: allow env override of exe path
|
|
When using a native llvm-config from inside a sysroot, we need llvm-config to
|
return the libraries, include directories, etc. from inside the sysroot rather
|
than from the native sysroot. Thus provide an env override for calling
|
llvm-config from a target sysroot.
|
|
Signed-off-by: Martin Kelly <mkelly@xevo.com>
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
---
|
llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
|
1 file changed, 7 insertions(+)
|
|
diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
|
index 1a2f04552d13..019d8f2b5c5e 100644
|
--- a/llvm/tools/llvm-config/llvm-config.cpp
|
+++ b/llvm/tools/llvm-config/llvm-config.cpp
|
@@ -247,6 +247,13 @@ Typical components:\n\
|
|
/// Compute the path to the main executable.
|
std::string GetExecutablePath(const char *Argv0) {
|
+ // Hack for Yocto: we need to override the root path when we are using
|
+ // llvm-config from within a target sysroot.
|
+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH");
|
+ if (Sysroot != nullptr) {
|
+ return Sysroot;
|
+ }
|
+
|
// This just needs to be some symbol in the binary; C++ doesn't
|
// allow taking the address of ::main however.
|
void *P = (void *)(intptr_t)GetExecutablePath;
|