You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contrib/macdeploy/README.md
+1-16Lines changed: 1 addition & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,28 +56,13 @@ The `sha256sum` should be `c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c28
56
56
57
57
## Deterministic macOS App Notes
58
58
59
-
macOS Applications are created in Linux by combining a recent `clang` and the Apple
60
-
`binutils` (`ld`, `ar`, etc).
59
+
macOS Applications are created in Linux using a recent LLVM.
61
60
62
61
Apple uses `clang` extensively for development and has upstreamed the necessary
63
62
functionality so that a vanilla clang can take advantage. It supports the use of `-F`,
64
63
`-target`, `-mmacosx-version-min`, and `-isysroot`, which are all necessary when
65
64
building for macOS.
66
65
67
-
Apple's version of `binutils` (called `cctools`) contains lots of functionality missing in the
68
-
FSF's `binutils`. In addition to extra linker options for frameworks and sysroots, several
69
-
other tools are needed as well. These do not build under Linux, so they have been patched to
70
-
do so. The work here was used as a starting point: [mingwandroid/toolchain4](https://github.com/mingwandroid/toolchain4).
71
-
72
-
In order to build a working toolchain, the following source packages are needed from
73
-
Apple: `cctools`, `dyld`, and `ld64`.
74
-
75
-
These tools inject timestamps by default, which produce non-deterministic binaries. The
76
-
`ZERO_AR_DATE` environment variable is used to disable that.
77
-
78
-
This version of `cctools` has been patched to use the current version of `clang`'s headers
79
-
and its `libLTO.so` rather than those from `llvmgcc`, as it was originally done in `toolchain4`.
80
-
81
66
To complicate things further, all builds must target an Apple SDK. These SDKs are free to
82
67
download, but not redistributable. See the SDK Extraction notes above for how to obtain it.
0 commit comments