Bug#881845: rustc: FTBFS on mips*: test failures

Emilio Pozuelo Monfort <[email protected]>
Newsgroups gmane.linux.debian.devel.bugs.general,gmane.linux.debian.ports.mips
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.