| 30 Mar 2024 |
Dr. Worm | ur incredible | 17:58:32 |
Alex | tau I've been modernising my RISC-V configuration, so I just so happen to have a pure flake that can evaluate GHC. It's not yet done building so I'm not entirely sure it'll work flawlessly on my VF2, but feel free to use it as a reference for how to overlay GHC.
https://github.com/AlexandreTunstall/nixos-riscv | 18:06:38 |
| 31 Mar 2024 |
Dr. Worm | right now it's doing an emulated build, and i'm guessing there's no way to get it to do a cross build ? | 05:45:32 |
Dr. Worm | i don't think nix build has an option for that | 05:46:16 |
Dr. Worm | i know nix-build does, but i have been able to find a flag for nix build anywhere | 05:46:37 |
Alex | In reply to @hive:the-apothecary.club right now it's doing an emulated build, and i'm guessing there's no way to get it to do a cross build ? Cross-compiling Haskell packages doesn't work.
I think the main issue is probably that Cabal needs to compile Setup.hs for the build platform, so you can't just instruct it to use a GHC that targets the host platform. | 06:29:33 |
Alex | In reply to @hive:the-apothecary.club i don't think nix build has an option for that Nix can cross-compile an entire NixOS system, but not when using flakes unless the flake was specifically written for cross-compilation (e.g. by setting nixpkgs.buildPlatform). | 06:35:46 |
Dr. Worm | alright, thanks | 06:57:41 |
Dr. Worm | after a 9 hour build, the build for diffutils failed the overflow checks,,, ;-; | 20:37:50 |
Dr. Worm | Download diffutils-log.txt | 20:39:54 |
Dr. Worm | it successfully built so i really have no idea why the checks failed | 20:40:35 |
Dr. Worm | i think i should probably report this bug to nixpkgs | 20:42:00 |
Alex |
Segmentation fault
Check kernel log. | 20:50:16 |
Dr. Worm | would that be journalctl | 20:51:00 |
Alex | journalctl -ek
If on a systemd distribution (like NixOS) | 20:51:22 |
Alex | At the very least those logs should tell you exactly which process segfaulted and a bit of information about what exactly it tried to do. | 20:54:10 |
Dr. Worm | i'm not seeing any segfaults in the logs | 20:56:37 |
Dr. Worm | https://github.com/NixOS/nixpkgs/issues/300550 | 20:58:15 |
Dr. Worm | i'll try to get it to crash again and see if i can find it | 20:58:26 |
Dr. Worm | would it show up in dmesg ? | 20:58:37 |
Alex | On the system that ran the build?
There should definitely be something there at the timestamp at which it crashed... | 20:58:46 |
Alex | I don't know, I never use dmesg | 20:58:55 |
Dr. Worm | yeah on the system that ran the build | 21:00:23 |
Dr. Worm | to be fair i don't really know what i'm looking for | 21:00:29 |
Dr. Worm | i skimmed the logs and tried to / search for SEG or FAULT but i couldn't find anything | 21:00:48 |
Alex | Example:
ghc_worker[772846]: unhandled signal 11 code 0x1 at 0x0000004e3584b582
CPU: 2 PID: 772846 Comm: ghc_worker Not tainted 6.5.0 #1-NixOS
Hardware name: StarFive VisionFive 2 v1.3B (DT)
epc : 0000004e3584b582 ra : 0000003ff3e06900 sp : 00000004e3ffa730
gp : 000000000006ea80 tp : 00000004e3fff8e0 t0 : 0000000000004000
t1 : 0000003ff3e00628 t2 : 0000003ff6f86598 s0 : 00000004f148d652
s1 : 0000003fedb8afd8 a0 : 0000000000000000 a1 : 0000003fed8dd038
a2 : 0000000000000002 a3 : 0000000000000002 a4 : 0000000000000032
a5 : 09e1854e3584b583 a6 : 0000000000000000 a7 : 0000003ff7ffdd50
s2 : 00000004f311b9f8 s3 : 00000004f16d93c8 s4 : 0000003fed8dc5e0
s5 : 00000004f31140c0 s6 : 00000004f148d638 s7 : 00000004f36d2870
s8 : 00000004f2ce1000 s9 : 00000000000003bd s10: 0000003fedb59058
s11: 00000004f31140c0 t3 : 0000003fed2f0514 t4 : 0000000000000001
t5 : 0000003fed9c6e2a t6 : 000000000000002e
status: 8000000200006020 badaddr: 0000004e3584b582 cause: 000000000000000c
| 21:01:11 |
Alex | In case you're not familiar: a segfault (short for segmentation fault) is what happens when a process tries to access memory that it isn't supposed to. | 21:02:51 |
Dr. Worm | couldn't find "unhandled" anywhere | 21:02:52 |
Alex | How odd. It probably wouldn't be very useful to you anyway, since they're quite low-level details.
Just in case, maybe try nix store verify --all --no-trust? | 21:03:51 |
Alex | If nix store verify doesn't find any corrupted store paths, then it's definitely a bug in the program, the toolchain that produced the program, or the emulator emulating the platform the program was built for. | 21:05:07 |