Skip to content

Commit d33e74f

Browse files
committed
Bug#17730320: REMOVE UNNEEDE CMAKE CHECKS AND #IFDEFS IN 5.7.4
Patch mysql#3. This patch removes the following: HAVE_SETENV - always true HAVE_DECL_SHM_HUGETLB - use HAVE_LARGE_PAGES instead HUGETLB_USE_PROC_MEMINFO - use HAVE_LARGE_PAGES instead HAVE_LARGE_PAGE_OPTION - use HAVE_LARGE_PAGES || HAVE_SOLARIS_LARGE_PAGES instead HAVE_RWLOCK_T - never used HAVE_DECL_MHA_MAPSIZE_CA - use HAVE_SOLARIS_LARGE_PAGES instead HAVE_SYS_IPC_H - always true (where used) HAVE_SYS_SHM_H - always true (where used) Removed _MSC_VER checks where they are not relevant as we require Visual Studio 2010 (which has _MSC_VER = 1600). Also added CMake check which aborts configuration if an older version of Visual Studio is used. Removed HAVE_PREAD checks where they are not relevant. HAVE_PREAD is always true for non-Windows supported platforms (POSIX).
1 parent da6e9fa commit d33e74f

25 files changed

+38
-265
lines changed

client/mysqltest.cc

+4-19
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ using std::max;
6060
#define SIGNAL_FMT "signal %d"
6161
#endif
6262

63+
#ifdef _WIN32
64+
#define setenv(a,b,c) _putenv_s(a,b)
65+
#endif
66+
6367
#define MAX_VAR_NAME_LENGTH 256
6468
#define MAX_COLUMNS 256
6569
#define MAX_EMBEDDED_SERVER_ARGS 64
@@ -70,10 +74,6 @@ using std::max;
7074
#define QUERY_SEND_FLAG 1
7175
#define QUERY_REAP_FLAG 2
7276

73-
#ifndef HAVE_SETENV
74-
static int setenv(const char *name, const char *value, int overwrite);
75-
#endif
76-
7777
C_MODE_START
7878
static void signal_handler(int sig);
7979
static my_bool get_one_option(int optid, const struct my_option *,
@@ -10776,18 +10776,3 @@ void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input)
1077610776
delete_dynamic(&lines);
1077710777
DBUG_VOID_RETURN;
1077810778
}
10779-
10780-
#ifndef HAVE_SETENV
10781-
static int setenv(const char *name, const char *value, int overwrite)
10782-
{
10783-
size_t buflen= strlen(name) + strlen(value) + 2;
10784-
char *envvar= (char *)malloc(buflen);
10785-
if(!envvar)
10786-
return ENOMEM;
10787-
strcpy(envvar, name);
10788-
strcat(envvar, "=");
10789-
strcat(envvar, value);
10790-
putenv(envvar);
10791-
return 0;
10792-
}
10793-
#endif

cmake/os/Linux.cmake

+1-6
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,4 @@ ENDIF()
4141
SET(_FILE_OFFSET_BITS 64)
4242

4343
# Linux specific HUGETLB /large page support
44-
CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h HAVE_DECL_SHM_HUGETLB)
45-
IF(HAVE_DECL_SHM_HUGETLB)
46-
SET(HAVE_LARGE_PAGES 1)
47-
SET(HUGETLB_USE_PROC_MEMINFO 1)
48-
SET(HAVE_LARGE_PAGE_OPTION 1)
49-
ENDIF()
44+
CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h HAVE_LINUX_LARGE_PAGES)

cmake/os/SunOS.cmake

+1-9
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ INCLUDE(CheckCSourceCompiles)
2020
# Enable 64 bit file offsets
2121
SET(_FILE_OFFSET_BITS 64)
2222

23-
# Legacy option, without it my_pthread is having problems
24-
ADD_DEFINITIONS(-DHAVE_RWLOCK_T)
25-
2623
# On Solaris, use of intrinsics will screw the lib search logic
2724
# Force using -lm, so rint etc are found.
2825
SET(LIBM m)
@@ -32,12 +29,7 @@ SET(LIBM m)
3229
SET(CMAKE_THREADS_LIBS_INIT -lpthread CACHE INTERNAL "" FORCE)
3330

3431
# Solaris specific large page support
35-
CHECK_SYMBOL_EXISTS(MHA_MAPSIZE_VA sys/mman.h HAVE_DECL_MHA_MAPSIZE_VA)
36-
IF(HAVE_DECL_MHA_MAPSIZE_VA)
37-
SET(HAVE_SOLARIS_LARGE_PAGES 1)
38-
SET(HAVE_LARGE_PAGE_OPTION 1)
39-
ENDIF()
40-
32+
CHECK_SYMBOL_EXISTS(MHA_MAPSIZE_VA sys/mman.h HAVE_SOLARIS_LARGE_PAGES)
4133

4234
# Solaris atomics
4335
CHECK_C_SOURCE_RUNS(

cmake/os/Windows.cmake

+5-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ INCLUDE(${CMAKE_BINARY_DIR}/win/configure.data OPTIONAL)
3434
# a VC solution.
3535
GET_FILENAME_COMPONENT(_SCRIPT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
3636
INCLUDE(${_SCRIPT_DIR}/WindowsCache.cmake)
37-
37+
38+
# We require at least Visual Studio 2010 (aka 10.0) which has version nr 1600.
39+
IF(MSVC_VERSION LESS 1600)
40+
MESSAGE(FATAL_ERROR "Visual Studio 2010 or newer is required!")
41+
ENDIF()
3842

3943
# OS display name (version_compile_os etc).
4044
# Used by the test suite to ignore bugs on some platforms,

cmake/os/WindowsCache.cmake

-3
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ SET(HAVE_SCHED_GETCPU CACHE INTERNAL "")
141141
SET(HAVE_SCHED_H CACHE INTERNAL "")
142142
SET(HAVE_SCHED_YIELD CACHE INTERNAL "")
143143
SET(HAVE_SELECT_H CACHE INTERNAL "")
144-
SET(HAVE_SETENV CACHE INTERNAL "")
145144
SET(HAVE_SETFD CACHE INTERNAL "")
146145
SET(HAVE_SIGACTION CACHE INTERNAL "")
147146
SET(HAVE_SIGINT 1 CACHE INTERNAL "")
@@ -198,14 +197,12 @@ SET(HAVE_SYS_DEVPOLL_H CACHE INTERNAL "")
198197
SET(HAVE_SYS_DIR_H CACHE INTERNAL "")
199198
SET(HAVE_SYS_EPOLL_H CACHE INTERNAL "")
200199
SET(HAVE_SYS_IOCTL_H CACHE INTERNAL "")
201-
SET(HAVE_SYS_IPC_H CACHE INTERNAL "")
202200
SET(HAVE_SYS_MALLOC_H CACHE INTERNAL "")
203201
SET(HAVE_SYS_MMAN_H CACHE INTERNAL "")
204202
SET(HAVE_SYS_PARAM_H CACHE INTERNAL "")
205203
SET(HAVE_SYS_PRCTL_H CACHE INTERNAL "")
206204
SET(HAVE_SYS_RESOURCE_H CACHE INTERNAL "")
207205
SET(HAVE_SYS_SELECT_H CACHE INTERNAL "")
208-
SET(HAVE_SYS_SHM_H CACHE INTERNAL "")
209206
SET(HAVE_SYS_SOCKET_H CACHE INTERNAL "")
210207
SET(HAVE_SYS_STAT_H 1 CACHE INTERNAL "")
211208
SET(HAVE_SYS_TIMES_H CACHE INTERNAL "")

config.h.cmake

+1-13
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,12 @@
5555
#cmakedefine HAVE_SYS_DIR_H 1
5656
#cmakedefine HAVE_SYS_CDEFS_H 1
5757
#cmakedefine HAVE_SYS_IOCTL_H 1
58-
#cmakedefine HAVE_SYS_IPC_H 1
5958
#cmakedefine HAVE_SYS_MALLOC_H 1
6059
#cmakedefine HAVE_SYS_MMAN_H 1
6160
#cmakedefine HAVE_SYS_NDIR_H 1
6261
#cmakedefine HAVE_SYS_PRCTL_H 1
6362
#cmakedefine HAVE_SYS_RESOURCE_H 1
6463
#cmakedefine HAVE_SYS_SELECT_H 1
65-
#cmakedefine HAVE_SYS_SHM_H 1
6664
#cmakedefine HAVE_SYS_SOCKET_H 1
6765
#cmakedefine HAVE_SYS_STAT_H 1
6866
#cmakedefine HAVE_SYS_TIMES_H 1
@@ -135,7 +133,6 @@
135133
#cmakedefine HAVE_GETGID 1
136134
#cmakedefine HAVE_GETEGID 1
137135
#cmakedefine HAVE_ISINF 1
138-
#cmakedefine HAVE_LARGE_PAGE_OPTION 1
139136
#cmakedefine HAVE_LRAND48 1
140137
#cmakedefine HAVE_LOG2 1
141138
#cmakedefine HAVE_LSTAT 1
@@ -145,7 +142,6 @@
145142
#cmakedefine HAVE_MADVISE 1
146143
#cmakedefine HAVE_DECL_MADVISE 1
147144
#cmakedefine HAVE_DECL_TGOTO 1
148-
#cmakedefine HAVE_DECL_MHA_MAPSIZE_VA
149145
#cmakedefine HAVE_MALLOC_INFO 1
150146
#cmakedefine HAVE_MLOCKALL 1
151147
#cmakedefine HAVE_MMAP 1
@@ -171,7 +167,6 @@
171167
#cmakedefine HAVE_SCHED_YIELD 1
172168
#cmakedefine HAVE_SELECT 1
173169
#cmakedefine HAVE_SETFD 1
174-
#cmakedefine HAVE_SETENV 1
175170
#cmakedefine HAVE_SIGSET 1
176171
#cmakedefine HAVE_SIGACTION 1
177172
#cmakedefine HAVE_SLEEP 1
@@ -288,9 +283,7 @@
288283
#cmakedefine MY_ATOMIC_MODE_RWLOCKS 1
289284
#cmakedefine HAVE_GCC_ATOMIC_BUILTINS 1
290285
#cmakedefine HAVE_SOLARIS_ATOMIC 1
291-
#cmakedefine HAVE_DECL_SHM_HUGETLB 1
292-
#cmakedefine HAVE_LARGE_PAGES 1
293-
#cmakedefine HUGETLB_USE_PROC_MEMINFO 1
286+
#cmakedefine HAVE_LINUX_LARGE_PAGES 1
294287
#cmakedefine NO_FCNTL_NONBLOCK 1
295288

296289
#cmakedefine _LARGE_FILES 1
@@ -350,11 +343,6 @@
350343

351344
#cmakedefine ssize_t @ssize_t@
352345

353-
#if (_MSC_VER > 1310)
354-
# define HAVE_SETENV
355-
#define setenv(a,b,c) _putenv_s(a,b)
356-
#endif
357-
358346
/*
359347
Memcached config options
360348
*/

configure.cmake

+1-4
Original file line numberDiff line numberDiff line change
@@ -361,13 +361,11 @@ CHECK_INCLUDE_FILES (synch.h HAVE_SYNCH_H)
361361
CHECK_INCLUDE_FILES (sysent.h HAVE_SYSENT_H)
362362
CHECK_INCLUDE_FILES (sys/cdefs.h HAVE_SYS_CDEFS_H)
363363
CHECK_INCLUDE_FILES (sys/ioctl.h HAVE_SYS_IOCTL_H)
364-
CHECK_INCLUDE_FILES (sys/ipc.h HAVE_SYS_IPC_H)
365364
CHECK_INCLUDE_FILES (sys/malloc.h HAVE_SYS_MALLOC_H)
366365
CHECK_INCLUDE_FILES (sys/mman.h HAVE_SYS_MMAN_H)
367366
CHECK_INCLUDE_FILES (sys/prctl.h HAVE_SYS_PRCTL_H)
368367
CHECK_INCLUDE_FILES (sys/resource.h HAVE_SYS_RESOURCE_H)
369368
CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
370-
CHECK_INCLUDE_FILES (sys/shm.h HAVE_SYS_SHM_H)
371369
CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
372370
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
373371
CHECK_INCLUDE_FILES ("curses.h;term.h" HAVE_TERM_H)
@@ -495,7 +493,7 @@ CHECK_FUNCTION_EXISTS (mmap64 HAVE_MMAP64)
495493
CHECK_FUNCTION_EXISTS (poll HAVE_POLL)
496494
CHECK_FUNCTION_EXISTS (posix_fallocate HAVE_POSIX_FALLOCATE)
497495
CHECK_FUNCTION_EXISTS (posix_memalign HAVE_POSIX_MEMALIGN)
498-
CHECK_FUNCTION_EXISTS (pread HAVE_PREAD)
496+
CHECK_FUNCTION_EXISTS (pread HAVE_PREAD) # Used by NDB
499497
CHECK_FUNCTION_EXISTS (pthread_attr_getguardsize HAVE_PTHREAD_ATTR_GETGUARDSIZE)
500498
CHECK_FUNCTION_EXISTS (pthread_condattr_setclock HAVE_PTHREAD_CONDATTR_SETCLOCK)
501499
CHECK_FUNCTION_EXISTS (pthread_sigmask HAVE_PTHREAD_SIGMASK)
@@ -504,7 +502,6 @@ CHECK_FUNCTION_EXISTS (readdir_r HAVE_READDIR_R)
504502
CHECK_FUNCTION_EXISTS (readlink HAVE_READLINK)
505503
CHECK_FUNCTION_EXISTS (realpath HAVE_REALPATH)
506504
CHECK_FUNCTION_EXISTS (sched_yield HAVE_SCHED_YIELD)
507-
CHECK_FUNCTION_EXISTS (setenv HAVE_SETENV)
508505
CHECK_FUNCTION_EXISTS (setfd HAVE_SETFD)
509506
CHECK_FUNCTION_EXISTS (sigaction HAVE_SIGACTION)
510507
CHECK_FUNCTION_EXISTS (sigset HAVE_SIGSET)

include/my_global.h

-13
Original file line numberDiff line numberDiff line change
@@ -938,17 +938,4 @@ enum loglevel {
938938
INFORMATION_LEVEL= 2
939939
};
940940

941-
942-
/*
943-
Visual Studio before the version 2010 did not have lldiv_t.
944-
In Visual Studio 2010, _MSC_VER is defined as 1600.
945-
*/
946-
#if defined(_MSC_VER) && (_MSC_VER < 1600)
947-
typedef struct
948-
{
949-
long long int quot; /* Quotient. */
950-
long long int rem; /* Remainder. */
951-
} lldiv_t;
952-
#endif
953-
954941
#endif // MY_GLOBAL_INCLUDED

include/my_sys.h

+3-6
Original file line numberDiff line numberDiff line change
@@ -205,15 +205,15 @@ extern void (*debug_sync_C_callback_ptr)(const char *, size_t);
205205
#define DEBUG_SYNC_C_IF_THD(thd, _sync_point_name_)
206206
#endif /* defined(ENABLED_DEBUG_SYNC) */
207207

208-
#ifdef HAVE_LARGE_PAGES
208+
#ifdef HAVE_LINUX_LARGE_PAGES
209209
extern uint my_get_large_page_size(void);
210210
extern uchar * my_large_malloc(PSI_memory_key key, size_t size, myf my_flags);
211211
extern void my_large_free(uchar *ptr);
212212
#else
213213
#define my_get_large_page_size() (0)
214214
#define my_large_malloc(A,B,C) my_malloc((A),(B),(C))
215215
#define my_large_free(A) my_free((A))
216-
#endif /* HAVE_LARGE_PAGES */
216+
#endif /* HAVE_LINUX_LARGE_PAGES */
217217

218218
#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca)
219219
#define alloca __builtin_alloca
@@ -237,7 +237,7 @@ extern ulong my_thread_stack_size;
237237
extern void (*proc_info_hook)(void *, const PSI_stage_info *, PSI_stage_info *,
238238
const char *, const char *, const unsigned int);
239239

240-
#ifdef HAVE_LARGE_PAGES
240+
#ifdef HAVE_LINUX_LARGE_PAGES
241241
extern my_bool my_use_large_pages;
242242
extern uint my_large_page_size;
243243
#endif
@@ -309,9 +309,6 @@ struct st_my_file_info
309309
int oflag; /* open flags, e.g O_APPEND */
310310
#endif
311311
enum file_type type;
312-
#if !defined(HAVE_PREAD) && !defined(_WIN32)
313-
mysql_mutex_t mutex;
314-
#endif
315312
};
316313

317314
extern struct st_my_file_info *my_file_info;

libmysqld/lib_sql.cc

-4
Original file line numberDiff line numberDiff line change
@@ -1331,10 +1331,6 @@ bool Protocol::net_store_data(const uchar *from, size_t length)
13311331
return FALSE;
13321332
}
13331333

