freebsd-ports/math/sage/files/patch-build_pkgs_python_fbsd-patch-src_issue21166
Stephen Montgomery-Smith 8a80f53a2f - Update to 6.4.
2014-12-07 16:01:20 +00:00

77 lines
3 KiB
Text

--- /dev/null 2014-11-18 03:33:07.000000000 +0000
+++ build/pkgs/python/fbsd-patch-src_issue21166 2014-11-18 03:37:12.000000000 +0000
@@ -0,0 +1,74 @@
+# HG changeset patch
+# User Ned Deily <nad@acm.org>
+# Date 1408739459 25200
+# Node ID edb6b282469ea0e8f819d0310afb2937b59dd6b9
+# Parent 727fd4ead3fd854e900ed89362714ad1f7434e5a
+Issue #21166: Prevent possible segfaults and other random failures of
+python --generate-posix-vars in pybuilddir.txt build target by ensuring
+that pybuilddir.txt is always regenerated when configure is run and
+that the newly built skeleton python does not inadvertently import
+modules from previously installed instances.
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+--- src/Makefile.pre.in
++++ src/Makefile.pre.in
+@@ -447,8 +447,18 @@ platform: $(BUILDPYTHON) pybuilddir.txt
+ # 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
+--- src/Misc/NEWS
++++ src/Misc/NEWS
+@@ -120,6 +120,9 @@ Build
+ - Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/
+ now display special message when and only when there are failures.
+
++- Issue #21166: Prevent possible segfaults and other random failures of
++ python --generate-posix-vars in pybuilddir.txt build target.
++
+ Windows
+ -------
+
+diff --git a/configure b/configure
+--- src/configure
++++ src/configure
+@@ -2857,6 +2857,9 @@ case $host_os in *\ *) host_os=`echo "$h
+
+
+
++# 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
+--- src/configure.ac
++++ src/configure.ac
+@@ -16,6 +16,9 @@ AC_CANONICAL_HOST
+ 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
+