-
-
Notifications
You must be signed in to change notification settings - Fork 16k
lib.systems.examples: Split glibc powerpc64 back into 2 ABI opt 8000 ions #418443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
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
valgrind
really 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.hello
builds (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 = relaxed
sandbox = true
nix-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.