Nix Cross Compiling | 580 Members | |
| 128 Servers |
| Sender | Message | Time |
|---|---|---|
| 10 Feb 2025 | ||
| does anyone wanna explain how the splicing internals work to me | 03:58:07 | |
| Easy, it's just adding attrs on top of the package set | 03:58:47 | |
| From other offset package sets | 03:59:12 | |
| I mean like the stuff where derivations added to specific lists in mkDerivation automatically get turned into derivations from one of the spliced pkgsets | 03:59:34 | |
| * Easy, it's just adding attrs to package attrs on top of the package set | 03:59:37 | |
| if there's a better word for that process I'd love to hear it lol | 03:59:53 | |
| That's the simplest part of the whole splicing thing | 04:00:39 | |
| https://github.com/NixOS/nixpkgs/blob/f202c36babad2412fc20a061d56c1f378efa806d/pkgs/stdenv/generic/make-derivation.nix#L346 | 04:00:41 | |
| as far as I can tell it pulls stuff out of drv.__spliced.pkgsSomethingSomething which is provided by splice.nix but __spliced isn't present in nix repl | 04:00:41 | |
| callPackage gets packaged from __splicedPackages | 04:01:05 | |
| * callPackage gets packages from __splicedPackages | 04:01:21 | |
| * callPackage gets attrs from __splicedPackages | 04:01:28 | |
| pkgsCross.X.__splicedPackages to access them | 04:01:55 | |
| hm | 04:02:24 | |
| what's special about pkgsCross that causes __splicedPackages to contain the __spliced attribute but not the toplevel | 04:03:03 | |
| https://github.com/NixOS/nixpkgs/blob/f202c36babad2412fc20a061d56c1f378efa806d/pkgs/top-level/splice.nix#L181 | 04:03:36 | |
In reply to @rhelmot:matrix.orgtoplevel is just normal pkgs | 04:04:06 | |
| hmmk... so actuallySplice is adjacentPackages != null | 04:05:05 | |
| here's what I'm trying to do: I want to instantiate nixpkgs with localSystem = A and crossSystem = B, do some builds, transfer the closure onto a B machine, then do the same instantiation so that B doesn't have to do any heavy building of its own... but then import pkgs/build-support/trivial-builders/default.nix with a new stdenv which has both build and host as B so that B can do things like build config files. the problem I'm foreseeing is that it will try to splice its dependencies and end up with stuff that can only run on A. I've been struggling to construct a spliced package set that, well, effectively lies about what e.g. bash.__spliced.buildHost is and actually gives hostHost. | 05:14:25 | |
| the reason for this task: being able to build nixbsd installer images. A here is Linux and B here is e.g. OpenBSD which doesn't have a real stdenv and can't build anything natively | 05:16:16 | |
loongarch64's libgcc is broken: https://github.com/NixOS/nixpkgs/pull/381016 | 23:18:42 | |
| 12 Feb 2025 | ||
| 19:59:44 | ||
| 14 Feb 2025 | ||
| Hi, can anyone please help me how to get started on cross-compilation. Documentation is very confusing and scattered across multiple places. I want to get GHC compiler than can compile my Haskell code to both ARM64 Linux and ARM64 Android. However I do not know where to get started. I tried the following flake.nix
However
| 13:14:55 | |
| * Hi, can anyone please help me how to get started on cross-compilation. Documentation is very confusing and scattered across multiple places. I want to get GHC compiler than can compile my Haskell code to both ARM64 Linux and ARM64 Android. However I do not know where to get started. I tried the following flake.nix
However
| 13:16:14 | |
| Yeah, android has regressed quite a bit | 16:17:18 | |
| It worked a few years back, not sure to which extent | 16:17:27 | |
| For haskell I mean | 16:17:43 | |
| nobody really puts effort into maintaining Android and iOS upstream in Nixpkgs so they don't really work | 16:17:53 | |
| A few months ago I found some low hanging fruit and managed to build non TH libs | 16:18:04 | |
| https://github.com/NixOS/nixpkgs/pull/355543 | 16:18:06 | |