Commit graph

371 commits

Author SHA1 Message Date
Kent Boortz
02e07e3b51 Updated/added copyright headers 2011-06-30 17:46:53 +02:00
Nirbhay Choubey
51721df03a Merge of fix for bug#11757855 from mysql-5.1 -> mysql-5.5. 2011-04-30 10:54:38 +05:30
Georgi Kodinov
c7b12ecc6e Backport of (part of) bug to 5.5.
Enabled the ABI check to run on MacOSX.
2011-04-28 13:13:36 +03:00
Sergei Golubchik
0accbd0364 lots of post-merge changes 2011-04-25 17:22:25 +02:00
Guilhem Bichot
fe1ec4a6e7 Fix for Bug#11892055 - "GCC COMPILER FLAG -WOVERLOADED-VIRTUAL NOT USED, WHICH LETS BUGS IN" 2011-04-26 11:18:29 +02:00
Magne Mahre
b71c5d51c6 Bug#11766320 MYSQL SYMBOLIC LINKS NOT WORKING
When MySQL converted from autotools to CMake, the
preprocessor symbol USE_SYMDIR was omitted by mistake.

Without this symbol, the code for checking .sym files
is not built.

This patch defines USE_SYMDIR when built on MS Windows.
2011-04-14 10:08:12 +02:00
Davi Arnaut
8aadfb4065 Remove some leftovers from the removal of the gethostbyname wrappers. 2011-04-13 16:05:26 -03:00
unknown
753c406994 Merge from mysql-5.5.10-release 2011-03-16 15:11:20 +01:00
MySQL Build Team
a471109971 Implementing Bug MySQL source tarballs should include generated spec file 2011-03-03 22:46:12 +01:00
Kent Boortz
fe12c639b1 The client shared library major version was changed to 18, to reflect
ABI changes (Bug#60061)

Bumping the version from 16 to 18, instead of 17, was done to avoid a
library conflict on Mac OS X between MySQL 5.1 and MySQL 5.5. In MySQL
5.1 GNU libtool was used, that made the ABI version used in the file
name to be 16, and the one stored inside the binary to be 17.

MySQL 5.5 uses CMake as a build tool, that will store the same ABI
number in the file name as inside the binary in Mac OS X, and then
bumping the ABI number two steps avoids a conflict on Mac OS X.
2011-02-17 19:36:19 +01:00
Joerg Bruehe
a7662cf0a9 Merge bug fix 42969 into main 5.5 branch. 2011-02-14 15:53:51 +01: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
Tor Didriksen
7f3decd9b2 Bug DEFAULT_CHARSET and DEFAULT_COLLATION does not work with CMake.
cmake/character_sets.cmake:
  Fix typo in variable name.
  Some cosmetics.
config.h.cmake:
  Do not use hard-coded defaults for charset and collation.
2011-01-04 11:23:45 +01:00
Tor Didriksen
029a5df870 Bug cannot build with gcc dbg on solaris
cmake/os/SunOS.cmake:
  Remove TARGET_OS_SOLARIS
config.h.cmake:
  Remove TARGET_OS_SOLARIS
  Add PTHREAD_ONCE_INITIALIZER
configure.cmake:
  Add function for testing whether we need { PTHREAD_ONCE_INIT } rather than PTHREAD_ONCE_INIT
include/my_pthread.h:
  Use PTHREAD_ONCE_INITIALIZER if set by cmake.
include/mysql/psi/mysql_file.h:
  Include my_global.h first, to get correct platform definitions.
mysys/ptr_cmp.c:
  Hide the unused static functions in #ifdef's on solaris.
  Use __sun (defined by both gcc and SunPro cc) rather than TARGET_OS_SOLARIS
sql/my_decimal.cc:
  Include my_global.h first, to get correct platform definitions.
sql/mysqld.cc:
  Fix signed/unsigned comparison warning.
sql/sql_audit.h:
  Include my_global.h first, to get correct platform definitions.
sql/sql_plugin.h:
  Include my_global.h first, to get correct platform definitions.
sql/sql_show.cc:
  Fix: warning: cast from pointer to integer of different size
sql/sys_vars.h:
  Use reinterpret_cast rather than c-style cast.
storage/perfschema/pfs_instr.cc:
  Include my_global.h first, to get correct platform definitions.
2010-12-21 13:00:26 +01:00
Alexander Nozdrin
3237e4908a Manual merge from mysql-5.5. 2010-12-16 21:43:21 +03:00
Georgi Kodinov
74e2520cd9 merge mysql-5.5->mysql-5.5-bugteam 2010-12-16 18:44:17 +02:00
Jonathan Perkin
5752c16ca9 bug#58955: Must -DBUILD_CONFIG=mysql_release require libaio on Linux
Allow users to build without aio if they really want to, by passing
-DIGNORE_AIO_CHECK to cmake.
2010-12-16 09:27:55 +00: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
Jonathan Perkin
5046dc160b bug#58766: Server binary was compiled without fast-mutexes
Re-enable fast mutexes on Linux for release builds.
2010-12-07 11:40:38 +00:00
Jonathan Perkin
9836927774 Fix the .deb package prefix. 2010-11-25 00:21:28 +00:00
Vladislav Vaintroub
199cb4b7b1 Post-fix for Bug#58158 on Solaris
Problem : The build might fail with 
make[2]: *** No rule to make target `../sql/z',
needed by `sql/mysqld_dtrace_all.o'.  Stop.
if one of plugins would depends on system libz 
library

Fix: Filter out non-static dependent libraries
when dtracing static libs
2010-11-25 00:20:36 +00:00
Tor Didriksen
20f94499fa Bug cmake should not write temporary files in the source directory
cmake/do_abi_check.cmake:
  Put temporary files in ${BINARY_DIR} rather than in source directory.
  Slight reformatting for readability of commands.
2010-11-23 10:26:26 +01:00
Magnus Blåudd
6ad007c7ad Merge 5.5-bug58158 into 5.5-bugteam 2010-11-24 11:49:10 +01:00
Magnus Blåudd
41cab32111 WL#5665: Removal of the autotools-based build system
- Make the cmake files depend on VERSION, causing
   cmake rerun when VERSION changes
2010-11-24 11:37:59 +01:00
Sunanda Menon
377c783e75 merge 2010-11-22 11:35:48 +01:00
Davi Arnaut
af67d8ae02 WL#5665: Removal of the autotools-based build system
Remove some more leftovers from the initial removal:

o Update relevant mentions of configure.in throughout
the source code.

o Remove win/configure.js, which at this point just
duplicates logic already present in CMake based build
system.

o Remove support files which relied on the autotools
build system. In any case, MySQL is no longer officially
supported on SCO.

o Remove files which are no longer part of the build.
2010-11-20 20:56:09 -02:00
Davi Arnaut
8664de2230 WL#5665: Removal of the autotools-based build system
The autotools-based build system has been superseded and
is being removed in order to ease the maintenance burden on
developers tweaking and maintaining the build system.

In order to support tools that need to extract the server
version, a new file that (only) contains the server version,
called VERSION, is introduced. The file contents are human
and machine-readable. The format is:

MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=5
MYSQL_VERSION_PATCH=8
MYSQL_VERSION_EXTRA=-rc

The CMake based version extraction in cmake/mysql_version.cmake
is changed to extract the version from this file. The configure
to CMake wrapper is retained for backwards compatibility and to
support the BUILD/ scripts. Also, a new a makefile target
show-dist-name that prints the server version is introduced.

VERSION:
  Add top-level version file.
cmake/mysql_version.cmake:
  Get version information from the top-level VERSION file.
  Do not cache the version components (MAJOR_VERSION, etc).
  Add MYSQL_RPM_VERSION as a replacement for MYSQL_U_SCORE_VERSION.
2010-11-20 12:47:50 -02:00
Vladislav Vaintroub
4180ba3d6e avoid useless system check on Windows 2010-11-20 00:56:07 +01:00
Vladislav Vaintroub
861971428b Bug#58313: CMake stops with VS Express if -DBUILD_CONFIG=mysql_release.cmake
Bug : -DBUILD_CONFIG=mysql_release sets SIGNCODE parameter which requires 
singtool.exe (part of Windows SDK)  in order to be able to sign the binaries (
only if valid certificate is found). However singtool is not a part of the SDK shipped
with Visual Studio Express, so the build fails claiming missing singtools.exe

Fix: Do not  use SIGNCODE  wiith VC Express.

Also, fix broken nmake build (*.rc files could not be compiled due to ADD_DEFINITIONS
contaning C/C++ compiler specific flags)
2010-11-20 00:20:18 +01:00
Sunanda Menon
92db6e9af9 Bug improve error message "aio is required on Linux" 2010-11-19 10:34:22 +01: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
Magnus Blåudd
31e30ee326 Bug#58158 LINK_LIBRARIES for MYSQL_ADD_PLUGIN is not added to libmysqld
- Add ARG_LINK_LIBRARIES to MYSQLD_STATIC_PLUGIN_LIBS in
    MYSQL_ADD_PLUGIN so that any libraries listed by the plugin is
    added to libmysqld
  - remove the variables NDB_CLIENT_LIBS and NDB_CLUSTER_INCLUDES
    from libmysqld/CMakeLists.txt since those are just old remnants
2010-11-16 10:05:54 +01:00
Vladislav Vaintroub
f0c2b9c5c6 add missing COMPONENT to all CMake INSTALL commands 2010-11-13 23:16:52 +01:00
Vladislav Vaintroub
36fffdeaa2 Bug#58074: ADD_VERSION_INFO cmake/mysql_version.cmake fails if LINK_FLAGS are modified
Backport version info handling  (Windows-specific) from next-mr. 
Instead of adding ".res" object as linker flag, add  resource file (.rc) file to the source list.
This is more obvious and less error prone method.
2010-11-12 13:42:50 +01:00
Vladislav Vaintroub
e1837cc0d8 Bug CMake configure wrapper does not handle
--with-comment correctly
      
Properly convert --with-comment
do not uppercase it, quote as it might contain spaces.
2010-11-12 02:33:19 +01:00
Vladislav Vaintroub
2e2f3b1fc1 Fix typo : SVR5=>SVR4 2010-11-10 20:10:04 +01:00
Joerg Bruehe
6f01f9c5ac Fix cmake's version string handling (change proposed by Jonathan Perkin).
Before this, a text suffix (like "-rc") after the numeric version was needed.
2010-11-02 19:52:56 +01:00
Davi Arnaut
9129cb184b GCC's link option only take a single hyphen. 2010-10-20 19:25:28 -02:00
Jonathan Perkin
50ca4bc155 Fix typo, allow SVR4 packages to be built again. 2010-10-14 16:57:16 +01:00
Davi Arnaut
215e967ace Use a guard macro to prevent the inclusion of system headers
when checking the ABI with the C Preprocessor. Also, add the
new hearders to the cmake based ABI check.

cmake/abi_check.cmake:
  Add headers which were added to the autotools ABI check.
  Remove trailing spaces.
include/mysql/client_plugin.h:
  Guard the inclusion of system headers.
2010-10-13 12:11:29 -03:00
Vladislav Vaintroub
10bc97de5c Do not accept invalid INSTALL_LAYOUT parameter 2010-10-11 19:44:35 +02:00
Davi Arnaut
c192be206a Bug#42733: Type-punning warnings when compiling MySQL -- strict aliasing violations.
Due to the extent of aliasing violations in the MySQL source
code, at this time it is safer to disable strict aliasing related
optimizations in release builds.

As of this patch, only GCC enables strict aliasing by default.
Hence, use the -fno-strict-aliasing option to disable the
aliasing rules.

cmake/build_configurations/mysql_release.cmake:
  Add -fno-strict-aliasing to release builds.
2010-10-08 10:30:58 -03:00
Vladislav Vaintroub
a1fe23668f Fix compile error on Windows after WL#1054 push.
The error was introduced by typo in variable name (errormsg instead of correct
errmsg)

- Also, precache  HAVE_PEERCRED to OFF in cmake\os\WindowsCache.cmake
(to avoid useless system check).
- Also, add missing check for errors from FormatMessage().

- Also, remove annoying CMake debug printout of MALLOC_LIB if this is not set.
2010-10-04 21:25:53 +02:00
Vladislav Vaintroub
36081eed3d Rename CMAKE_PARSE_ARGUMENTS macro to avoid name collision
with CMake 2.8.3 builtin macro
2010-09-29 11:42:35 +02:00
Mats Kindahl
c4913bc3aa Bug : "plugin" tests fail in 5.5
On Solaris with version 3.4.6, the ha_example.so shared library is built
with DTrace and the server is built without DTrace support. This occurs
because dtrace.cmake disables DTrace support for 3.4.6, but still set
HAVE_DTRACE, which causes probes_mysql.h to include probes_mysql_dtrace.h
instead of probes_mysql_nodtrace.h.

This patch fixes this by not setting HAVE_DTRACE on Solaris for GCC 3.4.6.
2010-09-06 14:45:12 +02:00
Sergey Vojtovich
8c05b08550 BUG#52821 - plugin_ftparser.h and plugin_audit.h are
not tested by ABI check

plugin_audit.h and plugin_ftparser.h are now subject
for ABI check. plugin.h is now tested implicitly.

Also fixed broken ABI check cmake rules.

Makefile.am:
  plugin_audit.h and plugin_ftparser.h are now subject
  for ABI check. plugin.h is now tested implicitly.
cmake/abi_check.cmake:
  plugin_audit.h and plugin_ftparser.h are now subject
  for ABI check. plugin.h is now tested implicitly.
  
  Also fixed broken ABI check rules: -DMYSQL_ABI_CHECK is
  compiler (not cmake) definition, incorrect definitions
  were passed to do_abi_check.cmake for abi_check_all rule.
cmake/do_abi_check.cmake:
  Inform sources that we do ABI check.
include/mysql/plugin.h.pp:
  plugin.h is now tested implicitly.
include/mysql/plugin_audit.h.pp:
  plugin_audit.h is now subject for ABI check.
include/mysql/plugin_ftparser.h.pp:
  plugin_ftparser.h is now subject for ABI check.
2010-08-27 10:45:35 +04: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
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
Alexander Nozdrin
32f3ab7933 Auto-merge from mysql-trunk-merge. 2010-07-29 16:32:11 +04:00
Vladislav Vaintroub
568c26631c Cleanup after bild team push.
* Fixed obvious errors (HAVE_BROKEN_PREAD is not true for on any
of systems we use, definitely not on HPUX)

* Remove other junk flags for OSX and HPUX

* Avoid checking type sizes in universal builds on OSX, again 
(CMake2.8.0 fails is different architectures return different results)

* Do not compile template instantiation stuff unless 
EXPLICIT_TEMPLATE_INSTANTIATION is used.

* Some cleanup (make gen_lex_hash simpler, avoid dependencies)

* Exclude some unused files from compilation (strtol.c etc)
2010-07-25 19:30:18 +02:00