Commit Graph

89 Commits

Author SHA1 Message Date
Theodore Ni
dab839357e
Merge branch 'master' into staging-next
Had to merge https://github.com/NixOS/nixpkgs/pull/245957 and
https://github.com/NixOS/nixpkgs/pull/247245.
2023-08-20 12:01:22 -07:00
Adam Joseph
cbc8aa437c treewide: use uncurried version of makeScopeWithSplicing 2023-08-14 02:51:10 +03:00
Simon Žlender
8e912feb29 codesign_allocate: reference cctools 2023-08-01 21:27:09 +02:00
Silvan Mosberger
a0b8caf3bc
Revert "lib.customisation: uncurry makeScopeWithSplicing" 2023-07-28 23:04:09 +02:00
Artturin
3716ef19d8 lib.makeScopeWithSplicing: provide default for keep,extra
These are often unneeded by the user.
2023-07-28 17:41:01 +03:00
Adam Joseph
cb13669b00 lib.customisation: uncurry makeScopeWithSplicing
Deeply-curried functions are pretty error-prone in untyped languages
like Nix.  This is a particularly bad case because
`top-level/splice.nix` *also* declares a makeScopeWithSplicing, but
it takes *two fewer arguments*.

Let's switch to attrset-passing form, to provide some minimal level
of sanity-checking.
2023-07-27 21:31:59 -07:00
github-actions[bot]
da44aac0b1
Merge master into staging-next 2023-07-07 12:01:26 +00:00
Michael Hoang
edef486898 darwin.linux-builder: rename from darwin.builder 2023-07-06 21:33:09 +10:00
Michael Hoang
34f6ce2fc2 darwin.builder: allow overriding configuration 2023-07-06 21:32:08 +10:00
Randy Eckenrode
b2574122a9
cctools: make cctools-llvm the default on Darwin 2023-07-02 10:03:29 -04:00
Randy Eckenrode
df7487ff17
cctools-llvm: init at 11.1.0-973.0.1
cctools-llvm is a replacement for cctools that replaces as much of cctools with equivalents from LLVM that it can reasonably do. This was motivated by wanting to reduce dependencies on cctools, which are updated infrequently by upstream.

To provide a motivating example, the version of `strip` included in cctools cannot properly strip the archives in compiler-rt in LLVM 15. Paths are left to bootstrap tools, resulting in failed requisites checks in the final stdenv build. Since `strip` needs replaced, the opportunity was taken to replace other provided they are functional replacements.

Note: This has to be done in cctools (or some equivalent) because some derivations (noteably LLVM) use the bintools of the stdenv directly instead of going through the wrapper.

The following tools from LLVM are not used in this derivation:

* LLD - not fully compatible with ld64 yet and potentially too big of a change;
* libtool - not a drop-in replacement yet because it does not support linker passthrough, which is needed by xcbuild;
* lipo - crashes when running the LLVM test suite;
* install_name_tool - fails when trying to build swift-corefoundation; and.
* randlib - not completely a drop-in replacement, so leaving it out for now.

If other incompatabilities are found, the tools can be reverted or made conditional. For example, cctools `strip` is preferred on older versions of LLVM (which lack the compiler-rt issue) or when cctools itself is a new enough version because `llvm-strip` on LLVM 11 produces files that older verions of `codesign_allocate` cannot process correctly.

One final caveat/note: Some tools are not duplicated or linked from cctools-port. The names of the tools and which ones were linked was determined based on what is provided upstream in Xcode and is installed on macOS system.
2023-06-06 19:05:22 -04:00
Connor Baker
b2eb5c816f apple_sdk: remove cf-private alias 2023-05-01 21:59:03 -04:00
Weijia Wang
12b91012e5 darwin.darling: drop 2023-04-25 22:45:59 +03:00
github-actions[bot]
c4fe2133de
Merge staging-next into staging 2023-02-15 06:01:44 +00:00
Felix Buehler
bc3d5934d7 treewide: use lib.optionals 2023-02-14 19:11:59 +01:00
github-actions[bot]
29cdca7736
Merge staging-next into staging 2023-02-13 06:02:02 +00:00
Sandro
3e7bf1e547
Merge pull request #204493 from reckenrode/xcodes-update 2023-02-13 00:38:33 +01:00
Artturin
4e3dcf364e treewide: makeSetupHook deps -> propagatedBuildInputs 2023-02-07 21:02:00 +02:00
zowoq
eceae845cd darwin.openwith: init at unstable-2022-10-28 2023-02-07 06:22:06 +10:00
Randy Eckenrode
2e2bd8b4f5
xcode: add missing versions 2023-01-28 17:51:18 -05:00
github-actions[bot]
feb2240b37
Merge master into staging-next 2023-01-22 18:01:03 +00:00
Domen Kožar
9d57399b8e
Merge pull request #157628 from veprbl/pr/darwin_cctools_apple
darwin.cctools-apple: init at 973.0.1-609
2023-01-22 17:21:33 +00:00
Alyssa Ross
0ae87d514f treewide: add names to all setup hooks 2023-01-19 15:00:36 +00:00
Vladimír Čunát
befc83905c
Merge #209423: gnat12: add for x86_64-darwin 2023-01-13 18:32:21 +01:00
Boey Maun Suang
82b88d2db6 bintoolsDualAs: Add package
For reasons explained in the commit contents, in order to build the
native gnat package for x86_64-darwin, the native gnatboot package for
x86_64-darwin must have access to both the Clang integrated assembler
and the cctools GNU assembler for that platform.  This commit creates a
package with both of those assemblers that x86_64-darwin gnatboot can
then be wrapped with.
2023-01-07 18:32:12 +11:00
Artturin
58fa78077c treewide: use splicing convenience functions 2022-12-25 14:05:03 +02:00
Gabriella Gonzalez
13bd3271d8
Link to documentation
… as suggested by @domenkozar

