Skip to content

Build error llvm 21.1.x (missing VectorTransformsEnums.h.inc) #160896

@climbfuji

Description

@climbfuji

Description

I am hitting a build error on an Alma Linux 9 system runnning in WSL 2 with LLVM 21.1.x that I did not encounter with 20.1.5 when using the exact same build options.

Clone, cmake (OK)

mkdir -p /home/dom/prod/llvm-21.1.1/src
cd /home/dom/prod/llvm-21.1.1/src

git clone -b llvmorg-21.1.1 --depth=1 https://github.com/llvm/llvm-project

cd llvm-project

/usr/bin/cmake \
--fresh \
-S llvm \
-B build \
-G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX:STRING=/home/dom/prod/llvm-21.1.1 \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON \
-DCMAKE_INSTALL_RPATH:STRING="/home/dom/prod/llvm-21.1.1/lib;/home/dom/prod/llvm-21.1.1/lib64" \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=OFF \
-DCMAKE_POLICY_DEFAULT_CMP0090:STRING=NEW \
-DCMAKE_FIND_USE_PACKAGE_REGISTRY:BOOL=OFF \
-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \
-DLLVM_REQUIRES_RTTI:BOOL=ON \
-DLLVM_ENABLE_RTTI:BOOL=ON \
-DLLVM_ENABLE_LIBXML2:BOOL=OFF \
-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp \
-DLIBOMP_USE_HWLOC:BOOL=OFF \
-DLLVM_ENABLE_ZSTD:BOOL=OFF \
-DCUDA_TOOLKIT_ROOT_DIR:STRING=IGNORE \
-DCUDA_SDK_ROOT_DIR:STRING=IGNORE \
-DCUDA_NVCC_EXECUTABLE:STRING=IGNORE \
-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE \
-DLIBOMPTARGET_ENABLE_DEBUG:BOOL=OFF \
-DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN:BOOL=OFF \
-DLLDB_ENABLE_LIBEDIT:BOOL=OFF \
-DLLDB_ENABLE_LUA:BOOL=OFF \
-DLLDB_ENABLE_PYTHON:BOOL=OFF \
-DOPENMP_ENABLE_LIBOMPTARGET:BOOL=OFF \
-DLLVM_ENABLE_Z3_SOLVER:BOOL=OFF \
-DLINK_POLLY_INTO_TOOLS:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
-DLLVM_LINK_LLVM_DYLIB:BOOL=OFF \
-DLLVM_USE_SPLIT_DWARF:BOOL=ON \
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY:BOOL=ON \
-DCMAKE_FIND_PACKAGE_PREFER_CONFIG:BOOL=ON \
-DCMAKE_FIND_USE_PACKAGE_ROOT_PATH:BOOL=OFF \
-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY:BOOL=OFF \
-DCMAKE_FIND_USE_PACKAGE_REGISTRY:BOOL=OFF \
-DCMAKE_FIND_USE_SYSTEM_PATH:BOOL=OFF \
-DLLVM_TARGETS_TO_BUILD:STRING=X86 \
-DLLVM_ENABLE_PROJECTS:STRING="lldb;clang;clang-tools-extra;flang;lld;polly" \
-DLLVM_ENABLE_RUNTIMES:STRING="openmp;compiler-rt;libcxx;libcxxabi;libunwind" \
-DRUNTIMES_CMAKE_ARGS:STRING="-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON;-DCMAKE_C_FLAGS:STRING=--gcc-install-dir=/usr/lib/gcc/x86_64-redhat-linux/11;-DCMAKE_CXX_FLAGS:STRING=--gcc-install-dir=/usr/lib/gcc/x86_64-redhat-linux/11" \
2>&1 | tee log.cmake

Make

cd build
make VERBOSE=1 -j1 2>&1 | tee log.make.001

With [email protected], this step completes successfully. With [email protected] (tried 21.1.1 and 21.1.2):

[ 32%] Building CXX object tools/mlir/lib/Conversion/ArithToAMDGPU/CMakeFiles/obj.MLIRArithToAMDGPU.dir/ArithToAMDGPU.cpp.o
cd /home/dom/prod/llvm-21.1.1/src/llvm-project/build/tools/mlir/lib/Conversion/ArithToAMDGPU && /usr/bin/c++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/dom/prod/llvm-21.1.1/src/llvm-project/build/tools/mlir/lib/Conversion/ArithToAMDGPU -I/home/dom/prod/llvm-21.1.1/src/llvm-project/mlir/lib/Conversion/ArithToAMDGPU -I/home/dom/prod/llvm-21.1.1/src/llvm-project/build/tools/mlir/include -I/home/dom/prod/llvm-21.1.1/src/llvm-project/mlir/include -I/home/dom/prod/llvm-21.1.1/src/llvm-project/build/include -I/home/dom/prod/llvm-21.1.1/src/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -Wno-deprecated-copy -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -MD -MT tools/mlir/lib/Conversion/ArithToAMDGPU/CMakeFiles/obj.MLIRArithToAMDGPU.dir/ArithToAMDGPU.cpp.o -MF CMakeFiles/obj.MLIRArithToAMDGPU.dir/ArithToAMDGPU.cpp.o.d -o CMakeFiles/obj.MLIRArithToAMDGPU.dir/ArithToAMDGPU.cpp.o -c /home/dom/prod/llvm-21.1.1/src/llvm-project/mlir/lib/Conversion/ArithToAMDGPU/ArithToAMDGPU.cpp
In file included from /home/dom/prod/llvm-21.1.1/src/llvm-project/mlir/lib/Conversion/ArithToAMDGPU/ArithToAMDGPU.cpp:19:
/home/dom/prod/llvm-21.1.1/src/llvm-project/mlir/include/mlir/Dialect/Vector/Transforms/VectorRewritePatterns.h:19:10: fatal error: mlir/Dialect/Vector/Transforms/VectorTransformsEnums.h.inc: No such file or directory
   19 | #include "mlir/Dialect/Vector/Transforms/VectorTransformsEnums.h.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [tools/mlir/lib/Conversion/ArithToAMDGPU/CMakeFiles/obj.MLIRArithToAMDGPU.dir/build.make:76: tools/mlir/lib/Conversion/ArithToAMDGPU/CMakeFiles/obj.MLIRArithToAMDGPU.dir/ArithToAMDGPU.cpp.o] Error 1
make[2]: Leaving directory '/home/dom/prod/llvm-21.1.1/src/llvm-project/build'
make[1]: *** [CMakeFiles/Makefile2:60636: tools/mlir/lib/Conversion/ArithToAMDGPU/CMakeFiles/obj.MLIRArithToAMDGPU.dir/all] Error 2
make[1]: Leaving directory '/home/dom/prod/llvm-21.1.1/src/llvm-project/build'
make: *** [Makefile:156: all] Error 2

Solution (Workaround) for 21.1.x

cd tools/mlir/include/mlir/Dialect/Vector/Transforms
make VERBOSE=1 MLIRVectorTransformsIncGen 2>&1 | tee log.make.002
cd -
make VERBOSE=1 -j1 2>&1 | tee log.make.003

With this workaround, the build succeeds, and I can run make install afterwards.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions