From: Alvaro Herrera Date: Fri, 31 May 2019 13:09:46 -0400 Subject: [PATCH] add gcov_flush call in quickdie --- configure | 4 ++++ configure.in | 4 +++- src/backend/tcop/postgres.c | 8 ++++++++ src/include/pg_config.h.in | 3 +++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/configure b/configure index fd61bf6472..c0cf19d662 100755 --- a/configure +++ b/configure @@ -3516,6 +3516,10 @@ fi if test -z "$GENHTML"; then as_fn_error $? "genhtml not found" "$LINENO" 5 fi + +$as_echo "#define USE_GCOV_COVERAGE 1" >>confdefs.h + + ;; no) : diff --git a/configure.in b/configure.in index 4586a1716c..21465bbaa6 100644 --- a/configure.in +++ b/configure.in @@ -222,7 +222,9 @@ fi PGAC_PATH_PROGS(GENHTML, genhtml) if test -z "$GENHTML"; then AC_MSG_ERROR([genhtml not found]) -fi]) +fi +AC_DEFINE([USE_GCOV_COVERAGE], 1, [Define to use gcov coverage support stuff]) +]) AC_SUBST(enable_coverage) # diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 44a59e1d4f..a483eba454 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2729,6 +2729,14 @@ quickdie(SIGNAL_ARGS) errhint("In a moment you should be able to reconnect to the" " database and repeat your command."))); +#ifdef USE_GCOV_COVERAGE + /* + * We still want to flush coverage data down to disk, which gcov's atexit + * callback would do, but we're preventing that below. + */ + __gcov_flush(); +#endif + /* * We DO NOT want to run proc_exit() or atexit() callbacks -- we're here * because shared memory may be corrupted, so we don't want to try to diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 6cd4cfed0a..5fb1a545ed 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -916,6 +916,9 @@ (--enable-float8-byval) */ #undef USE_FLOAT8_BYVAL +/* Define to use gcov coverage support stuff */ +#undef USE_GCOV_COVERAGE + /* Define to build with ICU support. (--with-icu) */ #undef USE_ICU -- 2.20.1 --nFreZHaLTZJo0R7j Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-gcov_flush-stuff.patch"