Skip to content

Commit 71a6d5c

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
2 parents 703ad7d + 152c1cc commit 71a6d5c

File tree

6 files changed

+88
-77
lines changed

6 files changed

+88
-77
lines changed

cmake/cmake/modules/FindAppArmor.cmake

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ find_package(AppArmor)
2727
```
2828
#]=============================================================================]
2929

30-
include(CheckLibraryExists)
30+
include(CheckSymbolExists)
31+
include(CMakePushCheckState)
3132
include(FeatureSummary)
3233
include(FindPackageHandleStandardArgs)
3334

@@ -69,16 +70,17 @@ if(NOT AppArmor_LIBRARY)
6970
endif()
7071

7172
# Sanity check.
72-
if(AppArmor_LIBRARY)
73-
check_library_exists(
74-
"${AppArmor_LIBRARY}"
75-
aa_change_profile
76-
""
77-
_apparmor_sanity_check
78-
)
73+
if(AppArmor_INCLUDE_DIR AND AppArmor_LIBRARY)
74+
cmake_push_check_state(RESET)
75+
set(CMAKE_REQUIRED_INCLUDES ${AppArmor_INCLUDE_DIR})
76+
set(CMAKE_REQUIRED_LIBRARIES ${AppArmor_LIBRARY})
77+
set(CMAKE_REQUIRED_QUIET TRUE)
78+
79+
check_symbol_exists(aa_change_profile sys/apparmor.h _AppArmor_SANITY_CHECK)
80+
cmake_pop_check_state()
7981
endif()
8082

81-
if(NOT _apparmor_sanity_check)
83+
if(NOT _AppArmor_SANITY_CHECK)
8284
string(APPEND _reason "Sanity check failed: aa_change_profile not found. ")
8385
endif()
8486

@@ -97,7 +99,7 @@ find_package_handle_standard_args(
9799
REQUIRED_VARS
98100
AppArmor_LIBRARY
99101
AppArmor_INCLUDE_DIR
100-
_apparmor_sanity_check
102+
_AppArmor_SANITY_CHECK
101103
VERSION_VAR AppArmor_VERSION
102104
HANDLE_VERSION_RANGE
103105
REASON_FAILURE_MESSAGE "${_reason}"

cmake/cmake/modules/FindEditline.cmake

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ find_package(Editline)
2727
```
2828
#]=============================================================================]
2929

30-
include(CheckLibraryExists)
30+
include(CheckSymbolExists)
31+
include(CMakePushCheckState)
3132
include(FeatureSummary)
3233
include(FindPackageHandleStandardArgs)
3334

@@ -69,15 +70,16 @@ if(NOT Editline_LIBRARY)
6970
endif()
7071

7172
# Sanity check.
72-
if(Editline_LIBRARY)
73-
check_library_exists(
74-
"${Editline_LIBRARY}"
75-
readline
76-
""
77-
_editline_sanity_check
78-
)
73+
if(Editline_INCLUDE_DIR AND Editline_LIBRARY)
74+
cmake_push_check_state(RESET)
75+
set(CMAKE_REQUIRED_INCLUDES ${Editline_INCLUDE_DIR})
76+
set(CMAKE_REQUIRED_LIBRARIES ${Editline_LIBRARY})
77+
set(CMAKE_REQUIRED_QUIET TRUE)
78+
79+
check_symbol_exists(readline editline/readline.h _Editline_SANITY_CHECK)
80+
cmake_pop_check_state()
7981

80-
if(NOT _editline_sanity_check)
82+
if(NOT _Editline_SANITY_CHECK)
8183
string(APPEND _reason "Sanity check failed: readline() not found. ")
8284
endif()
8385
endif()
@@ -97,7 +99,7 @@ find_package_handle_standard_args(
9799
REQUIRED_VARS
98100
Editline_LIBRARY
99101
Editline_INCLUDE_DIR
100-
_editline_sanity_check
102+
_Editline_SANITY_CHECK
101103
VERSION_VAR Editline_VERSION
102104
HANDLE_VERSION_RANGE
103105
REASON_FAILURE_MESSAGE "${_reason}"

cmake/cmake/modules/FindNetSnmp.cmake

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ find_package(NetSnmp)
2828
```
2929
#]=============================================================================]
3030

31-
include(CheckLibraryExists)
31+
include(CheckSymbolExists)
32+
include(CMakePushCheckState)
3233
include(FeatureSummary)
3334
include(FindPackageHandleStandardArgs)
3435

@@ -161,10 +162,20 @@ block(PROPAGATE NetSnmp_VERSION)
161162
endblock()
162163

163164
# Sanity check.
164-
if(NetSnmp_LIBRARY)
165-
check_library_exists("${NetSnmp_LIBRARY}" init_snmp "" _netsnmp_sanity_check)
165+
if(NetSnmp_INCLUDE_DIR AND NetSnmp_LIBRARY)
166+
cmake_push_check_state(RESET)
167+
set(CMAKE_REQUIRED_INCLUDES ${NetSnmp_INCLUDE_DIR})
168+
set(CMAKE_REQUIRED_LIBRARIES ${NetSnmp_LIBRARY})
169+
set(CMAKE_REQUIRED_QUIET TRUE)
170+
171+
check_symbol_exists(
172+
init_snmp
173+
"net-snmp/net-snmp-config.h;net-snmp/net-snmp-includes.h"
174+
_NetSnmp_SANITY_CHECK
175+
)
176+
cmake_pop_check_state()
166177

167-
if(NOT _netsnmp_sanity_check)
178+
if(NOT _NetSnmp_SANITY_CHECK)
168179
string(APPEND _reason "Sanity check failed: init_snmp not found. ")
169180
endif()
170181
endif()
@@ -176,7 +187,7 @@ find_package_handle_standard_args(
176187
REQUIRED_VARS
177188
NetSnmp_LIBRARY
178189
NetSnmp_INCLUDE_DIR
179-
_netsnmp_sanity_check
190+
_NetSnmp_SANITY_CHECK
180191
VERSION_VAR NetSnmp_VERSION
181192
HANDLE_VERSION_RANGE
182193
REASON_FAILURE_MESSAGE "${_reason}"

cmake/cmake/modules/FindSELinux.cmake

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ find_package(SELinux)
2727
```
2828
#]=============================================================================]
2929

30-
include(CheckLibraryExists)
30+
include(CheckSymbolExists)
31+
include(CMakePushCheckState)
3132
include(FeatureSummary)
3233
include(FindPackageHandleStandardArgs)
3334

@@ -69,15 +70,20 @@ if(NOT SELinux_LIBRARY)
6970
endif()
7071

7172
# Sanity check.
72-
if(SELinux_LIBRARY)
73-
check_library_exists(
74-
"${SELinux_LIBRARY}"
75-
security_setenforce
76-
""
77-
_selinux_sanity_check
78-
)
79-
80-
if(NOT _selinux_sanity_check)
73+
if(SELinux_INCLUDE_DIR AND SELinux_LIBRARY)
74+
cmake_push_check_state(RESET)
75+
set(CMAKE_REQUIRED_INCLUDES ${SELinux_INCLUDE_DIR})
76+
set(CMAKE_REQUIRED_LIBRARIES ${SELinux_LIBRARY})
77+
set(CMAKE_REQUIRED_QUIET TRUE)
78+
79+
check_symbol_exists(
80+
security_setenforce
81+
selinux/selinux.h
82+
_SELinux_SANITY_CHECK
83+
)
84+
cmake_pop_check_state()
85+
86+
if(NOT _SELinux_SANITY_CHECK)
8187
string(APPEND _reason "Sanity check failed: security_setenforce() not found. ")
8288
endif()
8389
endif()
@@ -94,7 +100,7 @@ find_package_handle_standard_args(
94100
REQUIRED_VARS
95101
SELinux_LIBRARY
96102
SELinux_INCLUDE_DIR
97-
_selinux_sanity_check
103+
_SELinux_SANITY_CHECK
98104
VERSION_VAR SELinux_VERSION
99105
HANDLE_VERSION_RANGE
100106
REASON_FAILURE_MESSAGE "${_reason}"

cmake/cmake/modules/Findlibzip.cmake

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ find_package(libzip)
3434
```
3535
#]=============================================================================]
3636

37-
include(CheckLibraryExists)
37+
include(CheckSymbolExists)
3838
include(CMakePushCheckState)
3939
include(FeatureSummary)
4040
include(FindPackageHandleStandardArgs)
@@ -96,18 +96,15 @@ block(PROPAGATE libzip_VERSION)
9696
set(libzip_VERSION ${PC_libzip_VERSION})
9797
endif()
9898

99-
# Guess older version.
100-
if(NOT libzip_VERSION AND libzip_LIBRARY)
99+
# Determine libzip older version heuristically.
100+
if(NOT libzip_VERSION AND libzip_INCLUDE_DIR AND libzip_LIBRARY)
101101
cmake_push_check_state(RESET)
102+
set(CMAKE_REQUIRED_INCLUDES ${libzip_INCLUDE_DIR})
103+
set(CMAKE_REQUIRED_LIBRARIES ${libzip_LIBRARY})
102104
set(CMAKE_REQUIRED_QUIET TRUE)
103105

104106
# zip_file_set_mtime is available with libzip 1.0.0.
105-
check_library_exists(
106-
"${libzip_LIBRARY}"
107-
zip_file_set_mtime
108-
""
109-
HAVE_SET_MTIME
110-
)
107+
check_symbol_exists(zip_file_set_mtime zip.h HAVE_SET_MTIME)
111108

112109
if(NOT HAVE_SET_MTIME)
113110
set(libzip_VERSION 0.11)
@@ -116,24 +113,14 @@ block(PROPAGATE libzip_VERSION)
116113
endif()
117114

118115
# zip_file_set_encryption is available in libzip 1.2.0.
119-
check_library_exists(
120-
"${libzip_LIBRARY}"
121-
zip_file_set_encryption
122-
""
123-
HAVE_ENCRYPTION
124-
)
116+
check_symbol_exists(zip_file_set_encryption zip.h HAVE_ENCRYPTION)
125117

126118
if(HAVE_ENCRYPTION)
127119
set(libzip_VERSION 1.2.0)
128120
endif()
129121

130122
# zip_libzip_version is available in libzip 1.3.1.
131-
check_library_exists(
132-
"${libzip_LIBRARY}"
133-
zip_libzip_version
134-
""
135-
HAVE_LIBZIP_VERSION
136-
)
123+
check_symbol_exists(zip_libzip_version zip.h HAVE_LIBZIP_VERSION)
137124

138125
if(HAVE_LIBZIP_VERSION)
139126
set(libzip_VERSION 1.3.1)

cmake/ext/iconv/CMakeLists.txt

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ project(
2828
LANGUAGES C
2929
)
3030

31-
include(CheckLibraryExists)
3231
include(CheckSourceRuns)
3332
include(CheckSymbolExists)
3433
include(CMakeDependentOption)
@@ -66,7 +65,7 @@ target_sources(
6665
PRIVATE
6766
iconv.c
6867
iconv.stub.php
69-
php_iconv.def
68+
$<$<AND:$<PLATFORM_ID:Windows>,$<NOT:$<IN_LIST:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY;SHARED_LIBRARY>>>:php_iconv.def>
7069
PUBLIC
7170
FILE_SET HEADERS
7271
FILES
@@ -94,27 +93,31 @@ if(TARGET Iconv::Iconv)
9493
# Sanity and library type checks.
9594
if(Iconv_IS_BUILT_IN)
9695
# When iconv is built into C library, first check if iconv function exists.
97-
check_symbol_exists(iconv iconv.h _HAVE_ICONV)
96+
check_symbol_exists(iconv iconv.h _PHP_HAVE_ICONV)
9897

9998
# And if not, then check for libiconv function.
100-
if(NOT _HAVE_ICONV)
99+
if(NOT _PHP_HAVE_ICONV)
101100
check_symbol_exists(libiconv iconv.h HAVE_LIBICONV)
102101
endif()
103102
else()
104-
check_library_exists(Iconv::Iconv libiconv "" HAVE_LIBICONV)
103+
cmake_push_check_state(RESET)
104+
set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv)
105105

106-
if(HAVE_LIBICONV)
107-
set(ICONV_ALIASED_LIBICONV TRUE)
108-
else()
109-
check_library_exists(Iconv::Iconv iconv "" _HAVE_ICONV)
110-
endif()
106+
check_symbol_exists(libiconv iconv.h HAVE_LIBICONV)
107+
108+
if(HAVE_LIBICONV)
109+
set(ICONV_ALIASED_LIBICONV TRUE)
110+
else()
111+
check_symbol_exists(iconv iconv.h _PHP_HAVE_ICONV)
112+
endif()
113+
cmake_pop_check_state()
111114
endif()
112115

113-
if(NOT _HAVE_ICONV AND NOT HAVE_LIBICONV)
116+
if(NOT _PHP_HAVE_ICONV AND NOT HAVE_LIBICONV)
114117
message(
115118
FATAL_ERROR
116-
"Iconv sanity check failed: neither 'iconv()' nor 'libiconv()' function "
117-
"could be found."
119+
"ext/iconv sanity check failed: neither 'iconv()' nor 'libiconv()' "
120+
"function could be found."
118121
)
119122
endif()
120123

@@ -124,16 +127,16 @@ if(TARGET Iconv::Iconv)
124127
cmake_push_check_state(RESET)
125128
set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv)
126129
set(CMAKE_REQUIRED_QUIET TRUE)
127-
check_symbol_exists(_libiconv_version iconv.h _have_gnu_libiconv)
130+
check_symbol_exists(_libiconv_version iconv.h _PHP_HAVE_GNU_LIBICONV)
128131
cmake_pop_check_state()
129-
if(_have_gnu_libiconv)
132+
if(_PHP_HAVE_GNU_LIBICONV)
130133
message(CHECK_PASS "GNU libiconv")
131134
set(HAVE_LIBICONV TRUE)
132135
set(PHP_ICONV_IMPL "libiconv")
133136
endif()
134137

135138
# Check for glibc implementation.
136-
if(NOT _have_gnu_libiconv)
139+
if(NOT _PHP_HAVE_GNU_LIBICONV)
137140
cmake_push_check_state(RESET)
138141
set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv)
139142
set(CMAKE_REQUIRED_QUIET TRUE)
@@ -146,20 +149,20 @@ if(TARGET Iconv::Iconv)
146149
endif()
147150

148151
# Check for Konstantin Chuguev's iconv implementation.
149-
if(NOT _have_gnu_libiconv AND NOT HAVE_GLIBC_ICONV)
152+
if(NOT _PHP_HAVE_GNU_LIBICONV AND NOT HAVE_GLIBC_ICONV)
150153
cmake_push_check_state(RESET)
151154
set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv)
152155
set(CMAKE_REQUIRED_QUIET TRUE)
153-
check_symbol_exists(iconv_ccs_init iconv.h _have_bsd_iconv)
156+
check_symbol_exists(iconv_ccs_init iconv.h _PHP_HAVE_BSD_ICONV)
154157
cmake_pop_check_state()
155158
endif()
156-
if(_have_bsd_iconv)
159+
if(_PHP_HAVE_BSD_ICONV)
157160
message(CHECK_PASS "BSD iconv")
158161
set(PHP_ICONV_IMPL "BSD iconv")
159162
endif()
160163

161164
# Check for IBM iconv implementation.
162-
if(NOT _have_gnu_libiconv AND NOT HAVE_GLIBC_ICONV AND NOT _have_bsd_iconv)
165+
if(NOT _PHP_HAVE_GNU_LIBICONV AND NOT HAVE_GLIBC_ICONV AND NOT _PHP_HAVE_BSD_ICONV)
163166
cmake_push_check_state(RESET)
164167
set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv)
165168
set(CMAKE_REQUIRED_QUIET TRUE)

0 commit comments

Comments
 (0)