1# Copyright (c) 2010, 2021, Oracle and/or its affiliates.
2#
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License, version 2.0,
5# as published by the Free Software Foundation.
6#
7# This program is also distributed with certain software (including
8# but not limited to OpenSSL) that is licensed under separate terms,
9# as designated in a particular file or component or in included license
10# documentation.  The authors of MySQL hereby grant you an additional
11# permission to link the program and your derivative works with the
12# separately licensed software that they have included with MySQL.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License, version 2.0, for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22
23# Avoid system checks on Windows by pre-caching  results. Most of the system checks
24# are not relevant for Windows anyway and it takes lot more time to run them,
25# since CMake creates a Visual Studio project for each tiny test.
26
27#
28# From configure.cmake, in order of appearance
29#
30SET(HAVE_LLVM_LIBCPP CACHE  INTERNAL "")
31# Hardcoded in configure.cmake _LARGEFILE_SOURCE
32SET(CMAKE_HAVE_PTHREAD_H CACHE  INTERNAL "") # Only needed by CMake
33
34# Libraries
35# Not checked for Windows HAVE_LIBM
36# Not checked for Windows HAVE_LIBNSL
37# Not checked for Windows HAVE_LIBCRYPT
38# Not checked for Windows HAVE_LIBSOCKET
39# Not checked for Windows HAVE_LIBDL
40# Not checked for Windows HAVE_LIBRT
41# Not checked for Windows HAVE_LIBWRAP
42
43# Header files
44SET(HAVE_ALLOCA_H CACHE  INTERNAL "")
45SET(HAVE_ARPA_INET_H CACHE  INTERNAL "")
46SET(HAVE_DLFCN_H CACHE  INTERNAL "")
47SET(HAVE_EXECINFO_H CACHE  INTERNAL "")
48SET(HAVE_FPU_CONTROL_H CACHE  INTERNAL "")
49SET(HAVE_GRP_H CACHE  INTERNAL "")
50SET(HAVE_IEEEFP_H CACHE  INTERNAL "")
51SET(HAVE_LANGINFO_H CACHE  INTERNAL "")
52SET(HAVE_MALLOC_H 1 CACHE  INTERNAL "")
53SET(HAVE_NETINET_IN_H CACHE  INTERNAL "")
54SET(HAVE_POLL_H CACHE  INTERNAL "")
55SET(HAVE_PWD_H CACHE  INTERNAL "")
56SET(HAVE_STRINGS_H CACHE  INTERNAL "")
57SET(HAVE_SYS_CDEFS_H CACHE  INTERNAL "")
58SET(HAVE_SYS_IOCTL_H CACHE  INTERNAL "")
59SET(HAVE_SYS_MMAN_H CACHE  INTERNAL "")
60SET(HAVE_SYS_RESOURCE_H CACHE  INTERNAL "")
61SET(HAVE_SYS_SELECT_H CACHE  INTERNAL "")
62SET(HAVE_SYS_SOCKET_H CACHE  INTERNAL "")
63SET(HAVE_TERM_H CACHE  INTERNAL "")
64SET(HAVE_TERMIOS_H CACHE  INTERNAL "")
65SET(HAVE_TERMIO_H CACHE  INTERNAL "")
66SET(HAVE_UNISTD_H CACHE  INTERNAL "")
67SET(HAVE_SYS_WAIT_H CACHE  INTERNAL "")
68SET(HAVE_SYS_PARAM_H CACHE  INTERNAL "")
69SET(HAVE_FNMATCH_H CACHE  INTERNAL "")
70SET(HAVE_SYS_UN_H CACHE  INTERNAL "")
71SET(HAVE_VIS_H CACHE INTERNAL "")
72
73# Libevent
74SET(HAVE_DEVPOLL CACHE  INTERNAL "")
75SET(HAVE_SYS_DEVPOLL_H CACHE  INTERNAL "")
76SET(HAVE_SYS_EPOLL_H CACHE  INTERNAL "")
77SET(HAVE_TAILQFOREACH CACHE INTERNAL "")
78
79# Functions
80SET(HAVE_ALIGNED_MALLOC 1 CACHE  INTERNAL "")
81SET(HAVE_BACKTRACE CACHE  INTERNAL "")
82SET(HAVE_PRINTSTACK CACHE  INTERNAL "")
83SET(HAVE_INDEX CACHE  INTERNAL "")
84SET(HAVE_CLOCK_GETTIME CACHE  INTERNAL "")
85SET(HAVE_CUSERID CACHE  INTERNAL "")
86SET(HAVE_DIRECTIO CACHE  INTERNAL "")
87SET(HAVE_FTRUNCATE CACHE  INTERNAL "")
88SET(HAVE_COMPRESS CACHE  INTERNAL "")
89SET(HAVE_CRYPT CACHE  INTERNAL "")
90SET(HAVE_DLOPEN CACHE  INTERNAL "")
91SET(HAVE_FCHMOD CACHE  INTERNAL "")
92SET(HAVE_FCNTL CACHE  INTERNAL "")
93SET(HAVE_FDATASYNC CACHE  INTERNAL "")
94SET(HAVE_DECL_FDATASYNC CACHE INTERNAL "")
95SET(HAVE_FEDISABLEEXCEPT CACHE  INTERNAL "")
96SET(HAVE_FSEEKO CACHE  INTERNAL "")
97SET(HAVE_FSYNC CACHE  INTERNAL "")
98SET(HAVE_GETHOSTBYADDR_R CACHE  INTERNAL "")
99SET(HAVE_GETHRTIME CACHE  INTERNAL "")
100# Check needed HAVE_GETNAMEINFO
101SET(HAVE_GETPASS CACHE  INTERNAL "")
102SET(HAVE_GETPASSPHRASE CACHE  INTERNAL "")
103SET(HAVE_GETPWNAM CACHE  INTERNAL "")
104SET(HAVE_GETPWUID CACHE  INTERNAL "")
105SET(HAVE_GETRLIMIT CACHE  INTERNAL "")
106SET(HAVE_GETRUSAGE CACHE  INTERNAL "")
107SET(HAVE_INITGROUPS CACHE  INTERNAL "")
108SET(HAVE_ISSETUGID CACHE  INTERNAL "")
109SET(HAVE_GETUID CACHE  INTERNAL "")
110SET(HAVE_GETEUID CACHE  INTERNAL "")
111SET(HAVE_GETGID CACHE  INTERNAL "")
112SET(HAVE_GETEGID CACHE  INTERNAL "")
113SET(HAVE_LSTAT CACHE  INTERNAL "")
114SET(HAVE_MADVISE CACHE  INTERNAL "")
115SET(HAVE_MALLOC_INFO CACHE  INTERNAL "")
116SET(HAVE_MEMRCHR CACHE  INTERNAL "")
117SET(HAVE_MLOCK CACHE  INTERNAL "")
118SET(HAVE_MLOCKALL CACHE  INTERNAL "")
119SET(HAVE_MMAP64 CACHE  INTERNAL "")
120SET(HAVE_POLL CACHE INTERNAL "")
121SET(HAVE_POSIX_FALLOCATE CACHE  INTERNAL "")
122SET(HAVE_POSIX_MEMALIGN CACHE  INTERNAL "")
123SET(HAVE_PREAD CACHE  INTERNAL "")
124SET(HAVE_PTHREAD_CONDATTR_SETCLOCK CACHE  INTERNAL "")
125SET(HAVE_PTHREAD_SIGMASK CACHE  INTERNAL "")
126SET(HAVE_READLINK CACHE  INTERNAL "")
127SET(HAVE_REALPATH CACHE  INTERNAL "")
128SET(HAVE_SETFD CACHE  INTERNAL "")
129SET(HAVE_SIGACTION CACHE  INTERNAL "")
130SET(HAVE_SLEEP CACHE  INTERNAL "")
131SET(HAVE_STPCPY CACHE  INTERNAL "")
132SET(HAVE_STPNCPY CACHE  INTERNAL "")
133SET(HAVE_STRLCPY CACHE  INTERNAL "")
134SET(HAVE_STRNDUP CACHE  INTERNAL "") # Used by libbinlogevents
135SET(HAVE_STRNLEN 1 CACHE  INTERNAL "")
136SET(HAVE_STRLCAT CACHE  INTERNAL "")
137SET(HAVE_STRSIGNAL CACHE  INTERNAL "")
138SET(HAVE_FGETLN CACHE  INTERNAL "")
139SET(HAVE_STRSEP CACHE  INTERNAL "")
140SET(HAVE_TELL 1 CACHE  INTERNAL "")
141SET(HAVE_VASPRINTF CACHE  INTERNAL "")
142SET(HAVE_MEMALIGN CACHE  INTERNAL "")
143SET(HAVE_NL_LANGINFO CACHE  INTERNAL "")
144SET(HAVE_HTONLL CACHE  INTERNAL "")
145SET(DNS_USE_CPU_CLOCK_FOR_ID CACHE  INTERNAL "")
146SET(HAVE_EPOLL CACHE  INTERNAL "")
147# Disabled in configure.cmake HAVE_EVENT_PORTS
148# Check needed HAVE_INET_NTOP
149SET(HAVE_WORKING_KQUEUE CACHE  INTERNAL "")
150SET(HAVE_TIMERADD CACHE  INTERNAL "")
151SET(HAVE_TIMERCLEAR CACHE  INTERNAL "")
152SET(HAVE_TIMERCMP CACHE  INTERNAL "")
153SET(HAVE_TIMERISSET CACHE  INTERNAL "")
154
155# WL2373
156SET(HAVE_SYS_TIME_H CACHE  INTERNAL "")
157SET(HAVE_SYS_TIMES_H CACHE  INTERNAL "")
158SET(HAVE_TIMES CACHE  INTERNAL "")
159SET(HAVE_GETTIMEOFDAY CACHE  INTERNAL "")
160
161# Symbols
162SET(HAVE_LRAND48 CACHE  INTERNAL "")
163SET(GWINSZ_IN_SYS_IOCTL CACHE INTERNAL "")
164SET(FIONREAD_IN_SYS_IOCTL CACHE INTERNAL "")
165SET(FIONREAD_IN_SYS_FILIO CACHE INTERNAL "")
166SET(HAVE_SIGEV_THREAD_ID CACHE INTERNAL "")
167SET(HAVE_SIGEV_PORT CACHE INTERNAL "")
168# Check needed HAVE_LOG2
169
170# Check needed HAVE_ISINF
171
172SET(HAVE_TIMER_CREATE CACHE INTERNAL "")   # Only needed by CMake
173SET(HAVE_TIMER_SETTIME CACHE INTERNAL "")  # Only needed by CMake
174SET(HAVE_KQUEUE CACHE INTERNAL "")         # Only needed by CMake
175SET(HAVE_EVFILT_TIMER CACHE INTERNAL "")   # Only needed by CMake
176# Derived result HAVE_KQUEUE_TIMERS
177# Derived result HAVE_POSIX_TIMERS
178
179# Endianess
180SET(HAVE_WORDS_BIGENDIAN TRUE CACHE  INTERNAL "")  # Only needed by CMake
181SET(WORDS_BIGENDIAN CACHE  INTERNAL "")
182
183# Type sizes
184# Check needed SIZEOF_VOIDP
185SET(HAVE_SIZEOF_CHARP TRUE CACHE  INTERNAL "")
186SET(SIZEOF_CHARP ${CMAKE_SIZEOF_VOID_P} CACHE  INTERNAL "")
187SET(HAVE_SIZEOF_LONG TRUE CACHE  INTERNAL "")
188SET(SIZEOF_LONG 4 CACHE  INTERNAL "")
189SET(HAVE_SIZEOF_SHORT TRUE CACHE  INTERNAL "")
190SET(SIZEOF_SHORT 2 CACHE  INTERNAL "")
191SET(HAVE_SIZEOF_INT TRUE CACHE  INTERNAL "")
192SET(SIZEOF_INT 4 CACHE  INTERNAL "")
193SET(HAVE_SIZEOF_LONG_LONG TRUE CACHE  INTERNAL "")
194SET(SIZEOF_LONG_LONG 8 CACHE  INTERNAL "")
195SET(HAVE_SIZEOF_OFF_T TRUE CACHE  INTERNAL "")
196SET(SIZEOF_OFF_T 4 CACHE  INTERNAL "")
197SET(HAVE_SIZEOF_TIME_T TRUE CACHE INTERNAL "")
198SET(SIZEOF_TIME_T 8 CACHE  INTERNAL "")
199SET(HAVE_SIZEOF_UINT FALSE CACHE  INTERNAL "")
200SET(HAVE_SIZEOF_ULONG FALSE CACHE  INTERNAL "")
201SET(HAVE_SIZEOF_U_INT32_T FALSE CACHE  INTERNAL "")
202# Check needed HAVE_STRUCT_TIMESPEC
203
204# Code tests
205SET(STACK_DIRECTION -1 CACHE INTERNAL "")
206SET(TIME_WITH_SYS_TIME CACHE INTERNAL "")
207SET(HAVE_FCNTL_NONBLOCK CACHE  INTERNAL "") # Only needed by CMake
208# Derived result NO_FCNTL_NONBLOCK
209# Not checked for Windows HAVE_PAUSE_INSTRUCTION
210# Not checked for Windows HAVE_FAKE_PAUSE_INSTRUCTION
211# Not checked for Windows HAVE_ABI_CXA_DEMANGLE
212SET(HAVE_BUILTIN_UNREACHABLE CACHE  INTERNAL "")
213SET(HAVE_BUILTIN_EXPECT CACHE  INTERNAL "")
214SET(HAVE_BUILTIN_STPCPY CACHE  INTERNAL "")
215SET(HAVE_GCC_ATOMIC_BUILTINS CACHE  INTERNAL "")
216SET(HAVE_GCC_SYNC_BUILTINS CACHE  INTERNAL "")
217# Derived result HAVE_VALGRIND
218SET(HAVE_PTHREAD_THREADID_NP CACHE INTERNAL "")
219
220# IPV6
221SET(HAVE_NETINET_IN6_H CACHE  INTERNAL "")
222# Check needed HAVE_STRUCT_SOCKADDR_IN6
223# Check needed HAVE_STRUCT_IN6_ADDR
224SET(HAVE_IPV6 TRUE CACHE  INTERNAL "")
225
226SET(HAVE_SOCKADDR_STORAGE_SS_FAMILY 1 CACHE  INTERNAL "")
227SET(HAVE_SOCKADDR_IN_SIN_LEN CACHE INTERNAL "")
228SET(HAVE_SOCKADDR_IN6_SIN6_LEN CACHE INTERNAL "")
229
230#
231# Windows.cmake
232#
233SET(HAVE_IPPROTO_IPV6 CACHE  INTERNAL "")
234SET(HAVE_IPV6_V6ONLY 1 CACHE  INTERNAL "")
235# Hardcoded in Windows.cmake FN_NO_CASE_SENSE
236
237#
238# Innodb.cmake
239#
240SET(HAVE_SCHED_GETCPU CACHE  INTERNAL "")
241SET(HAVE_NANOSLEEP CACHE  INTERNAL "")
242SET(HAVE_ASPRINTF CACHE INTERNAL "")
243
244#
245# Auth
246#
247SET(HAVE_PEERCRED CACHE INTERNAL "")
248
249#
250# PAM
251#
252SET(HAVE_PAM_APPL_H CACHE  INTERNAL "")
253SET(HAVE_PAM_PAM_APPL_H CACHE  INTERNAL "")
254SET(HAVE_PAM_START_IN_PAM CACHE  INTERNAL "")
255SET(HAVE_GETPWNAM_R CACHE  INTERNAL "")
256SET(HAVE_GETGRNAM_R CACHE  INTERNAL "")
257
258#
259# Thread pool
260#
261SET(HAVE_EPOLL_WAIT CACHE INTERNAL "")
262