diff options
author | unknown <kent@mysql.com> | 2005-01-28 00:35:26 +0100 |
---|---|---|
committer | unknown <kent@mysql.com> | 2005-01-28 00:35:26 +0100 |
commit | 7e1bc3d3b585e1eeb1985bdddbd3510c71af4aa8 (patch) | |
tree | 8a593d2f531a5348435a825b3e9f396d6dd50610 /BUILD/compile-solaris-sparc-purify | |
parent | a271a6c878ffe8245bd631888bfeee3cb5055005 (diff) | |
download | mariadb-git-7e1bc3d3b585e1eeb1985bdddbd3510c71af4aa8.tar.gz |
compile-solaris-sparc-purify:
Added preparation of mysql_client_test(_embedded) and mysqltest(_embedded)
Added --purify, --purecov, --quantify and --cxxfilt <cxxfiltprog> options
mysql-test-run.sh:
Report correctly combinations of embedded+ps-protocol etc
Added initial Purify support
mysql-test/mysql-test-run.sh:
Report correctly combinations of embedded+ps-protocol etc
Added initial Purify support
BUILD/compile-solaris-sparc-purify:
Added preparation of mysql_client_test(_embedded) and mysqltest(_embedded)
Added --purify, --purecov, --quantify and --cxxfilt <cxxfiltprog> options
Diffstat (limited to 'BUILD/compile-solaris-sparc-purify')
-rwxr-xr-x | BUILD/compile-solaris-sparc-purify | 101 |
1 files changed, 91 insertions, 10 deletions
diff --git a/BUILD/compile-solaris-sparc-purify b/BUILD/compile-solaris-sparc-purify index 71a60e45cb0..0e530f75b60 100755 --- a/BUILD/compile-solaris-sparc-purify +++ b/BUILD/compile-solaris-sparc-purify @@ -1,15 +1,35 @@ #! /bin/sh +mode="" +cxxfilt="" + +# For g++ 3.X, the PurifyPlus tools needs a program named "cxxfilt", +# "c++file" or similar. It is part of libtool. If not found, you can +# specify the path to it. + while test $# -gt 0 do case "$1" in - --debug) EXTRA_CONFIG_FLAGS=--with-debug; shift ;; - -h | --help ) cat <<EOF; exit 0 ;; -Usage: $0 [-h|-n] [configure-options] - --debug Compile with DBUG enabled + --debug) EXTRA_CONFIG_FLAGS=--with-debug ;; + --purify) mode=purify ;; + --purecov*) mode=purecov ;; + --quantify) mode=quantify ;; + --cxxfilt) shift ; cxxfilt=$1 ;; + -h | --help ) cat <<EOF; exit 0 ;; +Usage: $0 [ options ] + +Where the 'options' are + + --debug Compile with DBUG enabled + --purify Only prepare for Purify + --purecov Only prepare for PureCover + --quantify Only prepare for Quantify + --cxxfilt <cxxfilt> Path to cxxfilt/c++filt program + This program is needed for gcc 3.X EOF - *) echo "No such option '$1'" ; exit ;; + *) echo "No such option '$1'" ; exit 1 ;; esac + shift done gmake -k clean || true @@ -22,9 +42,70 @@ CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-sub gmake -j 4 -cd sql ; mv mysqld mysqld-org ; -make CXXLD="purify -best-effort g++" mysqld ; mv mysqld mysqld-purify -make CXXLD="quantify -best-effort g++" mysqld ; mv mysqld mysqld-quantify -make CXXLD="purecov -best-effort g++" mysqld ; mv mysqld mysqld-purecov -mv mysqld-org mysqld +# ---------------------------------------------------------------------- + +#set -x + +purifying_binaries () +{ + while test $1 + do + dir=$1 + shift + target=$1 + shift + binary=$1 + shift + + opts="" + if [ -n "$cxxfilt" ] ; then + opts="$opts -demangle-program=$cxxfilt" + fi + opts="$opts -best-effort g++" + + back=`pwd` + cd $dir + + # Because of libtool magic, the target and binary + # created might not be the same. To trigger rebuild, + # we need to move them both. + + mv $binary $binary-old + if [ -f $target ] ; then + mv $target $target-old + fi + + if [ -n "$mode" -a $mode = purify ] ; then + gmake CXXLD="purify $opts" $target + mv $binary $binary-purify + fi + + if [ -n "$mode" -a $mode = quantify ] ; then + gmake CXXLD="quantify $opts" $target + mv $binary $binary-quantify + fi + + if [ -n "$mode" -a $mode = purecov ] ; then + gmake CXXLD="purecov $opts" $target + mv $binary $binary-purecov + fi + + mv $binary-old $binary + if [ -f $target-old ] ; then + mv $target-old $target + fi + + cd $back + done +} + + +purifying_binaries \ + sql mysqld mysqld \ + client mysqltest .libs/mysqltest \ + tests mysql_client_test mysql_client_test \ + libmysqld/examples mysqltest_embedded mysqltest_embedded \ + libmysqld/examples mysql_client_test_embedded mysql_client_test_embedded + +# ---------------------------------------------------------------------- |