Taken from: https://github.com/freebsd/freebsd-ports.git Commit id: 5070672073b68be364139bc6b3a89100bd17d331
74 lines
2.6 KiB
Text
74 lines
2.6 KiB
Text
# HG changeset patch
|
|
# User Ned Deily <nad@acm.org>
|
|
# Date 1408739569 25200
|
|
# Node ID e52d85f2e2846453dd0503613d28cf6967f113d7
|
|
# Parent d99014320220951707f79d114ae33f8c5a372a87
|
|
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
|
|
--- Makefile.pre.in
|
|
+++ Makefile.pre.in
|
|
@@ -546,8 +546,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
|
|
--- Misc/NEWS
|
|
+++ Misc/NEWS
|
|
@@ -242,6 +242,9 @@ Build
|
|
|
|
- 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.
|
|
+
|
|
IDLE
|
|
----
|
|
|
|
diff --git a/configure b/configure
|
|
--- configure
|
|
+++ configure
|
|
@@ -2950,6 +2950,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
|
|
--- configure.ac
|
|
+++ configure.ac
|
|
@@ -53,6 +53,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
|
|
|