Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Issue 453513004: Roll Clang 214024:216630 (+216684) and switch to CMake (Closed)

Created:
6 years, 4 months ago by hans
Modified:
6 years, 3 months ago
Reviewers:
Nico, eugenis, samsonov
CC:
chromium-reviews, eugenis+clang_chromium.org, glider+clang_chromium.org, dmikurube+clang_chromium.org, ukai+watch_chromium.org, zerny-chromium, dcheng, Ryan Sleevi, Elliot Glaysher
Project:
chromium
Visibility:
Public.

Description

Roll Clang 214024:216630 (+216684) and switch to CMake This updates Chromium's clang version to r216630 with r216684 cherry-picked to fix an ASan issue. It also changes the build script for Clang to use CMake instead of Autoconf. The ASan team say this configuration is better tested, and it also makes us consistent with the Windows Clang build which already uses CMake. BUG=400849 R=thakis@chromium.org Committed: https://chromium.googlesource.com/chromium/src/+/ff31c1ba254ca37f7a8b45549e1b7b1c978b3390

Patch Set 1 #

Patch Set 2 : Seems to work on Linux, needs love on Mac #

Patch Set 3 : Try to pass LDFLAGS better #

Patch Set 4 : Some tweaking #

Patch Set 5 : With this, I can build a package on Mac #

Patch Set 6 : Now successfully building the package on Linux, and rolling to rev that has my compiler_rt, libcxx … #

Patch Set 7 : Clean-up etc. #

Total comments: 10

Patch Set 8 : More work #

Patch Set 9 : Rebase, fix blink-gc plugin flags, disable -Wundefined-bool-conversion while testing #

Total comments: 6

Patch Set 10 : Address thakis's comments #

Patch Set 11 : Rebase, and suppress the undefined cmp warnings in debug builds #

Patch Set 12 : Don't change location of the stamp file! #

Patch Set 13 : Rebase #

Patch Set 14 : Actually roll to 215949 #

Patch Set 15 : Add patch to unittests/libclang/LibclangTest.cpp #

Patch Set 16 : Rebase, try rolling to 216597, fix BlinkGCPlugin after API change #

Patch Set 17 : Try 217652 #

Patch Set 18 : Don't get ABS_LLVM_CLANG_LIB_DIR wrong if there is an old 3.5.0 dir lying around #

Patch Set 19 : Try 217713 #

Patch Set 20 : Roll to 216630 + 216684 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+335 lines, -176 lines) Patch
M tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +6 lines, -5 lines 0 comments Download
A tools/clang/blink_gc_plugin/CMakeLists.txt View 1 2 3 4 5 6 7 8 9 1 chunk +35 lines, -0 lines 0 comments Download
D tools/clang/blink_gc_plugin/Makefile View 4 5 1 chunk +0 lines, -21 lines 0 comments Download
M tools/clang/blink_gc_plugin/tests/test.sh View 4 5 3 chunks +17 lines, -14 lines 0 comments Download
A tools/clang/plugins/CMakeLists.txt View 4 5 1 chunk +32 lines, -0 lines 0 comments Download
M tools/clang/plugins/FindBadConstructsAction.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M tools/clang/plugins/FindBadConstructsAction.cpp View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
D tools/clang/plugins/Makefile View 4 5 1 chunk +0 lines, -19 lines 0 comments Download
M tools/clang/plugins/tests/test.sh View 4 5 3 chunks +17 lines, -13 lines 0 comments Download
M tools/clang/scripts/blink_gc_plugin_flags.sh View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -3 lines 0 comments Download
M tools/clang/scripts/package.sh View 1 2 3 4 5 6 7 8 9 6 chunks +18 lines, -10 lines 0 comments Download
M tools/clang/scripts/repackage.sh View 1 2 3 4 5 6 7 8 9 2 chunks +4 lines, -4 lines 0 comments Download
M tools/clang/scripts/update.sh View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 13 chunks +201 lines, -84 lines 0 comments Download

Messages

