[ccache] @file arguments to ccache - Intel Compiler

vkr venkatakrishnarao.ks at gmail.com
Sat Oct 17 07:07:13 UTC 2015


Hello,
I was wondering why in ccache we are expanding @file
https://github.com/venkrao/ccache-1/blob/59e5244dd79b0fc7df682c8f3c05b778a3d00f91/ccache.c#L1951
Essentially, the arguments that are to be listed in @file are those that
affect the preprocessor.

Is it safe to just not expand the arguments onto the commandline via ccache
function above,
but, just pass on the @file argument as-is to the compiler command-line?

The reason I'm asking this is, Intel compiler, apparently accepts shell
comments(# comments) inside the .cfg file, as well as new line characters.
And as far as my test results reveal, those fail ccache, as we do not care
filtering our the shell comments inside ccache,
instead, read the entire file content and put it into the command-line, and
this results in "Preprocessor error"

So, is it safe to just pass on the @file as-is to compiler, without letting
ccache read and expand the arguments?

I can think of a bad case, where the user puts in an absolute path -I path
inside the @file, and that results in cache miss in direct mode..

I'm unable to decide how to go about supporting Intel compiler, especially
with the @file. Intel compiler apparently even accepts special char like
hello.h$
or regex based input args inside the @file which might make ccache handle
them more difficult.

Regards,
Venkat.


More information about the ccache mailing list