autoconf-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.63b-46-


From: Ralf Wildenhues
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.63b-46-gb29a07f
Date: Tue, 19 May 2009 05:29:40 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=b29a07fffb68cb6915e7bc89360718acec112ade

The branch, master has been updated
       via  b29a07fffb68cb6915e7bc89360718acec112ade (commit)
      from  83d976a33f322ffb164433db6aa3bb6f78e40333 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b29a07fffb68cb6915e7bc89360718acec112ade
Author: Ralf Wildenhues <address@hidden>
Date:   Sun May 17 11:49:44 2009 +0200

    New manual section `Parallel Make'.
    
    * doc/autoconf.texi (Parallel Make): New node, document NetBSD
    `make -jN' quirks.
    (Top, Portable Make): Adjust menus.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog         |    7 ++++++
 doc/autoconf.texi |   62 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 160449d..331f2de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-05-17  Ralf Wildenhues  <address@hidden>
+
+       New manual section `Parallel Make'.
+       * doc/autoconf.texi (Parallel Make): New node, document NetBSD
+       `make -jN' quirks.
+       (Top, Portable Make): Adjust menus.
+
 2009-05-14  Ralf Wildenhues  <address@hidden>
 
        testsuite: skip `Multiple languages' test without C++ compiler.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 928b417..7f04408 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -509,6 +509,7 @@ Portable Make Programming
 * Macros and Submakes::         @code{make macro=value} and submakes
 * The Make Macro MAKEFLAGS::    @code{$(MAKEFLAGS)} portability issues
 * The Make Macro SHELL::        @code{$(SHELL)} portability issues
+* Parallel Make::               Parallel @command{make} quirks
 * Comments in Make Rules::      Other problems with Make comments
 * obj/ and Make::               Don't name a subdirectory @file{obj}
 * make -k Status::              Exit status of @samp{make -k}
@@ -17567,6 +17568,7 @@ itself.
 * Macros and Submakes::         @code{make macro=value} and submakes
 * The Make Macro MAKEFLAGS::    @code{$(MAKEFLAGS)} portability issues
 * The Make Macro SHELL::        @code{$(SHELL)} portability issues
+* Parallel Make::               Parallel @command{make} quirks
 * Comments in Make Rules::      Other problems with Make comments
 * obj/ and Make::               Don't name a subdirectory @file{obj}
 * make -k Status::              Exit status of @samp{make -k}
@@ -17878,6 +17880,66 @@ $ @kbd{env SHELL=sh gmake -e SHELL=/bin/ksh}  # GNU 
make 3.81
 sh
 @end example
 
address@hidden Parallel Make
address@hidden Parallel Make
address@hidden Parallel @command{make}
+
+Support for parallel execution in @command{make} implementation varies.
+Generally, using @acronym{GNU} make is your best bet.  When NetBSD
address@hidden is invoked with @address@hidden, it will reuse the
+same shell for multiple commands within one recipe.  This can have
+unexpected address@hidden that @acronym{GNU} make has
+heuristics to avoid spawning a shell at all if the command is deemed
+safe to be executed directly.} For example, change of directories or
+variables persist between commands:
+
address@hidden
+all:
+        @@var=value; cd /; pwd; echo $$var; echo $$$$
+        @@pwd; echo $$var; echo $$$$
address@hidden example
+
address@hidden
+may output the following with @code{make -j1}:
+
address@hidden
+--- all ---
+/
+value
+32235
+/
+value
+32235
address@hidden example
+
+while without @option{-j1}, or with @option{-B}, the output looks less
+surprising:
+
address@hidden
+/
+value
+32238
+/tmp
+
+32239
address@hidden example
+
+Another consequence of this is that, if one command in a recipe uses
address@hidden 0} to indicate a successful exit, the shell will be gone
+and the remaining commands of this recipe will not be executed.
+
+The above example also shows additional status output NetBSD
address@hidden produces in parallel mode for targets being updated.
+
+Furthermore, parallel NetBSD @command{make} will route standard error
+from commands that it spawns into its own standard output, and may
+remove leading whitespace from output lines.
+
+You can avoid these issues by using the @option{-B} option to enable
+compatibility semantics.  However, that will effectively also disable
+all parallelism as that will cause prerequisites to be updated in the
+order they are listed in a rule.
+
 @node Comments in Make Rules
 @section Comments in Make Rules
 @cindex Comments in @file{Makefile} rules


hooks/post-receive
-- 
GNU Autoconf source repository




reply via email to

[Prev in Thread] Current Thread [Next in Thread]