Commit Graph

65 Commits

Author SHA1 Message Date
iliana etaoin
e42705c982 licenses: rename apsl{10,20} -> apple-psl{10,20}
Part 1 of #301908.

This renames the two versions of the Apple Public Source License seen in
nixpkgs; `apsl20` was often confused as being for the widely-used Apache
License 2.0.
2024-04-08 20:39:37 +02:00
Randy Eckenrode
c810782ee6
cctools-llvm: use cctools assembler on x86_64-darwin and LLVM 11
Clang 11 performs an optimization on x86_64 that is sensitive to the
presence of debug information. This results in GCC’s bootstrap failing
because it builds stage 2 with debug information and stage 3 without,
and the resulting objects do not match.

This patch uses the cctools assembler on LLVM 11 and x86_64-darwin while
using the integrated assembler on newer versions, which matches the
platform tools (Apple has uses the integrated assembler since Xcode 12).
2023-07-09 13:29:11 -06:00
Randy Eckenrode
6ebedaddb6 cctools-llvm: match binutils targetPrefix definition 2023-07-09 02:13:05 +03:00
Randy Eckenrode
cf77dee3ad
cctools-port: fix build with clang 16 on x86_64-darwin
Clang 16 fails to build even with `open_memstream` disabled. Just use
the memstream package to provide an implementation.
2023-06-30 17:13:45 -04:00
Randy Eckenrode
5841d0353a
cctools-llvm: fix build with clang 16
This was not caught when cctools-llvm was added. The parens are
necessary to make sure this evaluates correctly when LLVM is new enough
to provide a compatible `otool`.
2023-06-12 17:38:02 -04:00
toonn
782dbaf30f
Merge pull request #234859 from reckenrode/cctools-llvm
cctools-llvm: init at 11.1.0-973.0.1
2023-06-08 19:23:56 +02: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
Randy Eckenrode
241f525928
cctools-apple: fix download source
This probably hasn’t built for a while. Apple is redirecting to GitHub,
which results in different hashes for cctools and ld64. While I’m fixing
the hashes, I also updated the sources to use `fetchFromGitHub`.
2023-06-04 17:45:14 -04:00
Gabriella Gonzalez
79484b1707
bintools: Add response file support to ld-wrapper (#213831)
The motivation behind this is to alleviate the problem
described in https://github.com/NixOS/nixpkgs/issues/41340.
I'm not sure if this completely fixes the problem, but it
eliminates one more area where we can exceed command line
length limits.

This is essentially the same change as in #112449,
except for `ld-wrapper.sh` instead of `cc-wrapper.sh`.

However, that change alone was not enough; on macOS the
`ld` provided by `darwin.cctools` fails if you use process
substitution to generate the response file, so I put up a
PR to fix that:

https://github.com/tpoechtrager/cctools-port/pull/131

… and I included a patch referencing that fix so that the
new `ld-wrapper` still works on macOS.
2023-02-23 17:05:18 -08: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
Stéphan Kochen
71b05eccaa darwin.cctools: 949.0.1 -> 973.0.1 2022-08-08 12:52:12 +02:00
Dmitry Kalinkin
64b7c29da1
darwin.cctools-apple: init at 973.0.1-609 2022-01-31 20:37:48 -05:00
Andrew Childs
bd4a45f5d4 cctools: drop suspicious dependency 2021-05-17 00:27:00 +09:00
Ben Siraphob
16d91ee628 pkgs/os-specific: stdenv.lib -> lib 2021-01-17 23:26:08 +07:00
Matthew Bauer
3c6bd61560 darwin.cctools: 927.0.2 -> 949.0.1
Needed for iOS 13 support
2020-07-21 10:34:24 -05:00
Dmitry Kalinkin
c00ad799a0
darwin.cctools: install ar man pages
In the distribution they are located in a separate directory from the
others and the standard installation doesn't process them.
2020-04-20 23:56:51 -04:00
Dmitry Kalinkin
3e880bad79
darwin.cctools: split man output 2020-04-20 19:51:49 -04:00
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Matthew Bauer
fa383dcb7c cctools: fixup gnu-config detection
Use autoreconfHook instead of preConfigure autogen.sh. This avoids
getting the bad version of the gnu-config script and makes the newish
iOS triples work.
2019-11-27 10:04:32 -05:00
Matthew Bauer
848d4a08a0 cctools: readd ld-rpath-nonfinal patch
This patch is needed to build ghc, which adds -rpath flags for some
reason. Updated patch for newest cctools and reapplied.
2019-11-27 10:01:57 -05:00
Matthew Bauer
08d6c4019d Merge remote-tracking branch 'origin/staging' into dnicponski/scratch/update_darwin_cctools 2019-11-25 22:00:13 -05:00
Matthew Bauer
0c6a0c817a cctools: only add libtool on native builds
libtool is not really needed and it interferes with
updateAutotoolsGnuConfigScriptsHook. So remove it when
cross-compiling, but leave it in native to preserve hashes.
2019-11-25 21:57:56 -05:00
John Ericson
ef328622e0 cctools, darwin biutils: Use pname and version 2019-11-24 18:36:40 +00:00
Dave Nicponski
7b77c09e40 darwin.cctools: 895 -> 927.0.2
Update the version of `cctools` on darwin.  The older version fails
to work on some modern packages, such as `bazel 1.1`.
2019-11-19 09:20:13 -05:00
volth
f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Matthew Bauer
4faa8d0238 cctools: add patch for apfs 2019-04-26 21:54:55 -04:00
Matthew Bauer
7f08b28bbf Revert "Revert "cctools: bump to latest commit""
This reverts commit 0e78f2bd10.
2019-04-26 21:54:47 -04:00
Matthew Bauer
36450d8d0b cctools: enable tapi everywhere
Gets us closer to #19906.
2019-04-26 21:54:46 -04:00
Matthew Bauer
f76c7b8fab libtapi: init
(cherry picked from commit 69347697d3336d4b6add8276d9f75daf6f0cacf3)
2019-04-26 21:54:46 -04:00
Matthew Bauer
5464dbe40a cctools: add myself as maintainer 2019-02-18 20:45:35 -05:00
Matthew Bauer
0e78f2bd10 Revert "cctools: bump to latest commit"
This reverts commit ac682e362c.

This broke iOS building on master. Even Xcode 8.2 comes with TAPI
librarises. We need these patches to support those .tbd files.
Eventually we will move to using libtapi directly, but I have not
finished work on this right now.

Unfortunately, this will not have my changes for building cctools with
manpages. We will have to do this update at some later time.
2019-02-18 20:44:19 -05:00
Matthew Bauer
59ec6b559d
Merge pull request #52256 from matthewbauer/52148-fix
Provide real dsymutil to darwin stdenv
2018-12-18 10:00:24 -06:00
Matthew Bauer
0a996c8ef3 darwin: use llvm’s dsymutil instead of dummy version
We were previously using a dummy wrapper for dsymutil. This meant that
debug symbols were not getting generated when dsymutil was otherwise
available. This should fix that issue & provide a real dsymutil from
llvm.

Fixes #52148.
2018-12-15 12:26:11 -06:00
Matthew Bauer
9564b8ed9e cctools: don’t depend on clang at runtime
--disable-clang-as flag disables the use of clang by cctools-port
2018-12-10 17:31:47 -06:00
Matthew Bauer
ac682e362c cctools: bump to latest commit
Lots of our patches are no longer needed. This simplifies things a
bunch. In addition, it now includes man pages.
2018-10-28 16:44:05 -05:00
Dan Peebles
110c252870 cctools: support LTO on Darwin
LTO is disabled during bootstrap to keep the bootstrap tools small and
avoid unnecessary LLVM rebuilds, but is enabled in the final stdenv
stage and should be usable by normal packages.
2018-09-16 02:12:11 -04:00
John Ericson
0828e2d8c3 treewide: Remove usage of remaining redundant platform compatability stuff
Want to get this out of here for 18.09, so it can be deprecated
thereafter.
2018-08-30 17:20:32 -04:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
John Ericson
18742471af Merge remote-tracking branch 'upstream/master' into staging
Use newer vagrant from master
2018-05-23 09:40:37 -04:00
John Ericson
266adab32d cctools: Remove a bunch of stuff no longer needed for Linux 2018-05-23 09:22:19 -04:00
John Ericson
4b3cc9ed87 cctools: Cleanup useOld conditions slightly
60771af5b6 jumped through some hoops in
order to avoid a mass-rebuild.
2018-05-01 22:31:37 -04:00
Ken Micklas
60771af5b6 cctools-port: Use old version for iOS to support TBD linking 2018-04-19 11:37:10 -04:00
John Ericson
1001311280 cctools: Add alternative source for sierra hack
Source master rebase of my [PR #34].

Eventually, we might consider doing something for GNU binutils too, in
order that we switch (the normal) ld-wrapper to always use this to
leverage ld to resolve libraries, rather than faking it in bash.

[PR #34]: https://github.com/tpoechtrager/cctools-port/pull/34
2018-04-12 19:16:51 -04:00
John Ericson
01e1722e8f cctools: Make assert meta.broken instead
This more politely expresses the same thing
2018-04-12 19:15:47 -04:00
John Ericson
e755a8a27d treewide: Use targetPrefix instead of prefix for platform name prefixes
Certain tools, e.g. compilers, are customarily prefixed with the name of
their target platform so that multiple builds can be used at once
without clobbering each other on the PATH. I was using identifiers named
`prefix` for this purpose, but that conflicts with the standard use of
`prefix` to mean the directory where something is installed. To avoid
conflict and confusion, I renamed those to `targetPrefix`.
2017-11-27 03:15:50 -05:00
John Ericson
ccb93aee17
Merge pull request #31754 from obsidiansystems/simplify-darwin-binutils
cctools, darwin-bintuils: Don't always bring in headers
2017-11-17 15:31:45 -05:00
John Ericson
652c2beda9 cctools: Don't always bring in headers
- Give cctools a dev output for the headers

 - Update Libsystem to grab the headers from that dev output

 - Don't include the headers in Darwin binutils, just as GNU Binutils no
   longer does.
2017-11-16 17:45:41 -05:00
Dan Peebles
762a05cbb6 cctools-port: add a couple of (temporary) impure dependencies 2017-11-14 10:35:18 -05:00
John Ericson
7a22c01b54 apple misc pkgs: buildInputs -> nativeBuildInputs 2017-08-28 15:21:55 -04:00
davidak
3270aa896b replace "Mac OS X" and "OS X" with "macOS"
as it is the official name since 2016

https://en.wikipedia.org/wiki/Macintosh_operating_systems#Desktop

exception are parts refering to older versions of macOS like

"GUI support for Mac OS X 10.6 - 10.12. Note that Emacs 23 and later [...]"
2017-08-07 21:41:30 +02:00