Skip to content

Non-portable packaging of LLVMDebugInfoPDB's dependency of diaguids.lib on Windows #175

Closed

Description

@js8544

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

Hi, I am a developer for Apache Arrow. Our windows CI has been failing recently. Error message is:

(arrow) C:\projects\arrow\cpp\build>cmake --build . --target install --config Release   || exit /B 
ninja: error: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/DIA SDK/lib/amd64/diaguids.lib', needed by 'release/gandiva.dll', missing and no known rule to make it

Our ci environment has VS2019 community version but ninja is looking for the enterprise version.

After some digging I found out there's a portability issue with Conda's packaging of LLVM on windows.

LLVM's target LLVMDebugInfoPDB has a dependency on this file "${LIBPDB_LINK_FOLDERS}diaguids.lib" (https://github.com/llvm/llvm-project/blob/main/llvm/lib/DebugInfo/PDB/CMakeLists.txt#L17).

I downloaded Conda's llvmdev package win-64/llvmdev-15.0.1-h0f93eaf_0.tar.bz2 for windows from: https://anaconda.org/conda-forge/llvmdev/files

In the file Library/lib/cmake/LLVMExports.cmake line 410, it writes:

set_target_properties(LLVMDebugInfoPDB PROPERTIES  INTERFACE_LINK_LIBRARIES "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/DIA SDK/lib/amd64/diaguids.lib;LLVMBinaryFormat;LLVMObject;LLVMSupport;LLVMDebugInfoCodeView;LLVMDebugInfoMSF") 

The full path is specified instead of using CMake vars. Apparently it is packaged on a platform with VS2019 Enterprise installed.

Installed packages

llvmdev 15

Environment info

windows VS2019 community version

Activity

  1. changed the title [-]Non-portable packaging of llvmdev target LLVMDebugInfoPDB dependency[/-] [+]Non-portable packaging of LLVMDebugInfoPDB dependency on diaguids.lib on Windows[/+] on Sep 24, 2022
  2. changed the title [-]Non-portable packaging of LLVMDebugInfoPDB dependency on diaguids.lib on Windows[/-] [+]Non-portable packaging of LLVMDebugInfoPDB's dependency of diaguids.lib on Windows[/+] on Sep 24, 2022
  3. h-vetinari commented on May 17, 2023

    @h-vetinari
    Member

    This should be fixed now on LLVM 14, 15 & 161. The builds should be available in a couple hours.

    Footnotes

    1. 16 will take a bit longer to become fully available because we're still rolling out the remaining components of 16.0.4 before updating the activation ↩

  4. added a commit that references this issue on Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions