[PATCH] D129377: [lldb/Fuzzer] Add fuzzer for expression evaluator

Martin Storsjö via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Jul 23 13:21:18 PDT 2022


mstorsjo added a comment.

In D129377#3673237 <https://reviews.llvm.org/D129377#3673237>, @mib wrote:

> In D129377#3673204 <https://reviews.llvm.org/D129377#3673204>, @mstorsjo wrote:
>
>> This broke building of Clang, when it's set up by symlinking `llvm-project/clang` into `llvm-project/llvm/tools`. In that case, cmake configure errors out like this:
>>
>>   -- Configuring done 
>>   CMake Error in tools/clang/tools/clang-fuzzer/handle-cxx/CMakeLists.txt:
>>     Target "clangHandleCXX" INTERFACE_INCLUDE_DIRECTORIES property contains
>>     path:
>>    
>>       "/home/martin/code/llvm-project/llvm/tools/clang/tools/clang-fuzzer/handle-cxx/." 
>>   
>>     which is prefixed in the source directory.
>>
>> See e.g. https://stackoverflow.com/questions/25676277/cmake-target-include-directories-prints-an-error-when-i-try-to-add-the-source for some discussion on the issue.
>>
>> Can we revert this commit until this has been sorted out?
>
> @mstorsjo I reverted Chelsea's patch in b797834748f1 <https://reviews.llvm.org/rGb797834748f1954950880bf50fb78abedd4494e6>, since she's offline now. Do you have a link to a bot failure that would help us investigate the issue ?

So in short, I think this would work if you'd simply remove the newly added `target_include_directories(clangHandleCXX PUBLIC .)` in `clang/tools/clang-fuzzer/handle-cxx/CMakeLists.txt` and `target_include_directories(clangProtoToCXX PUBLIC .)` and `target_include_directories(clangLoopProtoToCXX PUBLIC .)` in `clang/tools/clang-fuzzer/proto-to-cxx/CMakeLists.txt`.

To reproduce the issue - instead of configuring llvm+clang+lldb by passing `-DLLVM_ENABLE_PROJECTS="clang;lldb"` make symlinks in `llvm-project/llvm/tools` pointing to `llvm-project/clang` and `llvm-project/lldb`. (I.e., `cd llvm-project/llvm/tools; ln -s ../../clang .; ln -s ../../lldb .`) This slightly affects the effective path at where CMake sees the clang files, which causes CMake to report the unexpected path overlap issue here.

I've tried to build all these fuzzers - I haven't really managed to build it all, but I think I'm fairly close. Anyway, I tried removing those `target_include_directories()` in that setup, and it didn't change anything, but maybe it only makes a difference if one gets further than what I got. (Changing `PUBLIC` into `PRIVATE` in those lines avoided the issue too.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129377/new/

https://reviews.llvm.org/D129377



More information about the cfe-commits mailing list