[ccache] Support for -fprofile-generate, -fprofile-use, -fprofile-arcs

Chris AtLee chris at atlee.ca
Wed Aug 10 08:51:44 MDT 2011

On Mon, Aug 8, 2011 at 4:24 PM, Justin Lebar <justin.lebar at gmail.com> wrote:
>> The .gcda files themselves aren't cached, their contents are used to
>> calculate the hash for a -fprofile-use run. So if the .o file doesn't
>> exist, and you have the same .gcda file, you get a cache hit.
> Ah, I see.  What if the .o file does exist?  Why should that matter,
> if gcc is going to overwrite it anyway?

It doesn't really matter..my point was that hopefully your make
dependencies are set up so you're not calling gcc if you don't need

> You mentioned earlier that a simple program without branches or loops
> didn't generate the same .gcda files when the program was run twice.
> Would you mind including that code?  I wrote a pretty simple testcase
> and observed the opposite result.  Maybe it's different in different
> versions of gcc or something.

I have a simple hello world program. Even if I comment out the printf
I get different .gcda files after each run.

#include <stdio.h>

int main() {
    printf("hello world\n");
    return 0;

gcc -fprofile-generate   -c -o test.o test.c
gcc -fprofile-generate  test.o   -o test
./test; md5sum test.gcda
83fdede120951b154184271416082bdb  test.gcda
./test; md5sum test.gcda
230d10c340e6ae068a7d65b4bc355472  test.gcda

More information about the ccache mailing list