We are now using Valgrind rather than purify, and have for quite some time.

Consequently, rename HAVE_purify to HAVE_valgrind, and related changes.
Leave some comments about purify when not clear that they apply also to Valgrind.
Fix redundant IF_VALGRIND declaration.

Misc. small fixes:
 - Fixes for pool-of-threads patch.
 - Fixes for push of PBXT storage engine.
 - mysql-test-run.pl fix.
 - Fix build problem in compile-pentium64-max.


BUILD/SETUP.sh:
  Rename purify -> valgrind.
BUILD/build_mccge.sh:
  Rename purify -> valgrind.
BUILD/compile-dist:
  Fix that PBXT was missing in source tarball after `BUILD/compile-dist && make dist`
BUILD/compile-pentium64-max:
  Fix a build problem with BUILD/compile-pentium64-max on CentOS/Fedora Core 10 amd64.
        
  On these systems, there is libz.so but no libz.a. Finding libz.so, ./configure decides
  to use system zlib. But since BUILD/compile-pentium64-max builds a fully static binary
  with -all-static, the link of mysqld fails due to missing libz.a.
        
  Fix by using bundled zlib in the build script.
BUILD/compile-solaris-sparc-purify:
  Rename purify -> valgrind.
include/m_string.h:
  Rename purify -> valgrind.
include/my_global.h:
  Rename purify -> valgrind.
mysql-test/Makefile.am:
  Fix that PBXT test suite was missing from `make dist` source tarball.
mysql-test/lib/mtr_unique.pm:
  Better fix to avoid races when chmod'ing the semaphore file.
  (Though using chmod 666 shared files in /tmp/ is still not a very good solution).
mysql-test/t/pool_of_threads.cnf:
  Fix that test case pool_of_threads fails if run on mysqld with no --with-libevent support.
mysys/mf_qsort.c:
  Rename purify -> valgrind.
mysys/my_alloc.c:
  Rename purify -> valgrind.
mysys/my_init.c:
  Rename purify -> valgrind.
mysys/my_rnd.c:
  Rename purify -> valgrind.
mysys/safemalloc.c:
  Rename purify -> valgrind.
scripts/mysql_config.pl.in:
  Rename purify -> valgrind.
scripts/mysql_config.sh:
  Rename purify -> valgrind.
sql/field_conv.cc:
  Rename purify -> valgrind.
sql/filesort.cc:
  Rename purify -> valgrind.
sql/ha_partition.cc:
  Rename purify -> valgrind.
sql/hostname.cc:
  Rename purify -> valgrind.
sql/item_timefunc.cc:
  Rename purify -> valgrind.
sql/log_event.cc:
  Rename purify -> valgrind.
sql/log_event_old.cc:
  Rename purify -> valgrind.
sql/my_decimal.h:
  Rename purify -> valgrind.
sql/mysqld.cc:
  Rename purify -> valgrind.
  Fix redundant IF_VALGRIND declaration.
sql/opt_range.cc:
  Rename purify -> valgrind.
sql/opt_range.h:
  Rename purify -> valgrind.
sql/records.cc:
  Rename purify -> valgrind.
sql/rpl_rli.cc:
  Rename purify -> valgrind.
sql/rpl_rli.h:
  Rename purify -> valgrind.
sql/set_var.cc:
  Fix missing static declaration on pool_of_threads.
sql/slave.cc:
  Rename purify -> valgrind.
sql/sql_base.cc:
  Rename purify -> valgrind.
sql/sql_binlog.cc:
  Rename purify -> valgrind.
sql/sql_class.cc:
  Rename purify -> valgrind.
sql/sql_list.h:
  Rename purify -> valgrind.
sql/sql_load.cc:
  Rename purify -> valgrind.
sql/sql_select.cc:
  Rename purify -> valgrind.
sql/table.cc:
  Rename purify -> valgrind.
storage/archive/azio.c:
  Rename purify -> valgrind.
storage/innobase/buf/buf0buf.c:
  Rename purify -> valgrind.
storage/innobase/include/univ.i:
  Rename purify -> valgrind.
storage/innobase/srv/srv0start.c:
  Rename purify -> valgrind.
storage/maria/ha_maria.cc:
  Rename purify -> valgrind.
storage/maria/ma_blockrec.c:
  Rename purify -> valgrind.
storage/maria/ma_check.c:
  Rename purify -> valgrind.
storage/maria/ma_loghandler.c:
  Rename purify -> valgrind.
storage/maria/ma_packrec.c:
  Rename purify -> valgrind.
storage/maria/ma_page.c:
  Rename purify -> valgrind.
storage/maria/ma_pagecrc.c:
  Rename purify -> valgrind.
storage/maria/ma_search.c:
  Rename purify -> valgrind.
storage/myisam/mi_check.c:
  Rename purify -> valgrind.
storage/myisam/mi_page.c:
  Rename purify -> valgrind.
storage/myisam/mi_search.c:
  Rename purify -> valgrind.
storage/myisammrg/ha_myisammrg.cc:
  Rename purify -> valgrind.
strings/bcmp.c:
  Rename purify -> valgrind.
strings/decimal.c:
  Rename purify -> valgrind.
strings/strmake.c:
  Rename purify -> valgrind.
This commit is contained in:
unknown 2009-05-06 14:03:24 +02:00
parent 059b9356a1
commit b125770aaa
59 changed files with 115 additions and 119 deletions

View File

@ -119,7 +119,7 @@ fi
# Set flags for various build configurations. # Set flags for various build configurations.
# Used in -valgrind builds # Used in -valgrind builds
valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify " valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_valgrind "
valgrind_flags="$valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max" valgrind_flags="$valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
# #
# Used in -debug builds # Used in -debug builds

View File

