Adar Dembo has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/15492 )
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 Reviewed-on: http://gerrit.cloudera.org:8080/15492 Reviewed-by: Alexey Serbin <[email protected]> Tested-by: Kudu Jenkins --- 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(-) Approvals: Alexey Serbin: Looks good to me, approved Kudu Jenkins: Verified -- 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: merged Gerrit-Change-Id: Ic807745271642b3d5d80ea0ad9bc413bdb0e34b5 Gerrit-Change-Number: 15492 Gerrit-PatchSet: 12 Gerrit-Owner: Adar Dembo <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: Bankim Bhavsar <[email protected]> Gerrit-Reviewer: Grant Henke <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Todd Lipcon <[email protected]>
