From f02ca429f70c16be2b2e3d5671d9990cd3d474b6 Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Sun, 21 Aug 2022 00:34:41 -0400 Subject: [PATCH] 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. --- cmake/os/WindowsCache.cmake | 1 - config.h.cmake | 1 - configure.cmake | 8 -------- include/aligned.h | 5 +---- storage/innobase/buf/buf0flu.cc | 3 --- 5 files changed, 1 insertion(+), 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 #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 @@ -579,9 +579,6 @@ static void buf_tmp_reserve_compression_buf(buf_tmp_buffer_t* slot) size= size + LZO1X_1_15_MEM_COMPRESS; #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(aligned_malloc(size, srv_page_size)); }