[llvm] ffe32b5 - [CMake] Add LIBXML2_DEFINITIONS when testing for symbol existance

Markus Böck via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 24 00:55:28 PDT 2021


Author: Markus Böck
Date: 2021-07-24T09:55:14+02:00
New Revision: ffe32b5c71bfea0009e6d8d1788971d237709672

URL: https://github.com/llvm/llvm-project/commit/ffe32b5c71bfea0009e6d8d1788971d237709672
DIFF: https://github.com/llvm/llvm-project/commit/ffe32b5c71bfea0009e6d8d1788971d237709672.diff

LOG: [CMake] Add LIBXML2_DEFINITIONS when testing for symbol existance

Currently when linking LLVM against Libxml2, a simple check is performed to check whether it can be linked successfully. This check currently adds the include directories and the libraries for libxml2, but not definitions found by the config.

This causes issues on Windows when trying to link against a static libxml2. Libxml2 requires LIBXML_STATIC to be defined in the preprocessor to be able to link statically. This definition is put into LIBXML2_DEFINITIONS in the cmake config, but not properly forwarded to check_symbol_exists leading to it failing as it could not find xmlReadMemory in a DLL.

This patch simply appends the content of LIBXML2_DEFINITIONS to the symbol check definitions, fixing the issue.

Differential Revision: https://reviews.llvm.org/D106740

Added: 
    

Modified: 
    llvm/cmake/config-ix.cmake

Removed: 
    


################################################################################
diff  --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index d4cbf37d19a2..dd0aaadb47c7 100644
--- a/llvm/cmake/config-ix.cmake
+++ b/llvm/cmake/config-ix.cmake
@@ -149,6 +149,7 @@ if(LLVM_ENABLE_LIBXML2)
     cmake_push_check_state()
     list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBXML2_INCLUDE_DIRS})
     list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBXML2_LIBRARIES})
+    list(APPEND CMAKE_REQUIRED_DEFINITIONS ${LIBXML2_DEFINITIONS})
     check_symbol_exists(xmlReadMemory libxml/xmlreader.h HAVE_LIBXML2)
     cmake_pop_check_state()
     if(LLVM_ENABLE_LIBXML2 STREQUAL FORCE_ON AND NOT HAVE_LIBXML2)


        


More information about the llvm-commits mailing list