llvmPackages_15: init at 15.0.7#194634
Conversation
c11356f to
30373c3
Compare
79aa175 to
8484b4d
Compare
8484b4d to
123aa5e
Compare
|
With ab9d3df, After that:
|
|
Fixed one
Unfortunately there doesn't seem to be a way to communicate this to the I opened a PR for this (#194994) but given that |
123aa5e to
d0c37e4
Compare
|
With 974ea1c this now builds on Testing Update:
|
Details within but ultimately there isn't a satisfying resolution for
any of the three test failures we were seeing and all three deserve
further exploration.
For the `sw_vers` macOS version issue in particular, it's possible to
observe the nixpkgs provided `CoreFoundation` vs system `CoreFoundation`
for `x86_64` and `aarch64` like so (on a host running macOS `13.0.1`):
```console
$ nix-shell -p darwin.DarwinTools --system aarch64-darwin --command "sw_vers"
ProductName: macOS
ProductVersion: 13.0.1
BuildVersion: 22A400
$ nix-shell -p darwin.DarwinTools --system x86_64-darwin --command "sw_vers"
ProductName: Mac OS X
ProductVersion: 10.16
BuildVersion: 22A400
```
Where `/System/Library/CoreServices/SystemVersion.plist` has:
```console
$ cat /System/Library/CoreServices/SystemVersion.plist | grep ProductVersion
-A 1
<key>ProductVersion</key>
<string>13.0.1</string>
```
Further:
```console
$ nix-shell -p darwin.DarwinTools --system aarch64-darwin --command 'otool -L $(which sw_vers)'
/nix/store/nb2q33ak2zif49ndcpc6m823z0vhmy8y-DarwinTools-1/bin/sw_vers:
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1770.255.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)
$ nix-shell -p darwin.DarwinTools --system x86_64-darwin --command 'otool -L $(which sw_vers)'
/nix/store/88v4kjvgwl71byfpvd0baviiq7l5appc-DarwinTools-1/bin/sw_vers:
@rpath/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1454.90.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
```
For the `x86_64` `sw_vers` binary we can see rpath:
```console
$ nix-shell -p darwin.DarwinTools --system x86_64-darwin --command 'otool -l $(which sw_vers)' | grep LC_RPATH -A 2 -B 1
Load command 13
cmd LC_RPATH
cmdsize 120
path /nix/store/zvr4wypbgskhhw9cawfn7mmxfa75nh8f-swift-corefoundation-unstable-2018-09-14/Library/Frameworks (offset 12)
```
And we can confirm that the nixpkgs provided `CoreFoundation` is what
ultimately gets loaded:
```console
$ nix-shell -p darwin.DarwinTools --system x86_64-darwin --command 'DYLD_PRINT_LIBRARIES=1 sw_vers'
dyld[16215]: <no uuid> /nix/store/88v4kjvgwl71byfpvd0baviiq7l5appc-DarwinTools-1/bin/sw_vers
dyld[16215]: <no uuid> /nix/store/zvr4wypbgskhhw9cawfn7mmxfa75nh8f-swift-corefoundation-unstable-2018-09-14/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
dyld[16215]: <no uuid> /nix/store/xd2a4xh8kdwq0j67hzgw720npdw5hzkk-ICU-66108/lib/libicucore.A.dylib
<snipped>
```
```bash
nix-diff \
$(nix path-info nixpkgs#legacyPackages.aarch64-darwin.darwin.DarwinTools --derivation) \
$(nix path-info nixpkgs#legacyPackages.x86_64-darwin.darwin.DarwinTools --derivation)
```
doesn't show any _obvious_ discrepancies
see this thread for context: NixOS#194634 (comment) Co-authored-by: misuzu <bakalolka@gmail.com>
…lation
The two scenarios described within where splicing doesn't handle
selecting the right package for us are observable in the following
(nix repl session):
```
> np = import <nixpkgs> { system = "x86_64-linux"; crossSystem = { config = "aarch64-linux"; }; }
> np.__splicedPackages.hello ? __spliced
true
> np.__splicedPackages.python3Packages.psutil ? __spliced
true
> np.__splicedPackages.python3.pkgs.psutil ? __spliced
false
> (np.__splicedPackages.python3.withPackages (ps: with ps; [psutil])) ? __spliced
false
```
See: NixOS#211340
the tests still don't all pass so `doCheck` is still disabled
Context: NixOS#194634 (comment) All the subprojects seem to be uniformly licensed under NCSA and the LLVM license now (with the exception of openmp which has an additional Intel license that doesn't seem to be in SPDX?); see: - https://github.com/llvm/llvm-project/blob/llvmorg-15.0.7/compiler-rt/LICENSE.TXT - https://github.com/llvm/llvm-project/blob/llvmorg-15.0.7/libcxx/LICENSE.TXT - https://github.com/llvm/llvm-project/blob/llvmorg-15.0.7/libcxxabi/LICENSE.TXT - https://github.com/llvm/llvm-project/blob/llvmorg-15.0.7/openmp/LICENSE.TXT
|
Apologies for the delay, again. I couldn't reproduce #193636 (the test case in #151879 passes and I don't see the extra header dirs on macOS or Linux) so I think this PR is pretty much ready. I'm waiting on builds to finish for:
Additionally, I'm testing that:
I've opened a tracking issue for the follow-up work to this PR: #213033; I'll fill in that issue and open a (draft, contingent on this PR getting merged) follow-up PR bumping |
I believe this PR is ready to be reviewed. Can you remove the draft status? I understand that it's not 100% completed, but it's close enough (I believe, based on my undestanding of this thread). Personally I really want this PR to be merged (in my case because of Zig), and I know many people IRL that feel similar. Since almost all issues are resolved, I believe it shouldn't be a draft (for example, #209536 is not a draft). |
For Zig, I think we need assistance from the darwin maintainers, since (last time I tried) I ran into errors in rrbutani's #191152, and even applying the fix there didn't help (?). |
this is in preparation for the next commit which exposes the release information and monorepo source as overridable args (which makes it easier for users to use their own LLVM in nixpkgs) this commit only adds a check in the `llvm` package's postConfigure that makes sure the LLVM source provided matches the version we were given; the actual machinery (functionally just a cosmetic change; causes no rebuilds) is in the next commit
…s overridable args this makes it easier for users to use their own LLVM in nixpkgs
|
Result of 25 packages built:
|
I built the following packages on my Linux AArch64 machine. They all built successfully at commit d231d18 + my two Zig patches (#210324):
|
|
Successfully created backport PR for |
Description of changes
The commit messages in this PR have more details but at a high level this PR contains a few different kinds of changes:
llvmPackages_15clangfrom this package set to bootstraplibcxx, sidestepping some of the issues we've seen with older LLVM package setsninjawhere possiblex86_64andaarch64)lldb, manpages) and updates (LLVM license, dropping some flags we don't need anymore)TODOs:
stagingfrom upstreammasterpkgsLLVMon darwin evals; I think that's good enough for this PRllvmPackages_latest(targetingstaging); 9088010 was dropped from this PRllvmPackages_15llvmPackages_{9,10,11,12,13,14}-DCMAKE_CXX_FLAGSfromclang15.0.7#194634 (comment))15.0.7#194634 (comment))15.0.7#194634 (comment))staging, try dropping this patch (postponed)x86_64-darwin(llvmPackages_15: init at15.0.7#194634 (comment))llvmPackages_{13,14}(llvmPackages_{13,14}.lldb: fix build on x86 macOS #195013)15.0.7#194634 (comment))litllvmPackages_{13,14,15}(llvmPackages_15: init at15.0.7#194634 (comment))x86_64-darwin: 3 failing LLVM testsaarch64-darwinlinking against hostCoreFoundation?roundevenfonly on x86_64? are we expected to have this symbol? (this test doesn't fail onaarch64-darwin; perhaps this is a manifestation of the host frameworks, i.e. mayberoundevenfis available in newer SDKs?)enablePollyinllvmPackages_{12,13,14}libclang-rtand test againstclangNoLibc(with lsan/asan/ubsan/fuzzer variants tested too)libc++abi.sodidn't seem to be linked against olderlibc++abion non-darwin anyways (where the default stdenv wasn't LLVM based) and now we unconditionally use the clang from the same package set which haslibcxxset tonulland thus doesn't try to link in anylibc++abienabledSharedinlibcxxabi) that looks at the output ofllvm-readelf --needed-libs lib++abi.{dylib/so}and scans it forlibc++abideps that aren't thelibc++abibeing scannedllvmPackages_15; if this PR is merged first we should update these PRs to changellvmPackages_15) — not an exhaustive list:_14yet)Checks:
llvmPackages_15.*nix path-info --file ./test.nix --derivationnix path-info --file ./test.nix --derivation --arg systems '[ "aarch64-darwin" "x86_64-darwin" ]' --arg testStdenvPackages '[]'pkgsCross.x86_64-freebsd.boost(withllvmPackages = llvmPackages_15)nix build --expr '(import ./. { system = "x86_64-linux"; overlays = [(f: p: { llvmPackages = f.llvmPackages_15; })]; }).pkgsCross.x86_64-freebsd.boost'libcxxnixpkgs-reviewllvmPackages_latestCloses #191132.
Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)nixos/doc/manual/md-to-db.shto update generated release notes