Based on the derivation from xcbuild.sdk. apple_sdk.sdkRoot provides
version plists and a hook that passes them automatically to the compiler
as `-isysroot`. This is needed to correctly set the SDK version in
compiled binaries. Otherwise, clang will infer the SDK version to be the
same as the deployment target, which is usually not what you want.
- Only link `libexec` when using cctools-port. cctools-llvm does not
have a `libexec` folder;
- Use `as` provided by cctools-llvm, which is already using the
clang-integrated assembler on both platforms; and
- Clean up inconsistent use of `builtins`.
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
- Update to the latest available version from Apple;
- Use Meson because dealing with xcbuild is too much trouble; and
- Conditionally build certain programs when newer SDKs are available.
`zlog` in darwin.system_cmds requires the CoreSymbolication framework.
This change does two things:
- Adds a patch with the required missing symbols; and
- Uses the stubs to create `CoreSymbolication.framework`.
Co-authored-by: a-n-n-a-l-e-e <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
- Drop the patches in favor of patching up the xcodeproj files, which
should make updates in the future easier (no more patch conflicts);
- Switch to building `MoltenVKPackaging.xcodeproj` instead of building
the projects individually;
- Link `libMoltenVK.dylib` manually, which is needed for MoltenVK 1.2.8
due to xcbuild not being able to build the dylib in the xcodeproj;
- Add support for enabling private API usage and default it to `true`.
This will be a new feature in MoltenVK 1.2.8;
- Use darwin.apple_sdk.libs.simd instead of symlinking from the SDK;
- Filter out rc and beta releases in the update script; and
- Support static builds of MoltenVK.
- merge libcxxabi into libcxx for LLVM 12, 13, 14, 15, 16, 17, and git.
- remove the link time workaround `-lc++ -lc++abi` from 58 packages as it is no longer required.
- fixes https://github.com/NixOS/nixpkgs/issues/166205
- provides alternative fixes for. https://github.com/NixOS/nixpkgs/issues/269548https://github.com/NixOS/nix/issues/9640
- pkgsCross.x86_64-freebsd builds work again
This change can be represented in 3 stages
1. merge libcxxabi into libcxx -- files: pkgs/development/compilers/llvm/[12, git]/{libcxx, libcxxabi}
2. update stdenv to account for merge -- files: stdenv.{adapters, cc.wrapper, darwin}
3. remove all references to libcxxabi outside of llvm (about 58 packages modified)
### merging libcxxabi into libcxx
- take the union of the libcxxabi and libcxx cmake flags
- eliminate the libcxx-headers-only package - it was only needed to break libcxx <-> libcxxabi circular dependency
- libcxx.cxxabi is removed. external cxxabi (freebsd) will symlink headers / libs into libcxx.
- darwin will re-export the libcxxabi symbols into libcxx so linking `-lc++` is sufficient.
- linux/freebsd `libc++.so` is a linker script `LINK(libc++.so.1, -lc++abi)` making `-lc++` sufficient.
- libcxx/default.nix [12, 17] are identical except for patches and `LIBCXX_ADDITIONAL_LIBRARIES` (only used in 16+)
- git/libcxx/defaul.nix does not link with -nostdlib when useLLVM is true so flag is removed. this is not much different than before as libcxxabi used -nostdlib where libcxx did not, so libc was linked in anyway.
### stdenv changes
- darwin bootstrap, remove references to libcxxabi and cxxabi
- cc-wrapper: remove c++ link workaround when libcxx.cxxabi doesn't exist (still exists for LLVM pre 12)
- adapter: update overrideLibcxx to account for a pkgs.stdenv that only has libcxx
### 58 package updates
- remove `NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}` as no longer needed
- swift, nodejs_v8 remove libcxxabi references in the clang override
https://github.com/NixOS/nixpkgs/pull/292043