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

llvmPackages: 7.1.0 -> 9.0.1 #85143

Closed

Conversation

DieGoldeneEnte
Copy link
Contributor

@DieGoldeneEnte DieGoldeneEnte commented Apr 13, 2020

Motivation for this change

As pointed out in #84096 llvmPackages still points to llvm 7. This commit changes llvmPackages to llvm 9. I chose not to use llvm 10, since it was just released.
Since boost16x is boost 1.69 using clang >7 should work in most cases (<1.69 needs clang <=7).

This still needs to be tested on darwin! If you can tell me how to test without darwin machine, I'll compile/fix myself.
On linux all packages building before these changes are still building afterwards.

Things done
  • coreclr now uses clang found in passed llvmPackages, instead of separate argument to ensure all llvm-tools use the same version
  • boost has extra assert to catch compiling boost <1.69 with clang >=8 early on. This combination is not possible, because clang removed a feature.
  • fixed irods and coreclr to llvm 7, since both can not be compiled with newer clang (irods needs boost <1.69 and coreclr has problems with clangs internal assembler after version 8)
  • 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.

This way clang, llvm and lldb all use the same version.
boost <1.69 can't be compiled with clang >=8. This commit adds an assert
to catch the error early on.
Copy link
Member

@LnL7 LnL7 left a comment

Choose a reason for hiding this comment

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

This needs more work than just updating, since this is a major change for the darwin ecosystem (similar to bumping gcc for linux).

That said, I have already been preparing changes for the update, these are the initial changes I've made so far https://github.com/LnL7/nixpkgs/commits/llvm-9-update. Last week I also started an evaluation for this to get an overview of the regressions https://hydra.nixos.org/eval/1579054?compare=1575607#tabs-unfinished. The builds have also been delayed for a bit by the 20.03 release. Once that's finished we can asses what should be fixed along with the update before it can be merged.

It's probably a bit early at this point but If you'd like to help in with the effort most of these failures can most likely be reproduced on linux, like some of the fixes you've made already.

@DieGoldeneEnte
Copy link
Contributor Author

@LnL7 I knew this is a big change for darwin, although I don't know the darwin specific packages. I intended to use this PR to pool the effort. I think it would be more useful if I close this PR and you open a [WIP] PR from your branch?
I would just split the change to coreclr and boost into two independent PRs and contribute fixes to your branch.

@LnL7
Copy link
Member

LnL7 commented Apr 13, 2020

@DieGoldeneEnte See #85151.

@DieGoldeneEnte
Copy link
Contributor Author

I created #85155 and #85156 for coreclr and boost.
Once the coreclr change is merged, I will open a PR to your branch to pin irods and coreclr to llvmPackages_7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants