| Index: docs/clang.md
|
| diff --git a/docs/clang.md b/docs/clang.md
|
| index a63ecdb86efe8582e12a42f07529d37b35b38878..0661253b336ccba74a22cd8bbfce7ba8a1edcdb6 100644
|
| --- a/docs/clang.md
|
| +++ b/docs/clang.md
|
| @@ -26,7 +26,7 @@ Clang is the default compiler.
|
|
|
| Run `gn args` and add `is_clang = true` to your args.gn file.
|
|
|
| -Build: `ninja -C out/Debug chrome`
|
| +Build: `ninja -C out/gn chrome`
|
|
|
| ## Reverting to gcc on linux
|
|
|
| @@ -57,19 +57,6 @@ To test the FindBadConstructs plugin, run:
|
| ./test.py ../../../../third_party/llvm-build/Release+Asserts/bin/clang \
|
| ../../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so)
|
|
|
| -These instructions are for GYP which no longer works. Something similar needs
|
| -to be set up for the GN build if you want to do this. For reference, here are
|
| -the old instructions: To run [other plugins](writing_clang_plugins.md), add
|
| -these to your `GYP_DEFINES`:
|
| -
|
| -* `clang_load`: Absolute path to a dynamic library containing your plugin
|
| -* `clang_add_plugin`: tells clang to run a specific PluginASTAction
|
| -
|
| -So for example, you could use the plugin in this directory with:
|
| -
|
| -* `GYP_DEFINES='clang=1 clang_load=/path/to/libFindBadConstructs.so
|
| - clang_add_plugin=find-bad-constructs' gclient runhooks`
|
| -
|
| ## Using the clang static analyzer
|
|
|
| See [clang_static_analyzer.md](clang_static_analyzer.md).
|
| @@ -83,10 +70,10 @@ Things should compile, and all tests should pass. You can check these bots for
|
| how things are currently looking:
|
| http://build.chromium.org/p/chromium.fyi/console?category=win%20clang
|
|
|
| -``` shell
|
| +```shell
|
| python tools\clang\scripts\update.py
|
| # run `gn args` and add `is_clang = true` to your args.gn, then...
|
| -ninja -C out\Debug chrome
|
| +ninja -C out\gn chrome
|
| ```
|
|
|
| The `update.py` script only needs to be run once per checkout. Clang will be
|
| @@ -102,35 +89,30 @@ Current brokenness:
|
|
|
| ## Using a custom clang binary
|
|
|
| -These instructions are for GYP which no longer works. Something similar needs
|
| -to be set up for the GN build if you want to do this. For reference, here are
|
| -the old instructions:
|
| -
|
| -If you want to try building Chromium with your own clang binary that you've
|
| -already built, set `make_clang_dir` to the directory containing `bin/clang`
|
| -(i.e. the directory you ran cmake in, or your `Release+Asserts` folder if you
|
| -use the configure/make build). You also need to disable chromium's clang plugin
|
| -by setting `clang_use_chrome_plugins=0`, as it likely won't load in your custom
|
| -clang binary.
|
| +Set `clang_base_path` in your args.gn to the llvm build directory containing
|
| +`bin/clang` (i.e. the directory you ran cmake). This [must][1] be an absolute
|
| +path. You also need to disable chromium's clang plugin.
|
|
|
| Here's an example that also disables debug info and enables the component build
|
| (both not strictly necessary, but they will speed up your build):
|
|
|
| -```shell
|
| -GYP_DEFINES="clang=1 fastbuild=1 component=shared_library \
|
| -clang_use_chrome_plugins=0 make_clang_dir=$HOME/src/llvm-build" \
|
| -build/gyp_chromium
|
| +```
|
| +clang_base_path = getenv("HOME") + "/src/llvm-build"
|
| +clang_use_chrome_plugins = false
|
| +is_debug = false
|
| +symbol_level = 1
|
| +is_component_build = true
|
| +is_clang = true # Implicitly set on Mac, Linux, iOS; needed on Win and Android.
|
| ```
|
|
|
| -You can then run `head out/Release/build.ninja` and check that the first to
|
| +You can then run `head out/gn/toolchain.ninja` and check that the first to
|
| lines set `cc` and `cxx` to your clang binary. If things look good, run `ninja
|
| --C out/Release` to build.
|
| +-C out/gn` to build.
|
|
|
| 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).
|
| +* You might have to tweak warning flags.
|
|
|
| ## Using LLD
|
|
|
| @@ -141,5 +123,5 @@ 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.
|
|
|
| -Set `use_lld = true` in args.gn. Currently this configuration is only supported
|
| on Windows.
|
| +Set `use_lld = true` in args.gn.
|
|
|