Running `/usr/bin/rustc --crate-name hyper src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="server-proto"' --cfg 'feature="tokio-proto"' -C metadata=996ec52bb3550cfa -C extra-filename=-996ec52bb3550cfa --out-dir /builddir/build/BUILD/hyper-0.11.22/target/release/deps -L dependency=/builddir/build/BUILD/hyper-0.11.22/target/release/deps --extern bytes=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libbytes-1cd6c276cb8c38c6.rlib --extern log=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/liblog-24453bcead8e001a.rlib --extern tokio_core=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_core-589f535c37b7e80b.rlib --extern relay=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/librelay-9e9e8a7e81d7566d.rlib --extern tokio_proto=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_proto-ac8864d0cc5d2ab5.rlib --extern percent_encoding=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libpercent_encoding-346527c6195ab050.rlib --extern base64=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libbase64-735243170dafb065.rlib --extern tokio_io=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_io-48ee6b77ac907338.rlib --extern iovec=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libiovec-bfe3c06d15bd96b1.rlib --extern unicase=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libunicase-f72ada045f556fa7.rlib --extern language_tags=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/liblanguage_tags-cc51ad236b75629f.rlib --extern tokio_service=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_service-0f8373c6d0e5ea3b.rlib --extern time=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtime-4b661d71f798265a.rlib --extern mime=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libmime-69b309de50dc3892.rlib --extern futures_cpupool=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libfutures_cpupool-fbd61af11ff2776d.rlib --extern futures=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libfutures-3481a32bf0b18d01.rlib --extern httparse=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libhttparse-28b64b396a8b7567.rlib -Copt-level=3 -Cdebuginfo=2 -Clink-arg=-Wl,-z,relro,-z,now` LLVM ERROR: Cannot select: 0x7fff84646d20: ch = PPCISD::STBRX<ST6[%747](align=1)> 0x7fff843fc138, 0x7fff84646f90, 0x7fff848c46d8, ValueType:ch:i48 0x7fff84646f90: i32 = truncate 0x7fff848c4190 0x7fff848c4190: i64 = srl 0x7fff84646b18, Constant:i32<16> 0x7fff84646b18: i64 = or 0x7fff848c3cb0, 0x7fff848c4878 0x7fff848c3cb0: i64,ch = CopyFromReg 0x7fff843fc138, Register:i64 %vreg246 0x7fff845e8f78: i64 = Register %vreg246 0x7fff848c4878: i64 = shl 0x7fff846468a8, Constant:i32<16> 0x7fff846468a8: i64 = AssertZext 0x7fff845e9800, ValueType:ch:i8 0x7fff845e9800: i64,ch = CopyFromReg 0x7fff843fc138, Register:i64 %vreg248 0x7fff848c4260: i64 = Register %vreg248 0x7fff848c3ff0: i32 = Constant<16> 0x7fff848c3ff0: i32 = Constant<16> 0x7fff848c46d8: i64,ch = CopyFromReg 0x7fff843fc138, Register:i64 %vreg216 0x7fff848c4128: i64 = Register %vreg216 In function: _ZN6base646decode6decode17h413b2e942bfe7a42E error: Could not compile `hyper`. Caused by: process didn't exit successfully: `/usr/bin/rustc --crate-name hyper src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg feature="default" --cfg feature="server-proto" --cfg feature="tokio-proto" -C metadata=996ec52bb3550cfa -C extra-filename=-996ec52bb3550cfa --out-dir /builddir/build/BUILD/hyper-0.11.22/target/release/deps -L dependency=/builddir/build/BUILD/hyper-0.11.22/target/release/deps --extern bytes=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libbytes-1cd6c276cb8c38c6.rlib --extern log=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/liblog-24453bcead8e001a.rlib --extern tokio_core=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_core-589f535c37b7e80b.rlib --extern relay=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/librelay-9e9e8a7e81d7566d.rlib --extern tokio_proto=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_proto-ac8864d0cc5d2ab5.rlib --extern percent_encoding=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libpercent_encoding-346527c6195ab050.rlib --extern base64=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libbase64-735243170dafb065.rlib --extern tokio_io=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_io-48ee6b77ac907338.rlib --extern iovec=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libiovec-bfe3c06d15bd96b1.rlib --extern unicase=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libunicase-f72ada045f556fa7.rlib --extern language_tags=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/liblanguage_tags-cc51ad236b75629f.rlib --extern tokio_service=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtokio_service-0f8373c6d0e5ea3b.rlib --extern time=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libtime-4b661d71f798265a.rlib --extern mime=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libmime-69b309de50dc3892.rlib --extern futures_cpupool=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libfutures_cpupool-fbd61af11ff2776d.rlib --extern futures=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libfutures-3481a32bf0b18d01.rlib --extern httparse=/builddir/build/BUILD/hyper-0.11.22/target/release/deps/libhttparse-28b64b396a8b7567.rlib -Copt-level=3 -Cdebuginfo=2 -Clink-arg=-Wl,-z,relro,-z,now` (exit code: 1) Probably bug in LLVM.
100% reproducible on ppc64le with hyper crate.
On the surface, it looks very similar to this bug report: https://bugs.llvm.org/show_bug.cgi?id=35402
This is an LLVM issue. Is there any way we can get an LLVM IR dump from rust?
(In reply to Tom Stellard from comment #3) > This is an LLVM issue. Is there any way we can get an LLVM IR dump from > rust? https://kojipkgs.fedoraproject.org//work/tasks/3527/25663527/build.log Unfortunately not in tarball, but it's hard to grab any archive from koji...
(In reply to Igor Gnatenko from comment #4) > (In reply to Tom Stellard from comment #3) > > This is an LLVM issue. Is there any way we can get an LLVM IR dump from > > rust? > > https://kojipkgs.fedoraproject.org//work/tasks/3527/25663527/build.log > > Unfortunately not in tarball, but it's hard to grab any archive from koji... FWIW, for gcc, we have a hook to dump the preprocessed source on a crash (as /tmp/cc*out), and then use something like: BuildRequires: sharutils and then: make || : ( tar cf - /tmp/cc*.out | bzip2 -9 | uuencode cc.tar.bz2 ) which stashes a uuencoded form of the tarball into the Koji build log, from which one can copy&paste it, and then decode it back to a tarball.
Here we go: https://kojipkgs.fedoraproject.org//work/tasks/3864/25663864/build.log
Created attachment 1407362 [details] llvm-ir from rust 1.25-beta with llvm-6 Here are the output files that I get from my scratch build of Rust 1.25 beta using LLVM 6, running: rustc ... --emit=llvm-ir
That rustc beta build is here: https://koji.fedoraproject.org/koji/taskinfo?taskID=25562954 It also reproduces with the current stable rustc, using llvm5.0-libs.
It does NOT reproduce on Fedora 26, rust-1.24.0 and llvm-libs-4.0.1.
Created attachment 1407574 [details] Reduced test case Reduced test case that works with LLVM 4.0
The reduced test case reproduces with a trunk build from today and LLVM 5.0.1 in Fedora 27. Can confirm that it does not reproduce with the llc from the llvm4.0 package in Fedora 27. Currently bisecting to find out at which point between 4.0 and 5.0 the regression was introduced.
Looks like the regression was introduced a year ago with the following change in r296811: commit f2f076498022ec1ab5abadb7349f62b1dbc2ac0d Author: Guozhi Wei <carrot> Date: Thu Mar 2 21:07:59 2017 +0000 [PPC] Fix code generation for bswap(int32) followed by store16 This patch fixes pr32063. Current code in PPCTargetLowering::PerformDAGCombine can transform bswap store into a single PPCISD::STBRX instruction. but it doesn't consider the case that the operand size of bswap may be larger than store size. When it occurs, we need 2 modifications, 1 For the last operand of PPCISD::STBRX, we should not use DAG.getValueType(N->getOperand(1).getValueType()), instead we should use cast<StoreSDNode>(N)->getMemoryVT(). 2 Before PPCISD::STBRX, we need to shift the original operand of bswap to the right side. Differential Revision: https://reviews.llvm.org/D30362 Will investigate further and file a bug upstream.
Has been fixed upstream in http://llvm.org/viewvc/llvm-project?view=revision&revision=327651.
Fixed in rawhide: llvm-6.0.0-8.fc29
llvm4.0-4.0.1-4.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-5db8f23c3f
llvm-5.0.1-5.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-cffb23a2cc
llvm-4.0.1-3.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2018-add17f7db7
llvm4.0-4.0.1-4.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-5db8f23c3f
llvm-5.0.1-5.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-cffb23a2cc
llvm5.0-5.0.1-7.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-c1c16c1fdb
llvm5.0-5.0.1-7.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-c1c16c1fdb
llvm-4.0.1-3.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-add17f7db7
llvm-5.0.1-5.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.
llvm-4.0.1-3.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.
llvm4.0-4.0.1-4.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.
llvm5.0-5.0.1-7.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.
pocl-1.1-2.fc28 lldb-6.0.0-3.fc28 clang-6.0.0-5.fc28 llvm-6.0.0-11.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319
clang-6.0.0-5.fc28, lldb-6.0.0-3.fc28, llvm-6.0.0-11.fc28, mesa-18.0.0-2.fc28.1, pocl-1.1-2.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319
clang-6.0.0-5.fc28 lldb-6.0.0-3.fc28 llvm-6.0.0-11.fc28 mesa-18.0.0-3.fc28 pocl-1.1-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319
clang-6.0.0-5.fc28, lldb-6.0.0-3.fc28, llvm-6.0.0-11.fc28, mesa-18.0.0-3.fc28, pocl-1.1-2.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319
clang-6.0.0-5.fc28, lldb-6.0.0-3.fc28, llvm-6.0.0-11.fc28, mesa-18.0.0-3.fc28, pocl-1.1-2.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.