lib.systems.examples: Split glibc powerpc64 back into 2 ABI options#418443
lib.systems.examples: Split glibc powerpc64 back into 2 ABI options#418443alyssais merged 1 commit intoNixOS:masterfrom
Conversation
ELFv1 is the historically better supported one on glibc, ELFv2 seems to have some issues with our toolchain. Restore the option to pick the ABI with pkgsCross.
45a4057 to
2d141b7
Compare
|
FWIW, I think full NixOS would require ELFv2, since we use static musl in load‐bearing components like setuid wrappers? |
AFAICT, a static ELFv2 musl wrapper for an ELFv1 glibc binary seems to work fine: (The instructions for testing the security wrapper stuff here don't seem to work anymore as-is, btw) Magical incantation that worked for me (after applying some fix so ncurses is happy): |
|
Makes sense; I just wasn’t sure if the toolchain issues were serious enough to make mixing and matching like that as difficult as using ELFv2 entirely. |
|
Looks reasonable to me - it seemed that musl was the big motivator for moving to elfv2 but if the static musl wrapper works OK then that seems like a good workaround. No strong opinions here so I'm fine with defaulting to whatever seems most stable, and restoring the ability to pick from either option again seems nice. |
ELFv1 is the historically better supported one on glibc, ELFv2 seems to have some issues with our toolchain.
Restore the option to pick the ABI with
pkgsCross.The split ABI options were initially introduced in 72b3bad, and removed again in 8ea1660 due to lack of support for specifying these ABIs via the config string. We have since gone back to specifying the ABI in the config string, so there shouldn't be any issue with bringing this back either.
Bootstrapping Nixpkgs on powerpc64 got stuck due to
valgrindreally not being happy with ELFv2 (#295906), so I'd like to try using the tried-and-tested ABI for this platform instead (eventually… this doesn't have a suuuuper high priority for me rn). This is a first step towards that.72b3bad mentioned:
https://wiki.gentoo.org/wiki/Project:PowerPC#Key_facts
And to give some more examples:
pkgsCross.ppc64-elfv1.hellobuilds (and runs) fine on my end.CC @r-burns, as the author of the aforementioned two commits. Don't know if you still have an interest in big-endian powerpc64 and this ABI stuff.
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.