Merge pull request #4915 from martin-frbg/issue4907
Support LoongArch64 compilation with LLVM
This commit is contained in:
commit
68eefe60b9
|
@ -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))
|
override FFLAGS := $(filter-out -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 ,$(FFLAGS))
|
||||||
endif
|
endif
|
||||||
ifeq ($(F_COMPILER),FLANGNEW)
|
ifeq ($(F_COMPILER),FLANGNEW)
|
||||||
LAPACK_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=% ,$(FFLAGS))
|
override FFLAGS := $(filter-out -m32 -m64 -msse3 -mssse3 -msse4.1 -mavx -mavx2 -mskylake-avx512 -mtune=% -mabi=% ,$(FFLAGS))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LAPACK_CFLAGS = $(CFLAGS)
|
LAPACK_CFLAGS = $(CFLAGS)
|
||||||
|
|
|
@ -61,21 +61,25 @@ if (${F_COMPILER} STREQUAL "GFORTRAN" OR ${F_COMPILER} STREQUAL "F95" OR CMAKE_F
|
||||||
endif ()
|
endif ()
|
||||||
if (LOONGARCH64)
|
if (LOONGARCH64)
|
||||||
if (BINARY64)
|
if (BINARY64)
|
||||||
CHECK_C_COMPILER_FLAG("-mabi=lp64d" COMPILER_SUPPORT_LP64D_ABI)
|
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*")
|
||||||
if(COMPILER_SUPPORT_LP64D_ABI)
|
CHECK_C_COMPILER_FLAG("-mabi=lp64d" COMPILER_SUPPORT_LP64D_ABI)
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64d")
|
if(COMPILER_SUPPORT_LP64D_ABI)
|
||||||
else()
|
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64d")
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64")
|
else()
|
||||||
endif ()
|
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp64")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
if (INTERFACE64)
|
if (INTERFACE64)
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -fdefault-integer-8")
|
set(FCOMMON_OPT "${FCOMMON_OPT} -fdefault-integer-8")
|
||||||
endif ()
|
endif ()
|
||||||
else ()
|
else ()
|
||||||
CHECK_C_COMPILER_FLAG("-mabi=ilp32d" COMPILER_SUPPORT_ILP32D_ABI)
|
if (NOT CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*")
|
||||||
if(COMPILER_SUPPORT_ILP32D_ABI)
|
CHECK_C_COMPILER_FLAG("-mabi=ilp32d" COMPILER_SUPPORT_ILP32D_ABI)
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=ilp32d")
|
if(COMPILER_SUPPORT_ILP32D_ABI)
|
||||||
else()
|
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=ilp32d")
|
||||||
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp32")
|
else()
|
||||||
|
set(FCOMMON_OPT "${FCOMMON_OPT} -mabi=lp32")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -281,9 +281,13 @@ REALNAME: ;\
|
||||||
#define GNUSTACK
|
#define GNUSTACK
|
||||||
#endif /* defined(__linux__) && defined(__ELF__) */
|
#endif /* defined(__linux__) && defined(__ELF__) */
|
||||||
|
|
||||||
|
#ifdef __clang__
|
||||||
|
#define EPILOGUE .end
|
||||||
|
#else
|
||||||
#define EPILOGUE \
|
#define EPILOGUE \
|
||||||
.end REALNAME ;\
|
.end REALNAME ;\
|
||||||
GNUSTACK
|
GNUSTACK
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PROFCODE
|
#define PROFCODE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue