diff options
author | knielsen@ymer.(none) <> | 2007-07-07 07:48:43 +0200 |
---|---|---|
committer | knielsen@ymer.(none) <> | 2007-07-07 07:48:43 +0200 |
commit | e9f7bfd69d2080150ff11f675b348ab5f4503161 (patch) | |
tree | ef182257b4df3b1215ebe163cd1543bdf339c5d9 | |
parent | b43f78edf9f4476ee96acfb942dd72ea07e1c8e8 (diff) | |
parent | db649ad5d1428051fe39cb42c782fb2ecea4d961 (diff) | |
download | mariadb-git-e9f7bfd69d2080150ff11f675b348ab5f4503161.tar.gz |
Merge ymer.(none):/usr/local/mysql/mysql-5.0-engines
into ymer.(none):/usr/local/mysql/mysql-5.1-engines
-rwxr-xr-x | BUILD/compile-pentium-gcov | 5 | ||||
-rw-r--r-- | sql/stacktrace.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/BUILD/compile-pentium-gcov b/BUILD/compile-pentium-gcov index 5ee3c071f61..77de5867d48 100755 --- a/BUILD/compile-pentium-gcov +++ b/BUILD/compile-pentium-gcov @@ -26,8 +26,9 @@ export LDFLAGS="-fprofile-arcs -ftest-coverage" # The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the # code with profiling information used by gcov. -# the -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl. -extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM -DHAVE_MUTEX_THREAD_ONLY $debug_extra_flags $debug_cflags $max_cflags -DMYSQL_SERVER_SUFFIX=-gcov" +# The -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl. +# The -DHAVE_gcov enables code to write out coverage info even when crashing. +extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM -DHAVE_MUTEX_THREAD_ONLY $debug_extra_flags $debug_cflags $max_cflags -DMYSQL_SERVER_SUFFIX=-gcov -DHAVE_gcov" extra_configs="$pentium_configs $debug_configs --disable-shared $static_link" extra_configs="$extra_configs $max_configs" c_warnings="$c_warnings $debug_extra_warnings" diff --git a/sql/stacktrace.c b/sql/stacktrace.c index 40507907120..b1267e20774 100644 --- a/sql/stacktrace.c +++ b/sql/stacktrace.c @@ -228,6 +228,15 @@ void write_core(int sig) void write_core(int sig) { signal(sig, SIG_DFL); +#ifdef HAVE_gcov + /* + For GCOV build, crashing will prevent the writing of code coverage + information from this process, causing gcov output to be incomplete. + So we force the writing of coverage information here before terminating. + */ + extern void __gcov_flush(void); + __gcov_flush(); +#endif pthread_kill(pthread_self(), sig); #if defined(P_MYID) && !defined(SCO) /* On Solaris, the above kill is not enough */ |