find_library(RESOLV_LIRBRARY resolv)
if (RESOLV_LIRBRARY)
- set(HAVE_LIBRESOLV TRUE)
+ check_function_exists(res_nquery HAVE_LIBC_RES_INIT)
+ check_function_exists(__res_query HAVE_LIBC__RES_INIT)
+
+ if (NOT HAVE_LIBC_RES_INIT AND NOT HAVE_LIBC__RES_INIT)
+ set(CMAKE_REQUIRED_LIBRARIES ${RESOLV_LIRBRARY})
+ check_function_exists(res_query HAVE_RES_QUERY)
+ check_function_exists(__res_query HAVE___RES_QUERY)
+ unset(CMAKE_REQUIRED_LIBRARIES)
+
+ if (HAVE_RES_QUERY OR HAVE___RES_QUERY)
+ set(HAVE_LIBRESOLV 1)
+
+ endif()
+ endif()
# If we have a libresolv, we need to check functions linking the library
list(APPEND _REQUIRED_LIBRARIES ${RESOLV_LIRBRARY})
-else()
- message(STATUS "libresolv not found on ${CMAKE_SYSTEM_NAME}: Only dns faking will be available")
endif()
set(CMAKE_REQUIRED_LIBRARIES ${RESOLV_LIRBRARY})
# ENDIAN
test_big_endian(WORDS_BIGENDIAN)
+if (NOT HAVE_LIBRESOLV)
+ message(STATUS "Limited features: Only dns faking will be available")
+endif()
+
set(RWRAP_REQUIRED_LIBRARIES ${_REQUIRED_LIBRARIES} CACHE INTERNAL "resolv_wrapper required system libraries")