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
darwin: Backport tbd stdenv (Big Sur support) to 20.09 #121040
darwin: Backport tbd stdenv (Big Sur support) to 20.09 #121040
Conversation
installTarget looks like a typo for installTargets. This causes a lot of llvm and clang to be built and installed. Clang is not intended to be an external dependency. The source bundle includes llvm and clang. Adding include paths and building clangBasic first is sufficient to use the internal clang components.
This new version has tapi support, which is needed to build the new stubs based libSystem, etc. and Big Sur support. You can verify the provenance of these yourself by checking Hydra here: https://hydra.nixos.org/build/128192471
Adapted from main expression for clang 7.
Build the llvm support libraries (libcxx, libcxxabi) from scratch without using the existing llvm libraries. This is the same spirit and similar implementation as the "useLLVM" bootstrap in llvm package sets. Critically it avoids having libcxxabi provided by the cc-wrapper when building libcxx, which otherwise results in two libcxxabi instances. $ otool -L /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.dylib /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.dylib: /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0) /nix/store/gmpwk5fyp3iasppqrrdpswxvid6kcp8r-libc++abi-7.1.0/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1.0.0) /nix/store/3hn7azynqgp2pm5gpdg45gpq0ia72skg-libc++abi-7.1.0/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1.0.0) /nix/store/1nq94scbxs6bk7pimqhvz76q6cfmbv97-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) Additionally move some utilities (clang, binutils, coreutils, gnugrep) to the stage layers so they can be replaced before the final stdenv. This should cause most of stage4 to be built from the toolchain assembled as of stage3 instead of the bootstrap toolchain.
Exposed by the tbd stubs which contains fat libraries. The previously used proxy libraries were x86_64 only.
Used during bootstrap to check that re-exported libraries are not dangling.
Fixes bootstrapping on macOS Big Sur.
Result of 30 packages marked as broken and skipped:
279 packages skipped due to time constraints:
14 packages built successfully:
3 suggestions:
Result of 23 packages marked as broken and skipped:
267 packages skipped due to time constraints:
11 packages built successfully:
|
I don't think we should backport such a big change to 20.09 when 21.05 is right around the corner. |
Unfortunately NixOS 20.09 has reached its end-of-life status on 2021-07-01, one Since we do not accept any changes to its branches anymore, I'm closing this pull |
Fixes #118103
This backport cherrypicks the commits from these three pull requests, in order:
Motivation for this change
Currently Big Sur is only supported on
master
, but not in any of the stable releases (e.g. 20.09), so this backports Big Sur support to 20.09 so people don't have to switch to thenixpkgs-unstable
release in order to support Mac.Things done
$ nix build --file ./default.nix hello # On Big Sur, which succeeded
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)