[Pkg-rust-maintainers] Bug#881845: rustc: FTBFS on mips*: test failures

John Paul Adrian Glaubitz glaubitz at physik.fu-berlin.de
Sat Oct 27 22:07:28 BST 2018


Package: src:rustc
Followup-For: Bug #881845
User: debian-mips at lists.debian.org
Usertags: mips

Hi!

Attaching a cleaned-up patch for rustc_1.29.

Could you include it in the next upload to fix rustc on mips*?

Additionally, we will need to backport the LLVM atomics fixes for
MIPS for llvm-toolchain-6.0 [1]. I'm working on this but it's a
bit involved.

After that, we need to move the generation of doc files to the
binary-indep target such that "rustdoc" is not run on 32-Bit MIPS
targets which fails with an out-of-memory error.

Adrian

> [1] https://reviews.llvm.org/rL336328

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz at debian.org
`. `'   Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
-------------- next part --------------
Description: Various fixes for Rust on MIPS
Author: Dragan Mladjenovic <dmladjenovic at wavecomp.com>
Bug-Debian: https://bugs.debian.org/881845
Last-Update: 2018-10-24

--- rustc-1.29.0+dfsg1.orig/src/librustc_codegen_llvm/llvm_util.rs
+++ rustc-1.29.0+dfsg1/src/librustc_codegen_llvm/llvm_util.rs
@@ -66,6 +66,8 @@ unsafe fn configure_llvm(sess: &Session)
             add("-disable-preinline");
         }
 
+	if sess.target.target.arch == "mips" || sess.target.target.arch == "mips64" { add("-fast-isel=0"); }
+
         for arg in &sess.opts.cg.llvm_args {
             add(&(*arg));
         }
--- rustc-1.29.0+dfsg1.orig/src/test/run-pass/invalid_const_promotion.rs
+++ rustc-1.29.0+dfsg1/src/test/run-pass/invalid_const_promotion.rs
@@ -33,7 +33,8 @@ fn check_status(status: std::process::Ex
     use std::os::unix::process::ExitStatusExt;
 
     assert!(status.signal() == Some(libc::SIGILL)
-            || status.signal() == Some(libc::SIGABRT));
+            || status.signal() == Some(libc::SIGABRT)
+	    || status.signal() == Some(libc::SIGTRAP));
 }
 
 #[cfg(not(unix))]
--- rustc-1.29.0+dfsg1.orig/src/test/ui/asm-out-assign-imm.rs
+++ rustc-1.29.0+dfsg1/src/test/ui/asm-out-assign-imm.rs
@@ -10,6 +10,8 @@
 
 // ignore-s390x
 // ignore-emscripten
+// ignore-mips
+// ignore-mips64
 // ignore-powerpc
 // ignore-powerpc64
 // ignore-powerpc64le
--- rustc-1.29.0+dfsg1.orig/src/test/ui/target-feature-gate.rs
+++ rustc-1.29.0+dfsg1/src/test/ui/target-feature-gate.rs
@@ -12,6 +12,8 @@
 // ignore-aarch64
 // ignore-wasm
 // ignore-emscripten
+// ignore-mips
+// ignore-mips64
 // ignore-powerpc64
 // ignore-powerpc64le
 // gate-test-sse4a_target_feature
--- rustc-1.29.0+dfsg1.orig/src/test/ui/target-feature-wrong.rs
+++ rustc-1.29.0+dfsg1/src/test/ui/target-feature-wrong.rs
@@ -13,6 +13,7 @@
 // ignore-wasm
 // ignore-emscripten
 // ignore-mips
+// ignore-mips64
 // ignore-powerpc
 // ignore-powerpc64
 // ignore-powerpc64le


More information about the Pkg-rust-maintainers mailing list