!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

535 Members
110 Servers

Load older messages


SenderMessageTime
17 Oct 2025
@elvishjerricco:matrix.orgElvishJerriccoin this case, the only thing that matters is that the libc is glibc04:15:44
@elvishjerricco:matrix.orgElvishJerricconot gnu, not musl, not anything else04:15:55
@elvishjerricco:matrix.orgElvishJerriccoat this point I've explained myself five times04:16:10
@elvishjerricco:matrix.orgElvishJerriccoso I'm done04:16:13
@matthewcroughan:defenestrate.itmatthewcroughan For me, in my mind, isMusl and libc == musl evaluates to true 04:16:59
@elvishjerricco:matrix.orgElvishJerricco == musl is not the right semantics 04:17:09
@elvishjerricco:matrix.orgElvishJerriccoas I already explained04:17:12
@matthewcroughan:defenestrate.itmatthewcroughanI was unsure and still kind of am unsure, in what circumstances this can be untrue 04:17:12
@elvishjerricco:matrix.orgElvishJerriccoliterally04:17:17
@elvishjerricco:matrix.orgElvishJerricco literally the only correct situation for that condition is if the libc is glibc 04:17:30
@elvishjerricco:matrix.orgElvishJerricconot "not musl"04:17:33
@matthewcroughan:defenestrate.itmatthewcroughanI mean chill, if you don't want to explain this to me you don't have to04:17:35
@matthewcroughan:defenestrate.itmatthewcroughan But I'm in lib/systems/inspect.nix right now, and trying to figure it out 04:17:45
@matthewcroughan:defenestrate.itmatthewcroughan
    isMusl =
      with abis;
      map (a: { abi = a; }) [
        musl
        musleabi
        musleabihf
        muslabin32
        muslabi64
      ];

04:17:51
@elvishjerricco:matrix.orgElvishJerriccoIs this clear? There are other libcs than glibc or musl04:19:44
@matthewcroughan:defenestrate.itmatthewcroughanLike, however complex this is, it can't evaluate to anything other than the libc being equal to musl though can it?04:19:58
@matthewcroughan:defenestrate.itmatthewcroughan
nix-repl> lib.systems.parse.abis
{
  android = { ... };
  androideabi = { ... };
  eabi = { ... };
  eabihf = { ... };
  elf = { ... };
  gnu = { ... };
  gnuabi64 = { ... };
  gnuabielfv1 = { ... };
  gnuabielfv2 = { ... };
  gnuabin32 = { ... };
  gnueabi = { ... };
  gnueabihf = { ... };
  msvc = { ... };
  musl = { ... };
  muslabi64 = { ... };
  muslabin32 = { ... };
  musleabi = { ... };
  musleabihf = { ... };
  uclibc = { ... };
  uclibceabi = { ... };
  uclibceabihf = { ... };
  unknown = { ... };
}
04:20:07
@matthewcroughan:defenestrate.itmatthewcroughan like, yes, there are crazy combos, but musl always means the libc is musl right? 04:20:21
@elvishjerricco:matrix.orgElvishJerricco yes, but like I've said already, the condition is not about musl 04:20:53
@elvishjerricco:matrix.orgElvishJerriccomusl / glibc is not a binary04:20:58
@elvishjerricco:matrix.orgElvishJerriccoit's not one or the other04:21:00
@elvishjerricco:matrix.orgElvishJerriccothe thing we care about here is if the libc is literally glibc. Is it clear that "not musl" is not equal to "is glibc"?04:21:22
@elvishjerricco:matrix.orgElvishJerriccobecause "is glibc" is the correct semantics04:21:27
@matthewcroughan:defenestrate.itmatthewcroughan I wonder now how hostPlatform.libc even gets defined 04:21:49
@elvishjerricco:matrix.orgElvishJerriccohttps://github.com/NixOS/nixpkgs/blob/ff84020dd9cc87bab5c2675d62e555afeb09304f/lib/systems/default.nix#L12004:22:09
@matthewcroughan:defenestrate.itmatthewcroughan like what comes first, isMusl = or libc = 04:22:11
@elvishjerricco:matrix.orgElvishJerricco now, admittedly, that code is a little flawed, in that it assumes that if any of those other conditions isn't true then it should fallback to glibc, but that's its own bug and not relevant to using the correct semantics in this PR 04:22:52
@matthewcroughan:defenestrate.itmatthewcroughan Okay so the libc is itself defined in terms of isMusl 04:22:54
@elvishjerricco:matrix.orgElvishJerricco among a big list of other things 04:23:08
@matthewcroughan:defenestrate.itmatthewcroughanso isMusl seems to come firt?04:23:08

Show newer messages


Back to Room ListRoom Version: 6