Compare commits
31 Commits
master
...
f37-riscv6
Author | SHA1 | Date | |
---|---|---|---|
f09b7110b4 | |||
a2d99af93a | |||
|
63ea11607f | ||
|
f1dc2cf7aa | ||
|
d2fb0dab27 | ||
|
43098f897c | ||
|
d91b5d2dbc | ||
|
ec99e913a1 | ||
|
3e53b4ed04 | ||
|
c446ed0db6 | ||
|
63c964d667 | ||
|
c387385b45 | ||
|
352773be19 | ||
|
b8a28d859b | ||
|
17c0ab5595 | ||
|
c9da4b0fca | ||
|
4366f00459 | ||
|
227b60ec52 | ||
|
c7b3ead5b7 | ||
|
059848ce5b | ||
|
8fc779b59b | ||
|
8463f8f82f | ||
|
cd2fcb2471 | ||
|
b5bdf1245b | ||
|
9af26a187c | ||
|
0dc3e87935 | ||
|
fd11609c12 | ||
|
5707e44d8d | ||
|
118dfb82cc | ||
|
e58606bdc0 | ||
|
f3cb3adf54 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -52,3 +52,12 @@ openmpi-1.4.1-RH.tar.bz2
|
||||
/openmpi-4.0.3.tar.bz2
|
||||
/openmpi-4.0.4rc1.tar.bz2
|
||||
/openmpi-4.0.4.tar.bz2
|
||||
/openmpi-4.0.5.tar.bz2
|
||||
/openmpi-4.1.0.tar.bz2
|
||||
/openmpi-4.1.1rc1.tar.bz2
|
||||
/openmpi-4.1.1rc2.tar.bz2
|
||||
/openmpi-4.1.1.tar.bz2
|
||||
/openmpi-4.1.2rc1.tar.bz2
|
||||
/openmpi-4.1.2.tar.bz2
|
||||
/openmpi-4.1.3.tar.bz2
|
||||
/openmpi-4.1.4.tar.bz2
|
||||
|
61
0001-Add-initial-support-for-riscv64.patch
Normal file
61
0001-Add-initial-support-for-riscv64.patch
Normal file
@ -0,0 +1,61 @@
|
||||
From 0693a0dc91b5b2dbd7a83ac298d7c3a437d76327 Mon Sep 17 00:00:00 2001
|
||||
From: David Abdurachmanov <davidlt@rivosinc.com>
|
||||
Date: Fri, 23 Sep 2022 11:08:32 +0300
|
||||
Subject: [PATCH] Add initial support for riscv64
|
||||
|
||||
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
|
||||
---
|
||||
config/opal_config_asm.m4 | 5 +++++
|
||||
opal/include/opal/sys/architecture.h | 1 +
|
||||
opal/include/opal/sys/cma.h | 7 +++++++
|
||||
3 files changed, 13 insertions(+)
|
||||
|
||||
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..9e02f99 100644
|
||||
--- a/opal/include/opal/sys/cma.h
|
||||
+++ b/opal/include/opal/sys/cma.h
|
||||
@@ -92,6 +92,13 @@
|
||||
#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
|
||||
--
|
||||
2.35.1
|
||||
|
165
openmpi.spec
165
openmpi.spec
@ -1,17 +1,3 @@
|
||||
%global _hardened_build 1
|
||||
# We only compile with gcc, but other people may want other compilers.
|
||||
# Set the compiler here.
|
||||
%global opt_cc gcc
|
||||
# Optional CFLAGS to use with the specific compiler...gcc doesn't need any,
|
||||
# so uncomment and define to use
|
||||
#global opt_cflags
|
||||
%global opt_cxx g++
|
||||
#global opt_cxxflags
|
||||
%global opt_f77 gfortran
|
||||
#global opt_fflags
|
||||
%global opt_fc gfortran
|
||||
#global opt_fcflags
|
||||
|
||||
# Optional name suffix to use...we leave it off when compiling with gcc, but
|
||||
# for other compiled versions to install side by side, it will need a
|
||||
# suffix in order to keep the names from conflicting.
|
||||
@ -39,23 +25,47 @@
|
||||
%bcond_without rdma
|
||||
%endif
|
||||
|
||||
# No more Java on i686
|
||||
%ifarch %{java_arches}
|
||||
%bcond_without java
|
||||
%else
|
||||
%bcond_with java
|
||||
%endif
|
||||
|
||||
# Run autogen - needed for some patches
|
||||
%ifnarch riscv64
|
||||
%bcond_with autogen
|
||||
%else
|
||||
%bcond_without autogen
|
||||
%endif
|
||||
|
||||
Name: openmpi%{?_cc_name_suffix}
|
||||
Version: 4.0.4
|
||||
Release: 1%{?dist}
|
||||
Version: 4.1.4
|
||||
Release: 4.1.riscv64%{?dist}
|
||||
Summary: Open Message Passing Interface
|
||||
License: BSD and MIT and Romio
|
||||
URL: http://www.open-mpi.org/
|
||||
|
||||
# We can't use %%{name} here because of _cc_name_suffix
|
||||
Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2
|
||||
Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2
|
||||
Source1: openmpi.module.in
|
||||
Source2: openmpi.pth.py2
|
||||
Source3: openmpi.pth.py3
|
||||
Source4: macros.openmpi
|
||||
|
||||
Patch10: 0001-Add-initial-support-for-riscv64.patch
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-gfortran
|
||||
BuildRequires: make
|
||||
%if %{with autogen}
|
||||
BuildRequires: libtool
|
||||
BuildRequires: perl(Data::Dumper)
|
||||
BuildRequires: perl(File::Find)
|
||||
%endif
|
||||
%ifarch %{valgrind_arches}
|
||||
BuildRequires: valgrind-devel
|
||||
%endif
|
||||
%if %{with rdma}
|
||||
BuildRequires: opensm-devel > 3.3.0
|
||||
BuildRequires: rdma-core-devel
|
||||
@ -67,7 +77,12 @@ BuildRequires: rdma-core-devel
|
||||
BuildRequires: hwloc-devel
|
||||
# So configure can find lstopo
|
||||
BuildRequires: hwloc-gui
|
||||
%if %{with java}
|
||||
BuildRequires: java-devel
|
||||
%else
|
||||
Obsoletes: %{name}-java < %{version}-%{release}
|
||||
Obsoletes: %{name}-java-devel < %{version}-%{release}
|
||||
%endif
|
||||
# Old libevent causes issues
|
||||
%if !0%{?el7}
|
||||
BuildRequires: libevent-devel
|
||||
@ -94,8 +109,16 @@ BuildRequires: zlib-devel
|
||||
BuildRequires: rpm-mpi-hooks
|
||||
%endif
|
||||
|
||||
%ifarch riscv64
|
||||
BuildRequires: automake
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: libtool
|
||||
BuildRequires: gettext
|
||||
BuildRequires: perl-interpreter
|
||||
%endif
|
||||
|
||||
Provides: mpi
|
||||
%if 0%{?rhel}
|
||||
%if 0%{?rhel} == 7
|
||||
# Need this for /etc/profile.d/modules.sh
|
||||
Requires: environment-modules
|
||||
%endif
|
||||
@ -132,6 +155,7 @@ Requires: (python(abi) = %{python3_version} if python3)
|
||||
%description devel
|
||||
Contains development headers and libraries for openmpi.
|
||||
|
||||
%if %{with java}
|
||||
%package java
|
||||
Summary: Java library
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
@ -147,6 +171,7 @@ Requires: java-devel
|
||||
|
||||
%description java-devel
|
||||
Contains development wrapper for compiling Java with openmpi.
|
||||
%endif
|
||||
|
||||
# We set this to for convenience, since this is the unique dir we use for this
|
||||
# particular package, version, compiler
|
||||
@ -173,9 +198,14 @@ OpenMPI support for Python 3.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
%autosetup -p1 -n %{name}-%{version}
|
||||
%if %{with autogen}
|
||||
./autogen.pl --force
|
||||
%endif
|
||||
|
||||
|
||||
%build
|
||||
%set_build_flags
|
||||
./configure --prefix=%{_libdir}/%{name} \
|
||||
--mandir=%{_mandir}/%{namearch} \
|
||||
--includedir=%{_includedir}/%{namearch} \
|
||||
@ -183,22 +213,20 @@ OpenMPI support for Python 3.
|
||||
--disable-silent-rules \
|
||||
--enable-builtin-atomics \
|
||||
--enable-mpi-cxx \
|
||||
%if %{with java}
|
||||
--enable-mpi-java \
|
||||
%endif
|
||||
--enable-mpi1-compatibility \
|
||||
--with-sge \
|
||||
%ifarch %{valgrind_arches}
|
||||
--with-valgrind \
|
||||
--enable-memchecker \
|
||||
%endif
|
||||
--with-hwloc=/usr \
|
||||
%if !0%{?el7}
|
||||
--with-libevent=external \
|
||||
--with-pmix=external \
|
||||
%endif
|
||||
CC=%{opt_cc} CXX=%{opt_cxx} \
|
||||
LDFLAGS='%{__global_ldflags}' \
|
||||
CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \
|
||||
CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \
|
||||
FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}"
|
||||
# --with-contrib-vt-flags='CXXFLAGS="-I%{_includedir}/dyninst -L%{_libdir}/dyninst"' \
|
||||
|
||||
%make_build V=1
|
||||
|
||||
@ -247,6 +275,9 @@ cd %{buildroot}%{_libdir}/pkgconfig
|
||||
ln -s ../%{name}/lib/pkgconfig/*.pc .
|
||||
cd -
|
||||
|
||||
# Create cmake dir
|
||||
mkdir -p %{buildroot}%{_libdir}/%{name}/lib/cmake/
|
||||
|
||||
# Remove extraneous wrapper link libraries (bug 814798)
|
||||
sed -i -e s/-ldl// -e s/-lhwloc// \
|
||||
%{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
|
||||
@ -281,6 +312,7 @@ make check
|
||||
%{_libdir}/%{name}/bin/shmemrun
|
||||
%endif
|
||||
%{_libdir}/%{name}/lib/*.so.40*
|
||||
%{_libdir}/%{name}/lib/libmca_common_ofi.so.10*
|
||||
%{_libdir}/%{name}/lib/libmca*.so.41*
|
||||
%{_libdir}/%{name}/lib/libmca*.so.50*
|
||||
%if 0%{?el7}
|
||||
@ -327,6 +359,7 @@ make check
|
||||
%{_fmoddir}/%{name}/
|
||||
%{_libdir}/%{name}/lib/*.so
|
||||
%{_libdir}/%{name}/lib/*.mod
|
||||
%{_libdir}/%{name}/lib/cmake/
|
||||
%{_libdir}/%{name}/lib/pkgconfig/
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_mandir}/%{namearch}/man1/mpi[cCf]*
|
||||
@ -340,6 +373,7 @@ make check
|
||||
%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
|
||||
%{macrosdir}/macros.%{namearch}
|
||||
|
||||
%if %{with java}
|
||||
%files java
|
||||
%{_libdir}/%{name}/lib/mpi.jar
|
||||
|
||||
@ -349,6 +383,7 @@ make check
|
||||
# Currently this only contaings openmpi/javadoc
|
||||
%{_libdir}/%{name}/share/doc/
|
||||
%{_mandir}/%{namearch}/man1/mpijavac.1.gz
|
||||
%endif
|
||||
|
||||
%if %{with python2}
|
||||
%files -n python2-openmpi
|
||||
@ -362,6 +397,86 @@ make check
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Nov 10 2022 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-4.1.riscv64
|
||||
- Rebuild
|
||||
|
||||
* Fri Sep 23 2022 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-4.0.riscv64
|
||||
- Add initial support for riscv64
|
||||
- Fix valgrind check
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.4-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Sun Jul 10 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-3
|
||||
- Drop java for i686 (bz#2104085)
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 4.1.4-2
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Sun May 29 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-1
|
||||
- Update to 4.1.4
|
||||
|
||||
* Sat Apr 16 2022 Orion Poplawski <orion@nwra.com> - 4.1.3-1
|
||||
- Update to 4.1.3
|
||||
|
||||
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.1.2-3
|
||||
- Rebuilt for java-17-openjdk as system jdk
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Mon Nov 29 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-1
|
||||
- Update to 4.1.2
|
||||
|
||||
* Sun Oct 10 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-0.1.rc1
|
||||
- Update to 4.1.2rc1
|
||||
|
||||
* Fri Sep 03 2021 Sandro Mani <manisandro@gmail.com> - 4.1.1-4
|
||||
- Also own %%{_libdir}/%%{name}/lib/cmake/
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 4.1.1-2
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Tue Apr 27 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-1
|
||||
- Update to 4.1.1
|
||||
|
||||
* Mon Apr 05 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.2.rc2
|
||||
- Update to 4.1.1rc2
|
||||
|
||||
* Thu Feb 11 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.1.rc1
|
||||
- Update to 4.1.1rc1
|
||||
|
||||
* Thu Jan 28 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-5
|
||||
- Add upstream patch for generalized requests
|
||||
|
||||
* Thu Jan 28 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-4
|
||||
- Add upstream patch to fix AVX library linkage
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-2
|
||||
- Use set_build_flags macro
|
||||
- Drop old opt_ macros
|
||||
|
||||
* Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-1
|
||||
- Update to 4.1.0
|
||||
|
||||
* Wed Sep 23 2020 Orion Poplawski <orion@nwra.com> - 4.0.5-2
|
||||
- Rebuild for libevent 2.1.12
|
||||
|
||||
* Wed Sep 02 2020 Orion Poplawski <orion@nwra.com> - 4.0.5-1
|
||||
- Update to 4.0.5
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.4-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 4.0.4-2
|
||||
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
|
||||
|
||||
* Wed Jun 17 2020 Orion Poplawski <orion@nwra.com> - 4.0.4-1
|
||||
- Update to 4.0.4
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (openmpi-4.0.4.tar.bz2) = 6c193b4b5cbfd9d48fa5efcef01372c424b51ae5e9727ccf4235e3b14556dfeb010865e41a9473419ccda16559139aa469086b1fff9abfd337e87387fdec1c64
|
||||
SHA512 (openmpi-4.1.4.tar.bz2) = c70a92c9b16b8c76a871183f9b180d60861186e64140da897d206d53bc06213f31ea93b31734645f580f4bf28dda5605d85dbce2417e4596955384d961bed653
|
||||
|
Loading…
Reference in New Issue
Block a user