summaryrefslogtreecommitdiff
path: root/configure.cmake
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-19696 - Cleanup gcc sync builtinsRobert Bindar2019-07-031-24/+0
| | | | | Since 10.4 requires C++11 capable compiler, gcc sync builtins became dead code. Remove relevant cmake checks and cleanup include files.
* MDEV-19845: Define my_timer_cycles() inlineMarko Mäkelä2019-06-281-5/+0
| | | | | | | | | | | | | | | | | | | | | On clang, use __builtin_readcyclecounter() when available. Hinted by Sergey Vojtovich. (This may lead to runtime failure on ARM systems. The hardware should be available on ARMv8 (AArch64), but access to it may require special privileges.) We remove support for the proprietary Sun Microsystems compiler, and rely on clang or the __GNUC__ assembler syntax instead. For now, we retain support for IA-64 (Itanium) and 32-bit SPARC, even though those platforms are likely no longer widely used. We remove support for clock_gettime(CLOCK_SGI_CYCLE), because Silicon Graphics ceased supporting IRIX in December 2013. This was the only cycle timer interface available for MIPS. On PowerPC, we rely on the GCC 4.8 __builtin_ppc_get_timebase() (or clang __builtin_readcyclecounter()), which should be equivalent to the old assembler code on both 64-bit and 32-bit targets.
* Merge 10.3 into 10.4Marko Mäkelä2019-06-271-26/+0
|\ | | | | | | | | | | We omit the work-around commit 0b7fa5a05deecaf52207f00bb02b5c6b460abb11 because it appears to be needed for CentOS 6 only, which we no longer support.
| * MDEV-19845: Adaptive spin loopsMarko Mäkelä2019-06-271-26/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting with the Intel Skylake microarchitecture, the PAUSE instruction latency is about 140 clock cycles instead of earlier 10. On AMD processors, the latency could be 10 or 50 clock cycles, depending on microarchitecture. Because of this big range of latency, let us scale the loops around the PAUSE instruction based on timing results at server startup. my_cpu_relax_multiplier: New variable: How many times to invoke PAUSE in a loop. Only defined for IA-32 and AMD64. my_cpu_init(): Determine with RDTSC the time to run 16 PAUSE instructions in two unrolled loops according, and based on the quicker of the two runs, initialize my_cpu_relax_multiplier. This form of calibration was suggested by Mikhail Sinyavin from Intel. LF_BACKOFF(), ut_delay(): Use my_cpu_relax_multiplier when available. ut_delay(): Define inline in my_cpu.h. UT_COMPILER_BARRIER(): Remove. This does not seem to have any effect, because in our ut_delay() implementation, no computations are being performed inside the loop. The purpose of UT_COMPILER_BARRIER() was to prohibit the compiler from reordering computations. It was not emitting any code.
* | Merge branch '10.3' into 10.4Oleksandr Byelkin2019-05-191-1/+1
|\ \ | |/
| * Merge 10.2 into 10.3Marko Mäkelä2019-05-141-1/+1
| |\
| | * 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
* | | | | remove -fno-rttiSergei Golubchik2019-05-181-5/+0
| | | | |
* | | | | MDEV-17380 innodb_flush_neighbors=ON should be ignored on SSDMarko Mäkelä2019-04-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For tablespaces that do not reside on spinning storage, it does not make sense to attempt to write nearby pages when writing out dirty pages from the InnoDB buffer pool. It is actually detrimental to performance and to the life span of flash ROM storage. With this change, MariaDB will detect whether an InnoDB file resides on solid-state storage. The detection has been implemented for Linux and Microsoft Windows. For other systems, we will err on the safe side and assume that files reside on SSD. As part of this change, we will reduce the number of fstat() calls when opening data files on POSIX systems and slightly clean up some file I/O code. FIXME: os_is_sparse_file_supported() on POSIX works in a destructive manner. Thus, we can only invoke it when creating files, not when opening them. For diagnostics, we introduce the column ON_SSD to the table INFORMATION_SCHEMA.INNODB_TABLESPACES_SCRUBBING. The table INNODB_SYS_TABLESPACES might seem more appropriate, but its purpose is to reflect the contents of the InnoDB system table SYS_TABLESPACES, which we would like to remove at some point. On Microsoft Windows, querying StorageDeviceSeekPenaltyProperty sometimes returns ERROR_GEN_FAILURE instead of ERROR_INVALID_FUNCTION or ERROR_NOT_SUPPORTED. We will silently ignore also this error, and assume that the file does not reside on SSD. On Linux, the detection will be based on the files /sys/block/*/queue/rotational and /sys/block/*/dev. Especially for USB storage, it is possible that /sys/block/*/queue/rotational will wrongly report 1 instead of 0. fil_node_t::on_ssd: Whether the InnoDB data file resides on solid-state storage. fil_system_t::ssd: Collection of Linux block devices that reside on non-rotational storage. fil_system_t::create(): Detect ssd on Linux based on the contents of /sys/block/*/queue/rotational and /sys/block/*/dev. fil_system_t::is_ssd(dev_t): Determine if a Linux block device is non-rotational. Partitions will be identified with the containing block device by assuming that the least significant 4 bits of the minor number identify a partition, and that the "partition number" of the entire device is 0.
* | | | | Merge branch '10.3' into 10.4Oleksandr Byelkin2019-02-211-1/+1
|\ \ \ \ \ | |/ / / /
| * | | | Merge branch '10.2' into bb-10.3-mergeOleksandr Byelkin2019-02-191-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
| | | | |
* | | | | mysqld: ignore SIGHUP sent by the kernelSergei Golubchik2018-12-121-0/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SIGHUP causes debug info in the error log and reload of logs/privileges/tables/etc. The server should only do it when a user intentionally sends SUGHUP, not when a parent terminal gets disconnected or something. In particular, not ignoring kernel SIGHUP causes FLUSH PRIVILEGES at some random point during non-systemd Debian upgrades (Debian restarts mysqld, debian-start script runs mysql_upgrade in the background, postinit script ends and kernel sends SIGHUP to all background processes it has started). And during mysql_upgrade privilege tables aren't necessarily ready to be reloaded.
* | | | Merge 10.2 into 10.3Marko Mäkelä2018-11-061-4/+7
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | main.derived_cond_pushdown: Move all 10.3 tests to the end, trim trailing white space, and add an "End of 10.3 tests" marker. Add --sorted_result to tests where the ordering is not deterministic. main.win_percentile: Add --sorted_result to tests where the ordering is no longer deterministic.
| * | | Merge 10.1 into 10.2Marko Mäkelä2018-11-061-4/+7
| |\ \ \ | | |/ /
| | * | cmake: fix ucontext detectionBernd Kuhls2018-10-171-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some archs uclibc does not provide the ucontext structure despite providing ucontext.h, for details see https://git.buildroot.net/buildroot/commit/?id=f1cbfeea95e6287c7a666aafc182ffa318eff262 This patch improves the detection of ucontext by making sure that HAVE_UCONTEXT_H is only set when makecontext() was found. Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
* | | | Cleanup log2() portability checksSergey Vojtovich2018-05-261-2/+0
| | | |
* | | | Cleanup rint() portability checksSergey Vojtovich2018-05-261-1/+0
| | | |
* | | | Cleanup isnan() portability checksSergey Vojtovich2018-05-261-1/+0
| | | |
* | | | Cleanup isinf() portability checksSergey Vojtovich2018-05-261-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | remove check for finite/isfiniteHoward Su2018-05-241-6/+0
| | | | | | | | | | | | | | | | | | | | finite is not used anymore in code base. isfinite is part of C99 and we assume we only support compilers that support C99.
* | | | MDEV-8743: use mkostemp when available with O_CLOEXECDaniel Black2018-05-211-0/+1
| | | | | | | | | | | | | | | | Closes #639
* | | | MDEV-15583 create_temp_file: remove tempnam implementationDaniel Black2018-05-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the spirit of the man page "Never use this function." lets purge off this implementation. mkstemp is a widely available alternative. Closes #661.
* | | | Merge branch '10.2' into 10.3Sergei Golubchik2018-03-281-0/+3
|\ \ \ \ | |/ / /
| * | | Merge remote-tracking branch 'origin/10.1' into 10.2Vicențiu Ciorbaru2018-03-161-0/+3
| |\ \ \ | | |/ /
| | * | fix ucontext configure checkTimo Teräs2018-03-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | musl ships the header for other purposes, but makecontext is not implemented. fix the check to detect if makecontext is implemented before enabling code using it.
* | | | Make possible to use clang on Windows (clang-cl)Vladislav Vaintroub2018-02-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | -DWITH_ASAN can be used as well now, on x64 Fix many clang-cl warnings.
* | | | Merge bb-10.2-ext into 10.3Marko Mäkelä2018-02-151-1/+11
|\ \ \ \
| * \ \ \ Merge remote-tracking branch 'origin/10.2' into bb-10.2-extAlexander Barkov2018-02-081-1/+11
| |\ \ \ \ | | |/ / /
| | * | | Merge branch 'github/10.1' into 10.2Sergei Golubchik2018-02-061-1/+11
| | |\ \ \ | | | |/ /
| | | * | Merge branch 'github/10.0' into 10.1Sergei Golubchik2018-02-021-1/+11
| | | |\ \
| | | | * \ Merge remote-tracking branch '5.5' into 10.0Vicențiu Ciorbaru2018-01-241-1/+11
| | | | |\ \ | | | | | |/
| | | | | * MDEV-14229: Stack trace is not resolved for shared objectsVicențiu Ciorbaru2018-01-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolving a stacktrace including functions in dynamic libraries requires us to look inside the libraries for the symbols. Addr2line needs to be started with the correct binary for each address on the stack. To do this, figure out which library it is using dladdr, then if the addr2line binary was started with a different binary, fork it again with the correct one. We only have one addr2line process running at any point during the stacktrace resolving step. The maximum number of forks for addr2line should generally be around 6. One for server stacktrace code, one for plugin code, one when going back into server code, one for pthread library, one for libc, one for the _start function in the server. More can come up if plugin calls server function which goes back to a plugin, etc.
| | | | | * MDEV-14469 build with cmake -DMYSQL_MAINTAINER_MODE=ON fails: 'readdir_r' is ↵Sergei Golubchik2018-01-151-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | deprecated 1. test readdir_r() availability under -Werror 2. don't protect readdir() with mutexes, it's not needed for the way we use readdir()
| * | | | | Cleanup UT_LOW_PRIORITY_CPU/UT_RESUME_PRIORITY_CPUSergey Vojtovich2018-01-131-11/+0
| |/ / / / | | | | | | | | | | | | | | | Server already has HMT_low/HMT_medium.
* | | | | Minor spelling fixes in code comments, docs and outputOtto Kekäläinen2018-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This commit does not touch any variable names or any other actual code, and thus should not in any way affect how the code works.
* | | | | Cleanup UT_LOW_PRIORITY_CPU/UT_RESUME_PRIORITY_CPUSergey Vojtovich2017-11-281-11/+0
| | | | | | | | | | | | | | | | | | | | Server already has HMT_low/HMT_medium.
* | | | | MDEV-13656 10.3 does not build on CentOS 5 x86Sergei Golubchik2017-09-011-1/+2
| | | | | | | | | | | | | | | | | | | | followup for 62139dc2e27
* | | | | MDEV-13656 10.3 does not build on CentOS 5 x86Sergei Golubchik2017-08-281-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Force -march=i686 (just like innodb used to do for years). And disable query_response_time plugin, it fails to compile with /mnt/server/plugin/query_response_time/query_response_time.cc:279: error: unable to find a register to spill in class ‘GENERAL_REGS’ /mnt/server/plugin/query_response_time/query_response_time.cc:279: error: this is the insn: (insn:HI 70 69 71 9 /mnt/server/include/my_atomic.h:194 (parallel [ (set (reg:DI 82) (mem/v:DI (plus:SI (reg/f:SI 79) (reg:SI 78)) [-1 S8 A32])) (set (mem/v:DI (plus:SI (reg/f:SI 79) (reg:SI 78)) [-1 S8 A32]) (unspec_volatile:DI [ (mem/v:DI (plus:SI (reg/f:SI 79) (reg:SI 78)) [-1 S8 A32]) (reg:DI 82) (reg:SI 83) (reg:SI 84) ] 10)) (set (reg:CCZ 17 flags) (compare:CCZ (unspec_volatile:DI [ (mem/v:DI (plus:SI (reg/f:SI 79) (reg:SI 78)) [-1 S8 A32]) (reg:DI 82) (reg:SI 83) (reg:SI 84) ] 11) (reg:DI 82))) ]) 1101 {*sync_double_compare_and_swap_ccdi_pic} (insn_list:REG_DEP_TRUE 68 (insn_list:REG_DEP_TRUE 69 (nil))) (expr_list:REG_DEAD (reg:SI 84) (expr_list:REG_DEAD (reg:SI 83) (nil))))
* | | | | Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3Alexander Barkov2016-12-301-1/+0
|\ \ \ \ \ | |/ / / /
| * | | | Merge branch '10.1' into 10.2Sergei Golubchik2016-12-291-1/+0
| |\ \ \ \ | | |/ / /
| | * | | Merge branch '10.0' into 10.1Sergei Golubchik2016-12-111-1/+0
| | |\ \ \ | | | |/ /
| | | * | Merge branch '5.5' into 10.0Sergei Golubchik2016-12-091-1/+0
| | | |\ \ | | | | |/
| | | | * MDEV-10293 'setupterm' was not declared in this scopeSergei Golubchik2016-12-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check for readline before checking for curses headers, because MYSQL_CHECK_READLINE fails when curses is not found, but CHECK_INCLUDE_FILES simply remembers the fact and continues. So if there's no curses, MYSQL_CHECK_READLINE will abort, the user will then installs curses and continue the build. Thus, CHECK_INCLUDE_HEADERS will remember that there is no curses, but other checks from MYSQL_CHECK_READLINE will remember that curses are there. It will result in inconsistent HAVE_xxx defines.
* | | | | MDEV-11212 - Clean-up MariaDB atomic operationsSergey Vojtovich2016-12-131-42/+32
|/ / / / | | | | | | | | | | | | | | | | Removed MY_ATOMIC_MODE_DUMMY and WITH_ATOMIC_OPS: MariaDB is not functional without atomic operations anymore.
* | | | Merge branch '10.2' into bb-10.2-janSergei Golubchik2016-09-191-1/+1
|\ \ \ \
| * \ \ \ Merge branch '10.1' into 10.2Sergei Golubchik2016-09-091-1/+1
| |\ \ \ \ | | |/ / /