diff --git a/_constraints b/_constraints
new file mode 100644
index 0000000..c9d6a5c
--- /dev/null
+++ b/_constraints
@@ -0,0 +1,18 @@
+
+
+
+ 5
+
+
+
+
+ ppc64
+ ppc64le
+
+
+
+ 7
+
+
+
+
diff --git a/suitesparse.changes b/suitesparse.changes
index 781e6b5..d1d05dc 100644
--- a/suitesparse.changes
+++ b/suitesparse.changes
@@ -1,3 +1,11 @@
+-------------------------------------------------------------------
+Tue Aug 18 15:52:29 UTC 2020 - Michel Normand
+
+- Call %limit_build macro in spec to avoid oom build failure
+ for ppc64le and aarch64
+- Add _constraints with default 5GB min physicalmemory
+ and 7GB for ppc64/ppc64le
+
-------------------------------------------------------------------
Thu Mar 19 22:49:23 UTC 2020 - Christoph G
diff --git a/suitesparse.spec b/suitesparse.spec
index 09377c0..609fcfc 100644
--- a/suitesparse.spec
+++ b/suitesparse.spec
@@ -46,6 +46,7 @@ BuildRequires: cmake
BuildRequires: gcc-fortran
BuildRequires: lapack-devel
BuildRequires: m4
+BuildRequires: memory-constraints
BuildRequires: metis-devel
BuildRequires: tbb-devel
%if %{with openblas}
@@ -579,6 +580,13 @@ rm SPQR/Doc/spqr.pdf
%patch775418 -p1
%build
+%ifarch ppc64le aarch64
+%define limitbuild 1500
+%limit_build -m %{limitbuild}
+%define JOBS %{jobs}
+%define _lto_cflags -flto=%{jobs}
+%endif
+
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%if 0%{?suse_version} < 1500
export CC=gcc-7