summaryrefslogtreecommitdiff
path: root/cmake
Commit message (Collapse)AuthorAgeFilesLines
* Clean wrong cherry-pick from previous commitAnel Husakovic2020-02-201-1/+0
| | | | | - Delete variable HAVE_PTHREAD_CONDATTR_SETCLOCK and check - Delete second HAVE_PTHREAD_KEY_DELETE
* my_getncpus based on threads availableDaniel Black2020-02-201-0/+2
| | | | | | | | | | | | | | | | | | Detecting the cpus based on sysconf of the online CPUs can significantly over estimate the number of cpus available. Wheither via numactl, cgroups, taskset, systemd constraints, docker containers and probably other mechanisms, the number of threads mysqld can be run on can be quite less. As such we use the pthread_getaffinity_np function on Linux and FreeBSD (identical API) to get the number of CPUs. The number of CPUs is the default for the thread_pool_size and a too high default will resulting in large memory usage and high context switching overhead. Closes PR #922
* Ignore /lib64 for rpmAnel Husakovic2020-02-101-0/+2
|
* MDEV-21656: Wrong directory for pam_user_map.soAurélien LEQUOY2020-02-061-1/+1
| | | | | | JIRA:https://jira.mariadb.org/browse/MDEV-17292 Closes #1443
* MDEV-17292 Package the pam_user_map moduleSergei Golubchik2020-01-212-0/+9
|
* cleanup: simplify install_layout.cmakeSergei Golubchik2020-01-211-13/+13
|
* MDEV-21082: isnan/isinf compilation errors, isfinite warnings on MacOSVlad Lesin2019-11-191-1/+0
| | | | | | | | | | | | | | | | | | | | | | | The fix consists of three commits backported from 10.3: 1) Cleanup isnan() portability checks (cherry picked from commit 7ffd7fe9627d1f750a3712aebb4503e5ae8aea8e) 2) Cleanup isinf() portability checks Original problem reported by Wlad: re-compilation of 10.3 on top of 10.2 build would cache undefined HAVE_ISINF from 10.2, whereas it is expected to be 1 in 10.3. std::isinf() seem to be available on all supported platforms. (cherry picked from commit bc469a0bdf85400f7a63834f5b7af1a513dcdec9) 3) Use std::isfinite in C++ code This is addition to parent revision fixing build failures. (cherry picked from commit 54999f4e75f42baca484ae436b382ca8817df1dd)
* Merge remote-tracking branch 'origin/10.1' into 10.2Alexander Barkov2019-09-241-2/+2
|\
| * Merge remote-tracking branch 'origin/5.5' into 10.1Alexander Barkov2019-09-241-2/+2
| |\
| | * MDEV-20596 Configure fails with newer CMakeRyan Coe2019-09-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix build error with newer cmake Fixes the following build error: CMake Error at cmake/os/Linux.cmake:29 (STRING): STRING sub-command REPLACE requires at least four arguments. Call Stack (most recent call first): CMakeLists.txt:101 (INCLUDE) CMake Error at cmake/os/Linux.cmake:29 (STRING): STRING sub-command REPLACE requires at least four arguments. Call Stack (most recent call first): CMakeLists.txt:101 (INCLUDE) The error happens when CMAKE_SHARED_LINKER_{LANG}_FLAGS is not set. Force the variable to be set to "" as input to prevent this. Signed-off-by: Ryan Coe <bluemrp9@gmail.com> Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
* | | MDEV-20570 : Packaging fails "The specified timestamp server either could ↵Vladislav Vaintroub2019-09-121-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | not be reached" On Windows, during packaging step, if signing fails, retry signtool again without timestamp parameter. Fixes sporadic (rare) failures on buildbot
* | | MDEV-20542 Windows enable/d2OptimizeHugeFunctionsVladislav Vaintroub2019-09-091-0/+2
| | |
* | | On Windows, treat linker warnings as errors, ifVladislav Vaintroub2019-09-091-0/+5
| | | | | | | | | | | | MYSQL_MAINTAINER_MODE is ERR
* | | use a shorter name for sources in debuginfo rpmsSergei Golubchik2019-09-061-1/+1
| | | | | | | | | | | | have the same path as in source rpms, don't build them differently
* | | Merge 10.1 into 10.2Marko Mäkelä2019-08-282-1/+3
|\ \ \ | |/ /
| * | ensure that pam plugin is present in release packagesSergei Golubchik2019-08-201-0/+1
| | |
| * | really make CPACK_RPM_DEBUGINFO_PACKAGE configurableSergei Golubchik2019-08-201-1/+2
| | |
* | | MDEV-20377: Introduce cmake -DWITH_MSAN:BOOL=ONMarko Mäkelä2019-08-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | cleanup: CPACK_RPM_* package descriptionSergei Golubchik2019-07-103-21/+21
| | | | | | | | | | | | | | | add cmake helper macro SET_IF_UNSET() and use it for CPACK_* variables
* | | Merge 10.1 into 10.2Eugene Kosov2019-07-091-6/+2
|\ \ \ | |/ /
| * | MDEV-19481 mariadb-10.3.15-linux-systemd-x86_64/bin/mysqld: ↵Sergei Golubchik2019-07-041-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' and 'GLIBCXX_3.4.21' not found don't ignore LIBSYSTEMD_LDFLAGS when trying out systemd (and put them in LIBSYSTEMD, because MYSQLD_LINK_FLAGS has stuff like -lmtmalloc and is used only for mysqld, not for, say, explain_filename-t) LIBSYSTEMD_LDFLAGS come from libsystemd.pc via pkg-config
* | | Merge 10.1 into 10.2Marko Mäkelä2019-06-121-1/+2
|\ \ \ | |/ /
| * | MDEV-17103 MY_CHECK_{C,CXX}_COMPILER_FLAG do not work on with localized gccVladislav Vaintroub2019-06-051-1/+2
| | | | | | | | | | | | | | | | | | messages Force LANG=C for MY_CHECK_{C,CXX}_COMPILER_FLAG
* | | Merge 10.1 into 10.2Marko Mäkelä2019-05-281-1/+1
|\ \ \ | |/ /
| * | Merge 5.5 into 10.1Marko Mäkelä2019-05-281-1/+1
| |\ \ | | |/
| | * make CPACK_RPM_DEBUGINFO_PACKAGE configurable from the command-lineSergei Golubchik2019-05-221-1/+1
| | |
* | | Merge 10.1 into 10.2Marko Mäkelä2019-05-1343-43/+43
|\ \ \ | |/ /
| * | Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-1151-51/+51
| |\ \ | | |/
| | * Update FSF AddressVicențiu Ciorbaru2019-05-1143-43/+43
| | | | | | | | | | | | * Update wrong zip-code
* | | cmake: pass CMAKE_BUILD_TYPE into src.rpmSergei Golubchik2019-04-091-1/+1
| | | | | | | | | | | | and don't pass BUILD_CONFIG twice, once is enough.
* | | cmake: force Boost dependency as neededSergei Golubchik2019-04-081-0/+5
| | | | | | | | | | | | because FindBoost.cmake won't do it
* | | Merge 10.1 into 10.2Marko Mäkelä2019-04-031-0/+2
|\ \ \ | |/ /
| * | speedup RPM buildsSergei Golubchik2019-04-021-0/+2
| | | | | | | | | | | | | | | Filter out most common file types from automatic dependency collection. This makes `make package` in centos73 VM three times faster
* | | post-merge: -Werror fixes in 10.2Sergei Golubchik2019-03-291-0/+5
| | |
* | | Merge branch '10.1' into 10.2Sergei Golubchik2019-03-297-58/+88
|\ \ \ | |/ /
| * | MDEV-7066 No Source RPMs ... (and so no "yum-builddep MariaDB-server" either)Sergei Golubchik2019-03-271-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | special cases: * change systemd detection to use CHECK_LIBRARY_EXISTS at least once, to have it detected by build_depends.cmake * similarly, use find_library for pam * unixODBC is weird, libodbc.so is in the unixODBC package, not in the unixODBC-devel, where normally all .so files belong. Packaging bug? As a workaround, use find_file(sql.h) instead of find_path(sql.h) to make sure that /usr/include/sql.h (not /usr/include) is cached by cmake, and later build_depends.cmake will select unixODBC-devel, as a package owning /usr/include/sql.h file.
| * | MDEV-7066 No Source RPMs ... (and so no "yum-builddep MariaDB-server" either)Sergei Golubchik2019-03-272-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | MDEV-7066 No Source RPMs ... (and so no "yum-builddep MariaDB-server" either)Sergei Golubchik2019-03-271-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | create source RPM cpack-way when building binary packages, this source rpm will use same BUILD_CONFIG and WITH_SSL values that were used when creating the source RPM. Only do it for a reasonably new cmake, where source rpms are known to work (3.10.2 is ok, 3.5.2 is not). And force a shorter CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX so that a source rpm could be built from a standard location in /usr/src
| * | cmake: don't do fake rpm ProvidesSergei Golubchik2019-03-271-30/+6
| | | | | | | | | | | | instead remove internal modules from Requires/Provides
| * | cmake: fix cpack_source_ignore_filesSergei Golubchik2019-03-271-9/+11
| | | | | | | | | | | | | | | add defensive $ for filenames, don't include .gitattributes and *.rpm, correct rules for *.gz and *.zip
| * | cmake: remove workarounds for cmake bugs #13248 and #12864Sergei Golubchik2019-03-271-3/+0
| | | | | | | | | | | | since long we use a different workaround, our own CPackRPM wrapper
| * | cmake: re-enable -Werror in the maintainer modeSergei Golubchik2019-03-271-2/+7
| | | | | | | | | | | | | | | | | | now we can afford it. Fix -Werror errors. Note: * old gcc is bad at detecting uninit variables, disable it. * time_t is int or long, cast it for printf's
* | | cmake 3.14mariadb-10.2.23Sergei Golubchik2019-03-231-1/+5
| | | | | | | | | | | | new location for CPackRPM.cmake
* | | MDEV-18954 numa dynamic dependencySergei Golubchik2019-03-221-0/+1
| | | | | | | | | | | | don't link with libnuma in release builds
* | | cmake: remove unused variableSergei Golubchik2019-03-221-3/+0
| | |
* | | Merge 10.1 into 10.2Marko Mäkelä2019-03-112-2/+2
|\ \ \ | |/ /
| * | MDEV-17703 Add WITH_UBSAN switch to CMake similar to WITH_ASANEugene Kosov2019-03-112-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
| * | Fix the WITH_ASAN clang build of dynamic pluginsMarko Mäkelä2019-03-071-1/+1
| | |
* | | 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
| | |