[PATCH] D37631: [libFuzzer] Support using libc++

Don Hinton via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 22 13:37:43 PST 2018


hintonda added a comment.

In https://reviews.llvm.org/D37631#983999, @Hahnfeld wrote:

> One disadvantage of this change is that the libc++ variant is reconfigured on every invocation of `make` / `ninja`, even if there is nothing to do:
>
>   [1/3] No force-reconfigure step for 'libcxx_fuzzer_x86_64'
>   [2/3] Performing configure step for 'libcxx_fuzzer_x86_64'
>   -- libcxx_fuzzer_x86_64 configure command succeeded.  See also <...>/projects/compiler-rt/lib/fuzzer/libcxx_fuzzer_x86_64/src/libcxx_fuzzer_x86_64-stamp/libcxx_fuzzer_x86_64-configure-*.log
>   [3/3] Performing build step for 'libcxx_fuzzer_x86_64'
>   -- libcxx_fuzzer_x86_64 build command succeeded.  See also <...>/projects/compiler-rt/lib/fuzzer/libcxx_fuzzer_x86_64/src/libcxx_fuzzer_x86_64-stamp/libcxx_fuzzer_x86_64-build-*.log
>
>
> Can we avoid this and have `ninja` say that there is no work to do?


That's because `add_custom_libcxx()` calls `ExternalProject_Add()` directly instead of `llvm_ExternalProject_Add()`, which already has logic to handle this.

In fact, it looks like this is partial reimplementation of code in llvm/runtimes/CMakeLists.txt.  Perhaps that code, mostly `runtime_register_target()`, could be moved to LLVMExternalProjectUtils.cmake and reused here?


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D37631





More information about the llvm-commits mailing list