cmake/build_configurations/mysql_release.cmake
- Corrected spelling ENABLE_LOCAL_INFILE => ENABLED_LOCAL_INFILE
- In addition to "RelWithDebInfo", set target "Release" and "Debug"
- Set Debug flags
- Enabled SSL on Mac OS X
- For gcc builds, set RELEASE and DEBUG flags as well
- For g++ builds, added "-fno-implicit-templates"
- Use "-O" (gcc -O1) for optimized binaries, as "DEBUG" in out case
is more about enabling trace support to the server, no optimization
makes binaries too slow to be practical to reproduce problems
cmake/os/WindowsCache.cmake
- Removed unused HAVE_SYS_IOCTL
config.h.cmake
- Added header checks and missing defines
- Removed unused HAVE_SYS_IOCTL
- Grouped and uncommented some HAVE_* that are really not
defines, but internal variables used in the CMake setup,
- Added hard coded flags for HP-UX and Mac OS X
configure.cmake
- Added header checks and missing defines
- Removed unused HAVE_SYS_IOCTL
- "sys/dir.h" test needs "sys/types.h"
- Corrected syntax for "sys/ptem.h" test
- Don't exclude test for some types if Mac OS X, harmless
to do the test and we want the HAVE_<type> settings
- Added hard coded flags for HP-UX and Mac OS X
extra/yassl/CMakeLists.txt
extra/yassl/taocrypt/CMakeLists.txt
- Added missing source file "template_instnt.cpp"
The thing is that on some platforms (e.g. Mac OS X) sockaddr_in / sockaddr_in6
contain a non-standard field (sin_len / sin6_len), that must be set.
The problem was that only standard fields were set, thus getnameinfo() returned
EAI_SYSTEM instead of EAI_NONAME.
The fix is to introduce configure-time checks (for GNU auto-tools and CMake) for
those additional fields and to set them if they are available.
- Set SIZEOF_VOIDP the same way as others
- Unindent the no Mac OS settings, to let the checker scripts find the lines
- Removed duplicate SIZEOF_SIZE_T setting
- Added missing value for HAVE_CHARSET_ascii
configure.cmake
- Added HAVE_ prefix to library names, like HAVE_LIBM
- Set HAVE_CXXABI_H if header is found, HAVE_ABI_CXA_DEMANGLE
controls if useful
- Set SIZEOF_VOIDP the same way as others
- Added missing HAVE_SYS_TIMES_H, HAVE_SYS_TIME_H, HAVE_TIME_H,
HAVE_TIME and HAVE_TIMES
- Removed most #if constructs, keep logic in "configure.cmake"
- Use space after # if inside #if, for consistency
configure.cmake
- Added MY_CHECK_TYPE_SIZE function that sets both SIZEOF_* and HAVE_*
- If "sys/stream.h" exists, include it before "sys/ptem.h" in test
- Set VOID_SIGHANDLER if RETSIGTYPE is set to "void"
- Update/fix file layouts for each package type, add new types for
native package formats including deb, rpm and svr4.
- Build all plugins, including debug versions
- Update compiler flags to match current release
- Add missing @VAR@ expansions
- Install correct mysqclient library symlinks
- Fix icc/ia64 builds
- Fix install of libmysqld-debug
- Don't include mysql_embedded
- Remove unpackaged manual pages to avoid missing files warnings
- Don't install mtr's test suite
on Windows".
On platforms where read-write lock implementation does not
prefer readers by default (Windows, Solaris) server might
have deadlocked while detecting MDL deadlock.
MDL deadlock detector relies on the fact that read-write
locks which are used in its implementation prefer readers
(see new comment for MDL_lock::m_rwlock for details).
So far MDL code assumed that default implementation of
read/write locks for the system has this property.
Indeed, this turned out ot be wrong, for example, for
Windows or Solaris. Thus MDL deadlock detector might have
deadlocked on these systems.
This fix simply adds portable implementation of read/write
lock which prefer readers and changes MDL code to use this
new type of synchronization primitive.
No test case is added as existing rqg_mdl_stability test can
serve as one.
using cmake option INSTALL_LAYOUT=STANDALONE would produce the layout as in
tar.gz or zip packages.
INSTALL_LAYOUT=UNIX will produce unixish install layout (with mysqld being in sbin subdirectory , libs in lib/mysql etc). This layout is used for RPM packages.
Subtle differences in both packages unfortunately lead to the need to recompile MySQL to use with other package type - as otherwise for example default plugins or data directories would be wrong set.
There are numerous other variables that allow fine-tuning packaging layout. (INSTALL_BINDIR, INSTALL_LIBDIR , INSTALL_PLUGINDIR etc).
This options are different from autotools as they do not expect full paths to directories, but only subdirectory of CMAKE_INSTALL_PREFIX.
There are 2 special options that expect full directory paths
- MYSQL_DATADIR that defines default MYSQL data directory (autotools equivalent
is --localstatedir)
- SYSCONFDIR can be added to search my.cnf search path (autotools equivalent is --sysconfdir)