diff options
author | Monty <monty@mariadb.org> | 2018-01-25 00:49:12 +0200 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2018-01-26 14:49:36 +0400 |
commit | 51a1c2fc241956e008f792604f8492c15a01a8b7 (patch) | |
tree | fc2e4582e6408f50770dd81beea1e11bd224b074 | |
parent | e6560c9058e261dc28c0f2de5be2f9191bfc0c29 (diff) | |
download | mariadb-git-51a1c2fc241956e008f792604f8492c15a01a8b7.tar.gz |
Temporary compile release builds with -O
This is done to get out more while debugging cores. Will not be pushed
into main branch.
Also TRASH freed memory to make it easier to find out
access to it.
-rwxr-xr-x | BUILD/SETUP.sh | 2 | ||||
-rw-r--r-- | cmake/build_configurations/mysql_release.cmake | 8 | ||||
-rw-r--r-- | include/my_valgrind.h | 2 | ||||
-rw-r--r-- | mysys/my_malloc.c | 7 |
4 files changed, 13 insertions, 6 deletions
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh index 3a1a861f2f8..c6f20de4ec8 100755 --- a/BUILD/SETUP.sh +++ b/BUILD/SETUP.sh @@ -173,7 +173,7 @@ base_cxxflags="-felide-constructors -fexceptions -fno-rtti" # # Flags for optimizing builds. # Be as fast as we can be without losing our ability to backtrace. -fast_cflags="-O3 -fno-omit-frame-pointer" +fast_cflags="-O3 -fno-omit-frame-pointer -DTRASH_FREE_MEMORY" debug_configs="--with-debug" if [ -z "$full_debug" ] diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake index fcac8dde6e9..fcfb5223bc7 100644 --- a/cmake/build_configurations/mysql_release.cmake +++ b/cmake/build_configurations/mysql_release.cmake @@ -156,14 +156,14 @@ IF(UNIX) # Default GCC flags IF(CMAKE_COMPILER_IS_GNUCC) - SET(COMMON_C_FLAGS "-g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized") + SET(COMMON_C_FLAGS "-g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized -DTRASH_FREE_MEMORY") SET(CMAKE_C_FLAGS_DEBUG "-O ${COMMON_C_FLAGS}") - SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 ${COMMON_C_FLAGS}") + SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O ${COMMON_C_FLAGS}") ENDIF() IF(CMAKE_COMPILER_IS_GNUCXX) - SET(COMMON_CXX_FLAGS "-g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized") + SET(COMMON_CXX_FLAGS "-g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized -DTRASH_FREE_MEMORY") SET(CMAKE_CXX_FLAGS_DEBUG "-O ${COMMON_CXX_FLAGS}") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${COMMON_CXX_FLAGS}") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O ${COMMON_CXX_FLAGS}") ENDIF() # IBM Z flags diff --git a/include/my_valgrind.h b/include/my_valgrind.h index dbbc4fad5ab..65195147bf3 100644 --- a/include/my_valgrind.h +++ b/include/my_valgrind.h @@ -32,7 +32,7 @@ # define MEM_CHECK_DEFINED(a,len) ((void) 0) #endif /* HAVE_VALGRIND_MEMCHECK_H */ -#ifndef DBUG_OFF +#if !defined(DBUG_OFF) || defined(TRASH_FREE_MEMORY) #define TRASH_FILL(A,B,C) do { const size_t trash_tmp= (B); memset(A, C, trash_tmp); MEM_UNDEFINED(A, trash_tmp); } while (0) #else #define TRASH_FILL(A,B,C) do{ const size_t trash_tmp __attribute__((unused)) = (B) ; MEM_CHECK_ADDRESSABLE(A,trash_tmp);MEM_UNDEFINED(A,trash_tmp);} while (0) diff --git a/mysys/my_malloc.c b/mysys/my_malloc.c index 719c13a040e..2b34c89f5e4 100644 --- a/mysys/my_malloc.c +++ b/mysys/my_malloc.c @@ -214,6 +214,13 @@ void my_free(void *ptr) my_bool old_flags; old_size= MALLOC_SIZE_AND_FLAG(ptr, &old_flags); update_malloc_size(- (longlong) old_size - MALLOC_PREFIX_SIZE, old_flags); +#ifndef SAFEMALLOC + /* + Trash memory if not safemalloc. We don't have to do this if safemalloc + is used as safemalloc will also do trashing + */ + TRASH_FREE(ptr, old_size); +#endif sf_free(MALLOC_FIX_POINTER_FOR_FREE(ptr)); } DBUG_VOID_RETURN; |