[ccache] How to make ccache not interpret 'multiple'
Joel Rosdahl
joel at rosdahl.net
Sun Jan 23 09:22:59 MST 2011
On 2011-01-21 18:01, NITIN KHOSLA, BLOOMBERG/ 731 LEXIN wrote:
> CC: Invalid input file name /home/nkhosla/.ccache/tmp/FILENAME.ii, no
> output generated for this file.
> .
> Above is the error I get from ccache. I modified FILENAME part.
>>> Result: compiler produced no output
> .
> I found one post:
> http://www.mail-archive.com/distcc@lists.samba.org/msg02316.html That
> is that Sun CC apparently cannot correctly compile C++ templates when
> the file is preprocessed separately from compilation. Though that post
> is OLD. Is this still true regarding solaris CC compiler?
I tried /usr/bin/CC in Solaris 10 and I got it to work with a small test
program by setting CCACHE_EXTENSION=i. Does that work for you as well?
To get rid of the
CC: Warning: "-E" redefines product from "object" to "source (stdout)"
warning, I had to make the following change as well:
--- a/ccache.c
+++ b/ccache.c
@@ -1273,7 +1273,6 @@ cc_process_args(struct args *orig_args, struct
args **preprocessor_args,
/* we must have -c */
if (str_eq(argv[i], "-c")) {
- args_add(stripped_args, argv[i]);
found_c_opt = true;
continue;
}
@@ -1687,6 +1686,10 @@ cc_process_args(struct args *orig_args, struct
args **preprocessor_args,
*compiler_args = args_copy(*preprocessor_args);
}
+ if (found_c_opt) {
+ args_add(*compiler_args, "-c");
+ }
+
/*
* Only pass dependency arguments to the preprocesor since Intel's C++
* compiler doesn't produce a correct .d file when compiling preprocessed
-- Joel
More information about the ccache
mailing list