[ccache] [PATCH] Add support for coverage (compiling for gcov)

Anders Björklund anders at itension.se
Tue Mar 31 14:16:24 MDT 2015


>> (Sorry about the very delayed answer.)
>
>No problem!
>
>> The patch looks good! I plan to only apply fixes to serious bugs on 3.1-maint, so I'll focus on the 3.2-maint version.
>
>That it is OK, we can backport to 3.1 downstream if needed. Will focus on "master" (and 3.2).

Here is a delayed update, with updated versions for 3.1-maint and 3.2-maint:

https://github.com/itension/ccache/compare/3.1-maint...coverage-3.1-maint
https://github.com/itension/ccache/compare/3.2-maint...coverage-3.2-maint

After this change, it should be able to return cache hits for --coverage as well.

>> 1. I get this test suite failure with GCC >= 4.7:
>> No failure with GCC <= 4.6.
>>
>> I guess that the "coverage (empty)" test should check that the two runs either both produce no test.gcno files or both produce identical test.gcno files?
>
>Right, I will need to look into this issue with a newer compiler and get back to you.
>
>There's also some issues with absolute/relative paths and cache hits from when using a base directory...

Turns out that it doesn't really matter if the file is empty, or just small (12 bytes).
As long as the code handles the "missing" case for older compilers, it'll be fine...

Also found the issue with lcov and relative paths (with basedir) and the cache hits.
It needs to record the full input file path for coverage, and not make it relative...

>> 2. You wrote "Please include these in ccache, under GNU General Public License v3". Just to clarify: Do you agree to use the same license as the rest of ccache does, which is "GPLv3 or any later version"?
>
>Yes, I meant to use the same license as the rest of the ccache software. So: GPLv3+ ("or any later version") it is.

To be perfectly clear:
  This program is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free Software
  Foundation; either version 3 of the License, or (at your option) any later
  version.

  This program is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  PARTICULAR PURPOSE. See the GNU General Public License for more details.

Thankful for any feedback on the actual code itself, or any other considerations.

/Anders


More information about the ccache mailing list