[llvm] [LLVM][Cygwin] Fix llvm-config shared library names (PR #136599)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 22 11:28:37 PDT 2025


================
@@ -64,7 +64,11 @@ set(LLVM_CFLAGS "${LLVM_C_STD_FLAG} ${LLVM_DEFINITIONS}")
 set(LLVM_CXXFLAGS "${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} ${LLVM_CXX_STDLIB_FLAG} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
 set(LLVM_BUILD_SYSTEM cmake)
 set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
-set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}")
+if(CYGWIN)
+  set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}")
+else()
+  set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}")
+endif()
----------------
jeremyd2019 wrote:

With that patch, you get
* bin/
  * cygclang-20.1.dll
  * cygclang-cpp-20.1.dll
  * cygLLVM-20.dll
  * cygRemarks-20.1.dll
* lib/
  * libclang.dll.a
  * libclang-cpp.dll.a
  * libLLVM-20.dll.a
  * libRemarks.dll.a
  * cygLLVM.dll -> cygLLVM-20.dll
  * cygLLVM-20.1.3.dll -> cygLLVM-20.dll
  * cygLLVM-20.dll -> cygLLVM-20.1.dll

The last three are broken symlinks, there is no cygLLVM-20.1.dll, and it would be in bin if there were (where the DLLs should be).  If something was going to be symlinked, probaby the import library would be the better choice, so that passing `-l` of them will work, but all resolve to the same dll.

https://github.com/llvm/llvm-project/pull/136599


More information about the llvm-commits mailing list