From 2f5d028a3bdf5fe77dbb52806e45a58a3becf23d Mon Sep 17 00:00:00 2001 From: DanielZhao0432 Date: Wed, 28 Oct 2026 14:21:25 +0800 Subject: [PATCH] CMake: accept renamed libmtblasfftdev.a from mtfftblas_v1.4.1c for DSP builds mtfftblas_v1.4.1c renamed libmtblasdev.a to libmtblasfftdev.a, breaking the hardcoded archive name in the USE_DSP link list. Look the library up with find_library using both names (new name first, old name as fallback) and fail with a clear diagnostic when neither exists. Fixes #8227 --- source/CMakeLists.txt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d849396a7d0..7bda9081e06 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -238,8 +238,18 @@ endif() # the standalone BLAS/LAPACK/ScaLAPACK above so that the linker resolves the # BLAS symbols from the standalone BLAS instead of the bundled copy. if(USE_DSP) + # mtfftblas_v1.4.1c renamed libmtblasdev.a to libmtblasfftdev.a; accept both. + find_library(MTBLASDEV_LIB + NAMES mtblasfftdev mtblasdev + PATHS ${MTBLAS_FFT_DIR}/libmtblas/lib + NO_DEFAULT_PATH) + if(NOT MTBLASDEV_LIB) + message(FATAL_ERROR + "USE_DSP requires libmtblasfftdev.a (mtfftblas >= v1.4.1c) or libmtblasdev.a " + "under ${MTBLAS_FFT_DIR}/libmtblas/lib, but neither was found.") + endif() list(APPEND _abacus_linalg_libs ${MTBLAS_FFT_DIR}/libmtblas/lib/libmtblas.a - ${MTBLAS_FFT_DIR}/libmtblas/lib/libmtblasdev.a + ${MTBLASDEV_LIB} ${MTBLAS_FFT_DIR}/libmtblas/lib/libmtfft.a) endif()