To: vim_dev@googlegroups.com Subject: Patch 8.2.0739 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0739 Problem: Incomplete profiling when exiting because of a deadly signal. Solution: Call __gcov_flush() if available. Files: src/os_unix.c, src/Makefile, .travis.yml *** ../vim-8.2.0738/src/os_unix.c 2020-05-11 20:54:37.626875113 +0200 --- src/os_unix.c 2020-05-11 22:09:31.810651039 +0200 *************** *** 3312,3317 **** --- 3312,3321 ---- } } + #ifdef USE_GCOV_FLUSH + extern void __gcov_flush(); + #endif + void mch_exit(int r) { *************** *** 3358,3363 **** --- 3362,3373 ---- } out_flush(); ml_close_all(TRUE); // remove all memfiles + + #ifdef USE_GCOV_FLUSH + // Flush coverage info before possibly being killed by a deadly signal. + __gcov_flush(); + #endif + may_core_dump(); #ifdef FEAT_GUI if (gui.in_use) *** ../vim-8.2.0738/src/Makefile 2020-05-01 14:26:17.128949276 +0200 --- src/Makefile 2020-05-11 22:12:20.005562153 +0200 *************** *** 686,693 **** # 7. Open the objects/index.html file in a web browser to view the coverage # information. # - # PROFILE_CFLAGS=-g -O0 -fprofile-arcs -ftest-coverage # LDFLAGS=--coverage # Uncomment one of the next two lines to compile Vim with the --- 686,695 ---- # 7. Open the objects/index.html file in a web browser to view the coverage # information. # # LDFLAGS=--coverage + # PROFILE_CFLAGS=-g -O0 -fprofile-arcs -ftest-coverage -DWE_ARE_PROFILING -DUSE_GCOV_FLUSH + # Alternate flags + # PROFILE_CFLAGS=-g -O0 --coverage -DWE_ARE_PROFILING -DUSE_GCOV_FLUSH # Uncomment one of the next two lines to compile Vim with the *** ../vim-8.2.0738/.travis.yml 2020-04-12 17:52:49.421492420 +0200 --- .travis.yml 2020-05-11 22:08:26.791107176 +0200 *************** *** 11,23 **** - &normal BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - &linux-huge ! BUILD=yes TEST="scripttests test_libvterm" CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - &osx-huge # macOS build BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - &unittests ! BUILD=no TEST=unittests CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes - &asan # ASAN build SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" --- 11,23 ---- - &normal BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - &linux-huge ! BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - &osx-huge # macOS build BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - &unittests ! BUILD=no TEST=unittests CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes - &asan # ASAN build SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" *** ../vim-8.2.0738/src/version.c 2020-05-11 22:04:46.928845435 +0200 --- src/version.c 2020-05-11 22:09:55.706488795 +0200 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 739, /**/ -- % cat /usr/include/long_life.h long life(double fun); /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///