I think I understand what you are saying regarding -E, but given that, ccache would still have to determine whether the language in question was preprocessed. Does invoking gcc somehow signal to ccache that it is preprocessed? How does it do that? I looked at the source code for ccache. It can use the environment variable CCACHE_CC to override the command line options. This variable was not set in my environment. 2011/4/21 Zdeněk Sojka <zsojka@xxxxxxxxx>: > >> ------------ Původní zpráva ------------ >> Od: RR <rrsacct@xxxxxxxxx> >> Předmět: gcc linked to ccache with installed version >> Datum: 21.4.2011 21:09:43 >> ---------------------------------------- >> I noticed that my installed version of gcc is linked to ccache. When I >> type gcc on the command line, I >> get "gcc: no input files". When I type ccache, I get the ccache usage >> message. But when I >> type "ccache gcc" I get "gcc: no input files". It seems that gcc is >> engaging ccache with the option "gcc" >> appended somehow. I would like to know how the link name, gcc, engages >> ccache with the gcc option specified. >> >> >> > > Likely ccache executes something like "$* -E" to get the preprocessed source it uses for caching. > The output you see is from "gcc -E": > $ gcc -E > gcc: no input files > > Zdenek Sojka >