Author: brane
Date: Mon Jun 30 22:02:19 2025
New Revision: 1926875
URL: http://svn.apache.org/viewvc?rev=1926875&view=rev
Log:
In the CMake build, do not use deprecated OpenSSL API. This fixes the
"static function not used" warnings in ssl_buckets.
* CMakeLists.txt: Define OPENSSL_NO_DEPRECATED and OPENSSL_NO_STDIO before
running the feature checks.
* build/SerfChecks.cmake: Use the current compile definitions to restrict
the OpenSSL API in the checks. Currently this means no locking callbacks
and no explicit library initialization with OpenSSL 3.
* test/MockHTTPinC/CMakeLists.txt: MockHTTP needs the deprecated APIs.
This is a bit of a hack, but works for now.
Modified:
serf/trunk/CMakeLists.txt
serf/trunk/build/SerfChecks.cmake
serf/trunk/test/MockHTTPinC/CMakeLists.txt
Modified: serf/trunk/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1926875&r1=1926874&r2=1926875&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Mon Jun 30 22:02:19 2025
@@ -241,6 +241,12 @@ find_package(ZLIB REQUIRED)
find_package(APR REQUIRED)
find_package(APRUtil REQUIRED)
+# We do not want or need OpenSSL's compatibility macros.
+add_compile_definitions("OPENSSL_NO_DEPRECATED")
+
+# Hide OpenSSL's _fp() API.
+add_compile_definitions("OPENSSL_NO_STDIO")
+
# Find optional dependencies
find_package(Brotli)
if(NOT SERF_WINDOWS)
@@ -344,9 +350,6 @@ if(ENABLE_SLOW_TESTS)
add_compile_definitions("SERF_TEST_DEFLATE_4GBPLUS_BUCKETS")
endif()
-# Define OPENSSL_NO_STDIO to prevent using _fp() API.
-add_compile_definitions("OPENSSL_NO_STDIO")
-
# Set common compiler flags
if(NOT MSVC)
if(CC_LIKE_GNUC)
Modified: serf/trunk/build/SerfChecks.cmake
URL:
http://svn.apache.org/viewvc/serf/trunk/build/SerfChecks.cmake?rev=1926875&r1=1926874&r2=1926875&view=diff
==============================================================================
--- serf/trunk/build/SerfChecks.cmake (original)
+++ serf/trunk/build/SerfChecks.cmake Mon Jun 30 22:02:19 2025
@@ -21,7 +21,13 @@ include(CheckCSourceCompiles)
include(CheckIncludeFile)
include(CheckTypeSize)
+
+# CMake doesn't use current directory properties in the compile checks.
+get_directory_property(cdef_ COMPILE_DEFINITIONS)
+list(TRANSFORM cdef_ PREPEND "-D")
+
function(_CheckFunction var_ name_ args_ header_ includes_ libraries_)
+ set(CMAKE_REQUIRED_DEFINITIONS ${cdef_})
if(libraries_)
set(CMAKE_REQUIRED_LIBRARIES "${libraries_}")
else()
@@ -61,6 +67,7 @@ function(_CheckFunction var_ name_ args_
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_REQUIRED_LIBRARIES)
+ unset(CMAKE_REQUIRED_DEFINITIONS)
endfunction(_CheckFunction)
macro(CheckFunction name_ args_ symbol_ header_ includes_)
@@ -81,6 +88,7 @@ endmacro(CheckNotFunction)
function(_CheckHeader var_ name_ includes_)
+ set(CMAKE_REQUIRED_DEFINITIONS ${cdef_})
if(includes_)
set(CMAKE_REQUIRED_INCLUDES "${includes_}")
else()
@@ -94,6 +102,7 @@ function(_CheckHeader var_ name_ include
set("${var_}" FALSE PARENT_SCOPE)
endif()
unset(CMAKE_REQUIRED_INCLUDES)
+ unset(CMAKE_REQUIRED_DEFINITIONS)
endfunction(_CheckHeader)
macro(CheckHeader name_ symbol_)
@@ -105,6 +114,7 @@ endmacro(CheckHeader)
function(_CheckType var_ name_ header_ includes_)
+ set(CMAKE_REQUIRED_DEFINITIONS ${cdef_})
if(includes_)
set(CMAKE_REQUIRED_INCLUDES "${includes_}")
else()
@@ -125,6 +135,7 @@ function(_CheckType var_ name_ header_ i
endif()
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_EXTRA_INCLUDE_FILES)
+ unset(CMAKE_REQUIRED_DEFINITIONS)
endfunction(_CheckType)
macro(CheckType name_ header_ symbol_)
Modified: serf/trunk/test/MockHTTPinC/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/serf/trunk/test/MockHTTPinC/CMakeLists.txt?rev=1926875&r1=1926874&r2=1926875&view=diff
==============================================================================
--- serf/trunk/test/MockHTTPinC/CMakeLists.txt (original)
+++ serf/trunk/test/MockHTTPinC/CMakeLists.txt Mon Jun 30 22:02:19 2025
@@ -46,6 +46,11 @@ elseif(MSVC)
endif()
mark_as_advanced(SHOW_MockHTTPinC_WARNINGS)
+# MockHTTP needs deprecated OpenSSL APIs
+get_directory_property(_cdef COMPILE_DEFINITIONS)
+list(REMOVE_ITEM _cdef "OPENSSL_NO_DEPRECATED")
+set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "${_cdef}")
+
add_library(mockhttpinc STATIC ${MockHTTPinC_SOURCES})
target_compile_definitions(mockhttpinc PUBLIC "MOCKHTTP_OPENSSL")
target_include_directories(mockhttpinc SYSTEM BEFORE