diff --git a/add-riscv64-support.patch b/add-riscv64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..cd5f7f46fb2d031766fd07cb575c4772f7d1fc55 --- /dev/null +++ b/add-riscv64-support.patch @@ -0,0 +1,49 @@ +Author: lvxiaoqian +Date: Mon Aug 15 14:06:16 2022 +0800 + + add riscv support + +diff --git a/config/opal_config_asm.m4 b/config/opal_config_asm.m4 +index 5183c7e..d8640e0 100644 +--- a/config/opal_config_asm.m4 ++++ b/config/opal_config_asm.m4 +@@ -1148,6 +1148,11 @@ AC_DEFUN([OPAL_CONFIG_ASM],[ + AC_MSG_WARN([$opal_cv_asm_arch: gcc atomics have been known to perform poorly on powerpc.]) + fi + ++ ;; ++ riscv64*) ++ opal_cv_asm_arch="RISCV64" ++ OPAL_ASM_SUPPORT_64BIT=1 ++ OPAL_GCC_INLINE_ASSIGN='"li %0, 0" : "=&r"(ret)' + ;; + # There is no current difference between s390 and s390x + # But use two different defines in case some come later +diff --git a/opal/include/opal/sys/architecture.h b/opal/include/opal/sys/architecture.h +index ee9aa96..8a9fc53 100644 +--- a/opal/include/opal/sys/architecture.h ++++ b/opal/include/opal/sys/architecture.h +@@ -44,6 +44,7 @@ + #define OPAL_ARM64 0101 + #define OPAL_S390 0110 + #define OPAL_S390X 0111 ++#define OPAL_RISCV64 0120 + #define OPAL_BUILTIN_SYNC 0200 + #define OPAL_BUILTIN_GCC 0202 + #define OPAL_BUILTIN_NO 0203 +diff --git a/opal/include/opal/sys/cma.h b/opal/include/opal/sys/cma.h +index 4211013..8040ccb 100644 +--- a/opal/include/opal/sys/cma.h ++++ b/opal/include/opal/sys/cma.h +@@ -92,6 +92,11 @@ + #define __NR_process_vm_readv 340 + #define __NR_process_vm_writev 341 + ++#elif OPAL_ASSEMBLY_ARCH == OPAL_RISCV64 ++/* RISCV64 uses the asm-generic syscall numbers */ ++#define __NR_process_vm_readv 270 ++#define __NR_process_vm_writev 271 ++ + #else + #error "Unsupported architecture for process_vm_readv and process_vm_writev syscalls" + #endif diff --git a/openmpi.spec b/openmpi.spec index 47effbf7162fcc05f0cd76f9950b22e03449b946..24f849cbdf97a0056579f743b7fe4d27578f6ae8 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -1,6 +1,6 @@ Name: openmpi Version: 4.1.4 -Release: 2 +Release: 3 Summary: Open Source High Performance Computing License: BSD-3-Clause URL: http://www.open-mpi.org/ @@ -8,6 +8,7 @@ Source0: https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-%{ve Source1: openmpi.module.in Source2: openmpi.pth.py3 Source3: macros.openmpi +Patch1000: add-riscv64-support.patch BuildRequires: gcc-c++, gcc-gfortran BuildRequires: valgrind-devel, hwloc-devel, java-devel, libfabric-devel, papi-devel @@ -16,6 +17,7 @@ BuildRequires: librdmacm-devel, rdma-core-devel, pmix-devel BuildRequires: hwloc-gui chrpath BuildRequires: perl-generators, perl(Getopt::Long) BuildRequires: python3-devel libevent-devel +BuildRequires: automake libtool %ifarch x86_64 BuildRequires: infinipath-psm-devel, libpsm2-devel zlib-devel %endif @@ -36,6 +38,8 @@ community in order to build the best MPI library available. %ifarch aarch64 %global name_all openmpi-aarch64 +%elifarch riscv64 +%global name_all openmpi-riscv64 %else %global name_all openmpi-x86_64 %endif @@ -68,6 +72,7 @@ This contains man files for the using of openmpi. %prep %autosetup -n openmpi-%{version} -p1 +./autogen.pl --force %build ./configure --prefix=%{_libdir}/%{name} \ @@ -208,6 +213,9 @@ make check %{_mandir}/%{name_all}/man*/* %changelog +* Tue Jan 03 2023 misaka00251 - 4.1.4-3 +- Add riscv64 support, patch from lvxiaoqian@iscas + * Fri Jul 29 2022 wangkai - 4.1.4-2 - Reslove conflict with pmix-devel and update license