diff options
author | Monty <monty@mariadb.org> | 2021-06-18 18:40:05 +0300 |
---|---|---|
committer | Vicențiu Ciorbaru <cvicentiu@gmail.com> | 2021-07-18 19:59:35 +0300 |
commit | b1d81974b21ad99f1b6d26d744e36a12ee4026a7 (patch) | |
tree | bf165cee42987de9f3c78bea880eb0923c6af34d /configure.cmake | |
parent | d378a466a5f9b655a73f4eb86c3eea1042b36cd7 (diff) | |
download | mariadb-git-b1d81974b21ad99f1b6d26d744e36a12ee4026a7.tar.gz |
Added support to MEM_ROOT for write protected memory
This is useful for thing like Item_true and Item_false that we
allocated and initalize once and want to ensure that nothing can
change them
Main changes:
- Memory protection is achived by allocating memory with mmap() and
protect it from write with mprotect()
- init_alloc_root(...,MY_ROOT_USE_MPROTECT) will create a
memroot that one can later use with protect_root() to turn it
read only or turn it back to read-write. All allocations to this
memroot is done with mmap() to ensure page alligned allocations.
- alloc_root() code was rearranged to combine normal and valgrind code.
- init_alloc_root() now changes block size to be power of 2's, to get less
memory fragmentation.
- Changed MEM_ROOT structure to make it smaller. Also renamed
MEM_ROOT m_psi_key to psi_key.
- Moved MY_THREAD_SPECIFIC marker in MEM_ROOT from block size (old hack)
to flags.
- Added global variable my_system_page_size. This is initialized at
startup.
Diffstat (limited to 'configure.cmake')
-rw-r--r-- | configure.cmake | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/configure.cmake b/configure.cmake index 03bb6b044fe..5d2ba365d65 100644 --- a/configure.cmake +++ b/configure.cmake @@ -374,6 +374,7 @@ CHECK_FUNCTION_EXISTS (mlock HAVE_MLOCK) CHECK_FUNCTION_EXISTS (mlockall HAVE_MLOCKALL) CHECK_FUNCTION_EXISTS (mmap HAVE_MMAP) CHECK_FUNCTION_EXISTS (mmap64 HAVE_MMAP64) +CHECK_FUNCTION_EXISTS (mprotect HAVE_MPROTECT) CHECK_FUNCTION_EXISTS (perror HAVE_PERROR) CHECK_FUNCTION_EXISTS (poll HAVE_POLL) CHECK_FUNCTION_EXISTS (posix_fallocate HAVE_POSIX_FALLOCATE) |