fix rebuilding issue
Ralf Wildenhues
Ralf.Wildenhues@gmx.de
Sun Feb 13 19:01:00 GMT 2011
Hello Mike,
* Mike Stump wrote on Sun, Feb 13, 2011 at 01:37:48PM CET:
> * config/t-darwin (build/slashify1): Harden against rebuilds.
> * config/slashify.c: Nix parms to quite the build.
>
> cp:
> * (build/slashify): Harden against rebuilds.
>
> --- cp/Make-lang.in (revision 170104)
> +++ cp/Make-lang.in (working copy)
> @@ -333,15 +333,17 @@
>
> cp/lex.o: $(objdir)/objcp/plugin/lex.h c-family/c-objc.h
>
> -build/slashify:: $(srcdir)/config/slashify.c
> - $(COMPILER_FOR_BUILD) $(srcdir)/config/slashify.c -o $@
> +# Would like to get rid of the #, but we always rebuild the checksum
> +# if we do
> +build/slashify: # $(srcdir)/config/slashify.c
> + $(COMPILER_FOR_BUILD) $(BUILD_COMPILERFLAGS) $(BUILD_CPPFLAGS) $(srcdir)/config/slashify.c -o $@
>
> -$(objdir)/objcp/plugin/parser.h: $(srcdir)/objcp/plugin/parser.h | build/slashify
> +$(objdir)/objcp/plugin/parser.h: $(srcdir)/objcp/plugin/parser.h build/slashify
This change doesn't look right. The order-only dependency should be
just the right thing to avoid unnecessary rebuilds of parser.h when
slashify is recreated but the parser.h in the source tree hasn't
changed. Which make version and what system are you using where this
doesn't work?
(Aside, both old and new versions won't work for an in-tree build,
and both lack a few $(build_exeext) additions.)
> test -d objcp || mkdir objcp
> test -d objcp/plugin || mkdir objcp/plugin
> build/slashify < $< > $@
>
> -$(objdir)/objcp/plugin/lex.h: $(srcdir)/objcp/plugin/lex.h | build/slashify
> +$(objdir)/objcp/plugin/lex.h: $(srcdir)/objcp/plugin/lex.h build/slashify
> test -d objcp || mkdir objcp
> test -d objcp/plugin || mkdir objcp/plugin
> build/slashify < $< > $@
> Index: config/t-darwin
> ===================================================================
> --- config/t-darwin (revision 170103)
> +++ config/t-darwin (working copy)
> @@ -17,18 +17,18 @@
> # along with GCC; see the file COPYING3. If not see
> # <http://www.gnu.org/licenses/>.
>
> -build/slashify:: $(srcdir)/config/slashify.c
> - $(COMPILER_FOR_BUILD) $(srcdir)/config/slashify.c -o $@
> +build/slashify1: $(srcdir)/config/slashify.c
> + $(COMPILER_FOR_BUILD) $(BUILD_COMPILERFLAGS) $(BUILD_CPPFLAGS) $(srcdir)/config/slashify.c -o $@
>
> $(srcdir)/config/darwin.h: config/darwin.h.rebuild
>
> -config/darwin.h.rebuild: build/slashify
> +config/darwin.h.rebuild: build/slashify1
> @if [ ! -e $(srcdir)/config/darwin.h \
> -o $(srcdir)/config/darwin.h -nt config/darwin.h ]; then \
> { test -d config || mkdir config; } && \
> cp -p $(srcdir)/config/darwin-sections.def \
> config/darwin-sections.def && \
> - build/slashify < $(srcdir)/config/darwin.h >config/darwin.h; \
> + build/slashify1 < $(srcdir)/config/darwin.h >config/darwin.h; \
> fi
>
> darwin.o: $(srcdir)/config/darwin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
Thanks,
Ralf
More information about the Gcc-patches
mailing list