internal/rosa: patch header search paths
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m35s
Test / ShareFS (push) Successful in 4m0s
Test / Hpkg (push) Successful in 4m41s
Test / Sandbox (race detector) (push) Successful in 5m6s
Test / Hakurei (race detector) (push) Successful in 6m11s
Test / Hakurei (push) Successful in 2m39s
Test / Flake checks (push) Successful in 3m50s
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m35s
Test / ShareFS (push) Successful in 4m0s
Test / Hpkg (push) Successful in 4m41s
Test / Sandbox (race detector) (push) Successful in 5m6s
Test / Hakurei (race detector) (push) Successful in 6m11s
Test / Hakurei (push) Successful in 2m39s
Test / Flake checks (push) Successful in 3m50s
This removes the need for reference CFLAGS in the standard toolchain. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -31,7 +31,7 @@ rm \
|
||||
syscall/creds_test.go \
|
||||
net/multicast_test.go
|
||||
|
||||
CC="${CC} ${LDFLAGS}" ./all.bash
|
||||
CC="cc -Qunused-arguments ${LDFLAGS}" ./all.bash
|
||||
`, pkg.Path(AbsUsrSrc.Append("go1.4-bootstrap"), false, pkg.NewHTTPGetTar(
|
||||
nil, "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
|
||||
mustDecode(checksum),
|
||||
@@ -48,6 +48,7 @@ func (t Toolchain) newGo(
|
||||
return t.New("go"+version, []pkg.Artifact{
|
||||
boot,
|
||||
}, nil, slices.Concat([]string{
|
||||
"CC=cc",
|
||||
"GOCACHE=/tmp/gocache",
|
||||
"GOROOT_BOOTSTRAP=/system/go",
|
||||
"CGO_" + ldflags(false) + " -O2 -g",
|
||||
|
||||
@@ -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
|
||||
`,
|
||||
|
||||
@@ -353,6 +362,33 @@ index 50fdce630255..4b4465a75617 100644
|
||||
/// Verify timestamps that gets embedded in the module
|
||||
#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);
|
||||
`},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -16,7 +16,7 @@ chmod -R +w /usr/src/perl && cd /usr/src/perl
|
||||
./Configure \
|
||||
-des \
|
||||
-Dprefix=/system \
|
||||
-Dcc="${CC}" \
|
||||
-Dcc="clang" \
|
||||
-Dcflags='--std=gnu99' \
|
||||
-Dldflags="${LDFLAGS}" \
|
||||
-Doptimize='-O2 -fno-strict-aliasing' \
|
||||
|
||||
@@ -46,7 +46,8 @@ chmod -R +w /usr/src/python/
|
||||
export HOME="$(mktemp -d)"
|
||||
cd "$(mktemp -d)"
|
||||
/usr/src/python/configure \
|
||||
--prefix=/system
|
||||
--prefix=/system \
|
||||
--build="${ROSA_TRIPLE}"
|
||||
make "-j$(nproc)"
|
||||
make test
|
||||
make DESTDIR=/work install
|
||||
|
||||
@@ -63,10 +63,6 @@ func triplet() string {
|
||||
const (
|
||||
// EnvTriplet holds the return value of triplet.
|
||||
EnvTriplet = "ROSA_TRIPLE"
|
||||
// EnvRefCFLAGS holds toolchain-specific reference CFLAGS.
|
||||
EnvRefCFLAGS = "ROSA_CFLAGS"
|
||||
// EnvRefCXXFLAGS holds toolchain-specific reference CXXFLAGS.
|
||||
EnvRefCXXFLAGS = "ROSA_CXXFLAGS"
|
||||
)
|
||||
|
||||
// ldflags returns LDFLAGS corresponding to triplet.
|
||||
@@ -85,13 +81,13 @@ func ldflags(static bool) string {
|
||||
return s
|
||||
}
|
||||
|
||||
// cflags is reference CFLAGS for the Rosa OS toolchain.
|
||||
const cflags = "-Qunused-arguments " +
|
||||
// earlyCFLAGS is reference CFLAGS for the stage3 toolchain.
|
||||
const earlyCFLAGS = "-Qunused-arguments " +
|
||||
"-isystem/system/include"
|
||||
|
||||
// cxxflags returns reference CXXFLAGS for the Rosa OS toolchain corresponding
|
||||
// to [runtime.GOARCH].
|
||||
func cxxflags() string {
|
||||
// earlyCXXFLAGS returns reference CXXFLAGS for the stage3 toolchain
|
||||
// corresponding to [runtime.GOARCH].
|
||||
func earlyCXXFLAGS() string {
|
||||
return "--start-no-unused-arguments " +
|
||||
"-stdlib=libc++ " +
|
||||
"--end-no-unused-arguments " +
|
||||
@@ -203,9 +199,6 @@ ln -vs ../usr/bin /work/bin
|
||||
env = fixupEnviron(env, []string{
|
||||
EnvTriplet + "=" + triplet(),
|
||||
lcMessages,
|
||||
|
||||
EnvRefCFLAGS + "=" + cflags,
|
||||
EnvRefCXXFLAGS + "=" + cxxflags(),
|
||||
ldflags(true),
|
||||
}, "/system/bin",
|
||||
"/usr/bin",
|
||||
@@ -227,11 +220,6 @@ ln -vs ../usr/bin /work/bin
|
||||
EnvTriplet + "=" + triplet(),
|
||||
lcMessages,
|
||||
|
||||
// autotools projects act up with CFLAGS
|
||||
"CC=clang " + cflags,
|
||||
EnvRefCFLAGS + "=" + cflags,
|
||||
"CXX=clang++ " + cxxflags(),
|
||||
EnvRefCXXFLAGS + "=" + cxxflags(),
|
||||
ldflags(false),
|
||||
|
||||
"AR=ar",
|
||||
|
||||
@@ -12,7 +12,7 @@ func (t Toolchain) NewZlib() pkg.Artifact {
|
||||
t.NewMake(),
|
||||
}, nil, nil, `
|
||||
cd "$(mktemp -d)"
|
||||
CFLAGS="${CFLAGS} -fPIC" /usr/src/zlib/configure \
|
||||
CC="clang -fPIC" /usr/src/zlib/configure \
|
||||
--prefix /system
|
||||
make "-j$(nproc)" test
|
||||
make DESTDIR=/work install
|
||||
|
||||
Reference in New Issue
Block a user