From be91eab68d8578c05133ab9e496c9d0b0ff0939b Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 14:44:37 -0400 Subject: [PATCH 1/8] Add libxml2 to LLVM dependencies installation --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d1934eade49a..0b59f8996cbe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -110,7 +110,7 @@ jobs: - name: Install LLVM dependencies shell: cmd /C call {0} run: | - conda install -c conda-forge llvmdev cmake ninja zlib + conda install -c conda-forge llvmdev cmake ninja zlib libxml2 - name: Install TVM shell: cmd /C call {0} run: | From 8f688fb25d41b377176ce5a3ca4e73d486eccf06 Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 14:48:03 -0400 Subject: [PATCH 2/8] Add support for finding libxml2 on Windows --- cmake/utils/FindLLVM.cmake | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/cmake/utils/FindLLVM.cmake b/cmake/utils/FindLLVM.cmake index 2a243b06c85d..5ca0e609b649 100644 --- a/cmake/utils/FindLLVM.cmake +++ b/cmake/utils/FindLLVM.cmake @@ -211,7 +211,23 @@ macro(find_llvm use_llvm) endif() elseif("${__flag}" STREQUAL "-lxml2") message(STATUS "LLVM links against xml2") - list(APPEND LLVM_LIBS "-lxml2") + if(WIN32) + find_library(XML2_LIBRARY + NAMES xml2 libxml2 + PATHS ${CMAKE_PREFIX_PATH}/Library/lib + ${CMAKE_PREFIX_PATH}/lib + NO_DEFAULT_PATH + ) + if(XML2_LIBRARY) + list(APPEND LLVM_LIBS "${XML2_LIBRARY}") + message(STATUS "Found libxml2: ${XML2_LIBRARY}") + else() + message(WARNING "libxml2 not found, LLVM linking may fail") + list(APPEND LLVM_LIBS "-lxml2") + endif() + else() + list(APPEND LLVM_LIBS "-lxml2") + endif() elseif("${__flag}" STREQUAL "zstd.dll.lib") message(STATUS "LLVM linker flag under LLVM libdir: ${__llvm_libdir}/zstd.lib") list(APPEND LLVM_LIBS "${__llvm_libdir}/zstd.lib") From 63740a46034c75f2d68603bfc1d183e9a2175694 Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 14:49:33 -0400 Subject: [PATCH 3/8] Add libxml2 to build environment --- conda/build-environment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/conda/build-environment.yaml b/conda/build-environment.yaml index f421404b347b..bba89ac78817 100644 --- a/conda/build-environment.yaml +++ b/conda/build-environment.yaml @@ -37,3 +37,4 @@ dependencies: - numpy - scipy - cython + - libxml2 From 959759ec052bdae853b156b557589309281fa67c Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 16:49:52 -0400 Subject: [PATCH 4/8] 1 --- .github/workflows/main.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0b59f8996cbe..5c4159e9c922 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -110,7 +110,11 @@ jobs: - name: Install LLVM dependencies shell: cmd /C call {0} run: | - conda install -c conda-forge llvmdev cmake ninja zlib libxml2 + conda install -c conda-forge llvmdev cmake ninja zlib libxml2-devel + - name: Create xml2.lib symlink for LLVM + shell: cmd /C call {0} + run: | + copy "%CONDA_PREFIX%\Library\lib\libxml2.lib" "%CONDA_PREFIX%\Library\lib\xml2.lib" - name: Install TVM shell: cmd /C call {0} run: | From c90d5c19657f687517d6a34c1ab927e33d1e7567 Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 16:50:29 -0400 Subject: [PATCH 5/8] Change libxml2 to libxml2-devel in environment file --- conda/build-environment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda/build-environment.yaml b/conda/build-environment.yaml index bba89ac78817..28650499ea7c 100644 --- a/conda/build-environment.yaml +++ b/conda/build-environment.yaml @@ -37,4 +37,4 @@ dependencies: - numpy - scipy - cython - - libxml2 + - libxml2-devel From e11b19eb3ea3135fd8fe9104e0788944257647b8 Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 16:52:02 -0400 Subject: [PATCH 6/8] Simplify libxml2 handling in FindLLVM.cmake --- cmake/utils/FindLLVM.cmake | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/cmake/utils/FindLLVM.cmake b/cmake/utils/FindLLVM.cmake index 5ca0e609b649..2a243b06c85d 100644 --- a/cmake/utils/FindLLVM.cmake +++ b/cmake/utils/FindLLVM.cmake @@ -211,23 +211,7 @@ macro(find_llvm use_llvm) endif() elseif("${__flag}" STREQUAL "-lxml2") message(STATUS "LLVM links against xml2") - if(WIN32) - find_library(XML2_LIBRARY - NAMES xml2 libxml2 - PATHS ${CMAKE_PREFIX_PATH}/Library/lib - ${CMAKE_PREFIX_PATH}/lib - NO_DEFAULT_PATH - ) - if(XML2_LIBRARY) - list(APPEND LLVM_LIBS "${XML2_LIBRARY}") - message(STATUS "Found libxml2: ${XML2_LIBRARY}") - else() - message(WARNING "libxml2 not found, LLVM linking may fail") - list(APPEND LLVM_LIBS "-lxml2") - endif() - else() - list(APPEND LLVM_LIBS "-lxml2") - endif() + list(APPEND LLVM_LIBS "-lxml2") elseif("${__flag}" STREQUAL "zstd.dll.lib") message(STATUS "LLVM linker flag under LLVM libdir: ${__llvm_libdir}/zstd.lib") list(APPEND LLVM_LIBS "${__llvm_libdir}/zstd.lib") From 8621c4d476019312614bc5fa7086d4b265ee53ef Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 17:38:39 -0400 Subject: [PATCH 7/8] fix2 --- cmake/utils/FindLLVM.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/utils/FindLLVM.cmake b/cmake/utils/FindLLVM.cmake index 2a243b06c85d..09f4dcca7fd8 100644 --- a/cmake/utils/FindLLVM.cmake +++ b/cmake/utils/FindLLVM.cmake @@ -219,6 +219,10 @@ macro(find_llvm use_llvm) # If the library file ends in .lib try to also search the llvm_libdir message(STATUS "LLVM linker flag under LLVM libdir: ${__llvm_libdir}/${__flag}") list(APPEND LLVM_LIBS "${__llvm_libdir}/${__flag}") + elseif((__flag MATCHES ".lib$") AND (EXISTS "${__llvm_libdir}/lib${__flag}")) + # If the library file ends in .lib try to also search the llvm_libdir with lib prefix + message(STATUS "LLVM linker flag under LLVM libdir: ${__llvm_libdir}/lib${__flag}") + list(APPEND LLVM_LIBS "${__llvm_libdir}/lib${__flag}") else() message(STATUS "LLVM linker flag: ${__flag}") list(APPEND LLVM_LIBS "${__flag}") From fcab586c6cea2cbf1b2297e4520e24aa7e96487a Mon Sep 17 00:00:00 2001 From: Shushi Hong <820958424@qq.com> Date: Tue, 9 Sep 2025 17:39:42 -0400 Subject: [PATCH 8/8] fix3 --- .github/workflows/main.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5c4159e9c922..7b55dade1429 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -111,10 +111,6 @@ jobs: shell: cmd /C call {0} run: | conda install -c conda-forge llvmdev cmake ninja zlib libxml2-devel - - name: Create xml2.lib symlink for LLVM - shell: cmd /C call {0} - run: | - copy "%CONDA_PREFIX%\Library\lib\libxml2.lib" "%CONDA_PREFIX%\Library\lib\xml2.lib" - name: Install TVM shell: cmd /C call {0} run: |