Do we always want to use musl for linux? Fine by me, it was just a bit surprising so I wanted to be sure.
This is from current main branch:
pub fn build(b: *std.Build) void {
// build steps
...
// general configuration
const target = blk: {
var default_target_query: std.Target.Query = .{
.abi = if (builtin.target.os.tag == .linux) .musl else null,
};
I don't think there's much downside is there?
as I understand it the main downside is that musl's allocators are slow, but I assume we are (or will be) using zig allocators anyway
I remember I could not access file metadata with basic-cli built with musl: https://roc-lang.github.io/basic-cli/0.20.0/File/#time_accessed!
But yeah, musl simplifies things a lot for now, we can always change it later if we absolutely need to.
The goal was musl by default
You can still explicitly build for glibc
More static by default is nice
Last updated: Dec 21 2025 at 12:15 UTC