diff --git a/cmake/fc.cmake b/cmake/fc.cmake index 8798ce8b4c..db818e4a03 100644 --- a/cmake/fc.cmake +++ b/cmake/fc.cmake @@ -61,21 +61,25 @@ if (${F_COMPILER} STREQUAL "GFORTRAN" OR ${F_COMPILER} STREQUAL "F95" OR CMAKE_F endif () if (LOONGARCH64) if (BINARY64) - CHECK_C_COMPILER_FLAG("-mabi=lp64d" COMPILER_SUPPORT_LP64D_ABI) - if(COMPILER_SUPPORT_LP64D_ABI) - set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64d") - else() - set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64") - endif () + if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*") + CHECK_C_COMPILER_FLAG("-mabi=lp64d" COMPILER_SUPPORT_LP64D_ABI) + if(COMPILER_SUPPORT_LP64D_ABI) + set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64d") + else() + set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64") + endif () + endif () if (INTERFACE64) set(FCOMMON_OPT "${FCOMMON_OPT} -fdefault-integer-8") endif () else () - CHECK_C_COMPILER_FLAG("-mabi=ilp32d" COMPILER_SUPPORT_ILP32D_ABI) - if(COMPILER_SUPPORT_ILP32D_ABI) - set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=ilp32d") - else() - set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp32") + if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*") + CHECK_C_COMPILER_FLAG("-mabi=ilp32d" COMPILER_SUPPORT_ILP32D_ABI) + if(COMPILER_SUPPORT_ILP32D_ABI) + set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=ilp32d") + else() + set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp32") + endif () endif () endif () endif ()