@ -938,7 +938,7 @@ set_up_ccache()
set_valgrind_flags() set_valgrind_flags()
{ {
if test "x$valgrind_flag" = "xyes" ; then if test "x$valgrind_flag" = "xyes" ; then
loc_valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify " loc_valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_valgrind "
loc_valgrind_flags="$loc_valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max" loc_valgrind_flags="$loc_valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
compiler_flags="$compiler_flags $loc_valgrind_flags" compiler_flags="$compiler_flags $loc_valgrind_flags"
fi fi

View File

@ -60,8 +60,6 @@ fi
# Make sure to enable all features that affect "make dist" # Make sure to enable all features that affect "make dist"
# Remember that configure restricts the man pages to the configured features ! # Remember that configure restricts the man pages to the configured features !
./configure \ ./configure \
--with-maria-storage-engine \ --with-plugins=max-no-ndb \
--with-embedded-server \ --with-embedded-server
--with-ndbcluster $gmake -j4
$gmake

View File

@ -4,7 +4,10 @@ path=`dirname $0`
. "$path/SETUP.sh" . "$path/SETUP.sh"
extra_flags="$pentium64_cflags $fast_cflags" extra_flags="$pentium64_cflags $fast_cflags"
extra_configs="$pentium_configs $max_configs $static_link" # On CentOS/Fedora Core 10 amd64, there is system libz.so but not
# libz.a, so need to use bundled zlib when building static
# binary. Hence we use --with-zlib-dir=bundled
extra_configs="$pentium_configs $max_configs $static_link --with-zlib-dir=bundled"
CC="$CC --pipe" CC="$CC --pipe"
strip=yes strip=yes

View File

@ -37,7 +37,7 @@ make -k maintainer-clean || true
path=`dirname $0` path=`dirname $0`
. "$path/autorun.sh" . "$path/autorun.sh"
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_valgrind -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_valgrind -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
make -j 4 make -j 4

View File

@ -108,7 +108,7 @@ extern const double log_10[309];
#define memcpy_fixed(A,B,C) memcpy((A),(B),(C)) #define memcpy_fixed(A,B,C) memcpy((A),(B),(C))
#endif #endif
#if (!defined(USE_BMOVE512) || defined(HAVE_purify)) && !defined(bmove512) #if (!defined(USE_BMOVE512) || defined(HAVE_valgrind)) && !defined(bmove512)
#define bmove512(A,B,C) memcpy(A,B,C) #define bmove512(A,B,C) memcpy(A,B,C)
#endif #endif
@ -125,14 +125,14 @@ extern void bzero(uchar * dst,size_t len);
#if !defined(bcmp) && !defined(HAVE_BCMP) #if !defined(bcmp) && !defined(HAVE_BCMP)
extern size_t bcmp(const uchar *s1,const uchar *s2,size_t len); extern size_t bcmp(const uchar *s1,const uchar *s2,size_t len);
#endif #endif
#ifdef HAVE_purify #ifdef HAVE_valgrind
extern size_t my_bcmp(const uchar *s1,const uchar *s2,size_t len); extern size_t my_bcmp(const uchar *s1,const uchar *s2,size_t len);
#undef bcmp #undef bcmp
#define bcmp(A,B,C) my_bcmp((A),(B),(C)) #define bcmp(A,B,C) my_bcmp((A),(B),(C))
#define bzero_if_purify(A,B) bzero(A,B) #define bzero_if_valgrind(A,B) bzero(A,B)
#else #else
#define bzero_if_purify(A,B) #define bzero_if_valgrind(A,B)
#endif /* HAVE_purify */ #endif /* HAVE_valgrind */
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) #if defined(_lint) || defined(FORCE_INIT_OF_VARS)
#define LINT_INIT_STRUCT(var) bzero(&var, sizeof(var)) /* No uninitialize-warning */ #define LINT_INIT_STRUCT(var) bzero(&var, sizeof(var)) /* No uninitialize-warning */

View File

@ -563,16 +563,16 @@ int __void__;
#define LINT_INIT(var) #define LINT_INIT(var)
#endif #endif
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_purify) #if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_valgrind)
#define PURIFY_OR_LINT_INIT(var) var=0 #define VALGRIND_OR_LINT_INIT(var) var=0
#else #else
#define PURIFY_OR_LINT_INIT(var) #define VALGRIND_OR_LINT_INIT(var)
#endif #endif
#ifdef HAVE_purify #ifdef HAVE_valgrind
#define IF_PURIFY(A,B) (A) #define IF_VALGRIND(A,B) (A)
#else #else
#define IF_PURIFY(A,B) (B) #define IF_VALGRIND(A,B) (B)
#endif #endif
#if !defined(HAVE_UINT) #if !defined(HAVE_UINT)
@ -1174,7 +1174,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
((uint32) (uchar) (A)[0]))) ((uint32) (uchar) (A)[0])))
#define sint4korr(A) (*((const long *) (A))) #define sint4korr(A) (*((const long *) (A)))
#define uint2korr(A) (*((const uint16 *) (A))) #define uint2korr(A) (*((const uint16 *) (A)))
#if defined(HAVE_purify) && !defined(_WIN32) #if defined(HAVE_valgrind) && !defined(_WIN32)
#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ #define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
(((uint32) ((uchar) (A)[1])) << 8) +\ (((uint32) ((uchar) (A)[1])) << 8) +\
(((uint32) ((uchar) (A)[2])) << 16)) (((uint32) ((uchar) (A)[2])) << 16))
@ -1186,7 +1186,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
It means, that you have to provide enough allocated space ! It means, that you have to provide enough allocated space !
*/ */
#define uint3korr(A) (long) (*((const unsigned int *) (A)) & 0xFFFFFF) #define uint3korr(A) (long) (*((const unsigned int *) (A)) & 0xFFFFFF)
#endif /* HAVE_purify && !_WIN32 */ #endif /* HAVE_valgrind && !_WIN32 */
#define uint4korr(A) (*((const uint32 *) (A))) #define uint4korr(A) (*((const uint32 *) (A)))
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ #define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
(((uint32) ((uchar) (A)[1])) << 8) +\ (((uint32) ((uchar) (A)[1])) << 8) +\

View File

@ -98,7 +98,8 @@ TEST_DIRS = t r include std_data std_data/parts \
suite/stress/include suite/stress/t suite/stress/r \ suite/stress/include suite/stress/t suite/stress/r \
suite/ndb suite/ndb/t suite/ndb/r \ suite/ndb suite/ndb/t suite/ndb/r \
suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \ suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \
suite/parts suite/parts/t suite/parts/r suite/parts/inc suite/parts suite/parts/t suite/parts/r suite/parts/inc \
suite/pbxt/t suite/pbxt/r
# Used by dist-hook and install-data-local to copy all # Used by dist-hook and install-data-local to copy all
# test files into either dist or install directory # test files into either dist or install directory

View File

@ -62,14 +62,14 @@ sub mtr_get_unique_id($$) {
die 'lock file is a symbolic link'; die 'lock file is a symbolic link';
} }
my $save_umask= umask(0);
open SEM, ">", "$file.sem" or die "can't write to $file.sem"; open SEM, ">", "$file.sem" or die "can't write to $file.sem";
chmod 0777, "$file.sem";
flock SEM, LOCK_EX or die "can't lock $file.sem"; flock SEM, LOCK_EX or die "can't lock $file.sem";
if(! -e $file) { if(! -e $file) {
open FILE, ">", $file or die "can't create $file"; open FILE, ">", $file or die "can't create $file";
close FILE; close FILE;
} }
chmod 0777, $file; umask($save_umask);
msg("HAVE THE LOCK"); msg("HAVE THE LOCK");
@ -135,8 +135,8 @@ sub mtr_release_unique_id($) {
die 'lock file is a symbolic link'; die 'lock file is a symbolic link';
} }
my $save_umask= umask(0);
open SEM, ">", "$file.sem" or die "can't write to $file.sem"; open SEM, ">", "$file.sem" or die "can't write to $file.sem";
chmod 0777, "$file.sem";
flock SEM, LOCK_EX or die "can't lock $file.sem"; flock SEM, LOCK_EX or die "can't lock $file.sem";
msg("HAVE THE LOCK"); msg("HAVE THE LOCK");
@ -149,7 +149,7 @@ sub mtr_release_unique_id($) {
open FILE, ">", $file or die "can't create $file"; open FILE, ">", $file or die "can't create $file";
close FILE; close FILE;
} }
chmod 0777, "$file.sem"; umask($save_umask);
open FILE, "+<", $file or die "can't open $file"; open FILE, "+<", $file or die "can't open $file";
#select undef,undef,undef,0.2; #select undef,undef,undef,0.2;
seek FILE, 0, 0; seek FILE, 0, 0;

