https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89961
--- Comment #3 from Cristian Morales Vega <christian.morales.vega at gmail dot com> --- I have just took a look inside one of the intermediate format .gcov files and didn't see any "current_working_directory". There is a full path "file" variable though. Not sure if that's what you mean. In any case anything inside the .gcov files would not solve my issue. My problem is that all the .gcov files are being created in the same directory and the .gcov files themselves get overwritten. So I have ./CMakeFiles/<cmake_target_name>.dir/src/error.cpp.o ./CMakeFiles/<cmake_target_name>.dir/src/error.cpp.gcda ./CMakeFiles/<cmake_target_name>.dir/src/error.cpp.gcno ./test/CMakeFiles/catch_tests.dir/error.cpp.o ./test/CMakeFiles/catch_tests.dir/error.cpp.gcda ./test/CMakeFiles/catch_tests.dir/error.cpp.gcno And a single "error.cpp.gcda.gcov" file since cmake has run /usr/bin/gcov -x -i -o <build_dir>/CMakeFiles/<cmake_target_name>.dir/src <build_dir>/CMakeFiles/cmake_target_name.dir/src/error.cpp.gcda and /usr/bin/gcov -x -i -o <build_dir>/test/CMakeFiles/catch_tests.dir <build_dir>/test/CMakeFiles/catch_tests.dir/error.cpp.gcda from the same directory, put all the files in a flat tarball and sent it to a CDash server. So I need the file names written to my hard drive to be different (i.e. -x to have effect).