summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-10-14 21:47:22 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-10-14 21:47:22 (GMT)
commit07d539d08bb54628d20978e97eb6e0ba263ac581 (patch)
tree839d59e562f597ef5dd5903013f1817523dc4599
parent0ecbccad2d032366ffa8a920ac7c159e3772fb27 (diff)
downloadcpython-07d539d08bb54628d20978e97eb6e0ba263ac581.zip
cpython-07d539d08bb54628d20978e97eb6e0ba263ac581.tar.gz
cpython-07d539d08bb54628d20978e97eb6e0ba263ac581.tar.bz2
#4122: On Windows, Py_UNICODE_ISSPACE cannot be used in an extension module:
compilation fails with "undefined reference to _Py_ascii_whitespace" Will backport to 2.6.
-rw-r--r--Include/unicodeobject.h2
-rw-r--r--Misc/NEWS6
-rw-r--r--Modules/_testcapimodule.c4
3 files changed, 11 insertions, 1 deletions
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 057f770..ee9fec1 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -354,7 +354,7 @@ typedef PY_UNICODE_TYPE Py_UNICODE;
in most situations is solely ASCII whitespace, we optimize for the common
case by using a quick look-up table with an inlined check.
*/
-extern const unsigned char _Py_ascii_whitespace[];
+PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
#define Py_UNICODE_ISSPACE(ch) \
((ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch))
diff --git a/Misc/NEWS b/Misc/NEWS
index 3cfdc06..e583ff1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -36,6 +36,12 @@ Build
- Issue #3758: Add ``patchcheck`` build target to .PHONY.
+C-API
+-----
+
+- Issue #4122: On Windows, fix a compilation error when using the
+ Py_UNICODE_ISSPACE macro in an extension module.
+
What's New in Python 2.6 final
==============================
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index f3a9f5c..adb04c0 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -484,6 +484,10 @@ test_u_code(PyObject *self)
Py_UNICODE *value;
int len;
+ /* issue4122: Undefined reference to _Py_ascii_whitespace on Windows */
+ /* Just use the macro and check that it compiles */
+ int x = Py_UNICODE_ISSPACE(25);
+
tuple = PyTuple_New(1);
if (tuple == NULL)
return NULL;