summaryrefslogtreecommitdiff
path: root/cmake
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-24554 Do not use verisign server for authenticode timestampingVladislav Vaintroub2021-01-091-1/+1
|
* Fix RPM packaging on cmake 3.18+Sergei Golubchik2020-10-301-19/+23
| | | | | | | | | cmake has caught up and since version 3.18 it started supporting CPACK_RPM_POST_TRANS_SCRIPT_FILE, something we've supported for two years and cmake 2.8.11. Both implementation add %posttrans tag and rpmbuild gets confused. Disable our implementation for cmake 3.18+
* Merge 10.1 into 10.2Marko Mäkelä2020-10-211-3/+3
|\
| * MDEV-23887: check_linker_flags correct for old cmake compatibilityDaniel Black2020-10-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was only from CMake-3.14.0 that CMAKE_REQUIRED_LINK_OPTIONS was used in CHECK_CXX_SOURCE_COMPILES. Without this, it could be the case (as was on OSX) that a flag was never checked in CHECK_CXX_SOURCE_COMPILES, the CHECK successfully passed, but failed at link time. As such we use CMAKE_REQUIRED_LIBRARIES to include the flags to check as its compatible enough with the cmake versions for non-Windows compilers/linkers. Tested on x86_64 with: * 3.11.4 * 3.17.4 Corrects: 7473e1841c630d86f1873a2a7afacb53955b3f6f In the future: * cmake >=3.14.0 can use CMAKE_REQUIRED_LINK_OPTIONS * cmake >=3.18.0 can use CHECK_LINKER_FLAG (with policy CMP0057 NEW) (e.g: commit c7ac2deff9a2c965887dcc67cbf2a3a7c3e0123d) CMAKE_REQUIRED_LIBRARIES suggested by serg@mariadb.com Reviewed-by: anel@mariadb.org
* | Merge branch '10.1' into 10.2Oleksandr Byelkin2020-08-021-1/+0
|\ \ | |/
| * MDEV-15961: Fix stacktraces under FreeBSD (aarch64)Karthik Kamath2020-07-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Largely based on MySQL commit https://github.com/mysql/mysql-server/commit/75271e51d60bce8683423b208cbb43b11ca6060e MySQL Ref: BUG#24566529: BACKPORT BUG#23575445 TO 5.6 (cut) Also, the PTR_SANE macro which tries to check if a pointer is invalid (used when printing pointer values in stack traces) gave false negatives on OSX/FreeBSD. On these platforms we now simply check if the pointer is non-null. This also removes a sbrk() deprecation warning when building on OS X. (It was before only disabled with building using XCode). Removed execinfo path of MySQL patch that was already included. sbrk doesn't exist on FreeBSD aarch64. Removed HAVE_BSS_START based detection and replaced with __linux__ as it doesn't exist on OSX, Solaris or Windows. __bss_start exists on mutiple Linux architectures. Tested on FreeBSD and Linux x86_64. Being in FreeBSD ports for 2 years implies a good testing there on all FreeBSD architectures there too. MySQL-8.0.21 code is functionally identical to original commit.
* | Merge 10.1 into 10.2Marko Mäkelä2020-07-201-0/+27
|\ \ | |/
| * check_linker_flag: use for linker flagsDaniel Black2020-07-151-0/+27
| | | | | | | | | | | | | | | | -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.
* | Merge 10.1 into 10.2Marko Mäkelä2020-07-141-1/+1
|\ \ | |/
| * MDEV-23114 AUTH_PAM plugin can not be disabled when using mysql_release configVicențiu Ciorbaru2020-07-071-1/+1
| | | | | | | | | | When setting the PLUGIN_AUTH_PAM variable, mark it as a "CACHE" variable so it can be overridden by the user.
* | Merge 10.1 into 10.2bb-10.2-mergeMarko Mäkelä2020-07-012-2/+3
|\ \ | |/
| * mtr: use env for perlDaniel Black2020-06-231-1/+1
| | | | | | | | | | | | | | | | On FreeBSD, perl isn't in /usr/bin, its in /usr/local/bin or elsewhere in the path. Like storage/{maria/unittest/,}ma_test_* , we use /usr/bin/env to find perl and run it.
| * Disable dtrace probes on Windows.Vladislav Vaintroub2020-06-201-1/+2
| | | | | | | | | | Apparently, in Win10, dtrace is avaialable, but it does not work with MariaDB user probes
* | cmake: quieterSergei Golubchik2020-05-311-0/+8
| |
* | bintars should use bundled PCRESergei Golubchik2020-05-271-0/+1
| |
* | get rid of cmake warningSergei Golubchik2020-05-271-1/+1
| |
* | optimize performance of the build in a fresh cloneSergei Golubchik2020-05-271-2/+2
| | | | | | | | don't fetch the complete history of all submodules, it's rarely needed
* | don't include .git files in source packagesSergei Golubchik2020-05-271-0/+1
| | | | | | | | | | the existing ".git/" rule only filters out .git directories, but as we have submodules now, we have to filter out .git files too.
* | Merge branch '10.1' into 10.2mariadb-10.2.32Oleksandr Byelkin2020-05-081-0/+8
|\ \ | |/
| * MDEV-21437 MariaDB's SUSE/SLES packages don't "provide" all of the same ↵Sergei Golubchik2020-05-051-0/+8
| | | | | | | | capabilities as the platform's default packages
* | 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