Bug#1021117: llvm-15-dev: cmake fails on missing /usr/lib/llvm-15/bin/mlir-tblgen

Andreas Beckmann anbe at debian.org
Sun Oct 2 15:04:52 BST 2022


Package: llvm-15-dev
Version: 1:15.0.1-1~exp2
Severity: serious

Hi,

while trying to package spirv-llvm-translator-15, I encountred the
following cmake error:

dh_auto_configure -- \
        -DCMAKE_SKIP_RPATH=ON \
        -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include \
        -DBUILD_SHARED_LIBS=ON \
        -DLLVM_SPIRV_INCLUDE_TESTS=ON \
        -DLLVM_EXTERNAL_LIT=/usr/lib/llvm-15/build/utils/lit/lit.py \
        -Wno-dev
        cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_SKIP_RPATH=ON -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include -DBUILD_SHARED_LIBS=ON -DLLVM_SPIRV_INCLUDE_TESTS=ON -DLLVM_EXTERNAL_LIT=/usr/lib/llvm-15/build/utils/lit/lit.py -Wno-dev ..
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.0") 
-- Using SPIR-V Headers from
          /usr/include
-- The CXX compiler identification is GNU 12.2.0
-- The C compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - 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/bin/cc - 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  
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib/x86_64-linux-gnu/libtinfo.so  
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.14") 
CMake Error at /usr/lib/llvm-15/lib/cmake/llvm/LLVMExports.cmake:1634 (message):
  The imported target "mlir-tblgen" references the file

     "/usr/lib/llvm-15/bin/mlir-tblgen"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/usr/lib/llvm-15/lib/cmake/llvm/LLVMExports.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /usr/lib/llvm-15/cmake/LLVMConfig.cmake:329 (include)
  CMakeLists.txt:82 (find_package)


-- Configuring incomplete, errors occurred!


The corresponding find_package() call is

...
if(NOT DEFINED BASE_LLVM_VERSION)
  set (BASE_LLVM_VERSION 15.0.0)
endif(NOT DEFINED BASE_LLVM_VERSION)
...
  if(LLVM_SPIRV_INCLUDE_TESTS)
    set(LLVM_TEST_COMPONENTS
      llvm-as
      llvm-dis
    )
  endif(LLVM_SPIRV_INCLUDE_TESTS)

  find_package(LLVM ${BASE_LLVM_VERSION} REQUIRED
    COMPONENTS
      Analysis
      BitReader
      BitWriter
      CodeGen
      Core
      Passes
      Support
      TransformUtils
      ${LLVM_TEST_COMPONENTS}
  )
...

This works fine with llvm-14 and spirv-llvm-translator-14.


If I work around this by adding a B-D: mlir-15-tools, the next problem is

CMake Error at /usr/lib/llvm-15/lib/cmake/llvm/LLVMExports.cmake:1634 (message):
  The imported target "MLIRSupportIndentedOstream" references the file

     "/usr/lib/llvm-15/lib/libMLIRSupportIndentedOstream.a"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/usr/lib/llvm-15/lib/cmake/llvm/LLVMExports.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /usr/lib/llvm-15/cmake/LLVMConfig.cmake:329 (include)
  CMakeLists.txt:82 (find_package)


-- Configuring incomplete, errors occurred!


Next one is 

CMake Error at /usr/lib/llvm-15/lib/cmake/llvm/LLVMExports.cmake:1634 (message):
  The imported target "sancov" references the file

     "/usr/lib/llvm-15/bin/sancov"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/usr/lib/llvm-15/lib/cmake/llvm/LLVMExports.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /usr/lib/llvm-15/cmake/LLVMConfig.cmake:329 (include)
  CMakeLists.txt:82 (find_package)


-- Configuring incomplete, errors occurred!


and now I'm stopping chasing missing dependencies.

Perhaps the cmake bits could be tested in an autopkgtest?


>From the llvm-toolchain-15 changelog I do not see any packaging changes
that might have caused this.


The spirv-llvm-translator packaging can be found in
https://salsa.debian.org/opencl-team/spirv-llvm-translator.git
branches llvm14/main and llvm15/main.


Andreas

PS: it might be a good idea to embed spirv-llvm-translator-xx in
src:llvm-toolchain-xx and build it from there



More information about the Pkg-llvm-team mailing list