Skip to content

treewide: Some LLVM / bootstrapping / cross cleanups especially for consistency#122655

Merged
Ericson2314 merged 7 commits intoNixOS:stagingfrom
Ericson2314:bootstrapping-consistency
May 12, 2021
Merged

treewide: Some LLVM / bootstrapping / cross cleanups especially for consistency#122655
Ericson2314 merged 7 commits intoNixOS:stagingfrom
Ericson2314:bootstrapping-consistency

Conversation

@Ericson2314
Copy link
Copy Markdown
Member

@Ericson2314 Ericson2314 commented May 11, 2021

Motivation for this change

See each commit. There is a lot of diff here but most of it is skin deep.

The things that escaped #111487 I am doing sound higher risk but aren't, because they are for bits of LLVM we don't use too much (unwind 7, LLVM 12 libc++, etc.).

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • 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 nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

depends on #120790

CC @NixOS/exotic-platform-maintainers

@Ericson2314 Ericson2314 requested a review from matthewbauer as a code owner May 11, 2021 23:11
sternenseemann and others added 7 commits May 12, 2021 00:08
* Use LLVM_PATH instead of llvm-config
* Pass less unnecessary options to cmake
This keeps the "main bootstrap" together.
This decision was made in a902d99 but
just for LLVM 12. Now we apply it consitently.
- Introduce `preLibcCrossHeaders` to bootstrap libgcc and compiler-rt
  the same way.

- Organize LLVM bintools as `bintools{-unwrapped,,NoLibc}` for
  consistency with GNU Binutils and Apple's cctools.

- Do Android changes for all `llvmPackages` for consistency.

- Improve the way the default GCC and LLVM versions are selected.
The main thing was using `llvm_meta` in all versions.

Secondarily:

 - libunwindx7: Forgot to split outputs

 - libcxx{,abi} 12: Forgot to apply output-splitting patches.

 - simplify `useLLVM` stdenv-switching logic.

 - openmp always gets its own directory
@Ericson2314 Ericson2314 force-pushed the bootstrapping-consistency branch from fbcc853 to e830db4 Compare May 12, 2021 00:16
@ofborg ofborg bot added 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 501-1000 This PR causes many rebuilds on Linux and should normally target the staging branches. labels May 12, 2021
@Ericson2314
Copy link
Copy Markdown
Member Author

I'm going to merge this as it's should be all churn no risk, and I am nervous about making the cut-off.

@Ericson2314 Ericson2314 merged commit d63b57e into NixOS:staging May 12, 2021
@Ericson2314 Ericson2314 deleted the bootstrapping-consistency branch May 12, 2021 03:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 501-1000 This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants