Skip to content

Commit 9dabb89

Browse files
committed
Bug#18404381: REMOVE UNNEEDE CMAKE CHECKS AND #IFDEFS IN 5.7.5
Patch mysql#3: This patch does the following: - Remove the HAVE_WVLA check since all used versions of GCC/Clang now supports -Wvla - Remove HAVE_GETCURRENTPROCESSORNUMBER as it is true on all supported Windows versions - Remove workaround for old Intellisense bug - Unconditionally define S_IROTH/S_IFIFO on Windows rather than doing a check with hardcoded result - Use SIGTERM/SIGINT explicitly on Windows rather than define SIGQUIT/SIGPIPE to them - Use isnan() directly on Windows, remove unneeded check - Typedef ssize_t on Windows rather than doing check with hardcoded result - Remove HAVE_SCHED_H and HAVE_PTHREAD_YIELD_ZERO_ARG checks, results not needed anymore - Remove HAVE_MMAP, always true - Remove HAVE_SCHED_YIELD, always true on non-Windows - No point in testing size of char, defined to 1 in standard - Remove inline check, explicitly define for Visual Studio in C mode instead - Combine separate C/C++ checks for builtin_unreachable as we now always use the same compiler for C/C++ - Remove HAVE_ACCESS, was never defined. Update code to work like intended. - Set SOCKET_SIZE_TYPE, size_socket and sigset_t and mode_t using typedef rather than CMake #define - Remove unused FN_NO_CASE_SENCE, ulong_to_double() and table_case_convert(). - Remove use of non-standard pthread_yield(), use POSIX standard sched_yield() instead - Remove unneeded thread pool config.h.cmake, add missing WindowsCache.cmake entry - Rewrite InnoDB CMake futex check to avoid having to do unset/remove_definitions
1 parent 1e66da1 commit 9dabb89

34 files changed

+112
-359
lines changed

cmake/maintainer.cmake

+1-5
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@
1414
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1515

1616
# Common warning flags for GCC, G++, Clang and Clang++
17-
SET(MY_WARNING_FLAGS "-Wall -Wextra -Wformat-security")
18-
MY_CHECK_C_COMPILER_FLAG("-Wvla" HAVE_WVLA) # Requires GCC 4.3+ or Clang
19-
IF(HAVE_WVLA)
20-
SET(MY_WARNING_FLAGS "${MY_WARNING_FLAGS} -Wvla")
21-
ENDIF()
17+
SET(MY_WARNING_FLAGS "-Wall -Wextra -Wformat-security -Wvla")
2218

2319
# Common warning flags for GCC and Clang
2420
SET(MY_C_WARNING_FLAGS

cmake/os/Windows.cmake

-48
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ ADD_DEFINITIONS("-DWIN32_LEAN_AND_MEAN -DNOGDI")
5959
# We want to use std::min/std::max, not the windows.h macros
6060
ADD_DEFINITIONS("-DNOMINMAX")
6161

62-
# Should be available on Windows Server 2003 and above.
63-
ADD_DEFINITIONS(-DHAVE_GETCURRENTPROCESSORNUMBER=1)
64-
6562
IF(MSVC)
6663
# Enable debug info also in Release build,
6764
# and create PDB to be able to analyze crashes.
@@ -116,14 +113,6 @@ IF(MSVC)
116113
#TODO: update the code and remove the disabled warnings
117114
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805 /wd4996")
118115
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805 /wd4996 /we4099")
119-
120-
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
121-
# _WIN64 is defined by the compiler itself.
122-
# Yet, we define it here again to work around a bug with Intellisense
123-
# described here: http://tinyurl.com/2cb428.
124-
# Syntax highlighting is important for proper debugger functionality.
125-
ADD_DEFINITIONS("-D_WIN64")
126-
ENDIF()
127116
ENDIF()
128117

129118
# Always link with socket library
@@ -142,41 +131,4 @@ IF(NOT HAVE_IPV6_V6ONLY)
142131
SET(IPV6_V6ONLY 27)
143132
ENDIF()
144133

145-
# Some standard functions exist there under different
146-
# names (e.g popen is _popen or strok_r is _strtok_s)
147-
# If a replacement function exists, HAVE_FUNCTION is
148-
# defined to 1. CMake variable <function_name> will also
149-
# be defined to the replacement name.
150-
# So for example, CHECK_FUNCTION_REPLACEMENT(popen _popen)
151-
# will define HAVE_POPEN to 1 and set variable named popen
152-
# to _popen. If the header template, one needs to have
153-
# cmakedefine popen @popen@ which will expand to
154-
# define popen _popen after CONFIGURE_FILE
155-
156-
MACRO(CHECK_SYMBOL_REPLACEMENT symbol replacement header)
157-
STRING(TOUPPER ${symbol} symbol_upper)
158-
CHECK_SYMBOL_EXISTS(${symbol} ${header} HAVE_${symbol_upper})
159-
IF(NOT HAVE_${symbol_upper})
160-
CHECK_SYMBOL_EXISTS(${replacement} ${header} HAVE_${replacement})
161-
IF(HAVE_${replacement})
162-
SET(HAVE_${symbol_upper} 1)
163-
SET(${symbol} ${replacement})
164-
ENDIF()
165-
ENDIF()
166-
ENDMACRO()
167-
168-
CHECK_SYMBOL_REPLACEMENT(S_IROTH _S_IREAD sys/stat.h)
169-
CHECK_SYMBOL_REPLACEMENT(S_IFIFO _S_IFIFO sys/stat.h)
170-
CHECK_SYMBOL_REPLACEMENT(SIGQUIT SIGTERM signal.h)
171-
CHECK_SYMBOL_REPLACEMENT(SIGPIPE SIGINT signal.h)
172-
CHECK_SYMBOL_EXISTS(isnan math.h HAVE_ISNAN)
173-
IF(NOT HAVE_ISNAN)
174-
CHECK_SYMBOL_REPLACEMENT(isnan _isnan float.h)
175-
ENDIF()
176-
177-
CHECK_TYPE_SIZE(ssize_t SIZE_OF_SSIZE_T)
178-
IF(NOT HAVE_SIZE_OF_SSIZE_T)
179-
SET(ssize_t SSIZE_T)
180-
ENDIF()
181-
182134
SET(FN_NO_CASE_SENSE 1)

cmake/os/WindowsCache.cmake

+7-33
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ SET(HAVE_NETINET_IN_H CACHE INTERNAL "")
5050
SET(HAVE_PATHS_H CACHE INTERNAL "")
5151
SET(HAVE_POLL_H CACHE INTERNAL "")
5252
SET(HAVE_PWD_H CACHE INTERNAL "")
53-
SET(HAVE_SCHED_H CACHE INTERNAL "")
5453
SET(HAVE_STRINGS_H CACHE INTERNAL "")
5554
SET(HAVE_SYNCH_H CACHE INTERNAL "")
5655
SET(HAVE_SYS_CDEFS_H CACHE INTERNAL "")
@@ -123,7 +122,6 @@ SET(HAVE_MALLOC_INFO CACHE INTERNAL "")
123122
SET(HAVE_MEMRCHR CACHE INTERNAL "")
124123
SET(HAVE_MLOCK CACHE INTERNAL "")
125124
SET(HAVE_MLOCKALL CACHE INTERNAL "")
126-
SET(HAVE_MMAP CACHE INTERNAL "")
127125
SET(HAVE_MMAP64 CACHE INTERNAL "")
128126
SET(HAVE_POLL CACHE INTERNAL "")
129127
SET(HAVE_POSIX_FALLOCATE CACHE INTERNAL "")
@@ -134,7 +132,6 @@ SET(HAVE_PTHREAD_SIGMASK CACHE INTERNAL "")
134132
SET(HAVE_READDIR_R CACHE INTERNAL "")
135133
SET(HAVE_READLINK CACHE INTERNAL "")
136134
SET(HAVE_REALPATH CACHE INTERNAL "")
137-
SET(HAVE_SCHED_YIELD CACHE INTERNAL "")
138135
SET(HAVE_SETFD CACHE INTERNAL "")
139136
SET(HAVE_SIGACTION CACHE INTERNAL "")
140137
SET(HAVE_SLEEP CACHE INTERNAL "")
@@ -192,15 +189,11 @@ SET(HAVE_WORDS_BIGENDIAN TRUE CACHE INTERNAL "") # Only needed by CMake
192189
SET(WORDS_BIGENDIAN CACHE INTERNAL "")
193190

194191
# Type sizes
195-
SET(HAVE_SIZEOF_SIGSET_T FALSE CACHE INTERNAL "")
196-
SET(HAVE_SIZEOF_MODE_T FALSE CACHE INTERNAL "")
197-
# Check needed VOIDP
192+
# Check needed SIZEOF_VOIDP
198193
SET(HAVE_SIZEOF_CHARP TRUE CACHE INTERNAL "")
199194
SET(SIZEOF_CHARP ${CMAKE_SIZEOF_VOID_P} CACHE INTERNAL "")
200195
SET(HAVE_SIZEOF_LONG TRUE CACHE INTERNAL "")
201196
SET(SIZEOF_LONG 4 CACHE INTERNAL "")
202-
SET(HAVE_SIZEOF_CHAR TRUE CACHE INTERNAL "")
203-
SET(SIZEOF_CHAR 1 CACHE INTERNAL "")
204197
SET(HAVE_SIZEOF_SHORT TRUE CACHE INTERNAL "")
205198
SET(SIZEOF_SHORT 2 CACHE INTERNAL "")
206199
SET(HAVE_SIZEOF_INT TRUE CACHE INTERNAL "")
@@ -209,26 +202,22 @@ SET(HAVE_SIZEOF_LONG_LONG TRUE CACHE INTERNAL "")
209202
SET(SIZEOF_LONG_LONG 8 CACHE INTERNAL "")
210203
SET(HAVE_SIZEOF_OFF_T TRUE CACHE INTERNAL "")
211204
SET(SIZEOF_OFF_T 4 CACHE INTERNAL "")
205+
SET(HAVE_SIZEOF_TIME_T TRUE CACHE INTERNAL "")
206+
SET(SIZEOF_TIME_T 8 CACHE INTERNAL "")
212207
SET(HAVE_SIZEOF_UINT FALSE CACHE INTERNAL "")
213208
SET(HAVE_SIZEOF_ULONG FALSE CACHE INTERNAL "")
214209
SET(HAVE_SIZEOF_U_INT32_T FALSE CACHE INTERNAL "")
215210

216211
# Code tests
217-
# Hardcoded in configure.cmake SOCKET_SIZE_TYPE
218-
SET(HAVE_PTHREAD_YIELD_ZERO_ARG CACHE INTERNAL "")
219212
SET(STACK_DIRECTION -1 CACHE INTERNAL "")
220213
SET(TIME_WITH_SYS_TIME CACHE INTERNAL "")
221214
SET(HAVE_FCNTL_NONBLOCK CACHE INTERNAL "") # Only needed by CMake
222215
# Derived result NO_FCNTL_NONBLOCK
223-
SET(C_HAS_inline CACHE INTERNAL "")
224-
SET(C_HAS___inline 1 CACHE INTERNAL "")
225216
# Not checked for Windows HAVE_PAUSE_INSTRUCTION
226217
# Not checked for Windows HAVE_FAKE_PAUSE_INSTRUCTION
227218
# Not checked for Windows HAVE_ABI_CXA_DEMANGLE
228219
SET(HAVE_BSS_START CACHE INTERNAL "")
229-
SET(HAVE_BUILTIN_UNREACHABLE_C CACHE INTERNAL "") # Only needed by CMake
230-
SET(HAVE_BUILTIN_UNREACHABLE_CXX CACHE INTERNAL "") # Only needed by CMake
231-
# Derived result HAVE_BUILTIN_UNREACHABLE
220+
SET(HAVE_BUILTIN_UNREACHABLE CACHE INTERNAL "")
232221
SET(HAVE_BUILTIN_EXPECT CACHE INTERNAL "")
233222
SET(HAVE_BUILTIN_STPCPY CACHE INTERNAL "")
234223
SET(HAVE_GCC_ATOMIC_BUILTINS CACHE INTERNAL "")
@@ -245,22 +234,10 @@ SET(HAVE_SOCKADDR_IN_SIN_LEN CACHE INTERNAL "")
245234
SET(HAVE_SOCKADDR_IN6_SIN6_LEN CACHE INTERNAL "")
246235

247236
#
248-
# Platform specific CMake files
237+
# Windows.cmake
249238
#
250-
# Windows stuff, mostly functions, that have Posix analogs but named differently
251239
SET(HAVE_IPPROTO_IPV6 CACHE INTERNAL "")
252240
SET(HAVE_IPV6_V6ONLY 1 CACHE INTERNAL "")
253-
SET(HAVE_S_IROTH CACHE INTERNAL "")
254-
SET(HAVE__S_IREAD 1 CACHE INTERNAL "")
255-
SET(HAVE_S_IFIFO CACHE INTERNAL "")
256-
SET(HAVE__S_IFIFO 1 CACHE INTERNAL "")
257-
SET(HAVE_SIGQUIT CACHE INTERNAL "")
258-
SET(HAVE_SIGTERM 1 CACHE INTERNAL "")
259-
SET(HAVE_SIGPIPE CACHE INTERNAL "")
260-
SET(HAVE_SIGINT 1 CACHE INTERNAL "")
261-
SET(HAVE__isnan 1 CACHE INTERNAL "")
262-
SET(HAVE_SIZE_OF_SSIZE_T FALSE CACHE INTERNAL "") # Only needed by CMake
263-
# Derived result ssize_t
264241
# Hardcoded in Windows.cmake FN_NO_CASE_SENSE
265242

266243
#
@@ -285,9 +262,6 @@ SET(HAVE_GETPWNAM_R CACHE INTERNAL "")
285262
SET(HAVE_GETGRNAM_R CACHE INTERNAL "")
286263

287264
#
288-
# Maintainer.cmake.
265+
# Thread pool
289266
#
290-
SET(HAVE_WVLA CACHE INTERNAL "")
291-
292-
# Seems like a bug?
293-
SET(HAVE_ACCESS 1 CACHE INTERNAL "")
267+
SET(HAVE_EPOLL_WAIT CACHE INTERNAL "")

config.h.cmake

+8-41
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
#cmakedefine HAVE_PATHS_H 1
4949
#cmakedefine HAVE_POLL_H 1
5050
#cmakedefine HAVE_PWD_H 1
51-
#cmakedefine HAVE_SCHED_H 1
5251
#cmakedefine HAVE_STRINGS_H 1
5352
#cmakedefine HAVE_SYNCH_H 1
5453
#cmakedefine HAVE_SYS_CDEFS_H 1
@@ -121,7 +120,6 @@
121120
#cmakedefine HAVE_MEMRCHR 1
122121
#cmakedefine HAVE_MLOCK 1
123122
#cmakedefine HAVE_MLOCKALL 1
124-
#cmakedefine HAVE_MMAP 1
125123
#cmakedefine HAVE_MMAP64 1
126124
#cmakedefine HAVE_POLL 1
127125
#cmakedefine HAVE_POSIX_FALLOCATE 1
@@ -132,7 +130,6 @@
132130
#cmakedefine HAVE_READDIR_R 1
133131
#cmakedefine HAVE_READLINK 1
134132
#cmakedefine HAVE_REALPATH 1
135-
#cmakedefine HAVE_SCHED_YIELD 1
136133
#cmakedefine HAVE_SETFD 1
137134
#cmakedefine HAVE_SIGACTION 1
138135
#cmakedefine HAVE_SLEEP 1
@@ -185,48 +182,23 @@
185182
#cmakedefine WORDS_BIGENDIAN 1
186183

187184
/* Type sizes */
188-
#cmakedefine sigset_t @sigset_t@
189-
#cmakedefine mode_t @mode_t@
190-
#cmakedefine SIZEOF_SIGSET_T @SIZEOF_SIGSET_T@
191-
#cmakedefine SIZEOF_VOIDP @SIZEOF_VOIDP@
192-
#define HAVE_CHARP 1
193-
#cmakedefine SIZEOF_CHARP @SIZEOF_CHARP@
194-
#define HAVE_LONG 1
195-
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
196-
#define HAVE_CHAR 1
197-
#cmakedefine SIZEOF_CHAR @SIZEOF_CHAR@
198-
#define HAVE_SHORT 1
199-
#cmakedefine SIZEOF_SHORT @SIZEOF_SHORT@
200-
#define HAVE_INT 1
201-
#cmakedefine SIZEOF_INT @SIZEOF_INT@
202-
#cmakedefine HAVE_LONG_LONG 1
185+
#cmakedefine SIZEOF_VOIDP @SIZEOF_VOIDP@
186+
#cmakedefine SIZEOF_CHARP @SIZEOF_CHARP@
187+
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
188+
#cmakedefine SIZEOF_SHORT @SIZEOF_SHORT@
189+
#cmakedefine SIZEOF_INT @SIZEOF_INT@
203190
#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
204-
#cmakedefine HAVE_OFF_T 1
205-
#cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@
191+
#cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@
192+
#cmakedefine SIZEOF_TIME_T @SIZEOF_TIME_T@
206193
#cmakedefine HAVE_UINT 1
207-
#cmakedefine SIZEOF_UINT @SIZEOF_UINT@
208194
#cmakedefine HAVE_ULONG 1
209-
#cmakedefine SIZEOF_ULONG @SIZEOF_ULONG@
210195
#cmakedefine HAVE_U_INT32_T 1
211-
#cmakedefine SIZEOF_U_INT32_T @SIZEOF_U_INT32_T@
212-
#cmakedefine SIZEOF_TIME_T @SIZEOF_TIME_T@
213196
#cmakedefine HAVE_FP_EXCEPT 1
214197

215198
/* Code tests*/
216-
#cmakedefine SOCKET_SIZE_TYPE @SOCKET_SIZE_TYPE@
217-
#cmakedefine HAVE_PTHREAD_YIELD_ZERO_ARG 1
218199
#cmakedefine STACK_DIRECTION @STACK_DIRECTION@
219200
#cmakedefine TIME_WITH_SYS_TIME 1
220201
#cmakedefine NO_FCNTL_NONBLOCK 1
221-
/*
222-
Define to `__inline__' or `__inline' if that's what the C compiler calls it.
223-
*/
224-
#cmakedefine C_HAS_inline 1
225-
#if !(C_HAS_inline)
226-
#ifndef __cplusplus
227-
# define inline @C_INLINE@
228-
#endif
229-
#endif
230202
#cmakedefine HAVE_PAUSE_INSTRUCTION 1
231203
#cmakedefine HAVE_FAKE_PAUSE_INSTRUCTION 1
232204
#cmakedefine HAVE_ABI_CXA_DEMANGLE 1
@@ -259,12 +231,6 @@
259231
/* Windows stuff, mostly functions, that have Posix analogs but named differently */
260232
#cmakedefine IPPROTO_IPV6 @IPPROTO_IPV6@
261233
#cmakedefine IPV6_V6ONLY @IPV6_V6ONLY@
262-
#cmakedefine S_IROTH @S_IROTH@
263-
#cmakedefine S_IFIFO @S_IFIFO@
264-
#cmakedefine SIGQUIT @SIGQUIT@
265-
#cmakedefine SIGPIPE @SIGPIPE@
266-
#cmakedefine isnan @isnan@
267-
#cmakedefine ssize_t @ssize_t@
268234
/* This should mean case insensitive file system */
269235
#cmakedefine FN_NO_CASE_SENSE 1
270236

@@ -445,5 +411,6 @@
445411
#define HAVE_STRTOLL 1
446412
#define HAVE_SYS_STAT_H 1
447413
#define HAVE_SYS_TYPES_H 1
414+
#define SIZEOF_CHAR 1
448415

449416
#endif

0 commit comments

Comments
 (0)