summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/extending/windows.rst6
-rw-r--r--Include/pyport.h15
2 files changed, 11 insertions, 10 deletions
diff --git a/Doc/extending/windows.rst b/Doc/extending/windows.rst
index 8d1986f..6733666 100644
--- a/Doc/extending/windows.rst
+++ b/Doc/extending/windows.rst
@@ -171,7 +171,9 @@ If your module creates a new type, you may have trouble with this line::
PyVarObject_HEAD_INIT(&PyType_Type, 0)
-Change it to::
+Static type object initializers in extension modules may cause
+compiles to fail with an error message like "initializer not a
+constant". This shows up when building DLL under MSVC. Change it to::
PyVarObject_HEAD_INIT(NULL, 0)
@@ -179,8 +181,6 @@ and add the following to the module initialization function::
MyObject_Type.ob_type = &PyType_Type;
-Refer to section 3 of the `Python FAQ <http://www.python.org/doc/faq>`_ for
-details on why you must do this.
.. _dynamic-linking:
diff --git a/Include/pyport.h b/Include/pyport.h
index 6af0f96..13396a2 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -663,23 +663,24 @@ extern pid_t forkpty(int *, char *, struct termios *, struct winsize *);
# ifdef Py_BUILD_CORE
# define PyAPI_FUNC(RTYPE) __declspec(dllexport) RTYPE
# define PyAPI_DATA(RTYPE) extern __declspec(dllexport) RTYPE
- /* module init functions inside the core need no external linkage */
- /* except for Cygwin to handle embedding */
+ /* module init functions inside the core need no external linkage */
+ /* except for Cygwin to handle embedding */
# if defined(__CYGWIN__)
# define PyMODINIT_FUNC __declspec(dllexport) PyObject*
# else /* __CYGWIN__ */
# define PyMODINIT_FUNC PyObject*
# endif /* __CYGWIN__ */
# else /* Py_BUILD_CORE */
- /* Building an extension module, or an embedded situation */
- /* public Python functions and data are imported */
- /* Under Cygwin, auto-import functions to prevent compilation */
- /* failures similar to http://python.org/doc/FAQ.html#3.24 */
+ /* Building an extension module, or an embedded situation */
+ /* public Python functions and data are imported */
+ /* Under Cygwin, auto-import functions to prevent compilation */
+ /* failures similar to those described at the bottom of 4.1: */
+ /* http://docs.python.org/extending/windows.html#a-cookbook-approach */
# if !defined(__CYGWIN__)
# define PyAPI_FUNC(RTYPE) __declspec(dllimport) RTYPE
# endif /* !__CYGWIN__ */
# define PyAPI_DATA(RTYPE) extern __declspec(dllimport) RTYPE
- /* module init functions outside the core must be exported */
+ /* module init functions outside the core must be exported */
# if defined(__cplusplus)
# define PyMODINIT_FUNC extern "C" __declspec(dllexport) PyObject*
# else /* __cplusplus */