]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
ggml : revert to -lm linking instead of find_library (#22355)
authorAdrien Gallouët <redacted>
Tue, 28 Apr 2026 06:56:02 +0000 (08:56 +0200)
committerGitHub <redacted>
Tue, 28 Apr 2026 06:56:02 +0000 (09:56 +0300)
* 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 <redacted>
* ggml : use MATH_LIBRARY only if defined

Signed-off-by: Adrien Gallouët <redacted>
* ggml : fix initial broken condition

Signed-off-by: Adrien Gallouët <redacted>
* ggml : always respect MATH_LIBRARY when defined

Signed-off-by: Adrien Gallouët <redacted>
---------

Signed-off-by: Adrien Gallouët <redacted>
ggml/src/CMakeLists.txt

index 52754e1b9d6e5d27b0465ba0cb4b503489cfbe4b..3e48860bfc8bb5d0075510d188f7f612cb9a446c 100644 (file)
@@ -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")