Skip to content

build fails with clang, python3 and numpy 1.7.1 and higher #3872

@selasley

Description

@selasley

The build succeeds if I change
void initObjToJSON(void)
to
int initObjToJSON(void)
in objToJSON.c, but I don't know if there are repercussions. I haven't tested with numpy 1.7 and lower.


$ git log
commit 51cc9d9
...
$ python3 -c "import numpy;print(numpy.version)"
1.7.1
(also fails with 1.8.0.dev-f7ea474)
$ python3 setup.py build
...
pandas/src/ujson/python/objToJSON.c:118:5: error: void function 'initObjToJSON' should not return a value [-Wreturn-type]
import_array();
^~~~~~~~~~~~~~
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/numpy/core/include/numpy/__multiarray_api.h:1693:144: note: expanded from macro 'import_array'
#define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }


from generate_numpy_api.py

if PY_VERSION_HEX >= 0x03000000

define NUMPY_IMPORT_ARRAY_RETVAL NULL

else

define NUMPY_IMPORT_ARRAY_RETVAL

endif

define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }

Metadata

Metadata

Assignees

No one assigned

    Labels

    BuildLibrary building on various platforms

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions