Skip to content

Commit d530d6e

Browse files
authored
ggml : revert to -lm linking instead of find_library (#22355)
* ggml : revert to -lm linking instead of find_library `find_library(MATH_LIBRARY m)` was introduced recently, but it breaks CUDA compilation with GGML_STATIC. I could not find any valid use case where we would prefer `find_library` over the standard `-lm` approach. This commit is also meant to start a discussion if there is a valid reason to keep `find_library(MATH_LIBRARY m)`, we should clarify what problem it was solving and find an alternative fix that does not break CUDA with GGML_STATIC. Signed-off-by: Adrien Gallouët <angt@huggingface.co> * ggml : use MATH_LIBRARY only if defined Signed-off-by: Adrien Gallouët <angt@huggingface.co> * ggml : fix initial broken condition Signed-off-by: Adrien Gallouët <angt@huggingface.co> * ggml : always respect MATH_LIBRARY when defined Signed-off-by: Adrien Gallouët <angt@huggingface.co> --------- Signed-off-by: Adrien Gallouët <angt@huggingface.co>
1 parent c3e08f4 commit d530d6e

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

ggml/src/CMakeLists.txt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -470,11 +470,10 @@ endforeach()
470470

471471
target_link_libraries(ggml-base PRIVATE Threads::Threads)
472472

473-
find_library(MATH_LIBRARY m)
474-
if (MATH_LIBRARY)
475-
if (NOT WIN32 OR NOT DEFINED ENV{ONEAPI_ROOT})
476-
target_link_libraries(ggml-base PRIVATE ${MATH_LIBRARY})
477-
endif()
473+
if (DEFINED MATH_LIBRARY)
474+
target_link_libraries(ggml-base PRIVATE ${MATH_LIBRARY})
475+
elseif (NOT WIN32 AND NOT DEFINED ENV{ONEAPI_ROOT})
476+
target_link_libraries(ggml-base PRIVATE m)
478477
endif()
479478

480479
if (CMAKE_SYSTEM_NAME MATCHES "Android")

0 commit comments

Comments
 (0)