Hello Alexey Serbin, Andrew Wong, Grant Henke, Bankim Bhavsar, Todd Lipcon,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/15492

to look at the new patch set (#9).

Change subject: iwyu: standardize on libc++
......................................................................

iwyu: standardize on libc++

A common IWYU pain point is that the set of recommendations you get for C++
standard library headers differs depending on the system you run on.
Pre-commit currently uses Ubuntu 14.10, so to guarantee a pass in pre-commit
one must run IWYU on an Ubuntu 14.10 VM.

Instead, let's standardize on libc++ for C++ standard library headers. Even
though Kudu itself is built against the system's libstdc++, the standard
library classes we use should be available in the same "public" headers
regardless of implementation. And this way, all runs of IWYU will produce
the same recommendations. A more comprehensive solution would be to
standardize _all_ of Kudu on clang and libc++. That's a larger piece of work
with its own issues (e.g. is it safe to statically link libc++ into the C++
client library?).

This patch also introduces mappings for libc++. Some are from the IWYU repo
while others are new for Kudu. I also included a patch to fix a bug in IWYU
dealing with false <new> recommendations when processing a codebase using
-fsized-deallocation[1]. Finally, I removed almost all of the "muted" files
from iwyu.py; the few remaining instances trip up IWYU without recourse.

Note: strictly speaking we don't need to _build_ libc++, but it's a quick
build and this is the easiest way to get the appropriate set of headers into
thirdparty/installed/<prefix>/include.

1. https://github.com/include-what-you-use/include-what-you-use/issues/777

Change-Id: Ic807745271642b3d5d80ea0ad9bc413bdb0e34b5
---
M build-support/iwyu.py
M build-support/iwyu/iwyu_tool.py
A build-support/iwyu/mappings/libcxx-extra.imp
A build-support/iwyu/mappings/libcxx.imp
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
M thirdparty/download-thirdparty.sh
A thirdparty/patches/llvm-iwyu-sized-deallocation.patch
8 files changed, 283 insertions(+), 45 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/92/15492/9
--
To view, visit http://gerrit.cloudera.org:8080/15492
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ic807745271642b3d5d80ea0ad9bc413bdb0e34b5
Gerrit-Change-Number: 15492
Gerrit-PatchSet: 9
Gerrit-Owner: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ban...@cloudera.com>
Gerrit-Reviewer: Grant Henke <granthe...@apache.org>
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to