Skip to content

Failure in Building LLVM-16 on Windows. #1046

@miladHakimi

Description

@miladHakimi

Hi,
First of all, thank you for all the great products and documentation!

I was trying to install Remill on Windows 10 and I had to manually build the dependencies because Windows' binaries are no longer shipped with the new releases. Since I couldn't use the build_dependencies.sh script, I cloned vcpkg in the cxx-common root directory and ran the commands in the build_dependencies.sh manually:

.\vcpkg\bootstrap-vcpkg.bat 
.\vcpkg\vcpkg.exe fetch nuget
.\vcpkg\vcpkg.exe install --triplet x64-windows-static-md-rel  "llvm-16" "@overlays.txt" "@dependencies.txt"

I chose x64-windows-static-md-rel because it is used in the windows' CI.
The used vcpkg repository in vcpkg_info.txt breaks a lot when installing the dependencies. I finally fixed the issue by manually setting the CMAKE_PREFIX_PATH in vcpkg.cmake. With that, all the dependencies in the dependencies.txt were successfully installed. However, I have been struggling with installing llvm-16. The first problem was with the patches. The installation failed with an error about the patch 0021-fix-find_dependency.patch being corrupted. I commented the patch to let the installation continue but it failed again while building the project during linking. The problem was that it could not find the zstd library correctly. The same issue with zstd happens with llvm-17. In the case of llvm17, I didn't comment the patch because it didn't give me an error.

I switched to the main vcpkg repo. I didn't get the initial errors regarding the CMAKE_PREFIX_PATH but I still can't build llvm-16 and 17. Here is the log I received with llvm-17:

CMake Warning at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:281 (message):
  LLVM_CONFIG_PATH is deprecated, please use LLVM_CMAKE_DIR instead
Call Stack (most recent call first):
  CMakeLists.txt:29 (load_llvm_config)


CMake Warning at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:326 (message):
  LLVMTestingSupport not found in LLVM_AVAILABLE_LIBS
Call Stack (most recent call first):
  CMakeLists.txt:29 (load_llvm_config)


CMake Deprecation Warning at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/compiler-rt/cmake/Modules/AddCompilerRT.cmake:8 (cmake_policy):
  The OLD behavior for policy CMP0114 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:40 (include)


CMake Deprecation Warning at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/cmake/Modules/CMakePolicy.cmake:6 (cmake_policy):
  The OLD behavior for policy CMP0114 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:6 (include)


CMake Error at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/llvm/cmake/modules/Findzstd.cmake:39 (string):
  string sub-command REGEX, mode REPLACE: regex "$" matched an empty string.
Call Stack (most recent call first):
  D:/cxx-common/vcpkg/downloads/tools/cmake-3.27.1-windows/cmake-3.27.1-windows-i386/share/cmake-3.27/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)
  D:/cxx-common/vcpkg/buildtrees/llvm-17/x64-windows-static-md-rel-rel/lib/cmake/llvm/LLVMConfig.cmake:212 (find_dependency)
  CMakeLists.txt:48 (find_package)


CMake Deprecation Warning at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/cmake/Modules/CMakePolicy.cmake:6 (cmake_policy):
  The OLD behavior for policy CMP0114 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/compiler-rt/CMakeLists.txt:9 (include)


CMake Deprecation Warning at D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/compiler-rt/cmake/Modules/AddCompilerRT.cmake:8 (cmake_policy):
  The OLD behavior for policy CMP0114 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  D:/cxx-common/vcpkg/buildtrees/llvm-17/src/org-17.0.1-05e9215f6d/compiler-rt/lib/CMakeLists.txt:4 (include)

Can you please help me with this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions