[CRIU] [PATCH] [v2] criu: add -fprofile-update=atomic for builds with gcov
Andrei Vagin
avagin at virtuozzo.com
Thu Mar 8 01:49:54 MSK 2018
Sometimes we see errors like this:
criu/cr-restore.gcda:Merge mismatch for function 106
It proabably means that this gcda file was corrupted. According to the
gcc man page, the -fprofile-update=atomic should fix this problem.
v2: this options appered in gcc7, so we need to install it.
Reported-by: Mr Travis CI
Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
---
.travis.yml | 3 ++-
Makefile | 2 +-
scripts/travis/travis-tests | 9 ++++++++-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index cd33019cc..538cd2221 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@ cache: ccache
services:
- docker
env:
- - TR_ARCH=local GCOV=1
+ - TR_ARCH=local
- TR_ARCH=local CLANG=1
- TR_ARCH=alpine
- TR_ARCH=fedora-asan
@@ -23,6 +23,7 @@ env:
- TR_ARCH=fedora-rawhide
- TR_ARCH=fedora-rawhide-aarch64
- TR_ARCH=phaul-test
+ - TR_ARCH=local GCOV=1
matrix:
allow_failures:
- env: TR_ARCH=docker-test
diff --git a/Makefile b/Makefile
index 6cdda4630..bdfb55b26 100644
--- a/Makefile
+++ b/Makefile
@@ -91,7 +91,7 @@ DEFINES += -D_GNU_SOURCE
WARNINGS := -Wall -Wformat-security
-CFLAGS-GCOV := --coverage -fno-exceptions -fno-inline
+CFLAGS-GCOV := --coverage -fno-exceptions -fno-inline -fprofile-update=atomic
export CFLAGS-GCOV
ifneq ($(GCOV),)
diff --git a/scripts/travis/travis-tests b/scripts/travis/travis-tests
index 6cfc81f52..0a0db0b3e 100755
--- a/scripts/travis/travis-tests
+++ b/scripts/travis/travis-tests
@@ -20,6 +20,13 @@ travis_prep () {
CC=clang
fi
+ [ -n "$GCOV" ] && {
+ apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
+ apt-get update -yq
+ apt-get -yq --no-install-suggests --no-install-recommends --force-yes install g++-7
+ CC=gcc-7
+ }
+
# ccache support, only enable for non-GCOV case
if [ "$CCACHE" = "1" -a -z "$GCOV" ]; then
# ccache is installed by default, need to set it up
@@ -99,7 +106,7 @@ bash ./test/jenkins/criu-inhfd.sh
make -C test/others/mnt-ext-dev/ run
#make -C test/others/exec/ run
-make -C test/others/make/ run
+make -C test/others/make/ run CC="$CC"
./test/zdtm.py run -t zdtm/static/env00 --sibling
--
2.13.6
More information about the CRIU
mailing list