From b1471ebbe9db90c472ff356bea6a7c8aedb45db9 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 2 Nov 2017 23:11:29 +0300 Subject: Add implementation --- mysql/my_config.h | 351 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 351 insertions(+) create mode 100644 mysql/my_config.h (limited to 'mysql/my_config.h') diff --git a/mysql/my_config.h b/mysql/my_config.h new file mode 100644 index 0000000..71b15dc --- /dev/null +++ b/mysql/my_config.h @@ -0,0 +1,351 @@ +/* file : mysql/my_config.h -*- C -*- + * copyright : Copyright (c) 2016-2017 Code Synthesis Ltd + * license : GPLv2 with FOSS License Exception; see accompanying COPYING file + */ + +#ifndef MYSQL_MY_CONFIG_H +#define MYSQL_MY_CONFIG_H + +/* + * For the semantics of the following macros refer to + * mysql/config.h.cmake.orig file. + * + * Note that we will explicitly undefine macros that are present in the mariadb + * source code but should not be defined. While this is not technically + * required, it simplifies the change tracking (see README-DEV). As a bonus we + * also make sure that they are not get eventually defined by some system + * headers. + */ + +/* + * The version header defines the following macros: + +#define PROTOCOL_VERSION +#define MYSQL_VERSION_MAJOR +#define MYSQL_VERSION_MINOR +#define MACHINE_TYPE +#define SYSTEM_TYPE + + * Keep all the macros listed (in this exact form) for the change tracking + * (see README-DEV). + */ +#include + +/* + * @@ Move to version.h.in and express through the installation directory. + * What to do if the installation directory is not defined? + */ +#define DEFAULT_BASEDIR "/usr/local/mysql" +#define DEFAULT_CHARSET_HOME "/usr/local/mysql" +#define PLUGINDIR "/usr/local/mysql/lib/plugin" + +/* + * @@ On Windows. + */ +/* +#define DEFAULT_BASEDIR "C:/Program Files/MySQL/MySQL Server 5.7" +#define DEFAULT_CHARSET_HOME "C:/Program Files/MySQL/MySQL Server 5.7" +#define PLUGINDIR "C:/Program Files/MySQL/MySQL Server 5.7/lib/plugin" + */ + +/* + * Note that mysql-connector doesn't install anything to the share/ directory, + * so probably not important. Note that it is just "share" on Windows. + */ +#define SHAREDIR "/usr/local/mysql/share" + +#define PACKAGE_VERSION MYSQL_SERVER_VERSION +#define VERSION MYSQL_SERVER_VERSION + +/* + * Types and type sizes. + */ +#ifndef _WIN32 +# define SIZEOF_VOIDP __SIZEOF_POINTER__ +# define SIZEOF_CHARP __SIZEOF_POINTER__ +# define SIZEOF_INT __SIZEOF_INT__ +# define SIZEOF_LONG __SIZEOF_LONG__ +# define SIZEOF_LONG_LONG __SIZEOF_LONG_LONG__ + +/* + * Is always 8 bytes, thanks to the -D_FILE_OFFSET_BITS=64 preprocessor option + * passed (see buildfile). We also check this at the compile time using + * _Static_assert() (see mysql/libmysql/assert.c). + */ +# define SIZEOF_OFF_T 8 + +/* + * There is no way to exactly tell the time_t type size at the preprocessing + * time, so we define it as the most probable one. We check this assumption + * at the compile time using _Static_assert() (see mysql/libmysql/assert.c). + */ +# define SIZEOF_TIME_T __SIZEOF_LONG__ + +/* + * Endianess + */ +# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifdef _WIN64 +# define SIZEOF_VOIDP 8 +# define SIZEOF_CHARP 8 +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 4 +# define SIZEOF_TIME_T 8 +# else +# define SIZEOF_VOIDP 4 +# define SIZEOF_CHARP 4 +# define SIZEOF_INT 4 +# define SIZEOF_LONG 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 4 +# define SIZEOF_TIME_T 8 +# endif +#endif + +#define HAVE_STRUCT_TIMESPEC + +/* + * Hard to even find any records of these types. + */ +#undef HAVE_UINT +#undef HAVE_ULONG + +/* + * Usage of libc++. + */ +#ifdef _LIBCPP_VERSION +# define HAVE_LLVM_LIBCPP 1 +#endif + +/* + * Specific for Linux. + */ +#ifdef __linux__ +# define HAVE_MMAP64 1 +# define HAVE_POSIX_TIMERS 1 + +/* + * Irrelevant for the client. + */ +# undef HAVE_LINUX_LARGE_PAGES +#endif + +/* + * Specific for FreeBSD. + */ +#ifdef __FreeBSD__ +# define HAVE_IEEEFP_H 1 +#endif + +/* + * Specific for FreeBSD and Linux. + */ +#if defined(__FreeBSD__) || defined(__linux__) +# define HAVE_CLOCK_GETTIME 1 +# define HAVE_CUSERID 1 +# define HAVE_SIGEV_THREAD_ID 1 +# define HAVE_DECL_FDATASYNC 1 +#endif + +/* + * Specific for FreeBSD and Mac OS. + */ +#if defined(__FreeBSD__) || defined(__APPLE__) +# define FIONREAD_IN_SYS_FILIO 1 +# define HAVE_KQUEUE_TIMERS 1 +# define HAVE_SOCKADDR_IN_SIN_LEN 1 +# define HAVE_SOCKADDR_IN6_SIN6_LEN 1 +#endif + +/* + * Specific for POSIX. + */ +#ifndef _WIN32 +# define HAVE_DLFCN_H 1 +# define HAVE_LANGINFO_H 1 +# define HAVE_POLL_H 1 +# define HAVE_POLL 1 +# define HAVE_PWD_H 1 +# define HAVE_SYS_IOCTL_H 1 +# define HAVE_SYS_MMAN_H 1 +# define HAVE_SYS_RESOURCE_H 1 +# define HAVE_SYS_SELECT_H 1 +# define HAVE_SYS_SOCKET_H 1 +# define HAVE_TERMIOS_H 1 +# define HAVE_UNISTD_H 1 +# define HAVE_FNMATCH_H 1 +# define HAVE_SYS_UN_H 1 +# define HAVE_BACKTRACE 1 +# define HAVE_FTRUNCATE 1 +# define HAVE_DLOPEN 1 +# define HAVE_FCNTL 1 +# define HAVE_FDATASYNC 1 +# define HAVE_FSEEKO 1 +# define HAVE_FSYNC 1 +# define HAVE_GETPASS 1 +# define HAVE_GETPWNAM 1 +# define HAVE_GETPWUID 1 +# define HAVE_GETRLIMIT 1 +# define HAVE_GETRUSAGE 1 +# define HAVE_LSTAT 1 +# define HAVE_READLINK 1 +# define HAVE_REALPATH 1 +# define HAVE_SLEEP 1 +# define HAVE_STPCPY 1 +# define HAVE_STPNCPY 1 +# define HAVE_NL_LANGINFO 1 +# define HAVE_SYS_TIME_H 1 +# define HAVE_SYS_TIMES_H 1 +# define HAVE_TIMES 1 +# define HAVE_GETTIMEOFDAY 1 +# define FIONREAD_IN_SYS_IOCTL 1 +# define TIME_WITH_SYS_TIME 1 +# define DEFAULT_TMPDIR P_tmpdir + +/* + * Not POSIX but are present on Linux and BSDs. + */ +# define HAVE_EXECINFO_H 1 + +/* + * Support for tagging symbols with __attribute__((visibility("hidden"))) + */ +# define HAVE_VISIBILITY_HIDDEN 1 + +/* + * Compiler builtins. + */ +# define HAVE_BUILTIN_UNREACHABLE 1 +# define HAVE_BUILTIN_EXPECT 1 +# define HAVE_BUILTIN_STPCPY 1 +# define HAVE_GCC_ATOMIC_BUILTINS 1 +# define HAVE_GCC_SYNC_BUILTINS 1 + +/* + * Specific for Windows. + */ +#else +# define WITH_PERFSCHEMA_STORAGE_ENGINE 1 +# define HAVE_TELL 1 +# define DEFAULT_TMPDIR "" +#endif + +/* + * Common for all supported OSes/compilers. + */ +#define HAVE_COMPRESS 1 +#define HAVE_STRNLEN 1 +#define HAVE_ISINF 1 +#define HAVE_IPV6 1 +#define MAX_INDEXES 64U + +/* + * Collations are added for the enabled character sets. + */ +#define MYSQL_DEFAULT_CHARSET_NAME "latin1" +#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" +#define HAVE_CHARSET_armscii8 1 +#define HAVE_CHARSET_ascii 1 +#define HAVE_CHARSET_big5 1 +#define HAVE_CHARSET_cp1250 1 +#define HAVE_CHARSET_cp1251 1 +#define HAVE_CHARSET_cp1256 1 +#define HAVE_CHARSET_cp1257 1 +#define HAVE_CHARSET_cp850 1 +#define HAVE_CHARSET_cp852 1 +#define HAVE_CHARSET_cp866 1 +#define HAVE_CHARSET_cp932 1 +#define HAVE_CHARSET_dec8 1 +#define HAVE_CHARSET_eucjpms 1 +#define HAVE_CHARSET_euckr 1 +#define HAVE_CHARSET_gb18030 1 +#define HAVE_CHARSET_gb2312 1 +#define HAVE_CHARSET_gbk 1 +#define HAVE_CHARSET_geostd8 1 +#define HAVE_CHARSET_greek 1 +#define HAVE_CHARSET_hebrew 1 +#define HAVE_CHARSET_hp8 1 +#define HAVE_CHARSET_keybcs2 1 +#define HAVE_CHARSET_koi8r 1 +#define HAVE_CHARSET_koi8u 1 +#define HAVE_CHARSET_latin1 1 +#define HAVE_CHARSET_latin2 1 +#define HAVE_CHARSET_latin5 1 +#define HAVE_CHARSET_latin7 1 +#define HAVE_CHARSET_macce 1 +#define HAVE_CHARSET_macroman 1 +#define HAVE_CHARSET_sjis 1 +#define HAVE_CHARSET_swe7 1 +#define HAVE_CHARSET_tis620 1 +#define HAVE_CHARSET_ucs2 1 +#define HAVE_CHARSET_ujis 1 +#define HAVE_CHARSET_utf16 1 +#define HAVE_CHARSET_utf32 1 +#define HAVE_CHARSET_utf8 1 +#define HAVE_CHARSET_utf8mb4 1 +#define HAVE_UCA_COLLATIONS 1 + +#undef DISABLE_PSI_THREAD +#undef DISABLE_PSI_MUTEX +#undef DISABLE_PSI_RWLOCK +#undef DISABLE_PSI_COND +#undef DISABLE_PSI_FILE +#undef DISABLE_PSI_TABLE +#undef DISABLE_PSI_SOCKET +#undef DISABLE_PSI_STAGE +#undef DISABLE_PSI_STATEMENT +#undef DISABLE_PSI_SP +#undef DISABLE_PSI_PS +#undef DISABLE_PSI_IDLE +#undef DISABLE_PSI_STATEMENT_DIGEST +#undef DISABLE_PSI_METADATA +#undef DISABLE_PSI_MEMORY +#undef DISABLE_PSI_TRANSACTION + +/* + * Obsolete headers and functions. + */ +#undef HAVE_TERMIO_H + +/* + * Specific for unsupported OSes (Solaris, SunOS, HP-UX...). + */ +#undef HAVE_PRINTSTACK +#undef HAVE_GETHRTIME +#undef HAVE_GETPASSPHRASE +#undef HAVE_SIGEV_PORT +#undef HAVE_SOLARIS_ATOMIC + +/* + * The upstream package undefines it for all supported compilers. + */ +#undef HAVE_ABI_CXA_DEMANGLE + +/* + * The upstream package defines it only for MacOS. Let's disable tracing for it + * as well. + */ +#undef HAVE_DTRACE + +/* + * We don't assume any instrumentation. + */ +#undef HAVE_VALGRIND +#undef HAVE_ASAN + +/* + * Usage of alloca() is discouraged on Linux and BSDs, so let's not use it. + */ +#undef HAVE_ALLOCA_H + +#undef ss_family +#undef ENABLED_LOCAL_INFILE +#undef WITH_NDBCLUSTER_STORAGE_ENGINE +#undef EXTRA_DEBUG + +#endif // MYSQL_MY_CONFIG_H -- cgit v1.1