diff options
author | Brad Smith <brad@comstyle.com> | 2022-08-21 00:34:41 -0400 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-08-22 09:10:40 +0300 |
commit | f02ca429f70c16be2b2e3d5671d9990cd3d474b6 (patch) | |
tree | 55a43f6ec4c612bff7405e557065f32f786aea7d | |
parent | 7624bf868ed0d08276cb27c5cdbd007faf4de3c4 (diff) | |
download | mariadb-git-f02ca429f70c16be2b2e3d5671d9990cd3d474b6.tar.gz |
Revert aligned_alloc() addition from MDEV-28836
As pointed out with MDEV-29308 there are issues with the code as is.
MariaDB is built as C++11 / C99. aligned_alloc() is not guarenteed
to be exposed when building with any mode other than C++17 / C11.
The other *BSD's have their stdlib.h header to expose the function
with C+11 anyway, but the issue exists in the C99 code too, the
build just does not use -Werror. Linux globally defines _GNU_SOURCE
hiding the issue as well.
-rw-r--r-- | cmake/os/WindowsCache.cmake | 1 | ||||
-rw-r--r-- | config.h.cmake | 1 | ||||
-rw-r--r-- | configure.cmake | 8 | ||||
-rw-r--r-- | include/aligned.h | 5 | ||||
-rw-r--r-- | storage/innobase/buf/buf0flu.cc | 3 |
5 files changed, 1 insertions, 17 deletions
diff --git a/cmake/os/WindowsCache.cmake b/cmake/os/WindowsCache.cmake index 923ec371609..a5f808c8d2c 100644 --- a/cmake/os/WindowsCache.cmake +++ b/cmake/os/WindowsCache.cmake @@ -23,7 +23,6 @@ IF(MSVC) SET(BFD_H_EXISTS 0 CACHE INTERNAL "") SET(HAVE_ACCESS 1 CACHE INTERNAL "") SET(HAVE_ALARM CACHE INTERNAL "") -SET(HAVE_ALIGNED_ALLOC CACHE INTERNAL "") SET(HAVE_ALLOCA_H CACHE INTERNAL "") SET(HAVE_ARPA_INET_H CACHE INTERNAL "") SET(HAVE_BACKTRACE CACHE INTERNAL "") diff --git a/config.h.cmake b/config.h.cmake index 4ff2f2fbf12..568e0868d12 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -19,7 +19,6 @@ /* Headers we may want to use. */ #cmakedefine STDC_HEADERS 1 #cmakedefine _GNU_SOURCE 1 -#cmakedefine HAVE_ALIGNED_ALLOC 1 #cmakedefine HAVE_ALLOCA_H 1 #cmakedefine HAVE_ARPA_INET_H 1 #cmakedefine HAVE_ASM_TERMBITS_H 1 diff --git a/configure.cmake b/configure.cmake index a3f607e6bcf..5b49a065b5a 100644 --- a/configure.cmake +++ b/configure.cmake @@ -326,14 +326,6 @@ ENDIF() CHECK_FUNCTION_EXISTS (accept4 HAVE_ACCEPT4) CHECK_FUNCTION_EXISTS (access HAVE_ACCESS) CHECK_FUNCTION_EXISTS (alarm HAVE_ALARM) -IF (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT WITH_ASAN) - # When an old custom memory allocator library is used, aligned_alloc() - # could invoke the built-in allocator in libc, not matching - # the overriden free() in the custom memory allocator. - SET(HAVE_ALIGNED_ALLOC 0) -ELSE() - CHECK_FUNCTION_EXISTS (aligned_alloc HAVE_ALIGNED_ALLOC) -ENDIF() SET(HAVE_ALLOCA 1) CHECK_FUNCTION_EXISTS (backtrace HAVE_BACKTRACE) CHECK_FUNCTION_EXISTS (backtrace_symbols HAVE_BACKTRACE_SYMBOLS) diff --git a/include/aligned.h b/include/aligned.h index 0ae1f0d0848..81bd5d3f6f7 100644 --- a/include/aligned.h +++ b/include/aligned.h @@ -14,8 +14,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ -#ifdef HAVE_ALIGNED_ALLOC -#elif defined __linux__ +#if defined __linux__ # include <malloc.h> #endif @@ -23,8 +22,6 @@ inline void *aligned_malloc(size_t size, size_t alignment) { #ifdef _WIN32 return _aligned_malloc(size, alignment); -#elif defined HAVE_ALIGNED_ALLOC - return aligned_alloc(alignment, size); #elif defined __linux__ return memalign(alignment, size); #else diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index a2ec96183b6..1e6c441bb76 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -580,9 +580,6 @@ static void buf_tmp_reserve_compression_buf(buf_tmp_buffer_t* slot) #elif defined HAVE_SNAPPY size= snappy_max_compressed_length(size); #endif -#if defined HAVE_ALIGNED_ALLOC && (defined HAVE_LZO || defined HAVE_SNAPPY) - size= MY_ALIGN(size, srv_page_size); -#endif slot->comp_buf= static_cast<byte*>(aligned_malloc(size, srv_page_size)); } |