thakis added a comment.

In D54978#1389110 <>, @brzycki wrote:

> This commit is causing a build-break for our nightly cross compilers of arm 
> and aarch64. The immediately preceding commit of D54977 
> <> does not break with the exact same 
> invocation.
> The problem is our build machine (Ubuntu 18.04 LTS) installs an old version 
> of Z3 that is incompatible with LLVM's tip of tree. To deal with this we add 
> `-D CLANG_ANALYZER_ENABLE_Z3_SOLVER=OFF` to force disabling Z3 even if CMake 
> detects the library is installed.
>   With this patch I am unable to disable Z3 because 
> `CLANG_ANALYZER_ENABLE_Z3_SOLVER` is no longer in the codebase and setting 
> `-D LLVM_ENABLE_Z3_SOLVER=OFF` still builds Z3 support (which fails):
>   [74/187] Building CXX object 
> lib/Support/CMakeFiles/LLVMSupport.dir/Z3Solver.cpp.o
>   FAILED: lib/Support/CMakeFiles/LLVMSupport.dir/Z3Solver.cpp.o
>   /usr/bin/clang++-6.0  -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE 
> -Ilib/Support -I/tmp/tmp.UCDOJjmgJ1/src/llvm/lib/Support 
> -I/usr/include/libxml2 -Iinclude -I/tmp/tmp.UCDOJjmgJ1/src/llvm/include -fPIC 
> -fvisibility-inlines-hidden -Werror=date-time 
> -Werror=unguarded-availability-new -std=c++11 -Wall -Wextra 
> -Wno-unused-parameter -Wwrite-strings -Wcast-qual 
> -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough 
> -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor 
> -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color 
> -ffunction-sections -fdata-sections -O3 -DNDEBUG    -fno-exceptions -fno-rtti 
> -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/Z3Solver.cpp.o -MF 
> lib/Support/CMakeFiles/LLVMSupport.dir/Z3Solver.cpp.o.d -o 
> lib/Support/CMakeFiles/LLVMSupport.dir/Z3Solver.cpp.o -c 
> /tmp/tmp.UCDOJjmgJ1/src/llvm/lib/Support/Z3Solver.cpp
>   /tmp/tmp.UCDOJjmgJ1/src/llvm/lib/Support/Z3Solver.cpp:44:40: error: no 
> matching function for call to 'Z3_get_error_msg'
>                              llvm::Twine(Z3_get_error_msg(Context, Error)));
>                                          ^~~~~~~~~~~~~~~~

From what I understand, setting `-DLLVM_ENABLE_Z3_SOLVER=OFF` is supposed to 
work – the contents of Z3Solver.cpp are wrapped in a `#if LLVM_WITH_Z3`, and 
the logic in the llvm cmake file looks identical to the logic in the clang 
cmake file previously. Can you maybe debug a bit to see what goes wrong on your 

lebedev.ri's point about this not being reviewed properly is a good one though.

  rC Clang


cfe-commits mailing list

Reply via email to