mariadb/cmake
Marko Mäkelä a87bb96ecb MDEV-36234: Add innodb_linux_aio
This controls which linux implementation to use for
innodb_use_native_aio=ON.

innodb_linux_aio=auto is equivalent to innodb_linux_aio=io_uring when
it is available, and falling back to innodb_linux_aio=aio when not.

Debian packaging is no longer aio exclusive or uring, so
for those older Debian or Ubuntu releases, its a remove_uring directive.
For more recent releases, add mandatory liburing for consistent packaging.

WITH_LIBAIO is now an independent option from WITH_URING.

LINUX_NATIVE_AIO preprocessor constant is renamed to HAVE_LIBAIO,
analogous to existing HAVE_URING.

tpool::is_aio_supported(): A common feature check.

is_linux_native_aio_supported(): Remove. This had originally been added in
mysql/mysql-server@0da310b69d in 2012
to fix an issue where io_submit() on CentOS 5.5 would return EINVAL
for a /tmp/#sql*.ibd file associated with CREATE TEMPORARY TABLE.
But, starting with commit 2e814d4702 InnoDB
temporary tables will be written to innodb_temp_data_file_path.
The 2012 commit said that the error could occur on "old kernels".
Any GNU/Linux distribution that we currently support should be based
on a newer Linux kernel; for example, Red Hat Enterprise Linux 7
was released in 2014.

tpool::create_linux_aio(): Wraps the Linux implementations:
create_libaio() and create_liburing(), each defined in separate
compilation units (aio_linux.cc, aio_libaio.cc, aio_liburing.cc).

The CMake definitions are simplified using target_sources() and
target_compile_definitions(), all available since CMake 2.8.12.
With this change, there is no need to include ${CMAKE_SOURCE_DIR}/tpool
or add TPOOL_DEFINES flags anymore, target_link_libraries(lib tpool)
does all that.

