blob: 61caa3c8153969ee0ebdd056b76578061be1ac19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
From 0327863d99125908e209e46e2687e9fb77ff25a7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 16 Mar 2017 19:06:26 -0700
Subject: [PATCH 05/15] clang: Look inside the target sysroot for compiler
runtime
In OE compiler-rt and libc++ are built and staged into target
sysroot and not into resourcedir which is relative to clang
driver installation where the libraries are not instlled
Specific to cross compiling the way yocto/OE works
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
clang/lib/Driver/ToolChain.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 88a627eab6d..d56b5264b4d 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -13,6 +13,7 @@
#include "ToolChains/Clang.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/Sanitizers.h"
+#include "clang/Basic/Version.h"
#include "clang/Config/config.h"
#include "clang/Driver/Action.h"
#include "clang/Driver/Driver.h"
@@ -353,7 +354,10 @@ StringRef ToolChain::getOSLibName() const {
}
std::string ToolChain::getCompilerRTPath() const {
- SmallString<128> Path(getDriver().ResourceDir);
+ SmallString<128> Path(getDriver().SysRoot);
+ StringRef ClangLibdirSuffix(CLANG_LIBDIR_SUFFIX);
+ llvm::sys::path::append(Path, "/usr/", Twine("lib") + ClangLibdirSuffix, "clang",
+ CLANG_VERSION_STRING);
if (Triple.isOSUnknown()) {
llvm::sys::path::append(Path, "lib");
} else {
--
2.20.1
|