[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