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

cc-wrapper, cc-wrapper-old: Simplify shell logic #29550

Merged
merged 0 commits into from Sep 19, 2017

Conversation

Ericson2314
Copy link
Member

Motivation for this change
  1. crossDrv is now the default so we don't need to worry about that in build != host builds.

  2. shell is the build time shell, so wrapCCCross doesn't need to worry, as build == host.

  3. shell.shellPath will always be appended where useful.

  4. Complicated shell == "" logic served no purpose.

Things done

Not everything relevant builds currently, but I don't think any hashes in practice changed either (though hypothetical overrides would for the better).

  • 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 19, 2017
@mention-bot
Copy link

@Ericson2314, thanks for your PR! By analyzing the history of the files in this pull request, we identified @edolstra, @gridaphobe and @vcunat to be potential reviewers.

shell = if shell == "" then stdenv.shell else
if builtins.isAttrs shell then (shell + shell.shellPath)
else shell;
shell = shell + lib.optionalString (stdenv ? shellPath) stdenv.shellPath;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe shell = shell + (stdenv.shellPath or "");?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Thanks!

@@ -86,7 +86,8 @@ stdenv.mkDerivation {

preferLocalBuild = true;

inherit cc shell libc_bin libc_dev libc_lib binutils_bin coreutils_bin;
inherit cc libc_bin libc_dev libc_lib binutils_bin coreutils_bin;
shell = getBin shell + stdenv.lib.optionalString (stdenv ? shellPath) stdenv.shellPath;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto

@Ericson2314 Ericson2314 force-pushed the cc-wrapper-cross-shell branch 3 times, most recently from ad01e6f to 28d4824 Compare September 19, 2017 20:35
@Ericson2314 Ericson2314 deleted the cc-wrapper-cross-shell branch September 19, 2017 20:47
@Ericson2314 Ericson2314 merged commit 6c74ee6 into NixOS:master Sep 19, 2017
@Ericson2314 Ericson2314 added this to Needed for binutils-wrapper in Cross compilation Sep 20, 2017
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

4 participants