| Index: docs/clang.md
|
| diff --git a/docs/clang.md b/docs/clang.md
|
| index 5b5b43f7ada6624b746e7b4b8a1fc7d747ebe57d..4e12a7e48c05c4b533bdfe3566f70d4aba2b024b 100644
|
| --- a/docs/clang.md
|
| +++ b/docs/clang.md
|
| @@ -18,20 +18,11 @@ Get clang (happens automatically during `gclient runhooks` on Mac and Linux):
|
|
|
| tools/clang/scripts/update.py
|
|
|
| -(Only needs to be run once per checkout, and clang will be automatically updated
|
| -by `gclient runhooks`.)
|
| +Only needs to be run once per checkout, and clang will be automatically updated
|
| +by `gclient runhooks`.
|
|
|
| -### Reverting to gcc on linux
|
| -
|
| -We don't have bots that test this, but building with gcc4.8+ should still work
|
| -on Linux. If your system gcc is new enough, use this to build with gcc if you
|
| -don't want to build with clang:
|
| -
|
| - GYP_DEFINES=clang=0 build/gyp_chromium
|
| -
|
| -### Ninja
|
| -
|
| -Regenerate the build files (`clang=1` is on by default on Mac and Linux):
|
| +Regenerate the ninja build files with Clang enabled. Again, on Linux and Mac,
|
| +Clang is the default compiler.
|
|
|
| If you use gyp: `GYP_DEFINES=clang=1 build/gyp_chromium`
|
|
|
| @@ -39,6 +30,14 @@ If you use gn, run `gn args` and add `is_clang = true` to your args.gn file.
|
|
|
| Build: `ninja -C out/Debug chrome`
|
|
|
| +## Reverting to gcc on linux
|
| +
|
| +We don't have bots that test this, but building with gcc4.8+ should still work
|
| +on Linux. If your system gcc is new enough, use this to build with gcc if you
|
| +don't want to build with clang:
|
| +
|
| + GYP_DEFINES=clang=0 build/gyp_chromium
|
| +
|
| ## Mailing List
|
|
|
| http://groups.google.com/a/chromium.org/group/clang/topics
|
| @@ -79,8 +78,6 @@ See [clang_static_analyzer.md](clang_static_analyzer.md).
|
|
|
| ## Windows
|
|
|
| -**Experimental!**
|
| -
|
| clang can be used as compiler on Windows. Clang uses Visual Studio's linker and
|
| SDK, so you still need to have Visual Studio installed.
|
|
|
| @@ -97,9 +94,11 @@ python build\gyp_chromium
|
| ninja -C out\Debug chrome
|
| ```
|
|
|
| +The `update.py` script only needs to be run once per checkout. Clang will be
|
| +kept up-to-date by `gclient runhooks`.
|
| +
|
| Current brokenness:
|
|
|
| -* Goma doesn't work.
|
| * Debug info is very limited.
|
| * To get colored diagnostics, you need to be running
|
| [ansicon](https://github.com/adoxa/ansicon/releases).
|
| @@ -131,3 +130,16 @@ If your clang revision is very different from the one currently used in chromium
|
| * Check `tools/clang/scripts/update.py` to find chromium's clang revision
|
| * You might have to tweak warning flags. Or you could set `werror=` in the
|
| line above to disable warnings as errors (but this only works on Linux).
|
| +
|
| +## Using LLD
|
| +
|
| +**Experimental!**
|
| +
|
| +LLD is a relatively new linker from LLVM. The current focus is on Windows and
|
| +Linux support, where it can link Chrome approximately twice as fast as gold and
|
| +MSVC's link.exe as of this writing. LLD does not yet support generating PDB
|
| +files, which makes it hard to debug Chrome while using LLD.
|
| +
|
| +If you use gyp, you can enable it with `GYP_DEFINES=lld=1`. If you use gn, set
|
| +`use_lld = true` in args.gn. Currently this configuration is only supported on
|
| +Windows.
|
|
|