On 10 Aug 2003, Koblinger Egmont <egm...@uhulinux.hu> wrote: > ./out/axis.o: axis.cc include/axes.hh include/string.hh \ > include/arithmetic-operator.hh include/flower-proto.hh include/real.hh \ > include/string-handle.hh include/string-handle.icc \ > include/string-data.hh include/string-data.icc include/international.hh \ > include/compare.hh include/string.icc > > but when ccache is used, this file has one more line: > > ./out/axis.o: axis.cc include/axes.hh include/string.hh \ > include/arithmetic-operator.hh include/flower-proto.hh include/real.hh \ > include/string-handle.hh include/string-handle.icc \ > include/string-data.hh include/string-data.icc include/international.hh \ > include/compare.hh include/string.icc > ./out/axis.o: /home/egmont/.ccache/tmp.stdout.boci.5961.ii > > All the other *.dep files have a similar extra line appended which point > to some ccache-internal filename, which means that somehow ccache fails to > remain transparent for lilypond. > > The command that generates this .dep file is: > > DEPENDENCIES_OUTPUT="./out/axis.dep ./out/axis.o" c++ -c -DHAVE_CONFIG_H > -DSTRING_UTILS_INLINED -Iinclude -I./out -I../flower/include > -I../flower/./out -O2 -finline-functions -g -O2 -finline-functions -g > -Wall -W -Wmissing-prototypes -Wconversion -o out/axis.o axis.cc
Thankyou for reporting this. It looks like the problem is that DEPENDENCIES_OUTPUT is read by both cpp and cc1, so it gets dependencies for both .h->.i and .i->.o. Almost certainly you only want the first one. You can work around this in lilypond by using -MD -MF rather than DEPENDENCIES_OUTPUT. I think ccache (and distcc) ought to strip DEPENDENCIES_OUTPUT before invoking the compiler, so that you only get the first dependencies line. > Please take a look at this problem. It seems to me that ccache should fix > the DEPENDENCIES_OUTPUT files after running gcc itself, but real > developers should know it better than me :-) > > Another trivial workaround might be to let an existing DEPENDENCIES_OUTPUT > env variable simply imply CCACHE_DISABLE. A small patch is attached. I don't think such severe measures are needed. > Have a nice holiday, Thankyou! How did you know? :-) -- Martin