summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-24034 Policy CMP0075 is not set during compileVladislav Vaintroub2020-12-151-0/+3
| | | | | | | | | | | | | | | The policy is not set for 10.2 If it is set, CMake would complain about bundled zlib for which the policy is not set. Fix: - Set policy for 10.2 for the top level project. For 10.3+ it was already set - Cleanup zlib to remove unneeded stuff. It is an internal static library, it needs none of PROJECT, library versioning, RC file on Windows. The name of the library on Unix does not make any difference, since it is static and compiled in.
* Merge 10.1 into 10.2Marko Mäkelä2020-07-201-1/+2
|\
| * check_linker_flag: use for linker flagsDaniel Black2020-07-151-1/+2
| | | | | | | | | | | | | | | | -Wl,-z,relro,-z,now are linker flags and should be checked as such. TODO: perform module, exe shared checks separately rather than a pure linker check.
* | cmake: quieterSergei Golubchik2020-05-311-0/+3
| |
* | Merge branch '10.1' into 10.2mariadb-10.2.32Oleksandr Byelkin2020-05-081-2/+3
|\ \ | |/
| * MDEV-21437 MariaDB's SUSE/SLES packages don't "provide" all of the same ↵Sergei Golubchik2020-05-051-2/+3
| | | | | | | | capabilities as the platform's default packages
* | add WITH_DBUG_TRACE CMake variableEugene Kosov2020-04-291-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a way do disable DBUG_ENTER()/DBUG_EXIT() stuff which is needed to dbug trace. Those who doesn't need it may avoid tests slowdown with -DWITH_DBUG_TRACE=OFF dbug/tests.c: add define which is neede always in this test innodb.log_file_name_debug.test: do not depend on DBUG trace stuff in test Benchmark results: each test eats less CPU and you can have more parallel jobs in MTR. patched: ./mtr -mem -par=8 -suite=innodb 185.34s user 86.85s system 133% cpu 3:23.27 total ./mtr -mem -par=8 -suite=main 80.96s user 36.01s system 182% cpu 1:04.07 total main.select [ pass ] 1660 main.select [ pass ] 1513 main.select [ pass ] 1543 main.select [ pass ] 1660 main.select [ pass ] 1521 main.select [ pass ] 1511 main.select [ pass ] 1508 main.select [ pass ] 1520 main.select [ pass ] 1514 main.select [ pass ] 1522 vanilla: ./mtr -mem -par=8 -suite=innodb 203.61s user 92.16s system 140% cpu 3:30.16 total ./mtr -mem -par=8 -suite=main 94.11s user 35.51s system 206% cpu 1:02.69 total main.select [ pass ] 2032 main.select [ pass ] 2017 main.select [ pass ] 2040 main.select [ pass ] 2183 main.select [ pass ] 2253 main.select [ pass ] 2075 main.select [ pass ] 2109 main.select [ pass ] 2080 main.select [ pass ] 2098 main.select [ pass ] 2114
* | unoptimized -fsanitize=undefined build on clang requires more stack spaceEugene Kosov2020-03-231-1/+1
| |
* | Update install layout to account for multi-arch setupDaniel Black2020-03-081-1/+1
| | | | | | | | | | | | | | Cleanup install_layout to account for multi-arch setup and remove redundant defines in debian rules. Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
* | MDEV-20377: Introduce cmake -DWITH_MSAN:BOOL=ONMarko Mäkelä2019-08-191-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MemorySanitizer is a compile-time instrumentation layer in clang and GCC. Together with AddressSanitizer mostly makes the run-time instrumentation of Valgrind redundant. It is a little more tricky to set up, because running with uninstrumented libraries will lead into false positives. You will need an instrumented libc++, and you should use -stdlib=libc++ instead of the default libstdc++. To build the instrumented library, you can refer to https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo or you can adapt these steps that worked for me, for clang-8 version 8.0.1: cd /mariadb sudo apt source libc++-8-dev cd llvm-toolchain-8-8.0.1 mkdir libc++msan; cd libc++msan cmake ../libcxx -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_SANITIZER=Memory \ -DCMAKE_C_COMPILER=clang-8 -DCMAKE_CXX_COMPILER=clang++-8 Then, in your MariaDB build directory, you have to compile with libc++ and bundled libraries, such as WITH_SSL=bundled, WITH_ZLIB=bundled. For uninstrumented system libraries, you will get false positives for uninitialized values. Like this: cmake -DWITH_MSAN=ON -DWITH_SSL=bundled -DWITH_ZLIB=bundled \ -DCMAKE_CXX_FLAGS='-stdlib=libc++' .. Note: you should also add -O2 to the compiler options, or you may get crashes due to stack overflow. Finally, to run tests, you must replace libc++ with the instrumented one: LD_LIBRARY_PATH=/mariadb/llvm-toolchain-8-8.0.1/libc++msan/lib \ MSAN_OPTIONS=abort_on_error=1 \ ./mtr --big-test --parallel=auto --force --retry=0 Failure to do so will report numerous false positives related to operations on std::string and the like. This is work in progress. Some issues will still have to be fixed for WITH_MSAN to be usable. See MDEV-20377 for details.
* | Merge 10.1 into 10.2Marko Mäkelä2019-06-121-5/+7
|\ \ | |/
| * MDEV-19360 - Disable _FORTIFY_SOURCE for ASAN buildsSergey Vojtovich2019-06-071-5/+7
| | | | | | | | | | | | | | | | | | | | Those two may work incorrectly together. Namely, ASAN may produce false positives or false negatives. For details see https://github.com/google/sanitizers/wiki/AddressSanitizer#faq Make SECURITY_HARDENED disabled by default if WITH_ASAN=ON Based on contribution by Eugene Kosov.
* | Merge 10.1 into 10.2Marko Mäkelä2019-05-131-1/+1
|\ \ | |/
| * Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-111-1/+1
| |\
| | * Update FSF AddressVicențiu Ciorbaru2019-05-111-1/+1
| | | | | | | | | | | | * Update wrong zip-code
* | | edit MariaDB license info so that GitHub recognizes itAndrea Kao2019-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GitHub uses a library called Licensee to identify a project's license type. It shows this information in the status bar and via the API if it can unambiguously identify the license. This commit modifies a few of MariaDB's docs so that Licensee is able to recognize the repository's license type. It renames the README's "License" section to "Licensing" and renames COPYING.thirdparty to THIRDPARTY. These changes allow Licensee to bypass both files when it scans the repo for license files, which thus allows Licensee to successfully identify the license type of MariaDB as GPL 2.0. Signed-off-by: Andrea Kao <eirinikos@gmail.com>
* | | MDEV-17702 fix unaligned access UB in sint4korr() and similar functionsEugene Kosov2019-05-031-1/+1
| | | | | | | | | | | | | | | Disable (hopefully temprorary) this check. Also add tests for some serialized functions.
* | | Merge branch '10.1' into 10.2Sergei Golubchik2019-03-291-0/+2
|\ \ \ | |/ /
| * | MDEV-7066 No Source RPMs ... (and so no "yum-builddep MariaDB-server" either)Sergei Golubchik2019-03-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | automatic BuildRequires for source RPM: for every FILEPATH and "Have library XXX" cached variable, detect what rpm package it comes from and add it to the list of dependencies. That is, the source RPM will BuildRequire all those packages that were found by cmake when the source RPM was built. Presumably, our CMakeLists.txt won't check for libraries that aren't needed for a build. It supports libraries/executables/files found with FIND_LIBRARY FIND_FILE FIND_PROGRAM CHECK_LIBRARY_EXISTS
* | | cmake 3.14mariadb-10.2.23Sergei Golubchik2019-03-231-1/+2
| | | | | | | | | | | | new location for CPackRPM.cmake
* | | Merge 10.1 into 10.2Marko Mäkelä2019-03-111-0/+9
|\ \ \ | |/ /
| * | MDEV-17703 Add WITH_UBSAN switch to CMake similar to WITH_ASANEugene Kosov2019-03-111-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | This can be useful: UBSAN_OPTIONS=log_path=/some/path clang users may want to increase stack size in include/my_pthread.h or enable some optimizations
* | | Merge branch '10.1' into 10.2Oleksandr Byelkin2019-02-191-1/+1
|\ \ \ | |/ /
| * | Don't build aws_key_management plugin by defaultSergei Golubchik2019-02-191-1/+1
| | |
* | | Merge 10.1 into 10.2Marko Mäkelä2019-02-031-2/+8
|\ \ \ | |/ / | | | | | | | | | | | | Temporarily disable a test for commit 2175bfce3e9da8332f10ab0e0286dc93915533a2 because fixing it in 10.2 requires updating libmariadb.
| * | Merge 10.1 into 10.1Marko Mäkelä2019-02-021-2/+8
| |\ \ | | | | | | | | | | | | This is joint work with Oleksandr Byelkin.
| | * \ Merge branch '5.5' into 10.0Oleksandr Byelkin2019-01-281-2/+8
| | |\ \ | | | |/
| | | * Crude "auto-load-data-local-infile" modemariadb-5.5.63Sergei Golubchik2019-01-271-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable LOAD DATA LOCAL INFILE suport by default and auto-enable it for the duration of one query, if the query string starts with the word "load". In all other cases the application should enable LOAD DATA LOCAL INFILE support explicitly.
* | | | fix RHEL8 "ambiguous python shebang" build failuresSergei Golubchik2019-01-031-0/+1
| | | |
* | | | Merge 10.1 into 10.2Marko Mäkelä2018-11-061-1/+1
|\ \ \ \ | |/ / /
| * | | Merge branch '10.0' into 10.1Sergei Golubchik2018-10-301-1/+1
| |\ \ \ | | |/ /
| | * | Merge branch '5.5' into 10.0Sergei Golubchik2018-10-271-1/+1
| | |\ \ | | | |/
| | | * Merge branch 'mysql/5.5' into 5.5Sergei Golubchik2018-10-231-1/+1
| | | |\
| | | | * Bug #26275510 BUNDLED ZLIB DOESN'T INCLUDE FIXES FOR SOME VULNERABILITIESAditya A2018-07-091-1/+7
| | | | | | | | | | | | | | | | | | | | Upgrading the zlib lib to 1.2.11
| | | | * Bug #25436469: BUILDS ARE NOT REPRODUCIBLETor Didriksen2017-05-161-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport to 5.5 Current MySQL builds, even on Pushbuild, are not reproducible; they return different results depending on which directory they are built from (and Pushbuild uses several different directories). This is because absolute paths leak into debug information, and even worse, __FILE__. The latter moves code around enough that we've actually seen sysbench changes on the order of 4% in some tests. CMake seemingly insists on using absolute paths, but we can insert our own layer between CMake and GCC to relativize all paths. Also give the right flags to get debug information reproducible and turn off build stamping. This makes the mysqld build 100% bit-for-bit reproducible between runs on my machine, even when run from different directories.
* | | | | Merge 10.1 into 10.2Marko Mäkelä2018-08-021-0/+6
|\ \ \ \ \ | |/ / / /
| * | | | Merge branch '10.0' into bb-10.1-merge-sanjaOleksandr Byelkin2018-07-251-0/+6
| |\ \ \ \ | | |/ / /
| | * | | MDEV-11790 WITHOUT_SERVER installs mysqld_safe_helperSergei Golubchik2018-07-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't install server files if WITHOUT_SERVER is specified. "Server files" are defined as files going into the MariaDB-Server RPM, that is files in the components Server, ManPagesServer, Server_Scripts, IniFiles, SuportFiles, and Readme.
| * | | | Merge branch '10.0' into 10.1Sergei Golubchik2018-06-211-4/+0
| |\ \ \ \ | | |/ / /
| | * | | Merge branch '5.5' into 10.0Sergei Golubchik2018-06-211-4/+0
| | |\ \ \ | | | |/ /
| | | * | Revert "MDEV-16075: Workaround to run MTR test suite for make test"Sergei Golubchik2018-06-201-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d39629f01ebdd5b89186e6c8a4a8d3dd528bd26a. Because running mtr for many hours with no output whatsoever is not really what we should do. And in 5.5 `make test` just works anyway, nothing to fix here.
| * | | | Merge branch '10.0' into 10.1Vicențiu Ciorbaru2018-06-121-0/+4
| |\ \ \ \ | | |/ / /
| | * | | Merge branch '5.5' into 10.0Vicențiu Ciorbaru2018-06-101-0/+4
| | |\ \ \ | | | |/ /
| | | * | MDEV-16075: Workaround to run MTR test suite for make testTeodor Mircea Ionita2018-06-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assign all tests added via MY_ADD_TEST to a bogus default_ignore target, so that they are not ran by default when doing bare make test. Add default test named MTR that calls mysql-test-run suite, which is now the single test run by make test. In consequence, modified unit/suite.pm to exclude the MTR test and run the real ctests flagged for default_ignore target, thus no circular loop.
* | | | | fix debian packaging for tokudbSergei Golubchik2018-06-241-1/+1
| | | | |
* | | | | CMake : Move INNODB_DISALLOW_WRITES from top-level CMakeLists.txt to innodbVladislav Vaintroub2018-04-011-7/+1
| | | | |
* | | | | Merge branch '10.1' into 10.2Sergei Golubchik2018-02-221-0/+1
|\ \ \ \ \ | |/ / / /
| * | | | MDEV-14541 - Workaround GCC ICE on ARM64Sergey Vojtovich2018-02-191-0/+1
| | | | | | | | | | | | | | | | | | | | Added missing include.
* | | | | Merge branch 'github/10.1' into 10.2Sergei Golubchik2018-02-061-2/+2
|\ \ \ \ \ | |/ / / /
| * | | | compiler warning (signed/unsigned comparison)Sergei Golubchik2018-02-021-2/+2
| | | | |