forked from OSchip/llvm-project
[clang] [hexagon] Add resource include dir
This commit is contained in:
parent
45abbaf2e5
commit
888876ba27
|
@ -588,21 +588,43 @@ void HexagonToolChain::addClangTargetOptions(const ArgList &DriverArgs,
|
|||
|
||||
void HexagonToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
|
||||
ArgStringList &CC1Args) const {
|
||||
if (DriverArgs.hasArg(options::OPT_nostdinc) ||
|
||||
DriverArgs.hasArg(options::OPT_nostdlibinc))
|
||||
if (DriverArgs.hasArg(options::OPT_nostdinc))
|
||||
return;
|
||||
|
||||
const bool IsELF = !getTriple().isMusl() && !getTriple().isOSLinux();
|
||||
const bool IsLinuxMusl = getTriple().isMusl() && getTriple().isOSLinux();
|
||||
|
||||
const Driver &D = getDriver();
|
||||
if (!D.SysRoot.empty()) {
|
||||
SmallString<128> ResourceDirInclude(D.ResourceDir);
|
||||
if (!IsELF) {
|
||||
llvm::sys::path::append(ResourceDirInclude, "include");
|
||||
if (!DriverArgs.hasArg(options::OPT_nobuiltininc) &&
|
||||
(!IsLinuxMusl || DriverArgs.hasArg(options::OPT_nostdlibinc)))
|
||||
addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude);
|
||||
}
|
||||
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
|
||||
return;
|
||||
|
||||
const bool HasSysRoot = !D.SysRoot.empty();
|
||||
if (HasSysRoot) {
|
||||
SmallString<128> P(D.SysRoot);
|
||||
if (getTriple().isMusl())
|
||||
if (IsLinuxMusl)
|
||||
llvm::sys::path::append(P, "usr/include");
|
||||
else
|
||||
llvm::sys::path::append(P, "include");
|
||||
|
||||
addExternCSystemInclude(DriverArgs, CC1Args, P.str());
|
||||
return;
|
||||
// LOCAL_INCLUDE_DIR
|
||||
addSystemInclude(DriverArgs, CC1Args, P + "/usr/local/include");
|
||||
// TOOL_INCLUDE_DIR
|
||||
AddMultilibIncludeArgs(DriverArgs, CC1Args);
|
||||
}
|
||||
|
||||
if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && IsLinuxMusl)
|
||||
addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude);
|
||||
|
||||
if (HasSysRoot)
|
||||
return;
|
||||
std::string TargetDir = getHexagonTargetDir(D.getInstalledDir(),
|
||||
D.PrefixDirs);
|
||||
addExternCSystemInclude(DriverArgs, CC1Args, TargetDir + "/hexagon/include");
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
// UNSUPPORTED: system-windows
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Passing --musl
|
||||
// -----------------------------------------------------------------------------
|
||||
|
@ -94,4 +96,26 @@
|
|||
// RUN: -mcpu=hexagonv60 \
|
||||
// RUN: %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK007 %s
|
||||
// CHECK007: "-internal-isystem" "{{.*}}hexagon{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
|
||||
// CHECK007: "-internal-isystem" "{{.*}}hexagon{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
|
||||
// -----------------------------------------------------------------------------
|
||||
// internal-isystem for linux with and without musl
|
||||
// -----------------------------------------------------------------------------
|
||||
// RUN: %clang -### -target hexagon-unknown-linux-musl \
|
||||
// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK008 %s
|
||||
// CHECK008: InstalledDir: [[INSTALLED_DIR:.+]]
|
||||
// CHECK008: "-resource-dir" "[[RESOURCE:[^"]+]]"
|
||||
// CHECK008-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include"
|
||||
// CHECK008-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include"
|
||||
|
||||
// RUN: %clang -### -target hexagon-unknown-linux \
|
||||
// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK009 %s
|
||||
// CHECK009: InstalledDir: [[INSTALLED_DIR:.+]]
|
||||
// CHECK009: "-resource-dir" "[[RESOURCE:[^"]+]]"
|
||||
// CHECK009-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include"
|
||||
// CHECK009-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include"
|
||||
|
|
Loading…
Reference in New Issue