Tracking issue for the rust 1.25 release. The change needs to be MFH'd, per @jbeich who asks (via email): Firefox 61 scheduled on 2018-06-26 [1] will require [2] Rust 1.25 to build. If 2018Q2 will be stuck with Rust 1.24.1 I won't be able to MFH Firefox 61 on release day. Once 2018Q3 branches some users may delay upgrade for a few weeks due to inherent instability when a /quarterly branch is created. Can you add "MFH: 2018Q2" to commit message when landing Rust 1.25 update? [1] https://wiki.mozilla.org/RapidRelease/Calendar [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1450078 https://wiki.mozilla.org/Rust_Update_Policy_for_Firefox
Will see that rust 1.25 gets MFH'ed in time for firefox 61
Created attachment 192023 [details] update to 1.25.0 First attempt at an update, primarily to help address bug 226955. Other than the issue covered there (with a further patch destined in that PR), this builds fine. I'm using the beta bootstraps instead of the recommended previous stable bootstraps as they are still susceptible to the cryptic build error bdrewery@ pointed out in [1]; using the beta bootstraps allowed for removing the ABI patch logic. Note: distinfo only has the amd64 bootstraps for now. [1] https://github.com/rust-lang/rust/pull/49023#issuecomment-373128703
(In reply to Charlie Li from comment #2) "builds fine" meaning succeeds up until the openssl-sys crate when ssl=libressl-devel. As I alluded to in bug 226955, said crate is still on a version present in at least rust 1.24, so any other value of ssl= should in theory build successfully, which includes passing testport.
Created attachment 192041 [details] ssl=base testport log
Comment on attachment 192023 [details] update to 1.25.0 > diff --git lang/rust/files/patch-src_binaryen_CMakeLists.txt lang/rust/files/patch-src_binaryen_CMakeLists.txt > deleted file mode 100644 > index 88f374664024..000000000000 > --- lang/rust/files/patch-src_binaryen_CMakeLists.txt > +++ /dev/null > @@ -1,60 +0,0 @@ > -https://github.com/WebAssembly/binaryen/commit/07f6dfbf0d89 > -https://github.com/WebAssembly/binaryen/commit/d9692277357b Only fixed in binaryen, not in Rust. Can you restore the file? > diff --git lang/rust/files/patch-src_librustc__back_target_freebsd__base.rs lang/rust/files/patch-src_librustc__back_target_freebsd__base.rs > deleted file mode 100644 > index 2f2b3ccc423b..000000000000 > --- lang/rust/files/patch-src_librustc__back_target_freebsd__base.rs > +++ /dev/null > @@ -1,13 +0,0 @@ > -Return struct like OpenBSD, see src/librustc_trans/cabi_x86.rs > - > ---- src/librustc_back/target/freebsd_base.rs.orig 2017-11-22 21:33:00 UTC > -+++ src/librustc_back/target/freebsd_base.rs > -@@ -31,6 +31,8 @@ pub fn opts() -> TargetOptions { > - target_family: Some("unix".to_string()), > - linker_is_gnu: true, > - has_rpath: true, > -+ is_like_openbsd: true, abi_return_struct_as_int is not in Rust 1.25. Can you restore is_like_openbsd?
I am in the middle of consolidating. Will upload my patch set to phabricator. Give an hour or so
Upstream announcement: https://blog.rust-lang.org/2018/03/29/Rust-1.25.html
(In reply to Thomas Zander from comment #7) Patch in phabricator tested on 11/stable amd64. 10.4R comes next. aarch64 is TBD.
Comment on attachment 192023 [details] update to 1.25.0 Updated version of the patch moved to phabricator: https://reviews.freebsd.org/D14921
(In reply to Thomas Zander from comment #8) Build on 10.4 i386 looks good too.
Created attachment 192083 [details] 12-CURRENT build log Build crashed using review D14921. Will try again and mark attachment obsolete if this was only a fluke.
(In reply to Charlie Li from comment #11) > Created attachment 192083 [details] > 12-CURRENT build log > > Build crashed using review D14921. Will try again and mark attachment > obsolete if this was only a fluke. Define crashed please? The log is truncated. Did you get a panic?
(In reply to Bryan Drewery from comment #12) > The log is truncated. I didn't realise bugzilla would do that, especially since the file was under the 1000 KiB limit. Here's the relevant portion, starting from immediately after LLVM finishes installing: gmake[1]: Leaving directory '/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/llvm/build' cargo:root=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/llvm finished in 223.686 < Llvm { target: "x86_64-unknown-freebsd", emscripten: false } Building stage0 codegen artifacts (x86_64-unknown-freebsd -> x86_64-unknown-freebsd, llvm) running: "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0/bin/cargo" "build" "--target" "x86_64-unknown-freebsd" "--release" "--frozen" "--manifest-path" "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_trans/Cargo.toml" "--features" " jemalloc" "--message-format" "json" Compiling libc v0.2.39 Compiling cfg-if v0.1.2 Compiling rustc_trans v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_trans) Compiling cmake v0.1.29 Compiling num_cpus v1.8.0 Compiling tempdir v0.3.5 Compiling filetime v0.1.15 Compiling build_helper v0.1.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/build_helper) Compiling rustc_binaryen v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_binaryen) Compiling rustc_llvm v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_llvm) Finished release [optimized] target(s) in 232.75 secs updating "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0-rustc/x86_64-unknown-freebsd/release/.tmp.stamp" as "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0-rustc/x86_64-unknown-freebsd/release/deps/librustc_trans-a44a47c41a7a8444.so" changed < CodegenBackend { compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd", backend: "llvm" } Assembling stage1 compiler (x86_64-unknown-freebsd) > Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } < Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Libdir { compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } > Libdir { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } < Libdir { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } < Assemble { target_compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } > Rustc { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } > Test { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } > Std { target: "x86_64-unknown-freebsd", compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } > StartupObjects { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } < StartupObjects { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } Building stage1 std artifacts (x86_64-unknown-freebsd -> x86_64-unknown-freebsd) c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } Dirty - /wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-std c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } running: "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0/bin/cargo" "build" "--target" "x86_64-unknown-freebsd" "--release" "--frozen" "--features" "panic-unwind jemalloc backtrace" "--manifest-path" "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libstd/Cargo.toml" "--message-format" "json" error: process didn't exit successfully: `/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/bootstrap/debug/rustc -vV` (signal: 11, SIGSEGV: invalid memory reference) --- stdout rustc 1.25.0 binary: rustc commit-hash: unknown commit-date: unknown host: x86_64-unknown-freebsd release: 1.25.0 thread 'main' panicked at 'command did not execute successfully: "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0/bin/cargo" "build" "--target" "x86_64-unknown-freebsd" "--release" "--frozen" "--features" "panic-unwind jemalloc backtrace" "--manifest-path" "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libstd/Cargo.toml" "--message-format" "json" expected success, got: exit code: 101', bootstrap/compile.rs:1060:9 note: Run with `RUST_BACKTRACE=1` for a backtrace. Traceback (most recent call last): File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/x.py", line 20, in <module> bootstrap.main() File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/bootstrap/bootstrap.py", line 763, in main bootstrap() File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/bootstrap/bootstrap.py", line 754, in bootstrap run(args, env=env, verbose=build.verbose) File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/bootstrap/bootstrap.py", line 148, in run raise RuntimeError(err) RuntimeError: failed to run: /wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/bootstrap/debug/bootstrap build --verbose --config ./config.toml --jobs 4 *** Error code 1 Stop. make: stopped in /usr/ports/lang/rust
Try https://people.freebsd.org/~bdrewery/patches/rust-125.diff
(In reply to Bryan Drewery from comment #14) > Try https://people.freebsd.org/~bdrewery/patches/rust-125.diff Passes for me on amd64 FreeBSD-12/head.
(In reply to Bryan Drewery from comment #14) This patch causes either other processes or the build (in poudriere) on my machine to get killed for "out of swap space", but when actually monitoring the swap usage, the numbers don't even approach 50% usage, plus no apparent indication of runaway memory usage of any kind. Example of when the system chooses to kill rustc: updating "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-test/x86_64-unknown-freebsd/release/.libtest.stamp" as "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-test/x86_64-unknown-freebsd/release/deps/libtest-a82a27a8b82dbd80.so" changed c Assemble { target_compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } > TestLink { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target_compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } Copying stage1 test from stage1 (x86_64-unknown-freebsd -> x86_64-unknown-freebsd / x86_64-unknown-freebsd) c Libdir { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } > CleanTools { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd", mode: Libtest } Dirty - /wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-tools < CleanTools { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd", mode: Libtest } < TestLink { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target_compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } < Test { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" } c Assemble { target_compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Std { target: "x86_64-unknown-freebsd", compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } Building stage1 compiler artifacts (x86_64-unknown-freebsd -> x86_64-unknown-freebsd) Dirty - /wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } c Sysroot { compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } } running: "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0/bin/cargo" "build" "--target" "x86_64-unknown-freebsd" "--release" "--frozen" "--features" " jemalloc" "--manifest-path" "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/rustc/Cargo.toml" "--message-format" "json" Compiling rustc-serialize v0.3.24 Compiling serialize v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libserialize) Compiling rustc_driver v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_driver) Compiling ar v0.3.1 Compiling arena v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libarena) Compiling fmt_macros v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libfmt_macros) Compiling rustc_platform_intrinsics v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_platform_intrinsics) Compiling bitflags v1.0.1 Compiling stable_deref_trait v1.0.0 Compiling rustc v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc) Compiling byteorder v1.2.1 Compiling rustc_incremental v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_incremental) Compiling libc v0.2.39 Compiling cc v1.0.4 Compiling lazy_static v0.2.11 Compiling rustc_back v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_back) Compiling graphviz v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libgraphviz) Compiling cfg-if v0.1.2 Compiling rustc-demangle v0.1.5 Compiling smallvec v0.6.0 Compiling syntax v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libsyntax) Compiling rustc_metadata v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_metadata) Compiling unicode-width v0.1.4 Compiling rustc_cratesio_shim v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_cratesio_shim) Compiling owning_ref v0.3.3 Compiling rand v0.3.20 Compiling jobserver v0.1.9 Compiling log_settings v0.1.1 Compiling rls-span v0.4.0 Compiling log v0.4.1 Compiling miniz-sys v0.1.10 Compiling backtrace-sys v0.1.16 Compiling rustc_apfloat v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_apfloat) Compiling rls-data v0.15.0 Compiling log v0.3.9 Compiling parking_lot_core v0.2.9 Compiling env_logger v0.4.3 Compiling flate2 v1.0.1 Compiling parking_lot v0.5.3 Compiling rustc_data_structures v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_data_structures) Compiling backtrace v0.3.5 Compiling syntax_pos v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libsyntax_pos) Compiling rustc_errors v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_errors) Compiling rustc_const_math v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/librustc_const_math) Compiling proc_macro v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libproc_macro) Compiling syntax_ext v0.0.0 (file:///wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/libsyntax_ext) error: Could not compile `rustc`. Caused by: process didn't exit successfully: `/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/bootstrap/debug/rustc --crate-name rustc librustc/lib.rs --error-format json --crate-type dylib --emit=dep-info,link -C prefer-dynamic -C opt-level=2 -C metadata=76c8ebab465abe82 -C extra-filename=-76c8ebab465abe82 --out-dir /wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps --target x86_64-unknown-freebsd -L dependency=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps -L dependency=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/release/deps --extern rustc_errors=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/librustc_errors-60c6611063a4d140.so --extern serialize=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libserialize-e7044d6b5dbcb0e9.so --extern serialize=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libserialize-e7044d6b5dbcb0e9.rlib --extern arena=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libarena-6a220aa571aeab9a.so --extern rustc_back=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/librustc_back-527d1f33d3f12941.so --extern log=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/liblog-8ff70a91fe2b5bc1.rlib --extern backtrace=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libbacktrace-67db5cbd24329dd6.rlib --extern bitflags=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libbitflags-927b3256811c6bce.rlib --extern byteorder=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libbyteorder-ad409fe84b02b3ef.rlib --extern rustc_data_structures=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/librustc_data_structures-11e028d6128cd579.so --extern rustc_const_math=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/librustc_const_math-0d06d3da7e907fe2.so --extern flate2=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libflate2-8e11dfe9aac7aacb.rlib --extern graphviz=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libgraphviz-3445d3dcca68ab80.so --extern rustc_apfloat=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/librustc_apfloat-69dc227e3a8c202d.rlib --extern syntax_pos=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libsyntax_pos-07c884fb136971ea.so --extern jobserver=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libjobserver-d6fda7379e6d4aa4.rlib --extern fmt_macros=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libfmt_macros-550ecdcf9c6a8fbb.so --extern syntax=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/deps/libsyntax-cd2b3365f5cbdbf2.so -L native=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/build/backtrace-sys-d1911a6b0bd90021/out/.libs -L native=/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage1-rustc/x86_64-unknown-freebsd/release/build/miniz-sys-a865c9622ac6cc29/out` (signal: 9, SIGKILL: kill) thread 'main' panicked at 'command did not execute successfully: "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/x86_64-unknown-freebsd/stage0/bin/cargo" "build" "--target" "x86_64-unknown-freebsd" "--release" "--frozen" "--features" " jemalloc" "--manifest-path" "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/rustc/Cargo.toml" "--message-format" "json" expected success, got: exit code: 101', bootstrap/compile.rs:1060:9 note: Run with `RUST_BACKTRACE=1` for a backtrace. Traceback (most recent call last): File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/x.py", line 20, in <module> bootstrap.main() File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/bootstrap/bootstrap.py", line 763, in main bootstrap() File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/bootstrap/bootstrap.py", line 754, in bootstrap run(args, env=env, verbose=build.verbose) File "/wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/src/bootstrap/bootstrap.py", line 148, in run raise RuntimeError(err) RuntimeError: failed to run: /wrkdirs/usr/ports/lang/rust/work/rustc-1.25.0-src/build/bootstrap/debug/bootstrap build --verbose --config ./config.toml --jobs 4 *** Error code 1 Stop. make: stopped in /usr/ports/lang/rust So far, only my obsoleted patch, which is merely a reformulated lang/rust-nightly from 20180328 (current version in ports), manages to build successfully, including passing testport.
(In reply to Charlie Li from comment #16) > (In reply to Bryan Drewery from comment #14) > This patch causes either other processes or the build (in poudriere) on my > machine to get killed for "out of swap space", but when actually monitoring > the swap usage, the numbers don't even approach 50% usage, plus no apparent > indication of runaway memory usage of any kind. Example of when the system > chooses to kill rustc: So add more swap or reduce MAKE_JOBS_NUMBER in make.conf. Rust is more aggressive with using multiple CPU in the build now.
(In reply to Bryan Drewery from comment #17) This was from testport, so rust is the only item building. Furthermore, PARALLEL_JOBS is already reduced to 3 (ncpu - 1 on my machine). Still does not explain why my patch didn't have this problem.
(In reply to Charlie Li from comment #18) > (In reply to Bryan Drewery from comment #17) > This was from testport, so rust is the only item building. Furthermore, > PARALLEL_JOBS is already reduced to 3 (ncpu - 1 on my machine). Still does > not explain why my patch didn't have this problem. testport allows MAKE_JOBS to use all CPUS, it is not related to PARALLEL_JOBS. You would need to set MAKE_JOBS_NUMBER=3 in make.conf too. I don't know about your patch but it was wrong. You removed the bootstrap patching which is still needed on head. You bumped the bootstrap date to a newer one which resolves the problem but why not build with the bootstrap it expects rather than a newer one? While it fixes one thing it may break another subtly. files/patch-src_librustc__back_target_freebsd__base.rs is still partially needed as only 1 of the changes were upstreamed for 1.25. The 'is_like_openbsd' is still needed. The binaryen patch is still needed as it is still used in 1.25.
(In reply to Bryan Drewery from comment #17) > So add more swap That's not happening period. Also makes no sense considering that (at further investigation) swap usage plateaus at 30%, even at the process kill point.
(In reply to Charlie Li from comment #20) > (In reply to Bryan Drewery from comment #17) > > So add more swap > That's not happening period. Also makes no sense considering that (at > further investigation) swap usage plateaus at 30%, even at the process kill > point. If you're on head or 11-STABLE it's kind of a known problem right now that things are swapping too much. https://lists.freebsd.org/pipermail/freebsd-current/2018-March/068753.html
Comment on attachment 192083 [details] 12-CURRENT build log It turns out that the bogus OOM kill was caused by base r331732; I have since updated past base r331879 which fixes the problem. Thus, bdrewery@'s patch as-is builds successfully and passes testport on my machine now.
Hi! I tested bdrewery's patch successfully on 10.4 amd64 and i386 with `poudriere testport`. It's HEAD amd64's turn now. Meanwhile, I will prepare the bootstraps for aarch64. Thank you for preparing the patch!
The aarch64 bootstraps were uploaded to `LOCAL/dumbbell`. bdrewery, could you please update the `distinfo` in your patch and possibly commit it?
A commit references this bug: Author: bdrewery Date: Mon Apr 16 21:35:26 UTC 2018 New revision: 467538 URL: https://svnweb.freebsd.org/changeset/ports/467538 Log: Update to 1.25.0. - The ABI patch is no longer needed on head due to fixes being upstreamed to use the pre-ino64 symbols. The ABI patch is still needed for the bootstrap but should be removable for 1.26.0 if it uses beta 2018-03-18. PR: 227130 [based on] Tested by: dumbbell, Charlie Li Submitted by: riggs [based on] Differential Revision: https://reviews.freebsd.org/D14921 [based on] Changes: head/lang/rust/Makefile head/lang/rust/distinfo head/lang/rust/files/extra-patch-abi head/lang/rust/files/patch-src_librustc__back_target_freebsd__base.rs
A commit references this bug: Author: bdrewery Date: Mon Apr 16 21:37:22 UTC 2018 New revision: 467539 URL: https://svnweb.freebsd.org/changeset/ports/467539 Log: MFH: r467538 Update to 1.25.0. - The ABI patch is no longer needed on head due to fixes being upstreamed to use the pre-ino64 symbols. The ABI patch is still needed for the bootstrap but should be removable for 1.26.0 if it uses beta 2018-03-18. PR: 227130 [based on] Tested by: dumbbell, Charlie Li Submitted by: riggs [based on] Differential Revision: https://reviews.freebsd.org/D14921 [based on] Approved by: portmgr (implicit) Changes: _U branches/2018Q2/ branches/2018Q2/lang/rust/Makefile branches/2018Q2/lang/rust/distinfo branches/2018Q2/lang/rust/files/extra-patch-abi branches/2018Q2/lang/rust/files/patch-src_librustc__back_target_freebsd__base.rs