1334-
#if defined(_MSC_VER) && _MSC_VER < 1400
1335-
#define vsnprintf _vsnprintf
1336-
#endif
1337-
13381334
void error_log_print(enum loglevel level __attribute__((unused)),
13391335
const char *format, va_list argsi)
13401336
{

mysys/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND CMAKE_C_COMPILER_ID MATCHES "SunPro")
5757
PROPERTIES COMPILE_FLAGS "${CMAKE_CURRENT_SOURCE_DIR}/my_timer_cycles.il")
5858
ENDIF()
5959

60-
IF(HAVE_LARGE_PAGES)
60+
IF(HAVE_LINUX_LARGE_PAGES)
6161
SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_largepage.c)
6262
ENDIF()
6363

mysys/mf_iocache.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1442,7 +1442,7 @@ int my_block_write(IO_CACHE *info, const uchar *Buffer, size_t Count,
14421442
Buffer+=length;
14431443
pos+= length;
14441444
Count-= length;
1445-
#ifndef HAVE_PREAD
1445+
#ifdef _WIN32
14461446
info->seek_not_done=1;
14471447
#endif
14481448
}

mysys/my_init.c

+4-20
Original file line numberDiff line numberDiff line change
@@ -358,18 +358,9 @@ static void my_win_init(void)
358358
DBUG_ENTER("my_win_init");
359359

