aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/llvm.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa/llvm.go')
-rw-r--r--internal/rosa/llvm.go44
1 files changed, 40 insertions, 4 deletions
diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go
index d10fb565..70752a52 100644
--- a/internal/rosa/llvm.go
+++ b/internal/rosa/llvm.go
@@ -310,13 +310,19 @@ ln -s \
},
})
+ var clangExtraEnv []string
+ if t == toolchainStage3 {
+ clangExtraEnv = []string{
+ "CFLAGS=" + earlyCFLAGS,
+ "CXXFLAGS=" + earlyCXXFLAGS(),
+ }
+ }
+
clang = t.newLLVM("clang", &llvmAttr{
flags: llvmProjectClang | llvmProjectLld,
- env: []string{
- "CFLAGS=" + cflags,
- "CXXFLAGS=" + cxxflags(),
+ env: slices.Concat(clangExtraEnv, []string{
ldflags(false),
- },
+ }),
cmake: slices.Concat([][2]string{
{"LLVM_TARGETS_TO_BUILD", target},
{"CMAKE_CROSSCOMPILING", "OFF"},
@@ -329,6 +335,9 @@ ln -s \
t.NewGit(),
},
script: `
+ln -s clang /work/system/bin/cc
+ln -s clang++ /work/system/bin/c++
+
ninja check-all
`,
@@ -354,6 +363,33 @@ index 50fdce630255..4b4465a75617 100644
#include <c-header.h>
`},
+
+ {"path-system-include", `diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
+index cdbf21fb9026..dd052858700d 100644
+--- a/clang/lib/Driver/ToolChains/Linux.cpp
++++ b/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -773,6 +773,12 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ addExternCSystemInclude(
+ DriverArgs, CC1Args,
+ concat(SysRoot, "/usr/include", MultiarchIncludeDir));
++ if (!MultiarchIncludeDir.empty() &&
++ D.getVFS().exists(concat(SysRoot, "/system/include", MultiarchIncludeDir)))
++ addExternCSystemInclude(
++ DriverArgs, CC1Args,
++ concat(SysRoot, "/system/include", MultiarchIncludeDir));
++
+
+ if (getTriple().getOS() == llvm::Triple::RTEMS)
+ return;
+@@ -783,6 +789,7 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
+
+ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include"));
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/system/include"));
+
+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && getTriple().isMusl())
+ addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude);
+`},
},
})