[issue10013] fix `./libpython2.6.so: undefined re ference to `_PyParser_Grammar´` in parallel builds

2010-10-24 Thread Éric Araujo

Changes by Éric Araujo mer...@netwok.org:


--
nosy: +eric.araujo
versions: +Python 2.7 -Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10013
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10013] fix `./libpython2.6.so: undefined re ference to `_PyParser_Grammar´` in parallel builds

2010-10-02 Thread Paul Menzel

New submission from Paul Menzel paulepan...@users.sourceforge.net:

Compiling Python in parallel sometimes fails as reported in [1] and [2].

./libpython2.6.so: undefined reference to `_PyParser_Grammar´

Fedora applies a patch by dmalcolm dmalc...@fedoraproject.org which fixes 
this issue [3].

diff -up Python-2.7/Makefile.pre.in.fix-parallel-make 
Python-2.7/Makefile.pre.in
--- Python-2.7/Makefile.pre.in.fix-parallel-make2010-07-22 
15:01:39.567996932 -0400
+++ Python-2.7/Makefile.pre.in  2010-07-22 15:47:02.437998509 -0400
@@ -207,6 +207,7 @@ SIGNAL_OBJS=@SIGNAL_OBJS@
 
 ##
 # Grammar
+GRAMMAR_STAMP= $(srcdir)/grammar-stamp
 GRAMMAR_H= $(srcdir)/Include/graminit.h
 GRAMMAR_C= $(srcdir)/Python/graminit.c
 GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar
@@ -530,10 +531,24 @@ Modules/getpath.o: $(srcdir)/Modules/get
 Modules/python.o: $(srcdir)/Modules/python.c
$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
 
+# 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_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
+$(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)

Could you please apply it. Could this also be applied to 2.6.x?


[1] http://doc.services.openoffice.org/wiki/RedTinderboxStatusInEIS
[2] http://www.openoffice.org/issues/show_bug.cgi?id=114866
[3] 
http://pkgs.fedoraproject.org/gitweb/?p=python.git;a=commit;h=b95f6cc2ca6a009f97436c6aa16cfd70547353d9

--
components: Build
messages: 117865
nosy: PaulePanter
priority: normal
severity: normal
status: open
title: fix `./libpython2.6.so: undefined reference to `_PyParser_Grammar´` in 
parallel builds
type: compile error
versions: Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10013
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10013] fix `./libpython2.6.so: undefined re ference to `_PyParser_Grammar´` in parallel builds

2010-10-02 Thread Martin v . Löwis

Martin v. Löwis mar...@v.loewis.de added the comment:

2.6 is closed for bug fixes, so this cannot be applied anymore.

Notice that py3k has this fixed in r84068; I'll backport the fix to 2.7.

--
nosy: +loewis

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10013
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10013] fix `./libpython2.6.so: undefined re ference to `_PyParser_Grammar´` in parallel builds

2010-10-02 Thread R. David Murray

Changes by R. David Murray rdmur...@bitdance.com:


--
nosy: +dmalcolm

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10013
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com