Skip to content

ccls build failure at indexer.cc #982

@joshcangit

Description

@joshcangit

I can configure it now but there are 2 build errors.

Configuration
> llvm=$(basename $(llvm-config --prefix)) && cmake -Sccls -Bccls/Release -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_PREFIX_PATH=/usr/lib/$llvm -DLLVM_INCLUDE_DIR=/usr/lib/$llvm/include -DCMAKE_INSTALL_PREFIX=/usr/local -DCLANG_LINK_CLANG_DYLIB=ON -DUSE_SYSTEM_RAPIDJSON=OFF -DLLVM_ENABLE_ZLIB=ON
-- The CXX compiler identification is Clang 22.0.0
-- The C compiler identification is Clang 22.0.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/llvm-22/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/llvm-22/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib/x86_64-linux-gnu/libffi.so  
-- Looking for histedit.h
CMake Warning (dev) at /usr/share/cmake-3.28/Modules/CheckIncludeFile.cmake:77 (message):
  Policy CMP0075 is not set: Include file check macros honor
  CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  CMAKE_REQUIRED_LIBRARIES is set to:

    /usr/lib/x86_64-linux-gnu/libedit.so

  For compatibility with CMake 3.11 and below this check is ignoring it.
Call Stack (most recent call first):
  /usr/lib/llvm-22/cmake/FindLibEdit.cmake:28 (check_include_file)
  /usr/lib/llvm-22/cmake/LLVMConfig.cmake:299 (find_package)
  /usr/lib/llvm-22/lib/cmake/clang/ClangConfig.cmake:11 (find_package)
  CMakeLists.txt:72 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for histedit.h - found
-- Found LibEdit: /usr/include (found version "2.11") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.3")  
-- Found zstd: /usr/lib/x86_64-linux-gnu/libzstd.so  
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.14") 
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "8.5.0")  
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Using local RapidJSON
fatal: No names found, cannot describe anything.
-- Configuring done (1.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/joshua/ccls/Release
Build process
> cmake --build ccls/Release
[  2%] Building CXX object CMakeFiles/ccls.dir/third_party/siphash.cc.o
[  4%] Building CXX object CMakeFiles/ccls.dir/src/clang_tu.cc.o
[  7%] Building CXX object CMakeFiles/ccls.dir/src/config.cc.o
[  9%] Building CXX object CMakeFiles/ccls.dir/src/filesystem.cc.o
[ 11%] Building CXX object CMakeFiles/ccls.dir/src/fuzzy_match.cc.o
[ 14%] Building CXX object CMakeFiles/ccls.dir/src/main.cc.o
[ 16%] Building CXX object CMakeFiles/ccls.dir/src/indexer.cc.o
/home/joshua/ccls/src/indexer.cc:1288:10: error: no matching member function for
      call to 'createDiagnostics'
 1288 |   clang->createDiagnostics(
      |   ~~~~~~~^~~~~~~~~~~~~~~~~
/usr/lib/llvm-22/include/clang/Frontend/CompilerInstance.h:709:3: note: 
      candidate function not viable: no known conversion from 'IndexDiags *' to
      'DiagnosticOptions &' for 2nd argument
  709 |   createDiagnostics(llvm::vfs::FileSystem &VFS, DiagnosticOptions &Opts,
      |   ^                                             ~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/llvm-22/include/clang/Frontend/CompilerInstance.h:684:8: note: 
      candidate function not viable: requires at most 2 arguments, but 3 were
      provided
  684 |   void createDiagnostics(DiagnosticConsumer *Client = nullptr,
      |        ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  685 |                          bool ShouldOwnClient = true);
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/joshua/ccls/src/indexer.cc:1302:28: error: too many arguments to function
      call, expected 0, have 1
 1302 |   clang->createFileManager(fs);
      |   ~~~~~~~~~~~~~~~~~~~~~~~~ ^~
/usr/lib/llvm-22/include/clang/Frontend/CompilerInstance.h:717:16: note: 
      'createFileManager' declared here
  717 |   FileManager *createFileManager();
      |                ^
2 errors generated.
make[2]: *** [CMakeFiles/ccls.dir/build.make:160: CMakeFiles/ccls.dir/src/indexer.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:89: CMakeFiles/ccls.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions