2018-02-09 00:58:12 +03:00
|
|
|
{
|
|
|
|
"stages": "1",
|
|
|
|
"build_libcxx": true,
|
|
|
|
"build_type": "Release",
|
|
|
|
"assertions": false,
|
|
|
|
"osx_cross_compile": true,
|
|
|
|
"python_path": "/usr/bin/python2.7",
|
2019-08-09 05:03:29 +03:00
|
|
|
"gcc_dir": "{MOZ_FETCHES_DIR}/gcc",
|
|
|
|
"cc": "{MOZ_FETCHES_DIR}/clang/bin/clang",
|
|
|
|
"cxx": "{MOZ_FETCHES_DIR}/clang/bin/clang++",
|
|
|
|
"as": "{MOZ_FETCHES_DIR}/clang/bin/clang",
|
|
|
|
"ar": "{MOZ_FETCHES_DIR}/cctools/bin/x86_64-apple-darwin-ar",
|
|
|
|
"ranlib": "{MOZ_FETCHES_DIR}/cctools/bin/x86_64-apple-darwin-ranlib",
|
|
|
|
"libtool": "{MOZ_FETCHES_DIR}/cctools/bin/x86_64-apple-darwin-libtool",
|
|
|
|
"ld": "{MOZ_FETCHES_DIR}/clang/bin/clang",
|
2018-02-09 00:58:12 +03:00
|
|
|
"patches": [
|
Bug 1492037 - Build clang with LLVM as a shared library. r=froydnj
Doing so changes the size of the compressed toolchain archive from ~280M
to ~120M, and the decompressed size from ~1500M to ~675M. This will
reduce the overhead of decompression during builds.
As we ship llvm-symbolizer as part of ASan builds, we do need it to
still statically link against LLVM, which we do with a small patch.
With LLVM as a shared library, libLTO, which is used by cctools-port for
the linker, is dynamically linked to LLVM, and the cctools-port
configure script fails to link against libLTO. So we add a -rpath-link
to make it find the LLVM library. This happens to force a rebuild of
cctools-port, but for future cases where we might need a rebuild because
of some clang changes, we add a comment to ease the process, and avoid
a newer cctools-port taking the cache spot of an older one.
Ideally, mac cctools-port would need something similar, but it needs a
mac libLTO.dylib, which is not there anyways (and the mac cctools-port
thus already didn't support LTO).
Also, with LLVM built as a shared library, all its symbols are exported
with a LLVM_x.y version. Combined with -static-libstdc++ that is used
during the clang build, this causes problems (see
https://bugzilla.mozilla.org/show_bug.cgi?id=1492037#c7). But it turns
out things have evolved since -static-libstdc++ has been added to the
clang build script, and things work without now, so remove it (as well
as -static-libgcc).
Differential Revision: https://phabricator.services.mozilla.com/D6117
2018-09-10 01:41:35 +03:00
|
|
|
"static-llvm-symbolizer.patch",
|
2019-04-02 14:45:25 +03:00
|
|
|
"rename_gcov_flush.patch",
|
2018-02-09 00:58:12 +03:00
|
|
|
"compiler-rt-cross-compile.patch",
|
2019-04-02 05:18:10 +03:00
|
|
|
"compiler-rt-no-codesign.patch"
|
2018-02-09 00:58:12 +03:00
|
|
|
]
|
|
|
|
}
|