internal/rosa/package: migrate musl

This removes some legacy cruft, causing 2 rebuilds per stage.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-20 04:13:10 +09:00
parent 2e7b52d701
commit 2e710328a4
4 changed files with 85 additions and 95 deletions

View File

@@ -0,0 +1,13 @@
diff --git a/ldso/dynlink.c b/ldso/dynlink.c
index 715948f4..c2fece68 100644
--- a/ldso/dynlink.c
+++ b/ldso/dynlink.c
@@ -1157,7 +1157,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by)
sys_path = "";
}
}
- if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib";
+ if (!sys_path) sys_path = "/system/lib:/system/lib/" LDSO_ARCH "-rosa-linux-musl:/lib:/usr/local/lib:/usr/lib";
fd = path_open(name, sys_path, buf, sizeof buf);
}
pathname = buf;

View File

@@ -0,0 +1,70 @@
package musl-source {
description = "an implementation of the C standard library - source code";
version* = "1.2.6";
output = remoteTar {
url = "https://musl.libc.org/releases/musl-"+version+".tar.gz";
checksum = "WtWb_OV_XxLDAB5NerOL9loLlHVadV00MmGk65PPBU1evaolagoMHfvpZp_vxEzS";
compress = gzip;
};
}
package musl-headers {
description = "system installation of musl headers";
source = musl-source;
// expected to be writable in copies
chmod = true;
env = [
"LDFLAGS=" + earlyLDFLAGS,
];
exec = make {
omitDefaults = true;
skipCheck = true;
make = [
"DESTDIR=/work",
"install-headers",
];
install = "# headers installed during make";
};
inputs = [ coreutils ];
}
package musl {
description = "an implementation of the C standard library";
website = "https://musl.libc.org";
anitya = 11688;
source = musl-source;
patches = [ "ldso-rosa.patch" ];
// expected to be writable in copies
chmod = true;
env = [
"LDFLAGS=" + earlyLDFLAGS,
];
exec = make {
omitDefaults = true;
skipCheck = true;
postInstall = `
mkdir -p /work/system/bin
COMPAT_LINKER_NAME="ld-musl-` + linuxArch + `.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}"
rm -v "/work/lib/${COMPAT_LINKER_NAME}"
rmdir -v /work/lib
`;
};
inputs = [ coreutils ];
}