Skip to content
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

top-level: No gccCrossStageFinal needed anymore #29610

Merged
merged 3 commits into from Sep 21, 2017

Conversation

Ericson2314
Copy link
Member

Motivation for this change

gccCrossStageFinal has been removed in lieu of the normal gcc* attributes, which will now work fine.

The only downsides to this are

  1. gcc.cc.override in the definition of `gccCrossStageStatic no longer works, but that was kind of infinite-recursion-prone all along.

  2. Some contortions are needed to avoid a mass rebuild, but that can be cleaned up longer term. I rather merge this now, and send a much lighter PR to staging to do that.

Things done

No native or cross hashes changed!

  • Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • Linux
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

@Ericson2314 Ericson2314 added the 6.topic: cross-compilation Building packages on a different sort platform than than they will be run on label Sep 20, 2017
@Ericson2314 Ericson2314 changed the title No gcc cross stage final top-level: No gccCrossStageFinal needed anymore Sep 20, 2017
@Ericson2314 Ericson2314 added this to Needed for binutils-wrapper in Cross compilation Sep 20, 2017
@dezgeg
Copy link
Contributor

dezgeg commented Sep 21, 2017

Looks good to me, I suppose. I'm not too familiar with the gcc parts though.

This gets us one step closer to removing `gccCrossStageFinal`.

Care is taken to avoid a mass rebuild; will clean up with one later.
Unfortunately this makes previously-barely-working overrides have
infinite recursion, so I had to reinstantiate gcc for gccCrossStageFinal
instead.
@Ericson2314
Copy link
Member Author

Ericson2314 commented Sep 21, 2017

Hmm, this only made @edolstra a code owner because of the one-word change in pkgs/stdenv/cross/default.nix, a file I wrote. I think there's enough more interesting/controversial PRs of mine needing his attention, so I'm just going to merge now that @dezgeg, the other cross compilation person besides me, has signed off.

@Ericson2314 Ericson2314 merged commit 56574e6 into NixOS:master Sep 21, 2017
@Ericson2314 Ericson2314 deleted the no-gccCrossStageFinal branch September 21, 2017 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: cross-compilation Building packages on a different sort platform than than they will be run on
Projects
No open projects
Cross compilation
Needed for binutils-wrapper
Development

Successfully merging this pull request may close these issues.

None yet

2 participants