# PETSc configure does not allow mkl_sparse in Cygwin on Windows

I'm trying to use PETSc's AIJMKL sparse matrix in Windows. I'm configuring and building under Cygwin but using it directly in Windows (libpetsc.lib and libpetsc.dll are linked to my Win32 application). The PETSc version is 3.13.1. I've been able to link with MKL and use it successfully with

./configure --with-cc="win32fe cl" --with-cxx="win32fe cl" --with-fc=0 --with-blaslapack-lib="$$MKLROOT/lib/intel64/mkl_intel_lp64_dll.lib$$MKLROOT/lib/intel64/mkl_intel_thread_dll.lib $$MKLROOT/lib/intel64/mkl_core_dll.lib$$MKLROOT/../windows/redist/intel64/compiler/libiomp5md.lib" --with-blaslapack-include=\$MKLROOT/include --with-memalign=64 --with-mpi-include=/cygdrive/c/PROGRA~2/MICROS~3/MPI/Include --with-mpi-lib=/cygdrive/c/PROGRA~2/MICROS~3/MPI/Lib/x64/msmpi.lib  --with-mpi-mpiexec=/cygdrive/c/PROGRA~1/MICROS~3/Bin/mpiexec CFLAGS="-MD -wd4996" CXXFLAGS="-MD -wd4996" COPTFLAGS="-O2" CXXOPTFLAGS="-O2" --with-debugging=0


However, this does not enable the AIJMKL matrix type. When I add the flag --with-mkl_sparse, configure fails with

Cannot use mkl_sparse with 64 bit BLAS/Lapack indices


I tried adding --with-64-bit-blas-indices=0 but it still does not work. I used the MKL link line advisor and selected the 32-bit interface, so I expected PETSc to detect that it's a 32-bit integer BLAS/Lapack library. Any pointers on how to get MKL's sparse matrix vector product in PETSc would be much appreciated.

• Your question is asking how to fix a problem that you are having with a specific package, so it is off-topic. – nicoguaro Aug 11 '20 at 15:29