Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Numpy 1.24 breaks compiling Slycot #187

Closed
bnavigator opened this issue Dec 18, 2022 · 3 comments · Fixed by python-control/python-control#818 or #189
Closed

Numpy 1.24 breaks compiling Slycot #187

bnavigator opened this issue Dec 18, 2022 · 3 comments · Fixed by python-control/python-control#818 or #189

Comments

@bnavigator
Copy link
Collaborator

Numpy 1.24.0 came out a few hours ago and broke compiling the Fortran wrappers.

ben@skylab:~/src/Slycot]% pip wheel .                                                                                                                             [0]
Processing /home/ben/src/Slycot
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy
  Using cached numpy-1.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
Saved ./numpy-1.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Building wheels for collected packages: slycot
  Building wheel for slycot (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for slycot (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [594 lines of output]
      
      
      --------------------------------------------------------------------------------
      -- Trying "Ninja" generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
      -- Configuring incomplete, errors occurred!
      See also "/home/ben/src/Slycot/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying "Ninja" generator - failure
      --------------------------------------------------------------------------------
      
      
      
      --------------------------------------------------------------------------------
      -- Trying "Unix Makefiles" generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      -- The C compiler identification is GNU 12.2.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The Fortran compiler identification is GNU 12.2.1
      -- Detecting Fortran compiler ABI info
      -- Detecting Fortran compiler ABI info - done
      -- Check for working Fortran compiler: /usr/bin/gfortran - skipped
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /home/ben/src/Slycot/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying "Unix Makefiles" generator - success
      --------------------------------------------------------------------------------
      
      Configuring Project
        Working directory:
          /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build
        Command:
          cmake /home/ben/src/Slycot -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX:PATH=/home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-install -DPYTHON_VERSION_STRING:STRING=3.10.9 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.10 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPYTHON_LIBRARY:PATH=/usr/lib64/libpython3.10.so -DPython_EXECUTABLE:PATH=/usr/bin/python3.10 -DPython_ROOT_DIR:PATH=/usr -DPython_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPython_FIND_REGISTRY:STRING=NEVER -DPython_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3.10 -DPython3_ROOT_DIR:PATH=/usr -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.10 -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include -DCMAKE_BUILD_TYPE:STRING=Release
      
      -- The C compiler identification is GNU 12.2.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The Fortran compiler identification is GNU 12.2.1
      -- Detecting Fortran compiler ABI info
      -- Detecting Fortran compiler ABI info - done
      -- Check for working Fortran compiler: /usr/bin/gfortran - skipped
      -- Found Python: /usr/bin/python3.10 (found version "3.10.9") found components: Interpreter Development NumPy Development.Module Development.Embed
      -- Found PythonInterp: /usr/bin/python3.10 (found version "3.10.9")
      -- Found PythonLibs: /usr/lib64/libpython3.10.so (found version "3.10.9")
      -- Found NumPy: /tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include (found version "1.24.0")
      -- Found F2PY: /tmp/pip-build-env-_7jfm_0f/overlay/bin/f2py3 (found version "1.24.0")
      -- Looking for Fortran sgemm
      -- Looking for Fortran sgemm - not found
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE
      -- Looking for Fortran sgemm
      -- Looking for Fortran sgemm - found
      -- Found BLAS: /usr/lib64/libblas.so
      -- Looking for Fortran cheev
      -- Looking for Fortran cheev - not found
      -- Looking for Fortran cheev
      -- Looking for Fortran cheev - found
      -- Found LAPACK: /usr/lib64/liblapack.so;/usr/lib64/libblas.so
      -- Python headers included from: /usr/include/python3.10
      -- NumPy headers included from: /tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include
      -- F2PY headers included from: /tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/f2py/src;/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/core/include
      -- LAPACK: /usr/lib64/liblapack.so;/usr/lib64/libblas.so
      -- BLAS: /usr/lib64/libblas.so
      -- Performing Test Weak Link MODULE -> SHARED (gnu_ld_ignore) - Success
      _modinit_prefix:PyInit_
      -- Configuring done
      -- Generating done
      CMake Warning:
        Manually-specified variables were not used by the project:
      
          Python3_EXECUTABLE
          Python3_FIND_REGISTRY
          Python3_INCLUDE_DIR
          Python3_NumPy_INCLUDE_DIRS
          Python3_ROOT_DIR
          SKBUILD
      
      
      -- Build files have been written to: /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build
      [  0%] Building C object CMakeFiles/_f2py_runtime_library.dir/tmp/pip-build-env-_7jfm_0f/overlay/lib64/python3.10/site-packages/numpy/f2py/src/fortranobject.c.o
      [  0%] Linking C static library lib_f2py_runtime_library.a
      [  0%] Built target _f2py_runtime_library
      [  0%] Built target wrapper
      [  0%] Generating _wrappermodule.c, _wrapper-f2pywrappers.f
      Reading fortran codes...
          Reading file '/home/ben/src/Slycot/slycot/src/_wrapper.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/analysis.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/math.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/synthesis.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/transform.pyf' (format:free)
          Reading file '/home/ben/src/Slycot/slycot/src/_helper.pyf' (format:free)
      Post-processing...
          Block: SLYCOT
                          Block: _wrapper
                                          Block: ab01nd
                                          Block: ab05md
                                          Block: ab05nd
                                          Block: ab07nd
                                          Block: ab08nd
                                          Block: ab08nz
                                          Block: ab09ad
                                          Block: ab09ax
                                          Block: ab09bd
                                          Block: ab09md
                                          Block: ab09nd
                                          Block: ab13bd
                                          Block: ab13dd
                                          Block: ab13md
                                          Block: ab13ed
                                          Block: ab13fd
                                          Block: ag08bd
                                          Block: mc01td
                                          Block: mb03rd
                                          Block: mb03vd
                                          Block: mb03vy
                                          Block: mb03wd
                                          Block: mb05md
                                          Block: mb05nd
                                          Block: sb01bd
                                          Block: sb02md
                                          Block: sb02od_n
                                          Block: sb02od_c
                                          Block: sb02od_d
                                          Block: sb02od_b
                                          Block: sb02mt_n
                                          Block: sb02mt_c
                                          Block: sb02mt_nl
                                          Block: sb02mt_cl
                                          Block: sb03md
                                          Block: sb03od
                                          Block: sb04md
                                          Block: sb04qd
                                          Block: sb10ad
                                          Block: sb10dd
                                          Block: sb10fd
                                          Block: sb10hd
                                          Block: sb10jd
                                          Block: sg03ad
                                          Block: sg02ad_g
                                          Block: sg02ad_bn
                                          Block: sg02ad_bc
                                          Block: sg02ad_bd
                                          Block: sg02ad_bb
                                          Block: sg03bd
                                          Block: tb01id
                                          Block: tb03ad_l
                                          Block: tb03ad_r
                                          Block: tb04ad_r
                                          Block: tb04ad_c
                                          Block: tb05ad_ag
                                          Block: tb05ad_ng
                                          Block: tb05ad_nh
                                          Block: tc01od_l
                                          Block: tc01od_r
                                          Block: tc04ad_l
                                          Block: tc04ad_r
                                          Block: td04ad_r
                                          Block: td04ad_c
                                          Block: tf01md
                                          Block: tf01rd
                                          Block: tb01pd
                                          Block: tg01ad
                                          Block: tg01fd_nn
                                          Block: tg01fd_ii
                                          Block: tg01fd_uu
                                          Block: ftruefalse
                                          Block: xerbla
      Applying post-processing hooks...
        character_backward_compatibility_hook
      Post-processing (stage 2)...
      Building modules...
          Building module "_wrapper"...
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab01nd"...
                a,b,ncont,indcon,nblk,z,tau,info = ab01nd(jobz,n,m,a,b,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab05md"...
                n,a,b,c,d,info = ab05md(n1,m1,p1,n2,p2,a1,b1,c1,d1,a2,b2,c2,d2,[uplo,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab05nd"...
                n,a,b,c,d,info = ab05nd(n1,m1,p1,n2,alpha,a1,b1,c1,d1,a2,b2,c2,d2,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab07nd"...
                a,b,c,d,rcond,info = ab07nd(n,m,a,b,c,d,[ldwork,overwrite_a,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab08nd"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nu,rank_bn,dinfz,nkror,nkrol,infz,kronr,kronl,af,bf,info = ab08nd(n,m,p,a,b,c,d,[equil,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab08nz"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nu,rank_bn,dinfz,nkror,nkrol,infz,kronr,kronl,af,bf,zwork,info = ab08nz(n,m,p,a,b,c,d,[equil,tol,lzwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09ad"...
                nr,a,b,c,hsv,iwarn,info = ab09ad(dico,job,equil,ordsel,n,m,p,nr,a,b,c,[tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09ax"...
                nr,a,b,c,hsv,t,ti,iwarn,info = ab09ax(dico,job,ordsel,n,m,p,nr,a,b,c,[tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09bd"...
                nr,a,b,c,d,hsv,iwarn,info = ab09bd(dico,job,equil,ordsel,n,m,p,nr,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09md"...
                nr,a,b,c,ns,hsv,iwarn,info = ab09md(dico,job,equil,ordsel,n,m,p,nr,alpha,a,b,c,[tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab09nd"...
                nr,a,b,c,d,ns,hsv,iwarn,info = ab09nd(dico,job,equil,ordsel,n,m,p,nr,alpha,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
                  Creating wrapper for Fortran function "ab13bd"("ab13bd")...
              Constructing wrapper function "ab13bd"...
                ab13bd,nq,iwarn,info = ab13bd(dico,jobn,n,m,p,a,b,c,d,tol)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13dd"...
                fpeak,gpeak,info = ab13dd(dico,jobe,equil,jobd,n,m,p,fpeak,a,e,b,c,d,[tol])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13md"...
                x,bound,d,g,info = ab13md(fact,z,nblock,itype,x)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13ed"...
                low,high,info = ab13ed(n,a,[tol])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ab13fd"...
                beta,omega,info = ab13fd(n,a,[tol])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ag08bd"...
                a,e,nfz,nrank,niz,dinfz,nkror,ninfe,nkrol,infz,kronr,infe,kronl,info = ag08bd(equil,l,n,m,p,a,e,b,c,d,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c,overwrite_d])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mc01td"...
                dp,stable,nz,iwarn,info = mc01td(dico,dp,p)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03rd"...
                a,x,nblcks,blsize,wr,wi,info = mb03rd(jobx,sort,n,pmax,a,x,tol,[overwrite_a,overwrite_x])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03vd"...
                a,tau,info = mb03vd(n,ilo,ihi,a,[overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03vy"...
                a,info = mb03vy(n,ilo,ihi,a,tau,[ldwork,overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb03wd"...
                h,z,wr,wi,info = mb03wd(job,compz,n,ilo,ihi,iloz,ihiz,h,z,[ldwork,overwrite_h,overwrite_z])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb05md"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                a,v,y,valr,vali,info = mb05md(balanc,n,delta,a,[overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "mb05nd"...
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check n>=0)" is mapped to C "int" (to override define dict(integer = dict(check n>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check m>=0)" is mapped to C "int" (to override define dict(integer = dict(check m>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
      getctype: "integer(kind=check p>=0)" is mapped to C "int" (to override define dict(integer = dict(check p>=0="<C typespec>")) in /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/.f2py_f2cmap file).
                ex,exint,info = mb05nd(n,delta,a,tol,[overwrite_ex,overwrite_exint])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb01bd"...
                a,wr,wi,nfp,nap,nup,f,z,iwarn,info = sb01bd(dico,n,m,np,alpha,a,b,wr,wi,[tol,ldwork,overwrite_a,overwrite_wr,overwrite_wi])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02md"...
                a,q,rcond,wr,wi,s,u,info = sb02md(dico,n,a,g,q,[hinv,uplo,scal,sort,ldwork,overwrite_a])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_n"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_n(dico,n,m,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_c"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_c(dico,n,m,p,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_d"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_d(dico,n,m,p,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02od_b"...
                rcond,x,alfar,alfai,beta,s,t,info = sb02od_b(dico,n,m,p,a,b,q,r,l,[uplo,jobl,sort,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_n"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_n(n,m,b,r,[uplo,ldwork,overwrite_b,overwrite_r])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_c"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_c(n,m,b,r,[uplo,overwrite_b,overwrite_r])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_nl"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_nl(n,m,a,b,q,r,l,[uplo,ldwork,overwrite_a,overwrite_b,overwrite_q,overwrite_r,overwrite_l])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb02mt_cl"...
                a,b,q,r,l,ipiv,oufact,g,info = sb02mt_cl(n,m,a,b,q,r,l,[uplo,overwrite_a,overwrite_b,overwrite_q,overwrite_r,overwrite_l])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb03md"...
                a,u,c,scale,sep,ferr,wr,wi,info = sb03md(dico,n,a,u,c,[job,fact,trana,ldwork,overwrite_a,overwrite_u,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb03od"...
                b,scale,wr,wi,info = sb03od(dico,n,m,a,q,b,[fact,trans,ldwork,overwrite_b])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb04md"...
                a,b,c,z,info = sb04md(n,m,a,b,c,[ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb04qd"...
                a,b,c,z,info = sb04qd(n,m,a,b,c,[ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10ad"...
                gamma,ak,bk,ck,dk,ac,bc,cc,dc,rcond,info = sb10ad(job,n,m,np,ncon,nmeas,gamma,a,b,c,d,[gtol,actol,liwork,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10dd"...
                gamma,ak,bk,ck,dk,x,z,rcond,info = sb10dd(n,m,np,ncon,nmeas,gamma,a,b,c,d,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10fd"...
                ak,bk,ck,dk,rcond,info = sb10fd(n,m,np,ncon,nmeas,gamma,a,b,c,d,tol,ldwork)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10hd"...
                ak,bk,ck,dk,rcond,info = sb10hd(n,m,np,ncon,nmeas,a,b,c,d,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sb10jd"...
                a,b,c,d,nsys,info = sb10jd(n,m,np,a,b,c,d,e,ldwork,[overwrite_a,overwrite_b,overwrite_c,overwrite_d,overwrite_e])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg03ad"...
                a,e,q,z,x,scale,sep,ferr,alphar,alphai,beta,info = sg03ad(dico,job,fact,trans,uplo,n,a,e,q,z,x,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_g"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_g(dico,uplo,sort,acc,n,a,e,b,q,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bn"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bn(dico,uplo,jobl,scal,sort,acc,n,m,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bc"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bc(dico,jobl,scal,sort,acc,n,m,p,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bd"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bd(dico,jobl,scal,sort,acc,n,m,p,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg02ad_bb"...
                rcondu,x,alfar,alfai,beta,s,t,u,iwarn,info = sg02ad_bb(dico,jobl,scal,sort,acc,n,m,p,a,e,b,q,r,l,[tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "sg03bd"...
                b,scale,alphar,alphai,beta,info = sg03bd(dico,n,m,a,e,q,z,b,[fact,trans,ldwork,overwrite_b])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb01id"...
                maxred,a,b,c,scale,info = tb01id(n,m,p,maxred,a,b,c,[job,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb03ad_l"...
                a,b,c,nr,index_bn,pcoeff,qcoeff,vcoeff,info = tb03ad_l(n,m,p,a,b,c,d,[equil,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb03ad_r"...
                a,b,c,nr,index_bn,pcoeff,qcoeff,vcoeff,info = tb03ad_r(n,m,p,a,b,c,d,[equil,tol,ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb04ad_r"...
                a,b,c,nr,index_bn,dcoeff,ucoeff,info = tb04ad_r(n,m,p,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb04ad_c"...
                a,b,c,nr,index_bn,dcoeff,ucoeff,info = tb04ad_c(n,m,p,a,b,c,d,[tol1,tol2,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb05ad_ag"...
                a,b,c,rcond,g,evre,evim,hinvb,info = tb05ad_ag(n,m,p,freq,a,b,c,[ldwork,lzwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb05ad_ng"...
                a,b,c,g,hinvb,info = tb05ad_ng(n,m,p,freq,a,b,c,[ldwork,lzwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb05ad_nh"...
                g,hinvb,info = tb05ad_nh(n,m,p,freq,a,b,c,[ldwork,lzwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc01od_l"...
                pcoeff,qcoeff,info = tc01od_l(m,p,indlim,pcoeff,qcoeff)
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc01od_r"...
                info = tc01od_r(p,indlim,pcoeff,qcoeff,[m])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc04ad_l"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                n,rcond,a,b,c,d,info = tc04ad_l(m,p,index_bn,pcoeff,qcoeff,n,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tc04ad_r"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                n,rcond,a,b,c,d,info = tc04ad_r(m,p,index_bn,pcoeff,qcoeff,n,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "td04ad_r"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nr,a,b,c,d,info = td04ad_r(m,p,index_bn,dcoeff,ucoeff,nr,[tol,ldwork,overwrite_dcoeff,overwrite_ucoeff])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "td04ad_c"...
      getarrdims:warning: assumed shape array, using 0 instead of '*'
      getarrdims:warning: assumed shape array, using 0 instead of '*'
                nr,a,b,c,d,info = td04ad_c(m,p,index_bn,dcoeff,ucoeff,nr,[tol,ldwork,overwrite_dcoeff,overwrite_ucoeff])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tf01md"...
                x,y,info = tf01md(n,m,p,ny,a,b,c,d,u,x,[overwrite_x])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tf01rd"...
                h,info = tf01rd(na,nb,nc,n,a,b,c,[ldwork])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tb01pd"...
                a,b,c,nr,info = tb01pd(n,m,p,a,b,c,[job,equil,tol,ldwork,overwrite_a,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01ad"...
                a,e,b,c,lscale,rscale,info = tg01ad(job,l,n,m,p,thresh,a,e,b,c,[overwrite_a,overwrite_e,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01fd_nn"...
                a,e,b,c,ranke,rnka22,info = tg01fd_nn(joba,l,n,m,p,a,e,b,c,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01fd_ii"...
                a,e,b,c,q,z,ranke,rnka22,info = tg01fd_ii(joba,l,n,m,p,a,e,b,c,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "tg01fd_uu"...
                a,e,b,c,q,z,ranke,rnka22,info = tg01fd_uu(joba,l,n,m,p,a,e,b,c,q,z,tol,ldwork,[overwrite_a,overwrite_e,overwrite_b,overwrite_c,overwrite_q,overwrite_z])
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "ftruefalse"...
                ftrue,ffalse = ftruefalse()
          Generating possibly empty wrappers"
          Maybe empty "_wrapper-f2pywrappers.f"
              Constructing wrapper function "xerbla"...
                xerbla(srname,info)
          Wrote C/API module "_wrapper" to file "./_wrappermodule.c"
          Fortran 77 wrappers are saved to "./_wrapper-f2pywrappers.f"
          Building module "SLYCOT"...
          Wrote C/API module "SLYCOT" to file "./SLYCOTmodule.c"
      [  0%] Building C object slycot/CMakeFiles/_wrapper.dir/_wrappermodule.c.o
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c: In Funktion »f2py_rout__wrapper_ab01nd«:
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:772:12: Fehler: ungültiger Typ »int« für unäres »*«
        772 |     ldz = (*jobz=='N' ? 1 : n);
            |            ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c: In Funktion »f2py_rout__wrapper_mb03rd«:
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:6864:18: Fehler: ungültiger Typ »int« für unäres »*«
       6864 |     CHECKSCALAR((*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n)),"(*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n))","hidden ldx","mb03rd:ldx=%d",ldx) {
            |                  ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:100:11: Anmerkung: in Definition des Makros »CHECKSCALAR«
        100 |     if (!(check)) {\
            |           ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:6864:46: Fehler: ungültiger Typ »int« für unäres »*«
       6864 |     CHECKSCALAR((*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n)),"(*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n))","hidden ldx","mb03rd:ldx=%d",ldx) {
            |                                              ^~~~~
      /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build/slycot/_wrappermodule.c:100:11: Anmerkung: in Definition des Makros »CHECKSCALAR«
        100 |     if (!(check)) {\
            |           ^~~~~
      gmake[2]: *** [slycot/CMakeFiles/_wrapper.dir/build.make:88: slycot/CMakeFiles/_wrapper.dir/_wrappermodule.c.o] Fehler 1
      gmake[1]: *** [CMakeFiles/Makefile2:171: slycot/CMakeFiles/_wrapper.dir/all] Fehler 2
      gmake: *** [Makefile:136: all] Fehler 2
      Traceback (most recent call last):
        File "/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/setuptools_wrap.py", line 640, in setup
          cmkr.make(make_args, install_target=cmake_install_target, env=env)
        File "/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/cmaker.py", line 684, in make
          self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
        File "/tmp/pip-build-env-_7jfm_0f/overlay/lib/python3.10/site-packages/skbuild/cmaker.py", line 715, in make_impl
          raise SKBuildError(
      
      An error occurred while building with CMake.
        Command:
          cmake --build . --target install --config Release --
        Install target:
          install
        Source directory:
          /home/ben/src/Slycot
        Working directory:
          /home/ben/src/Slycot/_skbuild/linux-x86_64-3.10/cmake-build
      Please check the install target is valid and see CMake's output for more information.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for slycot
Failed to build slycot
ERROR: Failed to build one or more wheels
[ben@skylab:~/src/Slycot]% pip list                                                                                                                                [1]

@roryyorke
Copy link
Collaborator

FWIW, with numpy 1.23.5, ab01nd builds, and its tests pass, with this diff, inspired by https://github.com/scipy/scipy/blob/main/scipy/linalg/flapack_gen.pyf.src#L534 which was noted as (eventually) working in the numpy PR for this.

diff --git a/slycot/src/analysis.pyf b/slycot/src/analysis.pyf
index 633ff6e..9945ca0 100644
--- a/slycot/src/analysis.pyf
+++ b/slycot/src/analysis.pyf
@@ -11,7 +11,7 @@ subroutine ab01nd(jobz,n,m,a,lda,b,ldb,ncont,indcon,nblk,z,ldz,tau,tol,iwork,dwo
     integer intent(out) :: indcon
     integer intent(out),dimension(n),depend(n) :: nblk
     double precision intent(out),dimension(ldz,n),depend(n,ldz) :: z
-    integer intent(hide),depend(n, jobz) :: ldz = (*jobz == 'N' ? 1 : n)
+    integer intent(hide),depend(n, jobz) :: ldz = (jobz == 'N' ? 1 : n)
     double precision intent(out),dimension(n),depend(n) :: tau
     double precision :: tol = 0
     integer intent(hide,cache),dimension(m),depend(m) :: iwork

There is something wrong with my setup, though, since with or without the above, test_xerbla_override fails.

I presume numpy 1.24 must be installed from PyPI, I haven't tried that yet.

@roryyorke
Copy link
Collaborator

hm, I was too hasty; maybe the tests are incomplete?

/home/rory/src/slycot/_skbuild/linux-x86_64-3.11/cmake-build/slycot/_wrappermodule.c:738:16: warning: comparison between pointer and integer
  738 |     ldz = (jobz=='N' ? 1 : n);

@roryyorke
Copy link
Collaborator

with this diff, both tests in test_mb03rd fail.

iff --git a/slycot/src/analysis.pyf b/slycot/src/analysis.pyf
index 633ff6e..9945ca0 100644
--- a/slycot/src/analysis.pyf
+++ b/slycot/src/analysis.pyf
@@ -11,7 +11,7 @@ subroutine ab01nd(jobz,n,m,a,lda,b,ldb,ncont,indcon,nblk,z,ldz,tau,tol,iwork,dwo
     integer intent(out) :: indcon
     integer intent(out),dimension(n),depend(n) :: nblk
     double precision intent(out),dimension(ldz,n),depend(n,ldz) :: z
-    integer intent(hide),depend(n, jobz) :: ldz = (*jobz == 'N' ? 1 : n)
+    integer intent(hide),depend(n, jobz) :: ldz = (jobz == 'N' ? 1 : n)
     double precision intent(out),dimension(n),depend(n) :: tau
     double precision :: tol = 0
     integer intent(hide,cache),dimension(m),depend(m) :: iwork
diff --git a/slycot/src/math.pyf b/slycot/src/math.pyf
index 7dc53ff..9ed94ed 100644
--- a/slycot/src/math.pyf
+++ b/slycot/src/math.pyf
@@ -20,7 +20,7 @@ subroutine mb03rd(jobx,sort,n,pmax,a,lda,x,ldx,nblcks,blsize,wr,wi,tol,dwork,inf
   double precision intent(in,out,copy),dimension(lda,n),depend(n) :: a
   integer intent(hide),check(lda>=max(1,n)),depend(a,n) :: lda=shape(a,0)
   double precision intent(in,out,copy),dimension(ldx,n),depend(n) :: x
-  integer intent(hide),check((*jobx == 'N' && ldx>=1) || (*jobx == 'U' && ldx >= max(1,n))),depend(x,n,jobx) :: ldx=shape(x,0)
+  integer intent(hide),check((jobx == 'N' && ldx>=1) || (jobx == 'U' && ldx >= max(1,n))),depend(x,n,jobx) :: ldx=shape(x,0)
   integer intent(out) :: nblcks
   integer intent(out),dimension(n) :: blsize
   double precision intent(out),dimension(n) :: wr

bnavigator added a commit to bnavigator/Slycot that referenced this issue Dec 19, 2022
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this issue Dec 21, 2022
https://build.opensuse.org/request/show/1044040
by user bnavigator + dimstar_suse
- Update to 0.5.3
  * This patch release updates the build system to be compatible
    with NumPy 1.24.0 -- gh#python-control/Slycot#187
- Drop rpmlintc: python-tests-in-package has been dropped
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants