diff --git a/Makefile.system b/Makefile.system index 9587ce4d3..7bae72855 100644 --- a/Makefile.system +++ b/Makefile.system @@ -1720,8 +1720,8 @@ LAPACK_FFLAGS := $(filter-out -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx override FFLAGS := $(filter-out -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 ,$(FFLAGS)) endif ifeq ($(F_COMPILER),FLANGNEW) -LAPACK_FFLAGS := $(filter-out -m32 -m64 -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 -mtune=% ,$(FFLAGS)) -override FFLAGS := $(filter-out -m32 -m64 -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 -mtune=% ,$(FFLAGS)) +LAPACK_FFLAGS := $(filter-out -m32 -m64 -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 -mtune=% -mabi=% ,$(FFLAGS)) +override FFLAGS := $(filter-out -m32 -m64 -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 -mtune=% -mabi=% ,$(FFLAGS)) endif LAPACK_CFLAGS = $(CFLAGS) diff --git a/cmake/fc.cmake b/cmake/fc.cmake index 8798ce8b4..db818e4a0 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 () diff --git a/common_loongarch64.h b/common_loongarch64.h index 367e5df18..2b48450a2 100644 --- a/common_loongarch64.h +++ b/common_loongarch64.h @@ -281,9 +281,13 @@ REALNAME: ;\ #define GNUSTACK #endif /* defined(__linux__) && defined(__ELF__) */ +#ifdef __clang__ +#define EPILOGUE .end +#else #define EPILOGUE \ .end REALNAME ;\ GNUSTACK +#endif #define PROFCODE