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 \
|
syscall/creds_test.go \
|
||||||
net/multicast_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(
|
`, pkg.Path(AbsUsrSrc.Append("go1.4-bootstrap"), false, pkg.NewHTTPGetTar(
|
||||||
nil, "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
|
nil, "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
|
||||||
mustDecode(checksum),
|
mustDecode(checksum),
|
||||||
@@ -48,6 +48,7 @@ func (t Toolchain) newGo(
|
|||||||
return t.New("go"+version, []pkg.Artifact{
|
return t.New("go"+version, []pkg.Artifact{
|
||||||
boot,
|
boot,
|
||||||
}, nil, slices.Concat([]string{
|
}, nil, slices.Concat([]string{
|
||||||
|
"CC=cc",
|
||||||
"GOCACHE=/tmp/gocache",
|
"GOCACHE=/tmp/gocache",
|
||||||
"GOROOT_BOOTSTRAP=/system/go",
|
"GOROOT_BOOTSTRAP=/system/go",
|
||||||
"CGO_" + ldflags(false) + " -O2 -g",
|
"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{
|
clang = t.newLLVM("clang", &llvmAttr{
|
||||||
flags: llvmProjectClang | llvmProjectLld,
|
flags: llvmProjectClang | llvmProjectLld,
|
||||||
env: []string{
|
env: slices.Concat(clangExtraEnv, []string{
|
||||||
"CFLAGS=" + cflags,
|
|
||||||
"CXXFLAGS=" + cxxflags(),
|
|
||||||
ldflags(false),
|
ldflags(false),
|
||||||
},
|
}),
|
||||||
cmake: slices.Concat([][2]string{
|
cmake: slices.Concat([][2]string{
|
||||||
{"LLVM_TARGETS_TO_BUILD", target},
|
{"LLVM_TARGETS_TO_BUILD", target},
|
||||||
{"CMAKE_CROSSCOMPILING", "OFF"},
|
{"CMAKE_CROSSCOMPILING", "OFF"},
|
||||||
@@ -329,6 +335,9 @@ ln -s \
|
|||||||
t.NewGit(),
|
t.NewGit(),
|
||||||
},
|
},
|
||||||
script: `
|
script: `
|
||||||
|
ln -s clang /work/system/bin/cc
|
||||||
|
ln -s clang++ /work/system/bin/c++
|
||||||
|
|
||||||
ninja check-all
|
ninja check-all
|
||||||
`,
|
`,
|
||||||
|
|
||||||
@@ -353,6 +362,33 @@ index 50fdce630255..4b4465a75617 100644
|
|||||||
/// Verify timestamps that gets embedded in the module
|
/// Verify timestamps that gets embedded in the module
|
||||||
#include <c-header.h>
|
#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 \
|
./Configure \
|
||||||
-des \
|
-des \
|
||||||
-Dprefix=/system \
|
-Dprefix=/system \
|
||||||
-Dcc="${CC}" \
|
-Dcc="clang" \
|
||||||
-Dcflags='--std=gnu99' \
|
-Dcflags='--std=gnu99' \
|
||||||
-Dldflags="${LDFLAGS}" \
|
-Dldflags="${LDFLAGS}" \
|
||||||
-Doptimize='-O2 -fno-strict-aliasing' \
|
-Doptimize='-O2 -fno-strict-aliasing' \
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ chmod -R +w /usr/src/python/
|
|||||||
export HOME="$(mktemp -d)"
|
export HOME="$(mktemp -d)"
|
||||||
cd "$(mktemp -d)"
|
cd "$(mktemp -d)"
|
||||||
/usr/src/python/configure \
|
/usr/src/python/configure \
|
||||||
--prefix=/system
|
--prefix=/system \
|
||||||
|
--build="${ROSA_TRIPLE}"
|
||||||
make "-j$(nproc)"
|
make "-j$(nproc)"
|
||||||
make test
|
make test
|
||||||
make DESTDIR=/work install
|
make DESTDIR=/work install
|
||||||
|
|||||||
@@ -63,10 +63,6 @@ func triplet() string {
|
|||||||
const (
|
const (
|
||||||
// EnvTriplet holds the return value of triplet.
|
// EnvTriplet holds the return value of triplet.
|
||||||
EnvTriplet = "ROSA_TRIPLE"
|
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.
|
// ldflags returns LDFLAGS corresponding to triplet.
|
||||||
@@ -85,13 +81,13 @@ func ldflags(static bool) string {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
// cflags is reference CFLAGS for the Rosa OS toolchain.
|
// earlyCFLAGS is reference CFLAGS for the stage3 toolchain.
|
||||||
const cflags = "-Qunused-arguments " +
|
const earlyCFLAGS = "-Qunused-arguments " +
|
||||||
"-isystem/system/include"
|
"-isystem/system/include"
|
||||||
|
|
||||||
// cxxflags returns reference CXXFLAGS for the Rosa OS toolchain corresponding
|
// earlyCXXFLAGS returns reference CXXFLAGS for the stage3 toolchain
|
||||||
// to [runtime.GOARCH].
|
// corresponding to [runtime.GOARCH].
|
||||||
func cxxflags() string {
|
func earlyCXXFLAGS() string {
|
||||||
return "--start-no-unused-arguments " +
|
return "--start-no-unused-arguments " +
|
||||||
"-stdlib=libc++ " +
|
"-stdlib=libc++ " +
|
||||||
"--end-no-unused-arguments " +
|
"--end-no-unused-arguments " +
|
||||||
@@ -203,9 +199,6 @@ ln -vs ../usr/bin /work/bin
|
|||||||
env = fixupEnviron(env, []string{
|
env = fixupEnviron(env, []string{
|
||||||
EnvTriplet + "=" + triplet(),
|
EnvTriplet + "=" + triplet(),
|
||||||
lcMessages,
|
lcMessages,
|
||||||
|
|
||||||
EnvRefCFLAGS + "=" + cflags,
|
|
||||||
EnvRefCXXFLAGS + "=" + cxxflags(),
|
|
||||||
ldflags(true),
|
ldflags(true),
|
||||||
}, "/system/bin",
|
}, "/system/bin",
|
||||||
"/usr/bin",
|
"/usr/bin",
|
||||||
@@ -227,11 +220,6 @@ ln -vs ../usr/bin /work/bin
|
|||||||
EnvTriplet + "=" + triplet(),
|
EnvTriplet + "=" + triplet(),
|
||||||
lcMessages,
|
lcMessages,
|
||||||
|
|
||||||
// autotools projects act up with CFLAGS
|
|
||||||
"CC=clang " + cflags,
|
|
||||||
EnvRefCFLAGS + "=" + cflags,
|
|
||||||
"CXX=clang++ " + cxxflags(),
|
|
||||||
EnvRefCXXFLAGS + "=" + cxxflags(),
|
|
||||||
ldflags(false),
|
ldflags(false),
|
||||||
|
|
||||||
"AR=ar",
|
"AR=ar",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ func (t Toolchain) NewZlib() pkg.Artifact {
|
|||||||
t.NewMake(),
|
t.NewMake(),
|
||||||
}, nil, nil, `
|
}, nil, nil, `
|
||||||
cd "$(mktemp -d)"
|
cd "$(mktemp -d)"
|
||||||
CFLAGS="${CFLAGS} -fPIC" /usr/src/zlib/configure \
|
CC="clang -fPIC" /usr/src/zlib/configure \
|
||||||
--prefix /system
|
--prefix /system
|
||||||
make "-j$(nproc)" test
|
make "-j$(nproc)" test
|
||||||
make DESTDIR=/work install
|
make DESTDIR=/work install
|
||||||
|
|||||||
Reference in New Issue
Block a user