Bugzilla – Bug 1181643
Rust 1.47 - 1.49 fails to build on armv7
Last modified: 2021-11-08 04:35:08 UTC
Created attachment 845681 [details] armv7 build log Rust 1.47 fails to build on armv7. BUild log in attachment. Latest build log available at: https://build.opensuse.org/package/live_build_log/openSUSE:Factory:ARM/rust/standard/armv7l
The same happens with rust 1.49.
This is now a critical bug, because there is no cargo/rust in Tumbleweed for armv7 anymore, which means no mozjs78, so all desktops are broken (X11, Enlightenment, LXQT, etc.)
If I build locally with '-j1' to use only one core, I fail later with: [ 1656s] Compiling rustc_middle v0.0.0 (/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/compiler/rustc_middle) [ 1864s] terminate called after throwing an instance of 'std::bad_alloc' [ 1864s] what(): std::bad_alloc [ 1865s] rustc exited with signal: 6 [ 1865s] [ 1865s] Did not run successfully: signal: 6 [ 1865s] "/home/abuild/rpmbuild/BUILD/rust-1.48.0-armv7-unknown-linux-gnueabihf/usr/bin/rustc" "--crate-name" "rustc_middle" "--edition=2018" "compiler/rustc_middle/src/lib.rs" "--error-format=json" "--json=diagnostic-rendered-ansi,artifacts" "--crate-type" "lib" "--emit=dep-info,metadata,link" "-C" "opt-level=3" "-C" "embed-bitcode=no" "-C" "codegen-units=1" "-C" "debuginfo=0" "-C" "metadata=500acc8ebd2a0fd7" "-C" "extra-filename=-500acc8ebd2a0fd7" "--out-dir" "/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps" "--target" "armv7-unknown-linux-gnueabihf" "-L" "dependency=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps" "-L" "dependency=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/release/deps" "--extern" "bitflags=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libbitflags-23aff82a543b2636.rmeta" "--extern" "chalk_ir=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libchalk_ir-8c72b4e603916a0e.rmeta" "--extern" "measureme=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libmeasureme-3b2cc7d7565136a2.rmeta" "--extern" "polonius_engine=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libpolonius_engine-b37bb4d825a44f37.rmeta" "--extern" "rustc_rayon_core=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_rayon_core-3e918726d3ff5be0.rmeta" "--extern" "rustc_apfloat=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_apfloat-bd82698e1da31ef3.rmeta" "--extern" "rustc_arena=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_arena-7be260d413b44a58.rmeta" "--extern" "rustc_ast=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_ast-291fa8f9d7cd09b5.rmeta" "--extern" "rustc_attr=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_attr-705548115be1381f.rmeta" "--extern" "rustc_data_structures=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_data_structures-7a61f7350c10c184.rmeta" "--extern" "rustc_errors=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_errors-42132db1199b4fc6.rmeta" "--extern" "rustc_feature=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_feature-cd9c44ba36267515.rmeta" "--extern" "rustc_hir=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_hir-4084e4b5d261fc21.rmeta" "--extern" "rustc_index=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_index-1d9bf378982ffcc9.rmeta" "--extern" "rustc_macros=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/release/deps/librustc_macros-86d315c682a72f56.so" "--extern" "rustc_query_system=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_query_system-143e4cfadba67884.rmeta" "--extern" "rustc_serialize=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_serialize-f4a6367718cfe09e.rmeta" "--extern" "rustc_session=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_session-e43e04abfcebd710.rmeta" "--extern" "rustc_span=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_span-f21cabea8f3809c9.rmeta" "--extern" "rustc_target=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_target-67ff00e65f3be6a4.rmeta" "--extern" "smallvec=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libsmallvec-ad23a049d81f305f.rmeta" "--extern" "tracing=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libtracing-5ef58d27603367f6.rmeta" "-Clink-arg=-Wl,-z,relro,-z,now" "--cfg=bootstrap" "-Zmacro-backtrace" "-Ztls-model=initial-exec" "-Zunstable-options" "-Wrustc::internal" "-Cprefer-dynamic" "-Z" "binary-dep-depinfo" "-L" "native=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/build/psm-3878dd6cd2e7ce7a/out" "-Wrust_2018_idioms" "-Wunused_lifetimes" "--sysroot" "/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-sysroot" "-Z" "force-unstable-if-unmarked" [ 1865s] ------------- [ 1865s] error: could not compile `rustc_middle` [ 1865s] [ 1865s] Caused by: [ 1865s] process didn't exit successfully: `/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/bootstrap/debug/rustc --crate-name rustc_middle --edition=2018 compiler/rustc_middle/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C codegen-units=1 -C debuginfo=0 -C metadata=500acc8ebd2a0fd7 -C extra-filename=-500acc8ebd2a0fd7 --out-dir /home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps --target armv7-unknown-linux-gnueabihf -L dependency=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps -L dependency=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/release/deps --extern bitflags=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libbitflags-23aff82a543b2636.rmeta --extern chalk_ir=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libchalk_ir-8c72b4e603916a0e.rmeta --extern measureme=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libmeasureme-3b2cc7d7565136a2.rmeta --extern polonius_engine=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libpolonius_engine-b37bb4d825a44f37.rmeta --extern rustc_rayon_core=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_rayon_core-3e918726d3ff5be0.rmeta --extern rustc_apfloat=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_apfloat-bd82698e1da31ef3.rmeta --extern rustc_arena=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_arena-7be260d413b44a58.rmeta --extern rustc_ast=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_ast-291fa8f9d7cd09b5.rmeta --extern rustc_attr=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_attr-705548115be1381f.rmeta --extern rustc_data_structures=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_data_structures-7a61f7350c10c184.rmeta --extern rustc_errors=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_errors-42132db1199b4fc6.rmeta --extern rustc_feature=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_feature-cd9c44ba36267515.rmeta --extern rustc_hir=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_hir-4084e4b5d261fc21.rmeta --extern rustc_index=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_index-1d9bf378982ffcc9.rmeta --extern rustc_macros=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/release/deps/librustc_macros-86d315c682a72f56.so --extern rustc_query_system=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_query_system-143e4cfadba67884.rmeta --extern rustc_serialize=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_serialize-f4a6367718cfe09e.rmeta --extern rustc_session=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_session-e43e04abfcebd710.rmeta --extern rustc_span=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_span-f21cabea8f3809c9.rmeta --extern rustc_target=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/librustc_target-67ff00e65f3be6a4.rmeta --extern smallvec=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libsmallvec-ad23a049d81f305f.rmeta --extern tracing=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/deps/libtracing-5ef58d27603367f6.rmeta -Clink-arg=-Wl,-z,relro,-z,now --cfg=bootstrap -Zmacro-backtrace -Ztls-model=initial-exec -Zunstable-options '-Wrustc::internal' -Cprefer-dynamic -Z binary-dep-depinfo -L native=/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/armv7-unknown-linux-gnueabihf/stage0-rustc/armv7-unknown-linux-gnueabihf/release/build/psm-3878dd6cd2e7ce7a/out` (exit code: 254) [ 1865s] command did not execute successfully: "/home/abuild/rpmbuild/BUILD/rust-1.48.0-armv7-unknown-linux-gnueabihf/usr/bin/cargo" "build" "--target" "armv7-unknown-linux-gnueabihf" "-Zbinary-dep-depinfo" "-j" "1" "--release" "--frozen" "--features" " llvm max_level_info" "--manifest-path" "/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/compiler/rustc/Cargo.toml" "--message-format" "json-render-diagnostics" [ 1865s] expected success, got: exit code: 101 [ 1865s] Traceback (most recent call last): [ 1865s] File "./x.py", line 11, in <module> [ 1865s] bootstrap.main() [ 1865s] File "/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/src/bootstrap/bootstrap.py", line 1082, in main [ 1865s] bootstrap(help_triggered) [ 1865s] File "/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/src/bootstrap/bootstrap.py", line 1068, in bootstrap [ 1865s] run(args, env=env, verbose=build.verbose) [ 1865s] File "/home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/src/bootstrap/bootstrap.py", line 153, in run [ 1865s] raise RuntimeError(err) [ 1865s] RuntimeError: failed to run: /home/abuild/rpmbuild/BUILD/rustc-1.49.0-src/build/bootstrap/debug/bootstrap build -v [ 1865s] error: Bad exit status from /var/tmp/rpm-tmp.B39jsg (%build)
I'm testing in OBS if this happens with bundled llvm now on 1.49. Can you also check a hello world or similar with the upstream toolchains? This way we know that it's not an upstream issue but an issue specific to our build process. You may also need gcc installed already as a linker. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none source $HOME/.cargo/env which rustup > /home/william/.cargo/bin/rustup rustup toolchain install 1.47 rustup default 1.47 which rustc > /home/william/.cargo/bin/rustc cargo new demo cd demo cargo run > Hello, world! NOTE: I don't have access to any armv7 hardware so I can't exactly test this easily :(
(In reply to William Brown from comment #4) > I'm testing in OBS if this happens with bundled llvm now on 1.49. > > > Can you also check a hello world or similar with the upstream toolchains? > This way we know that it's not an upstream issue but an issue specific to > our build process. You may also need gcc installed already as a linker. > > curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- > --default-toolchain none > > source $HOME/.cargo/env > > which rustup > > /home/william/.cargo/bin/rustup > > rustup toolchain install 1.47 > rustup default 1.47 > > which rustc > > /home/william/.cargo/bin/rustc > > cargo new demo > cd demo > cargo run > > Hello, world! > > > NOTE: I don't have access to any armv7 hardware so I can't exactly test this > easily :( Tested it on an armv7 system and all of this works fine on armv7. Any update of your test with bundled llvm on 1.49?
No - attempting the build causes an out-of-memory on the build servers for all arches during the build process. I have been unable to successfully build with bundled llvm at this time. I need to revisit this to see why. Certainly the fact that you can use the upstream rust that has bundled llvm vs our rust that uses the platform llvm does hint that there is an incompatibility between our llvm and rust's expectations. My ideal outcome in this matter would be that we just use the bundled llvm since it has stronger quality assurances from upstream rust than using our own llvm - using our own can lead to exactly this kind of issue.
(In reply to William Brown from comment #6) > No - attempting the build causes an out-of-memory on the build servers for > all arches during the build process. I have been unable to successfully > build with bundled llvm at this time. thats because we build bundled llvm with debuginfo enabled, which causes this issue. I had to workaround that for bootstrapping Step. let me see if I can upstream this patch to tumbleweed..
Update to version 1.50 fixes the build on armv7. Verified locally. SR: https://build.opensuse.org/request/show/877726
This is an autogenerated message for OBS integration: This bug (1181643) was mentioned in https://build.opensuse.org/request/show/877737 Factory / rust
Fixed with the update to rust 1.50.
# maintenance_jira_update_notice SUSE-RU-2021:2908-1: An update that has two recommended fixes can now be installed. Category: recommended (moderate) Bug References: 1181643,1188891 CVE References: JIRA References: Sources used: SUSE Manager Server 4.0 (src): rust-1.53.0-19.1 SUSE Manager Retail Branch Server 4.0 (src): rust-1.53.0-19.1 SUSE Manager Proxy 4.0 (src): rust-1.53.0-19.1 SUSE Linux Enterprise Server for SAP 15-SP1 (src): rust-1.53.0-19.1 SUSE Linux Enterprise Server 15-SP1-LTSS (src): rust-1.53.0-19.1 SUSE Linux Enterprise Server 15-SP1-BCL (src): rust-1.53.0-19.1 SUSE Linux Enterprise Module for Development Tools 15-SP2 (src): rust-1.53.0-19.1 SUSE Linux Enterprise High Performance Computing 15-SP1-LTSS (src): rust-1.53.0-19.1 SUSE Linux Enterprise High Performance Computing 15-SP1-ESPOS (src): rust-1.53.0-19.1 SUSE Enterprise Storage 6 (src): rust-1.53.0-19.1 SUSE CaaS Platform 4.0 (src): rust-1.53.0-19.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.