Source: scalapack Version: 2.2.1-2 Severity: serious Hi,
I'm building a package that can use scalapack; it uses cmake as build system and fails configuring as such: |dh_auto_configure -- \ | -DCMAKE_BUILD_TYPE= \ | -DBUILD_SHARED_LIBS=NO \ | -DBUILD_TESTING=YES \ | -DENABLE_SCALAPACK_MPI=YES | cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb cmake |-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None |-DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var |-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON |-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF |-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON |-DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run |"-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON |-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_BUILD_TYPE= |-DBUILD_SHARED_LIBS=NO -DBUILD_TESTING=YES -DENABLE_SCALAPACK_MPI=YES .. |-- Setting build type to Release as none was set |-- Will use the mpi_f08 Fortran module |CMake Error at |/usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets.cmake:93 |(message): | The imported target "scalapack" references the file | | "/usr/lib/libscalapack-openmpi.so.2.2.1" | | but this file does not exist. Possible reasons include: | | * The file was deleted, renamed, or moved to another location. | | * An install or uninstall procedure did not complete successfully. | | * The installation package was faulty and contained | | "/usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets.cmake" | | but not all the files it references. | |Call Stack (most recent call first): | /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-config.cmake:2 |(include) | CMakeLists.txt:61 (find_package) Looking at /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake it does not take multiarch into account: |# grep PREFIX.*openmpi /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake | IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1" |list(APPEND _cmake_import_check_files_for_scalapack "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1" ) If I add (see attached patch), the build goes fine. I have not looked so far at what it would take to change in the scalapack build system to fix this. Michael -- System Information: Debian Release: 10.13 APT prefers oldoldstable-updates APT policy: (500, 'oldoldstable-updates'), (500, 'oldoldstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-22-amd64 (SMP w/2 CPU cores) Kernel taint flags: TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
--- /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake 2023-09-15 11:27:13.423032655 +0000 +++ /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake.new 2023-09-15 11:26:56.347447809 +0000 @@ -8,12 +8,12 @@ # Import target "scalapack" for configuration "None" set_property(TARGET scalapack APPEND PROPERTY IMPORTED_CONFIGURATIONS NONE) set_target_properties(scalapack PROPERTIES - IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1" + IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}/libscalapack-openmpi.so.2.2.1" IMPORTED_SONAME_NONE "libscalapack-openmpi.so.2.2" ) list(APPEND _cmake_import_check_targets scalapack ) -list(APPEND _cmake_import_check_files_for_scalapack "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1" ) +list(APPEND _cmake_import_check_files_for_scalapack "${_IMPORT_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}/libscalapack-openmpi.so.2.2.1" ) # Commands beyond this point should not need to know the version. set(CMAKE_IMPORT_FILE_VERSION)