You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
13 KiB
292 lines
13 KiB
diff -up Python-2.7.3/configure.ac.debug-build Python-2.7.3/configure.ac |
|
--- Python-2.7.3/configure.ac.debug-build 2012-04-18 19:46:22.066498521 -0400 |
|
+++ Python-2.7.3/configure.ac 2012-04-18 19:46:22.078498372 -0400 |
|
@@ -635,7 +635,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) |
|
|
|
@@ -780,8 +780,8 @@ if test $enable_shared = "yes"; then |
|
INSTSONAME="$LDLIBRARY".$SOVERSION |
|
;; |
|
Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*) |
|
- 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*) |
|
@@ -905,6 +905,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-2.7.3/Lib/distutils/command/build_ext.py.debug-build Python-2.7.3/Lib/distutils/command/build_ext.py |
|
--- Python-2.7.3/Lib/distutils/command/build_ext.py.debug-build 2012-04-09 19:07:29.000000000 -0400 |
|
+++ Python-2.7.3/Lib/distutils/command/build_ext.py 2012-04-18 19:46:22.079498360 -0400 |
|
@@ -676,7 +676,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 |
|
@@ -761,6 +764,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-2.7.3/Lib/distutils/sysconfig.py.debug-build Python-2.7.3/Lib/distutils/sysconfig.py |
|
--- Python-2.7.3/Lib/distutils/sysconfig.py.debug-build 2012-04-18 19:46:21.988499499 -0400 |
|
+++ Python-2.7.3/Lib/distutils/sysconfig.py 2012-04-18 19:46:22.080498348 -0400 |
|
@@ -85,7 +85,8 @@ def get_python_inc(plat_specific=0, pref |
|
# Include is located in the srcdir |
|
inc_dir = os.path.join(srcdir, "Include") |
|
return inc_dir |
|
- 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 == "os2": |
|
@@ -250,7 +251,7 @@ def get_makefile_filename(): |
|
if python_build: |
|
return os.path.join(project_base, "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-2.7.3/Lib/distutils/tests/test_install.py.debug-build Python-2.7.3/Lib/distutils/tests/test_install.py |
|
--- Python-2.7.3/Lib/distutils/tests/test_install.py.debug-build 2012-04-18 19:46:21.997499385 -0400 |
|
+++ Python-2.7.3/Lib/distutils/tests/test_install.py 2012-04-18 19:46:22.080498348 -0400 |
|
@@ -20,8 +20,9 @@ from distutils.tests import support |
|
|
|
|
|
def _make_ext_name(modname): |
|
- if os.name == 'nt' and sys.executable.endswith('_d.exe'): |
|
+ if sys.pydebug: |
|
modname += '_d' |
|
+ |
|
return modname + sysconfig.get_config_var('SO') |
|
|
|
|
|
diff -up Python-2.7.3/Makefile.pre.in.debug-build Python-2.7.3/Makefile.pre.in |
|
--- Python-2.7.3/Makefile.pre.in.debug-build 2012-04-18 19:46:22.073498437 -0400 |
|
+++ Python-2.7.3/Makefile.pre.in 2012-04-18 19:48:46.336694896 -0400 |
|
@@ -102,8 +102,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 |
|
@@ -117,6 +117,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@ |
|
@@ -180,8 +186,8 @@ LIBOBJDIR= Python/ |
|
LIBOBJS= @LIBOBJS@ |
|
UNICODE_OBJS= @UNICODE_OBJS@ |
|
|
|
-PYTHON= python$(EXE) |
|
-BUILDPYTHON= python$(BUILDEXE) |
|
+PYTHON= python$(DEBUG_SUFFIX)$(EXE) |
|
+BUILDPYTHON= python$(DEBUG_SUFFIX)$(BUILDEXE) |
|
|
|
PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@ |
|
_PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@ |
|
@@ -413,7 +419,7 @@ sharedmods: $(BUILDPYTHON) |
|
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ |
|
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build |
|
|
|
-libpython$(VERSION).so: $(LIBRARY_OBJS) |
|
+libpython$(VERSION)$(DEBUG_EXT).so: $(LIBRARY_OBJS) |
|
if test $(INSTSONAME) != $(LDLIBRARY); then \ |
|
$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ |
|
$(LN) -f $(INSTSONAME) $@; \ |
|
@@ -796,18 +802,18 @@ bininstall: altbininstall |
|
then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ |
|
else true; \ |
|
fi |
|
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON)) |
|
- -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE) |
|
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE)) |
|
- -rm -f $(DESTDIR)$(BINDIR)/python2-config |
|
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python2-config) |
|
- -rm -f $(DESTDIR)$(BINDIR)/python-config |
|
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python2-config python-config) |
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(DEBUG_SUFFIX)$(EXE) $(PYTHON)) |
|
+ -rm -f $(DESTDIR)$(BINDIR)/python2$(DEBUG_SUFFIX)$(EXE) |
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)$(EXE) python2$(DEBUG_SUFFIX)$(EXE)) |
|
+ -rm -f $(DESTDIR)$(BINDIR)/python2$(DEBUG_SUFFIX)-config |
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)-config python2$(DEBUG_SUFFIX)-config) |
|
+ -rm -f $(DESTDIR)$(BINDIR)/python$(DEBUG_SUFFIX)-config |
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(DEBUG_SUFFIX)-config python$(DEBUG_SUFFIX)-config) |
|
-test -d $(DESTDIR)$(LIBPC) || $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC) |
|
- -rm -f $(DESTDIR)$(LIBPC)/python2.pc |
|
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python2.pc) |
|
- -rm -f $(DESTDIR)$(LIBPC)/python.pc |
|
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python2.pc python.pc) |
|
+ -rm -f $(DESTDIR)$(LIBPC)/python2$(DEBUG_SUFFIX).pc |
|
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)$(DEBUG_SUFFIX).pc python2$(DEBUG_SUFFIX).pc) |
|
+ -rm -f $(DESTDIR)$(LIBPC)/python$(DEBUG_SUFFIX).pc |
|
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python2$(DEBUG_SUFFIX).pc python$(DEBUG_SUFFIX).pc) |
|
|
|
# Install the interpreter with $(VERSION) affixed |
|
# This goes into $(exec_prefix) |
|
@@ -820,7 +826,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); \ |
|
@@ -970,10 +976,11 @@ $(srcdir)/Lib/$(PLATDIR): |
|
fi; \ |
|
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) |
|
@@ -994,13 +1001,13 @@ inclinstall: |
|
$(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h |
|
|
|
# Install the library and miscellaneous stuff needed for extending/embedding |
|
-# This goes into $(exec_prefix) |
|
-LIBPL= $(LIBP)/config |
|
+# This goes into $(exec_prefix)$(DEBUG_SUFFIX) |
|
+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 \ |
|
@@ -1016,11 +1023,10 @@ 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 |
|
@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-2.7.3/Misc/python-config.in.debug-build Python-2.7.3/Misc/python-config.in |
|
--- Python-2.7.3/Misc/python-config.in.debug-build 2012-04-09 19:07:33.000000000 -0400 |
|
+++ Python-2.7.3/Misc/python-config.in 2012-04-18 19:46:22.082498324 -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-2.7.3/Modules/makesetup.debug-build Python-2.7.3/Modules/makesetup |
|
--- Python-2.7.3/Modules/makesetup.debug-build 2012-04-09 19:07:34.000000000 -0400 |
|
+++ Python-2.7.3/Modules/makesetup 2012-04-18 19:46:22.083498312 -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-2.7.3/Python/dynload_shlib.c.debug-build Python-2.7.3/Python/dynload_shlib.c |
|
--- Python-2.7.3/Python/dynload_shlib.c.debug-build 2012-04-09 19:07:35.000000000 -0400 |
|
+++ Python-2.7.3/Python/dynload_shlib.c 2012-04-18 19:46:22.083498312 -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-2.7.3/Python/sysmodule.c.debug-build Python-2.7.3/Python/sysmodule.c |
|
--- Python-2.7.3/Python/sysmodule.c.debug-build 2012-04-09 19:07:35.000000000 -0400 |
|
+++ Python-2.7.3/Python/sysmodule.c 2012-04-18 19:46:22.083498312 -0400 |
|
@@ -1506,6 +1506,12 @@ _PySys_Init(void) |
|
PyString_FromString("legacy")); |
|
#endif |
|
|
|
+#ifdef Py_DEBUG |
|
+ PyDict_SetItemString(sysdict, "pydebug", Py_True); |
|
+#else |
|
+ PyDict_SetItemString(sysdict, "pydebug", Py_False); |
|
+#endif |
|
+ |
|
#undef SET_SYS_FROM_STRING |
|
if (PyErr_Occurred()) |
|
return NULL;
|
|
|