360360
#if defined(_MSC_VER)
361-
#if _MSC_VER < 1300
362-
/*
363-
Clear the OS system variable TZ and avoid the 100% CPU usage
364-
Only for old versions of Visual C++
365-
*/
366-
_putenv("TZ=");
367-
#endif
368-
#if _MSC_VER >= 1400
369361
/* this is required to make crt functions return -1 appropriately */
370362
_set_invalid_parameter_handler(my_parameter_handler);
371363
#endif
372-
#endif
373364

374365
#ifdef __MSVC_RUNTIME_CHECKS
375366
/*
@@ -457,10 +448,6 @@ PSI_stage_info stage_waiting_for_table_level_lock=
457448

458449
#ifdef HAVE_PSI_INTERFACE
459450

460-
#if !defined(HAVE_PREAD) && !defined(_WIN32)
461-
PSI_mutex_key key_my_file_info_mutex;
462-
#endif /* !defined(HAVE_PREAD) && !defined(_WIN32) */
463-
464451
PSI_mutex_key key_BITMAP_mutex, key_IO_CACHE_append_buffer_lock,
465452
key_IO_CACHE_SHARE_mutex, key_KEY_CACHE_cache_lock, key_LOCK_alarm,
466453
key_my_thread_var_mutex, key_THR_LOCK_charset, key_THR_LOCK_heap,
@@ -471,9 +458,6 @@ PSI_mutex_key key_BITMAP_mutex, key_IO_CACHE_append_buffer_lock,
471458

