diff --git a/modules/find/FindHWLOC.cmake b/modules/find/FindHWLOC.cmake
index 8a0eb7d206ea8ae6cac65cda5820a884c70d8375..4d7c47f7ba6d4ff7507894c5c25c234a8ffbea95 100644
--- a/modules/find/FindHWLOC.cmake
+++ b/modules/find/FindHWLOC.cmake
@@ -321,6 +321,18 @@ endif()
 if (HWLOC_FOUND)
   set(HWLOC_SAVE_CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
   list(APPEND CMAKE_REQUIRED_INCLUDES ${HWLOC_INCLUDE_DIRS})
+  set(CMAKE_REQUIRED_LIBRARIES)
+  if (HWLOC_LIBRARY_DIRS)
+    set (LIBDIR ${HWLOC_LIBRARY_DIRS})
+  elseif(HWLOC_LIBDIR)
+    set (LIBDIR ${HWLOC_LIBDIR})
+  endif()
+  if (LIBDIR)
+    foreach(lib_dir ${LIBDIR})
+      list(APPEND CMAKE_REQUIRED_LIBRARIES "-L${lib_dir}")
+    endforeach()
+  endif()
+  string(REGEX REPLACE "^ -" "-" CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
 
   # test headers to guess the version
   check_struct_has_member( "struct hwloc_obj" parent hwloc.h HAVE_HWLOC_PARENT_MEMBER )