Hi Fedora rust list,
I'm getting build errors for rust 1.17.0 in armhf and ppc64el in Debian:
https://github.com/rust-lang/rust/issues/42476 ppc64el LLVM ERROR: Undefined temporary symbol https://github.com/rust-lang/rust/issues/42477 armhf SIGILL
I see OTOH that your builds succeeded on these platforms:
https://koji.fedoraproject.org/koji/packageinfo?packageID=rust
Your LLVM 3.9 has a lot of patches: https://src.fedoraproject.org/cgit/rpms/llvm3.9.git/tree/ Ours also: https://sources.debian.net/src/llvm-toolchain-3.9/1:3.9.1-9/debian/patches/ Diff between ours and rust's LLVM: https://gist.github.com/infinity0/873566481db105fea47630da88e1b632
In particular, rust-lang-llvm-pr67.patch (0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch) seems to fix some correctness issues on ARM but I'm not sure if this is responsible for the SIGILL that we're seeing, what do you think?
Then, I have no idea about the ppc64el error, but I was wondering if you've seen it before. We didn't see it for 1.16 or earlier versions.
I had removed the ppc64el workaround for https://github.com/rust-lang/rust/issues/37320 for 1.17.0 but this was a segfault and not an "Undefined temporary symbol". And the error also happens when cross-compiling from x86-64 to ppc64el, so I'm led to believe it's something to do with the codegen algorithm rather than any architecture-specific code that is run.
X
On 06/06/2017 04:58 AM, Ximin Luo wrote:
Hi Fedora rust list,
I'm getting build errors for rust 1.17.0 in armhf and ppc64el in Debian:
https://github.com/rust-lang/rust/issues/42476 ppc64el LLVM ERROR: Undefined temporary symbol https://github.com/rust-lang/rust/issues/42477 armhf SIGILL
I see OTOH that your builds succeeded on these platforms:
https://koji.fedoraproject.org/koji/packageinfo?packageID=rust
Your LLVM 3.9 has a lot of patches: https://src.fedoraproject.org/cgit/rpms/llvm3.9.git/tree/ Ours also: https://sources.debian.net/src/llvm-toolchain-3.9/1:3.9.1-9/debian/patches/ Diff between ours and rust's LLVM: https://gist.github.com/infinity0/873566481db105fea47630da88e1b632
In particular, rust-lang-llvm-pr67.patch (0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch) seems to fix some correctness issues on ARM but I'm not sure if this is responsible for the SIGILL that we're seeing, what do you think?
Yes, you definitely want that patch.
Then, I have no idea about the ppc64el error, but I was wondering if you've seen it before. We didn't see it for 1.16 or earlier versions.
That one doesn't sound familiar, sorry.
I had removed the ppc64el workaround for https://github.com/rust-lang/rust/issues/37320 for 1.17.0 but this was a segfault and not an "Undefined temporary symbol". And the error also happens when cross-compiling from x86-64 to ppc64el, so I'm led to believe it's something to do with the codegen algorithm rather than any architecture-specific code that is run.
Ah, the jemalloc issue was a fun one. It could have manifested in any number of ways, since it was basically zeroing random pages -- so a segfault from a zeroed reference is obvious, but other issues were possible. However, I think jemalloc has been disabled in upstream rust for ppc since 1.14. (FWIW, we disable jemalloc entirely in Fedora.)
Anyway, I'll take a look at your ppc64el build log and comment on #42476 if I notice anything...
Josh