472459
static PSI_mutex_info all_mysys_mutexes[]=
473460
{
474-
#if !defined(HAVE_PREAD) && !defined(_WIN32)
475-
{ &key_my_file_info_mutex, "st_my_file_info:mutex", 0},
476-
#endif /* !defined(HAVE_PREAD) && !defined(_WIN32) */
477461
{ &key_BITMAP_mutex, "BITMAP::mutex", 0},
478462
{ &key_IO_CACHE_append_buffer_lock, "IO_CACHE::append_buffer_lock", 0},
479463
{ &key_IO_CACHE_SHARE_mutex, "IO_CACHE::SHARE_mutex", 0},
@@ -506,16 +490,16 @@ static PSI_cond_info all_mysys_conds[]=
506490
{ &key_THR_COND_threads, "THR_COND_threads", 0}
507491
};
508492

509-
#ifdef HUGETLB_USE_PROC_MEMINFO
493+
#ifdef HAVE_LINUX_LARGE_PAGES
510494
PSI_file_key key_file_proc_meminfo;
511-
#endif /* HUGETLB_USE_PROC_MEMINFO */
495+
#endif /* HAVE_LINUX_LARGE_PAGES */
512496
PSI_file_key key_file_charset, key_file_cnf;
513497

514498
static PSI_file_info all_mysys_files[]=
515499
{
516-
#ifdef HUGETLB_USE_PROC_MEMINFO
500+
#ifdef HAVE_LINUX_LARGE_PAGES
517501
{ &key_file_proc_meminfo, "proc_meminfo", 0},
518-
#endif /* HUGETLB_USE_PROC_MEMINFO */
502+
#endif /* HAVE_LINUX_LARGE_PAGES */
519503
{ &key_file_charset, "charset", 0},
520504
{ &key_file_cnf, "cnf", 0}
521505
};

