| 29 Mar 2024 |
Steven Keuchel | The error message that you are seeing comes from trying to build ghc from a binary bindist. | 12:32:39 |
Steven Keuchel | But there is not bindist for riscv64, e.g. in here for ghc963Binary https://github.com/NixOS/nixpkgs/blob/6a2bf3ad24583dd4486bf669b6790d61ac239879/pkgs/development/compilers/ghc/9.6.3-binary.nix#L44-L111 | 12:33:00 |
Steven Keuchel | you should not be seeing that error message for a cross-compile though | 12:33:25 |
hive ⬡ | hmm ok | 12:33:47 |
Steven Keuchel | tau: Here is a minimal flake that at least evaluates
{
inputs = {
nixpkgs.url = "github:AlexandreTunstall/nixpkgs/ghc-cross";
};
outputs = { nixpkgs, ... }:
{
nixosConfigurations.riscv64 = nixpkgs.lib.nixosSystem {
modules = [({lib, pkgs, ...}: {
nixpkgs.crossSystem.system = "riscv64-linux";
nixpkgs.localSystem.system = "x86_64-linux";
environment.systemPackages = [
pkgs.haskell.compiler.native-bignum.ghc948
];
# Dummy values
fileSystems."/".device = lib.mkDefault "/dev/sda1";
boot.loader.grub.device = lib.mkDefault "/dev/sda";
})];
};
};
}
Maybe you can use that to figure out what is going wrong.
| 12:58:51 |
Steven Keuchel | This won't build a complete config though since https://github.com/NixOS/nixpkgs/pull/298001 is not in Alex's branch. | 12:59:22 |
hive ⬡ | ok, thanks | 12:59:57 |
misuzu | In reply to @hive:the-apothecary.club i looked through the chat and couldn't find any good binary caches, maybe i missed something, but https://github.com/misuzu/nixos-vf2/blob/master/flake.nix#L3 seems to just give a 404 ? at the very least, when trying it i'm still getting the error with ghc so i'm not sure what's going on here That cache only has binaries for that flake | 18:08:51 |
Alex | tau you're in luck because I was planning on writing some instructions in the shared notes (see room description) this evening.
I'll let you know when the instructions are ready. | 18:10:19 |
hive ⬡ | oh awesome | 18:20:00 |
Alex | tau Steven Keuchel fgaz the shared notes now have instructions for how to get a working GHC.
(Disclaimer: It's been a while since I first booted GHC and I haven't yet had time to properly test the instructions.) | 19:39:30 |
hive ⬡ | it's been building for like | 23:58:16 |
hive ⬡ | since you sent that message | 23:58:22 |
hive ⬡ | and it only got to ghc like, 30 minutes ago | 23:58:34 |
hive ⬡ | and this is on my like build server lmao | 23:58:49 |
hive ⬡ | i'm going to be pushing this to cachix so other people don't have to build it lol | 23:59:17 |
Alex | I couldn't find a way of only patching cc-wrapper and binutils-wrapper for GHC, so you had to rebuild the entire stdenv. | 23:59:26 |
hive ⬡ | womp | 23:59:38 |
| 30 Mar 2024 |
Alex | Wait until you see how long native GHC takes to build on RISC-V hardware :)
(I doubt you'll be able to build much beyond GHC itself with the cross-compiled GHC.) | 00:01:37 |
hive ⬡ | i don't intend to be doing much building on my riscv dev board lol | 00:02:22 |
Alex | If you just want to cross-compile Haskell packages for RISC-V, you don't actually need my changes; Nixpkgs can already do build = host != target. | 00:04:31 |
hive ⬡ | couldn't get that working | 00:04:48 |
Alex | I'm afraid I can't help there, because I've spent all my time on getting working native compilation and no time on cross-compiling haskellPackages :D | 00:05:32 |
hive ⬡ | ah ok | 00:05:42 |
Alex | Btw I suspect your build server isn't particularly fast... My Ryzen 5 5600X desktop finished the GHC build over 90 minutes ago (I can't remember when I started it, but it was definitely not more than an hour before I sent that message). | 00:09:50 |
hive ⬡ | including all of stdenv ? | 00:10:35 |
Alex | Yes | 00:10:41 |
hive ⬡ | wowee | 00:10:45 |
| @jackleightcap:matrix.org joined the room. | 00:11:01 |
Alex | Just a few months ago I noticed that my system was using the powersave CPU frequency scaling driver instead of amd-pstate. Changing that made things significantly faster. If you're on an AMD CPU, maybe you have the same problem? | 00:15:17 |