-Wl,--no-undefined (=-z defs) gives linking errors when used with WITH_ASAN.
According to the documentation:
"When linking shared libraries, the AddressSanitizer run-time is not linked,
so -Wl,-z,defs may cause link errors (don’t use it with AddressSanitizer)."
This patch turns off -Wl,--no-undefined if WITH_ASAN is used.
MDEV-4425 Regexp enhancements
Adding ${CMAKE_BINARY_DIR}/pcre into search path for *.h files.
Needed for find pcre.h (which is generated from pcre.h.in) when
build directory != source directory.
Bundled jemalloc can only be on Linux and OSX without problems.
On BSDs, build fails because make does not understand GNU extensions (also BSDs do not need jemalloc, it is already system malloc).
On Solaris, build fails with compile error.
now, if the dynamic plugin puts itself in a distinct component, then
* ${plugin}.cnf file is generated and installed automatically
* a separate RPM is generated automatically
* necessary FILELIST/PROVIDES/OBSOLETES/REQUIRES are filled in automatically
* add TokuDB, together with the ft-index library
* cmake support, auto-detecting whether tokudb can be built
* fix packaging - tokudb-engine.rpm, deb
* remove PBXT
* add jemalloc
* the server is built with jemalloc by default even if TokuDB is not built
* documentation files in RPM are installed in the correct location
* support for optional deb packages (tokudb has specific build requirements)
* move plugins from mariadb-server deb to appropriate debs (server/test/libmariadbclient)
* correct mariadb-test.deb to be not architecture-independent
* fix out-of-tree builds to never modify in-tree files
* new handler::prepare_index_scan() method
* now only production-use server plugins are in mariadb-server.
client plugins are now in libmariadbclient18,
testing-only server plugins are now in mariadb-test
(set Coflicts: field properly)
* fix Architecture: of mariadb-test
* terrible hack to support optional deb packages for optional plugins
cmake/plugin.cmake:
* auto-create an rpm for a plugin, if it places itself in a new component
storage/tokudb/CMakeLists.txt:
install tokudb in COMPONENT tokudb-engine.
this automatically creates a separate rpm for it.
* disable jemalloc on windows (cannot run ./configure)
* disable jemalloc on ancient cmake (ExternalProject does not work)
* rewrite TokuDB compiler test to check for features, not versions (to work on cmake before 2.8.11)
* fix ft-index to not add VALGRIND_INCLUDE_DIR to includes, if no valgrind was found
* correct the package name in FindValgrind.cmake (for find_package(... REQUIRED) to work)
* disable ft-index tests by default (faster compilation and they aren't used anyway)
* don't build ft-index with valgrind by default (otherwise it *requires* valgrind, it doesn't auto-detect)
* use --loose-tokudb in the .opt file
cmake/jemalloc.cmake:
for dependencies to work, LIBJEMALLOC should be the target name, not the path
storage/tokudb/CMakeLists.txt:
* check the preconditions
* disable bdb tests (compilation errors)
* set variable, instead of SET_PROPERTY. same effect,
but doesn't fail when a plugin is disabled (that is, a target does not exist)
storage/tokudb/ft-index/CMakeLists.txt:
cmake should not look into examples/ directory,
there is hand-crafted examples/Makefile that
cmake will overwrite
storage/tokudb/ft-index/buildheader/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/cmake_modules/TokuMergeLibs.cmake:
Libraries must be specified in the specific order,
REMOVE_DUPLICATES cannot be used, because it destroys this order.
(when OSLIBS contains "-lpthread -ljemalloc -lpthread", REMOVE_DUPLICATES
makes it "-lpthread -ljemalloc". But a thread library *must* be *after* jemalloc)
storage/tokudb/ft-index/cmake_modules/TokuSetupCTest.cmake:
* 'which' might print errors to stderr, they are not important, shut them up
* we don't have TOKUDB_DATA, no need to warn about it
* don't configure_file into itself (with input=output)
storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake:
jemalloc is built externally to tokudb/ft-index
storage/tokudb/ft-index/ft/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/ft/tests/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/locktree/tests/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/portability/CMakeLists.txt:
s/jemalloc/libjemalloc/
storage/tokudb/ft-index/portability/os_malloc.cc:
unnecessary include file
storage/tokudb/ft-index/portability/tests/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/src/tests/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/util/tests/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
storage/tokudb/ft-index/utils/CMakeLists.txt:
the syntax is ADD_EXECUTABLE(target source) and "source" is the file name
Fixed debian/ubuntu build failure.
cmake/ssl.cmake:
Do not prefer static SSL libraries for WITH_SSL=system|yes as there is
no guarantee that they will link well with MariaDB shared objects.
Specifically on debian/ubuntu static SSL libraries are built without
-fPIC.
Restore 5.6 behavior. 10.0.3 never prefer static SSL libraries.
includes:
* remove some remnants of "Bug#14521864: MYSQL 5.1 TO 5.5 BUGS PARTITIONING"
* introduce LOCK_share, now LOCK_ha_data is strictly for engines
* rea_create_table() always creates .par file (even in "frm-only" mode)
* fix a 5.6 bug, temp file leak on dummy ALTER TABLE
Sys_var_keycache inherits from some variant of Sys_var_integer
Instances of Sys_var_keycache are initialized using the KEYCACHE_VAR macro,
which takes an offset within st_key_cache.
However, the Sys_var_integer CTOR treats the offset as if it was within
global_system_variables (hidden within some layers of macros and fuction
pointers)
The result is that we write arbitrary data to arbitrary locations in memory.
This all happens during static initialization of global objects,
i.e. before we have even entered the main() function.
Bug#12325449 TYPO IN CMAKE/DTRACE.CMAKE
Fix typo in dtrace.cmake
Non-blocking client currently can be build on Windows, GCC on i386 and x64, or any OS wth ucontext.h header. Prior to this patch, build failed if neither of these conditions is true.
Fix to avoid compiler errors in these case - non-blocking API would not be useful on , but otherwise everything will work as before.
(uninitalized variables are detected by DBUG builds)
- Fixed wrong declaration which cased compile failure on 32 bit
cmake/build_configurations/mysql_release.cmake:
Added -Wno-uninitialized to avoid warnings in release builds
(uninitalized variables are detected by DBUG builds)
include/maria.h:
Fixed wrong declaration which cased compile failure on 32 bit
include/myisam.h:
Fixed wrong declaration which cased compile failure on 32 bit
Problem :
libreadline.so was already present on the machine, however the cmake check NEW_READLINE_INTERFACE was unsuccessfull indicating, thus bundled library had to be used instead of system library.
The problem was that the value for HAVE_HIST_ENTRY cmake variable was cached with incorrect value (1 on NetBSD).
The fix is to change HAVE_HIST_ENTRY to 0 with CACHE FORCE, after switching to bundled readline.
to match distribution packages better:
remove "mysql" from server.rpm Provides, add it to the shared.rpm Provides.
fake provides that "mysql" and "mysql-libs" packages would've had.
cleanup:
remove auto-generated provides from the manual provides list.
who has two different incompatible copies of zlib installed:
(in /usr and in /usr/local).
cmake errorneously chose *.h file from /usr/local/include,
while zlib.a/zlib.so from /usr/lib/. Compilation failed
because of a missing symbol gzopen64.
modified:
@ cmake/zlib.cmake
Removing the line (as suggested by Vlad) which made cmake choose
the wrong library.
Note: this line used to be a hack for old HP machines,
it's not needed anymore.
as it needs unixODBC and libxml2 as dependencies
modified:
cmake/build_configurations/mysql_release.cmake
debian/dist/Debian/mariadb-server-10.0.files
debian/dist/Ubuntu/mariadb-server-10.0.files
fix the rpm packaging to work on Fedora18. Two problems:
* conflicts on common directories with other packages.
* more auto-generated requirements for mariadb-test.rpm
- Added --verbose to BUILD scripts to get make to write out compile commands.
- Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 was used with build scripts.
- Don't write warnings about replication variables when doing bootstrap.
- Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors.
- Ignore some compiler warnings
BUILD/FINISH.sh:
Detect if AM_EXTRA_MAKEFLAGS=VERBOSE=1 or --verbose was used
BUILD/SETUP.sh:
Added --verbose to print out the full compile lines
Updated help message
client/mysqltest.cc:
Fixed that one can use 'replace' with cat_file
cmake/configure.pl:
If --verbose is used, get make to write out compile commands
debian/dist/Debian/rules:
Added $AM_EXTRA_MAKEFLAGS to get VERBOSE=1 on buildbot builds
debian/dist/Ubuntu/rules:
Added $AM_EXTRA_MAKEFLAGS to get VERBOSE=1 on buildbot builds
include/my_pthread.h:
Made set_timespec_time_nsec() more portable.
include/mysql/psi/mysql_thread.h:
Fixed that mysql_cond_wait() and mysql_cond_timedwait() will report original source file in case of errors.
mysql-test/suite/innodb/r/auto_increment_dup.result:
Fixed wrong DBUG_SYNC
mysql-test/suite/innodb/t/auto_increment_dup.test:
Fixed wrong DBUG_SYNC
mysql-test/suite/perfschema/include/upgrade_check.inc:
Make test more portable for changes in *.sql files
mysql-test/suite/perfschema/r/pfs_upgrade.result:
Updated test results
mysql-test/valgrind.supp:
Ignore running Aria checkpoint thread
scripts/mysqlaccess.sh:
Changed reference of bugs database
Ensure that also client-server group is read.
sql/handler.cc:
Added missing syncpoint
sql/mysqld.cc:
Don't write warnings about replication variables when doing bootstrap
sql/mysqld.h:
Don't write warnings about replication variables when doing bootstrap
sql/rpl_rli.cc:
Don't write warnings about replication variables when doing bootstrap
sql/sql_insert.cc:
Don't mask SERVER_SHUTDOWN in insert_delayed
This is done to be able to distingush between shutdown and interrupt errors
support-files/compiler_warnings.supp:
Ignore some compiler warnings in xtradb,innobase, oqgraph, yassl, string3.h
Ensure semicolons are not lost when concatenating fill_help_tables to bootstrap.sql in Windows.
5.6 bootstrapper requires semicolons to separate bootstrapper commands.