mysys/my_largepage.c

-13
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,8 @@
1515

1616
#include "mysys_priv.h"
1717

18-
#ifdef HAVE_LARGE_PAGES
19-
20-
#ifdef HAVE_SYS_IPC_H
2118
#include <sys/ipc.h>
22-
#endif
23-
24-
#ifdef HAVE_SYS_SHM_H
2519
#include <sys/shm.h>
26-
#endif
2720

2821
static uint my_get_large_page_size_int(void);
2922
static uchar* my_large_malloc_int(size_t size, myf my_flags);
@@ -85,7 +78,6 @@ void my_large_free(uchar* ptr)
8578
DBUG_VOID_RETURN;
8679
}
8780

88-
#ifdef HUGETLB_USE_PROC_MEMINFO
8981
/* Linux-specific function to determine the size of large pages */
9082

9183
uint my_get_large_page_size_int(void)
@@ -108,9 +100,7 @@ uint my_get_large_page_size_int(void)
108100
finish:
109101
DBUG_RETURN(size * 1024);
110102
}
111-
#endif /* HUGETLB_USE_PROC_MEMINFO */
112103

113-
#if HAVE_DECL_SHM_HUGETLB
114104
/* Linux-specific large pages allocator */
115105

116106
uchar* my_large_malloc_int(size_t size, myf my_flags)
@@ -164,6 +154,3 @@ my_bool my_large_free_int(uchar *ptr)
164154
DBUG_ENTER("my_large_free_int");
165155
DBUG_RETURN(shmdt(ptr) == 0);
166156
}
167-
#endif /* HAVE_DECL_SHM_HUGETLB */
168-
169-
#endif /* HAVE_LARGE_PAGES */

0 commit comments

Comments
 (0)