Dave Malcolm <dmalc...@redhat.com> added the comment: For reference, the patch that I'm currently applying to Fedora's build of Python-3.2a1 can be seen at: http://pkgs.fedoraproject.org/gitweb/?p=python3.git;a=blob_plain;f=python-3.2a1-debug-build.patch;hb=HEAD
It appears to be very similar to Matthias' patch (it was originally based on an earlier version of Debian's python 2 patch, which I fixed up against Fedora's python 2, changed some aspects I wasn't happy with, then ported to python 3.1, then fixed up to 3.2a1 IIRC) For further reference, Fedora's python3.spec has these comments that I wrote on the patch: # Patch to support building both optimized vs debug stacks DSO ABIs, sharing # the same .py and .pyc files, using "_d.so" to signify a debug build of an # extension module. # # Based on Debian's patch for the same, # http://patch-tracker.debian.org/patch/series/view/python2.6/2.6.5-2/debug-build.dpatch # # (which was itself based on the upstream Windows build), but with some # changes: # # * Debian's patch to dynload_shlib.c looks for module_d.so, then module.so, # but this can potentially find a module built against the wrong DSO ABI. We # instead search for just module_d.so in a debug build # # * We remove this change from configure.in's build of the Makefile: # SO=$DEBUG_EXT.so # so that sysconfig.py:customize_compiler stays with shared_lib_extension='.so' # on debug builds, so that UnixCCompiler.find_library_file can find system # libraries (otherwise "make sharedlibs" fails to find system libraries, # erroneously looking e.g. for "libffi_d.so" rather than "libffi.so") # # * We change Lib/distutils/command/build_ext.py:build_ext.get_ext_filename # to add the _d there, when building an extension. This way, "make sharedlibs" # can build ctypes, by finding the sysmtem libffi.so (rather than failing to # find "libffi_d.so"), and builds the module as _ctypes_d.so # # * Similarly, update build_ext:get_libraries handling of Py_ENABLE_SHARED by # appending "_d" to the python library's name for the debug configuration # # * We modify Modules/makesetup to add the "_d" to the generated Makefile # rules for the various Modules/*.so targets # # This may introduce issues when building an extension that links directly # against another extension (e.g. users of NumPy?), but seems more robust when # searching for external libraries # # * We don't change Lib/distutils/command/build.py: build.build_purelib to # embed plat_specifier, leaving it as is, as pure python builds should be # unaffected by these differences (we'll be sharing the .py and .pyc files) # # * We introduce DEBUG_SUFFIX as well as DEBUG_EXT: # - 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. "_d" contains characters that # are valid ELF metadata, but this leads to various ugly filesystem paths (such # as the include path), and DEBUG_SUFFIX allows these paths to have more natural # names. Changing this requires changes elsewhere in the distutils code. # # * We add DEBUG_SUFFIX to PYTHON in the Makefile, so that the two # configurations build parallel-installable binaries with different names # ("python-debug" vs "python"). # # * Similarly, we add DEBUG_SUFFIX within python-config and # python$(VERSION)-config, so that the two configuration get different paths # for these. # # * Patch runtests.sh to support supplying a value for PYTHON, so that we can # run the tests against each of the builds ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9807> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com