| 25 Aug 2025 |
Marie | you mean to compile gcc? | 18:40:46 |
Marie | So I tried to build gcc with our flags outside of nix, which resulted in
/home/marie/arch-build/compiler/powerpc-unknown-linux-gnu/bin/ld: cannot find crti.o: No such file or directory
/home/marie/arch-build/compiler/powerpc-unknown-linux-gnu/bin/ld: cannot find -lc: No such file or directory
/home/marie/arch-build/compiler/powerpc-unknown-linux-gnu/bin/ld: cannot find crtn.o: No such file or directory
When I apply the same hack as we do here (https://github.com/NixOS/nixpkgs/blob/dbfdaa1a1cef034a790d0287bdd885ee78ecb11c/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix#L6-L37), it results in the same error as in the nix build. I was also to reproduce the same thing in a podman container running arch linux. | 18:42:09 |
Marie | I just used a nix-shell -p to try to build a cross binutils and gcc | 18:43:47 |
Marie | that hack seems to work for ppc64 but not for 32 | 18:44:16 |
Marie | i think i found a way to make it work, no idea if it makes stuff explode, but it makes stuff compile, will have another look tomorrow | 22:03:06 |
| 27 Aug 2025 |
Marie | So this platform has a CPU bug which needs a gcc and glibc patch for SMP to work reliably, is there a way to apply these without ending up in override hell? | 10:30:44 |
Alex | In reply to @marie:marie.cologne So this platform has a CPU bug which needs a gcc and glibc patch for SMP to work reliably, is there a way to apply these without ending up in override hell? Are the bootstrap tools functional despite the bug?
If not, good luck. | 12:05:43 |
Puna | prolly bite the bullet and submit staging PRs to add those patches to the gcc & glibc expressions. and for functional bootstrap tools, wait for staging to hit master | 12:13:22 |
Marie | I'm only trying to do cross right now, I don't think we even have bootstrap tools for powerpc | 12:16:34 |
Alex | Ah, that ought to simplify matters a bit, since you don't even need to override stdenv. | 12:17:18 |
Marie | and these patches are very specific for this cpu, not sure how upstreamable they are | 12:17:26 |
Marie | (https://gitlab.com/linux-wiiu/smp-patches) | 12:17:51 |
Alex | I suspect that overriding pkgsCross.whatever.stdenv.cc is sufficient, though I can't remember how.
Maybe replaceStdenv? | 12:18:41 |
Puna | i don't see why they shouldn't be upstreamable. prolly just a matter of "someone needs to find the time to submit them to those upstreams"? | 12:21:47 |
Puna | * i don't see why they shouldn't be upstreamable. prolly just a matter of "someone (ideally the patch author) needs to find the time to submit them to those upstreams"? | 12:22:26 |
Alex | There can be many good reasons, e.g. "it's a big hack and would negatively impact all other CPUs" | 12:22:54 |
Puna | have you looked at the patches? | 12:23:17 |
K900 | Those are all conditional though? | 12:23:19 |
K900 | Like, all the hacks are ifdef'ed | 12:23:26 |
dramforever | seems like those patches would be conditional on -mcpu=espresso | 12:23:48 |
Alex | So they are. | 12:24:01 |
Marie | I was more worried about if upstream would include such hacks for such specific CPU bugs | 12:25:20 |
Marie | I think I'll ask the author if they have plans for upstreaming | 12:25:36 |
dramforever | gcc does this all the time | 12:25:36 |
K900 | Eh, I'm pretty sure glibc still ships fdiv errata workarounds | 12:25:37 |
K900 | So I don't think this is even particularly bad | 12:25:45 |
dramforever | glibc i haven't checked | 12:25:47 |
Marie | There's also a WIP patch for LLVM afaik | 12:25:55 |
Puna | they definitely care about hacks for exotic hardware | 12:26:27 |
Puna | i was exchanging mails with various GNU projects earlier this year about bugs with the abomination that is double-double long double on powerpc64, and those all got addressed fairly quickly | 12:28:13 |