View File

@ -2,8 +2,8 @@
[mysqld.1] [mysqld.1]
test-ignore-wrong-options test-ignore-wrong-options
thread-handling= pool-of-threads loose-thread-handling= pool-of-threads
thread_pool_size= 2 loose-thread_pool_size= 2
extra-port= @mysqld.1.#extra-port extra-port= @mysqld.1.#extra-port
extra-max-connections=1 extra-max-connections=1

View File

@ -108,7 +108,7 @@ qsort_t my_qsort(void *base_ptr, size_t count, size_t size, qsort_cmp cmp)
low = (char*) base_ptr; low = (char*) base_ptr;
high = low+ size * (count - 1); high = low+ size * (count - 1);
stack_ptr = stack + 1; stack_ptr = stack + 1;
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* The first element in the stack will be accessed for the last POP */ /* The first element in the stack will be accessed for the last POP */
stack[0].low=stack[0].high=0; stack[0].low=stack[0].high=0;
#endif #endif

View File

@ -56,7 +56,7 @@ void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
mem_root->block_num= 4; /* We shift this with >>2 */ mem_root->block_num= 4; /* We shift this with >>2 */
mem_root->first_block_usage= 0; mem_root->first_block_usage= 0;
#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG)) #if !(defined(HAVE_valgrind) && defined(EXTRA_DEBUG))
if (pre_alloc_size) if (pre_alloc_size)
{ {
if ((mem_root->free= mem_root->pre_alloc= if ((mem_root->free= mem_root->pre_alloc=
@ -96,7 +96,7 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
DBUG_ASSERT(alloc_root_inited(mem_root)); DBUG_ASSERT(alloc_root_inited(mem_root));
mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE; mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE;
#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG)) #if !(defined(HAVE_valgrind) && defined(EXTRA_DEBUG))
if (pre_alloc_size) if (pre_alloc_size)
{ {
size_t size= pre_alloc_size + ALIGN_SIZE(sizeof(USED_MEM)); size_t size= pre_alloc_size + ALIGN_SIZE(sizeof(USED_MEM));
@ -147,7 +147,7 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
void *alloc_root(MEM_ROOT *mem_root, size_t length) void *alloc_root(MEM_ROOT *mem_root, size_t length)
{ {
#if defined(HAVE_purify) && defined(EXTRA_DEBUG) #if defined(HAVE_valgrind) && defined(EXTRA_DEBUG)
reg1 USED_MEM *next; reg1 USED_MEM *next;
DBUG_ENTER("alloc_root"); DBUG_ENTER("alloc_root");
DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root)); DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));

View File

@ -170,7 +170,7 @@ void my_end(int infoflag)
{ {
#ifdef HAVE_GETRUSAGE #ifdef HAVE_GETRUSAGE
struct rusage rus; struct rusage rus;
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* Purify assumes that rus is uninitialized after getrusage call */ /* Purify assumes that rus is uninitialized after getrusage call */
bzero((char*) &rus, sizeof(rus)); bzero((char*) &rus, sizeof(rus));
#endif #endif

View File

@ -26,7 +26,7 @@
void my_rnd_init(struct my_rnd_struct *rand_st, ulong seed1, ulong seed2) void my_rnd_init(struct my_rnd_struct *rand_st, ulong seed1, ulong seed2)
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero((char*) rand_st,sizeof(*rand_st)); /* Avoid UMC varnings */ bzero((char*) rand_st,sizeof(*rand_st)); /* Avoid UMC varnings */
#endif #endif
rand_st->max_value= 0x3FFFFFFFL; rand_st->max_value= 0x3FFFFFFFL;

View File

@ -304,7 +304,7 @@ void _myfree(void *ptr, const char *filename, uint lineno, myf myflags)
sf_malloc_count--; sf_malloc_count--;
pthread_mutex_unlock(&THR_LOCK_malloc); pthread_mutex_unlock(&THR_LOCK_malloc);
#ifndef HAVE_purify #ifndef HAVE_valgrind
/* Mark this data as free'ed */ /* Mark this data as free'ed */
if (!sf_malloc_quick) if (!sf_malloc_quick)
bfill(ptr, irem->datasize, (pchar) FREE_VAL); bfill(ptr, irem->datasize, (pchar) FREE_VAL);

View File

@ -44,7 +44,7 @@ use strict;
my @exclude_cflags = my @exclude_cflags =
qw/DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX qw/DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS
DEXTRA_DEBUG DHAVE_purify O O[0-9] xO[0-9] W[-A-Za-z]* DEXTRA_DEBUG DHAVE_valgrind O O[0-9] xO[0-9] W[-A-Za-z]*
Xa xstrconst xc99=none Xa xstrconst xc99=none
unroll2 ip mp restrict/; unroll2 ip mp restrict/;

View File

@ -129,7 +129,7 @@ include="-I$pkgincludedir"
# to make --cflags usable for HP C++ (aCC) # to make --cflags usable for HP C++ (aCC)
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \ for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \ DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \ DEXTRA_DEBUG DHAVE_valgrind O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \ 'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
Xa xstrconst "xc99=none" AC99 \ Xa xstrconst "xc99=none" AC99 \
unroll2 ip mp restrict unroll2 ip mp restrict

View File

@ -773,7 +773,7 @@ int field_conv(Field *to,Field *from)
((Field_varstring*)from)->length_bytes == ((Field_varstring*)from)->length_bytes ==
((Field_varstring*)to)->length_bytes)) ((Field_varstring*)to)->length_bytes))
{ // Identical fields { // Identical fields
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* This may happen if one does 'UPDATE ... SET x=x' */ /* This may happen if one does 'UPDATE ... SET x=x' */
if (to->ptr != from->ptr) if (to->ptr != from->ptr)
#endif #endif

View File

@ -953,13 +953,13 @@ static void make_sortkey(register SORTPARAM *param,
if (addonf->null_bit && field->is_null()) if (addonf->null_bit && field->is_null())
{ {
nulls[addonf->null_offset]|= addonf->null_bit; nulls[addonf->null_offset]|= addonf->null_bit;
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero(to, addonf->length); bzero(to, addonf->length);
#endif #endif
} }
else else
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
uchar *end= field->pack(to, field->ptr); uchar *end= field->pack(to, field->ptr);
uint length= (uint) ((to + addonf->length) - end); uint length= (uint) ((to + addonf->length) - end);
DBUG_ASSERT((int) length >= 0); DBUG_ASSERT((int) length >= 0);

View File

@ -3548,10 +3548,10 @@ void ha_partition::position(const uchar *record)
(ref_length - PARTITION_BYTES_IN_POS)); (ref_length - PARTITION_BYTES_IN_POS));
#ifdef SUPPORTING_PARTITION_OVER_DIFFERENT_ENGINES #ifdef SUPPORTING_PARTITION_OVER_DIFFERENT_ENGINES
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero(ref + PARTITION_BYTES_IN_POS + ref_length, bzero(ref + PARTITION_BYTES_IN_POS + ref_length,
max_ref_length-ref_length); max_ref_length-ref_length);
#endif /* HAVE_purify */ #endif /* HAVE_valgrind */
#endif #endif
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }

View File

@ -175,7 +175,7 @@ char * ip_to_hostname(struct in_addr *in, uint *errors)
char buff[GETHOSTBYADDR_BUFF_SIZE],buff2[GETHOSTBYNAME_BUFF_SIZE]; char buff[GETHOSTBYADDR_BUFF_SIZE],buff2[GETHOSTBYNAME_BUFF_SIZE];
int tmp_errno; int tmp_errno;
struct hostent tmp_hostent, tmp_hostent2; struct hostent tmp_hostent, tmp_hostent2;
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero(buff,sizeof(buff)); // Bug in purify bzero(buff,sizeof(buff)); // Bug in purify
#endif #endif
if (!(hp=gethostbyaddr_r((char*) in,sizeof(*in), if (!(hp=gethostbyaddr_r((char*) in,sizeof(*in),

View File

@ -290,8 +290,8 @@ static bool extract_date_time(DATE_TIME_FORMAT *format,
LINT_INIT(strict_week_number); LINT_INIT(strict_week_number);
/* Remove valgrind varnings when using gcc 3.3 and -O1 */ /* Remove valgrind varnings when using gcc 3.3 and -O1 */
PURIFY_OR_LINT_INIT(strict_week_number_year_type); VALGRIND_OR_LINT_INIT(strict_week_number_year_type);
PURIFY_OR_LINT_INIT(sunday_first_n_first_week_non_iso); VALGRIND_OR_LINT_INIT(sunday_first_n_first_week_non_iso);
if (!sub_pattern_end) if (!sub_pattern_end)
bzero((char*) l_time, sizeof(*l_time)); bzero((char*) l_time, sizeof(*l_time));

View File

@ -6990,7 +6990,7 @@ int Rows_log_event::do_add_row_data(uchar *row_data, size_t length)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("row_data", row_data, min(length, 32)); DBUG_DUMP("row_data", row_data, min(length, 32));
#endif #endif
@ -7771,7 +7771,7 @@ Table_map_log_event::Table_map_log_event(const char *buf, uint event_len,
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("event buffer", (uchar*) buf, event_len); DBUG_DUMP("event buffer", (uchar*) buf, event_len);
#endif #endif
@ -8674,7 +8674,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("key data", m_key, table->key_info->key_length); DBUG_DUMP("key data", m_key, table->key_info->key_length);
#endif #endif
@ -8704,7 +8704,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_PRINT("info",("found first matching record")); DBUG_PRINT("info",("found first matching record"));
DBUG_DUMP("record[0]", table->record[0], table->s->reclength); DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
#endif #endif
@ -9067,7 +9067,7 @@ Update_rows_log_event::do_exec_row(const Relay_log_info *const rli)
Now we have the right row to update. The old row (the one we're Now we have the right row to update. The old row (the one we're
looking for) is in record[1] and the new row is in record[0]. looking for) is in record[1] and the new row is in record[0].
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
/* /*
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.

View File

@ -724,7 +724,7 @@ static int find_and_fetch_row(TABLE *table, uchar *key)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength); DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength); DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
#endif #endif
@ -750,7 +750,7 @@ static int find_and_fetch_row(TABLE *table, uchar *key)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength); DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength); DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
#endif #endif
@ -1404,7 +1404,7 @@ int Old_rows_log_event::do_add_row_data(uchar *row_data, size_t length)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("row_data", row_data, min(length, 32)); DBUG_DUMP("row_data", row_data, min(length, 32));
#endif #endif
@ -2353,7 +2353,7 @@ int Old_rows_log_event::find_row(const Relay_log_info *rli)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("key data", m_key, table->key_info->key_length); DBUG_DUMP("key data", m_key, table->key_info->key_length);
#endif #endif
@ -2383,7 +2383,7 @@ int Old_rows_log_event::find_row(const Relay_log_info *rli)
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_PRINT("info",("found first matching record")); DBUG_PRINT("info",("found first matching record"));
DBUG_DUMP("record[0]", table->record[0], table->s->reclength); DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
#endif #endif
@ -2878,7 +2878,7 @@ Update_rows_log_event_old::do_exec_row(const Relay_log_info *const rli)
Now we have the right row to update. The old row (the one we're Now we have the right row to update. The old row (the one we're
looking for) is in record[1] and the new row is in record[0]. looking for) is in record[1] and the new row is in record[0].
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
/* /*
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.

View File

@ -99,7 +99,7 @@ public:
{ {
len= DECIMAL_BUFF_LENGTH; len= DECIMAL_BUFF_LENGTH;
buf= buffer; buf= buffer;
#if !defined (HAVE_purify) && !defined(DBUG_OFF) #if !defined (HAVE_valgrind) && !defined(DBUG_OFF)
/* Set buffer to 'random' value to find wrong buffer usage */ /* Set buffer to 'random' value to find wrong buffer usage */
for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++) for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++)
buffer[i]= i; buffer[i]= i;

View File

@ -57,12 +57,6 @@
#define mysqld_charset &my_charset_latin1 #define mysqld_charset &my_charset_latin1
#ifdef HAVE_purify
#define IF_PURIFY(A,B) (A)
#else
#define IF_PURIFY(A,B) (B)
#endif
#if SIZEOF_CHARP == 4 #if SIZEOF_CHARP == 4
#define MAX_MEM_TABLE_SIZE ~(ulong) 0 #define MAX_MEM_TABLE_SIZE ~(ulong) 0
#else #else
@ -76,9 +70,9 @@
char pstack_file_name[80]; char pstack_file_name[80];
#endif /* __linux__ */ #endif /* __linux__ */
/* We have HAVE_purify below as this speeds up the shutdown of MySQL */ /* We have HAVE_valgrind below as this speeds up the shutdown of MySQL */
#if defined(HAVE_DEC_3_2_THREADS) || defined(SIGNALS_DONT_BREAK_READ) || defined(HAVE_purify) && defined(__linux__) #if defined(HAVE_DEC_3_2_THREADS) || defined(SIGNALS_DONT_BREAK_READ) || defined(HAVE_valgrind) && defined(__linux__)
#define HAVE_CLOSE_SERVER_SOCK 1 #define HAVE_CLOSE_SERVER_SOCK 1
#endif #endif
@ -6520,7 +6514,7 @@ log and this option does nothing anymore.",
purify. These are not suppressed: instead we disable symlinks purify. These are not suppressed: instead we disable symlinks
option if compiled with valgrind support. option if compiled with valgrind support.
*/ */
IF_PURIFY(0,1), 0, 0, 0, 0, 0}, IF_VALGRIND(0,1), 0, 0, 0, 0, 0},
{"sysdate-is-now", OPT_SYSDATE_IS_NOW, {"sysdate-is-now", OPT_SYSDATE_IS_NOW,
"Non-default option to alias SYSDATE() to NOW() to make it safe-replicable. Since 5.0, SYSDATE() returns a `dynamic' value different for different invocations, even within the same statement.", "Non-default option to alias SYSDATE() to NOW() to make it safe-replicable. Since 5.0, SYSDATE() returns a `dynamic' value different for different invocations, even within the same statement.",
(uchar**) &global_system_variables.sysdate_is_now, (uchar**) &global_system_variables.sysdate_is_now,
@ -6561,7 +6555,7 @@ log and this option does nothing anymore.",
0, 0, 0, 0, 0}, 0, 0, 0, 0, 0},
{"use-symbolic-links", 's', "Enable symbolic link support. Deprecated option; use --symbolic-links instead.", {"use-symbolic-links", 's', "Enable symbolic link support. Deprecated option; use --symbolic-links instead.",
(uchar**) &my_use_symdir, (uchar**) &my_use_symdir, 0, GET_BOOL, NO_ARG, (uchar**) &my_use_symdir, (uchar**) &my_use_symdir, 0, GET_BOOL, NO_ARG,
IF_PURIFY(0,1), 0, 0, 0, 0, 0}, IF_VALGRIND(0,1), 0, 0, 0, 0, 0},
{"user", 'u', "Run mysqld daemon as user.", 0, 0, 0, GET_STR, REQUIRED_ARG, {"user", 'u', "Run mysqld daemon as user.", 0, 0, 0, GET_STR, REQUIRED_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"verbose", 'v', "Used with --help option for detailed help", {"verbose", 'v', "Used with --help option for detailed help",
@ -7661,7 +7655,7 @@ static int mysql_init_variables(void)
/* Things reset to zero */ /* Things reset to zero */
opt_skip_slave_start= opt_reckless_slave = 0; opt_skip_slave_start= opt_reckless_slave = 0;
mysql_home[0]= pidfile_name[0]= log_error_file[0]= 0; mysql_home[0]= pidfile_name[0]= log_error_file[0]= 0;
#if defined(HAVE_REALPATH) && !defined(HAVE_purify) && !defined(HAVE_BROKEN_REALPATH) #if defined(HAVE_REALPATH) && !defined(HAVE_valgrind) && !defined(HAVE_BROKEN_REALPATH)
/* We can only test for sub paths if my_symlink.c is using realpath */ /* We can only test for sub paths if my_symlink.c is using realpath */
myisam_test_invalid_symlink= test_if_data_home_dir; myisam_test_invalid_symlink= test_if_data_home_dir;
#endif #endif

View File

@ -8347,7 +8347,7 @@ int QUICK_RANGE_SELECT::reset()
multi_range_buff->buffer= mrange_buff; multi_range_buff->buffer= mrange_buff;
multi_range_buff->buffer_end= mrange_buff + mrange_bufsiz; multi_range_buff->buffer_end= mrange_buff + mrange_bufsiz;
multi_range_buff->end_of_used_area= mrange_buff; multi_range_buff->end_of_used_area= mrange_buff;
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* /*
We need this until ndb will use the buffer efficiently We need this until ndb will use the buffer efficiently
(Now ndb stores complete row in here, instead of only the used fields (Now ndb stores complete row in here, instead of only the used fields

View File

@ -44,7 +44,7 @@ class QUICK_RANGE :public Sql_alloc {
uint16 min_length,max_length,flag; uint16 min_length,max_length,flag;
key_part_map min_keypart_map, // bitmap of used keyparts in min_key key_part_map min_keypart_map, // bitmap of used keyparts in min_key
max_keypart_map; // bitmap of used keyparts in max_key max_keypart_map; // bitmap of used keyparts in max_key
#ifdef HAVE_purify #ifdef HAVE_valgrind
uint16 dummy; /* Avoid warnings on 'flag' */ uint16 dummy; /* Avoid warnings on 'flag' */
#endif #endif
QUICK_RANGE(); /* Full range */ QUICK_RANGE(); /* Full range */
@ -61,7 +61,7 @@ class QUICK_RANGE :public Sql_alloc {
min_keypart_map(min_keypart_map_arg), min_keypart_map(min_keypart_map_arg),
max_keypart_map(max_keypart_map_arg) max_keypart_map(max_keypart_map_arg)
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
dummy=0; dummy=0;
#endif #endif
} }

View File

@ -520,7 +520,7 @@ static int init_rr_cache(THD *thd, READ_RECORD *info)
info->struct_length+1, info->struct_length+1,
MYF(0)))) MYF(0))))
DBUG_RETURN(1); DBUG_RETURN(1);
#ifdef HAVE_purify #ifdef HAVE_valgrind
// Avoid warnings in qsort // Avoid warnings in qsort
bzero(info->cache,rec_cache_size+info->cache_records* info->struct_length+1); bzero(info->cache,rec_cache_size+info->cache_records* info->struct_length+1);
#endif #endif

View File

@ -34,7 +34,7 @@ Relay_log_info::Relay_log_info()
no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id), no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id),
info_fd(-1), cur_log_fd(-1), save_temporary_tables(0), info_fd(-1), cur_log_fd(-1), save_temporary_tables(0),
cur_log_old_open_count(0), group_relay_log_pos(0), event_relay_log_pos(0), cur_log_old_open_count(0), group_relay_log_pos(0), event_relay_log_pos(0),
#if HAVE_purify #if HAVE_valgrind
is_fake(FALSE), is_fake(FALSE),
#endif #endif
group_master_log_pos(0), log_space_total(0), ignore_log_space_limit(0), group_master_log_pos(0), log_space_total(0), ignore_log_space_limit(0),

View File

@ -154,7 +154,7 @@ public:
ulonglong event_relay_log_pos; ulonglong event_relay_log_pos;
ulonglong future_event_relay_log_pos; ulonglong future_event_relay_log_pos;
#ifdef HAVE_purify #ifdef HAVE_valgrind
bool is_fake; /* Mark that this is a fake relay log info structure */ bool is_fake; /* Mark that this is a fake relay log info structure */
#endif #endif

View File

@ -642,8 +642,8 @@ static sys_var_long_ptr sys_table_lock_wait_timeout(&vars, "table_lock_wait_time
static sys_var_long_ptr sys_thread_cache_size(&vars, "thread_cache_size", static sys_var_long_ptr sys_thread_cache_size(&vars, "thread_cache_size",
&thread_cache_size); &thread_cache_size);
#if HAVE_POOL_OF_THREADS == 1 #if HAVE_POOL_OF_THREADS == 1
sys_var_long_ptr sys_thread_pool_size(&vars, "thread_pool_size", static sys_var_long_ptr sys_thread_pool_size(&vars, "thread_pool_size",
&thread_pool_size); &thread_pool_size);
#endif #endif
static sys_var_thd_enum sys_tx_isolation(&vars, "tx_isolation", static sys_var_thd_enum sys_tx_isolation(&vars, "tx_isolation",
&SV::tx_isolation, &SV::tx_isolation,

View File

@ -2014,7 +2014,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
if (exec_res == 0) if (exec_res == 0)
{ {
int error= ev->update_pos(rli); int error= ev->update_pos(rli);
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (!rli->is_fake) if (!rli->is_fake)
#endif #endif
{ {

View File

@ -3000,7 +3000,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
table->pos_in_table_list= table_list; table->pos_in_table_list= table_list;
table_list->updatable= 1; // It is not derived table nor non-updatable VIEW table_list->updatable= 1; // It is not derived table nor non-updatable VIEW
table->clear_column_bitmaps(); table->clear_column_bitmaps();
#if !defined(DBUG_OFF) && !defined(HAVE_purify) #if !defined(DBUG_OFF) && !defined(HAVE_valgrind)
/* /*
Fill record with random values to find bugs where we access fields Fill record with random values to find bugs where we access fields
without first reading them. without first reading them.
@ -7363,7 +7363,7 @@ int setup_wild(THD *thd, TABLE_LIST *tables, List<Item> &fields,
/* make * substituting permanent */ /* make * substituting permanent */
SELECT_LEX *select_lex= thd->lex->current_select; SELECT_LEX *select_lex= thd->lex->current_select;
select_lex->with_wild= 0; select_lex->with_wild= 0;
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (&select_lex->item_list != &fields) // Avoid warning if (&select_lex->item_list != &fields) // Avoid warning
#endif #endif
select_lex->item_list= fields; select_lex->item_list= fields;

View File

@ -59,7 +59,7 @@ void mysql_client_binlog_statement(THD* thd)
if (!thd->rli_fake) if (!thd->rli_fake)
{ {
thd->rli_fake= new Relay_log_info; thd->rli_fake= new Relay_log_info;
#ifdef HAVE_purify #ifdef HAVE_valgrind
thd->rli_fake->is_fake= TRUE; thd->rli_fake->is_fake= TRUE;
#endif #endif
have_fd_event= FALSE; have_fd_event= FALSE;
@ -95,7 +95,7 @@ void mysql_client_binlog_statement(THD* thd)
char const *endptr= 0; char const *endptr= 0;
int bytes_decoded= base64_decode(strptr, coded_len, buf, &endptr); int bytes_decoded= base64_decode(strptr, coded_len, buf, &endptr);
#ifndef HAVE_purify #ifndef HAVE_valgrind
/* /*
This debug printout should not be used for valgrind builds This debug printout should not be used for valgrind builds
since it will read from unassigned memory. since it will read from unassigned memory.
@ -188,7 +188,7 @@ void mysql_client_binlog_statement(THD* thd)
bufptr += event_len; bufptr += event_len;
DBUG_PRINT("info",("ev->get_type_code()=%d", ev->get_type_code())); DBUG_PRINT("info",("ev->get_type_code()=%d", ev->get_type_code()));
#ifndef HAVE_purify #ifndef HAVE_valgrind
/* /*
This debug printout should not be used for valgrind builds This debug printout should not be used for valgrind builds
since it will read from unassigned memory. since it will read from unassigned memory.

View File

@ -3480,7 +3480,7 @@ int THD::binlog_update_row(TABLE* table, bool is_trans,
Don't print debug messages when running valgrind since they can Don't print debug messages when running valgrind since they can
trigger false warnings. trigger false warnings.
*/ */
#ifndef HAVE_purify #ifndef HAVE_valgrind
DBUG_DUMP("before_record", before_record, table->s->reclength); DBUG_DUMP("before_record", before_record, table->s->reclength);
DBUG_DUMP("after_record", after_record, table->s->reclength); DBUG_DUMP("after_record", after_record, table->s->reclength);
DBUG_DUMP("before_row", before_row, before_size); DBUG_DUMP("before_row", before_row, before_size);

View File

@ -43,7 +43,7 @@ public:
static void operator delete[](void *ptr, MEM_ROOT *mem_root) static void operator delete[](void *ptr, MEM_ROOT *mem_root)
{ /* never called */ } { /* never called */ }
static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); } static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); }
#ifdef HAVE_purify #ifdef HAVE_valgrind
bool dummy; bool dummy;
inline Sql_alloc() :dummy(0) {} inline Sql_alloc() :dummy(0) {}
inline ~Sql_alloc() {} inline ~Sql_alloc() {}

View File

@ -581,7 +581,7 @@ read_fixed_length(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
} }
it.rewind(); it.rewind();
uchar *pos=read_info.row_start; uchar *pos=read_info.row_start;
#ifdef HAVE_purify #ifdef HAVE_valgrind
read_info.row_end[0]=0; read_info.row_end[0]=0;
#endif #endif

View File

@ -1818,7 +1818,7 @@ JOIN::exec()
curr_join->having= curr_join->tmp_having= 0; // Allready done curr_join->having= curr_join->tmp_having= 0; // Allready done
/* Change sum_fields reference to calculated fields in tmp_table */ /* Change sum_fields reference to calculated fields in tmp_table */
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (curr_join != this) if (curr_join != this)
#endif #endif
curr_join->all_fields= *curr_all_fields; curr_join->all_fields= *curr_all_fields;
@ -1840,7 +1840,7 @@ JOIN::exec()
fields_list.elements, all_fields)) fields_list.elements, all_fields))
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (curr_join != this) if (curr_join != this)
#endif #endif
{ {
@ -1994,7 +1994,7 @@ JOIN::exec()
tmp_fields_list2, tmp_all_fields2, tmp_fields_list2, tmp_all_fields2,
fields_list.elements, tmp_all_fields1)) fields_list.elements, tmp_all_fields1))
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* /*
Some GCCs use memcpy() for struct assignment, even for x=x. Some GCCs use memcpy() for struct assignment, even for x=x.
GCC bug 19410: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19410 GCC bug 19410: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19410
@ -2059,7 +2059,7 @@ JOIN::exec()
tmp_table_param.save_copy_field= curr_join->tmp_table_param.copy_field; tmp_table_param.save_copy_field= curr_join->tmp_table_param.copy_field;
tmp_table_param.save_copy_field_end= tmp_table_param.save_copy_field_end=
curr_join->tmp_table_param.copy_field_end; curr_join->tmp_table_param.copy_field_end;
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (curr_join != this) if (curr_join != this)
#endif #endif
{ {
@ -3848,7 +3848,7 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab,
continue; continue;
} }
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* Valgrind complains about overlapped memcpy when save_pos==use. */ /* Valgrind complains about overlapped memcpy when save_pos==use. */
if (save_pos != use) if (save_pos != use)
#endif #endif
@ -15138,7 +15138,7 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
DBUG_ASSERT (param->field_count > (uint) (copy - copy_start)); DBUG_ASSERT (param->field_count > (uint) (copy - copy_start));
copy->set(tmp, item->result_field); copy->set(tmp, item->result_field);
item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1); item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1);
#ifdef HAVE_purify #ifdef HAVE_valgrind
copy->to_ptr[copy->from_length]= 0; copy->to_ptr[copy->from_length]= 0;
#endif #endif
copy++; copy++;

