When attempting to generate coverage information with make cov
after configuring and building with clang, lcov/gcov (for the versions I’m using) are unable to parse the generated gcda files:
0/home/james/tmp/bitcoin/src/libbitcoin_server_a-miner.gcno:version '402*', prefer 'A72*'
1geninfo: ERROR: GCOV failed for /home/james/tmp/bitcoin/src/libbitcoin_server_a-miner.gcda!
2Makefile:1269: recipe for target 'test_bitcoin.info' failed
We may need to special-case the effects of --enable-lcov
when building with clang to use flags and commands mentioned here.
Configure output
0Options used to compile and link:
1 with wallet = yes
2 with gui / qt = yes
3 qt version = 5
4 with qr = auto
5 with zmq = yes
6 with test = yes
7 with bench = yes
8 with upnp = auto
9 use asm = yes
10 debug enabled = no
11 werror = no
12
13 target os = linux
14 build os =
15
16 CC = /usr/bin/clang-4.0
17 CFLAGS = -g -O2
18 CPPFLAGS = -I/home/james/tmp/bitcoin/db4/include/ -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
19 CXX = /usr/bin/clang++-4.0 -std=c++11
20 CXXFLAGS = -std=c++11 -std=c++11 --coverage -Og
21 LDFLAGS = -L/home/james/tmp/bitcoin/db4/lib/ --coverage
22 ARFLAGS = cr
Versions
0 $ clang++-4.0 --version
1
2clang version 4.0.1-6 (tags/RELEASE_401/final)
3Target: x86_64-pc-linux-gnu
4Thread model: posix
5InstalledDir: /usr/bin
6
7 $ lcov --version
8
9lcov: LCOV version 1.13
10
11 $ gcov --version
12
13gcov (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
14Copyright (C) 2017 Free Software Foundation, Inc.
15This is free software; see the source for copying conditions.
16There is NO warranty; not even for MERCHANTABILITY or
17FITNESS FOR A PARTICULAR PURPOSE.
make cov
failure
0$ make cov
1...
2/usr/bin/lcov --gcov-tool=/usr/bin/gcov -c -d /home/james/tmp/bitcoin/src -t test_bitcoin -o test_bitcoin.info
3Capturing coverage data from /home/james/tmp/bitcoin/src
4Found gcov version: 7.2.0
5Scanning /home/james/tmp/bitcoin/src for .gcda files ...
6Found 290 data files in /home/james/tmp/bitcoin/src
7Processing src/libbitcoin_server_a-miner.gcda
8/home/james/tmp/bitcoin/src/libbitcoin_server_a-miner.gcno:version '402*', prefer 'A72*'
9geninfo: ERROR: GCOV failed for /home/james/tmp/bitcoin/src/libbitcoin_server_a-miner.gcda!
10Makefile:1269: recipe for target 'test_bitcoin.info' failed
11make: *** [test_bitcoin.info] Error 29
12rm test_bitcoin.info baseline_filtered.info baseline.info