aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa')
-rw-r--r--internal/rosa/go.go6
-rw-r--r--internal/rosa/meson.go2
-rw-r--r--internal/rosa/package/go.az2
-rw-r--r--internal/rosa/package/llvm/package.az11
-rw-r--r--internal/rosa/package/musl/package.az2
-rw-r--r--internal/rosa/package/python/package.az6
-rw-r--r--internal/rosa/package/tamago.az2
-rw-r--r--internal/rosa/package/toybox.az8
-rw-r--r--internal/rosa/rosa.go25
-rw-r--r--internal/rosa/state.go2
10 files changed, 36 insertions, 30 deletions
diff --git a/internal/rosa/go.go b/internal/rosa/go.go
index fb588724..dac77aa7 100644
--- a/internal/rosa/go.go
+++ b/internal/rosa/go.go
@@ -131,7 +131,7 @@ echo \
"YtrDka402BOAEwywx03Vz4QlVwoBiguJHzG7PuythMCPHXS8CVMLvzmvgEbu4Tzu",
[]string{"CGO_ENABLED=0"}, `
sed -i \
- 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
@@ -149,7 +149,7 @@ echo \
"wcI32bl1tkqbgcelGtGWPI4RtlEddd-PTd76Eb-k7nXA5LbE9yTNdIL9QSOOxMOs",
[]string{"CGO_ENABLED=0"}, `
sed -i \
- 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
`, go121,
)
@@ -159,7 +159,7 @@ sed -i \
checksum,
[]string{"CGO_ENABLED=0"}, `
sed -i \
- 's,/lib/ld-musl-`+t.linuxArch()+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+t.llvmArch()+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+t.arch+`/obj.go
rm \
diff --git a/internal/rosa/meson.go b/internal/rosa/meson.go
index 33cbb70a..d1e8b232 100644
--- a/internal/rosa/meson.go
+++ b/internal/rosa/meson.go
@@ -54,7 +54,7 @@ func (*MesonHelper) paths(t Toolchain) []pkg.ExecPath {
return nil
}
- arch, mesonArch, target := t.Arch(), t.linuxArch(), t.triple()
+ arch, mesonArch, target := t.Arch(), t.llvmArch(), t.triple()
return []pkg.ExecPath{pkg.Path(
AbsSystem.Append("mfile"),
false, pkg.NewFile("mfile-"+arch, []byte(`# meson env2mfile
diff --git a/internal/rosa/package/go.az b/internal/rosa/package/go.az
index a6b1ff05..8b5abed4 100644
--- a/internal/rosa/package/go.az
+++ b/internal/rosa/package/go.az
@@ -28,7 +28,7 @@ cd /work/system/go/src/
chmod -R +w ..
sed -i \
- 's,/lib/ld-musl-`+linuxArch+`.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+llvmArch+`.so.1,/system/bin/linker,' \
cmd/link/internal/`+arch+`/obj.go
rm \
diff --git a/internal/rosa/package/llvm/package.az b/internal/rosa/package/llvm/package.az
index 8502b558..6b02d6e9 100644
--- a/internal/rosa/package/llvm/package.az
+++ b/internal/rosa/package/llvm/package.az
@@ -21,9 +21,7 @@ package early-builtins {
description = "early LLVM runtime: compiler-rt (builtins)";
source = llvm-project;
- exclusive = true;
libc = false;
-
exec = cmake {
append = [ "compiler-rt/lib/builtins" ];
cache = {
@@ -50,7 +48,6 @@ package early-compiler-rt {
description = "early LLVM runtime: compiler-rt";
source = llvm-project;
- exclusive = true;
libc = false;
early = `
LLVM_VERSION_MAJOR="$(CLICOLOR_FORCE= cmake -P /dev/stdin <<< '
@@ -94,13 +91,6 @@ mkdir -p "/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/"
ln -s \
'../../../`+triple+`' \
"/work/system/lib/clang/$LLVM_VERSION_MAJOR/lib/"
-
-ln -s \
- "clang_rt.crtbegin-`+linuxArch+`.o" \
- '/work/system/lib/`+triple+`/crtbeginS.o'
-ln -s \
- "clang_rt.crtend-`+linuxArch+`.o" \
- '/work/system/lib/`+triple+`/crtendS.o'
`;
};
@@ -118,7 +108,6 @@ package early-runtimes {
description = "early LLVM runtimes: libunwind, libcxx, libcxxabi";
source = llvm-project;
- exclusive = true;
exec = cmake {
append = [ "runtimes" ];
cache = {
diff --git a/internal/rosa/package/musl/package.az b/internal/rosa/package/musl/package.az
index 91f7b47b..fac7c781 100644
--- a/internal/rosa/package/musl/package.az
+++ b/internal/rosa/package/musl/package.az
@@ -57,7 +57,7 @@ package musl {
check = nil;
postInstall = `
mkdir -p /work/system/bin
-COMPAT_LINKER_NAME="ld-musl-` + linuxArch + `.so.1"
+COMPAT_LINKER_NAME="ld-musl-`+llvmArch+`.so.1"
ln -vs ../lib/libc.so /work/system/bin/linker
ln -vs ../lib/libc.so /work/system/bin/ldd
ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}"
diff --git a/internal/rosa/package/python/package.az b/internal/rosa/package/python/package.az
index 657ef546..873f438e 100644
--- a/internal/rosa/package/python/package.az
+++ b/internal/rosa/package/python/package.az
@@ -49,8 +49,8 @@ package python {
},
// _ctypes appears to infer something from the linker name
- "LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
- "ld-musl-" + linuxArch + ".so.1",
+ "LDFLAGS=-Wl,--dynamic-linker=/system/lib/"+
+ "ld-musl-"+llvmArch+".so.1",
];
exec = make {
@@ -120,7 +120,7 @@ package python-early {
// _ctypes appears to infer something from the linker name
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
- "ld-musl-" + linuxArch + ".so.1",
+ "ld-musl-"+llvmArch+".so.1",
];
exec = make {
diff --git a/internal/rosa/package/tamago.az b/internal/rosa/package/tamago.az
index e0c25719..627823bd 100644
--- a/internal/rosa/package/tamago.az
+++ b/internal/rosa/package/tamago.az
@@ -27,7 +27,7 @@ cd /work/system/tamago/src
chmod -R +w ..
sed -i \
- 's,/lib/ld-musl-` + linuxArch + `.so.1,/system/bin/linker,' \
+ 's,/lib/ld-musl-`+llvmArch+`.so.1,/system/bin/linker,' \
cmd/link/internal/` + arch + `/obj.go
rm \
diff --git a/internal/rosa/package/toybox.az b/internal/rosa/package/toybox.az
index c2b8fb53..2c695ad0 100644
--- a/internal/rosa/package/toybox.az
+++ b/internal/rosa/package/toybox.az
@@ -92,11 +92,11 @@ chmod +w /bin/
ln -rs "$(which bash)" /bin/ || true
if [ -n "${CC+x}" ]; then
- echo '#!/bin/sh' > '/system/bin/`+linuxArch+`-cc'
- echo "exec $CC "'"$@"' >> '/system/bin/`+linuxArch+`-cc'
- chmod +x '/system/bin/`+linuxArch+`-cc'
+ echo '#!/bin/sh' > '/system/bin/`+llvmArch+`-cc'
+ echo "exec $CC "'"$@"' >> '/system/bin/`+llvmArch+`-cc'
+ chmod +x '/system/bin/`+llvmArch+`-cc'
unset CC
- export CROSS_COMPILE=`+linuxArch+`-
+ export CROSS_COMPILE=`+llvmArch+`-
fi
chmod +w kconfig tests
diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go
index 5f487bb7..c730127b 100644
--- a/internal/rosa/rosa.go
+++ b/internal/rosa/rosa.go
@@ -60,24 +60,39 @@ func linuxArch(arch string) string {
return "x86_64"
case "arm64":
return "aarch64"
- case "riscv64":
- return "riscv64"
+
+ case "ppc64le", "riscv64":
+ return arch
default:
panic("unsupported target " + arch)
}
}
+// llvmArch returns the LLVM target-triple-specific name corresponding to arch.
+func llvmArch(arch string) string {
+ switch arch {
+ case "ppc64le":
+ return "powerpc64le"
+
+ default:
+ return linuxArch(arch)
+ }
+}
+
// linuxArch returns the architecture name used by linux corresponding to arch.
-func (s *S) linuxArch() string { return linuxArch(s.arch) }
+func (s *S) linuxArch() string { return linuxArch(s.Arch()) }
+
+// llvmArch returns the LLVM target-triple-specific name corresponding to arch.
+func (s *S) llvmArch() string { return llvmArch(s.Arch()) }
// triple returns the Rosa OS host triple corresponding to arch.
func triple(arch string) string {
- return linuxArch(arch) + "-rosa-linux-musl"
+ return llvmArch(arch) + "-rosa-linux-musl"
}
// triple returns the Rosa OS target triple corresponding to arch.
-func (s *S) triple() string { return triple(s.arch) }
+func (s *S) triple() string { return triple(s.Arch()) }
// earlyLDFLAGS returns LDFLAGS corresponding to triplet.
func (s *S) earlyLDFLAGS(static bool) string {
diff --git a/internal/rosa/state.go b/internal/rosa/state.go
index caaea3e9..fb7fa4f8 100644
--- a/internal/rosa/state.go
+++ b/internal/rosa/state.go
@@ -531,10 +531,12 @@ func (s *S) getFrame() azalea.Frame {
k("hostTriple"): triple(native),
k("hostArch"): native,
k("hostLinuxArch"): linuxArch(native),
+ k("hostLLVMArch"): llvmArch(native),
k("triple"): s.triple(),
k("arch"): s.arch,
k("linuxArch"): s.linuxArch(),
+ k("llvmArch"): s.llvmArch(),
k("earlyLDFLAGS"): s.earlyLDFLAGS(false),
k("jobsE"): jobsE,