[Python-checkins] cpython (merge 3.4 -> default): Issue #21166: merge from 3.4

ned.deily python-checkins at python.org
Fri Aug 22 22:37:01 CEST 2014


http://hg.python.org/cpython/rev/599dc1304a70
changeset: 92197:599dc1304a70
parent: 92194:0c2792a8f9db
parent: 92196:e52d85f2e284
user: Ned Deily <nad at acm.org>
date: Fri Aug 22 13:36:30 2014 -0700
summary:
 Issue #21166: merge from 3.4
files:
 Makefile.pre.in | 12 +++++++++++-
 Misc/NEWS | 3 +++
 configure | 3 +++
 configure.ac | 3 +++
 4 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/Makefile.pre.in b/Makefile.pre.in
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -553,8 +553,18 @@
 # Create build directory and generate the sysconfig build-time data there.
 # pybuilddir.txt contains the name of the build dir and is used for
 # sys.path fixup -- see Modules/getpath.c.
+# Since this step runs before shared modules are built, try to avoid bootstrap
+# problems by creating a dummy pybuildstr.txt just to allow interpreter
+# initialization to succeed. It will be overwritten by generate-posix-vars
+# or removed in case of failure.
 pybuilddir.txt: $(BUILDPYTHON)
-	$(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars
+	@echo "none" > ./pybuilddir.txt
+	$(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\
+	if test $$? -ne 0 ; then \
+		echo "generate-posix-vars failed" ; \
+		rm -f ./pybuilddir.txt ; \
+		exit 1 ; \
+	fi
 
 # Build the shared modules
 # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -825,6 +825,9 @@
 
 - Issue #21811: Anticipated fixes to support OS X versions > 10.9.
 
+- Issue #21166: Prevent possible segfaults and other random failures of
+ python --generate-posix-vars in pybuilddir.txt build target.
+
 C API
 -----
 
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -2954,6 +2954,9 @@
 
 
 
+# pybuilddir.txt will be created by --generate-posix-vars in the Makefile
+rm -f pybuilddir.txt
+
 if test "$cross_compiling" = yes; then
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5
 $as_echo_n "checking for python interpreter for cross build... " >&6; }
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -53,6 +53,9 @@
 AC_SUBST(build)
 AC_SUBST(host)
 
+# pybuilddir.txt will be created by --generate-posix-vars in the Makefile
+rm -f pybuilddir.txt
+
 if test "$cross_compiling" = yes; then
 AC_MSG_CHECKING([for python interpreter for cross build])
 if test -z "$PYTHON_FOR_BUILD"; then
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /