From 73dfb31673af01a291e6a6945210b59608e7bb59 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Mon, 21 Jun 2004 21:49:13 +0000 Subject: [PATCH] Fix -j builds for gcc-3.4. The .nx build in cc_tools was breaking parallelism because individual source/header dependancies were being built in parallel, and this was causing the helper programs to build in parallel and/or generate the same header file in parallel. Remove all direct dependancies on the helper programs. Make libgcc dependant on cc_tools (to generate required header files), clean up the dependancy target for cc_tools, and force make depend to build the tools. This should result in all the tools being available to the rest of the gcc-3.4 build. Tested with several -j 8 builds. There could still be additional -j issues. --- gnu/lib/gcc34/libgcc/Makefile | 19 +++- gnu/usr.bin/cc34/cc_tools/Makefile | 4 +- gnu/usr.bin/cc34/cc_tools/Makefile.tools | 108 +++++------------------ 3 files changed, 40 insertions(+), 91 deletions(-) diff --git a/gnu/lib/gcc34/libgcc/Makefile b/gnu/lib/gcc34/libgcc/Makefile index 88700b3800..25815ce3c6 100644 --- a/gnu/lib/gcc34/libgcc/Makefile +++ b/gnu/lib/gcc34/libgcc/Makefile @@ -1,4 +1,4 @@ -# $DragonFly: src/gnu/lib/gcc34/libgcc/Makefile,v 1.3 2004/06/21 00:03:41 joerg Exp $ +# $DragonFly: src/gnu/lib/gcc34/libgcc/Makefile,v 1.4 2004/06/21 21:49:11 dillon Exp $ .include "../Makefile.inc" .include "${STOPDIR}/cc_tools/Makefile.tools" @@ -43,10 +43,21 @@ ${F:R:S/$/.o/}: ${F} ${CC} ${CFLAGS} -fnon-call-exceptions -c ${.IMPSRC} .endfor -depend: cc_prep -.ORDER: cc_prep ${SRCS} - +depend: cc_prep cc_tools +.ORDER: cc_prep cc_tools ${SRCS} + +# This is kinda messy, but it's easier then rearranging the top level +# build. gcc-3.4's libgcc generates source files which depend on generated +# header files, which means we have to generate our tools set before +# we can build libgcc. The toolset is normally built afterwords. +# +# XXX for the world stage we could theoretically use the cc_tools generated +# in the btools stage, but it's easier to regenerate them. +# cc_prep: .PHONY cd ${STOPDIR}/cc_prep; ${MAKE} depend +cc_tools: .PHONY + cd ${STOPDIR}/cc_tools; ${MAKE} depend + .include diff --git a/gnu/usr.bin/cc34/cc_tools/Makefile b/gnu/usr.bin/cc34/cc_tools/Makefile index 04e0a1013c..5fd2bb4ac5 100644 --- a/gnu/usr.bin/cc34/cc_tools/Makefile +++ b/gnu/usr.bin/cc34/cc_tools/Makefile @@ -1,4 +1,4 @@ -# $DragonFly: src/gnu/usr.bin/cc34/cc_tools/Makefile,v 1.4 2004/06/21 00:03:40 joerg Exp $ +# $DragonFly: src/gnu/usr.bin/cc34/cc_tools/Makefile,v 1.5 2004/06/21 21:49:13 dillon Exp $ SUBDIR= gengenrtl genmodes gengtype genpreds gencheck genconstants SUBDIR+= genconditions genflags gencodes genattr genattrtab genemit @@ -7,7 +7,7 @@ SUBDIR+= gcov-iov SUBDIR+= fini -depend: cc_prep +_EXTRADEPEND: cc_prep cc_prep: .PHONY cd ${STOPDIR}/cc_prep; ${MAKE} depend diff --git a/gnu/usr.bin/cc34/cc_tools/Makefile.tools b/gnu/usr.bin/cc34/cc_tools/Makefile.tools index de6865e043..c67b42b40f 100644 --- a/gnu/usr.bin/cc34/cc_tools/Makefile.tools +++ b/gnu/usr.bin/cc34/cc_tools/Makefile.tools @@ -1,73 +1,73 @@ -# $DragonFly: src/gnu/usr.bin/cc34/cc_tools/Makefile.tools,v 1.3 2004/06/21 03:48:06 dillon Exp $ +# $DragonFly: src/gnu/usr.bin/cc34/cc_tools/Makefile.tools,v 1.4 2004/06/21 21:49:13 dillon Exp $ .ORDER: options.c options.h -insn-output.c: ${TOOLDIR}/genoutput/genoutput.nx +insn-output.c: ${TOOLDIR}/genoutput/genoutput.nx ${MD_FILE} > ${.TARGET} -insn-opinit.c: ${TOOLDIR}/genopinit/genopinit.nx +insn-opinit.c: ${TOOLDIR}/genopinit/genopinit.nx ${MD_FILE} > ${.TARGET} -insn-extract.c: ${TOOLDIR}/genextract/genextract.nx +insn-extract.c: ${TOOLDIR}/genextract/genextract.nx ${MD_FILE} > ${.TARGET} -insn-attrtab.c: ${TOOLDIR}/genattrtab/genattrtab.nx +insn-attrtab.c: ${TOOLDIR}/genattrtab/genattrtab.nx ${MD_FILE} > ${.TARGET} -insn-emit.c: ${TOOLDIR}/genemit/genemit.nx +insn-emit.c: ${TOOLDIR}/genemit/genemit.nx ${MD_FILE} > ${.TARGET} -insn-attr.h: ${TOOLDIR}/genattr/genattr.nx +insn-attr.h: ${TOOLDIR}/genattr/genattr.nx ${MD_FILE} > ${.TARGET} -insn-codes.h: ${TOOLDIR}/gencodes/gencodes.nx +insn-codes.h: ${TOOLDIR}/gencodes/gencodes.nx ${MD_FILE} > ${.TARGET} -insn-recog.c: ${TOOLDIR}/genrecog/genrecog.nx +insn-recog.c: ${TOOLDIR}/genrecog/genrecog.nx ${MD_FILE} > ${.TARGET} -insn-peep.c: ${TOOLDIR}/genpeep/genpeep.nx +insn-peep.c: ${TOOLDIR}/genpeep/genpeep.nx ${MD_FILE} > ${.TARGET} -insn-conditions.c: ${TOOLDIR}/genconditions/genconditions.nx +insn-conditions.c: ${TOOLDIR}/genconditions/genconditions.nx ${MD_FILE} > ${.TARGET} -insn-constants.h: ${TOOLDIR}/genconstants/genconstants.nx +insn-constants.h: ${TOOLDIR}/genconstants/genconstants.nx ${MD_FILE} > ${.TARGET} -insn-modes.c: ${TOOLDIR}/genmodes/genmodes.nx +insn-modes.c: ${TOOLDIR}/genmodes/genmodes.nx > ${.TARGET} -insn-modes.h: ${TOOLDIR}/genmodes/genmodes.nx +insn-modes.h: ${TOOLDIR}/genmodes/genmodes.nx -h > ${.TARGET} -min-insn-modes.c: ${TOOLDIR}/genmodes/genmodes.nx +min-insn-modes.c: ${TOOLDIR}/genmodes/genmodes.nx -m > ${.TARGET} -genrtl.c: ${TOOLDIR}/gengenrtl/gengenrtl.nx +genrtl.c: ${TOOLDIR}/gengenrtl/gengenrtl.nx > ${.TARGET} -genrtl.h: ${TOOLDIR}/gengenrtl/gengenrtl.nx +genrtl.h: ${TOOLDIR}/gengenrtl/gengenrtl.nx -h > ${.TARGET} -gtype-desc.c gtype-desc.h: ${TOOLDIR}/gengtype/gengtype.nx +gtype-desc.c gtype-desc.h: ${TOOLDIR}/gengtype/gengtype.nx .ORDER: gtype-desc.c gtype-desc.h -tm-preds.h: ${TOOLDIR}/genpreds/genpreds.nx +tm-preds.h: ${TOOLDIR}/genpreds/genpreds.nx > ${.TARGET} -tree-check.h: ${TOOLDIR}/gencheck/gencheck.nx +tree-check.h: ${TOOLDIR}/gencheck/gencheck.nx > ${.TARGET} -insn-config.h: ${TOOLDIR}/genconfig/genconfig.nx +insn-config.h: ${TOOLDIR}/genconfig/genconfig.nx ${MD_FILE} > ${.TARGET} -insn-flags.h: ${TOOLDIR}/genflags/genflags.nx +insn-flags.h: ${TOOLDIR}/genflags/genflags.nx ${MD_FILE} > ${.TARGET} -gcov-iov.h: ${TOOLDIR}/gcov-iov/gcov-iov.nx +gcov-iov.h: ${TOOLDIR}/gcov-iov/gcov-iov.nx > ${.TARGET} @@ -92,65 +92,3 @@ CLEANFILES+= gt-tree.h gt-varasm.h gtype-c.h gtype-cp.h gtype-desc.c CLEANFILES+= gtype-desc.h gt-f-com.h gt-f-lex.h gt-f-ste.h gt-f-where.h CLEANFILES+= gt-objc-objc-act.h gtype-f.h gtype-objc.h -${TOOLDIR}/genconditions/genconditions.nx: - cd ${SRC_TOOLDIR}/genconditions && ${MAKE} - -${TOOLDIR}/genmodes/genmodes.nx: - cd ${SRC_TOOLDIR}/genmodes && ${MAKE} - -${TOOLDIR}/genoutput/genoutput.nx: - cd ${SRC_TOOLDIR}/genoutput && ${MAKE} - -${TOOLDIR}/genopinit/genopinit.nx: - cd ${SRC_TOOLDIR}/genopinit && ${MAKE} - -${TOOLDIR}/genextract/genextract.nx: - cd ${SRC_TOOLDIR}/genextract && ${MAKE} - -${TOOLDIR}/genattrtab/genattrtab.nx: - cd ${SRC_TOOLDIR}/genattrtab && ${MAKE} - -${TOOLDIR}/genemit/genemit.nx: - cd ${SRC_TOOLDIR}/genemit && ${MAKE} - -${TOOLDIR}/genattr/genattr.nx: - cd ${SRC_TOOLDIR}/genattr && ${MAKE} - -${TOOLDIR}/gencodes/gencodes.nx: - cd ${SRC_TOOLDIR}/gencodes && ${MAKE} - -${TOOLDIR}/genrecog/genrecog.nx: - cd ${SRC_TOOLDIR}/genrecog && ${MAKE} - -${TOOLDIR}/genpeep/genpeep.nx: - cd ${SRC_TOOLDIR}/genpeep && ${MAKE} - -${TOOLDIR}/genconfig/genconfig.nx: - cd ${SRC_TOOLDIR}/genconfig && ${MAKE} - -${TOOLDIR}/genconstants/genconstants.nx: - cd ${SRC_TOOLDIR}/genconstants && ${MAKE} - -${TOOLDIR}/gencheck/gencheck.nx: - cd ${SRC_TOOLDIR}/gencheck && ${MAKE} - -${TOOLDIR}/gencheck/gencheck.nx: - cd ${SRC_TOOLDIR}/gencheck && ${MAKE} - -${TOOLDIR}/genpreds/genpreds.nx: - cd ${SRC_TOOLDIR}/genpreds && ${MAKE} - -${TOOLDIR}/gengenrtl/gengenrtl.nx: - cd ${SRC_TOOLDIR}/gengenrtl && ${MAKE} - -${TOOLDIR}/gengtype/gengtype.nx: - cd ${SRC_TOOLDIR}/gengtype && ${MAKE} - -${TOOLDIR}/genflags/genflags.nx: - cd ${SRC_TOOLDIR}/genflags && ${MAKE} - -${TOOLDIR}/gcov-iov/gcov-iov.nx: - cd ${SRC_TOOLDIR}/gcov-iov && ${MAKE} - -${TOOLDIR}/fini/fini.nx: - cd ${SRC_TOOLDIR}/fini && ${MAKE} -- 2.41.0