View File

@ -1694,7 +1694,7 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias,
outparam->record[1]= outparam->record[0]; // Safety outparam->record[1]= outparam->record[0]; // Safety
} }
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* /*
We need this because when we read var-length rows, we are not updating We need this because when we read var-length rows, we are not updating
bytes after end of varchar bytes after end of varchar
@ -1916,7 +1916,7 @@ partititon_err:
} }
} }
#if defined(HAVE_purify) && !defined(DBUG_OFF) #if defined(HAVE_valgrind) && !defined(DBUG_OFF)
bzero((char*) bitmaps, bitmap_size*3); bzero((char*) bitmaps, bitmap_size*3);
#endif #endif

View File

@ -63,7 +63,7 @@ void read_header(azio_stream *s, unsigned char *buffer);
*/ */
static void *az_allocator(void *dummy, uInt items, uInt size) static void *az_allocator(void *dummy, uInt items, uInt size)
{ {
return my_malloc((size_t)items*(size_t)size, IF_PURIFY(MY_ZEROFILL, MYF(0))); return my_malloc((size_t)items*(size_t)size, IF_VALGRIND(MY_ZEROFILL, MYF(0)));
} }
static void az_free(void *dummy, void *address) static void az_free(void *dummy, void *address)

View File

@ -756,7 +756,7 @@ buf_pool_init(
/* Wipe contents of frame to eliminate a Purify /* Wipe contents of frame to eliminate a Purify
warning */ warning */
#ifdef HAVE_purify #ifdef HAVE_valgrind
memset(block->frame, '\0', UNIV_PAGE_SIZE); memset(block->frame, '\0', UNIV_PAGE_SIZE);
#endif #endif
if (srv_use_awe) { if (srv_use_awe) {

View File

@ -107,7 +107,7 @@ operations (very slow); also UNIV_DEBUG must be defined */
#define UNIV_BTR_DEBUG /* check B-tree links */ #define UNIV_BTR_DEBUG /* check B-tree links */
#define UNIV_LIGHT_MEM_DEBUG /* light memory debugging */ #define UNIV_LIGHT_MEM_DEBUG /* light memory debugging */
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* The following sets all new allocated memory to zero before use: /* The following sets all new allocated memory to zero before use:
this can be used to eliminate unnecessary Purify warnings, but note that this can be used to eliminate unnecessary Purify warnings, but note that
it also masks many bugs Purify could detect. For detailed Purify analysis it it also masks many bugs Purify could detect. For detailed Purify analysis it

View File

@ -104,7 +104,7 @@ static char* srv_monitor_file_name;
/* Avoid warnings when using purify */ /* Avoid warnings when using purify */
#ifdef HAVE_purify #ifdef HAVE_valgrind
static int inno_bcmp(register const char *s1, register const char *s2, static int inno_bcmp(register const char *s1, register const char *s2,
register uint len) register uint len)
{ {

View File

@ -3166,7 +3166,7 @@ static int ha_maria_init(void *p)
ma_checkpoint_init(checkpoint_interval); ma_checkpoint_init(checkpoint_interval);
maria_multi_threaded= maria_in_ha_maria= TRUE; maria_multi_threaded= maria_in_ha_maria= TRUE;
#if defined(HAVE_REALPATH) && !defined(HAVE_purify) && !defined(HAVE_BROKEN_REALPATH) #if defined(HAVE_REALPATH) && !defined(HAVE_valgrind) && !defined(HAVE_BROKEN_REALPATH)
/* We can only test for sub paths if my_symlink.c is using realpath */ /* We can only test for sub paths if my_symlink.c is using realpath */
maria_test_invalid_symlink= test_if_data_home_dir; maria_test_invalid_symlink= test_if_data_home_dir;
#endif #endif

View File

@ -1594,7 +1594,7 @@ static void make_empty_page(MARIA_HA *info, uchar *buff, uint page_type,
bzero(buff, PAGE_HEADER_SIZE); bzero(buff, PAGE_HEADER_SIZE);
#if !defined(DONT_ZERO_PAGE_BLOCKS) || defined(HAVE_purify) #if !defined(DONT_ZERO_PAGE_BLOCKS) || defined(HAVE_valgrind)
/* /*
We zero the rest of the block to avoid getting old memory information We zero the rest of the block to avoid getting old memory information
to disk and to allow the file to be compressed better if archived. to disk and to allow the file to be compressed better if archived.

View File

@ -4522,7 +4522,7 @@ static int sort_key_read(MARIA_SORT_PARAM *sort_param, uchar *key)
sort_param->current_filepos, sort_param->current_filepos,
0); 0);
sort_param->real_key_length= int_key.data_length + int_key.ref_length; sort_param->real_key_length= int_key.data_length + int_key.ref_length;
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero(key+sort_param->real_key_length, bzero(key+sort_param->real_key_length,
(sort_param->key_length-sort_param->real_key_length)); (sort_param->key_length-sort_param->real_key_length));
#endif #endif
@ -4567,7 +4567,7 @@ static int sort_maria_ft_key_read(MARIA_SORT_PARAM *sort_param, uchar *key)
sort_param->current_filepos); sort_param->current_filepos);
sort_param->real_key_length= int_key.data_length + int_key.ref_length; sort_param->real_key_length= int_key.data_length + int_key.ref_length;
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (sort_param->key_length > sort_param->real_key_length) if (sort_param->key_length > sort_param->real_key_length)
bzero(key+sort_param->real_key_length, bzero(key+sort_param->real_key_length,
(sort_param->key_length-sort_param->real_key_length)); (sort_param->key_length-sort_param->real_key_length));
@ -5104,7 +5104,7 @@ static int sort_get_next_record(MARIA_SORT_PARAM *sort_param)
llstr(sort_param->pos,llbuff)); llstr(sort_param->pos,llbuff));
continue; continue;
} }
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero(sort_param->rec_buff + block_info.rec_len, bzero(sort_param->rec_buff + block_info.rec_len,
share->base.extra_rec_buff_size); share->base.extra_rec_buff_size);
#endif #endif

View File

@ -6194,12 +6194,12 @@ my_bool translog_write_record(LSN *lsn,
{ {
uint i; uint i;
uint len= 0; uint len= 0;
#ifdef HAVE_purify #ifdef HAVE_valgrind
ha_checksum checksum= 0; ha_checksum checksum= 0;
#endif #endif
for (i= TRANSLOG_INTERNAL_PARTS; i < part_no; i++) for (i= TRANSLOG_INTERNAL_PARTS; i < part_no; i++)
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* Find unitialized bytes early */ /* Find unitialized bytes early */
checksum+= my_checksum(checksum, parts_data[i].str, checksum+= my_checksum(checksum, parts_data[i].str,
parts_data[i].length); parts_data[i].length);

View File

@ -256,7 +256,7 @@ static my_bool _ma_read_pack_info(MARIA_SHARE *share, File file,
(uint) (share->pack.header_length-sizeof(header)), (uint) (share->pack.header_length-sizeof(header)),
MYF(MY_NABP))) MYF(MY_NABP)))
goto err2; goto err2;
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* Zero bytes accessed by fill_buffer */ /* Zero bytes accessed by fill_buffer */
bzero(disk_cache + (share->pack.header_length-sizeof(header)), bzero(disk_cache + (share->pack.header_length-sizeof(header)),
share->base.extra_rec_buff_size); share->base.extra_rec_buff_size);

View File

@ -200,7 +200,7 @@ my_bool _ma_write_keypage(MARIA_PAGE *page, enum pagecache_page_lock lock,
/* Verify that keynr is correct */ /* Verify that keynr is correct */
DBUG_ASSERT(_ma_get_keynr(share, buff) == page->keyinfo->key_nr); DBUG_ASSERT(_ma_get_keynr(share, buff) == page->keyinfo->key_nr);
#if defined(EXTRA_DEBUG) && defined(HAVE_purify) && defined(NOT_ANYMORE) #if defined(EXTRA_DEBUG) && defined(HAVE_valgrind) && defined(NOT_ANYMORE)
{ {
/* This is here to catch uninitialized bytes */ /* This is here to catch uninitialized bytes */
uint length= page->size; uint length= page->size;

View File

@ -318,7 +318,7 @@ my_bool maria_page_filler_set_none(uchar *page __attribute__((unused)),
__attribute__((unused)), __attribute__((unused)),
uchar *data_ptr __attribute__((unused))) uchar *data_ptr __attribute__((unused)))
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
int4store_aligned(page + ((MARIA_SHARE *)data_ptr)->block_size - CRC_SIZE, int4store_aligned(page + ((MARIA_SHARE *)data_ptr)->block_size - CRC_SIZE,
0); 0);
#endif #endif

View File

@ -2172,7 +2172,7 @@ int _ma_calc_bin_pack_key_length(const MARIA_KEY *int_key,
s_temp->totlength= key_length= (int_key->data_length + int_key->ref_length+ s_temp->totlength= key_length= (int_key->data_length + int_key->ref_length+
nod_flag); nod_flag);
#ifdef HAVE_purify #ifdef HAVE_valgrind
s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */ s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */
#endif #endif
s_temp->key=key; s_temp->key=key;

View File

@ -3147,7 +3147,7 @@ static int sort_key_read(MI_SORT_PARAM *sort_param, void *key)
(info->s->rec_reflength+ (info->s->rec_reflength+
_mi_make_key(info, sort_param->key, (uchar*) key, _mi_make_key(info, sort_param->key, (uchar*) key,
sort_param->record, sort_param->filepos)); sort_param->record, sort_param->filepos));
#ifdef HAVE_purify #ifdef HAVE_valgrind
bzero(key+sort_param->real_key_length, bzero(key+sort_param->real_key_length,
(sort_param->key_length-sort_param->real_key_length)); (sort_param->key_length-sort_param->real_key_length));
#endif #endif
@ -3187,7 +3187,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
sort_param->real_key_length=(info->s->rec_reflength+ sort_param->real_key_length=(info->s->rec_reflength+
_ft_make_key(info, sort_param->key, _ft_make_key(info, sort_param->key,
key, wptr++, sort_param->filepos)); key, wptr++, sort_param->filepos));
#ifdef HAVE_purify #ifdef HAVE_valgrind
if (sort_param->key_length > sort_param->real_key_length) if (sort_param->key_length > sort_param->real_key_length)
bzero(key+sort_param->real_key_length, bzero(key+sort_param->real_key_length,
(sort_param->key_length-sort_param->real_key_length)); (sort_param->key_length-sort_param->real_key_length));

View File

@ -86,7 +86,7 @@ int _mi_write_keypage(register MI_INFO *info, register MI_KEYDEF *keyinfo,
if ((length=keyinfo->block_length) > IO_SIZE*2 && if ((length=keyinfo->block_length) > IO_SIZE*2 &&
info->state->key_file_length != page+length) info->state->key_file_length != page+length)
length= ((mi_getint(buff)+IO_SIZE-1) & (uint) ~(IO_SIZE-1)); length= ((mi_getint(buff)+IO_SIZE-1) & (uint) ~(IO_SIZE-1));
#ifdef HAVE_purify #ifdef HAVE_valgrind
{ {
length=mi_getint(buff); length=mi_getint(buff);
bzero((uchar*) buff+length,keyinfo->block_length-length); bzero((uchar*) buff+length,keyinfo->block_length-length);

View File

@ -1749,7 +1749,7 @@ _mi_calc_bin_pack_key_length(MI_KEYDEF *keyinfo,uint nod_flag,uchar *next_key,
uint length,key_length,ref_length; uint length,key_length,ref_length;
s_temp->totlength=key_length=_mi_keylength(keyinfo,key)+nod_flag; s_temp->totlength=key_length=_mi_keylength(keyinfo,key)+nod_flag;
#ifdef HAVE_purify #ifdef HAVE_valgrind
s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */ s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */
#endif #endif
s_temp->key=key; s_temp->key=key;

View File

@ -837,7 +837,7 @@ int ha_myisammrg::info(uint flag)
{ {
if (table->s->key_parts && mrg_info.rec_per_key) if (table->s->key_parts && mrg_info.rec_per_key)
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
/* /*
valgrind may be unhappy about it, because optimizer may access values valgrind may be unhappy about it, because optimizer may access values
between file->keys and table->key_parts, that will be uninitialized. between file->keys and table->key_parts, that will be uninitialized.

View File

@ -24,7 +24,7 @@
#include <my_global.h> #include <my_global.h>
#include "m_string.h" #include "m_string.h"
#ifdef HAVE_purify #ifdef HAVE_valgrind
#undef bcmp #undef bcmp
#undef HAVE_BCMP #undef HAVE_BCMP
#endif #endif
@ -50,7 +50,7 @@ uint len; /* 0 <= len <= 65535 */
#else #else
#ifndef HAVE_purify #ifndef HAVE_valgrind
size_t bcmp(register const uchar *s1,register const uchar *s2, size_t bcmp(register const uchar *s1,register const uchar *s2,
register size_t len) register size_t len)
#else #else

View File

@ -144,7 +144,7 @@ static double scaler1[]= {
1.0, 10.0, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9 1.0, 10.0, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9
}; };
#ifdef HAVE_purify #ifdef HAVE_valgrind
#define sanity(d) DBUG_ASSERT((d)->len > 0) #define sanity(d) DBUG_ASSERT((d)->len > 0)
#else #else
#define sanity(d) DBUG_ASSERT((d)->len >0 && ((d)->buf[0] | \ #define sanity(d) DBUG_ASSERT((d)->len >0 && ((d)->buf[0] | \

View File

@ -51,11 +51,11 @@ char *strmake(register char *dst, register const char *src, size_t length)
*/ */
if (length) if (length)
{ {
#ifdef HAVE_purify #ifdef HAVE_valgrind
dst[length-1]= 'Z'; dst[length-1]= 'Z';
#else #else
bfill(dst, length-1, (int) 'Z'); bfill(dst, length-1, (int) 'Z');
#endif /* HAVE_purify */ #endif /* HAVE_valgrind */
} }
#endif /* EXTRA_DEBUG */ #endif /* EXTRA_DEBUG */
return dst-1; return dst-1;