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

Emilio Pozuelo Monfort pochu at debian.org
Mon May 28 07:52:35 BST 2018


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



More information about the Pkg-rust-maintainers mailing list