From 04e1b3c9db019d2052c41401f54b27035065e594 Mon Sep 17 00:00:00 2001 From: Franck HOUSSEN Date: Sat, 13 Aug 2022 10:29:25 +0200 Subject: [PATCH] parpack: no ILP64 support. --- .github/workflows/jobs.yml | 2 +- CHANGES | 1 + CMakeLists.txt | 8 ++------ README.md | 1 + configure.ac | 8 ++------ 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.github/workflows/jobs.yml b/.github/workflows/jobs.yml index 0a7a2b0..41ccaff 100644 --- a/.github/workflows/jobs.yml +++ b/.github/workflows/jobs.yml @@ -153,7 +153,7 @@ jobs: - name: Run job run: | ./bootstrap - ./configure --enable-mpi --enable-icb --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64 + ./configure --enable-icb --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64 make all make check env: diff --git a/CHANGES b/CHANGES index c5167c4..bd924f3 100644 --- a/CHANGES +++ b/CHANGES @@ -30,6 +30,7 @@ arpack-ng - 3.9.0 * [BUG FIX] Make sure iseed is always initialized to values allowed by lapack ?larnv. * [BUG FIX] According to lapack doc of ?larnv, iseed(4) must be odd. * [BUG FIX] Use MPI ICB types (mpi_f08) instead of integer(kind=i_int). +* parpack: no ILP64 support. [ Haoyang Liu ] * CMake: minimum required version changed to 3.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d6c386..d1041a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,13 +406,9 @@ if (INTERFACE64) message(WARNING "build script does not know how to make your Fortran compiler use 64-bit integers: set it manually via FFLAGS.") endif () - # Compiling with INTERFACE64 means you need to have control on integer type. - # If MPI is also required, then MPI types must be consistent with ILP64: - # to make sure of this, we must use the ISO_C_BINDING API provided by MPI. + # TODO: this needs full re-write of parpack to support ILP64... if (MPI) - if (NOT HAVE_MPI_ICB) - message(FATAL_ERROR "ILP64 support require use of MPI library which provides ISO_C_BINDING support.") - endif() + message(FATAL_ERROR "Parallel arpack does not support ILP64.") endif() else () set(INTERFACE64 0) diff --git a/README.md b/README.md index 045a530..5578735 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Important Features: * arpackmm: utility to test arpack with matrix market files. Note: to run this utility, you need the eigen library (to handle RCI). * ILP64 support: + * Sequential arpack supports ILP64, but, parallel arpack doesn't. * reminder: you can NOT mix ILP64 with LP64. If you compile arpack-ng with ILP64 (resp. LP64) support, you MUST insure your BLAS/LAPACK is compliant with ILP64 (resp. LP64). diff --git a/configure.ac b/configure.ac index be93960..52e0a87 100644 --- a/configure.ac +++ b/configure.ac @@ -190,14 +190,10 @@ AS_IF([test x"$enable_mpi" != x"no"], [ AC_LANG_POP([Fortran]) ]) -dnl Compiling with INTERFACE64 means you need to have control on integer type. -dnl If MPI is also required, then MPI types must be consistent with ILP64: -dnl to make sure of this, we must use the ISO_C_BINDING API provided by MPI. +dnl TODO: this needs full re-write of parpack to support ILP64... if test x"$INTERFACE64" == x"1"; then if test x"$enable_mpi" != x"no"; then - if test x"$enable_mpi_icb" == x"no"; then - AC_MSG_ERROR([ILP64 support require use of MPI library which provides ISO_C_BINDING support]) - fi + AC_MSG_ERROR([Parallel arpack does not support ILP64.]) fi fi