* [toplevel patch] Up with parallelism!
@ 2003-06-10 21:46 Nathanael Nerode
2003-06-10 22:20 ` Alexandre Oliva
0 siblings, 1 reply; 4+ messages in thread
From: Nathanael Nerode @ 2003-06-10 21:46 UTC (permalink / raw)
To: gcc-patches, gdb-patches, binutils, dj
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:
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [toplevel patch] Up with parallelism!
2003-06-10 21:46 [toplevel patch] Up with parallelism! Nathanael Nerode
@ 2003-06-10 22:20 ` Alexandre Oliva
2003-06-10 22:52 ` DJ Delorie
0 siblings, 1 reply; 4+ messages in thread
From: Alexandre Oliva @ 2003-06-10 22:20 UTC (permalink / raw)
To: Nathanael Nerode; +Cc: gcc-patches, gdb-patches, binutils, dj
On Jun 10, 2003, Nathanael Nerode <neroden@twcny.rr.com> wrote:
> * configure.in: Death to serialization dependencies.
> * configure: Regenerated.
> * Makefile.tpl: Death to serialization dependencies. Death
> to .NOTPARALLEL.
> * Makefile.in: Regenerated.
Hmm... I'd be a bit more conservative, and keep the ability to ensure
serial-configure, for those who feel the need for it. How about just
disabling it by default for now, and see whether anyone runs into a
problem? We can always remove it later.
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [toplevel patch] Up with parallelism!
2003-06-10 22:20 ` Alexandre Oliva
@ 2003-06-10 22:52 ` DJ Delorie
2003-06-10 23:04 ` Alexandre Oliva
0 siblings, 1 reply; 4+ messages in thread
From: DJ Delorie @ 2003-06-10 22:52 UTC (permalink / raw)
To: aoliva; +Cc: neroden, gcc-patches, gdb-patches, binutils
> Hmm... I'd be a bit more conservative, and keep the ability to ensure
> serial-configure, for those who feel the need for it. How about just
> disabling it by default for now, and see whether anyone runs into a
> problem? We can always remove it later.
They can just use "-j1" for that.
I think this replicates the old functionality:
$ make -j1 MAKE="make -j3"
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [toplevel patch] Up with parallelism!
2003-06-10 22:52 ` DJ Delorie
@ 2003-06-10 23:04 ` Alexandre Oliva
0 siblings, 0 replies; 4+ messages in thread
From: Alexandre Oliva @ 2003-06-10 23:04 UTC (permalink / raw)
To: DJ Delorie; +Cc: neroden, gcc-patches, gdb-patches, binutils
On Jun 10, 2003, DJ Delorie <dj@delorie.com> wrote:
>> Hmm... I'd be a bit more conservative, and keep the ability to ensure
>> serial-configure, for those who feel the need for it. How about just
>> disabling it by default for now, and see whether anyone runs into a
>> problem? We can always remove it later.
> They can just use "-j1" for that.
> I think this replicates the old functionality:
> $ make -j1 MAKE="make -j3"
Not quite. It means every sub-make will get `make -j3', which
has explodes on me in certain cases.
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-06-10 23:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-10 21:46 [toplevel patch] Up with parallelism! Nathanael Nerode
2003-06-10 22:20 ` Alexandre Oliva
2003-06-10 22:52 ` DJ Delorie
2003-06-10 23:04 ` Alexandre Oliva
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox