gecko-dev/build/build-clang
Marian-Vasile Laza dc5a07f0b1 Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE
Backed out changeset e836c26855d4 (bug 1755415)
Backed out changeset 69d9d8005a83 (bug 1755415)
Backed out changeset a84913234c63 (bug 1755415)
Backed out changeset 709af6e17057 (bug 1755415)
Backed out changeset 0a5c1fe00f26 (bug 1755415)
2022-02-16 13:31:05 +02:00
..
1stage.json Bug 1726782 - Separate stage from platform config for clang build. r=firefox-build-system-reviewers,mhentges 2022-02-14 21:10:00 +00:00
2stages.json Bug 1726782 - Separate stage from platform config for clang build. r=firefox-build-system-reviewers,mhentges 2022-02-14 21:10:00 +00:00
4stages-pgo.json Bug 1726782 - Separate stage from platform config for clang build. r=firefox-build-system-reviewers,mhentges 2022-02-14 21:10:00 +00:00
README Bug 1745115 - Default number of stages to build clang to 2. r=firefox-build-system-reviewers,andi 2021-12-10 00:29:57 +00:00
Remove-FlushViewOfFile-when-unmaping-gcda-files.patch Bug 1733611: Remove FlushViewOfFile call when unmaping gcda files in compiler-rt r=marco,andi 2021-10-08 15:06:36 +00:00
android-mangling-error_clang_12.patch Bug 1694280 - Add clang 12.0.0 rc2 toolchains (not yet used) r=firefox-build-system-reviewers,glandium 2021-03-03 16:53:28 +00:00
bug47258-extract-symbols-mbcs.patch
build-clang.py Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE 2022-02-16 13:31:05 +02:00
clang-5.0.json Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE 2022-02-16 13:31:05 +02:00
clang-13.json Bug 1755076 - Remove loosen-msvc-detection.patch. r=firefox-build-system-reviewers,nalexander 2022-02-12 05:52:14 +00:00
clang-tidy-ci.patch Bug 1731582 - Move to clang-13 r=firefox-build-system-reviewers,mhentges,decoder 2021-10-20 12:03:20 +00:00
clang-tidy-external-linux64.json Bug 1744890 - Remove build_type field from clang configs. r=firefox-build-system-reviewers,andi 2021-12-08 06:29:14 +00:00
clang-tidy-linux64.json Bug 1744890 - Remove build_type field from clang configs. r=firefox-build-system-reviewers,andi 2021-12-08 06:29:14 +00:00
clang-tidy-macosx64.json Backed out changeset 984c21a8cf6a (bug 1744890) for causing build bustages. CLOSED TREE 2021-12-08 11:23:12 +02:00
clang-tidy-win64.json Bug 1744890 - Remove build_type field from clang configs. r=firefox-build-system-reviewers,andi 2021-12-08 06:29:14 +00:00
clang-trunk.json Bug 1755076 - Remove loosen-msvc-detection.patch. r=firefox-build-system-reviewers,nalexander 2022-02-12 05:52:14 +00:00
compiler-rt-13-no-codesign.patch Bug 1731582 - Move to clang-13 r=firefox-build-system-reviewers,mhentges,decoder 2021-10-20 12:03:20 +00:00
compiler-rt-cross-compile.patch Backed out changeset 984c21a8cf6a (bug 1744890) for causing build bustages. CLOSED TREE 2021-12-08 11:23:12 +02:00
compiler-rt-no-codesign.patch
downgrade-mangling-error_clang_12.patch Bug 1694280 - Add clang 12.0.0 rc2 toolchains (not yet used) r=firefox-build-system-reviewers,glandium 2021-03-03 16:53:28 +00:00
find_symbolizer_linux_clang_10.patch
find_symbolizer_linux_clang_15.patch Bug 1755076 - Adjust find_symbolizer_linux_clang patch to latest trunk. r=firefox-build-system-reviewers,mhentges 2022-02-12 05:52:14 +00:00
fuzzing_ccov_build_clang_12.patch Bug 1705641 - Don't flush ccov counters when process is dying when env var MOZ_FUZZING_CCOV is defined r=andi 2021-04-28 18:30:35 +00:00
linux64.json Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE 2022-02-16 13:31:05 +02:00
llvmorg-14-init-3166-gd9ab62ca3d29.patch Bug 1747533 - Apply clang trunk fix for crashes printing diagnostic warnings. r=firefox-build-system-reviewers,andi 2021-12-31 08:41:17 +00:00
llvmorg-14-init-4465-g22ea0cea595e-v2.patch Bug 1723593 - Port Windows 11 ASan fix to clang-12. r=glandium 2021-09-28 12:25:09 +00:00
llvmorg-14-init-12719-gc4b45eeb44fd.patch Bug 1748372 - Apply lld trunk fix for weak symbols with LTO on mac. r=firefox-build-system-reviewers,mhentges 2022-01-04 22:15:16 +00:00
llvmorg-14-init-13305-g319181f76718.patch Bug 1747534 - Apply lld patch fixing thread-local storage alignment on mac. r=firefox-build-system-reviewers,mhentges 2021-12-30 01:43:34 +00:00
llvmorg-14-init-13854-g782791ee84d2.patch Bug 1750659 - Refresh D116020 patch with what landed upstream. r=firefox-build-system-reviewers,mhentges 2022-01-18 00:59:16 +00:00
macosx64.json Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE 2022-02-16 13:31:05 +02:00
profile-g4a10504e1f70c.patch Bug 1730078 - Don't build some things during early stages of the clang compilation. r=firefox-build-system-reviewers,andi,mhentges 2021-09-15 02:39:52 +00:00
profile.json Bug 1726782 - Create a new task generating a clang profile for PGO. r=firefox-build-system-reviewers,mhentges 2022-02-14 21:10:00 +00:00
revert-llvmorg-12-init-7827-g2a078c307204.patch Bug 1745115 - Keep only one revert patch for 2a078c307204. r=firefox-build-system-reviewers,andi 2021-12-10 00:29:56 +00:00
revert-llvmorg-13-init-8182-gc2297544c047.patch Bug 1753859 - Remove changes to clang/test/CodeGen/alloc-fns-alignment.c from patches. r=firefox-build-system-reviewers,andi 2022-02-08 08:20:00 +00:00
revert-llvmorg-14-init-3651-g85ba583eba19.patch Bug 1745115 - Apply the same patches as clang 13 to clang trunk. r=firefox-build-system-reviewers,andi 2021-12-10 00:29:59 +00:00
revert-llvmorg-14-init-3652-gf3c2094d8c11.patch Bug 1753859 - Remove changes to clang/test/CodeGen/alloc-fns-alignment.c from patches. r=firefox-build-system-reviewers,andi 2022-02-08 08:20:00 +00:00
skip-3-stages.json Bug 1726782 - Create a new task generating a clang profile for PGO. r=firefox-build-system-reviewers,mhentges 2022-02-14 21:10:00 +00:00
skip-stage-1-win64.json Bug 1752486 - Replace the win64 clang 2 stages toolchain with a 1 stage one. r=firefox-build-system-reviewers,andi 2022-02-03 07:51:37 +00:00
skip-stage-1.json Bug 1751839 - Build clang stage 1 as a separate task. r=firefox-build-system-reviewers,andi 2022-01-25 21:51:17 +00:00
static-llvm-symbolizer_clang_12.patch Bug 1694280 - Add clang 12.0.0 rc2 toolchains (not yet used) r=firefox-build-system-reviewers,glandium 2021-03-03 16:53:28 +00:00
static-llvm-symbolizer_clang_15.patch Bug 1754668 - Adjust clang trunk patches. r=firefox-build-system-reviewers,andi 2022-02-11 03:54:04 +00:00
tsan-D101154.patch Bug 1644147 - Fix a deadlock in TSan. r=andi 2021-04-26 15:10:13 +00:00
unpoison-thread-stacks_clang_10.patch
win64-no-symlink.patch Backed out changeset 438a6427019c (bug 1737164) for landing with other author on a CLOSED TREE 2021-10-22 10:44:25 +03:00
win64.json Backed out 5 changesets (bug 1755415) for causing build bustages. CLOSED TREE 2022-02-16 13:31:05 +02:00

