From: Adrien Gallouët Date: Tue, 28 Apr 2026 06:56:02 +0000 (+0200) Subject: ggml : revert to -lm linking instead of find_library (#22355) X-Git-Tag: upstream/0.0.10438~1481 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=d530d6e7a2c267931ec676c726a4a2b209615944;p=pkg%2Fggml%2Fsources%2Fllama.cpp 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 * ggml : use MATH_LIBRARY only if defined Signed-off-by: Adrien Gallouët * ggml : fix initial broken condition Signed-off-by: Adrien Gallouët * ggml : always respect MATH_LIBRARY when defined Signed-off-by: Adrien Gallouët --------- Signed-off-by: Adrien Gallouët --- diff --git a/ggml/src/CMakeLists.txt b/ggml/src/CMakeLists.txt index 52754e1b9..3e48860bf 100644 --- a/ggml/src/CMakeLists.txt +++ b/ggml/src/CMakeLists.txt @@ -470,11 +470,10 @@ endforeach() target_link_libraries(ggml-base PRIVATE Threads::Threads) -find_library(MATH_LIBRARY m) -if (MATH_LIBRARY) - if (NOT WIN32 OR NOT DEFINED ENV{ONEAPI_ROOT}) - target_link_libraries(ggml-base PRIVATE ${MATH_LIBRARY}) - endif() +if (DEFINED MATH_LIBRARY) + target_link_libraries(ggml-base PRIVATE ${MATH_LIBRARY}) +elseif (NOT WIN32 AND NOT DEFINED ENV{ONEAPI_ROOT}) + target_link_libraries(ggml-base PRIVATE m) endif() if (CMAKE_SYSTEM_NAME MATCHES "Android")