]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
build: link to Apple frameworks required by static wolfSSL
authorViktor Szakats <commit@vsz.me>
Wed, 16 Jul 2025 21:44:13 +0000 (23:44 +0200)
committerViktor Szakats <commit@vsz.me>
Thu, 17 Jul 2025 22:54:34 +0000 (00:54 +0200)
To fix linking a static wolfSSL library for Apple targets.
Also stop linking `m` and `dl` on Apple platforms.

Matching logic in wolfSSL build code:
https://github.com/wolfSSL/wolfssl/blob/8bde512676fd425d72682fa020362eb9916476ad/CMakeLists.txt#L2520-L2544

Reported-by: Kai Pastor
Reported-by: Tal Regev
Bug: https://github.com/microsoft/vcpkg/pull/46444#pullrequestreview-3026575393
Ref: https://github.com/microsoft/vcpkg/pull/46444/commits/3a845c4b15066e8167bb4708007180fb6bedf40d

Closes #17945

CMake/FindWolfSSL.cmake
m4/curl-wolfssl.m4

index e33fef8711990548418eee0b6d911e8dface4aa2..87b640a1f23d72ae2a0c81c4b6618da809b69b1b 100644 (file)
@@ -91,10 +91,26 @@ else()
   mark_as_advanced(WOLFSSL_INCLUDE_DIR WOLFSSL_LIBRARY)
 endif()
 
-if(WOLFSSL_FOUND AND NOT WIN32)
-  find_library(MATH_LIBRARY NAMES "m")
-  if(MATH_LIBRARY)
-    list(APPEND WOLFSSL_LIBRARIES ${MATH_LIBRARY})  # for log and pow
+if(WOLFSSL_FOUND)
+  if(APPLE)
+    find_library(SECURITY_FRAMEWORK NAMES "Security")
+    mark_as_advanced(SECURITY_FRAMEWORK)
+    if(NOT SECURITY_FRAMEWORK)
+      message(FATAL_ERROR "Security framework not found")
+    endif()
+    list(APPEND WOLFSSL_LIBRARIES "-framework Security")
+
+    find_library(COREFOUNDATION_FRAMEWORK NAMES "CoreFoundation")
+    mark_as_advanced(COREFOUNDATION_FRAMEWORK)
+    if(NOT COREFOUNDATION_FRAMEWORK)
+      message(FATAL_ERROR "CoreFoundation framework not found")
+    endif()
+    list(APPEND WOLFSSL_LIBRARIES "-framework CoreFoundation")
+  elseif(NOT WIN32)
+    find_library(MATH_LIBRARY NAMES "m")
+    if(MATH_LIBRARY)
+      list(APPEND WOLFSSL_LIBRARIES ${MATH_LIBRARY})  # for log and pow
+    endif()
+    mark_as_advanced(MATH_LIBRARY)
   endif()
-  mark_as_advanced(MATH_LIBRARY)
 endif()
index ba4b03aa92d21658094b4d1b1bd0202d2add0268..e2c58a94af5d6f92eb6a47b5cbeb5ab6d123f2e5 100644 (file)
@@ -76,6 +76,12 @@ if test "x$OPT_WOLFSSL" != xno; then
       fi
     fi
 
+    if test "$curl_cv_apple" = 'yes'; then
+      addlib="$addlib -framework Security -framework CoreFoundation"
+    else
+      addlib="$addlib -lm"
+    fi
+
     if test "x$USE_WOLFSSL" != "xyes"; then
 
       LDFLAGS="$LDFLAGS $addld"
@@ -127,7 +133,7 @@ if test "x$OPT_WOLFSSL" != xno; then
       dnl wolfssl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
       CURL_SIZEOF(long long)
 
-      LIBS="$addlib -lm $LIBS"
+      LIBS="$addlib $LIBS"
 
       dnl is this wolfSSL providing the original QUIC API?
       AC_CHECK_FUNCS([wolfSSL_set_quic_use_legacy_codepoint], [QUIC_ENABLED=yes])