7eb10c8dbe
* Sat Aug 21 2010 David Malcolm <dmalcolm@redhat.com> - 3.2-0.0.a1 - 3.2a1; add alphatag - rework %%files in the light of PEP 3147 (__pycache__) - drop our configuration patch to Setup.dist (patch 0): setup.py should do a better job of things, and the %%files explicitly lists our modules (r82746 appears to break the old way of doing things). This leads to various modules changing from "foomodule.so" to "foo.so". It also leads to the optimized build dropping the _sha1, _sha256 and _sha512 modules, but these are provided by _hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for testing/devel purposes) - fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase - remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983) - add machinery for rebuilding "configure" and friends, using the correct version of autoconf (patch 300) - patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125) - "modulator" was removed upstream - drop "-b" from patch applications affecting .py files to avoid littering the installation tree
291 lines
12 KiB
Diff
291 lines
12 KiB
Diff
diff -up Python-3.2a1/configure.in.debug-build Python-3.2a1/configure.in
|
|
--- Python-3.2a1/configure.in.debug-build 2010-08-20 16:06:24.616082276 -0400
|
|
+++ Python-3.2a1/configure.in 2010-08-20 16:06:24.632127011 -0400
|
|
@@ -584,7 +584,7 @@ AC_SUBST(LIBRARY)
|
|
AC_MSG_CHECKING(LIBRARY)
|
|
if test -z "$LIBRARY"
|
|
then
|
|
- LIBRARY='libpython$(VERSION).a'
|
|
+ LIBRARY='libpython$(VERSION)$(DEBUG_EXT).a'
|
|
fi
|
|
AC_MSG_RESULT($LIBRARY)
|
|
|
|
@@ -726,8 +726,8 @@ if test $enable_shared = "yes"; then
|
|
INSTSONAME="$LDLIBRARY".$SOVERSION
|
|
;;
|
|
Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
|
|
- LDLIBRARY='libpython$(VERSION).so'
|
|
- BLDLIBRARY='-L. -lpython$(VERSION)'
|
|
+ LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so'
|
|
+ BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)'
|
|
RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
|
|
case $ac_sys_system in
|
|
FreeBSD*)
|
|
@@ -825,6 +825,14 @@ else AC_MSG_RESULT(no); Py_DEBUG='false'
|
|
fi],
|
|
[AC_MSG_RESULT(no)])
|
|
|
|
+if test "$Py_DEBUG" = 'true'
|
|
+then
|
|
+ DEBUG_EXT=_d
|
|
+ DEBUG_SUFFIX=-debug
|
|
+fi
|
|
+AC_SUBST(DEBUG_EXT)
|
|
+AC_SUBST(DEBUG_SUFFIX)
|
|
+
|
|
# XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
|
|
# merged with this chunk of code?
|
|
|
|
diff -up Python-3.2a1/Lib/distutils/command/build_ext.py.debug-build Python-3.2a1/Lib/distutils/command/build_ext.py
|
|
--- Python-3.2a1/Lib/distutils/command/build_ext.py.debug-build 2010-07-22 08:50:05.000000000 -0400
|
|
+++ Python-3.2a1/Lib/distutils/command/build_ext.py 2010-08-20 16:06:24.633125472 -0400
|
|
@@ -673,7 +673,10 @@ class build_ext(Command):
|
|
so_ext = get_config_var('SO')
|
|
if os.name == 'nt' and self.debug:
|
|
return os.path.join(*ext_path) + '_d' + so_ext
|
|
- return os.path.join(*ext_path) + so_ext
|
|
+
|
|
+ # Similarly, extensions in debug mode are named 'module_d.so', to
|
|
+ # avoid adding the _d to the SO config variable:
|
|
+ return os.path.join(*ext_path) + (sys.pydebug and "_d" or "") + so_ext
|
|
|
|
def get_export_symbols(self, ext):
|
|
"""Return the list of symbols that a shared extension has to
|
|
@@ -754,6 +757,8 @@ class build_ext(Command):
|
|
template = "python%d.%d"
|
|
pythonlib = (template %
|
|
(sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
|
|
+ if sys.pydebug:
|
|
+ pythonlib += '_d'
|
|
return ext.libraries + [pythonlib]
|
|
else:
|
|
return ext.libraries
|
|
diff -up Python-3.2a1/Lib/distutils/sysconfig.py.debug-build Python-3.2a1/Lib/distutils/sysconfig.py
|
|
--- Python-3.2a1/Lib/distutils/sysconfig.py.debug-build 2010-08-20 16:06:24.623083865 -0400
|
|
+++ Python-3.2a1/Lib/distutils/sysconfig.py 2010-08-20 16:06:24.633125472 -0400
|
|
@@ -83,7 +83,8 @@ def get_python_inc(plat_specific=0, pref
|
|
else:
|
|
incdir = os.path.join(get_config_var('srcdir'), 'Include')
|
|
return os.path.normpath(incdir)
|
|
- return os.path.join(prefix, "include", "python" + get_python_version())
|
|
+ return os.path.join(prefix, "include",
|
|
+ "python" + get_python_version() + (sys.pydebug and '-debug' or ''))
|
|
elif os.name == "nt":
|
|
return os.path.join(prefix, "include")
|
|
elif os.name == "mac":
|
|
@@ -229,7 +230,7 @@ def get_makefile_filename():
|
|
if python_build:
|
|
return os.path.join(os.path.dirname(sys.executable), "Makefile")
|
|
lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
|
|
- return os.path.join(lib_dir, "config", "Makefile")
|
|
+ return os.path.join(lib_dir, "config" + (sys.pydebug and "-debug" or ""), "Makefile")
|
|
|
|
|
|
def parse_config_h(fp, g=None):
|
|
diff -up Python-3.2a1/Makefile.pre.in.debug-build Python-3.2a1/Makefile.pre.in
|
|
--- Python-3.2a1/Makefile.pre.in.debug-build 2010-08-20 16:06:24.624081000 -0400
|
|
+++ Python-3.2a1/Makefile.pre.in 2010-08-20 16:06:57.287084214 -0400
|
|
@@ -105,8 +105,8 @@ SCRIPTDIR= $(prefix)/lib64
|
|
# Detailed destination directories
|
|
BINLIBDEST= $(LIBDIR)/python$(VERSION)
|
|
LIBDEST= $(SCRIPTDIR)/python$(VERSION)
|
|
-INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)
|
|
-CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)
|
|
+INCLUDEPY= $(INCLUDEDIR)/python$(VERSION)$(DEBUG_SUFFIX)
|
|
+CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(VERSION)$(DEBUG_SUFFIX)
|
|
LIBP= $(LIBDIR)/python$(VERSION)
|
|
|
|
# Symbols used for using shared libraries
|
|
@@ -120,6 +120,12 @@ DESTSHARED= $(BINLIBDEST)/lib-dynload
|
|
EXE= @EXEEXT@
|
|
BUILDEXE= @BUILDEXEEXT@
|
|
|
|
+# DEBUG_EXT is used by ELF files (names and SONAMEs); it will be "_d" for a debug build
|
|
+# DEBUG_SUFFIX is used by filesystem paths; it will be "-debug" for a debug build
|
|
+# Both will be empty in an optimized build
|
|
+DEBUG_EXT= @DEBUG_EXT@
|
|
+DEBUG_SUFFIX= @DEBUG_SUFFIX@
|
|
+
|
|
# Short name and location for Mac OS X Python framework
|
|
UNIVERSALSDK=@UNIVERSALSDK@
|
|
PYTHONFRAMEWORK= @PYTHONFRAMEWORK@
|
|
@@ -183,7 +189,7 @@ LIBOBJDIR= Python/
|
|
LIBOBJS= @LIBOBJS@
|
|
|
|
PYTHON= python$(EXE)
|
|
-BUILDPYTHON= python$(BUILDEXE)
|
|
+BUILDPYTHON= python$(BUILD_SUFFIX)$(BUILDEXE)
|
|
|
|
# The task to run while instrument when building the profile-opt target
|
|
PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
|
|
@@ -433,7 +439,7 @@ sharedmods: $(BUILDPYTHON)
|
|
*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
|
esac
|
|
|
|
-libpython$(VERSION).so: $(LIBRARY_OBJS)
|
|
+libpython$(VERSION)$(DEBUG_EXT).so: $(LIBRARY_OBJS)
|
|
if test $(INSTSONAME) != $(LDLIBRARY); then \
|
|
$(LDSHARED) $(PY_LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
|
$(LN) -f $(INSTSONAME) $@; \
|
|
@@ -817,7 +823,7 @@ altbininstall: $(BUILDPYTHON)
|
|
else true; \
|
|
fi; \
|
|
done
|
|
- $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
|
|
+ $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)
|
|
if test -f $(LDLIBRARY); then \
|
|
if test -n "$(DLLLIBRARY)" ; then \
|
|
$(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
|
|
@@ -831,15 +837,15 @@ altbininstall: $(BUILDPYTHON)
|
|
fi
|
|
|
|
bininstall: altbininstall
|
|
- -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON)3$(EXE) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON)3$(EXE); \
|
|
- then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON)3$(EXE); \
|
|
+ -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON)3$(DEBUG_SUFFIX)$(EXE) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON)3$(DEBUG_SUFFIX)$(EXE); \
|
|
+ then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON)3$(DEBUG_SUFFIX)$(EXE); \
|
|
else true; \
|
|
fi
|
|
- (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON)3$(EXE))
|
|
- -rm -f $(DESTDIR)$(BINDIR)/python3-config
|
|
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config)
|
|
- -rm -f $(DESTDIR)$(LIBPC)/python3.pc
|
|
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
|
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(DEBUG_SUFFIX)$(EXE) $(PYTHON)3$(DEBUG_SUFFIX)$(EXE))
|
|
+ -rm -f $(DESTDIR)$(BINDIR)/python3$(DEBUG_SUFFIX)-config
|
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)-config python3$(DEBUG_SUFFIX)-config)
|
|
+ -rm -f $(DESTDIR)$(LIBPC)/python3$(DEBUG_SUFFIX).pc
|
|
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)$(DEBUG_SUFFIX).pc python3$(DEBUG_SUFFIX).pc)
|
|
|
|
# Install the manual page
|
|
maninstall:
|
|
@@ -965,10 +971,10 @@ $(srcdir)/Lib/$(PLATDIR):
|
|
export EXE; EXE="$(BUILDEXE)"; \
|
|
cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
|
|
|
|
-python-config: $(srcdir)/Misc/python-config.in
|
|
+python$(DEBUG_SUFFIX)-config: $(srcdir)/Misc/python-config.in
|
|
# Substitution happens here, as the completely-expanded BINDIR
|
|
# is not available in configure
|
|
- sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config
|
|
+ sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)," < $(srcdir)/Misc/python-config.in >python$(DEBUG_SUFFIX)-config
|
|
|
|
# Install the include files
|
|
INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
|
|
@@ -990,12 +996,12 @@ inclinstall:
|
|
|
|
# Install the library and miscellaneous stuff needed for extending/embedding
|
|
# This goes into $(exec_prefix)
|
|
-LIBPL= $(LIBP)/config
|
|
+LIBPL= $(LIBP)/config$(DEBUG_SUFFIX)
|
|
|
|
# pkgconfig directory
|
|
LIBPC= $(LIBDIR)/pkgconfig
|
|
|
|
-libainstall: all python-config
|
|
+libainstall: all python$(DEBUG_SUFFIX)-config
|
|
@for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
|
|
do \
|
|
if test ! -d $(DESTDIR)$$i; then \
|
|
@@ -1011,11 +1017,11 @@ libainstall: all python-config
|
|
$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
|
|
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
|
|
$(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
|
|
- $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
|
|
+ $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION)$(DEBUG_SUFFIX).pc
|
|
$(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
|
|
$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
|
|
- $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
|
|
- rm python-config
|
|
+ $(INSTALL_SCRIPT) python$(DEBUG_SUFFIX)-config $(DESTDIR)$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)-config
|
|
+ rm python$(DEBUG_SUFFIX)-config
|
|
@if [ -s Modules/python.exp -a \
|
|
"`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
|
|
echo; echo "Installing support files for building shared extension modules on AIX:"; \
|
|
diff -up Python-3.2a1/Misc/python-config.in.debug-build Python-3.2a1/Misc/python-config.in
|
|
--- Python-3.2a1/Misc/python-config.in.debug-build 2010-04-06 17:30:42.000000000 -0400
|
|
+++ Python-3.2a1/Misc/python-config.in 2010-08-20 16:06:24.635124366 -0400
|
|
@@ -45,7 +45,7 @@ for opt in opt_flags:
|
|
|
|
elif opt in ('--libs', '--ldflags'):
|
|
libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
|
|
- libs.append('-lpython'+pyver)
|
|
+ libs.append('-lpython' + pyver + (sys.pydebug and "_d" or ""))
|
|
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
|
|
# shared library in prefix/lib/.
|
|
if opt == '--ldflags':
|
|
diff -up Python-3.2a1/Modules/makesetup.debug-build Python-3.2a1/Modules/makesetup
|
|
--- Python-3.2a1/Modules/makesetup.debug-build 2010-07-09 12:30:58.000000000 -0400
|
|
+++ Python-3.2a1/Modules/makesetup 2010-08-20 16:06:24.635124366 -0400
|
|
@@ -233,7 +233,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
|
|
*$mod.o*) base=$mod;;
|
|
*) base=${mod}module;;
|
|
esac
|
|
- file="$srcdir/$base\$(SO)"
|
|
+ file="$srcdir/$base\$(DEBUG_EXT)\$(SO)"
|
|
case $doconfig in
|
|
no) SHAREDMODS="$SHAREDMODS $file";;
|
|
esac
|
|
diff -up Python-3.2a1/Python/dynload_shlib.c.debug-build Python-3.2a1/Python/dynload_shlib.c
|
|
--- Python-3.2a1/Python/dynload_shlib.c.debug-build 2010-05-09 11:52:27.000000000 -0400
|
|
+++ Python-3.2a1/Python/dynload_shlib.c 2010-08-20 16:06:24.635124366 -0400
|
|
@@ -46,11 +46,16 @@ const struct filedescr _PyImport_DynLoad
|
|
{"module.exe", "rb", C_EXTENSION},
|
|
{"MODULE.EXE", "rb", C_EXTENSION},
|
|
#else
|
|
+#ifdef Py_DEBUG
|
|
+ {"_d.so", "rb", C_EXTENSION},
|
|
+ {"module_d.so", "rb", C_EXTENSION},
|
|
+#else
|
|
{".so", "rb", C_EXTENSION},
|
|
{"module.so", "rb", C_EXTENSION},
|
|
-#endif
|
|
-#endif
|
|
-#endif
|
|
+#endif /* Py_DEBUG */
|
|
+#endif /* __VMS */
|
|
+#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */
|
|
+#endif /* __CYGWIN__ */
|
|
{0, 0}
|
|
};
|
|
|
|
diff -up Python-3.2a1/Python/sysmodule.c.debug-build Python-3.2a1/Python/sysmodule.c
|
|
--- Python-3.2a1/Python/sysmodule.c.debug-build 2010-07-06 06:53:30.000000000 -0400
|
|
+++ Python-3.2a1/Python/sysmodule.c 2010-08-20 16:06:24.636251716 -0400
|
|
@@ -1598,6 +1598,12 @@ _PySys_Init(void)
|
|
WindowsVersionType.tp_new = NULL;
|
|
#endif
|
|
|
|
+#ifdef Py_DEBUG
|
|
+ PyDict_SetItemString(sysdict, "pydebug", Py_True);
|
|
+#else
|
|
+ PyDict_SetItemString(sysdict, "pydebug", Py_False);
|
|
+#endif
|
|
+
|
|
/* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */
|
|
#ifndef PY_NO_SHORT_FLOAT_REPR
|
|
SET_SYS_FROM_STRING("float_repr_style",
|
|
diff -up Python-3.2a1/runtests.sh.debug-build Python-3.2a1/runtests.sh
|
|
--- Python-3.2a1/runtests.sh.debug-build 2008-10-17 08:05:40.000000000 -0400
|
|
+++ Python-3.2a1/runtests.sh 2010-08-20 16:06:24.637251276 -0400
|
|
@@ -16,11 +16,14 @@ Flags (arguments starting with '-') are
|
|
regrtest.py, except for -x, which is processed here."
|
|
|
|
# Choose the Python binary.
|
|
-case `uname` in
|
|
-Darwin) PYTHON=./python.exe;;
|
|
-CYGWIN*) PYTHON=./python.exe;;
|
|
-*) PYTHON=./python;;
|
|
-esac
|
|
+if [ -z $PYTHON ]
|
|
+then
|
|
+ case `uname` in
|
|
+ Darwin) PYTHON=./python.exe;;
|
|
+ CYGWIN*) PYTHON=./python.exe;;
|
|
+ *) PYTHON=./python;;
|
|
+ esac
|
|
+fi
|
|
|
|
PYTHON="$PYTHON -bb"
|
|
|