RJT1990 / pyflux

Open source time series library for Python
BSD 3-Clause "New" or "Revised" License
2.11k stars 240 forks source link

Add support to release Linux aarch64 wheels #171

Open odidev opened 2 years ago

odidev commented 2 years ago

Problem

On aarch64, ‘pip install pyflux’ is giving the below error -

pyflux/arma/arma_recursions.c: In function ‘__Pyx__ExceptionSave’:
    pyflux/arma/arma_recursions.c:19331:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19331 |     *type = tstate->exc_type;
          |                     ^~~~~~~~
          |                     curexc_type
    pyflux/arma/arma_recursions.c:19332:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19332 |     *value = tstate->exc_value;
          |                      ^~~~~~~~~
          |                      curexc_value
    pyflux/arma/arma_recursions.c:19333:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19333 |     *tb = tstate->exc_traceback;
          |                   ^~~~~~~~~~~~~
          |                   curexc_traceback
    pyflux/arma/arma_recursions.c: In function ‘__Pyx__ExceptionReset’:
    pyflux/arma/arma_recursions.c:19340:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19340 |     tmp_type = tstate->exc_type;
          |                        ^~~~~~~~
          |                        curexc_type
    pyflux/arma/arma_recursions.c:19341:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19341 |     tmp_value = tstate->exc_value;
          |                         ^~~~~~~~~
          |                         curexc_value
    pyflux/arma/arma_recursions.c:19342:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19342 |     tmp_tb = tstate->exc_traceback;
          |                      ^~~~~~~~~~~~~
          |                      curexc_traceback
    pyflux/arma/arma_recursions.c:19343:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19343 |     tstate->exc_type = type;
          |             ^~~~~~~~
          |             curexc_type
    pyflux/arma/arma_recursions.c:19344:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19344 |     tstate->exc_value = value;
          |             ^~~~~~~~~
          |             curexc_value
    pyflux/arma/arma_recursions.c:19345:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19345 |     tstate->exc_traceback = tb;
          |             ^~~~~~~~~~~~~
          |             curexc_traceback
    pyflux/arma/arma_recursions.c: In function ‘__Pyx__GetException’:
    pyflux/arma/arma_recursions.c:19400:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19400 |     tmp_type = tstate->exc_type;
          |                        ^~~~~~~~
          |                        curexc_type
    pyflux/arma/arma_recursions.c:19401:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19401 |     tmp_value = tstate->exc_value;
          |                         ^~~~~~~~~
          |                         curexc_value
    pyflux/arma/arma_recursions.c:19402:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19402 |     tmp_tb = tstate->exc_traceback;
          |                      ^~~~~~~~~~~~~
          |                      curexc_traceback
    pyflux/arma/arma_recursions.c:19403:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19403 |     tstate->exc_type = local_type;
          |             ^~~~~~~~
          |             curexc_type
    pyflux/arma/arma_recursions.c:19404:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19404 |     tstate->exc_value = local_value;
          |             ^~~~~~~~~
          |             curexc_value
    pyflux/arma/arma_recursions.c:19405:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19405 |     tstate->exc_traceback = local_tb;
          |             ^~~~~~~~~~~~~
          |             curexc_traceback
    pyflux/arma/arma_recursions.c: In function ‘__Pyx__ExceptionSwap’:
    pyflux/arma/arma_recursions.c:19427:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19427 |     tmp_type = tstate->exc_type;
          |                        ^~~~~~~~
          |                        curexc_type
    pyflux/arma/arma_recursions.c:19428:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19428 |     tmp_value = tstate->exc_value;
          |                         ^~~~~~~~~
          |                         curexc_value
    pyflux/arma/arma_recursions.c:19429:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19429 |     tmp_tb = tstate->exc_traceback;
          |                      ^~~~~~~~~~~~~
          |                      curexc_traceback
    pyflux/arma/arma_recursions.c:19430:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
    19430 |     tstate->exc_type = *type;
          |             ^~~~~~~~
          |             curexc_type
    pyflux/arma/arma_recursions.c:19431:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
    19431 |     tstate->exc_value = *value;
          |             ^~~~~~~~~
          |             curexc_value
    pyflux/arma/arma_recursions.c:19432:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
    19432 |     tstate->exc_traceback = *tb;
          |             ^~~~~~~~~~~~~
          |             curexc_traceback
    In file included from /usr/local/lib/python3.8/dist-packages/numpy/core/include/numpy/ndarrayobject.h:21,
                     from /usr/local/lib/python3.8/dist-packages/numpy/core/include/numpy/arrayobject.h:5,
                     from pyflux/arma/arma_recursions.c:274:
    At top level:
    /usr/local/lib/python3.8/dist-packages/numpy/core/include/numpy/__multiarray_api.h:1477:1: warning: ‘_import_array’ defined but not used [-Wunused-function]
     1477 | _import_array(void)
          | ^~~~~~~~~~~~~
    error: Command "aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/local/lib/python3.8/dist-packages/numpy/core/include -Ibuild/src.linux-aarch64-3.8/numpy/distutils/include -I/usr/include/python3.8 -c pyflux/arma/arma_recursions.c -o build/temp.linux-aarch64-3.8/pyflux/arma/arma_recursions.o -MMD -MF build/temp.linux-aarch64-3.8/pyflux/arma/arma_recursions.o.d" failed with exit status 1

Resolution

On aarch64, ‘pip install pyflux’ should download the wheels from PyPI.

@RJT1990 and Team, Please let me know your interest in releasing aarch64 wheels. I can help in this.