[python3] * Fri Aug 6 2010 Toshio Kuratomi <toshio at fedoraproject.org> - 3.1.2-13 - Turn on computed-gotos. - F

Toshio くらとみ toshio at fedoraproject.org
Thu Aug 19 18:13:17 UTC 2010


commit 4c1f6daa7c985007218e9a7e7fd6601153a5dcd0
Author: Toshio Kuratomi <toshio at fedoraproject.org>
Date:   Thu Aug 19 14:12:57 2010 -0400

    * Fri Aug 6 2010 Toshio Kuratomi <toshio at fedoraproject.org> - 3.1.2-13
    - Turn on computed-gotos.
    - Fix for parallel make and graminit.c

 python-3.1-fix-parallel-make.patch |   38 ++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/python-3.1-fix-parallel-make.patch b/python-3.1-fix-parallel-make.patch
new file mode 100644
index 0000000..3c75b10
--- /dev/null
+++ b/python-3.1-fix-parallel-make.patch
@@ -0,0 +1,38 @@
+Index: Python-3.1.2/Makefile.pre.in
+===================================================================
+--- Python-3.1.2.orig/Makefile.pre.in
++++ Python-3.1.2/Makefile.pre.in
+@@ -215,6 +215,7 @@ IO_OBJS=	\
+ 
+ ##########################################################################
+ # Grammar
++GRAMMAR_STAMP=	$(srcdir)/grammar-stamp
+ GRAMMAR_H=	$(srcdir)/Include/graminit.h
+ GRAMMAR_C=	$(srcdir)/Python/graminit.c
+ GRAMMAR_INPUT=	$(srcdir)/Grammar/Grammar
+@@ -535,9 +536,24 @@ Modules/python.o: $(srcdir)/Modules/pyth
+ 
+ $(IO_OBJS): $(IO_H)
+ 
+-$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
++# GNU "make" interprets rules with two dependents as two copies of the rule.
++#
++# In a parallel build this can lead to pgen being run twice, once for each of
++# GRAMMAR_H and GRAMMAR_C, leading to race conditions in which the compiler
++# reads a partially-overwritten copy of one of these files, leading to syntax
++# errors (or linker errors if the fragment happens to be syntactically valid C)
++#
++# See http://www.gnu.org/software/hello/manual/automake/Multiple-Outputs.html
++# for more information
++#
++# Introduce ".grammar-stamp" as a contrived single output from PGEN to avoid
++# this:
++$(GRAMMAR_H) $(GRAMMAR_C): $(GRAMMAR_STAMP)
++
++$(GRAMMAR_STAMP): $(PGEN) $(GRAMMAR_INPUT)
+ 		-@$(INSTALL) -d Include
+ 		-$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
++		touch $(GRAMMAR_STAMP)
+ 
+ $(PGEN):	$(PGENOBJS)
+ 		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)


More information about the scm-commits mailing list