| 15 Nov 2025 |
Grimmauld (any/all) | with jq i can at least switch to yq-go, but i am at a loss about what to do with the rust things | 17:05:16 |
dramforever | you can't really fix this | 17:06:31 |
dramforever | and honestly our own cc-wrapper environment variables sort of have the same problem | 17:06:47 |
Grimmauld (any/all) | setting the same platform definition as i have on host into build has other errors | 17:07:52 |
dramforever | one cursed solution is to cross to x86_64-cross-linux-musl but this still doesn't fix rust... unless you're interested in doing custom targets | 17:08:03 |
Grimmauld (any/all) | oh god | 17:08:18 |
Grimmauld (any/all) | Setting this:
let
musl-gcc = inputs.nixpkgs.lib.systems.elaborate "x86_64-unknown-linux-musl";
musl-llvm = inputs.nixpkgs.lib.recursiveUpdate musl-gcc {
useLLVM = true;
linker = "lld";
config = "x86_64-unknown-linux-musl";
};
in
{
nixpkgs.buildPlatform = musl-llvm;
nixpkgs.hostPlatform = musl-llvm;
}
breaks too:
fetching git input 'git+file:///home/grimmauld/musl-vm'
error:
… while calling the 'seq' builtin
at /nix/store/dndmsb8w6cxy8qncmkigdy2pii16j07x-nixpkgs-patched/lib/modules.nix:361:18:
360| options = checked options;
361| config = checked (removeAttrs config [ "_module" ]);
| ^
362| _module = checked (config._module);
… while evaluating the attribute 'unmatchedDefns'
at /nix/store/dndmsb8w6cxy8qncmkigdy2pii16j07x-nixpkgs-patched/lib/modules.nix:894:7:
893| # Transforms unmatchedDefnsByName into a list of definitions
894| unmatchedDefns =
| ^
895| if configs == [ ] then
(stack trace truncated; use '--show-trace' to show the full trace)
error: attribute 'version' missing
at /nix/store/dndmsb8w6cxy8qncmkigdy2pii16j07x-nixpkgs-patched/pkgs/stdenv/linux/default.nix:560:51:
559| pname = prevStage.bintools.bintools.pname + "-patchelfed-ld";
560| inherit (prevStage.bintools.bintools) version;
| ^
561| passthru = { inherit (prevStage.bintools.passthru) isFromBootstrapFiles; };
So thats no option either | 17:10:13 |
dramforever | that's... interesting | 17:11:31 |
dramforever | although it makes sense, it's no longer cross, and we don't have musl-llvm bootstrap files | 17:11:47 |
Grimmauld (any/all) | thats fair i guess | 17:11:58 |
dramforever | although | 17:13:33 |
dramforever | how bad would it be if we remove the lib.optionalString (rustTargetPlatform != rustHostPlatform) condition | 17:13:58 |
Grimmauld (any/all) | in what file? | 17:14:13 |
dramforever | the file you linke | 17:14:23 |
dramforever | * the file you linked | 17:14:25 |
dramforever | last section | 17:14:27 |
Grimmauld (any/all) | right | 17:14:35 |
dramforever | * last part in highlight section | 17:14:36 |
Grimmauld (any/all) | let me try! | 17:14:38 |
dramforever | this just causes the same problem in the other direction right | 17:14:59 |
Grimmauld (any/all) | we'll see! | 17:16:46 |
Grimmauld (any/all) | i mean i did already find a couple fun packaging bugs | 17:17:12 |
Grimmauld (any/all) | like qt6 completely exploding on a cross setup where the host platform can be executed from the build platform | 17:17:34 |
Grimmauld (any/all) | that one is super broken | 17:17:39 |
Grimmauld (any/all) | and networkmanager using broken linker scripts | 17:17:50 |
Grimmauld (any/all) | anyways, i'll be here a while until i get to alacritty | 17:18:11 |
Grimmauld (any/all) |  Download image.png | 17:18:12 |
Grimmauld (any/all) | diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix
index e492d03e3026..a5769e761294 100644
--- a/pkgs/build-support/rust/lib/default.nix
+++ b/pkgs/build-support/rust/lib/default.nix
@@ -74,7 +74,7 @@
# pkgsTargetTarget.stdenv.cc is often simply wrong. We must omit
# the following lines when rustTargetPlatform collides with
# rustHostPlatform.
- + lib.optionalString (rustTargetPlatform != rustHostPlatform) ''
+ + lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) ''
"CC_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${ccForTarget}" \
"CXX_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${cxxForTarget}" \
"CARGO_TARGET_${stdenv.targetPlatform.rust.cargoEnvVarTarget}_LINKER=${ccForTarget}" \
This does seem to link alright, at least for the packages i have. It got past alacritty. | 18:30:23 |
Grimmauld (any/all) | yes yes, cursed cross stuff, and checking target platform is bad because it potentially kills cache. But i am building everything from source anyways so shucks | 18:32:22 |
Grimmauld (any/all) | now one more qt rebuild and i might have an llvm system | 18:33:03 |