This is joint work with Daniel Black and Vladislav Vaintroub.
2025-06-23 13:51:52 +03:00
..
build_configurations Debian/Hurd doesn't support auth_socket 2025-06-18 09:11:28 +10:00
Internal/CPack Merge branch '10.4' into 10.5 2021-12-07 21:30:27 +01:00
os Rocksdb: Add missing getauxval() test for Linux 2025-06-13 14:08:22 +10:00
abi_check.cmake Merge branch '10.4' into 10.5 2022-10-26 15:26:06 +02:00
aws_sdk.cmake MDEV-30831 Cannot compile AWS KMS Plugin 2025-06-10 15:18:28 +02:00
build_depends.cmake MDEV-19740 Debug build of 10.3.15 FTBFS 2019-08-19 10:38:24 +03:00
character_sets.cmake A cleanup for MDEV-19897 Rename source code variable names from utf8 to utf8mb3 2019-06-28 21:12:57 +04:00
check_compiler_flag.cmake Merge 10.1 into 10.2 2019-06-12 10:30:01 +03:00
check_linker_flag.cmake MDEV-23887: check_linker_flags correct for old cmake compatibility 2020-10-21 19:11:02 +11:00
compile_flags.cmake Update FSF Address 2019-05-11 21:29:06 +03:00
configurable_file_content.in
configure.pl Fix all warnings given by UBSAN 2021-04-20 12:30:09 +03:00
cpack_deb.cmake MDEV-24292 support semi-independent versioning for sub-packages 2021-01-12 16:47:23 +01:00
cpack_rpm.cmake Merge branch '10.6' into 10.11 2025-04-26 10:47:03 +02:00
cpack_source_ignore_files.cmake don't include .git files in source packages 2020-05-27 15:56:40 +02:00
cpack_tgz.cmake MDEV-14938 make buildbot to include galera into bintars 2022-01-07 15:37:00 +01:00
cpu_info.cmake cmake: fewer Build-Depends in SRPM 2021-05-22 21:56:51 +02:00
create_initial_db.cmake Added comment to create_inital_db.cmake of how to run it 2021-05-19 22:54:11 +02:00
ctest.cmake Revert "MDEV-16075: Workaround to run MTR test suite for make test" 2018-06-20 23:27:23 +02:00
do_abi_check.cmake Merge 10.4 into 10.5 2021-06-21 14:22:22 +03:00
dtrace.cmake Replace deprecated CMAKE_COMPILER_IS_GNU(CC|CXX) with CMAKE_(C|CXX)_COMPILER_ID 2025-06-03 18:16:35 +10:00
dtrace_prelink.cmake Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
FindBISON.cmake cmake: quieter 2020-05-31 11:29:43 +02:00
FindGit.cmake cmake: silence repeated git searches too 2021-05-22 21:56:51 +02:00
FindJava.cmake Revert "MDEV-31230: Fix CONNECT_JDBC in CMake" 2023-06-02 09:02:41 +02:00
FindJNI.cmake Revert "MDEV-31230: Fix CONNECT_JDBC in CMake" 2023-06-02 09:02:41 +02:00
FindLIBAIO.cmake Change Find*.cmake modules to match conventions 2021-10-27 15:55:14 +02:00
FindLZ4.cmake cmake: detect lz4 version, require >= 1.6 2021-12-08 10:31:00 +01:00
FindLZO.cmake Change Find*.cmake modules to match conventions 2021-10-27 15:55:14 +02:00
FindSnappy.cmake Change Find*.cmake modules to match conventions 2021-10-27 15:55:14 +02:00
FindURING.cmake Change Find*.cmake modules to match conventions 2021-10-27 15:55:14 +02:00
FindZSTD.cmake Change Find*.cmake modules to match conventions 2021-10-27 15:55:14 +02:00
for_clients.cmake Merge branch '10.4' into 10.5 2021-07-31 23:19:51 +02:00
info_bin.cmake Update FSF Address 2019-05-11 21:29:06 +03:00
info_macros.cmake.in Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
info_src.cmake Update FSF Address 2019-05-11 21:29:06 +03:00
install_layout.cmake MDEV-22552: mytop packaging 2021-10-25 12:15:49 +02:00
install_macros.cmake Merge branch '10.8' into 10.9 2023-01-31 10:37:31 +01:00
jemalloc.cmake Merge 10.2 into 10.3 2021-07-22 18:57:54 +03:00
libfmt.cmake MDEV-35746 support fmtlib-11.1.0 2025-03-31 15:37:10 +02:00
libutils.cmake better disable lto for libmysqld_exports.cc 2024-10-17 21:37:37 +02:00
maintainer.cmake Merge branch '10.6' into 10.11 2025-06-04 14:09:23 +02:00
make_dist.cmake.in followup: rename generated files to have distinct names 2021-05-27 00:40:23 +02:00
mariadb_connector_c.cmake MDEV-34859: Pass thorugh -DWITH_BOOST_CONTEXT to libmariadb 2024-10-22 09:37:13 +02:00
merge_archives_unix.cmake libutils: merge_archives_unix 2020-06-18 14:15:36 +03:00
misc.cmake cleanup: CPACK_RPM_* package description 2019-07-10 09:02:10 +02:00
mysql_add_executable.cmake Merge branch '10.4' into 10.5 2022-08-10 12:24:31 +02:00
mysql_version.cmake Merge branch '10.4' into 10.5 2024-01-31 17:32:53 +01:00
numa.cmake Merge 10.2 into 10.3 2021-07-22 18:57:54 +03:00
package_name.cmake Merge branch '10.5' into 10.6 2024-01-31 18:04:03 +01:00
pcre.cmake Merge branch '10.5' into 10.6 2025-03-31 12:12:50 +02:00
plugin.cmake MDEV-36234: Add innodb_linux_aio 2025-06-23 13:51:52 +03:00
readline.cmake Improve READLINE_V5 detection 2024-01-23 18:38:22 +02:00
sign.cmake.in Fix typos in the codebase. 2022-08-09 18:41:09 +03:00
ssl.cmake openssl: add a more specific DES support detection 2024-04-30 23:09:02 +10:00
submodules.cmake Merge 10.3 into 10.4 2022-03-29 11:13:18 +03:00
symlinks.cmake MDEV-21303: Fix man page packaging for new mariadb-* named binaries 2020-04-05 00:24:24 +03:00
systemd.cmake Revert "MDEV-36591: RHEL8(+compat)/Ubuntu 20.04 cannot start systemd servce (EXIT_CAPABILTIES/218)" 2025-04-25 17:48:13 +02:00
tags.cmake Update FSF Address 2019-05-11 21:29:06 +03:00
versioninfo.rc.in Update FSF Address 2019-05-11 21:29:06 +03:00
win_compatibility.manifest MDEV-26713 Set activeCodePage=UTF8 for windows programs 2021-12-15 19:13:57 +01:00
wsrep.cmake MDEV-34313 WITHOUT_SERVER/WSREP postfix 2024-06-29 10:24:09 +10:00
zlib.cmake MDEV-33876 CMake, zlib - use names compatible with official FindZLIB.cmake 2024-05-03 21:48:47 +02:00