From: Nathanael Nerode <neroden@twcny.rr.com>
To: gcc-patches@gcc.gnu.org, gdb-patches@sources.redhat.com,
binutils@sources.redhat.com, dj@redhat.com
Subject: [toplevel patch] Up with parallelism!
Date: Tue, 10 Jun 2003 21:46:00 -0000 [thread overview]
Message-ID: <20030610214612.GA24361@doctormoo> (raw)
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:
next reply other threads:[~2003-06-10 21:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-10 21:46 Nathanael Nerode [this message]
2003-06-10 22:20 ` Alexandre Oliva
2003-06-10 22:52 ` DJ Delorie
2003-06-10 23:04 ` Alexandre Oliva
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030610214612.GA24361@doctormoo \
--to=neroden@twcny.rr.com \
--cc=binutils@sources.redhat.com \
--cc=dj@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox