Hi Joel, I finally got around to rewriting the third patch. I added a special case to process_args that matches distcc's behavior (if the first argument to distcc is neither a source/object file nor an option, it's treated as the compiler).
You can find the patch at http://github.com/sheepmaster/ccache . Bernhard. On Mon, May 17, 2010 at 14:27, Bernhard Bauer <bau...@google.com> wrote: > On Sunday, May 16, 2010, Joel Rosdahl wrote: >> On 2010-05-12 15:52, Bernhard Bauer wrote: >>> attached are some patches needed to make compiling under Mac OS X with >>> Xcode/distcc work. >> >> Thanks! >> >>> 0001-Add-Objective-C-to-the-mapping-from-source-files-to-.patch >> >> Sure. Applied. >> >>> 0002-Add-fpreprocessed-option-for-compiling-preprocessed-.patch >> >> Is this needed because GCC doesn't add -fpreprocessed implicitly like it >> does for .i/.ii/.mi files? >> >> The patch looks OK, except that it seems that -fpreprocessed was added >> in GCC 3.0, so GCC 2.95 wouldn't be supported anymore if we add the flag >> unconditionally. I don't know if anyone still uses GCC 2.95, but maybe >> we could do it like this instead: >> >> --- a/ccache.c >> +++ b/ccache.c >> @@ -497,6 +497,14 @@ static void to_cache(ARGS *args) >> putenv("DEPENDENCIES_OUTPUT"); >> >> if (compile_preprocessed_source_code) { >> + char *p = strrchr(i_tmpfile, '.'); >> + if (p && strcmp(p, ".mii") == 0) { >> + /* >> + * GCC doesn't add -fpreprocessed implicitly for .mii >> + * files, so we have to add it ourselves. >> + */ >> + args_add(args, "-fpreprocessed"); >> + } >> args_add(args, i_tmpfile); >> } else { >> args_add(args, input_file); >> >> What do you think? > > Or maybe it got confused by the -x option added by xcodebuild (for > which I used Dirk Best's preliminary patch, so I didn't repeat it > here). I'll find out which one is the case. > >>> 0003-Fix-a-bug-where-a-compiler-invocation-with-distcc-di.patch >> >> I'm don't think that's a good idea, since the executable flag can be set >> on source code files as well, either by mistake or because the file >> system (for instance vfat) may display all files as executable. >> >> Maybe you set CCACHE_PREFIX to distcc instead? See >> . > > The problem is that distcc is called directly by xcodebuild, so I'm > masquerading ccache as distcc via a symlink. Maybe the proper way here > is to change the command line parsing so that it can cope with an > additional argument when called as distcc. > > Bernhard. > >> ccache mailing list >> ccache@lists.samba.org >> https://lists.samba.org/mailman/listinfo/ccache >> > _______________________________________________ ccache mailing list ccache@lists.samba.org https://lists.samba.org/mailman/listinfo/ccache