diff --git a/_constraints b/_constraints
index 7a401ec..a42ffec 100644
--- a/_constraints
+++ b/_constraints
@@ -6,7 +6,7 @@
4
- 40
+ 20
diff --git a/rust.changes b/rust.changes
index 0249db5..a937051 100644
--- a/rust.changes
+++ b/rust.changes
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Wed Feb 15 05:58:35 UTC 2017 - luke.nukem.jones@gmail.com
+
+- Fixes to build for archs armv7, aarch64, ppc64, s390x
+
-------------------------------------------------------------------
Sat Feb 11 05:31:34 UTC 2017 - luke.nukem.jones@gmail.com
diff --git a/rust.spec b/rust.spec
index c03d057..c3d90e9 100644
--- a/rust.spec
+++ b/rust.spec
@@ -62,17 +62,21 @@ Conflicts: rustc-bootstrap
Provides: rustc = %{version}
Provides: rustc-stable = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+# Restrict the architectures as building rust relies on being initially
+# bootstrapped before we can build the n+1 release
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64 ppc64le s390x
%if 0%{?suse_version}
BuildRequires: fdupes
%endif
-%ifarch %{arm} aarch64 ppc64 ppc64le s390x
+%ifarch s390x
BuildRequires: cargo-bootstrap
BuildRequires: rustc-bootstrap >= %{prev_version}
%else
-%if %{with bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} < 120300)
+# There are no successful builds for less than TW or Leap 42.2, so bootstrap
+# until such time that there is.
+%if %{with bootstrap} || (0%{?suse_version} < 1330 && 0%{?sle_version} <= 120100)
BuildRequires: cargo-bootstrap
BuildRequires: rustc-bootstrap >= %{prev_version}
%else