Package: src:rustc Followup-For: Bug #881845 User: debian-m...@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 - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Description: Various fixes for Rust on MIPS Author: Dragan Mladjenovic <dmladjeno...@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