From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20866 invoked by alias); 10 Jun 2003 21:46:19 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 20701 invoked from network); 10 Jun 2003 21:46:17 -0000 Received: from unknown (HELO ms-smtp-02.nyroc.rr.com) (24.92.226.49) by sources.redhat.com with SMTP; 10 Jun 2003 21:46:17 -0000 Received: from doctormoo (syr-24-24-16-157.twcny.rr.com [24.24.16.157]) by ms-smtp-02.nyroc.rr.com (8.12.5/8.12.2) with ESMTP id h5ALkFpn005281; Tue, 10 Jun 2003 17:46:15 -0400 (EDT) Received: from neroden by doctormoo with local (Exim 3.36 #1 (Debian)) id 19PqwX-000789-00; Tue, 10 Jun 2003 17:46:13 -0400 Date: Tue, 10 Jun 2003 21:46:00 -0000 To: gcc-patches@gcc.gnu.org, gdb-patches@sources.redhat.com, binutils@sources.redhat.com, dj@redhat.com Subject: [toplevel patch] Up with parallelism! Message-ID: <20030610214612.GA24361@doctormoo> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i From: Nathanael Nerode X-SW-Source: 2003-06/txt/msg00341.txt.bz2 Up with parallelism. I don't have an actual multiprocessor machine, but I did test with 'make -j 4 bootstrap' and 'make -k -j 4 check'. * configure.in: Death to serialization dependencies. * configure: Regenerated. * Makefile.tpl: Death to serialization dependencies. Death to .NOTPARALLEL. * Makefile.in: Regenerated. Index: configure.in =================================================================== RCS file: /cvs/gcc/gcc/configure.in,v retrieving revision 1.237 diff -u -r1.237 configure.in --- configure.in 3 Jun 2003 20:42:13 -0000 1.237 +++ configure.in 10 Jun 2003 17:24:01 -0000 @@ -103,17 +103,7 @@ ### To add a new directory to the tree, first choose whether it is a target ### or a host dependent tool. Then put it into the appropriate list -### (library or tools, host or target), doing a dependency sort. - -# Subdirs will be configured in the order listed in build_configdirs, -# configdirs, or target_configdirs; see the serialization section below. - -# Dependency sorting is only needed when *configuration* must be done in -# a particular order. In all cases a dependency should be specified in -# the Makefile, whether or not it's implicitly specified here. - -# Double entries in build_configdirs, configdirs, or target_configdirs may -# cause circular dependencies and break everything horribly. +### (library or tools, host or target). # these libraries are used by various programs built for the host environment # @@ -1694,51 +1684,6 @@ done maybe_dependencies=maybedep.tmp AC_SUBST_FILE(maybe_dependencies) - -# Create the serialization dependencies. This uses a temporary file. - -AC_ARG_ENABLE([serial-configure], -[ --disable-serial-[{host,target,build}-]configure - Don't force sequential configuration of - sub-packages for the host, target or build - machine, or of any sub-packages at all]) - -# These force 'configure's to be done one at a time, to avoid problems -# with contention over a shared config.cache. -rm -f serdep.tmp -echo '# serdep.tmp' > serdep.tmp -olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_build_configure}" = xno || -for item in ${build_configdirs} ; do - case ${olditem} in - "") ;; - *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;; - esac - olditem=${item} -done -olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_host_configure}" = xno || -for item in ${configdirs} ; do - case ${olditem} in - "") ;; - *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;; - esac - olditem=${item} -done -olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_target_configure}" = xno || -for item in ${target_configdirs} ; do - case ${olditem} in - "") ;; - *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;; - esac - olditem=${item} -done -serialization_dependencies=serdep.tmp -AC_SUBST_FILE(serialization_dependencies) # Base args. Strip norecursion, cache-file, srcdir, host, build, # target and nonopt. These are the ones we might not want to pass Index: Makefile.tpl =================================================================== RCS file: /cvs/gcc/gcc/Makefile.tpl,v retrieving revision 1.56 diff -u -r1.56 Makefile.tpl --- Makefile.tpl 10 Jun 2003 13:36:27 -0000 1.56 +++ Makefile.tpl 10 Jun 2003 17:24:31 -0000 @@ -740,7 +740,7 @@ .PHONY: check do-check check: - $(MAKE) do-check NOTPARALLEL=parallel-ok + $(MAKE) do-check # Only include modules actually being configured and built. do-check: maybe-check-gcc [+ @@ -1307,7 +1307,7 @@ .PHONY: check-c++ check-c++: - $(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok + $(MAKE) check-target-libstdc++-v3 check-gcc-c++ .PHONY: install-gcc maybe-install-gcc maybe-install-gcc: @@ -1463,11 +1463,6 @@ # all-gcc only depends on all-gas if gas is present and being configured. @maybe_dependencies@ -# Serialization dependencies. Host configures don't work well in parallel to -# each other, due to contention over config.cache. Target configures and -# build configures are similar. -@serialization_dependencies@ - # -------------------------------- # Regenerating top level configury # -------------------------------- @@ -1503,12 +1498,6 @@ # ------------------------------ # Special directives to GNU Make # ------------------------------ - -# Tell GNU make 3.79 not to run the top level in parallel. This -# prevents contention for $builddir/$target/config.cache, as well -# as minimizing scatter in file system caches. -NOTPARALLEL = .NOTPARALLEL -$(NOTPARALLEL): # Don't pass command-line variables to submakes. .NOEXPORT: