2018-07-11 11:44:39 +03:00
|
|
|
{
|
2020-04-07 17:12:51 +03:00
|
|
|
"stages": "4",
|
|
|
|
"pgo" : true,
|
2018-07-11 11:44:39 +03:00
|
|
|
"build_libcxx": true,
|
2019-09-17 23:14:17 +03:00
|
|
|
"build_wasm": true,
|
2018-07-11 11:44:39 +03:00
|
|
|
"build_type": "Release",
|
|
|
|
"assertions": false,
|
|
|
|
"python_path": "/usr/bin/python2.7",
|
2019-08-09 05:03:29 +03:00
|
|
|
"gcc_dir": "{MOZ_FETCHES_DIR}/gcc",
|
|
|
|
"cc": "{MOZ_FETCHES_DIR}/gcc/bin/gcc",
|
|
|
|
"cxx": "{MOZ_FETCHES_DIR}/gcc/bin/g++",
|
|
|
|
"as": "{MOZ_FETCHES_DIR}/gcc/bin/gcc",
|
2019-12-09 19:59:49 +03:00
|
|
|
"wasi-sysroot": "{MOZ_FETCHES_DIR}/wasi-sysroot",
|
2018-07-11 11:44:39 +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",
|
2018-07-10 13:53:03 +03:00
|
|
|
"find_symbolizer_linux.patch",
|
2019-12-10 14:47:12 +03:00
|
|
|
"rename_gcov_flush.patch",
|
2019-12-13 01:13:04 +03:00
|
|
|
"critical_section_on_gcov_flush-rG02ce9d8ef5a8.patch",
|
2019-12-06 01:28:01 +03:00
|
|
|
"rG7e18aeba5062.patch",
|
2020-02-27 00:19:47 +03:00
|
|
|
"llvmorg-11-init-4265-g2dcbdba8540.patch",
|
2020-02-28 00:56:39 +03:00
|
|
|
"android-mangling-error.patch",
|
|
|
|
"unpoison-thread-stacks.patch",
|
|
|
|
"downgrade-mangling-error.patch",
|
2020-03-23 16:08:47 +03:00
|
|
|
"tsan-hang-be41a98ac222.patch",
|
2020-02-28 00:56:39 +03:00
|
|
|
"loosen-msvc-detection.patch"
|
2018-07-11 11:44:39 +03:00
|
|
|
]
|
|
|
|
}
|