| 31 Mar 2024 |
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 |
Dr. Worm | https://github.com/NixOS/nixpkgs/pull/300571 | 22:22:12 |
Dr. Worm | ok the build segfaulted as expected, but unfortunately still no output in journalctl -ekf | 22:23:49 |
| 1 Apr 2024 |
Dr. Worm | ugh same issue with gnugrep after 2 hours | 02:24:21 |
Dr. Worm | this is so frustrating | 02:24:23 |
Alex | In reply to @hive:the-apothecary.club ugh same issue with gnugrep after 2 hours It really sounds like there's something wrong with your system/emulator.
(diffutils builds fine for me.) | 05:49:47 |
Dr. Worm | i don't know what that would be ? | 18:36:15 |
Dr. Worm | i wrote this script to push all packages of a specific architecture to a cachix cache | 23:55:53 |
Dr. Worm | for path in (nix path-info --all)
set deriver (nix-store --query --deriver $path)
if test $deriver != "unknown-deriver"
echo "Checking $path..."
echo "Deriver: $deriver"
set system (nix derivation show "$deriver"^'*' | grep "\"system\":")
echo "System: $system"
if string match -q "*\"system\": \"riscv64-linux\"" $system
echo "Pushing $path to riscv64-ghc-cache..."
cachix push riscv64-ghc-cache $path
echo "Done pushing $path to riscv64-ghc-cache."
else
echo "$path is not built for riscv64-linux."
end
end
end
| 23:55:56 |
| 2 Apr 2024 |
Dr. Worm | In reply to @alex:tunstall.xyz It really sounds like there's something wrong with your system/emulator.
(diffutils builds fine for me.) tried again on a seperate machine, build failed | 05:57:29 |
Dr. Worm | Dont think its just on my end | 05:58:22 |
Dr. Worm | is there any further information or tests i should provide ? | 06:20:07 |
Dr. Worm | * is there any further information or test results i should provide ? | 06:20:12 |
Alex | Given that you can reproduce on multiple x86 machines, it looks like:
native riscv => ok
emulated riscv => failure
I'm running the build emulated locally to be extra sure of the above.
I'm not really sure how Nixpkgs handles fixes for emulator-only issues.
(It could also just be that my RISC-V hardware is more forgiving than QEMU of non-standard behaviour?) | 06:24:56 |
Dr. Worm | hm possibly | 06:25:26 |
Dr. Worm | what riscv device are you building on ? | 06:28:02 |
Alex | StarFive VisionFive 2 | 06:28:50 |