matplotlib / basemap

Plot on map projections (with coastlines and political boundaries) using matplotlib
MIT License
774 stars 392 forks source link

Build error: possible from cython #521

Closed wreckdump closed 2 years ago

wreckdump commented 2 years ago

I know this python module is deprecated, but I really like this module and I would like to keep using it... So, if someone can help me with this issue, I would really appreciate it.

I've recently updated my system and the whole python virtual environment broke. So, I am in the process of reinstalling all the modules that I frequently use, and I am having problem with installing the basemap.

I do have all the dependency installed, and the last step is to install the basemap. But, I am getting an error that I can not figure out. Below is the error message from the command

pip install git+https://github.com/matplotlib/basemap

Error message

Collecting git+https://github.com/matplotlib/basemap
  Cloning https://github.com/matplotlib/basemap to /tmp/pip-req-build-q4etjjlp
  Running command git clone --filter=blob:none -q https://github.com/matplotlib/basemap /tmp/pip-req-build-q4etjjlp
  Resolved https://github.com/matplotlib/basemap to commit a516e5b1de2f26d9adfcced1215bee7285c61d22
  Preparing metadata (setup.py) ... done
Requirement already satisfied: matplotlib!=3.0.1,>=1.0.0 in /home/rangke/py_vrt/lib/python3.9/site-packages (from basemap==1.2.2+dev) (3.3.4)
Requirement already satisfied: numpy>=1.2.1 in /home/rangke/py_vrt/lib/python3.9/site-packages (from basemap==1.2.2+dev) (1.20.1)
Requirement already satisfied: pyproj>=1.9.3 in /home/rangke/py_vrt/lib/python3.9/site-packages (from basemap==1.2.2+dev) (3.0.0.post1)
Requirement already satisfied: pyshp>=1.2.0 in /home/rangke/py_vrt/lib/python3.9/site-packages (from basemap==1.2.2+dev) (2.1.3)
Requirement already satisfied: six in /home/rangke/py_vrt/lib/python3.9/site-packages (from basemap==1.2.2+dev) (1.15.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/rangke/py_vrt/lib/python3.9/site-packages (from matplotlib!=3.0.1,>=1.0.0->basemap==1.2.2+dev) (1.3.1)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in /home/rangke/py_vrt/lib/python3.9/site-packages (from matplotlib!=3.0.1,>=1.0.0->basemap==1.2.2+dev) (2.4.7)
Requirement already satisfied: pillow>=6.2.0 in /home/rangke/py_vrt/lib/python3.9/site-packages (from matplotlib!=3.0.1,>=1.0.0->basemap==1.2.2+dev) (8.1.0)
Requirement already satisfied: python-dateutil>=2.1 in /home/rangke/py_vrt/lib/python3.9/site-packages (from matplotlib!=3.0.1,>=1.0.0->basemap==1.2.2+dev) (2.8.1)
Requirement already satisfied: cycler>=0.10 in /home/rangke/py_vrt/lib/python3.9/site-packages (from matplotlib!=3.0.1,>=1.0.0->basemap==1.2.2+dev) (0.10.0)
Requirement already satisfied: certifi in /home/rangke/py_vrt/lib/python3.9/site-packages (from pyproj>=1.9.3->basemap==1.2.2+dev) (2020.12.5)
Using legacy 'setup.py install' for basemap, since package 'wheel' is not installed.
Installing collected packages: basemap
    Running setup.py install for basemap ... error
    ERROR: Command errored out with exit status 1:
     command: /home/rangke/py_vrt/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-q4etjjlp/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-q4etjjlp/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-db3v2pk6/install-record.txt --single-version-externally-managed --compile --install-headers /home/rangke/py_vrt/include/site/python3.9/basemap
         cwd: /tmp/pip-req-build-q4etjjlp/
    Complete output (1135 lines):
    running install
    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building extension "_geoslib" sources
    build_src: building npy-pkg config files
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.9
    creating build/lib.linux-x86_64-3.9/mpl_toolkits
    creating build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    copying lib/mpl_toolkits/basemap/test.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    copying lib/mpl_toolkits/basemap/solar.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    copying lib/mpl_toolkits/basemap/proj.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    copying lib/mpl_toolkits/basemap/diagnostic.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    copying lib/mpl_toolkits/basemap/cm.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    copying lib/mpl_toolkits/basemap/__init__.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap
    creating build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/__init__.py -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/UScounties.dbf -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/UScounties.prj -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/UScounties.shp -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/UScounties.shx -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/bmng.jpg -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countries_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countries_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countries_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countries_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countries_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countriesmeta_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countriesmeta_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countriesmeta_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countriesmeta_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/countriesmeta_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/epsg -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/etopo1.jpg -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhs_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhs_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhs_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhs_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhs_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhsmeta_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhsmeta_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhsmeta_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhsmeta_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/gshhsmeta_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_1.25min_c.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_1.25min_f.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_1.25min_h.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_1.25min_i.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_1.25min_l.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_10min_c.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_10min_f.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_10min_h.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_10min_i.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_10min_l.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_2.5min_c.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_2.5min_f.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_2.5min_h.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_2.5min_i.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_2.5min_l.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_5min_c.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_5min_f.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_5min_h.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_5min_i.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/lsmask_5min_l.bin -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/rivers_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/rivers_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/rivers_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/rivers_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/rivers_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/riversmeta_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/riversmeta_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/riversmeta_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/riversmeta_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/riversmeta_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/shadedrelief.jpg -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/states_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/states_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/states_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/states_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/states_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/statesmeta_c.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/statesmeta_f.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/statesmeta_h.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/statesmeta_i.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    copying lib/mpl_toolkits/basemap_data/statesmeta_l.dat -> build/lib.linux-x86_64-3.9/mpl_toolkits/basemap_data
    running build_ext
    customize UnixCCompiler
    customize UnixCCompiler using build_ext
    CCompilerOpt.cc_test_flags[999] : testing flags (-march=native)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    creating /tmp/tmpm3ihr05q/home
    creating /tmp/tmpm3ihr05q/home/rangke
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt/lib
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt/lib/python3.9
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt/lib/python3.9/site-packages
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt/lib/python3.9/site-packages/numpy
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils
    creating /tmp/tmpm3ihr05q/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/checks
    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-march=native'
    CCompilerOpt.cc_test_flags[999] : testing flags (-O3)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-O3'
    CCompilerOpt.cc_test_flags[999] : testing flags (-Werror)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-Werror'
    CCompilerOpt.__init__[1674] : check requested baseline
    CCompilerOpt.cc_test_flags[999] : testing flags (-msse)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse'
    CCompilerOpt.cc_test_flags[999] : testing flags (-msse2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse2'
    CCompilerOpt.feature_test[1444] : testing feature 'SSE' with flags (-msse -msse2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'SSE2' with flags (-msse -msse2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-msse3)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse3'
    CCompilerOpt.feature_test[1444] : testing feature 'SSE3' with flags (-msse -msse2 -msse3)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -Werror'
    CCompilerOpt.__init__[1683] : check requested dispatch-able features
    CCompilerOpt.cc_test_flags[999] : testing flags (-mssse3)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mssse3'
    CCompilerOpt.cc_test_flags[999] : testing flags (-msse4.1)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse4.1'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mpopcnt)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mpopcnt'
    CCompilerOpt.cc_test_flags[999] : testing flags (-msse4.2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse4.2'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'SSSE3' with flags (-msse -msse2 -msse3 -mssse3)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'POPCNT' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'SSE41' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'SSE42' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mf16c)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mf16c'
    CCompilerOpt.feature_test[1444] : testing feature 'F16C' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mfma)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mfma'
    CCompilerOpt.feature_test[1444] : testing feature 'FMA3' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx2'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX2' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mavx2)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mavx2 -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512f)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512f'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512F' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512cd)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512cd'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512vl -mavx512bw -mavx512dq)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512vl -mavx512bw -mavx512dq'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512ifma -mavx512vbmi)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512ifma -mavx512vbmi'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512_CNL' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512CD' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512vnni)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512vnni'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512_CLX' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512vnni)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512vnni -Werror'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512_SKX' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512vbmi2 -mavx512bitalg -mavx512vpopcntdq)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512vbmi2 -mavx512bitalg -mavx512vpopcntdq'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512_ICL' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512vnni -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512bitalg -mavx512vpopcntdq)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -mavx512vnni -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512bitalg -mavx512vpopcntdq -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx512er -mavx512pf)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx512er -mavx512pf'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512_KNL' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512er -mavx512pf)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512er -mavx512pf -Werror'
    CCompilerOpt.cc_test_flags[999] : testing flags (-mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq'
    CCompilerOpt.feature_test[1444] : testing feature 'AVX512_KNM' with flags (-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512er -mavx512pf -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512er -mavx512pf -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq -Werror'
    CCompilerOpt.__init__[1695] : skip features (SSE3 SSE2 SSE) since its part of baseline
    CCompilerOpt.__init__[1699] : initialize targets groups
    CCompilerOpt.__init__[1701] : parse target group simd_test
    CCompilerOpt._parse_target_tokens[1910] : skip targets (VSX2 VSX3 XOP NEON FMA4 ASIMD VSX) not part of baseline or dispatch-able features
    CCompilerOpt._parse_policy_not_keepbase[2022] : skip baseline features (SSE2)
    CCompilerOpt.generate_dispatch_header[2236] : generate CPU dispatch header: (build/src.linux-x86_64-3.9/numpy/distutils/include/npy_cpu_dispatch_config.h)
    CCompilerOpt.generate_dispatch_header[2245] : dispatch header dir build/src.linux-x86_64-3.9/numpy/distutils/include does not exist, creating it
    CCompilerOpt.feature_extra_checks[1519] : Testing extra checks for feature 'AVX512F' (AVX512F_REDUCE)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -Werror'
    CCompilerOpt.feature_extra_checks[1519] : Testing extra checks for feature 'AVX512_SKX' (AVX512BW_MASK AVX512DQ_MASK)
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -Werror'
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    compile options: '-I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3 -mssse3 -msse4.1 -mpopcnt -msse4.2 -mavx -mf16c -mfma -mavx2 -mavx512f -mavx512cd -mavx512vl -mavx512bw -mavx512dq -Werror'
    Detected changes on compiler optimizations, force rebuilding
    building '_geoslib' extension
    compiling C sources
    C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC

    creating build/temp.linux-x86_64-3.9/src
    compile options: '-I/home/rangke/tools/pkgs/geos/include -I/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include -I/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.9/numpy/distutils/include -I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c'
    extra options: '-msse -msse2 -msse3'
    gcc: src/_geoslib.c
    In file included from /home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include/numpy/ndarraytypes.h:1944,
                     from /home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                     from /home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from src/_geoslib.c:565:
    /home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
       17 | #warning "Using deprecated NumPy API, disable it with " \
          |  ^~~~~~~
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_is_valid’:
    src/_geoslib.c:1602:43: warning: passing argument 1 of ‘GEOSisValid’ from incompatible pointer type [-Wincompatible-pointer-types]
     1602 |   __pyx_v_valid = GEOSisValid(__pyx_v_self->_geom);
          |                               ~~~~~~~~~~~~^~~~~~~
          |                                           |
          |                                           GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3310:54: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3310 | extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
          |                                  ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_2geom_type’:
    src/_geoslib.c:1699:59: warning: passing argument 1 of ‘GEOSGeomType’ from incompatible pointer type [-Wincompatible-pointer-types]
     1699 |   __pyx_t_1 = PyBytes_FromString(GEOSGeomType(__pyx_v_self->_geom)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
          |                                               ~~~~~~~~~~~~^~~~~~~
          |                                                           |
          |                                                           GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3356:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3356 | extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_4within’:
    src/_geoslib.c:1787:31: warning: passing argument 1 of ‘GEOSWithin’ from incompatible pointer type [-Wincompatible-pointer-types]
     1787 |   __pyx_v_answer = GEOSWithin(__pyx_v_g1, __pyx_v_g2);
          |                               ^~~~~~~~~~
          |                               |
          |                               GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2832:53: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2832 | extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
          |                                 ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c:1787:43: warning: passing argument 2 of ‘GEOSWithin’ from incompatible pointer type [-Wincompatible-pointer-types]
     1787 |   __pyx_v_answer = GEOSWithin(__pyx_v_g1, __pyx_v_g2);
          |                                           ^~~~~~~~~~
          |                                           |
          |                                           GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2832:77: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2832 | extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
          |                                                         ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_6union’:
    src/_geoslib.c:1919:26: warning: passing argument 1 of ‘GEOSUnion’ from incompatible pointer type [-Wincompatible-pointer-types]
     1919 |   __pyx_v_g3 = GEOSUnion(__pyx_v_g1, __pyx_v_g2);
          |                          ^~~~~~~~~~
          |                          |
          |                          GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2275:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2275 |     const GEOSGeometry* ga,
          |     ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c:1919:38: warning: passing argument 2 of ‘GEOSUnion’ from incompatible pointer type [-Wincompatible-pointer-types]
     1919 |   __pyx_v_g3 = GEOSUnion(__pyx_v_g1, __pyx_v_g2);
          |                                      ^~~~~~~~~~
          |                                      |
          |                                      GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2276:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2276 |     const GEOSGeometry* gb);
          |     ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c:1919:14: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     1919 |   __pyx_v_g3 = GEOSUnion(__pyx_v_g1, __pyx_v_g2);
          |              ^
    src/_geoslib.c:1928:35: warning: passing argument 1 of ‘GEOSGeomTypeId’ from incompatible pointer type [-Wincompatible-pointer-types]
     1928 |   __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
          |                                   ^~~~~~~~~~
          |                                   |
          |                                   GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3363:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3363 | extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2031:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     2031 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2040:37: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     2040 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                                     ^~~~~~~~~~
          |                                     |
          |                                     GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2040:18: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2040 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                  ^
    src/_geoslib.c:2091:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     2091 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2100:37: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     2100 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                                     ^~~~~~~~~~
          |                                     |
          |                                     GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2100:18: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2100 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                  ^
    src/_geoslib.c:2143:49: warning: passing argument 1 of ‘GEOSGeomType’ from incompatible pointer type [-Wincompatible-pointer-types]
     2143 |     __pyx_t_2 = PyBytes_FromString(GEOSGeomType(__pyx_v_g3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error)
          |                                                 ^~~~~~~~~~
          |                                                 |
          |                                                 GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3356:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3356 | extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2173:20: warning: passing argument 1 of ‘GEOSGeom_destroy’ from incompatible pointer type [-Wincompatible-pointer-types]
     2173 |   GEOSGeom_destroy(__pyx_v_g3);
          |                    ^~~~~~~~~~
          |                    |
          |                    GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2164:53: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2164 | extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
          |                                       ~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_8simplify’:
    src/_geoslib.c:2276:29: warning: passing argument 1 of ‘GEOSSimplify’ from incompatible pointer type [-Wincompatible-pointer-types]
     2276 |   __pyx_v_g3 = GEOSSimplify(__pyx_v_g1, __pyx_v_tolerance);
          |                             ^~~~~~~~~~
          |                             |
          |                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2660:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2660 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2276:14: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2276 |   __pyx_v_g3 = GEOSSimplify(__pyx_v_g1, __pyx_v_tolerance);
          |              ^
    src/_geoslib.c:2285:35: warning: passing argument 1 of ‘GEOSGeomTypeId’ from incompatible pointer type [-Wincompatible-pointer-types]
     2285 |   __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
          |                                   ^~~~~~~~~~
          |                                   |
          |                                   GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3363:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3363 | extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2388:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     2388 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2397:37: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     2397 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                                     ^~~~~~~~~~
          |                                     |
          |                                     GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2397:18: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2397 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                  ^
    src/_geoslib.c:2448:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     2448 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2457:37: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     2457 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                                     ^~~~~~~~~~
          |                                     |
          |                                     GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2457:18: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2457 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                  ^
    src/_geoslib.c:2500:49: warning: passing argument 1 of ‘GEOSGeomType’ from incompatible pointer type [-Wincompatible-pointer-types]
     2500 |     __pyx_t_3 = PyBytes_FromString(GEOSGeomType(__pyx_v_g3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 227, __pyx_L1_error)
          |                                                 ^~~~~~~~~~
          |                                                 |
          |                                                 GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3356:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3356 | extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2530:20: warning: passing argument 1 of ‘GEOSGeom_destroy’ from incompatible pointer type [-Wincompatible-pointer-types]
     2530 |   GEOSGeom_destroy(__pyx_v_g3);
          |                    ^~~~~~~~~~
          |                    |
          |                    GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2164:53: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2164 | extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
          |                                       ~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_10fix’:
    src/_geoslib.c:2621:27: warning: passing argument 1 of ‘GEOSBuffer’ from incompatible pointer type [-Wincompatible-pointer-types]
     2621 |   __pyx_v_g3 = GEOSBuffer(__pyx_v_g1, 0., 0);
          |                           ^~~~~~~~~~
          |                           |
          |                           GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1916:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     1916 | extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2621:14: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2621 |   __pyx_v_g3 = GEOSBuffer(__pyx_v_g1, 0., 0);
          |              ^
    src/_geoslib.c:2630:35: warning: passing argument 1 of ‘GEOSGeomTypeId’ from incompatible pointer type [-Wincompatible-pointer-types]
     2630 |   __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
          |                                   ^~~~~~~~~~
          |                                   |
          |                                   GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3363:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3363 | extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2733:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     2733 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2742:37: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     2742 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                                     ^~~~~~~~~~
          |                                     |
          |                                     GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2742:18: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2742 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                  ^
    src/_geoslib.c:2793:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     2793 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2802:37: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     2802 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                                     ^~~~~~~~~~
          |                                     |
          |                                     GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2802:18: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     2802 |     __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
          |                  ^
    src/_geoslib.c:2845:49: warning: passing argument 1 of ‘GEOSGeomType’ from incompatible pointer type [-Wincompatible-pointer-types]
     2845 |     __pyx_t_2 = PyBytes_FromString(GEOSGeomType(__pyx_v_g3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error)
          |                                                 ^~~~~~~~~~
          |                                                 |
          |                                                 GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3356:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3356 | extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:2875:20: warning: passing argument 1 of ‘GEOSGeom_destroy’ from incompatible pointer type [-Wincompatible-pointer-types]
     2875 |   GEOSGeom_destroy(__pyx_v_g3);
          |                    ^~~~~~~~~~
          |                    |
          |                    GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2164:53: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2164 | extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
          |                                       ~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_12intersects’:
    src/_geoslib.c:2975:35: warning: passing argument 1 of ‘GEOSIntersects’ from incompatible pointer type [-Wincompatible-pointer-types]
     2975 |   __pyx_v_answer = GEOSIntersects(__pyx_v_g1, __pyx_v_g2);
          |                                   ^~~~~~~~~~
          |                                   |
          |                                   GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2812:57: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2812 | extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
          |                                     ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c:2975:47: warning: passing argument 2 of ‘GEOSIntersects’ from incompatible pointer type [-Wincompatible-pointer-types]
     2975 |   __pyx_v_answer = GEOSIntersects(__pyx_v_g1, __pyx_v_g2);
          |                                               ^~~~~~~~~~
          |                                               |
          |                                               GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2812:81: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2812 | extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
          |                                                             ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_14intersection’:
    src/_geoslib.c:3109:33: warning: passing argument 1 of ‘GEOSIntersection’ from incompatible pointer type [-Wincompatible-pointer-types]
     3109 |   __pyx_v_g3 = GEOSIntersection(__pyx_v_g1, __pyx_v_g2);
          |                                 ^~~~~~~~~~
          |                                 |
          |                                 GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2185:68: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2185 | extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
          |                                                ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c:3109:45: warning: passing argument 2 of ‘GEOSIntersection’ from incompatible pointer type [-Wincompatible-pointer-types]
     3109 |   __pyx_v_g3 = GEOSIntersection(__pyx_v_g1, __pyx_v_g2);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2185:92: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2185 | extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
          |                                                                        ~~~~~~~~~~~~~~~~~~~~^~
    src/_geoslib.c:3109:14: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     3109 |   __pyx_v_g3 = GEOSIntersection(__pyx_v_g1, __pyx_v_g2);
          |              ^
    src/_geoslib.c:3118:35: warning: passing argument 1 of ‘GEOSGeomTypeId’ from incompatible pointer type [-Wincompatible-pointer-types]
     3118 |   __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
          |                                   ^~~~~~~~~~
          |                                   |
          |                                   GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3363:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3363 | extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:3251:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     3251 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:3282:39: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     3282 |       __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
          |                                       ^~~~~~~~~~
          |                                       |
          |                                       GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:3282:20: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     3282 |       __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
          |                    ^
    src/_geoslib.c:3343:45: warning: passing argument 1 of ‘GEOSGetNumGeometries’ from incompatible pointer type [-Wincompatible-pointer-types]
     3343 |     __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
          |                                             ^~~~~~~~~~
          |                                             |
          |                                             GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3407:62: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3407 | extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
          |                                          ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:3374:39: warning: passing argument 1 of ‘GEOSGetGeometryN’ from incompatible pointer type [-Wincompatible-pointer-types]
     3374 |       __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
          |                                       ^~~~~~~~~~
          |                                       |
          |                                       GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3424:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3424 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:3374:20: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     3374 |       __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
          |                    ^
    src/_geoslib.c:3427:22: warning: passing argument 1 of ‘GEOSGeom_destroy’ from incompatible pointer type [-Wincompatible-pointer-types]
     3427 |     GEOSGeom_destroy(__pyx_v_g3);
          |                      ^~~~~~~~~~
          |                      |
          |                      GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2164:53: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2164 | extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
          |                                       ~~~~~~~~~~~~~~^
    src/_geoslib.c:3452:20: warning: passing argument 1 of ‘GEOSGeom_destroy’ from incompatible pointer type [-Wincompatible-pointer-types]
     3452 |   GEOSGeom_destroy(__pyx_v_g3);
          |                    ^~~~~~~~~~
          |                    |
          |                    GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2164:53: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2164 | extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
          |                                       ~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_12BaseGeometry_18__dealloc__’:
    src/_geoslib.c:3578:32: warning: passing argument 1 of ‘GEOSGeom_destroy’ from incompatible pointer type [-Wincompatible-pointer-types]
     3578 |   GEOSGeom_destroy(__pyx_v_self->_geom);
          |                    ~~~~~~~~~~~~^~~~~~~
          |                                |
          |                                GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2164:53: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2164 | extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
          |                                       ~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_7Polygon___init__’:
    src/_geoslib.c:4001:14: warning: assignment to ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’} from incompatible pointer type ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} [-Wincompatible-pointer-types]
     4001 |   __pyx_v_cs = GEOSCoordSeq_create(__pyx_v_M, 2);
          |              ^
    src/_geoslib.c:4047:30: warning: passing argument 1 of ‘GEOSCoordSeq_setX’ from incompatible pointer type [-Wincompatible-pointer-types]
     4047 |     (void)(GEOSCoordSeq_setX(__pyx_v_cs, __pyx_v_i, __pyx_v_dx));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1716:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1716 | extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4056:30: warning: passing argument 1 of ‘GEOSCoordSeq_setY’ from incompatible pointer type [-Wincompatible-pointer-types]
     4056 |     (void)(GEOSCoordSeq_setY(__pyx_v_cs, __pyx_v_i, __pyx_v_dy));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1725:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1725 | extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4094:30: warning: passing argument 1 of ‘GEOSCoordSeq_setX’ from incompatible pointer type [-Wincompatible-pointer-types]
     4094 |     (void)(GEOSCoordSeq_setX(__pyx_v_cs, (__pyx_v_M - 1), __pyx_v_dx));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1716:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1716 | extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4103:30: warning: passing argument 1 of ‘GEOSCoordSeq_setY’ from incompatible pointer type [-Wincompatible-pointer-types]
     4103 |     (void)(GEOSCoordSeq_setY(__pyx_v_cs, (__pyx_v_M - 1), __pyx_v_dy));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1725:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1725 | extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4121:42: warning: passing argument 1 of ‘GEOSGeom_createLinearRing’ from incompatible pointer type [-Wincompatible-pointer-types]
     4121 |   __pyx_v_lr = GEOSGeom_createLinearRing(__pyx_v_cs);
          |                                          ^~~~~~~~~~
          |                                          |
          |                                          GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2084:76: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     2084 | extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
          |                                                         ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4121:14: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     4121 |   __pyx_v_lr = GEOSGeom_createLinearRing(__pyx_v_cs);
          |              ^
    src/_geoslib.c:4130:59: warning: passing argument 1 of ‘GEOSGeom_createPolygon’ from incompatible pointer type [-Wincompatible-pointer-types]
     4130 |   __pyx_v_self->__pyx_base._geom = GEOSGeom_createPolygon(__pyx_v_lr, NULL, 0);
          |                                                           ^~~~~~~~~~
          |                                                           |
          |                                                           GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2121:19: note: expected ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     2121 |     GEOSGeometry* shell,
          |     ~~~~~~~~~~~~~~^~~~~
    src/_geoslib.c:4130:34: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     4130 |   __pyx_v_self->__pyx_base._geom = GEOSGeom_createPolygon(__pyx_v_lr, NULL, 0);
          |                                  ^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_7Polygon_2area’:
    src/_geoslib.c:4203:43: warning: passing argument 1 of ‘GEOSArea’ from incompatible pointer type [-Wincompatible-pointer-types]
     4203 |   (void)(GEOSArea(__pyx_v_self->__pyx_base._geom, (&__pyx_v_area)));
          |                   ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
          |                                           |
          |                                           GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3653:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3653 |     const GEOSGeometry* g,
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_10LineString___init__’:
    src/_geoslib.c:4400:14: warning: assignment to ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’} from incompatible pointer type ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} [-Wincompatible-pointer-types]
     4400 |   __pyx_v_cs = GEOSCoordSeq_create(__pyx_v_M, 2);
          |              ^
    src/_geoslib.c:4446:30: warning: passing argument 1 of ‘GEOSCoordSeq_setX’ from incompatible pointer type [-Wincompatible-pointer-types]
     4446 |     (void)(GEOSCoordSeq_setX(__pyx_v_cs, __pyx_v_i, __pyx_v_dx));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1716:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1716 | extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4455:30: warning: passing argument 1 of ‘GEOSCoordSeq_setY’ from incompatible pointer type [-Wincompatible-pointer-types]
     4455 |     (void)(GEOSCoordSeq_setY(__pyx_v_cs, __pyx_v_i, __pyx_v_dy));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1725:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1725 | extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4465:62: warning: passing argument 1 of ‘GEOSGeom_createLineString’ from incompatible pointer type [-Wincompatible-pointer-types]
     4465 |   __pyx_v_self->__pyx_base._geom = GEOSGeom_createLineString(__pyx_v_cs);
          |                                                              ^~~~~~~~~~
          |                                                              |
          |                                                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2092:76: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     2092 | extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
          |                                                         ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4465:34: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     4465 |   __pyx_v_self->__pyx_base._geom = GEOSGeom_createLineString(__pyx_v_cs);
          |                                  ^
    src/_geoslib.c: In function ‘__pyx_pf_8_geoslib_5Point___init__’:
    src/_geoslib.c:4578:14: warning: assignment to ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’} from incompatible pointer type ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} [-Wincompatible-pointer-types]
     4578 |   __pyx_v_cs = GEOSCoordSeq_create(1, 2);
          |              ^
    src/_geoslib.c:4605:28: warning: passing argument 1 of ‘GEOSCoordSeq_setX’ from incompatible pointer type [-Wincompatible-pointer-types]
     4605 |   (void)(GEOSCoordSeq_setX(__pyx_v_cs, 0, __pyx_v_dx));
          |                            ^~~~~~~~~~
          |                            |
          |                            GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1716:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1716 | extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4614:28: warning: passing argument 1 of ‘GEOSCoordSeq_setY’ from incompatible pointer type [-Wincompatible-pointer-types]
     4614 |   (void)(GEOSCoordSeq_setY(__pyx_v_cs, 0, __pyx_v_dy));
          |                            ^~~~~~~~~~
          |                            |
          |                            GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1725:58: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1725 | extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4623:57: warning: passing argument 1 of ‘GEOSGeom_createPoint’ from incompatible pointer type [-Wincompatible-pointer-types]
     4623 |   __pyx_v_self->__pyx_base._geom = GEOSGeom_createPoint(__pyx_v_cs);
          |                                                         ^~~~~~~~~~
          |                                                         |
          |                                                         GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:2060:71: note: expected ‘GEOSCoordSequence *’ {aka ‘struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     2060 | extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
          |                                                    ~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4623:34: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘GEOSGeometry *’ {aka ‘struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     4623 |   __pyx_v_self->__pyx_base._geom = GEOSGeom_createPoint(__pyx_v_cs);
          |                                  ^
    src/_geoslib.c: In function ‘__pyx_f_8_geoslib__get_coords’:
    src/_geoslib.c:4886:32: warning: passing argument 1 of ‘GEOSGeomTypeId’ from incompatible pointer type [-Wincompatible-pointer-types]
     4886 |   __pyx_t_1 = ((GEOSGeomTypeId(__pyx_v_geom) == GEOS_POLYGON) != 0);
          |                                ^~~~~~~~~~~~
          |                                |
          |                                GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3363:56: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3363 | extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
          |                                    ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4896:38: warning: passing argument 1 of ‘GEOSGetExteriorRing’ from incompatible pointer type [-Wincompatible-pointer-types]
     4896 |     __pyx_v_lr = GEOSGetExteriorRing(__pyx_v_geom);
          |                                      ^~~~~~~~~~~~
          |                                      |
          |                                      GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3536:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3536 |     const GEOSGeometry* g);
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4896:16: warning: assignment to ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’} from incompatible pointer type ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} [-Wincompatible-pointer-types]
     4896 |     __pyx_v_lr = GEOSGetExteriorRing(__pyx_v_geom);
          |                ^
    src/_geoslib.c:4905:39: warning: passing argument 1 of ‘GEOSGeom_getCoordSeq’ from incompatible pointer type [-Wincompatible-pointer-types]
     4905 |     __pyx_v_cs = GEOSGeom_getCoordSeq(__pyx_v_lr);
          |                                       ^~~~~~~~~~
          |                                       |
          |                                       GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3556:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3556 |     const GEOSGeometry* g);
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4905:16: warning: assignment to ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’} from incompatible pointer type ‘const GEOSCoordSequence *’ {aka ‘const struct GEOSCoordSeq_t *’} [-Wincompatible-pointer-types]
     4905 |     __pyx_v_cs = GEOSGeom_getCoordSeq(__pyx_v_lr);
          |                ^
    src/_geoslib.c:4925:39: warning: passing argument 1 of ‘GEOSGeom_getCoordSeq’ from incompatible pointer type [-Wincompatible-pointer-types]
     4925 |     __pyx_v_cs = GEOSGeom_getCoordSeq(__pyx_v_geom);
          |                                       ^~~~~~~~~~~~
          |                                       |
          |                                       GEOSGeometry ** {aka struct GEOSGeom_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:3556:25: note: expected ‘const GEOSGeometry *’ {aka ‘const struct GEOSGeom_t *’} but argument is of type ‘GEOSGeometry **’ {aka ‘struct GEOSGeom_t **’}
     3556 |     const GEOSGeometry* g);
          |     ~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:4925:16: warning: assignment to ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’} from incompatible pointer type ‘const GEOSCoordSequence *’ {aka ‘const struct GEOSCoordSeq_t *’} [-Wincompatible-pointer-types]
     4925 |     __pyx_v_cs = GEOSGeom_getCoordSeq(__pyx_v_geom);
          |                ^
    src/_geoslib.c:4936:31: warning: passing argument 1 of ‘GEOSCoordSeq_getSize’ from incompatible pointer type [-Wincompatible-pointer-types]
     4936 |   (void)(GEOSCoordSeq_getSize(__pyx_v_cs, (&__pyx_v_M)));
          |                               ^~~~~~~~~~
          |                               |
          |                               GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1835:30: note: expected ‘const GEOSCoordSequence *’ {aka ‘const struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1835 |     const GEOSCoordSequence* s,
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:5044:30: warning: passing argument 1 of ‘GEOSCoordSeq_getX’ from incompatible pointer type [-Wincompatible-pointer-types]
     5044 |     (void)(GEOSCoordSeq_getX(__pyx_v_cs, __pyx_v_i, (&__pyx_v_dx)));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1775:64: note: expected ‘const GEOSCoordSequence *’ {aka ‘const struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1775 | extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c:5053:30: warning: passing argument 1 of ‘GEOSCoordSeq_getY’ from incompatible pointer type [-Wincompatible-pointer-types]
     5053 |     (void)(GEOSCoordSeq_getY(__pyx_v_cs, __pyx_v_i, (&__pyx_v_dy)));
          |                              ^~~~~~~~~~
          |                              |
          |                              GEOSCoordSequence ** {aka struct GEOSCoordSeq_t **}
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1785:64: note: expected ‘const GEOSCoordSequence *’ {aka ‘const struct GEOSCoordSeq_t *’} but argument is of type ‘GEOSCoordSequence **’ {aka ‘struct GEOSCoordSeq_t **’}
     1785 | extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
          |                                       ~~~~~~~~~~~~~~~~~~~~~~~~~^
    src/_geoslib.c: In function ‘__Pyx_modinit_type_init_code’:
    src/_geoslib.c:5678:36: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’
     5678 |   __pyx_type_8_geoslib_BaseGeometry.tp_print = 0;
          |                                    ^
    src/_geoslib.c:5686:31: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’
     5686 |   __pyx_type_8_geoslib_Polygon.tp_print = 0;
          |                               ^
    src/_geoslib.c:5694:34: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’
     5694 |   __pyx_type_8_geoslib_LineString.tp_print = 0;
          |                                  ^
    src/_geoslib.c:5702:29: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’
     5702 |   __pyx_type_8_geoslib_Point.tp_print = 0;
          |                             ^
    src/_geoslib.c: In function ‘PyInit__geoslib’:
    src/_geoslib.c:5982:12: warning: passing argument 1 of ‘initGEOS’ from incompatible pointer type [-Wincompatible-pointer-types]
     5982 |   initGEOS(__pyx_f_8_geoslib_notice_h, __pyx_f_8_geoslib_error_h);
          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
          |            |
          |            void (*)(char *, char *)
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1671:24: note: expected ‘GEOSMessageHandler’ {aka ‘void (*)(const char *, ...)’} but argument is of type ‘void (*)(char *, char *)’
     1671 |     GEOSMessageHandler notice_function,
          |     ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
    src/_geoslib.c:5982:40: warning: passing argument 2 of ‘initGEOS’ from incompatible pointer type [-Wincompatible-pointer-types]
     5982 |   initGEOS(__pyx_f_8_geoslib_notice_h, __pyx_f_8_geoslib_error_h);
          |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~
          |                                        |
          |                                        void (*)(char *, char *)
    In file included from src/_geoslib.c:566:
    /home/rangke/tools/pkgs/geos/include/geos_c.h:1672:24: note: expected ‘GEOSMessageHandler’ {aka ‘void (*)(const char *, ...)’} but argument is of type ‘void (*)(char *, char *)’
     1672 |     GEOSMessageHandler error_function);
          |     ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
    src/_geoslib.c: In function ‘__Pyx_ParseOptionalKeywords’:
    src/_geoslib.c:6732:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6732 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6732:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6732 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6732:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6732 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6732:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6732 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6732:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6732 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6732:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6732 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6748:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6748 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6748:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6748 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6748:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6748 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6748:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6748 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6748:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6748 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/_geoslib.c:6748:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6748 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:106,
                     from src/_geoslib.c:4:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    error: Command "gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fno-semantic-interposition -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/home/rangke/tools/pkgs/geos/include -I/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include -I/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.9/numpy/distutils/include -I/home/rangke/py_vrt/include -I/usr/include/python3.9 -c src/_geoslib.c -o build/temp.linux-x86_64-3.9/src/_geoslib.o -MMD -MF build/temp.linux-x86_64-3.9/src/_geoslib.o.d -msse -msse2 -msse3" failed with exit status 1

    ########### EXT COMPILER OPTIMIZATION ###########
    Platform      :
      Architecture: x64
      Compiler    : gcc

    CPU baseline  :
      Requested   : 'min'
      Enabled     : SSE SSE2 SSE3
      Flags       : -msse -msse2 -msse3
      Extra checks: none

    CPU dispatch  :
      Requested   : 'max -xop -fma4'
      Enabled     : SSSE3 SSE41 POPCNT SSE42 AVX F16C FMA3 AVX2 AVX512F AVX512CD AVX512_KNL AVX512_KNM AVX512_SKX AVX512_CLX AVX512_CNL AVX512_ICL
      Generated   : none
    CCompilerOpt._cache_write[796] : write cache to path -> /tmp/pip-req-build-q4etjjlp/build/temp.linux-x86_64-3.9/ccompiler_opt_cache_ext.py
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/rangke/py_vrt/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-q4etjjlp/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-q4etjjlp/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-db3v2pk6/install-record.txt --single-version-externally-managed --compile --install-headers /home/rangke/py_vrt/include/site/python3.9/basemap Check the logs for full command output.
molinav commented 2 years ago

This could be caused by the too-outdated _geoslib.c file in src. You could try to go to this line of the setup file and replace _geoslib.c with _geoslib.pyx. This way Python should generate the GEOS C file at build time.

wreckdump commented 2 years ago

Thank you for your reply. I did what you have suggested, and I got the following error message.

    ERROR: Command errored out with exit status 1:
     command: /home/rangke/py_vrt/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/rangke/testsite/basemap/setup.py'"'"'; __file__='"'"'/home/rangke/testsite/basemap/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
         cwd: /home/rangke/testsite/basemap/
    Complete output (49 lines):
    running develop
    running build_scripts
    running egg_info
    running build_src
    build_src
    building extension "_geoslib" sources
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/rangke/testsite/basemap/setup.py", line 130, in <module>
        setup(
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/core.py", line 169, in setup
        return old_setup(**new_attr)
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/usr/lib/python3.9/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.9/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/setuptools/command/develop.py", line 34, in run
        self.install_for_development()
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/develop.py", line 15, in install_for_development
        old_develop.install_for_development(self)
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/setuptools/command/develop.py", line 132, in install_for_development
        self.run_command('egg_info')
      File "/usr/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/egg_info.py", line 24, in run
        self.run_command("build_src")
      File "/usr/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/build_src.py", line 144, in run
        self.build_sources()
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/build_src.py", line 161, in build_sources
        self.build_extension_sources(ext)
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/build_src.py", line 324, in build_extension_sources
        sources, py_files = self.filter_py_files(sources)
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/build_src.py", line 391, in filter_py_files
        return self.filter_files(sources, ['.py'])
      File "/home/rangke/py_vrt/lib/python3.9/site-packages/numpy/distutils/command/build_src.py", line 400, in filter_files
        (base, ext) = os.path.splitext(source)
      File "/usr/lib/python3.9/posixpath.py", line 118, in splitext
        p = os.fspath(p)
    TypeError: expected str, bytes or os.PathLike object, not list
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/rangke/py_vrt/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/rangke/testsite/basemap/setup.py'"'"'; __file__='"'"'/home/rangke/testsite/basemap/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps Check the logs for full command output.
molinav commented 2 years ago

Can you provide me the following information so that I can try to reproduce the problem?

wreckdump commented 2 years ago

Can you provide me the following information so that I can try to reproduce the problem?

* Operating System.

* Python version (I guess 3.9 from the logs).

* NumPy version.

* Cython version.

OS : Arch Linux (kernel 5.14.12) Python : 3.9.7 Numpy : 1.12.3 Cython 0.29.24

molinav commented 2 years ago

I do not find any NumPy 1.12.3 in PyPI, do you refer to 1.21.3 (the latest available at the moment)?

wreckdump commented 2 years ago

I do not find any NumPy 1.12.3 in PyPI, do you refer to 1.21.3 (the latest available at the moment)?

Yeah, sorry that was a typo. Version 1.21.3 is correct.

molinav commented 2 years ago

Thanks for the confirmation. Now I could reach the same point as you in a Docker container, I am getting the same error. Give me some time to find out what is going wrong.

molinav commented 2 years ago

As fast workaround:

  1. Revert what I told you about the setup file, i.e. write back the _geoslib.c reference.
  2. Delete src/_geoslib.c (or move it e.g. to src/_geoslib.c.bak).
  3. Go to src and run cythonize _geoslib.pyx. This will create you the new _geoslib.c file.
  4. Go to the basemap top-level folder and now create the wheel (python setup.py bdist_wheel), which will be stored in dist. If the bdist_wheel command is not recognised, run first pip install wheel.
  5. Install the basemap wheel file with pip install dist/basemap-1.2.2+dev-cp39-cp39-linux_x86_64.whl.
wreckdump commented 2 years ago

It worked! Thank you! What was the problem? Was it the _geoslib.c being too outdated?

molinav commented 2 years ago

Yes, it was the same problem as in #518, the setup script really needs some improvement.

wreckdump commented 2 years ago

Ah.. thanks!