aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--internal/rosa/make.go4
-rw-r--r--internal/rosa/package/kernel/package.az1
-rw-r--r--internal/rosa/package/llvm/package.az2
-rw-r--r--internal/rosa/package/make.az2
-rw-r--r--internal/rosa/package/musl/package.az2
-rw-r--r--internal/rosa/rosa.go7
-rw-r--r--internal/rosa/state.go5
7 files changed, 17 insertions, 6 deletions
diff --git a/internal/rosa/make.go b/internal/rosa/make.go
index 71eeaa25..e0b9094f 100644
--- a/internal/rosa/make.go
+++ b/internal/rosa/make.go
@@ -121,8 +121,8 @@ func (attr *MakeHelper) script(t Toolchain, name string) string {
target := t.triple()
if cross {
configure += `
-export CC='clang --target=` + target + ` -isysroot=/system/` + arch + `'
-export CXX='clang++ --target=` + target + ` -isysroot=/system/` + arch + `'
+export CC='clang --target=` + target + ` --sysroot=/system/` + arch + `'
+export CXX='clang++ --target=` + target + ` --sysroot=/system/` + arch + `'
`
}
diff --git a/internal/rosa/package/kernel/package.az b/internal/rosa/package/kernel/package.az
index 8e2dcfe5..3f7cf243 100644
--- a/internal/rosa/package/kernel/package.az
+++ b/internal/rosa/package/kernel/package.az
@@ -21,6 +21,7 @@ package kernel-headers {
// updated manually for API changes
"version.h";
};
+ libc = false;
toyboxEarly = true;
exec = make {
diff --git a/internal/rosa/package/llvm/package.az b/internal/rosa/package/llvm/package.az
index 02cea79a..f55f4a7d 100644
--- a/internal/rosa/package/llvm/package.az
+++ b/internal/rosa/package/llvm/package.az
@@ -22,6 +22,7 @@ package early-builtins {
source = llvm-project;
exclusive = true;
+ libc = false;
exec = cmake {
append = [ "compiler-rt/lib/builtins" ];
@@ -50,6 +51,7 @@ package early-compiler-rt {
source = llvm-project;
exclusive = true;
+ libc = false;
early = `
LLVM_VERSION_MAJOR="$(CLICOLOR_FORCE= cmake -P /dev/stdin <<< '
include(cmake/Modules/LLVMVersion.cmake)
diff --git a/internal/rosa/package/make.az b/internal/rosa/package/make.az
index 4aaf5736..5142b079 100644
--- a/internal/rosa/package/make.az
+++ b/internal/rosa/package/make.az
@@ -44,7 +44,7 @@ package make {
writable = true;
early = `
chmod +w tests/scripts/misc
-rm \
+rm -f \
tests/scripts/misc/close_stdout \
tests/scripts/misc/general4
`;
diff --git a/internal/rosa/package/musl/package.az b/internal/rosa/package/musl/package.az
index d901fbc2..6eb01fd8 100644
--- a/internal/rosa/package/musl/package.az
+++ b/internal/rosa/package/musl/package.az
@@ -18,6 +18,7 @@ package musl-headers {
// expected to be writable in copies
chmod = true;
+ libc = false;
env = [
"LDFLAGS=" + earlyLDFLAGS,
];
@@ -43,6 +44,7 @@ package musl {
// expected to be writable in copies
chmod = true;
+ libc = false;
env = [
"LDFLAGS=" + earlyLDFLAGS,
];
diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go
index 2241788f..7123de6e 100644
--- a/internal/rosa/rosa.go
+++ b/internal/rosa/rosa.go
@@ -340,6 +340,8 @@ type PackageAttr struct {
// Whether the [Helper] behaves identically across all architectures.
NoArch bool
+ // Whether libc can be omitted.
+ NoLibc bool
// Inputs added only during cross-compilation.
Cross P
// Native utilities used by the build process.
@@ -434,7 +436,7 @@ func (t Toolchain) New(
cross := t.cross()
var rootCross []pkg.Artifact
if cross {
- rootCross = make([]pkg.Artifact, 0, len(inputs)+len(attr.Cross))
+ rootCross = make([]pkg.Artifact, 0, 1+len(inputs)+len(attr.Cross))
}
const lcMessages = "LC_MESSAGES=C.UTF-8"
@@ -534,6 +536,9 @@ func (t Toolchain) New(
root = t.appendHandle(root, spv, p)
}
} else {
+ if !attr.NoLibc {
+ rootCross = t.appendHandle(rootCross, spv, _musl)
+ }
for _, p := range inputs {
rootCross = t.appendHandle(rootCross, spv, p)
}
diff --git a/internal/rosa/state.go b/internal/rosa/state.go
index 592d6018..5d2de9a0 100644
--- a/internal/rosa/state.go
+++ b/internal/rosa/state.go
@@ -1106,7 +1106,7 @@ func (ctx *evalContext) pf(
tools, inputs, extra azalea.Array
cross, runtimes = azalea.Array{}, azalea.Array{}
- bootstrap = true
+ bootstrap, libc = true, true
)
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
k("description"): &meta.Description,
@@ -1130,6 +1130,7 @@ func (ctx *evalContext) pf(
k("toyboxEarly"): &attr.Early,
k("minimal"): &attr.NoToolchain,
k("bootstrap"): &bootstrap,
+ k("libc"): &libc,
k("checksum"): &kc,
k("output"): &output,
@@ -1146,7 +1147,7 @@ func (ctx *evalContext) pf(
}); err != nil {
return
}
- attr.Std = !bootstrap
+ attr.Std, attr.NoLibc = !bootstrap, !libc
attr.NoArch = cross == nil
var inputsH, extraH P
if inputsH, err = toHandles(inputs); err != nil {