cmake, configure: also link with CoreServices

When linking with CoreFoundation, also link with CoreServices which is
apparently required to avoid an NSInvalidArgumentException in software
linking with libcurl on macOS Sonoma 14 and later.

Fixes #11893
Closes #11894
This commit is contained in:
Ryan Schmidt 2023-09-19 20:36:39 -05:00 committed by Daniel Stenberg
parent c6dc25f111
commit 6ab7e1990b
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 12 additions and 7 deletions

View File

@ -302,7 +302,7 @@ if(ENABLE_IPV6 AND NOT WIN32)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT ENABLE_ARES)
set(use_core_foundation ON)
set(use_core_foundation_and_core_services ON)
find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration")
if(NOT SYSTEMCONFIGURATION_FRAMEWORK)
@ -445,7 +445,7 @@ if(CURL_WINDOWS_SSPI)
endif()
if(CURL_USE_SECTRANSP)
set(use_core_foundation ON)
set(use_core_foundation_and_core_services ON)
find_library(SECURITY_FRAMEWORK "Security")
if(NOT SECURITY_FRAMEWORK)
@ -457,13 +457,18 @@ if(CURL_USE_SECTRANSP)
list(APPEND CURL_LIBS "-framework Security")
endif()
if(use_core_foundation)
if(use_core_foundation_and_core_services)
find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation")
find_library(CORESERVICES_FRAMEWORK "CoreServices")
if(NOT COREFOUNDATION_FRAMEWORK)
message(FATAL_ERROR "CoreFoundation framework not found")
endif()
if(NOT CORESERVICES_FRAMEWORK)
message(FATAL_ERROR "CoreServices framework not found")
endif()
list(APPEND CURL_LIBS "-framework CoreFoundation")
list(APPEND CURL_LIBS "-framework CoreFoundation -framework CoreServices")
endif()
if(CURL_USE_OPENSSL)

View File

@ -33,7 +33,7 @@ if test "x$OPT_SECURETRANSPORT" != xno; then
ssl_msg="Secure Transport"
test secure-transport != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
SECURETRANSPORT_ENABLED=1
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security"
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Security"
else
AC_MSG_RESULT(no)
fi

View File

@ -23,7 +23,7 @@
#***************************************************************************
AC_DEFUN([CURL_DARWIN_SYSTEMCONFIGURATION], [
AC_MSG_CHECKING([whether to link macOS CoreFoundation and SystemConfiguration framework])
AC_MSG_CHECKING([whether to link macOS CoreFoundation, CoreServices, and SystemConfiguration frameworks])
case $host_os in
darwin*)
AC_COMPILE_IFELSE([
@ -43,7 +43,7 @@ case $host_os in
])
if test "x$build_for_macos" != xno; then
AC_MSG_RESULT(yes)
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration"
LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework SystemConfiguration"
else
AC_MSG_RESULT(no)
fi