Stefan Fuhrmann wrote: > Julian Foad wrote: >>> [[[ >>> env CFLAGS='-fprofile-arcs -ftest-coverage' ./configure \ >>> --disable-shared --enable-maintainer-mode $moreopts >>> >>> make -sj 2> /dev/null > /dev/null
I tried this on the Centos buildbot today and ran into another issue: the Perl bindings build fails at link stage. See <http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7765/steps/Build/logs/stdio> or here are the last few lines: [[[ Running Mkbootstrap for SVN::_Core () chmod 644 _Core.bs rm -f blib/arch/auto/SVN/_Core/_Core.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic core.o -o blib/arch/auto/SVN/_Core/_Core.so -L[...] -l[...] /usr/bin/ld: /home/bt/slaves/x64-centos/build/subversion/libsvn_diff/.libs/libsvn_diff-1.a(deprecated.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC ]]] It looks like the effect of --disable-shared and the two '-f' flags aren't getting passed along to this link stage. >>> make svnserveautocheck PARALLEL=1 >> >> Some of the Python tests error out when I run them in parallel >> like this. The errors are: >> [[[ >> W: profiling:/.../subversion/libsvn_subr/.libs/nls.gcda:Invocation mismatch >> - some data files may have been removed >> ]]] > > Hm. It works for me (except for 1 test that fails from time to time). > I run that test script only as a quick check for major breakage. > > >> I found an email <http://gcc.gnu.org/ml/gcc-help/2005-11/msg00074.html> >> which says "gcov instrumentation is multi-process safe, but not >> multi-thread safe. The multi-processing safety relies on OS level file >> locking, which is not available on some systems.". >> >>> lcov -d . -b . -c -o tests.lcov > lcov.log >>> genhtml tests.lcov -o html > genhtml.log >>> ]]] >> >> OK, that part works. >> >> Is there a command to reset the coverage statistics, that I can >> do before a test run if I don't want to 'make clean'? > > Not sure 'make clean' would even help. This is what I do: 'make clean' does work because it deletes all the '.libs' directories, and the coverage data files were created in those dirs. > find . -name "*.gc*" -print0 | xargs -0 rm -rf Thanks. - Julian