On 02/02/18 13:14, James Cowgill wrote: > Hi, > > On 11/01/18 20:16, Emilio Pozuelo Monfort wrote: >> On 17/11/17 13:25, James Cowgill wrote: >>> Hi, >>> >>> On 15/11/17 17:30, Emilio Pozuelo Monfort wrote: >>>> Source: rustc >>>> Version: 1.21.0+dfsg1-3 >>>> Severity: important >>>> >>>> Hi, >>>> >>>> Sometime ago I asked about rustc bootstrap status on mips*: >>>> >>>> 17:08 < infinity0> mips* fail many tests last time i tried, ~3 months ago, >>>> i didn't want to ship it, i haven't had time to check since >>>> >>>> >From >>>> >https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=mips&ver=1.14.0%2Bdfsg1-3&stamp=1484077706&raw=0 >>>> >>>> test net::tcp::tests::timeouts ... FAILED >>>> test net::udp::tests::timeouts ... FAILED >>>> test sys::imp::ext::net::test::timeouts ... FAILED >>>> >>>> Looks like timeouts are broken on rust/mips? >>>> >>>> mips64el has different errors: >>>> >>>> test f32::f32::tanh_0 ... FAILED >>>> test f64::f64::tanh_0 ... FAILED >>>> test io::error::Error::from_raw_os_error_0 ... FAILED >>>> >>>> Maybe the mips porters can take a look? (debian-mips@ on Cc). Note those >>>> errors are for 1.14.0, you'll want to try with a newer version first and >>>> see what's the current status. >>> >>> I just tried building the latest rustc on mips64el. As I expected, I hit >>> this LLVM bug again where any code using atomics will hang: >>> >>> https://bugs.llvm.org/show_bug.cgi?id=32020 >>> >>> I'll see if I can get Simon to have a look at it again. >> >> FTR: >> >> According to our conversation over IRC, there's a patch for the above bug, >> but >> mips64el is now affected by https://github.com/rust-lang/rust/issues/47290 >> >> mips(el) may be fine now with that patch, or they may not :P > > I have been looking at the state of rust support on mips over the last > weeks or so. These are the major issues: > > Hanging atomics (mips, mipsel, mips64el) > ==== > This is an LLVM bug which happens on all mips. > > https://github.com/rust-lang/rust/issues/39013 > https://bugs.llvm.org/show_bug.cgi?id=32020 > > I have attached the most recent iteration of Simon's LLVM fix for this > along with some of my adjustments to it and a backport to LLVM 4.0 I > used for testing with rust. > > LLVM 128-bit integer isues (mips, mipsel) > ==== > 128-bit integer arithmetic is broken in LLVM 4 on 32-bit MIPS. This has > been fixed in LLVM 5. Unfortunately this bug has caused the upstream > stage0 compiler to break badly so you may need to apply the fix and > cross build your own stage0 until upstream binaries have moved to LLVM >= 5. > > https://github.com/rust-lang/rust/issues/41222 > https://bugs.llvm.org/show_bug.cgi?id=32713 > https://reviews.llvm.org/rL305389 > > llvm.powi.f64 broken (mips64el) > ==== >>>> test f32::f32::tanh_0 ... FAILED >>>> test f64::f64::tanh_0 ... FAILED > > This is caused by the llvm.powi.f64 intrinsic being broken for negative > powers. Thankfully this is not a very serious bug. > > Fixed here: > https://bugs.llvm.org/show_bug.cgi?id=36061 > https://reviews.llvm.org/D42537 > > No 64-bit Rust ABI support (mips64el) > ==== > The biggest issue with Rust itself is the lack of working FFI support > for 64-bit mips. > > My attempt at implementing this: > https://github.com/rust-lang/rust/issues/47290 > https://github.com/rust-lang/rust/pull/47964 > > Other issues > ==== >>>> test net::tcp::tests::timeouts ... FAILED >>>> test net::udp::tests::timeouts ... FAILED >>>> test sys::imp::ext::net::test::timeouts ... FAILED > > As I wrote in https://github.com/rust-lang/rust/issues/39013, these are > big endian specific. I haven't had the chance to test rust on big endian > yet. > >>>> test io::error::Error::from_raw_os_error_0 ... FAILED > > Fixed in https://github.com/rust-lang/rust/pull/47874 > > Some FPU errors only happen on Loongson. In theory, enabling FPXX in > LLVM should have fixed this, but I have not investigated it very far. > > There are a few other failing tests where the test itself is broken. I > will try to submit fixes to ignore / adjust the tests soon.
Any progress on these issues? I see that rust built on mips64el but it now hangs. And mips/el are still uncompiled. Cheers, Emilio