summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Smith <brad@comstyle.com>2022-08-21 00:34:41 -0400
committerMarko Mäkelä <marko.makela@mariadb.com>2022-08-22 09:10:40 +0300
commitf02ca429f70c16be2b2e3d5671d9990cd3d474b6 (patch)
tree55a43f6ec4c612bff7405e557065f32f786aea7d
parent7624bf868ed0d08276cb27c5cdbd007faf4de3c4 (diff)
downloadmariadb-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.cmake1
-rw-r--r--config.h.cmake1
-rw-r--r--configure.cmake8
-rw-r--r--include/aligned.h5
-rw-r--r--storage/innobase/buf/buf0flu.cc3
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));
}