| 31 Mar 2024 |
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 |
Dr. Worm | fair | 21:05:19 |
Dr. Worm | the verify command finished with no errors so | 22:01:30 |
Dr. Worm | prolly not on my end | 22:01:39 |
Alex | Until it's fixed, you can add an overlay to disable the checkPhase.
Something like this ought to work:
diffutils = super.diffutils.overrideAttrs (old: {
doCheck = false;
});
| 22:09:21 |
Dr. Worm | still waiting for the build to segfault lol | 22:10:00 |