Hi Tom, On Mon, 23 Sep 2013, Tom Tromey wrote: > This adds the configury needed for automatic dependency tracking. It > also adds some bits to the Makefile so we can begin converting > (removing) explicit dependencies. > > * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base) > (COMPILE, POSTCOMPILE): New variables. > (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
I believe this may be breaking all my testers on FreeBSD (i386-unknown-freebsd10.0 for example). The timing of when this patchset went in fits pretty much when my builds started to break and I am wondering about some code. Here is the failure mode: gmake[2]: Entering directory `/scratch/tmp/gerald/OBJ-0927-1848/gcc' g++ -c -DIN_GCC_FRONTEND -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -I. -Ic -I/scratch/tmp/gerald/gcc-HEAD/gcc ...[-I options]... -o c/c-lang.o -MT c/c-lang.o -MMD -MP -MF c/.deps/c-lang.TPo /scratch/tmp/gerald/gcc-HEAD/gcc/c/c-lang.c cc1plus: error: unrecognized command line option "-Wno-narrowing" gmake[2]: *** [c/c-lang.o] Error 1 gmake[1]: *** [install-gcc] Error 2 gmake: *** [install] Error 2 The issue is the invocation of g++ (the old system compiler, not what we built) with -Wno-narrowing (a new option). And looking at the code, I see +COMPILE.base = $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) -o $@ +ifeq ($(CCDEPMODE),depmode=gcc3) +# Note a subtlety here: we use $(@D) for the directory part, to make +# things like the go/%.o rule work properly; but we use $(*F) for the +# file part, as we just want the file part of the stem, not the entire +# file name. +COMPILE = $(COMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo +POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po +else +COMPILE = source='$<' object='$@' libtool=no \ + DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) $(COMPILE.base) +POSTCOMPILE = +endif Where does $(ALL_COMPILERFLAGS) compile from? If I read the code right, we do disable these warnings for the stage1 build. However, the install compiler is the same -- so I guess we should disable warnings there, too? Gerald