diff options
Diffstat (limited to 'internal/rosa/llvm.go')
| -rw-r--r-- | internal/rosa/llvm.go | 44 |
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); +`}, }, }) |
