241 lines
10 KiB
Diff
241 lines
10 KiB
Diff
|
diff -up Python-2.6.5/configure.in.debug-build Python-2.6.5/configure.in
|
||
|
--- Python-2.6.5/configure.in.debug-build 2010-05-19 17:09:31.975902056 -0400
|
||
|
+++ Python-2.6.5/configure.in 2010-05-19 17:09:31.986901987 -0400
|
||
|
@@ -620,7 +620,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)
|
||
|
|
||
|
@@ -748,8 +748,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*)
|
||
|
@@ -847,6 +847,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.6.5/Lib/distutils/command/build_ext.py.debug-build Python-2.6.5/Lib/distutils/command/build_ext.py
|
||
|
--- Python-2.6.5/Lib/distutils/command/build_ext.py.debug-build 2009-10-13 17:17:34.000000000 -0400
|
||
|
+++ Python-2.6.5/Lib/distutils/command/build_ext.py 2010-05-19 18:17:14.678196678 -0400
|
||
|
@@ -677,7 +677,10 @@ class build_ext (Command):
|
||
|
so_ext = get_config_var('SO')
|
||
|
if os.name == 'nt' and self.debug:
|
||
|
return apply(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
|
||
|
@@ -760,6 +763,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.6.5/Lib/distutils/sysconfig.py.debug-build Python-2.6.5/Lib/distutils/sysconfig.py
|
||
|
--- Python-2.6.5/Lib/distutils/sysconfig.py.debug-build 2010-05-19 17:09:31.926155519 -0400
|
||
|
+++ Python-2.6.5/Lib/distutils/sysconfig.py 2010-05-19 17:09:31.987902863 -0400
|
||
|
@@ -81,7 +81,8 @@ def get_python_inc(plat_specific=0, pref
|
||
|
if not os.path.exists(inc_dir):
|
||
|
inc_dir = os.path.join(os.path.dirname(base), "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 == "mac":
|
||
|
@@ -224,7 +225,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-2.6.5/Makefile.pre.in.debug-build Python-2.6.5/Makefile.pre.in
|
||
|
--- Python-2.6.5/Makefile.pre.in.debug-build 2010-05-19 17:09:31.984901988 -0400
|
||
|
+++ Python-2.6.5/Makefile.pre.in 2010-05-19 17:09:31.987902863 -0400
|
||
|
@@ -96,8 +96,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
|
||
|
@@ -110,6 +110,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@
|
||
|
@@ -173,8 +179,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)
|
||
|
|
||
|
# 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
|
||
|
@@ -399,7 +405,7 @@ sharedmods: $(BUILDPYTHON)
|
||
|
*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' 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) $(LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
||
|
$(LN) -f $(INSTSONAME) $@; \
|
||
|
@@ -761,9 +767,9 @@ bininstall: altbininstall
|
||
|
then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
|
||
|
else true; \
|
||
|
fi
|
||
|
- (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON))
|
||
|
- -rm -f $(DESTDIR)$(BINDIR)/python-config
|
||
|
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python-config)
|
||
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(DEBUG_SUFFIX)$(EXE) $(PYTHON))
|
||
|
+ -rm -f $(DESTDIR)$(BINDIR)/python$(DEBUG_SUFFIX)-config
|
||
|
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(DEBUG_SUFFIX)-config python$(DEBUG_SUFFIX)-config)
|
||
|
|
||
|
# Install the interpreter with $(VERSION) affixed
|
||
|
# This goes into $(exec_prefix)
|
||
|
@@ -776,7 +782,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); \
|
||
|
@@ -935,8 +941,8 @@ 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)
|
||
|
libainstall: all
|
||
|
@for i in $(LIBDIR) $(LIBP) $(LIBPL); \
|
||
|
do \
|
||
|
@@ -957,9 +963,9 @@ libainstall: all
|
||
|
$(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
|
||
|
# 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
|
||
|
- $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(VERSION)-config
|
||
|
- rm python-config
|
||
|
+ sed -e "s,@EXENAME@,$(BINDIR)/python$(VERSION)$(DEBUG_SUFFIX)$(EXE)," < $(srcdir)/Misc/python-config.in >python$(DEBUG_SUFFIX)-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-2.6.5/Misc/python-config.in.debug-build Python-2.6.5/Misc/python-config.in
|
||
|
--- Python-2.6.5/Misc/python-config.in.debug-build 2007-03-31 14:56:11.000000000 -0400
|
||
|
+++ Python-2.6.5/Misc/python-config.in 2010-05-19 17:09:31.987902863 -0400
|
||
|
@@ -44,7 +44,7 @@ elif opt in ('--includes', '--cflags'):
|
||
|
|
||
|
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' and not getvar('Py_ENABLE_SHARED'):
|
||
|
diff -up Python-2.6.5/Modules/makesetup.debug-build Python-2.6.5/Modules/makesetup
|
||
|
--- Python-2.6.5/Modules/makesetup.debug-build 2007-09-05 07:47:34.000000000 -0400
|
||
|
+++ Python-2.6.5/Modules/makesetup 2010-05-19 17:09:31.987902863 -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.6.5/Python/dynload_shlib.c.debug-build Python-2.6.5/Python/dynload_shlib.c
|
||
|
--- Python-2.6.5/Python/dynload_shlib.c.debug-build 2006-01-03 20:30:17.000000000 -0500
|
||
|
+++ Python-2.6.5/Python/dynload_shlib.c 2010-05-19 17:09:31.988902536 -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.6.5/Python/sysmodule.c.debug-build Python-2.6.5/Python/sysmodule.c
|
||
|
--- Python-2.6.5/Python/sysmodule.c.debug-build 2010-03-03 07:31:33.000000000 -0500
|
||
|
+++ Python-2.6.5/Python/sysmodule.c 2010-05-19 17:09:31.988902536 -0400
|
||
|
@@ -1436,6 +1436,12 @@ _PySys_Init(void)
|
||
|
FlagsType.tp_init = NULL;
|
||
|
FlagsType.tp_new = NULL;
|
||
|
|
||
|
+#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;
|