[issue21354] PyCFunction_New no longer exposed by python DLL breaking bdist_wininst installers

Mark Hammond report at bugs.python.org
Sat Apr 26 10:00:55 CEST 2014


New submission from Mark Hammond:

Python 3.3 and earlier have in methodobject.c:

/* PyCFunction_New() is now just a macro that calls PyCFunction_NewEx(),
   but it's part of the API so we need to keep a function around that
   existing C extensions can call.
*/

#undef PyCFunction_New
PyAPI_FUNC(PyObject *) PyCFunction_New(PyMethodDef *, PyObject *);

which means PyCFunction_New is exported from the DLL.  Python 3.4 does not have this (which seems a bug in its own right given the comment in 3.3 and earlier) but PC/bdist_wininst/install.c has code that attempts to dynamically load this function from the DLL and fails, causing 3rd party installers to fail.

Assuming the removal of this API was intentional so the problem is that install.c needs to be updated, the following patch fixes the issue.

----------
components: Windows
files: t.patch
keywords: patch
messages: 217185
nosy: mhammond
priority: normal
severity: normal
status: open
title: PyCFunction_New no longer exposed by python DLL breaking bdist_wininst installers
type: behavior
Added file: http://bugs.python.org/file35043/t.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21354>
_______________________________________


More information about the Python-bugs-list mailing list