summaryrefslogtreecommitdiff
path: root/cmake
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-21913 Add pam_user_map.so file to binary tarball packageSergei Golubchik2020-04-281-0/+4
|
* Merge 10.1 into 10.2Marko Mäkelä2020-04-271-7/+3
|\
| * MDEV-22078 MariaDB-compat missing from MariaDB 10.4 CentOS 8 Yum RepoSergei Golubchik2020-04-271-7/+3
| | | | | | | | | | | | | | | | Backport INSALL_SYMLINK cmake macro from 10.3. It'll make libmysqlclient_r.* symlinks to link to the actual shared library file, not to another symlink. As a bonus it'll fix cmake warning about deprecated LOCATION property
* | Merge 10.1 into 10.2Marko Mäkelä2020-04-141-3/+9
|\ \ | |/
| * MDEV-19740: Have MYSQL_MAINTAINER_MODE only enable -WerrorMarko Mäkelä2020-04-011-3/+9
| | | | | | | | | | | | | | | | | | | | | | Let us enable all GCC and clang warnings independently of the MYSQL_MAINTAINER_MODE setting for both Debug and RelWithDebInfo builds, and have MYSQL_MAINTAINER_MODE only enable -Werror. The default setting of MYSQL_MAINTAINER_MODE=AUTO will continue to apply the -Werror only to CMAKE_BUILD_TYPE=Debug. To build a debug version without -Werror, MYSQL_MAINTAINER_MODE=OFF can be used.
* | Update install layout to account for multi-arch setupDaniel Black2020-03-081-7/+3
| | | | | | | | | | | | | | 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>
* | MENT-606 Error while setting value 'aes_ctr' to ↵Alexey Bychko2020-02-261-0/+1
| | | | | | | | | | | | | | | | 'file-key-management-encryption-algorithm' cmake cannot detect openssl headers on Mac during checks. the solution is to add path to openssl includes to CMAKE_REQUIRED_INCLUDES before checks.
* | 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