README

build-clang.py
==============

A script to build clang from source.

```
usage: build-clang.py [-h] -c CONFIG [--clean]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Clang configuration file
  --clean               Clean the build directory
```

Pre-requisites
--------------
* Working build toolchain.
* git
* CMake
* Ninja
* Python 2.7 and 3

Please use the latest available CMake for your platform to avoid surprises.

Config file format
------------------

build-clang.py accepts a JSON config format with the following fields:

* stages: Use 1, 2, 3 or 4 to select different compiler stages.  The default is 2.
* cc: Path to the bootsraping C Compiler.
* cxx: Path to the bootsraping C++ Compiler.
* as: Path to the assembler tool.
* ar: Path to the library archiver tool.
* ranlib: Path to the ranlib tool (optional).
* libtool: Path to the libtool tool (optional).
* ld: Path to the linker.
* patches: Optional list of patches to apply.
* build_type: The type of build to make.  Supported types: Release, Debug, RelWithDebInfo or MinSizeRel.
* build_libcxx: Whether to build with libcxx.  The default is false.
* build_clang_tidy: Whether to build clang-tidy with the Mozilla checks imported.  The default is false.
* osx_cross_compile: Whether to invoke CMake for OS X cross compile builds.
* assertions: Whether to enable LLVM assertions.  The default is false.
* pgo: Whether to build with PGO (requires stages == 4).  The default is false.

The revisions are defined in taskcluster/ci/fetch/toolchains.yml. They are usually commit sha1s corresponding to upstream tags.

Environment Variables
---------------------

The following environment variables are used for cross-compile builds targeting OS X on Linux.

* CROSS_CCTOOLS_PATH: Path to the cctools directory where the cross compiler toolchain is located.
* CROSS_SYSROOT: Path to the OS X SDK directory for cross compile builds.