Co-authored-by: Domen Kožar <domen@enlambda.com>
2022-12-20 10:03:48 -08:00
Gabriella Gonzalez
edd1cbf5d4 darwin.builder: init
Fixes https://github.com/NixOS/nixpkgs/issues/108984

This originates from:

https://github.com/Gabriella439/macos-builder

… which in turn originates from:

https://github.com/YorikSar/nixos-vm-on-macos
2022-12-19 17:03:45 -08:00
Vladimír Čunát
9cfb24af2d
Merge #180327: qtbase: Fix build for aarch64-darwin
...into staging
2022-07-29 19:35:36 +02:00
Randy Eckenrode
9d2b95eef3
moltenvk: refactor to build without Xcode
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

- Use the 11.0 SDK instead of the 10.12 one on x86_64-darwin;
- Use `NIX_CFLAGS_COMPILE` and `NIX_LDFLAGS` to pass flags to the
  compiler instead of patching the Xcode project files; and
- Use xcbuild to build the project.
2022-07-21 17:03:53 -04:00
Zaripov Kamil
940b020fe7 qtbase: Fix build for aarch64-darwin 2022-07-20 22:44:46 +03:00
Randy Eckenrode
d8f71776ff
apple_sdk_11_0: fix build on x86_64-darwin and expose as attribute 2022-07-06 19:41:17 -04:00
Randy Eckenrode
f138abff3d
moltenvk: init at 1.1.7 2022-02-16 17:17:06 -05:00
Dmitry Kalinkin
64b7c29da1
darwin.cctools-apple: init at 973.0.1-609 2022-01-31 20:37:48 -05:00
Dmitry Kalinkin
831e799e47
darwin.usr-include: remove
Originally introduced in 8610a344 ('gcc: use special native system
headers for darwin') as a hack, not used anymore.
2022-01-15 04:16:21 -05:00
sternenseemann
283d622397 darwin.xattr: init at 61.60.1 2021-08-14 17:06:29 +02:00
Andrew Childs
48519562e3 darwin-packages: avoid exporting attributes that don't exist 2021-05-17 00:28:05 +09:00
Andrew Childs
d2c9670339 darwin: add CoreFoundation to the build when explicitly required 2021-05-17 00:27:02 +09:00
Andrew Childs
7eb1e3695d darwin.signingUtils: init
Helper scripts for code signing on darwin.
2021-05-17 00:27:02 +09:00
Andrew Childs
bfd9a7784e darwin.postLinkSignHook: init 2021-05-17 00:27:02 +09:00
Andrew Childs
4c890ce9aa darwin.sigtool: init 2021-05-17 00:27:02 +09:00
Andrew Childs
9fb8924389 darwin: integrate macOS 11 sdk 2021-05-17 00:27:01 +09:00
Andrew Childs
b7abec31d4 rewrite-tbd: init 2021-05-17 00:27:01 +09:00
Andrew Childs
257cb1c8e8 print-reexports: rehome, tbd4 support, cross compilation 2021-05-17 00:27:01 +09:00
Andrew Childs
bd4a45f5d4 cctools: drop suspicious dependency 2021-05-17 00:27:00 +09:00
John Ericson
37194a325d treewide: Try to make a few bootstrapping things more consistent
- Introduce `preLibcCrossHeaders` to bootstrap libgcc and compiler-rt
  the same way.

- Organize LLVM bintools as `bintools{-unwrapped,,NoLibc}` for
  consistency with GNU Binutils and Apple's cctools.

- Do Android changes for all `llvmPackages` for consistency.

- Improve the way the default GCC and LLVM versions are selected.
2021-05-12 00:14:56 +00:00
John Ericson
470640e7fe treewide: Do a number of no-op cleanups for cross and darwin
I am taking the non-invasive parts of #110914 to hopefully help out with #111988.

In particular:

 - Use `lib.makeScopeWithSplicing` to make the `darwin` package set have
   a proper `callPackage`.

 - Adjust Darwin `stdenv`'s overlays keeping things from the previous
   stage to not stick around too much.

 - Expose `binutilsNoLibc` / `darwin.binutilsNoLibc` to hopefully get us
   closer to a unified LLVM and GCC bootstrap.
2021-05-06 11:17:26 -04:00
Ivan Babrou
a730703e6f
darwin.binutils: use clang for as on aarch64-darwin (#115167)
Without this change `as` on `aarch64-darwin` is defunct:

```
$ /nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/bin/as -v
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/bin/as: assembler (/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm64/as or /nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm64/as) for architecture arm64 not installed
Installed assemblers are:
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/ppc64/as for architecture ppc64
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/x86_64/as for architecture x86_64
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/ppc/as for architecture ppc
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/i386/as for architecture i386
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm/as for architecture arm
```

Apple defaults to Clang in all cases from what I see, but nixpkgs prefers `cctools`: #51881.
2021-03-17 00:27:34 -04:00
Monson Shao
5f1d105505
darwin: add impure-cmds
On darwin, there are some commands neither opensource nor able to build in nixpkgs.
We have no choice but to use those system-shipped impure ones.
2021-01-17 23:44:40 +08:00
Andrew Childs
3456ef6f30 darwin/apple-sdk: use darwin stubs 2020-11-12 00:23:09 +09:00