Total messages: 42 (4 generated)
hans
Nico: would you mind taking a look at this on Mac? I've gotten to the ...
6 years, 4 months ago (2014-08-08 00:54:27 UTC) #1
hans
Now looks like it's failing to build asan rt for iOS FAILED: /work/chromium/src/tools/clang/scripts/../../../third_party/llvm/../llvm-bootstrap-install/bin/clang++ -DASA N_HAS_EXCEPTIONS=1 ...
6 years, 4 months ago (2014-08-08 21:55:39 UTC) #2
hans
Notes to self: $ MACOSX_DEPLOYMENT_TARGET=10.5 cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DCMAKE_C_COMPILER=/work/chromium/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/work/chromium/src/third_party/llvm-bootstrap-install/bin/clang++ '-DCMAKE_C_FLAGS=-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk' '-DCMAKE_CXX_FLAGS=-stdlib=libc++ ...
6 years, 4 months ago (2014-08-09 00:05:20 UTC) #3
hans
More notes. I think I've fixed the ASan runtime issue: The compiler-rt cmakelists.txt sets the ...
6 years, 4 months ago (2014-08-11 21:42:00 UTC) #4
hans
On 2014/08/11 21:42:00, hans wrote: > clang-3.5: error: no such file or directory: '/usr/lib/libc++abi.1.dylib' Ha! ...
6 years, 4 months ago (2014-08-11 21:46:06 UTC) #5
hans
And for libc++: $ ninja lib/libc++.1.0.dylib diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index a29b6cc..d56ade4 100644 --- a/lib/CMakeLists.txt ...
6 years, 4 months ago (2014-08-11 21:49:24 UTC) #6
hans
Next up: FAILED: : && /work/chromium/src/tools/clang/scripts/../../../third_party/llvm/../llvm-bootstrap-install/bin/clang++ -nostdinc++ -I/work/chromium/src/tools/clang/scripts/../../../third_party/llvm/projects/libcxx/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter ...
6 years, 4 months ago (2014-08-11 21:55:14 UTC) #7
hans
Progress. This can build Mac and Linux packages. Comparing the tgz's with the old ones ...
6 years, 4 months ago (2014-08-13 02:43:45 UTC) #8
Nico
On 2014/08/13 02:43:45, hans wrote: > Progress. This can build Mac and Linux packages. Comparing ...
6 years, 4 months ago (2014-08-13 16:24:41 UTC) #9
Nico
looks ok I guess, but I don't know cmake well. (I did check that this ...
6 years, 4 months ago (2014-08-13 16:33:07 UTC) #10
hans
I'm currently building binaries based on this version of the script, that I plan to ...
6 years, 4 months ago (2014-08-13 20:31:03 UTC) #11
Nico
What's up with the .syms files? On Wed, Aug 13, 2014 at 1:31 PM, <hans@chromium.org> ...
6 years, 4 months ago (2014-08-13 20:47:17 UTC) #12
hans
On 2014/08/13 20:47:17, Nico (very away) wrote: > What's up with the .syms files? They're ...
6 years, 4 months ago (2014-08-13 20:55:27 UTC) #13
chromium-reviews
On Wed, Aug 13, 2014 at 1:55 PM, <hans@chromium.org> wrote: > On 2014/08/13 20:47:17, Nico ...
6 years, 4 months ago (2014-08-14 01:02:44 UTC) #14
hans
Sounds like having the .syms file might be a good thing. Pushed new Mac and ...
6 years, 4 months ago (2014-08-14 01:35:23 UTC) #15
Nico
mostly lgtm https://codereview.chromium.org/453513004/diff/160001/tools/clang/scripts/update.sh File tools/clang/scripts/update.sh (right): https://codereview.chromium.org/453513004/diff/160001/tools/clang/scripts/update.sh#newcode36 tools/clang/scripts/update.sh:36: $(grep 'set( LIBRARYNAME' "$THIS_DIR"/../blink_gc_plugin/CMakeLists.txt \ (do cmake ...
6 years, 4 months ago (2014-08-14 17:30:37 UTC) #16
Nico
(cc'ing a few folks who might care that the clang plugins are moving from make ...
6 years, 4 months ago (2014-08-14 17:32:56 UTC) #17
hans
https://codereview.chromium.org/453513004/diff/160001/tools/clang/scripts/update.sh File tools/clang/scripts/update.sh (right): https://codereview.chromium.org/453513004/diff/160001/tools/clang/scripts/update.sh#newcode36 tools/clang/scripts/update.sh:36: $(grep 'set( LIBRARYNAME' "$THIS_DIR"/../blink_gc_plugin/CMakeLists.txt \ On 2014/08/14 17:30:37, Nico ...
6 years, 4 months ago (2014-08-14 19:39:40 UTC) #18
Nico
lgtm, gulp (with "(WIP)" removed from the description)
6 years, 4 months ago (2014-08-14 19:44:44 UTC) #19
hans
On 2014/08/14 19:44:44, Nico (very away) wrote: > lgtm, gulp (with "(WIP)" removed from the ...
6 years, 4 months ago (2014-08-14 19:57:03 UTC) #20
hans
I think the tryjobs look pretty good. - mac_asan_64 bot seems broken; it builds and ...
6 years, 4 months ago (2014-08-15 22:58:46 UTC) #21
chromium-reviews
+earthdok On Fri, Aug 15, 2014 at 3:58 PM, <hans@chromium.org> wrote: > I think the ...
6 years, 4 months ago (2014-08-18 01:04:49 UTC) #22
Alexander Potapenko
We're setting detect_leaks=0 by default in base/debug/sanitizer_options.cc Bots running non-browser tests do enable leak detection ...
6 years, 4 months ago (2014-08-18 15:56:11 UTC) #23
hans
On 2014/08/18 15:56:11, glider (OOO till Aug 16) wrote: > We're setting detect_leaks=0 by default ...
6 years, 4 months ago (2014-08-18 17:14:14 UTC) #24
hans
I can reproduce the lsan problem locally: export GYP_DEFINES="clang=1 asan=1 lsan=1 use_allocator=none fastbuild=0 component=static_library" ninja ...
6 years, 4 months ago (2014-08-18 17:55:08 UTC) #25
hans
On 2014/08/18 17:55:08, hans wrote: > I can reproduce the lsan problem locally: > > ...
6 years, 4 months ago (2014-08-18 18:36:16 UTC) #26
chromium-reviews
Right, thanks for pointing it out. I've submitted r215949, which should fix things - now ...
6 years, 4 months ago (2014-08-18 23:49:57 UTC) #27
hans
On 2014/08/18 23:49:57, chromium-reviews wrote: > Right, thanks for pointing it out. I've submitted r215949, ...
6 years, 4 months ago (2014-08-19 02:33:16 UTC) #28
hans
Tryjobs look beautiful. Now we just need a blessed revision.
6 years, 4 months ago (2014-08-19 23:33:09 UTC) #29
hans
The failure on ScopedPtrTest.ScopedPtrWithArray on linux_asan and linux_chromeos_asan is new :/
6 years, 3 months ago (2014-08-28 18:24:23 UTC) #30
hans
Tryjobs look good (whitespace change for comparison: https://codereview.chromium.org/405473002/), I've updated the change description and think ...
6 years, 3 months ago (2014-09-15 21:59:23 UTC) #31
Nico
still lgtm (are the plugins built with today's-ish code?)
6 years, 3 months ago (2014-09-15 22:05:19 UTC) #32
hans
On 2014/09/15 22:05:19, Nico (hiding) wrote: > still lgtm Thanks! > (are the plugins built ...
6 years, 3 months ago (2014-09-15 22:08:17 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patchset/453513004/380001
6 years, 3 months ago (2014-09-15 22:40:02 UTC) #37
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/11129)
6 years, 3 months ago (2014-09-16 00:48:25 UTC) #39
commit-bot: I haz the power
Patchset 20 (id:??) landed as https://crrev.com/ff31c1ba254ca37f7a8b45549e1b7b1c978b3390 Cr-Commit-Position: refs/heads/master@{#294953}
6 years, 3 months ago (2014-09-16 01:01:57 UTC) #40
hans
Committed patchset #20 (id:380001) manually as ff31c1b (presubmit successful).
6 years, 3 months ago (2014-09-16 01:02:03 UTC) #41
hans
6 years, 3 months ago (2014-09-16 01:21:24 UTC) #42
Message was sent while issue was closed.
A revert of this CL (patchset #20 id:380001) has been created in
https://codereview.chromium.org/567443003/ by hans@chromium.org.

The reason for reverting is: Builds failing with:

../../third_party/skia/include/core/SkRect.h:280:25: error: reference cannot be
bound to dereferenced null pointer in well-defined C++ code; pointer may be
assumed to always convert to true [-Werror,-Wundefined-bool-conversion]
        SkASSERT(&a && &b);
                    ~~  ^
../../third_party/skia/include/core/SkTypes.h:96:56: note: expanded from macro
'SkASSERT'
    #define SkASSERT(cond)              SK_ALWAYSBREAK(cond)
                                                       ^
../../third_party/skia/include/core/SkPostConfig.h:173:19: note: expanded from
macro 'SK_ALWAYSBREAK'
              if (cond) break; \
                  ^

(From
http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/bu...).

Powered by Google App Engine
This is Rietveld 408576698