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: update default 5 -> 6 #39986
Conversation
We should run a full hydra build for darwin before merging this, IIRC I already tried to build a basic set do you remember if that was ok? |
I don't remember, sorry :(. If it was a hydra job would it be on an instance somewhere perhaps? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure what this is about...
/nix/store/r3hlqw31bp6b0n0286jvzsgsf9xa5r0h-bootstrap-stage1-stdenv-darwin/setup: line 1305: cd: /nix/store/28addjb206cfvj78dq6jjyg3wzvsffd3-architecture-osx-10.11.6/include: No such file or directory
builder for '/nix/store/1sb4xy60mpw3bfpydg9pjksz3rjn3ih0-Libsystem-osx-10.11.6.drv' failed with exit code 1
Well, staging is completely broken. |
D'oh re:staging being broken. Are there issues tracking this? EDIT: by "this" I mean "staging being broken" :) |
Should be fixed now, let me start another build. |
Well, it was for a day. |
@LnL7: https://github.com/NixOS/nixpkgs/pull/40539/files#r188388605 fwiw, hopefully fixed soon :). |
Beep boop! 😁 |
Updated to latest staging (conflicts resolved)! |
e8b45b1
to
ff80297
Compare
Conflicts resolved! |
hmm not sure why eval breaks, do you know why this is happening @Ericson2314 ? No worries if not but since you're poked at these things lately thought I'd ask before diving in too deep :3. |
ff80297
to
98780b8
Compare
Yes, it's because the Darwin bootstrapping recently was changed referred to I've fixed this and rebased the PR. |
Okay, thank you! I think I oops accidentally missed your change... but I think ended up in the same place. Will try moving back to your update shortly... (EDIT: this was done almost immediately after posting this, there's just no visual indication of such :)) |
Maybe we'll update the default by the time LLVM 7.0.1 is released... 😛 😇 |
Anything blocking this if, let's say, we would target this for 18.09? Any inconvenience could be expected to be caused by merging this? There's not been a bunch of discussion, so either everything's fine (which I think it probably is) or there hasn't been enough eyes on this. |
This has a large impact on darwin builds, similar to a gcc upgrade for the linux side. There's no fundamental problem but it needs more rigorous testing compared to other changes.
|
I'll look into conflicts shortly, but this is long overdue! 😁 They're cutting RC's for 7, haha! |
@dtzWill You should be able to drop the overrides in all-packages.nix, that stuff is done in the stdenv phases now. |
98780b8
to
c4b43a4
Compare
Oooo very nice, makes this sort of thing much easier! Resolved commits, haha at this point it's almost entirely |
Hmm, I think the llvm6 expressions might have diverged a bit.
|
After some poking I found that llvm_6 (or clang_6, one of them) has a reference to libxml2 on Linux as well, where the llvm/clang 5 variant does not. Investigating, there are some options set on 6 that don't really make sense while bootstrapping anyway... |
Oh I just noticed, this stuff might be important https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/darwin/default.nix#L256 |
I may be mistaken but I think that's already handled, and in fact is the only reason this PR isn't a tiny trivial change in top-level :). I'm not sure what role libxml2 plays but I'm wondering if answer might be to just Unfortunately I'm not in a good position to iterate/test/explore this, thoughts and testing from Darwin folks appreciated :). |
@dtzWill I don't think we want to depend on libxml2 (same with ncurses actually), but it's a required build dependency IIRC. libxml2 isn't a runtime dependency now.
|
libxml2 is an optional dependency that is only used to support Windows .manifest files. |
I must have been thinking of ncurses, not libxml2. Removing it seems to work, should we do that in the stdenv or can we just drop it everywhere? diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix
index 787a48416ab..78583906273 100644
--- a/pkgs/development/compilers/llvm/6/llvm.nix
+++ b/pkgs/development/compilers/llvm/6/llvm.nix
@@ -4,7 +4,6 @@
, python
, libffi
, libbfd
-, libxml2
, ncurses
, version
, release_version
@@ -36,7 +35,7 @@ in stdenv.mkDerivation (rec {
nativeBuildInputs = [ cmake python ]
++ stdenv.lib.optional enableManpages python.pkgs.sphinx;
- buildInputs = [ libxml2 libffi ];
+ buildInputs = [ libffi ];
propagatedBuildInputs = [ ncurses zlib ]; |
I'd enable it for the sake of completeness, and if LLVM is rebuilt after the stdenv bootstrap is complete regardless of libxml2, there are no downsides. |
There has been a recent bug report about a miscompilation with -O2 in Clang 6 and later: https://bugs.llvm.org/show_bug.cgi?id=38786 . I'd rather not update without a patch. |
@@ -159,7 +159,7 @@ in rec { | |||
dyld = bootstrapTools; | |||
}; | |||
|
|||
llvmPackages_5 = { | |||
llvmPackages_6 = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you just getting rid of attributes for 5 here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh never mind, I misunderstood where this was!
If it now depends on libxml2, that isn't a huge deal, we can just add it to the stdenv whitelist. Edit: just saw the .manifest thing, let's just remove the optional dependency for now to minimize changes |
That's not the problem. This is a bootstrap version of libxml2 so we'd need to build llvm/clang twice or pull in python and all it's dependencies at runtime. |
Given the darwin bootstrapping and runtime implications I'd argue moving libxml2 to an overridable flag that's disabled by default is a better than increasing the darwin stdenv or adding conditionals. |
The final tag for 7 is in. |
Closing in favor of #49402 (which attempts to dodge the Darwin bootstrap issue/touchups so it can be solved separately). |
Testing needed.
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)