Commit graph

530 commits

Author SHA1 Message Date
Vladislav Vaintroub
ab5c1e433e remove unconditional SAFEMALLOC/SAFEMUTEX from debug flags 2011-10-11 20:13:57 +02:00
Sergei Golubchik
ae63300801 merge 2011-10-11 12:55:42 +02:00
Sergei Golubchik
eeca1f8694 merge with 5.1 2011-10-07 00:18:30 +02:00
Sergei Golubchik
630b0b8779 support for plugins on windows
CMakeLists.txt:
  1. add -DSAFEMALLOC -DSAFE_MUTEX in the top-level CMakeLists.txt
     don't force plugins to copy-paste these lines in their CMakeLists.txt
  2.1 search plugin/* for plugins (not only storage/*),
  2.2 recognize MYSQL_PLUGIN (not only MYSQL_STORAGE_ENGINE),
  2.3 extract library names from the plug.in (don't force library names to
      be ha_<engine>.dll and <engine>.lib)
include/mysql/plugin.h:
  define MYSQL_PLUGIN_EXPORT appropriately
  (backport from 5.5)
libmysqld/CMakeLists.txt:
  remove unnecessary workaround
plugin/fulltext/CMakeLists.txt:
  build fulltext example plugin on windows
storage/maria/CMakeLists.txt:
  The library is called libmaria_s.lib, not maria.lib
storage/maria/unittest/CMakeLists.txt:
  The library is called libmaria_s.lib, not maria.lib
storage/myisam/CMakeLists.txt:
  The library is called libmyisam_s.lib, not myisam.lib
storage/mysql_storage_engine.cmake:
  introduce MYSQL_PLUGIN macro.
  don't force library names to be ha_<engine>.dll and <engine>.lib
storage/xtradb/CMakeLists.txt:
  remove a condition from include
win/README:
  don't use deprecated syntax
win/configure-mariadb.sh:
  don't use deprecated syntax
win/configure.js:
  1. support MYSQL_PLUGIN in addition to MYSQL_STORAGE_ENGINE.
  2. support plugin/* in addition to storage/*
2011-10-04 15:41:52 +02:00
Sergei Golubchik
2853f6bfbb unit test fixes for ctest 2011-07-16 09:09:01 +02:00
Vladislav Vaintroub
f9cb1467b8 merge Windows performance patches into 5.3 2011-07-05 21:46:53 +02:00
Kent Boortz
027b5f1ed4 Updated/added copyright headers 2011-07-03 17:47:37 +02:00
Kent Boortz
b6e6097c95 Updated/added copyright headers 2011-07-03 17:47:37 +02:00
Kent Boortz
68f00a5686 Updated/added copyright headers 2011-06-30 17:37:13 +02:00
Kent Boortz
1400d7a2cc Updated/added copyright headers 2011-06-30 17:37:13 +02:00
Kent Boortz
44135d4725 Updated/added copyright headers 2011-06-30 17:31:31 +02:00
Kent Boortz
e5ce023f57 Updated/added copyright headers 2011-06-30 17:31:31 +02:00
Vladislav Vaintroub
94b3e6a809 Fiix LPBUG#798629
Define USE_MARIA_FOR_TMP_TABLES preprocessor constant by default if Aria engine is compiled in.
Use CMake variable WITH_ARIA_TMP_TABLES to control the temp table engine setting.
2011-06-17 12:53:41 +02:00
Vladislav Vaintroub
4bca1a786f Fix XtraDB LPBug #714143 :
Windows native async io is disabled.

The patch uses completion ports for asynchronous IO notification , 
instead of formerly  used notification via event . This also removes
the limit of 64 async IOs per background IO thread (this limit was 
forced  by using WaitForMultipleObjects in previous AIO implementation)
2011-06-12 16:07:18 +02:00
Vladislav Vaintroub
19f0d6b2d9 Small CMake fixes :
- add version info for the client library, dynamic plugins and some utilities
- do not recompile client library sources 3 times (for mysqlclient , mysqlclient_notls and libmysql)
  One time is sufficient, so get rid of mysqlclient_notls, and link  static client library  to  the shared.
- remove incremental linking flag
2011-05-15 13:38:18 +02:00
unknown
d25b5b686b BUG#12549572 : CMake file does not include gcov option
This patch inserts an 'ENABLE_GCOV' option for enabling gcov compilation
on Linux machines. It modifies the CMakeLists.txt setting this option
to 'OFF' by default.

Note: The option requires a debug build. For example, 
      -DCMAKE_BUILD_TYPE:string="Debug"
2011-05-12 18:22:14 -04:00
chuck.bell@oracle.com
44b2df4aba BUG#12549572 : CMake file does not include gcov option
This patch inserts an 'ENABLE_GCOV' option for enabling gcov compilation
on Linux machines. It modifies the CMakeLists.txt setting this option
to 'OFF' by default.

Note: The option requires a debug build. For example, 
      -DCMAKE_BUILD_TYPE:string="Debug"
2011-05-12 18:22:14 -04:00
Vladislav Vaintroub
83ce12ba69 Windows build : Make win\config.js optional in 5.1
Simplifies handling 5.1 in buildbot.
2011-05-12 15:34:02 +02:00
Vladislav Vaintroub
e4732a765e fix noisy warnings in header files 2011-05-04 14:47:27 +02:00
Michael Widenius
1be5462d59 Merge with MariaDB 5.1 2011-05-03 19:10:10 +03:00
Michael Widenius
e415ba0fb2 Merge with MySQL 5.1.57/58
Moved some BSD string functions from Unireg
2011-05-02 20:58:45 +03:00
MySQL Build Team
590fa98628 fixing 38697/11749301 2011-03-21 20:23:39 +01:00
MySQL Build Team
da88c798ae fixing 38697/11749301 2011-03-21 20:23:39 +01:00
Vladislav Vaintroub
41d432462b merge 5.2 2011-03-10 09:39:14 +01:00
Michael Widenius
3358cdd504 Merge with 5.1 to get in changes from MySQL 5.1.55 2011-02-28 19:39:30 +02:00
Michael Widenius
58bb0769bd Merge with MySQL 5.1.55
- Fixed some issues with partitions and connection_string, which also fixed lp:716890 "Pre- and post-recovery crash in Aria"
- Fixed wrong assert in Aria

Now need to merge with latest xtradb before pushing 

sql/ha_partition.cc:
  Ensure that m_ordered_rec_buffer is not freed before close.
sql/mysqld.cc:
  Changed to use opt_stack_trace instead of opt_pstack.
  Removed references to pstack
sql/partition_element.h:
  Ensure that connect_string is initialized
storage/maria/ma_key_recover.c:
  Fixed wrong assert
2011-02-20 18:51:43 +02:00
Joerg Bruehe
bb956c1ea2 Fix bug#42969 Please add a MANIFEST to each build
With this change, there will be new files "INFO_SRC"
and "INFO_BIN", which describe the source and the
binaries.
They will be contained in all packages:
- in "tar.gz" and derived packages, in "docs/",
- in RPMs, in "/usr/share/doc/packages/MySQL-server".

"INFO_SRC" is also part of a source tarball.
It gives the version as exact as possible, preferably
by calling "bzr version-info" on the source tree.
If that is not possible, it just contains the three
level version number.

"INFO_BIN" contains some info when and where the
binaries were built, the options given to the compiler,
and the flags controlling the included features.

The tests (test "mysql" in the main suite) are extended
to verify the existence of both "INFO_SRC" and "INFO_BIN",
as well as some of the expected contents.


CMakeLists.txt:
  For the new files describing the source and the build
  ("INFO_SRC" and "INFO_BIN"), we need a new file
  "cmake/info_macros.cmake.in" with the build rules.
  
  1) This file must be configured with the current variables.
  
  2) "INFO_SRC" can be created during the cmake phase,
     but this should be repeated with each "make" to
  protect against a developer doing only "make" after
  a "bzr pull" (or "bzr commit").
  So have it both as a cmake rule and as a custom target.
  
  3) "INFO_BIN" must be created during the make phase
     only, because it contains information from files
  which will be written at the end of the cmake phase only.
  Therefore, it must be a custom target which is included
  in all "make" targets.
  
  4) The resulting "INFO_*" files must be included in packages.
cmake/info_bin.cmake:
  This is the file to create "INFO_BIN",
  by calling the "CREATE_INFO_BIN()" macro.
  
  It must be a separate file, so that the macro
  definitions can be included in other cmake scripts
  without that file inclusion causing a side effect,
  the macro call.
  That call would modify the source tree which should
  be trated read-only.
cmake/info_macros.cmake.in:
  This new file contains the macros to create the
  "INFO_*" files during various steps of the build,
  the calls will be at other places.
  
  1) For source: If running from a BZR tree, always create
     (update) "INFO_SRC" by running "bzr version-info".
     Outside a BZR tree, try to take it from exported
     sources, and create it only if missing, in that
     case put the three level version number into it.
  
  2) "INFO_BIN" contains
     - date/time and host name of the build host,
     - information about the platform,
     - information about the C and CXX compiler
       and the options given to them (Unix only),
     - the feature flags as reported by "cmake -L".
cmake/info_src.cmake:
  This is the file to create "INFO_SRC",
  by calling the "CREATE_INFO_SRC()" macro.
  
  It must be a separate file, so that the macro
  definitions can be included in other cmake scripts
  without that file inclusion causing a side effect,
  the macro call.
  That call would modify the source tree which should
  be trated read-only.
cmake/make_dist.cmake.in:
  Create a "VERSION_src" file during "make dist".
  
  In case it already exists from a preceding "cmake" run
  or tree export (which is quite likely), a new
  "make dist" must not modify it.
mysql-test/r/file_contents.result:
  Result of test for bug#42969.
mysql-test/t/file_contents.test:
  Perl test scriptlet for bug#42969.
support-files/mysql.spec.sh:
  Add "INFO_SRC" and "INFO_BIN" to the RPM contents.
2011-02-11 15:55:25 +01:00
Joerg Bruehe
fd21e07d6b Fix bug#42969 Please add a MANIFEST to each build
With this change, there will be new files "INFO_SRC"
and "INFO_BIN", which describe the source and the
binaries.
They will be contained in all packages:
- in "tar.gz" and derived packages, in "docs/",
- in RPMs, in "/usr/share/doc/packages/MySQL-server".

"INFO_SRC" is also part of a source tarball.
It gives the version as exact as possible, preferably
by calling "bzr version-info" on the source tree.
If that is not possible, it just contains the three
level version number.

"INFO_BIN" contains some info when and where the
binaries were built, the options given to the compiler,
and the flags controlling the included features.

The tests (test "mysql" in the main suite) are extended
to verify the existence of both "INFO_SRC" and "INFO_BIN",
as well as some of the expected contents.
2011-02-11 15:55:25 +01:00
Vladislav Vaintroub
074dc9a550 On Philips request, introduce a variable
BUILD_RELEASE to disable graceful fallbacks
if WiX or MFC is not available.
2011-02-03 21:02:20 +01:00
Vladislav Vaintroub
b19e99865c MWL#55 : cherrypick MySQL 5.5 CMake/build improvements in order
to be able to build MSI based installer
2011-01-29 18:51:12 +01:00
Davi Arnaut
650d9cc5b0 Bug#58871: Reorganize maintainer mode compiler flags to allow
option for specific compilers

Reorganize the maintainer mode cmake code to allow options
for specific compilers. For now, enable -Wcheck for ICC,
but do not turn warnings into errors.

CMakeLists.txt:
  Move the code that sets options to cmake/maintainer.cmake
cmake/maintainer.cmake:
  Add macros for each specific compiler.
2010-12-15 08:30:09 -02:00
Davi Arnaut
995ce0bb0a Bug#58871: Reorganize maintainer mode compiler flags to allow
option for specific compilers

Reorganize the maintainer mode cmake code to allow options
for specific compilers. For now, enable -Wcheck for ICC,
but do not turn warnings into errors.
2010-12-15 08:30:09 -02:00
Vladislav Vaintroub
bfcc62c748 merge 2010-12-06 13:16:49 +01:00
Vladislav Vaintroub
0eae06c430 Bug#473914: mysql_client_test fail with in debug compilaton on windows x64
Reason: inconsistent compilation, federatedx is compiled without SAFEMALLOC
flag, while anything else is compiled with SAFEMALLOC.

As a consequence, my_hash_init used inside federatedx initialization does not
provide correct caller info parameters (file, line) , so they are initialized with 
whatever is on stack. When info about allocated memory is output in
COM_DEBUG command, the server crashes trying to output string starting at
0xcccccccccccccccc.

The fix is to remove SAFEMALLOC  preprocessor flags 
from every CMakeLists.txt, except the top-level one.

Also, SAFEMALLOC is not defined by default now, instead
there is WITH_DEBUG_FULL CMake option which adds 
-DSAFEMALLOC to C and C++ flags in debug compilation. 
This option is off by  default, because 
1) Debug C runtime already has heap debugging builtin with 
 overwrite and leak detection
2)safemalloc considerably slows down the tests.


Note also  that 
- SAFEMALLOC is gone  in MySQL5.5
- On Windows, heap related overflows can also be found using free pageheap utility
(that is also part of application verifier). This is even more efficient if there are no other layers 
on top of Windows heap allocator, e.g  it is most efficient with release version.
2010-12-06 12:52:06 +01:00
Michael Widenius
a924325656 Merge with 5.1 2010-12-04 16:32:42 +02:00
Vladislav Vaintroub
c87923dc2d Make maria 5.1 compilable on Visual Studio 2010 and remove Windows warnings
-  Remove all mentioning of /MAP /MAPINFO link options (does not work in VS2010).
     Remove map files from packaging.
  -  Fix warning about ETIMEDOUT being redefined.
  -  Fix  warning about FSP_EXTENT_SIZE in xtradb  (32/64 bit right shift mismatch)
  -  Silence warnings coming from  generated  code (flex/bison) in xtradb/innodb_plugin.
  -  Be nice to people without cygwin (me) and add win/configure-mariadb.bat with options suitable for quick compilation, e.g no embedded
2010-12-01 21:37:03 +01:00
Alexander Nozdrin
9c7629fda3 Merge from mysql-5.1-bugteam. 2010-11-24 13:23:44 +03:00
Alexander Nozdrin
7a3636c1af Merge from mysql-5.1-bugteam. 2010-11-24 13:23:44 +03:00
Georgi Kodinov
05c9acaaf7 Bug #50021: Windows standard configuration files are showing Linux
options/settings
 
 1. Changed the default value for socket on Windows to the windows
 default
 2. Removed hard-coded trailing slashes from innodb_data_home_dir
 and innodb_log_group_name_dir.
 3. Added extra backslashes to the innodb directory example
 4. Made the tempdir platform "dependent"
 5. Fixed the comments in the .ini files
 6. Removed the tmpdir from the templates and the scripts
2010-11-18 18:02:37 +02:00
Georgi Kodinov
589428b625 Bug #50021: Windows standard configuration files are showing Linux
options/settings
 
 1. Changed the default value for socket on Windows to the windows
 default
 2. Removed hard-coded trailing slashes from innodb_data_home_dir
 and innodb_log_group_name_dir.
 3. Added extra backslashes to the innodb directory example
 4. Made the tempdir platform "dependent"
 5. Fixed the comments in the .ini files
 6. Removed the tmpdir from the templates and the scripts
2010-11-18 18:02:37 +02:00
Vladislav Vaintroub
bd15ec0086 Bug#58272: -DBUILD_CONFIG=mysql_release is broken with cmake 2.8.3
The reason  for the bug is that :
-  we use system checks in cmake/os/mysql_release.cmake 
-  we include cmake/os/mysql_release.cmake using CMAKE_USER_MAKE_RULES_OVERRIDE 
-  this  (having system checks based on TRY_COMPILE inside file pointed by 
   CMAKE_USER_MAKE_RULES_OVERRIDE  does not work with cmake 2.8.3,
   and  according to Kitware was never meant to work, it just happened to work by accident
   until 2.8.2 release (though, it seems not to work wiith 2.6.0 either)

Related CMake bug discussing the situation:
http://public.kitware.com/Bug/view.php?id=11469  

The fix is to use INCLUDE instead of CMAKE_USER_MAKE_RULES_OVERRIDE as suggested
by Kitware. The downside is that compile flags are not in cache, but this is  pure cosmetics.
The functionality is the same,  flags are used for compiling are correct using INCLUDE.
2010-11-17 22:06:24 +01:00
Vladislav Vaintroub
be93a81172 Bug#58272: -DBUILD_CONFIG=mysql_release is broken with cmake 2.8.3
The reason  for the bug is that :
-  we use system checks in cmake/os/mysql_release.cmake 
-  we include cmake/os/mysql_release.cmake using CMAKE_USER_MAKE_RULES_OVERRIDE 
-  this  (having system checks based on TRY_COMPILE inside file pointed by 
   CMAKE_USER_MAKE_RULES_OVERRIDE  does not work with cmake 2.8.3,
   and  according to Kitware was never meant to work, it just happened to work by accident
   until 2.8.2 release (though, it seems not to work wiith 2.6.0 either)

Related CMake bug discussing the situation:
http://public.kitware.com/Bug/view.php?id=11469  

The fix is to use INCLUDE instead of CMAKE_USER_MAKE_RULES_OVERRIDE as suggested
by Kitware. The downside is that compile flags are not in cache, but this is  pure cosmetics.
The functionality is the same,  flags are used for compiling are correct using INCLUDE.
2010-11-17 22:06:24 +01:00
Vladislav Vaintroub
f0c2b9c5c6 add missing COMPONENT to all CMake INSTALL commands 2010-11-13 23:16:52 +01:00
Vladislav Vaintroub
a6b4be2522 add missing COMPONENT to all CMake INSTALL commands 2010-11-13 23:16:52 +01:00
Vladislav Vaintroub
1b6bf12b11 Bug#58178: "make package" is broken with cmake 2.8.3
Problem:  with "make package" , many small packages are 
generated, one per CMake COMPONENT, instead of expected single
package. This is due to the new (in cmake 2.8.3) component-based 
install for archive( e.g ZIP,TGZ ) CPack generators.

See http://public.kitware.com/Bug/view.php?id=11452 for discussion.

Fix: use CPACK_MONOLITHIC_INSTALL=1 to enforce single package.
Reset this variable temporarily to 0 for  MSI creation  (MSI needs 
COMPONENTs)
2010-11-13 19:38:39 +01:00
Vladislav Vaintroub
8a9549434d Bug#58178: "make package" is broken with cmake 2.8.3
Problem:  with "make package" , many small packages are 
generated, one per CMake COMPONENT, instead of expected single
package. This is due to the new (in cmake 2.8.3) component-based 
install for archive( e.g ZIP,TGZ ) CPack generators.

See http://public.kitware.com/Bug/view.php?id=11452 for discussion.

Fix: use CPACK_MONOLITHIC_INSTALL=1 to enforce single package.
Reset this variable temporarily to 0 for  MSI creation  (MSI needs 
COMPONENTs)
2010-11-13 19:38:39 +01:00
Guilhem Bichot
da6683d3a3 Merge of the fix for BUG#57933 "add -Wdeclaration-after-statement to gcc builds"
from 5.1; extended here to Cmake builds.
2010-11-05 14:33:59 +01:00
Guilhem Bichot
6bf5b4b98c Merge of the fix for BUG#57933 "add -Wdeclaration-after-statement to gcc builds"
from 5.1; extended here to Cmake builds.
2010-11-05 14:33:59 +01:00
Vladislav Vaintroub
0049019463 merge 2010-10-21 14:12:23 +02:00
Vladislav Vaintroub
8069325f59 merge 2010-10-21 14:12:23 +02:00
Davi Arnaut
c903377d1e Merge of mysql-5.1-bugteam into mysql-5.5-bugteam.
CMakeLists.txt:
  Enable the maintainer mode if debug support is enabled.
  Does not cause it to be enabled if the user explicitly
  disabled the maintainer mode.
2010-10-18 15:38:32 -02:00
Davi Arnaut
f741170485 Merge of mysql-5.1-bugteam into mysql-5.5-bugteam. 2010-10-18 15:38:32 -02:00
Vladislav Vaintroub
84662b9804 Bug#55647:CMake build rebuilds some libraries twice for embedded
A  simple version of the patch : add WITH_PIC to debug compilation.

Engines that are not dependent on internal stuff (like THD structure) 
will not be recompiled for embedded in debug mode.

Examples of such engines are : archive, federated, innodb. Engines
with dependencies on internals (myisam,heap,myisammrg) will still be 
fully recompiled.
2010-10-06 15:15:27 +02:00
Vladislav Vaintroub
a52ea672a0 Bug#55647:CMake build rebuilds some libraries twice for embedded
A  simple version of the patch : add WITH_PIC to debug compilation.

Engines that are not dependent on internal stuff (like THD structure) 
will not be recompiled for embedded in debug mode.

Examples of such engines are : archive, federated, innodb. Engines
with dependencies on internals (myisam,heap,myisammrg) will still be 
fully recompiled.
2010-10-06 15:15:27 +02:00
Davi Arnaut
5c09a44d88 Merge of mysql-5.1-bugteam into mysql-5.5-merge. 2010-09-24 10:03:17 -03:00
Davi Arnaut
2044c80745 Merge of mysql-5.1-bugteam into mysql-5.5-merge. 2010-09-24 10:03:17 -03:00
Sergei Golubchik
e246077bcf rename maria to aria 2010-09-12 18:40:01 +02:00
Alexander Nozdrin
8b645bed97 Patch for Bug#55854 (MySQL AB should not be AUTHOR, copyright incorrect).
Fixing copyright text.
2010-08-12 19:19:57 +04:00
Alexander Nozdrin
13ec2a1625 Patch for Bug#55854 (MySQL AB should not be AUTHOR, copyright incorrect).
Fixing copyright text.
2010-08-12 19:19:57 +04:00
Davi Arnaut
7b7efa1261 Remove error injection option, it's not being used. 2010-08-09 10:23:55 -03:00
Davi Arnaut
8978c1cde2 Remove error injection option, it's not being used. 2010-08-09 10:23:55 -03:00
Davi Arnaut
76382d2746 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Post-merge fix: remove --with-debug=full, it was only used for safemalloc.

BUILD/compile-pentium-mysqlfs-debug:
  Remove build script for a feature that is long gone.
2010-08-06 09:59:38 -03:00
Davi Arnaut
c562aece2e Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Post-merge fix: remove --with-debug=full, it was only used for safemalloc.
2010-08-06 09:59:38 -03:00
Vladislav Vaintroub
b94d86215d Build cleanups
- Simplify sql-bench installation, 
do not try to resolve names : this leads to probem
if builddir is symlink located on different filesystem.
(reported by alik)

- Make WITHOUT_XXX (disabling plugin) work for DEFAULT
plugins. Prior to the patch is behaved just like 
MANDATORY.

- LINK_LIBRARIES in MYSQL_ADD_PLUGIN had no effect for
statically linked plugins.

- Fix constant rebuild of initdb target on Windows.
2010-08-05 18:38:24 +02:00
Vladislav Vaintroub
ff1ee26107 Build cleanups
- Simplify sql-bench installation, 
do not try to resolve names : this leads to probem
if builddir is symlink located on different filesystem.
(reported by alik)

- Make WITHOUT_XXX (disabling plugin) work for DEFAULT
plugins. Prior to the patch is behaved just like 
MANDATORY.

- LINK_LIBRARIES in MYSQL_ADD_PLUGIN had no effect for
statically linked plugins.

- Fix constant rebuild of initdb target on Windows.
2010-08-05 18:38:24 +02:00
Vasil Dimov
5ba3936517 Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
(resolving conflicts in mysql-test/suite/rpl/t/rpl_sync-slave.opt and
configure.cmake)
2010-07-21 17:22:29 +03:00
Vasil Dimov
8152cd0ac8 Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
(resolving conflicts in mysql-test/suite/rpl/t/rpl_sync-slave.opt and
configure.cmake)
2010-07-21 17:22:29 +03:00
Alexander Nozdrin
b5eac2b2ce Manual merge from mysql-trunk.
Conflicts:
  - scripts/CMakeLists.txt
2010-07-19 18:00:29 +04:00
Alexander Nozdrin
9503a8e23f Manual merge from mysql-trunk.
Conflicts:
  - scripts/CMakeLists.txt
2010-07-19 18:00:29 +04:00
Davi Arnaut
711c318c07 Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
Davi Arnaut
649390ac81 Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
Davi Arnaut
47a4a88160 Add the cmake option MYSQL_MAINTAINER_MODE which is equivalent
to the autotools option mysql-maintainer-mode. This option is
intended to set a few flags that should be activated by anyone
doing MySQL development, regardless of the build type. Also, the
flags are only set by the very end of the platform checks as
to not disturb fragile checks.
2010-07-12 13:39:00 -03:00
Davi Arnaut
985017674f Add the cmake option MYSQL_MAINTAINER_MODE which is equivalent
to the autotools option mysql-maintainer-mode. This option is
intended to set a few flags that should be activated by anyone
doing MySQL development, regardless of the build type. Also, the
flags are only set by the very end of the platform checks as
to not disturb fragile checks.
2010-07-12 13:39:00 -03:00
unknown
2be1a25faa Automerge MariaDB 5.1->5.2. 2010-07-09 13:39:19 +02:00
Davi Arnaut
f56dd32bf7 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.

client/mysqldump.c:
  Pass my_free directly as its signature is compatible with the
  callback type -- which wasn't the case for free_table_ent.
2010-07-08 18:20:08 -03:00
Davi Arnaut
a10ae35328 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.
2010-07-08 18:20:08 -03:00
Davi Arnaut
54a5c00de9 Unset the execute bit where it's not needed. 2010-07-03 20:17:03 -03:00
Davi Arnaut
245645e225 Unset the execute bit where it's not needed. 2010-07-03 20:17:03 -03:00
Bo Thorsen
916f7c5680 Hardcode the build path for the installer temporarily 2010-07-01 15:50:54 +02:00
Bo Thorsen
2caed165b1 Fix cpack run 2010-07-01 12:12:48 +02:00
Bo Thorsen
ccdbcaeb57 Install MariaDB as a service with the installer 2010-06-30 14:10:40 +02:00
Bo Thorsen
e4379c5131 Install MTR and SQL-bench with CPack and NSIS 2010-06-29 11:26:10 +02:00
Bo Thorsen
3a2e38aa28 Install the files for the embedded server 2010-06-28 16:41:43 +02:00
Bo Thorsen
1c0f9f9d7e Fix a loop and install more script files. Renames the perlscripts component to scripts, since it now also has sql scripts. 2010-06-28 15:31:47 +02:00
Bo Thorsen
c77f7c3010 Fix installing the localized error messages with cpack 2010-06-28 15:16:19 +02:00
Bo Thorsen
5c4e95f83b Implement an NSIS based installer 2010-06-25 15:09:45 +02:00
Hakan Kuecuekyilmaz
4ee9e66d87 Make MariaDB compile with VS 2010
Most of the changes are backports from MySQL 5.5. Please note
that the 64-bit build fails with VS 2010 and the 32-bit build
has problems running mysql-test-run.pl.
      
* Added files for compiling with VS 2010 and added them
to Makefile.am.
* ifdef'ed ETIMEDOUT, because it is defined by VS 2010 now
* Removed not needed /MAP's from cmake files
2010-06-24 22:40:30 +02:00
Kent Boortz
fb583cfaea CMakeLists.txt
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"
2010-06-23 12:56:22 +02:00
Kent Boortz
24b3962d51 CMakeLists.txt
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"
2010-06-23 12:56:22 +02:00
Vladislav Vaintroub
97d36ef532 Bug#53593: Add some instrumentation to improve Valgrind sensitivity.
Implement WITH_VALGRIND for the CMake build.
2010-06-21 13:39:30 +02:00
Vladislav Vaintroub
23d05c1c6e Bug#53593: Add some instrumentation to improve Valgrind sensitivity.
Implement WITH_VALGRIND for the CMake build.
2010-06-21 13:39:30 +02:00
Daniel Fischer
073943cd7d merge 2010-06-18 17:04:15 +02:00
Daniel Fischer
9891642e77 merge 2010-06-18 17:04:15 +02:00
Sergei Golubchik
9b48499dc4 merged 2010-06-16 12:58:56 +02:00
Bo Thorsen
8cf2640e60 Remove a warning on Windows. There is no CMakeLists.txt in the unittest examples dir 2010-06-14 10:18:49 +02:00
Daniel Fischer
d6fe8c47b8 post-merge fix 1 2010-05-28 16:50:23 +02:00
Daniel Fischer
89205a3bf6 post-merge fix 1 2010-05-28 16:50:23 +02:00
Jon Olav Hauglid
198d51efe7 manual merge from mysql-trunk-bugfixing 2010-05-18 14:52:51 +02:00
Jon Olav Hauglid
1c02ed3e67 manual merge from mysql-trunk-bugfixing 2010-05-18 14:52:51 +02:00
Konstantin Osipov
d1dd2d11c4 Committing on behalf of Valdislav Vaintroub (reviewed and
approved):

3161 Vladislav Vaintroub       2010-04-29                 
 Bug#53196 : CMake builds don't support 'make tags' and 
'make ctags' targets.  
   - Added tags and ctags targets


CMakeLists.txt:
  Add tags and ctags targets.
cmake/Makefile.am:
  Add a cmake file to build tags.
cmake/tags.cmake:
  Build tags and ctags.
2010-05-14 18:42:10 +04:00
Konstantin Osipov
d63caa0c30 Committing on behalf of Valdislav Vaintroub (reviewed and
approved):

3161 Vladislav Vaintroub       2010-04-29                 
 Bug#53196 : CMake builds don't support 'make tags' and 
'make ctags' targets.  
   - Added tags and ctags targets
2010-05-14 18:42:10 +04:00
Jonathan Perkin
ce2aabb712 Changes to build using CMake according to existing release packages:
- 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
2010-05-12 12:51:23 +01:00
Jonathan Perkin
5b85121ca6 Changes to build using CMake according to existing release packages:
- 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
2010-05-12 12:51:23 +01:00
Daniel Fischer
2b588155e4 Changes to MSI installer:
- Introduce MANUFACTURER setting to set package manufacturer via CMake.
- Introduce COMMUNITY_BUILD setting to be passed on to packaging
  (not used here, but required for our own packages to determine what
   added files should be included in the package).
- Create an RTF version of the COPYING text file and use that as the
  default license (can be overridden by providing a COPYING.rtf file).
- Allow passing extra arguments to candle and light via environment.
  (Need -sval in pushbuild, but want validation elsewhere.)
- Introduce a custom action that stops and uninstalls the service 
  if the user installed one that points into the MySQL directory
  that is being removed.
  (Our own packages historically used the instance configuration wizard
  for this, but it wouldn't be very nice if MSIs created by our users
  couldn't remove it too.)
- Make install location configurable again ("Browse" button in custom
  installation was greyed out before).
- Remove registry keys that use "MySQL AB"; they should only be set in 
  packages provided by us. Users can set their own registry keys if
  they want to.
2010-04-30 13:30:32 +02:00
Daniel Fischer
d60efe5820 Changes to MSI installer:
- Introduce MANUFACTURER setting to set package manufacturer via CMake.
- Introduce COMMUNITY_BUILD setting to be passed on to packaging
  (not used here, but required for our own packages to determine what
   added files should be included in the package).
- Create an RTF version of the COPYING text file and use that as the
  default license (can be overridden by providing a COPYING.rtf file).
- Allow passing extra arguments to candle and light via environment.
  (Need -sval in pushbuild, but want validation elsewhere.)
- Introduce a custom action that stops and uninstalls the service 
  if the user installed one that points into the MySQL directory
  that is being removed.
  (Our own packages historically used the instance configuration wizard
  for this, but it wouldn't be very nice if MSIs created by our users
  couldn't remove it too.)
- Make install location configurable again ("Browse" button in custom
  installation was greyed out before).
- Remove registry keys that use "MySQL AB"; they should only be set in 
  packages provided by us. Users can set their own registry keys if
  they want to.
2010-04-30 13:30:32 +02:00
Daniel Fischer
b83e1c8686 Merge 2010-04-21 14:58:09 +02:00
Daniel Fischer
50edf454b1 Merge 2010-04-21 14:58:09 +02:00
Sergei Golubchik
3b03f5d97e fixes for windows builds 2010-04-02 11:20:09 +02:00
unknown
20739646d7 Maria WL#61
Interface for maria extensions.
  Alternative plugin interface with additional info (maturity and string version).

CMakeLists.txt:
  Maria plugin interface used.
config/ac-macros/plugins.m4:
  Maria plugin interface used.
configure.in:
  Maria plugin interface used.
include/mysql/plugin.h:
  Maria plugin interface added.
include/mysql/plugin_auth.h.pp:
  Maria plugin interface added.
plugin/auth/auth_socket.c:
  Maria plugin interface added.
plugin/auth/dialog.c:
  Maria plugin interface added.
plugin/daemon_example/daemon_example.cc:
  Maria plugin interface added.
plugin/fulltext/plugin_example.c:
  Maria plugin interface added.
sql/ha_ndbcluster.cc:
  Maria plugin interface added.
sql/ha_partition.cc:
  Maria plugin interface added.
sql/log.cc:
  Maria plugin interface added.
sql/sql_acl.cc:
  Maria plugin interface added.
sql/sql_builtin.cc.in:
  Maria plugin interface used.
sql/sql_plugin.cc:
  Maria plugin interface added.
sql/sql_plugin.h:
  Maria plugin interface used.
sql/sql_show.cc:
  Maria plugin interface added.
storage/archive/ha_archive.cc:
  Maria plugin interface added.
storage/blackhole/ha_blackhole.cc:
  Maria plugin interface added.
storage/csv/ha_tina.cc:
  Maria plugin interface added.
storage/example/ha_example.cc:
  Maria plugin interface added.
storage/federated/ha_federated.cc:
  Maria plugin interface added.
storage/federatedx/ha_federatedx.cc:
  Maria plugin interface added.
storage/heap/ha_heap.cc:
  Maria plugin interface added.
storage/ibmdb2i/ha_ibmdb2i.cc:
  Maria plugin interface added.
storage/innobase/handler/ha_innodb.cc:
  Maria plugin interface added.
storage/innodb_plugin/handler/i_s.cc:
  Maria plugin interface added.
storage/maria/ha_maria.cc:
  Maria plugin interface added.
storage/myisam/ha_myisam.cc:
  Maria plugin interface added.
storage/myisammrg/ha_myisammrg.cc:
  Maria plugin interface added.
storage/pbxt/src/ha_pbxt.cc:
  Maria plugin interface added.
storage/xtradb/handler/ha_innodb.cc:
  Maria plugin interface added.
storage/xtradb/handler/i_s.cc:
  Maria plugin interface added.
storage/xtradb/handler/i_s.h:
  Maria plugin interface added.
2010-04-01 17:34:51 +03:00
Jonathan Perkin
f3ebc19a33 Try to fix datadir 2010-04-01 13:35:16 +02:00
Jonathan Perkin
f037ad4fbf Try to fix datadir 2010-04-01 13:35:16 +02:00
Jonathan Perkin
42f3842ef8 Expand INSTALL_INFODIR correctly.
Make mysql.info optional.
2010-03-25 15:04:39 +01:00
Jonathan Perkin
48f61d94f7 Expand INSTALL_INFODIR correctly.
Make mysql.info optional.
2010-03-25 15:04:39 +01:00
Jonathan Perkin
b462a3e0b3 Don't install documentation when INSTALL_LAYOUT=RPM, as the spec file
prefers to take docs directly from the source tree.
2010-03-25 13:16:13 +01:00
Jonathan Perkin
127bdb6eda Don't install documentation when INSTALL_LAYOUT=RPM, as the spec file
prefers to take docs directly from the source tree.
2010-03-25 13:16:13 +01:00
Jonathan Perkin
651aeb62ec Add INSTALL_INFODIR and use it to install mysql.info into the
correct location.
2010-03-25 11:43:11 +01:00
Jonathan Perkin
5fd878c3f0 Add INSTALL_INFODIR and use it to install mysql.info into the
correct location.
2010-03-25 11:43:11 +01:00
Vladislav Vaintroub
40e12231fe Fix WITH_DEBUG problems in CMake build, so people who use configure wrappers do not
suffer. The problem was that when custom C flags were defined with in environment 
variable CFLAGS, WITH_DEBUG did not have any effect. Also, switch from 
WITH_DEBUG=ON to WITH_DEBUG=OFF   was not handled correctly .Expected is switch 
to with RelwithDebInfo or when custom compiler flags  are defined, to None.
2010-03-02 01:53:15 +01:00
Vladislav Vaintroub
e1384dc718 Fix WITH_DEBUG problems in CMake build, so people who use configure wrappers do not
suffer. The problem was that when custom C flags were defined with in environment 
variable CFLAGS, WITH_DEBUG did not have any effect. Also, switch from 
WITH_DEBUG=ON to WITH_DEBUG=OFF   was not handled correctly .Expected is switch 
to with RelwithDebInfo or when custom compiler flags  are defined, to None.
2010-03-02 01:53:15 +01:00
Jonathan Perkin
46b22d5e5d Some CMake packaging fixes:
- Remove INSTALL-BINARY from installed docs directory, we provide a copy
   in the root directory (but perhaps this should be revisited later).

 - Disable audit_null and daemon_example plugins.

 - Fix the docs directory.

 - Remove mysql-test/Makefile.in

 - Build and install mysql_tzinfo_to_sql

 - Remove share/charsets/languages.html
2010-02-24 19:19:24 +00:00
Jonathan Perkin
26e77e0027 Some CMake packaging fixes:
- Remove INSTALL-BINARY from installed docs directory, we provide a copy
   in the root directory (but perhaps this should be revisited later).

 - Disable audit_null and daemon_example plugins.

 - Fix the docs directory.

 - Remove mysql-test/Makefile.in

 - Build and install mysql_tzinfo_to_sql

 - Remove share/charsets/languages.html
2010-02-24 19:19:24 +00:00
Jonathan Perkin
704d09691c Support non-GPL builds. 2010-02-23 09:53:48 +00:00
Jonathan Perkin
b0a89a2ee5 Support non-GPL builds. 2010-02-23 09:53:48 +00:00
Vladislav Vaintroub
df64a94118 When installing, exclude some documents in Docs 2010-02-19 17:51:53 +01:00
Vladislav Vaintroub
541cf19c5c When installing, exclude some documents in Docs 2010-02-19 17:51:53 +01:00
Sergei Golubchik
2ceaffc467 mwl:98 - libservices 2010-03-03 15:44:14 +01:00
Vladislav Vaintroub
f68e8aa860 Fix a couple fo things replated to MSI 2010-02-16 16:06:57 +01:00
Vladislav Vaintroub
7e01172ce3 Fix a couple fo things replated to MSI 2010-02-16 16:06:57 +01:00
Vladislav Vaintroub
3bd236fefb Add components to INSTALL, some eraly Wix support 2010-02-10 20:23:24 +01:00
Vladislav Vaintroub
890c52d889 Add components to INSTALL, some eraly Wix support 2010-02-10 20:23:24 +01:00
vvaintroub
aa134fdf99 Move WITH_UNITTESTS option up - otherwise it skips plugin unittests 2010-01-28 14:33:44 +01:00
vvaintroub
051f769dc5 Move WITH_UNITTESTS option up - otherwise it skips plugin unittests 2010-01-28 14:33:44 +01:00
Vladislav Vaintroub
a8c47397fc WL#5161: Implement Mats' suggestion of moving OS specific CMake code to OS specific files, instead of
polluting code with IF(CMAKE_SYSTEM_NAME MATCHES...), first on Windows.

cmake/libutils.cmake:
  Fix the case in MERGE_LIBRARIES, where  there is no dependency on OS libraries.
cmake/os/Windows.cmake:
  Move windows specific code to cmake/os/Windows.cmake
configure.cmake:
  Move some Windows code to cmake/os/Windows.cmake
2010-01-26 13:47:34 +01:00
Vladislav Vaintroub
19a2c052a5 WL#5161: Implement Mats' suggestion of moving OS specific CMake code to OS specific files, instead of
polluting code with IF(CMAKE_SYSTEM_NAME MATCHES...), first on Windows.
2010-01-26 13:47:34 +01:00
Vladislav Vaintroub
4fe79c7d58 Following autotools tradition, add preprocessor definitions specified in environment variable CPPFLAGS 2010-01-24 21:03:21 +01:00
Vladislav Vaintroub
03fcdd0194 Following autotools tradition, add preprocessor definitions specified in environment variable CPPFLAGS 2010-01-24 21:03:21 +01:00
Vladislav Vaintroub
c514d75ebb Handle different installation layouts.
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)
2010-01-24 16:23:16 +01:00
Vladislav Vaintroub
c827968a2d Handle different installation layouts.
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)
2010-01-24 16:23:16 +01:00
Vladislav Vaintroub
4acc380f15 restore lost -g when WITH_DEBUG was specified 2010-01-21 12:37:22 +00:00
Vladislav Vaintroub
50d844d24a restore lost -g when WITH_DEBUG was specified 2010-01-21 12:37:22 +00:00
Vladislav Vaintroub
a71e4cf18e - another take on BUILD_CONFIG variable - use OPTION instead of SET for
boolean variables to ensure option is in cache. Also use documented CMAKE_USE_MAKE_RULES_OVERRIDE feature instead of INCLUDE.

- remove superfluous tests in innobase's CMakeLists.txt
2010-01-20 00:52:21 +01:00
Vladislav Vaintroub
df2d0359d8 - another take on BUILD_CONFIG variable - use OPTION instead of SET for
boolean variables to ensure option is in cache. Also use documented CMAKE_USE_MAKE_RULES_OVERRIDE feature instead of INCLUDE.

- remove superfluous tests in innobase's CMakeLists.txt
2010-01-20 00:52:21 +01:00
Vladislav Vaintroub
5d61e31d4d Fix end-of-line characters in mysql_release.cmake to be unix-conform
make -DBUILD_CONFIG=mysql_release work
2010-01-19 02:21:48 +00:00
Vladislav Vaintroub
7d1d78e574 Fix end-of-line characters in mysql_release.cmake to be unix-conform
make -DBUILD_CONFIG=mysql_release work
2010-01-19 02:21:48 +00:00
Vladislav Vaintroub
f3460b2132 Add WITH_FAST_MUTEXES option (non-debug configurations only) 2010-01-13 13:33:32 +01:00
Vladislav Vaintroub
7e7965aeb4 Add WITH_FAST_MUTEXES option (non-debug configurations only) 2010-01-13 13:33:32 +01:00
Vladislav Vaintroub
4c872d51f6 Add option for specifying MYSQL build configurations.
Add mysql_release.cmake intended for use by the build team (
compile options, build settings to do MySQL releases)
2010-01-11 14:42:07 +01:00
Vladislav Vaintroub
125cd58f2b Add option for specifying MYSQL build configurations.
Add mysql_release.cmake intended for use by the build team (
compile options, build settings to do MySQL releases)
2010-01-11 14:42:07 +01:00
Vladislav Vaintroub
59e6fa7db1 Install docs 2010-01-09 01:16:07 +01:00
Vladislav Vaintroub
36549c4fa2 Install docs 2010-01-09 01:16:07 +01:00
Vladislav Vaintroub
27c0d595e9 Simplify embedding version info into executables with ADD_VERSION_INFO 2009-12-18 23:53:30 +01:00
Vladislav Vaintroub
54c5a4beef Simplify embedding version info into executables with ADD_VERSION_INFO 2009-12-18 23:53:30 +01:00
Vladislav Vaintroub
eb3c44030b Replace ADD_EXECUTABLE with MYSQL_ADD_EXECUTABLE for binaries that are installed.
MYSQL_ADD_EXECUTABLE  will instructs CPack where to install the exe. On Windows, it also 
adds version resource and   if -DSIGNCODE  was given, will sign the exe in packaging step.
2009-12-17 14:41:50 +01:00
Vladislav Vaintroub
555d46ea7f Replace ADD_EXECUTABLE with MYSQL_ADD_EXECUTABLE for binaries that are installed.
MYSQL_ADD_EXECUTABLE  will instructs CPack where to install the exe. On Windows, it also 
adds version resource and   if -DSIGNCODE  was given, will sign the exe in packaging step.
2009-12-17 14:41:50 +01:00
Kent Boortz
794e206347 Define _WIN32_WINNT to the minimum supported Windows version, 0x0500 i.e
Windows 2000.
      
      Visual Studio 2003 and 2005 require
        _WIN32_WINNT >= 0x0500 (Win2000)  for TryEnterCriticalSection.
2009-12-11 19:11:49 +01:00
Kent Boortz
98f738b198 Define _WIN32_WINNT to the minimum supported Windows version, 0x0500 i.e
Windows 2000.
      
      Visual Studio 2003 and 2005 require
        _WIN32_WINNT >= 0x0500 (Win2000)  for TryEnterCriticalSection.
2009-12-11 19:11:49 +01:00
Vladislav Vaintroub
1ec457961d remove inadverent change 2009-12-10 15:01:39 +01:00
Vladislav Vaintroub
baf588a26f remove inadverent change 2009-12-10 15:01:39 +01:00
Vladislav Vaintroub
ef4685eccf fix install_symlink on unixes other than osx 2009-12-10 03:48:21 +01:00
Vladislav Vaintroub
ddfdb1b1d1 fix install_symlink on unixes other than osx 2009-12-10 03:48:21 +01:00
Vladislav Vaintroub
3dabe24884 simplify some tests, silence warning in script install 2009-12-07 22:01:03 +01:00
Vladislav Vaintroub
9b31158e3c simplify some tests, silence warning in script install 2009-12-07 22:01:03 +01:00
Vladislav Vaintroub
d2139f3135 - Introduce MYSQL_ADD_PLUGIN that replaces MYSQL_STORAGE_ENGINE
- Fix semisync library prefix (remove lib on Unixes)
- restrict exported symbols from zlib and yassl (fvisibility=hidden)
2009-12-01 12:00:50 +01:00
Vladislav Vaintroub
5dfa313eb7 - Introduce MYSQL_ADD_PLUGIN that replaces MYSQL_STORAGE_ENGINE
- Fix semisync library prefix (remove lib on Unixes)
- restrict exported symbols from zlib and yassl (fvisibility=hidden)
2009-12-01 12:00:50 +01:00
Vladislav Vaintroub
20438eadb4 - move ADD_SUBDIRECTORY(extra) outside of WITHOUT_SERVER
- add INSTALL to shared client library
2009-11-25 07:28:45 +01:00
Vladislav Vaintroub
ff57321f8c - move ADD_SUBDIRECTORY(extra) outside of WITHOUT_SERVER
- add INSTALL to shared client library
2009-11-25 07:28:45 +01:00
Vladislav Vaintroub
39a158221d add --disable-shared equivalent
fix mtr (empty argument passed to mysqld)
2009-11-25 05:13:51 +01:00
Vladislav Vaintroub
2f3e777797 add --disable-shared equivalent
fix mtr (empty argument passed to mysqld)
2009-11-25 05:13:51 +01:00
Vladislav Vaintroub
7377c50cb4 implement convenience libraries 2009-11-24 23:15:47 +00:00
Vladislav Vaintroub
afe4ee1e17 implement convenience libraries 2009-11-24 23:15:47 +00:00
unknown
a962160eec Merge with MySQL 5.1, with following additions:
- Moved some code from innodb_plugin to xtradb, to ensure that all tests runs
- Did changes in pbxt and maria storage engines becasue of changes in thd->query
- Reverted wrong code in sql_table.cc for how ROW_FORMAT is used.

This is a re-commit of Monty's merge to eliminate an extra commit from
MySQL-5.1.42 that was accidentally included in the merge.

This is a merge of the MySQL 5.1.41 clone-off (clone-5.1.41-build). In
case there are any extra changes done before final MySQL 5.1.41
release, these will need to be merged later before MariaDB 5.1.41
release.
2009-11-16 21:49:51 +01:00
Vladislav Vaintroub
20b785c0fb fix make install/ mysqld_safe 2009-11-14 14:29:14 +01:00
Vladislav Vaintroub
9edb94c69e fix make install/ mysqld_safe 2009-11-14 14:29:14 +01:00
Vladislav Vaintroub
bc76ad8f6b WL#5161 : Cross-platform build with CMake
BUILD-CMAKE:
  WL#5161 : Documentation on how to build with CMake on Unix/Windows
BUILD/Makefile.am:
  Add new file
BUILD/autorun.sh:
  WL#5161 : use choose_configure instead of autotools configure script
  (choose configure will call cmake if cmake is available)
BUILD/choose_configure.sh:
  WL#5161 : use choose_configure instead of autotools configure script
  (choose configure will call cmake if cmake is available)
CMakeLists.txt:
  WL#5161 : Rewrite top-level CMakeLists.txt. 
  Remove  Windows specifics
  - compiler flags handling moved to configure.cmake
  - storage engine/plugin stuff moved into cmake/plugin.cmake
  - copy docs
Makefile.am:
  Added new files
client/CMakeLists.txt:
  WL#5161 : Rewrite CMakeLists.txt to be platform-independent
  Handle packagng (add INSTALL commands)
cmake/Makefile.am:
  WL#5161 : use choose_configure instead of autotools configure script
  (choose configure will call cmake if cmake is available)
cmake/abi_check.cmake:
  Custom targets for abi_check (for cmake)
cmake/bison.cmake:
  - Check bison availability
  - Add RUN_BISON macro (used to create sql_yacc.cc and sql_yacc.h)
cmake/cat.cmake:
  Add helper script to concatenate files.
cmake/character_sets.cmake:
  Handle configuration parameters WITH_EXTRA_CHARSETS
cmake/check_minimal_version.cmake:
  Helper script to check the minimum required version of cmake
cmake/configure.pl:
  Add perl script to convert ./configure parameters for cmake
cmake/create_initial_db.cmake.in:
  Add script helper to create initial database. 
  (on Windows, we pack initial db with the redistribution
  package)
cmake/do_abi_check.cmake:
  Perform abi check
cmake/dtrace.cmake:
  Handle dtrace in CMake Build.
  Check for dtrace availablility,
  run dtrace -G on solaris in prelink step
cmake/dtrace_prelink.cmake:
  Run dtrace -G on Solaris in pre-link step,
  link the object it creates together with library or
  executable
cmake/install_macros.cmake:
  Helper macros for packaging
  (install pdb on Windows, install symlinks on Unix)
cmake/make_dist.cmake.in:
  "make dist" - 
  - pack autotools ./configure script with the source
  (renamed to configure.am)
  - pack bison output
cmake/merge_archives_unix.cmake.in:
  script to merge static libraries on Unix
cmake/misc.cmake:
  Build helper macros
  - MERGE_STATIC_LIBS 
  We use it when building client library and embedded
  (avoid recompilation)
  
  - Convert source file paths to absolute names.
  We use it in  to locate files of a different project,
  when the files need to be recompiled (e.g in embedded
  several storage engines are recompiled with 
  -DEMBEDDED_LIBRARY)
cmake/mysql_version.cmake:
  Extract version info from configure.in
  Handle package names.
cmake/plugin.cmake:
  Rewrote storage/mysql_storage_engine.cmake to handle 
  other types of plugins and do it in OS-independent manner.
cmake/readline.cmake:
  Macros to handle WITH_READLINE/WITH_LIBEDIT parameters
cmake/ssl.cmake:
  Add macros to handle WITH_SSL parameter.
cmake/stack_direction.c:
  Helper to check stack direction.
cmake/zlib.cmake:
  Add macros to handle WITH_ZLIB parameter
cmd-line-utils/libedit/CMakeLists.txt:
  Build libedit with cmake.
cmd-line-utils/libedit/Makefile.am:
  Add new file
cmd-line-utils/readline/CMakeLists.txt:
  Build readline with CMake.
cmd-line-utils/readline/Makefile.am:
  Add new file
config.h.cmake:
  WL#5161 : Add config.h template for cmake
configure.cmake:
  WL#5161 : Add platform tests ( for cmake)
configure.in:
  Added new subdirectories
dbug/CMakeLists.txt:
  WL#5161
extra/CMakeLists.txt:
  WL#5161
extra/yassl/CMakeLists.txt:
  WL#5161
extra/yassl/taocrypt/CMakeLists.txt:
  WL#5161
include/Makefile.am:
  Add new file
include/keycache.h:
  remove configure-win.h and remove HUGE_PTR defined there.
include/my_global.h:
  use my_config.h for Windows, not config-win.h anymore
include/my_pthread.h:
  - Move thread_safe_increment from config-win.h to other headers
  (config-win.h is not used anymore)
  - Declare pthread_cancel on Windows (it is used in daemon_example)
include/my_sys.h:
  Add malloc.h on Windows (we use -D_WIN32_LEAN_AND_MEAN now, and 
  with this define malloc.h is not included automatically via windows.h)
include/mysql/plugin.h:
  Handle pure-C plugins with Microsoft compiler.
include/thr_alarm.h:
  remove rf_SetTimer that used to be defined in config-win.h
  Replace with UINT_PTR (we do not use config-win.h anymore
  and typedef was needed in this single place only)
libmysql/CMakeLists.txt:
  Avoid pointless recompilation of source files 
  in client library if possible. Merge static 
  libs (dbug, mysys) to create static client 
  library.
libmysqld/CMakeLists.txt:
  Avoid pointless recompilation of source files 
  when building embedded. Instead, merge dbug and 
  mysys (and some other static libs) into embedded.
libmysqld/examples/CMakeLists.txt:
  Embedded compilation on Unix
libmysqld/lib_sql.cc:
  Do not define THD::clear_error() in lib_sql.cc
  for embedded. Instead, use the same inline 
  definition from sql_class.h as in none-embedded 
  case (fixes duplicate symbol errors on Windows
  and removes pointless #ifdef EMBEDDED)
man/CMakeLists.txt:
  Install man files.
man/Makefile.am:
  Add new file.
mysql-test/CMakeLists.txt:
  Install mysql-test files
mysql-test/Makefile.am:
  Add new files
mysql-test/lib/My/ConfigFactory.pm:
  Allow testing with mtr in out-of-source builds.
mysql-test/lib/My/Find.pm:
  the build configurations are now also available on Unix
  Xcode on Mac uses the Release, RelwithDebinfo and Debug 
  subdirectories for executables. Earlier, build configurations 
  were available only on Windows.
mysql-test/lib/My/SafeProcess.pm:
  Allow testing with mtr in out-of-source builds.
mysql-test/lib/My/SafeProcess/CMakeLists.txt:
  Port CMakeLists.txt to Unix
mysql-test/lib/My/SafeProcess/safe_kill_win.cc:
  add stdlib.h (to be able to compile with -DWIN32_LEAN_AND_MEAN)
mysql-test/lib/My/SafeProcess/safe_process_win.cc:
  Add stdlib.h (to be able to compile with -DWIN32_LEAN_AND_MEAN)
  define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE if not defined 
  (can happen using MinGW compiler that comes with old SDK)
mysql-test/mtr.out-of-source:
  Allow testing with mtr in out-of-source builds.
mysql-test/mysql-test-run.pl:
  Allow testing with mtr in out-of-source builds.
  Use common find_plugin macro for Windows and unix.
mysql-test/t/fulltext_plugin.test:
  This test can now run on Windows as well.
mysys/CMakeLists.txt:
  Port CMakeLists.txt to Unix
mysys/my_create.c:
  config-win.h is dead => NO_OPEN_3 is never defined.
mysys/my_getsystime.c:
  config-win.h is dead => define OFFSET_TO_EPOCH where it is used.
mysys/my_winthread.c:
  Add  win32 pthread_cancel - used by daemon_example
mysys/mysys_priv.h:
  config-win.h is dead => include <sys/stat.h> where it is used
  fix prototype of my_win_(f)stat
plugin/daemon_example/CMakeLists.txt:
  Compile daemon_example with CMake
plugin/daemon_example/Makefile.am:
  Add new file
plugin/fulltext/CMakeLists.txt:
  Compile full-text example with CMake
plugin/fulltext/Makefile.am:
  Add new file.
plugin/semisync/CMakeLists.txt:
  Fix semisync to use common  macro for plugins.
regex/CMakeLists.txt:
  Use absolute filenames, when adding regex library 
  (we recompile files in embedded, and want to locate 
  sources via GET_TARGET_PROPERTY( ... SOURCES ..))
regex/regex2.h:
  Remove pointless typedef (produces error with MinGW compiler)
scripts/CMakeLists.txt:
  Add configure/install for scripts
sql-bench/CMakeLists.txt:
  install sql-bench files
sql-bench/Makefile.am:
  Add new file
sql/CMakeLists.txt:
  Port CmakeLists.txt to Unix
sql/nt_servc.cc:
  compile server with -DWIN32_LEAN_AND_MEAN
sql/share/CMakeLists.txt:
  Install charsets
sql/share/Makefile.am:
  Add new file
sql/sql_builtin.cc.in:
  Handle pure-C plugins on Windows.
sql/sql_class.h:
  Use the same clear_error macro in embedded and not embedded.
  Fixes pointless #ifdef and avoids duplicate symbols when linking
  on Windows.
storage/Makefile.am:
  storage/mysql_storage_engine.cmake => cmake/plugin.cmake
storage/archive/CMakeLists.txt:
  Add names for static and dynamic plugin libraries.
  Link archive with zlib
storage/blackhole/CMakeLists.txt:
  Add names for static and dynamic storage 
  engine libraries
storage/csv/CMakeLists.txt:
  Add names for static and dynamic storage engine
  libraries
storage/example/CMakeLists.txt:
  Add names for static and dynamic storage engine 
  libraries
storage/federated/CMakeLists.txt:
  Add names for static and dynamic storage engine 
  libraries
storage/heap/CMakeLists.txt:
  Add names for static and dynamic storage engine 
  libraries
storage/ibmdb2i/CMakeLists.txt:
  Better port for ibmdb2i plugin
storage/innobase/CMakeLists.txt:
  Run system checks.
  
  Add names for static and dynamic storage engine 
  libraries.
storage/innobase/include/page0page.ic:
  Fix compile error on OpenSolaris.
storage/myisam/CMakeLists.txt:
  Port CmakeLists.txt to Unix
storage/myisammrg/CMakeLists.txt:
  Add names for static and dynamic storage engine 
  libraries
storage/mysql_storage_engine.cmake:
  storage/mysql_storage_engine.cmake => cmake/plugin.cmake
support-files/CMakeLists.txt:
  Configure and install some files from support-files.
support-files/Makefile.am:
  Add new file
tests/CMakeLists.txt:
  In general case, mysqlclient library can be dependent
  on C++ runtime(if it includes yassl and is not compiled
  with gcc or MSVC)
unittest/mysys/CMakeLists.txt:
  Add unit tests
unittest/mysys/Makefile.am:
  Add new file
unittest/mytap/CMakeLists.txt:
  Add library for unit tests
unittest/mytap/Makefile.am:
  Add new file
unittest/mytap/tap.c:
  fix function definitions to match declarations
win/create_def_file.js:
  Fix link error with intel compiler (icl 
  defines of special label for exception handler)
2009-11-09 12:32:48 +01:00
Vladislav Vaintroub
13cd7170cc WL#5161 : Cross-platform build with CMake 2009-11-09 12:32:48 +01:00
Sergei Golubchik
3d23068f3a WL#4903 Plugin Service API part I
(mysql-next-mr backport)
2009-11-02 21:05:42 +01:00
Sergei Golubchik
d101d144df WL#4903 Plugin Service API part I
(mysql-next-mr backport)
2009-11-02 21:05:42 +01:00
Luis Soares
7d970f8285 automerge: mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge. 2009-10-25 22:58:52 +00:00
Luis Soares
78172f9e21 automerge: mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge. 2009-10-25 22:58:52 +00:00
He Zhenxing
e9acb9f021 Add semi-sync support for Windows
CMakeLists.txt:
  Add plugin/semisync subdirectory
mysql-test/mysql-test-run.pl:
  Check for semisync dll for Windows
mysql-test/suite/rpl/r/rpl_semi_sync.result:
  Update result file
mysql-test/suite/rpl/t/rpl_semi_sync.test:
  Test semi-sync on Windows
plugin/semisync/semisync_master.cc:
  Define gettimeofday for Windows
2009-10-23 12:56:30 +08:00
He Zhenxing
b6529a140b Add semi-sync support for Windows 2009-10-23 12:56:30 +08:00
Alexander Nozdrin
bd60794fd8 Merge from mysql-trunk-merge. 2009-10-19 17:36:19 +04:00
Alexander Nozdrin
3fd2f50b6c Merge from mysql-trunk-merge. 2009-10-19 17:36:19 +04:00
Alexander Nozdrin
3251065aef Merge from mysql-5.1. 2009-10-19 17:17:08 +04:00
Alexander Nozdrin
f3457a73d6 Merge from mysql-5.1. 2009-10-19 17:17:08 +04:00
Alexander Nozdrin
c30d924dd5 Manual merge from mysql-trunk-merge. 2009-10-14 12:25:39 +04:00
Alexander Nozdrin
ca08f10ccd Manual merge from mysql-trunk-merge. 2009-10-14 12:25:39 +04:00
Alexander Nozdrin
c69629d269 Merge from mysql-5.1. 2009-10-13 13:42:38 +04:00
Alexander Nozdrin
0f51423532 Merge from mysql-5.1. 2009-10-13 13:42:38 +04:00
Magnus Blåudd
28bdd6e69d Bug #47795 CMake, storage engine name different from directory name
- Read plug.in to fid the name of the engine to link with, does not have
   to be same as engine dir
 - Use engine dir when figuring out which libraries to build limbysqld with
2009-10-08 15:19:24 +02:00
Magnus Blåudd
b92892dc9c Bug #47795 CMake, storage engine name different from directory name
- Read plug.in to fid the name of the engine to link with, does not have
   to be same as engine dir
 - Use engine dir when figuring out which libraries to build limbysqld with
2009-10-08 15:19:24 +02:00
Sergey Petrunya
d1ad1bdc0f Fix embedded build on Windows: contents of storage/xtradb think they are
'innobase'.
2009-10-03 23:24:13 +04:00
Vladislav Vaintroub
4acaca0202 backport of
Revision: 
2597.72.1 revid:sp1r-Reggie@core.-20080403153947-15243
removed instances of __NT__ from code. We now only build "NT" binaries
2009-09-30 22:10:22 +02:00
Vladislav Vaintroub
6e6b84fd02 backport of
Revision: 
2597.72.1 revid:sp1r-Reggie@core.-20080403153947-15243
removed instances of __NT__ from code. We now only build "NT" binaries
2009-09-30 22:10:22 +02:00
Vladislav Vaintroub
eaba74fee5 Backport http://lists.mysql.com/commits/57778
2677 Vladislav Vaintroub	2008-11-04
CMakeLists.txt files cleanup
- remove SAFEMALLOC and SAFE_MUTEX definitions that were 
present in *each* CMakeLists.txt. Instead, put them into top level 
CMakeLists.txt, but disable on Windows, because
a) SAFEMALLOC does not add any functionality that is not already
present in Debug C runtime ( and 2 safe malloc one on top of the other 
only unnecessarily slows down the server) 
      
b)SAFE_MUTEX does not work on Windows  and have been
explicitely  disabled on Windows with #undef previously.  Fortunately,
ntdll does  pretty good  job identifying l problems with 
CRITICAL_SECTIONs.
DebugBreak()s on using uninited critical section, unlocking unowned 
critical section)
      
-Also, remove occationally used -D_DEBUG (added by compiler 
anyway)


sql/udf_example.c:
  use unixish end of line
2009-09-30 15:35:01 +02:00
Vladislav Vaintroub
2801599323 Backport http://lists.mysql.com/commits/57778
2677 Vladislav Vaintroub	2008-11-04
CMakeLists.txt files cleanup
- remove SAFEMALLOC and SAFE_MUTEX definitions that were 
present in *each* CMakeLists.txt. Instead, put them into top level 
CMakeLists.txt, but disable on Windows, because
a) SAFEMALLOC does not add any functionality that is not already
present in Debug C runtime ( and 2 safe malloc one on top of the other 
only unnecessarily slows down the server) 
      
b)SAFE_MUTEX does not work on Windows  and have been
explicitely  disabled on Windows with #undef previously.  Fortunately,
ntdll does  pretty good  job identifying l problems with 
CRITICAL_SECTIONs.
DebugBreak()s on using uninited critical section, unlocking unowned 
critical section)
      
-Also, remove occationally used -D_DEBUG (added by compiler 
anyway)
2009-09-30 15:35:01 +02:00
Ingo Struewing
4d57b851a0 WL#4259 - Debug Sync Facility
Backport from 6.0 to 5.1.
Only those sync points are included, which are used in debug_sync.test.

  The Debug Sync Facility allows to place synchronization points
  in the code:
  
  open_tables(...)
  
  DEBUG_SYNC(thd, "after_open_tables");
  
  lock_tables(...)
  
  When activated, a sync point can
  
  - Send a signal and/or
  - Wait for a signal
  
  Nomenclature:
  
  - signal:            A value of a global variable that persists
                       until overwritten by a new signal. The global
                       variable can also be seen as a "signal post"
                       or "flag mast". Then the signal is what is
                       attached to the "signal post" or "flag mast".
  
  - send a signal:     Assign the value (the signal) to the global
                       variable ("set a flag") and broadcast a
                       global condition to wake those waiting for
                       a signal.
  
  - wait for a signal: Loop over waiting for the global condition until
                       the global value matches the wait-for signal.
  
  Please find more information in the top comment in debug_sync.cc
  or in the worklog entry.


.bzrignore:
  WL#4259 - Debug Sync Facility
  Added the symbolic link libmysqld/debug_sync.cc.
CMakeLists.txt:
  WL#4259 - Debug Sync Facility
  Added definition for ENABLED_DEBUG_SYNC.
configure.in:
  WL#4259 - Debug Sync Facility
  Added definition for ENABLED_DEBUG_SYNC.
include/my_sys.h:
  WL#4259 - Debug Sync Facility
  Added definition for the DEBUG_SYNC_C macro.
libmysqld/CMakeLists.txt:
  WL#4259 - Debug Sync Facility
  Added sql/debug_sync.cc.
libmysqld/Makefile.am:
  WL#4259 - Debug Sync Facility
  Added sql/debug_sync.cc.
mysql-test/include/have_debug_sync.inc:
  WL#4259 - Debug Sync Facility
  New include file.
mysql-test/mysql-test-run.pl:
  WL#4259 - Debug Sync Facility
  Added option --debug_sync_timeout.
mysql-test/r/debug_sync.result:
  WL#4259 - Debug Sync Facility
  New test result.
mysql-test/r/have_debug_sync.require:
  WL#4259 - Debug Sync Facility
  New require file.
mysql-test/t/debug_sync.test:
  WL#4259 - Debug Sync Facility
  New test file.
mysys/my_static.c:
  WL#4259 - Debug Sync Facility
  Added definition for debug_sync_C_callback_ptr.
mysys/thr_lock.c:
  WL#4259 - Debug Sync Facility
  Added sync point "wait_for_lock".
sql/CMakeLists.txt:
  WL#4259 - Debug Sync Facility
  Added debug_sync.cc and debug_sync.h.
sql/Makefile.am:
  WL#4259 - Debug Sync Facility
  Added debug_sync.cc and debug_sync.h.
sql/debug_sync.cc:
  WL#4259 - Debug Sync Facility
  New source file.
sql/debug_sync.h:
  WL#4259 - Debug Sync Facility
  New header file.
sql/mysqld.cc:
  WL#4259 - Debug Sync Facility
  Added opt_debug_sync_timeout.
  Added calls to debug_sync_init() and debug_sync_end().
  Fixed a purecov comment (unrelated).
sql/set_var.cc:
  WL#4259 - Debug Sync Facility
  Added server variable "debug_sync".
sql/set_var.h:
  WL#4259 - Debug Sync Facility
  Added declaration for server variable "debug_sync".
sql/share/errmsg.txt:
  WL#4259 - Debug Sync Facility
  Added error messages ER_DEBUG_SYNC_TIMEOUT and ER_DEBUG_SYNC_HIT_LIMIT.
sql/sql_base.cc:
  WL#4259 - Debug Sync Facility
  Added sync points "after_flush_unlock" and "before_lock_tables_takes_lock".
sql/sql_class.cc:
  WL#4259 - Debug Sync Facility
  Added initialization for debug_sync_control to THD::THD.
  Added calls to debug_sync_init_thread() and debug_sync_end_thread().
sql/sql_class.h:
  WL#4259 - Debug Sync Facility
  Added element debug_sync_control to THD.
storage/myisam/myisamchk.c:
  Fixed a typo in an error message string (unrelated).
2009-09-29 17:38:40 +02:00
Ingo Struewing
21586dfb08 WL#4259 - Debug Sync Facility
Backport from 6.0 to 5.1.
Only those sync points are included, which are used in debug_sync.test.

  The Debug Sync Facility allows to place synchronization points
  in the code:
  
  open_tables(...)
  
  DEBUG_SYNC(thd, "after_open_tables");
  
  lock_tables(...)
  
  When activated, a sync point can
  
  - Send a signal and/or
  - Wait for a signal
  
  Nomenclature:
  
  - signal:            A value of a global variable that persists
                       until overwritten by a new signal. The global
                       variable can also be seen as a "signal post"
                       or "flag mast". Then the signal is what is
                       attached to the "signal post" or "flag mast".
  
  - send a signal:     Assign the value (the signal) to the global
                       variable ("set a flag") and broadcast a
                       global condition to wake those waiting for
                       a signal.
  
  - wait for a signal: Loop over waiting for the global condition until
                       the global value matches the wait-for signal.
  
  Please find more information in the top comment in debug_sync.cc
  or in the worklog entry.
2009-09-29 17:38:40 +02:00
Alexander Nozdrin
ede2edd19b Merge from mysql-5.1. 2009-09-19 13:07:51 +04:00
Alexander Nozdrin
eeec93f305 Merge from mysql-5.1. 2009-09-19 13:07:51 +04:00