update: lang/rust

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

update: lang/rust

Sebastien Marie-3
Hi,

Here the diff for updating lang/rust to 1.39.0

The patch took more time than expected to be done: I had problem with sparc64
and I only achieved to have a workaround in order to avoid a SEGFAULT during the
build. I am suspecting some LLVM bug in sparc64, as the workaround is to build
some part of rust with -O3 (else the generated code will SEGFAULT). I didn't
really investigated at asm level.

The port was tested some times ago on amd64 (and build tested and all archs).

I intent to commit it in few days. But comments or OK are welcome :)

Thanks.
--
Sebastien Marie


Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/rust/Makefile,v
retrieving revision 1.102
diff -u -p -r1.102 Makefile
--- Makefile 29 Sep 2019 08:23:17 -0000 1.102
+++ Makefile 8 Dec 2019 10:55:23 -0000
@@ -13,17 +13,17 @@ COMMENT-gdb = Rust debugger through gdb
 COMMENT-clippy = Rust linter
 COMMENT-rustfmt = Rust code formatter
 
-V = 1.38.0
-CARGO_V = 0.39.0
+V = 1.39.0
+CARGO_V = 0.40.0
 CLIPPY_V = 0.0.212
-RUSTFMT_V = 1.4.4
+RUSTFMT_V = 1.4.8
 DISTNAME = rustc-${V}-src
 
 # rustc bootstrap version
-BV-aarch64 = 1.38.0-20190926
-BV-amd64 = 1.38.0-20190924
-BV-i386 = 1.38.0-20190924
-BV-sparc64 = 1.37.0-20190813
+BV-aarch64 = 1.39.0-20191124
+BV-amd64 = 1.39.0-20191122
+BV-i386 = 1.39.0-20191123
+BV-sparc64 = 1.39.0-20191207
 BV = ${BV-${MACHINE_ARCH}}
 
 PKGNAME = rust-${V}
@@ -138,7 +138,7 @@ SUBST_VARS += WRKBUILD
 post-patch:
  sed -i 's/"files":{[^}]*}/"files":{}/' \
  ${WRKSRC}/vendor/*/.cargo-checksum.json
- ${SUBST_CMD} ${WRKSRC}/src/tools/cargo/tests/testsuite/support/paths.rs
+ ${SUBST_CMD} ${WRKSRC}/src/tools/cargo/crates/cargo-test-support/src/paths.rs
 
 # - check datasize limit before configuring (and building)
 pre-configure:
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/rust/distinfo,v
retrieving revision 1.58
diff -u -p -r1.58 distinfo
--- distinfo 29 Sep 2019 08:23:17 -0000 1.58
+++ distinfo 8 Dec 2019 10:55:23 -0000
@@ -1,10 +1,10 @@
-SHA256 (rust/rustc-1.38.0-src.tar.xz) = OnmRqky0TvlB1xY25FqVRotSDcb8fPclNkklvT49OjQ=
-SHA256 (rust/rustc-bootstrap-aarch64-1.38.0-20190926.tar.xz) = K6z7+X02Zw6kzFdt93JoOhVFJmVI1tp2kcV3Ep07i1k=
-SHA256 (rust/rustc-bootstrap-amd64-1.38.0-20190924.tar.xz) = s7m04Xk4Rukj3of8sLaK2NRiRZoAEEaxeQ14zE7/42U=
-SHA256 (rust/rustc-bootstrap-i386-1.38.0-20190924.tar.xz) = p7GH8ebq4uh5OUGIK3qbmRoWnotASu9Z6K/nMOLX2Ck=
-SHA256 (rust/rustc-bootstrap-sparc64-1.37.0-20190813.tar.xz) = Mja3fEVQ6pD9cxq0ZfEX+O6QW+cVLpA9n5k67M6u0gU=
-SIZE (rust/rustc-1.38.0-src.tar.xz) = 96163304
-SIZE (rust/rustc-bootstrap-aarch64-1.38.0-20190926.tar.xz) = 179869984
-SIZE (rust/rustc-bootstrap-amd64-1.38.0-20190924.tar.xz) = 195854424
-SIZE (rust/rustc-bootstrap-i386-1.38.0-20190924.tar.xz) = 193885292
-SIZE (rust/rustc-bootstrap-sparc64-1.37.0-20190813.tar.xz) = 77696860
+SHA256 (rust/rustc-1.39.0-src.tar.xz) = Sw27NWBwaHpgYDT3HcAyt4O7+LXT+f/znywfvE8XHCk=
+SHA256 (rust/rustc-bootstrap-aarch64-1.39.0-20191124.tar.xz) = d+u86EWh5RRFuzf3NbOkHPV+jT5ySxEkqnOgQgU+w1g=
+SHA256 (rust/rustc-bootstrap-amd64-1.39.0-20191122.tar.xz) = SKh/PBPnJkPT489dOjhwwVemVEOA/UL5rOzmXWjCw84=
+SHA256 (rust/rustc-bootstrap-i386-1.39.0-20191123.tar.xz) = rbXw6X+yJdoinB56eCQPkg6k8o1SJiUl4yzcnPr2Als=
+SHA256 (rust/rustc-bootstrap-sparc64-1.39.0-20191207.tar.xz) = zbSeowzoJp2uhgnIcmOHiLXTZTlsXa0SGS8pm77zyaw=
+SIZE (rust/rustc-1.39.0-src.tar.xz) = 96495140
+SIZE (rust/rustc-bootstrap-aarch64-1.39.0-20191124.tar.xz) = 182606628
+SIZE (rust/rustc-bootstrap-amd64-1.39.0-20191122.tar.xz) = 198744372
+SIZE (rust/rustc-bootstrap-i386-1.39.0-20191123.tar.xz) = 198502860
+SIZE (rust/rustc-bootstrap-sparc64-1.39.0-20191207.tar.xz) = 225734860
Index: patches/patch-src_bootstrap_bin_rustc_rs
===================================================================
RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_bin_rustc_rs,v
retrieving revision 1.12
diff -u -p -r1.12 patch-src_bootstrap_bin_rustc_rs
--- patches/patch-src_bootstrap_bin_rustc_rs 29 Sep 2019 08:23:17 -0000 1.12
+++ patches/patch-src_bootstrap_bin_rustc_rs 8 Dec 2019 10:55:23 -0000
@@ -4,15 +4,16 @@ try to reduce memory usage on aarch64:
 Index: src/bootstrap/bin/rustc.rs
 --- src/bootstrap/bin/rustc.rs.orig
 +++ src/bootstrap/bin/rustc.rs
-@@ -222,6 +222,11 @@ fn main() {
-             cmd.arg("-C").arg(format!("codegen-units={}", s));
-         }
+@@ -113,6 +113,12 @@ fn main() {
+             Err(..) => "n",
+         };
 
-+        if target.contains("aarch64-unknown-openbsd")
++        if target.unwrap().contains("aarch64-unknown-openbsd")
 +            && crate_name == Some("rustc") {
++
 +            cmd.arg("-Z").arg("fewer-names");
 +        }
 +
-         // Emit save-analysis info.
-         if env::var("RUSTC_SAVE_ANALYSIS") == Ok("api".to_string()) {
-             cmd.arg("-Zsave-analysis");
+         // The compiler builtins are pretty sensitive to symbols referenced in
+         // libcore and such, so we never compile them with debug assertions.
+         //
Index: patches/patch-src_bootstrap_bootstrap_py
===================================================================
RCS file: patches/patch-src_bootstrap_bootstrap_py
diff -N patches/patch-src_bootstrap_bootstrap_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_bootstrap_bootstrap_py 8 Dec 2019 10:55:23 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+Workaround for sparc64: bootstrap segfaults without -O3
+
+Index: src/bootstrap/bootstrap.py
+--- src/bootstrap/bootstrap.py.orig
++++ src/bootstrap/bootstrap.py
+@@ -645,6 +645,9 @@ class RustBuild(object):
+         if self.get_toml("deny-warnings", "rust") != "false":
+             env["RUSTFLAGS"] += "-Dwarnings "
+
++        if self.build_triple() == "sparc64-unknown-openbsd":
++            env["RUSTFLAGS"] += "-Copt-level=3 "
++
+         env["PATH"] = os.path.join(self.bin_root(), "bin") + \
+             os.pathsep + env["PATH"]
+         if not os.path.isfile(self.cargo()):
Index: patches/patch-src_bootstrap_builder_rs
===================================================================
RCS file: patches/patch-src_bootstrap_builder_rs
diff -N patches/patch-src_bootstrap_builder_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_bootstrap_builder_rs 8 Dec 2019 10:55:23 -0000
@@ -0,0 +1,26 @@
+$OpenBSD$
+Fix rustdoc build
+https://github.com/rust-lang/rust/commit/73369f32621f6a844a80a8513ae3ded901e4a406
+Index: src/bootstrap/builder.rs
+--- src/bootstrap/builder.rs.orig
++++ src/bootstrap/builder.rs
+@@ -875,7 +875,18 @@ impl<'a> Builder<'a> {
+         // things still build right, please do!
+         match mode {
+             Mode::Std => metadata.push_str("std"),
+-            _ => {},
++            // When we're building rustc tools, they're built with a search path
++            // that contains things built during the rustc build. For example,
++            // bitflags is built during the rustc build, and is a dependency of
++            // rustdoc as well. We're building rustdoc in a different target
++            // directory, though, which means that Cargo will rebuild the
++            // dependency. When we go on to build rustdoc, we'll look for
++            // bitflags, and find two different copies: one built during the
++            // rustc step and one that we just built. This isn't always a
++            // problem, somehow -- not really clear why -- but we know that this
++            // fixes things.
++            Mode::ToolRustc => metadata.push_str("tool-rustc"),
++            _ => {}
+         }
+         cargo.env("__CARGO_DEFAULT_LIB_METADATA", &metadata);
+
Index: patches/patch-src_bootstrap_lib_rs
===================================================================
RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_lib_rs,v
retrieving revision 1.24
diff -u -p -r1.24 patch-src_bootstrap_lib_rs
--- patches/patch-src_bootstrap_lib_rs 29 Sep 2019 08:23:17 -0000 1.24
+++ patches/patch-src_bootstrap_lib_rs 8 Dec 2019 10:55:23 -0000
@@ -4,16 +4,7 @@ https://github.com/rust-lang/rust/issues
 Index: src/bootstrap/lib.rs
 --- src/bootstrap/lib.rs.orig
 +++ src/bootstrap/lib.rs
-@@ -104,7 +104,7 @@
- //! also check out the `src/bootstrap/README.md` file for more information.
-
- // NO-RUSTC-WRAPPER
--#![deny(warnings, rust_2018_idioms, unused_lifetimes)]
-+#![deny(rust_2018_idioms, unused_lifetimes)]
-
- #![feature(core_intrinsics)]
- #![feature(drain_filter)]
-@@ -768,7 +768,6 @@ impl Build {
+@@ -757,7 +757,6 @@ impl Build {
          // cc-rs because the build scripts will determine that for themselves.
          let mut base = self.cc[&target].args().iter()
                             .map(|s| s.to_string_lossy().into_owned())
Index: patches/patch-src_bootstrap_test_rs
===================================================================
RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_test_rs,v
retrieving revision 1.4
diff -u -p -r1.4 patch-src_bootstrap_test_rs
--- patches/patch-src_bootstrap_test_rs 29 Sep 2019 08:23:17 -0000 1.4
+++ patches/patch-src_bootstrap_test_rs 8 Dec 2019 10:55:23 -0000
@@ -4,7 +4,7 @@ Disable "Bootstrap" test by default (it
 Index: src/bootstrap/test.rs
 --- src/bootstrap/test.rs.orig
 +++ src/bootstrap/test.rs
-@@ -2085,7 +2085,7 @@ pub struct Bootstrap;
+@@ -2043,7 +2043,7 @@ pub struct Bootstrap;
 
  impl Step for Bootstrap {
      type Output = ();
Index: patches/patch-src_librustc_llvm_build_rs
===================================================================
RCS file: patches/patch-src_librustc_llvm_build_rs
diff -N patches/patch-src_librustc_llvm_build_rs
--- patches/patch-src_librustc_llvm_build_rs 29 Sep 2019 08:23:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-$OpenBSD: patch-src_librustc_llvm_build_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
-some archs are still using estdc++ and not c++
-https://github.com/rust-lang/rust/pull/63595
-
-Index: src/librustc_llvm/build.rs
---- src/librustc_llvm/build.rs.orig
-+++ src/librustc_llvm/build.rs
-@@ -250,8 +250,11 @@ fn main() {
-     let llvm_use_libcxx = env::var_os("LLVM_USE_LIBCXX");
-
-     let stdcppname = if target.contains("openbsd") {
--        // llvm-config on OpenBSD doesn't mention stdlib=libc++
--        "c++"
-+        if target.contains("sparc64") {
-+            "estdc++"
-+        } else {
-+            "c++"
-+        }
-     } else if target.contains("freebsd") {
-         "c++"
-     } else if target.contains("darwin") {
Index: patches/patch-src_librustc_target_spec_mod_rs
===================================================================
RCS file: patches/patch-src_librustc_target_spec_mod_rs
diff -N patches/patch-src_librustc_target_spec_mod_rs
--- patches/patch-src_librustc_target_spec_mod_rs 29 Sep 2019 08:23:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-$OpenBSD: patch-src_librustc_target_spec_mod_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
-add sparc64-unknown-openbsd definition
-https://github.com/rust-lang/rust/pull/63595
-
-Index: src/librustc_target/spec/mod.rs
---- src/librustc_target/spec/mod.rs.orig
-+++ src/librustc_target/spec/mod.rs
-@@ -395,6 +395,7 @@ supported_targets! {
-
-     ("aarch64-unknown-openbsd", aarch64_unknown_openbsd),
-     ("i686-unknown-openbsd", i686_unknown_openbsd),
-+    ("sparc64-unknown-openbsd", sparc64_unknown_openbsd),
-     ("x86_64-unknown-openbsd", x86_64_unknown_openbsd),
-
-     ("aarch64-unknown-netbsd", aarch64_unknown_netbsd),
Index: patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
===================================================================
RCS file: patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
diff -N patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
--- patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs 16 Aug 2019 18:14:21 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-$OpenBSD: patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs,v 1.1 2019/08/16 18:14:21 semarie Exp $
-add sparc64-unknown-openbsd definition
-https://github.com/rust-lang/rust/pull/63595
-
-Index: src/librustc_target/spec/sparc64_unknown_openbsd.rs
---- src/librustc_target/spec/sparc64_unknown_openbsd.rs.orig
-+++ src/librustc_target/spec/sparc64_unknown_openbsd.rs
-@@ -0,0 +1,22 @@
-+use crate::spec::{LinkerFlavor, Target, TargetResult};
-+
-+pub fn target() -> TargetResult {
-+    let mut base = super::openbsd_base::opts();
-+    base.cpu = "v9".to_string();
-+    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
-+    base.max_atomic_width = Some(64);
-+
-+    Ok(Target {
-+        llvm_target: "sparc64-unknown-openbsd".to_string(),
-+        target_endian: "big".to_string(),
-+        target_pointer_width: "64".to_string(),
-+        target_c_int_width: "32".to_string(),
-+        data_layout: "E-m:e-i64:64-n32:64-S128".to_string(),
-+        arch: "sparc64".to_string(),
-+        target_os: "openbsd".to_string(),
-+        target_env: String::new(),
-+        target_vendor: "unknown".to_string(),
-+        linker_flavor: LinkerFlavor::Gcc,
-+        options: base,
-+    })
-+}
Index: patches/patch-src_libunwind_build_rs
===================================================================
RCS file: patches/patch-src_libunwind_build_rs
diff -N patches/patch-src_libunwind_build_rs
--- patches/patch-src_libunwind_build_rs 29 Sep 2019 08:23:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-src_libunwind_build_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
-some archs are still using estdc++ and not c++
-https://github.com/rust-lang/rust/pull/63595
-
-Index: src/libunwind/build.rs
---- src/libunwind/build.rs.orig
-+++ src/libunwind/build.rs
-@@ -25,7 +25,11 @@ fn main() {
-     } else if target.contains("netbsd") {
-         println!("cargo:rustc-link-lib=gcc_s");
-     } else if target.contains("openbsd") {
--        println!("cargo:rustc-link-lib=c++abi");
-+        if target.contains("sparc64") {
-+            println!("cargo:rustc-link-lib=gcc");
-+        } else {
-+            println!("cargo:rustc-link-lib=c++abi");
-+        }
-     } else if target.contains("solaris") {
-         println!("cargo:rustc-link-lib=gcc_s");
-     } else if target.contains("dragonfly") {
Index: patches/patch-src_test_ui_abi_stack-probes-lto_rs
===================================================================
RCS file: patches/patch-src_test_ui_abi_stack-probes-lto_rs
diff -N patches/patch-src_test_ui_abi_stack-probes-lto_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_test_ui_abi_stack-probes-lto_rs 8 Dec 2019 10:55:23 -0000
@@ -0,0 +1,13 @@
+$OpenBSD$
+Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
+Index: src/test/ui/abi/stack-probes-lto.rs
+--- src/test/ui/abi/stack-probes-lto.rs.orig
++++ src/test/ui/abi/stack-probes-lto.rs
+@@ -8,6 +8,7 @@
+ // ignore-sparc
+ // ignore-sparc64
+ // ignore-wasm
++// ignore-openbsd
+ // ignore-cloudabi no processes
+ // ignore-emscripten no processes
+ // ignore-sgx no processes
Index: patches/patch-src_test_ui_abi_stack-probes_rs
===================================================================
RCS file: patches/patch-src_test_ui_abi_stack-probes_rs
diff -N patches/patch-src_test_ui_abi_stack-probes_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_test_ui_abi_stack-probes_rs 8 Dec 2019 10:55:23 -0000
@@ -0,0 +1,13 @@
+$OpenBSD$
+Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
+Index: src/test/ui/abi/stack-probes.rs
+--- src/test/ui/abi/stack-probes.rs.orig
++++ src/test/ui/abi/stack-probes.rs
+@@ -8,6 +8,7 @@
+ // ignore-sparc
+ // ignore-sparc64
+ // ignore-wasm
++// ignore-openbsd
+ // ignore-cloudabi no processes
+ // ignore-emscripten no processes
+ // ignore-sgx no processes
Index: patches/patch-src_test_ui_stack-probes-lto_rs
===================================================================
RCS file: patches/patch-src_test_ui_stack-probes-lto_rs
diff -N patches/patch-src_test_ui_stack-probes-lto_rs
--- patches/patch-src_test_ui_stack-probes-lto_rs 29 Sep 2019 08:23:17 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-$OpenBSD: patch-src_test_ui_stack-probes-lto_rs,v 1.1 2019/09/29 08:23:17 semarie Exp $
-Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
-Index: src/test/ui/stack-probes-lto.rs
---- src/test/ui/stack-probes-lto.rs.orig
-+++ src/test/ui/stack-probes-lto.rs
-@@ -8,6 +8,7 @@
- // ignore-sparc
- // ignore-sparc64
- // ignore-wasm
-+// ignore-openbsd
- // ignore-cloudabi no processes
- // ignore-emscripten no processes
- // ignore-sgx no processes
Index: patches/patch-src_test_ui_stack-probes_rs
===================================================================
RCS file: patches/patch-src_test_ui_stack-probes_rs
diff -N patches/patch-src_test_ui_stack-probes_rs
--- patches/patch-src_test_ui_stack-probes_rs 29 Sep 2019 08:23:17 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-$OpenBSD: patch-src_test_ui_stack-probes_rs,v 1.1 2019/09/29 08:23:17 semarie Exp $
-Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
-Index: src/test/ui/stack-probes.rs
---- src/test/ui/stack-probes.rs.orig
-+++ src/test/ui/stack-probes.rs
-@@ -8,6 +8,7 @@
- // ignore-sparc
- // ignore-sparc64
- // ignore-wasm
-+// ignore-openbsd
- // ignore-cloudabi no processes
- // ignore-emscripten no processes
- // ignore-sgx no processes
Index: patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
===================================================================
RCS file: patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
diff -N patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs 8 Dec 2019 10:55:23 -0000
@@ -0,0 +1,26 @@
+$OpenBSD$
+
+Index: src/tools/cargo/crates/cargo-test-support/src/paths.rs
+--- src/tools/cargo/crates/cargo-test-support/src/paths.rs.orig
++++ src/tools/cargo/crates/cargo-test-support/src/paths.rs
+@@ -13,19 +13,7 @@ static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
+
+ lazy_static! {
+     static ref GLOBAL_ROOT: PathBuf = {
+-        let mut path = t!(env::current_exe());
+-        path.pop(); // chop off exe name
+-        path.pop(); // chop off 'debug'
+-
+-        // If `cargo test` is run manually then our path looks like
+-        // `target/debug/foo`, in which case our `path` is already pointing at
+-        // `target`. If, however, `cargo test --target $target` is used then the
+-        // output is `target/$target/debug/foo`, so our path is pointing at
+-        // `target/$target`. Here we conditionally pop the `$target` name.
+-        if path.file_name().and_then(|s| s.to_str()) != Some("target") {
+-            path.pop();
+-        }
+-
++        let path = PathBuf::from("${WRKBUILD}/test-cargo");
+         path.push(CARGO_INTEGRATION_TEST_DIR);
+         path.mkdir_p();
+         path
Index: patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
===================================================================
RCS file: patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
diff -N patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
--- patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs 29 Sep 2019 08:23:17 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-$OpenBSD: patch-src_tools_cargo_tests_testsuite_support_paths_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
-
-Index: src/tools/cargo/tests/testsuite/support/paths.rs
---- src/tools/cargo/tests/testsuite/support/paths.rs.orig
-+++ src/tools/cargo/tests/testsuite/support/paths.rs
-@@ -14,19 +14,7 @@ static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
-
- lazy_static! {
-     static ref GLOBAL_ROOT: PathBuf = {
--        let mut path = t!(env::current_exe());
--        path.pop(); // chop off exe name
--        path.pop(); // chop off 'debug'
--
--        // If `cargo test` is run manually then our path looks like
--        // `target/debug/foo`, in which case our `path` is already pointing at
--        // `target`. If, however, `cargo test --target $target` is used then the
--        // output is `target/$target/debug/foo`, so our path is pointing at
--        // `target/$target`. Here we conditionally pop the `$target` name.
--        if path.file_name().and_then(|s| s.to_str()) != Some("target") {
--            path.pop();
--        }
--
-+        let path = PathBuf::from("${WRKBUILD}/test-cargo");
-         path.push(CARGO_INTEGRATION_TEST_DIR);
-         path.mkdir_p();
-         path
Index: patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs
===================================================================
RCS file: /cvs/ports/lang/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs,v
retrieving revision 1.1
diff -u -p -r1.1 patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs
--- patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs 29 Sep 2019 08:23:17 -0000 1.1
+++ patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs 8 Dec 2019 10:55:23 -0000
@@ -5,7 +5,7 @@ https://github.com/rust-lang/libc/pull/1
 Index: vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
 --- vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs.orig
 +++ vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
-@@ -1436,6 +1436,9 @@ cfg_if! {
+@@ -1437,6 +1437,9 @@ cfg_if! {
      } else if #[cfg(target_arch = "aarch64")] {
          mod aarch64;
          pub use self::aarch64::*;
Index: patches/patch-vendor_libgit2-sys_lib_rs
===================================================================
RCS file: /cvs/ports/lang/rust/patches/patch-vendor_libgit2-sys_lib_rs,v
retrieving revision 1.1
diff -u -p -r1.1 patch-vendor_libgit2-sys_lib_rs
--- patches/patch-vendor_libgit2-sys_lib_rs 29 Sep 2019 08:23:17 -0000 1.1
+++ patches/patch-vendor_libgit2-sys_lib_rs 8 Dec 2019 10:55:23 -0000
@@ -29,7 +29,7 @@ Index: vendor/libgit2-sys/lib.rs
 
  #[repr(C)]
  pub struct git_push_update {
-@@ -1892,7 +1889,7 @@ extern "C" {
+@@ -1939,7 +1936,7 @@ extern "C" {
          repo: *mut git_repository,
          options: *const git_status_options,
      ) -> c_int;
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/lang/rust/pkg/PLIST-main,v
retrieving revision 1.21
diff -u -p -r1.21 PLIST-main
--- pkg/PLIST-main 29 Sep 2019 08:23:17 -0000 1.21
+++ pkg/PLIST-main 8 Dec 2019 10:55:23 -0000
@@ -4,11 +4,10 @@
 @bin bin/cargo
 @bin bin/rustc
 @bin bin/rustdoc
-lib/librustc_driver-7334a9357bae3bae.so
-lib/librustc_macros-682b0305a704df88.so
-lib/libstd-9ca43a303eb2c8b1.so
-lib/libterm-38eb38acc80d3055.so
-lib/libtest-0ec1949644c3e841.so
+lib/librustc_driver-1606be613dcf0865.so
+lib/librustc_macros-a0a13155f0f7063f.so
+lib/libstd-d37decbf2d7be566.so
+lib/libtest-efeac124cbe33a76.so
 lib/rustlib/
 lib/rustlib/etc/
 lib/rustlib/etc/debugger_pretty_printers_common.py
@@ -19,127 +18,128 @@ lib/rustlib/${TRIPLE_ARCH}/
 lib/rustlib/${TRIPLE_ARCH}/codegen-backends/
 lib/rustlib/${TRIPLE_ARCH}/codegen-backends/librustc_codegen_llvm-llvm.so
 lib/rustlib/${TRIPLE_ARCH}/lib/
-lib/rustlib/${TRIPLE_ARCH}/lib/liballoc-36852a7819e8d0c1.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libannotate_snippets-d2bcae2ddb59e443.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libarena-220e218f54049f3a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libarrayvec-3a15280e4e1924e1.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libatty-9a43b2caf1a6e1ac.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-bd930610c2320f09.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-eb6910e932ccffe9.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-2bcb70ee4037bfc6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-3538891d737ff6f4.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libbitflags-4dd322d883b94e1b.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libbyteorder-4aa56d8facbc58dd.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcc-540a448284011734.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-1a8cd70ab4a99752.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-3038b85f9aafafc6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_engine-97be28a23cb622d3.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_macros-91e531711b27daab.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler_builtins-4797fbd3d7eb9c19.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcore-d88254451c78c288.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcrc32fast-1f8438637372243d.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_deque-a3c3c5a26faf79fd.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_epoch-6063e3c38e3ad967.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-2bcda5f21d09bdac.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-8cbc024e0c5093f3.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libdatafrog-5179ed3167b70539.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libeither-e0158664272a5bde.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libena-c589e8612b8c19cd.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libenv_logger-5627df291955aa63.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libflate2-2ac4bf3bc5aedb07.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-60b66e1465a825fc.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-b806b497032833ac.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-f0fafda27e935c68.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libhashbrown-76e43be31287666c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libhumantime-9442ff59e598ea7b.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libindexmap-1c40adecb1a374a9.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libitoa-c747df8e7d903f30.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libjobserver-2c9763fa16b40eb6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-55b3abc184b6cb7b.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-ae4e99ece89939e8.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-3eb34a5db42f3b69.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-72b03002151a1ba6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblock_api-0e5469be8a0ee8bc.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblog-4cfe86ac2f832636.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/liblog_settings-7898d6eac4c38964.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libmeasureme-05ff1b5cd15130f5.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libmemmap-9ccdd6467865e769.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libmemoffset-fb8ddc58dc5dadfb.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libminiz_sys-e2bb8939250c7a72.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libnodrop-53a2adc0e031ed8c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libnum_cpus-6508f4003210d1bc.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libowning_ref-659927a9159e3ac6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_abort-ad5d246753614c43.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_unwind-b06cf6ddaed1917c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot-babb1badec702978.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot_core-f0b4fc0a22cc79e5.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libpolonius_engine-1fcf49ef3e1adc5e.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libproc_macro-ea21ea8bba5181e0.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libpunycode-83bc200530d5827e.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libquick_error-2a2fb589e8922a5e.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand-673508021dc8a28d.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand_chacha-d52eb7a0be7f2b35.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand_core-9a99909710a848b2.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand_hc-25242bfa04c1b01a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand_isaac-897c6a5cd578871e.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand_pcg-7ac6ab85d397c93c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librand_xorshift-78d73218291d5f18.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libremove_dir_all-0f7d66ffbd601312.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librls_data-32956e050b6dc26a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librls_span-ce8010f0fc351a74.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc-c92cba089a0c9d87.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_apfloat-a9a512fa826685b4.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_ast_borrowck-32db12a4e80bf849.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_ssa-646945d47e805402.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_utils-991e35a7e119b0a6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-7d73fca79818032d.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-1eeebf530896bf12.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-c74f9bedb3d15391.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-7334a9357bae3bae.so
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_errors-0af4ead6a18b78da.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_fs_util-a9d8a13e561fd045.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_hash-0b0bd00881191b32.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_incremental-0dadf3c9520944d4.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_interface-3536255937fbdcc6.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lexer-60af954ee11e103a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-f311bfa3911a299f.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_macros-682b0305a704df88.so
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_metadata-bb670352bca28c06.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-4d3ba6268ae7268a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_passes-abedfe6fb12cc0b0.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin-33bce6d8e60898e0.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-bf52590fede8009d.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon-9545327130f15ed9.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon_core-875c6af4ca2f0cdb.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-c650ccb391830aff.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_save_analysis-e34f0ab5a41f00af.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_alloc-ed7e05caed933486.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_core-a244c9e83a75389b.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_target-b143eefa8c613a4c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_traits-06ccc916bc7d642a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-0eeb15086eeaf19d.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libryu-c2e8e983b3bc059d.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libscoped_tls-8ed554f0ef02a18b.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-0c6b10f9f8dc3621.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libserde-20cf816f35665c7c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libserde_json-22c0f816a4eb722c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-ca5674d547a6752b.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libsmallvec-03f8492957d7a2ec.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libstable_deref_trait-8f63efd19c451d0c.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libstd-9ca43a303eb2c8b1.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libstd-9ca43a303eb2c8b1.so
-lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-8b4bc621343f3d9a.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_ext-1345630a52da46b4.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_pos-929a9e8e1ce00215.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libtempfile-f24565121164bd8e.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libterm-38eb38acc80d3055.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libterm-38eb38acc80d3055.so
-lib/rustlib/${TRIPLE_ARCH}/lib/libtermcolor-56627662d258d9f1.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libtest-0ec1949644c3e841.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libtest-0ec1949644c3e841.so
-lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-1675276c3ac9ffde.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-b2873080a4f0d0da.rlib
-lib/rustlib/${TRIPLE_ARCH}/lib/libunwind-5e3d91563aa76b22.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liballoc-d6289c27aef82f74.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libannotate_snippets-09f38bae943e646e.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libarena-520f5b9b12e5a718.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libarrayvec-44f37aa228a9c845.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libatty-fae302ec26ab150e.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-5417168f4ecf0b51.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-bf31a8237be8931a.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-f44fe2f044944ab1.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-fa66bf62c2e70083.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libbitflags-c322a547231b6776.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libbyteorder-061a343e95fd3aed.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libc2_chacha-34609398ee817956.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcc-60533bf54a8a0fb5.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-8054f57f9c881e32.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-c895cb5e0fb8c19d.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_engine-e8b3ee336d5e7958.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_macros-163a1c2878cc1947.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler_builtins-c8b585eb56abc414.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcore-c410fa45b7966969.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcrc32fast-69a72454065fa036.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_deque-92f82f646e5089f4.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_epoch-db44c3a724cb485b.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-262fca41cf2ae9b9.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-cbdcb9489d891e08.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libdatafrog-b409158ad724d45c.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libeither-49cec8fa09531353.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libena-ca9e5b1edacedc49.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libenv_logger-71bf42680fd11f42.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libflate2-3cb455eb3ba77a81.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-bae4d05a234190f8.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-eb865286d6925182.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libgetrandom-00d20c340b02657b.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-d01aad69ced95815.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libhashbrown-57a52b14be6e5d83.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libindexmap-a13149a13a4d12e6.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libitoa-348ed89f8999311b.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libjobserver-cedfad4fa6ec0253.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-7bd91b1416dc4c85.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-f4a2ba544d7d5961.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-b6ce2dd39a12a155.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-e17f7b10824cfd23.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblock_api-cac976d41bf83d09.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblog-57e4167cd8787c28.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/liblog_settings-bac18e4662d4e3d4.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libmeasureme-372313f5a2f136a0.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libmemmap-f21eca5ad31c1c12.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libmemoffset-33f033fa857250f9.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libminiz_sys-ec4b8c44675f2d4d.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libnodrop-31f224dce0e281cf.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libnum_cpus-f0bbdccfdf2088e5.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libonce_cell-0ca7e7c6fa325427.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_abort-35e7e645fe1c4e4c.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_unwind-8275c47be73409a4.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot-278f2d7810732963.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot_core-c0b880e0a9eb33fd.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libpolonius_engine-9cee3d969af444dc.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libppv_lite86-3daddea0021c3570.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libproc_macro-dac4d13fc88ca4c5.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libpunycode-bb0a5a5b8d4ab8dc.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librand-a02d5b6ad9a120b1.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librand_chacha-00393a51d25fc623.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librand_core-4168987aee19ebc4.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libremove_dir_all-5dbba00a148fd0f5.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librls_data-9b917d46e80f9662.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librls_span-a7f6d8f8ccf23a7e.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc-7eb5fe68c14b8bda.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_apfloat-f44c5706bf0a5a2e.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_ast_borrowck-e2aa208cd0e2583a.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_ssa-5161a0f5ee28f97a.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_utils-e815caffad55e084.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-d64288d92a630214.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-8f6b9ddcc7201da3.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-e7bac4eb670c1d68.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-1606be613dcf0865.so
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_errors-fc819ebc6a304fcd.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_fs_util-1d4c3644ae6c526b.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_hash-b0cd4e680f1a6152.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_incremental-8144dd09cc4f1d45.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_interface-226c0942216c3be0.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lexer-447fffed0f6e4268.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-11d2fed567157f44.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_macros-a0a13155f0f7063f.so
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_metadata-4e05c9bad14295b2.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-1f93498f1165cc15.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_passes-0557f36c0967e44f.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin-479bba114d80899b.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin_impl-2b8e81b624b9fc27.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-9a95550d8f0606d3.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon-d8a272eeb52478f5.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon_core-b67e5d356b8ef1df.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-4d2d670c232985f7.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_save_analysis-ac907576403235e9.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_alloc-b511cb7c627d3593.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_core-4f6ae5852c9ab846.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_std-19cf0ede7faa9e76.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_target-844e75954b2110bb.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_traits-00bf47bff77dec46.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-b3fb541ec551adac.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libryu-60cf5e49ccff6a2a.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libscoped_tls-0bc3b131dbe844cc.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-13565673691a5e3b.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-417d8bc9ad1f34d1.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libserde-791a73e8d14f40ec.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libserde_json-82b8a609d56a76de.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-f3040a5efb57db8a.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libsmallvec-33a2c36e485e406c.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libstable_deref_trait-88e8092e5d47c8c2.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libstd-d37decbf2d7be566.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libstd-d37decbf2d7be566.so
+lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-a02fca8defc4a9b8.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_ext-db3ef9764af704e0.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_pos-7b1a9a123c53dc53.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libtempfile-aae36d5d691bf0a2.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libterm-8c71712ca5699a61.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libterm_size-e500dfdcfde5d739.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libtermcolor-b97a72ae01177052.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libtest-efeac124cbe33a76.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libtest-efeac124cbe33a76.so
+lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-6a01ba0088334a70.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-7a86e6735a7786e4.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_xid-3668f41535c028ca.rlib
+lib/rustlib/${TRIPLE_ARCH}/lib/libunwind-498683b6e47ce894.rlib
 @man man/man1/cargo-bench.1
 @man man/man1/cargo-build.1
 @man man/man1/cargo-check.1

Reply | Threaded
Open this post in threaded view
|

Re: update: lang/rust

Reyk Floeter-2
On Sun, Dec 08, 2019 at 12:30:09PM +0100, Sebastien Marie wrote:

> Hi,
>
> Here the diff for updating lang/rust to 1.39.0
>
> The patch took more time than expected to be done: I had problem with sparc64
> and I only achieved to have a workaround in order to avoid a SEGFAULT during the
> build. I am suspecting some LLVM bug in sparc64, as the workaround is to build
> some part of rust with -O3 (else the generated code will SEGFAULT). I didn't
> really investigated at asm level.
>
> The port was tested some times ago on amd64 (and build tested and all archs).
>
> I intent to commit it in few days. But comments or OK are welcome :)
>
> Thanks.

Lightly tested - looks good, compiles, and works fine.

- I was using 1.39-beta before (using your build-rust script) and had
  some issues - all of them disappeared with this port (libclang, cargo
  update, clippy, ...).

- Works fine with 1.39 async/await code, for example
  https://crates.io/crates/tokio-libtls v1.1.0

Thanks for your work!  I'm excited to see 1.39 in OpenBSD.

I cannot really judge the ports Makefile,
otherwise OK reyk@

> --
> Sebastien Marie
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/lang/rust/Makefile,v
> retrieving revision 1.102
> diff -u -p -r1.102 Makefile
> --- Makefile 29 Sep 2019 08:23:17 -0000 1.102
> +++ Makefile 8 Dec 2019 10:55:23 -0000
> @@ -13,17 +13,17 @@ COMMENT-gdb = Rust debugger through gdb
>  COMMENT-clippy = Rust linter
>  COMMENT-rustfmt = Rust code formatter
>  
> -V = 1.38.0
> -CARGO_V = 0.39.0
> +V = 1.39.0
> +CARGO_V = 0.40.0
>  CLIPPY_V = 0.0.212
> -RUSTFMT_V = 1.4.4
> +RUSTFMT_V = 1.4.8
>  DISTNAME = rustc-${V}-src
>  
>  # rustc bootstrap version
> -BV-aarch64 = 1.38.0-20190926
> -BV-amd64 = 1.38.0-20190924
> -BV-i386 = 1.38.0-20190924
> -BV-sparc64 = 1.37.0-20190813
> +BV-aarch64 = 1.39.0-20191124
> +BV-amd64 = 1.39.0-20191122
> +BV-i386 = 1.39.0-20191123
> +BV-sparc64 = 1.39.0-20191207
>  BV = ${BV-${MACHINE_ARCH}}
>  
>  PKGNAME = rust-${V}
> @@ -138,7 +138,7 @@ SUBST_VARS += WRKBUILD
>  post-patch:
>   sed -i 's/"files":{[^}]*}/"files":{}/' \
>   ${WRKSRC}/vendor/*/.cargo-checksum.json
> - ${SUBST_CMD} ${WRKSRC}/src/tools/cargo/tests/testsuite/support/paths.rs
> + ${SUBST_CMD} ${WRKSRC}/src/tools/cargo/crates/cargo-test-support/src/paths.rs
>  
>  # - check datasize limit before configuring (and building)
>  pre-configure:
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/lang/rust/distinfo,v
> retrieving revision 1.58
> diff -u -p -r1.58 distinfo
> --- distinfo 29 Sep 2019 08:23:17 -0000 1.58
> +++ distinfo 8 Dec 2019 10:55:23 -0000
> @@ -1,10 +1,10 @@
> -SHA256 (rust/rustc-1.38.0-src.tar.xz) = OnmRqky0TvlB1xY25FqVRotSDcb8fPclNkklvT49OjQ=
> -SHA256 (rust/rustc-bootstrap-aarch64-1.38.0-20190926.tar.xz) = K6z7+X02Zw6kzFdt93JoOhVFJmVI1tp2kcV3Ep07i1k=
> -SHA256 (rust/rustc-bootstrap-amd64-1.38.0-20190924.tar.xz) = s7m04Xk4Rukj3of8sLaK2NRiRZoAEEaxeQ14zE7/42U=
> -SHA256 (rust/rustc-bootstrap-i386-1.38.0-20190924.tar.xz) = p7GH8ebq4uh5OUGIK3qbmRoWnotASu9Z6K/nMOLX2Ck=
> -SHA256 (rust/rustc-bootstrap-sparc64-1.37.0-20190813.tar.xz) = Mja3fEVQ6pD9cxq0ZfEX+O6QW+cVLpA9n5k67M6u0gU=
> -SIZE (rust/rustc-1.38.0-src.tar.xz) = 96163304
> -SIZE (rust/rustc-bootstrap-aarch64-1.38.0-20190926.tar.xz) = 179869984
> -SIZE (rust/rustc-bootstrap-amd64-1.38.0-20190924.tar.xz) = 195854424
> -SIZE (rust/rustc-bootstrap-i386-1.38.0-20190924.tar.xz) = 193885292
> -SIZE (rust/rustc-bootstrap-sparc64-1.37.0-20190813.tar.xz) = 77696860
> +SHA256 (rust/rustc-1.39.0-src.tar.xz) = Sw27NWBwaHpgYDT3HcAyt4O7+LXT+f/znywfvE8XHCk=
> +SHA256 (rust/rustc-bootstrap-aarch64-1.39.0-20191124.tar.xz) = d+u86EWh5RRFuzf3NbOkHPV+jT5ySxEkqnOgQgU+w1g=
> +SHA256 (rust/rustc-bootstrap-amd64-1.39.0-20191122.tar.xz) = SKh/PBPnJkPT489dOjhwwVemVEOA/UL5rOzmXWjCw84=
> +SHA256 (rust/rustc-bootstrap-i386-1.39.0-20191123.tar.xz) = rbXw6X+yJdoinB56eCQPkg6k8o1SJiUl4yzcnPr2Als=
> +SHA256 (rust/rustc-bootstrap-sparc64-1.39.0-20191207.tar.xz) = zbSeowzoJp2uhgnIcmOHiLXTZTlsXa0SGS8pm77zyaw=
> +SIZE (rust/rustc-1.39.0-src.tar.xz) = 96495140
> +SIZE (rust/rustc-bootstrap-aarch64-1.39.0-20191124.tar.xz) = 182606628
> +SIZE (rust/rustc-bootstrap-amd64-1.39.0-20191122.tar.xz) = 198744372
> +SIZE (rust/rustc-bootstrap-i386-1.39.0-20191123.tar.xz) = 198502860
> +SIZE (rust/rustc-bootstrap-sparc64-1.39.0-20191207.tar.xz) = 225734860
> Index: patches/patch-src_bootstrap_bin_rustc_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_bin_rustc_rs,v
> retrieving revision 1.12
> diff -u -p -r1.12 patch-src_bootstrap_bin_rustc_rs
> --- patches/patch-src_bootstrap_bin_rustc_rs 29 Sep 2019 08:23:17 -0000 1.12
> +++ patches/patch-src_bootstrap_bin_rustc_rs 8 Dec 2019 10:55:23 -0000
> @@ -4,15 +4,16 @@ try to reduce memory usage on aarch64:
>  Index: src/bootstrap/bin/rustc.rs
>  --- src/bootstrap/bin/rustc.rs.orig
>  +++ src/bootstrap/bin/rustc.rs
> -@@ -222,6 +222,11 @@ fn main() {
> -             cmd.arg("-C").arg(format!("codegen-units={}", s));
> -         }
> +@@ -113,6 +113,12 @@ fn main() {
> +             Err(..) => "n",
> +         };
>  
> -+        if target.contains("aarch64-unknown-openbsd")
> ++        if target.unwrap().contains("aarch64-unknown-openbsd")
>  +            && crate_name == Some("rustc") {
> ++
>  +            cmd.arg("-Z").arg("fewer-names");
>  +        }
>  +
> -         // Emit save-analysis info.
> -         if env::var("RUSTC_SAVE_ANALYSIS") == Ok("api".to_string()) {
> -             cmd.arg("-Zsave-analysis");
> +         // The compiler builtins are pretty sensitive to symbols referenced in
> +         // libcore and such, so we never compile them with debug assertions.
> +         //
> Index: patches/patch-src_bootstrap_bootstrap_py
> ===================================================================
> RCS file: patches/patch-src_bootstrap_bootstrap_py
> diff -N patches/patch-src_bootstrap_bootstrap_py
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_bootstrap_bootstrap_py 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,16 @@
> +$OpenBSD$
> +Workaround for sparc64: bootstrap segfaults without -O3
> +
> +Index: src/bootstrap/bootstrap.py
> +--- src/bootstrap/bootstrap.py.orig
> ++++ src/bootstrap/bootstrap.py
> +@@ -645,6 +645,9 @@ class RustBuild(object):
> +         if self.get_toml("deny-warnings", "rust") != "false":
> +             env["RUSTFLAGS"] += "-Dwarnings "
> +
> ++        if self.build_triple() == "sparc64-unknown-openbsd":
> ++            env["RUSTFLAGS"] += "-Copt-level=3 "
> ++
> +         env["PATH"] = os.path.join(self.bin_root(), "bin") + \
> +             os.pathsep + env["PATH"]
> +         if not os.path.isfile(self.cargo()):
> Index: patches/patch-src_bootstrap_builder_rs
> ===================================================================
> RCS file: patches/patch-src_bootstrap_builder_rs
> diff -N patches/patch-src_bootstrap_builder_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_bootstrap_builder_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,26 @@
> +$OpenBSD$
> +Fix rustdoc build
> +https://github.com/rust-lang/rust/commit/73369f32621f6a844a80a8513ae3ded901e4a406
> +Index: src/bootstrap/builder.rs
> +--- src/bootstrap/builder.rs.orig
> ++++ src/bootstrap/builder.rs
> +@@ -875,7 +875,18 @@ impl<'a> Builder<'a> {
> +         // things still build right, please do!
> +         match mode {
> +             Mode::Std => metadata.push_str("std"),
> +-            _ => {},
> ++            // When we're building rustc tools, they're built with a search path
> ++            // that contains things built during the rustc build. For example,
> ++            // bitflags is built during the rustc build, and is a dependency of
> ++            // rustdoc as well. We're building rustdoc in a different target
> ++            // directory, though, which means that Cargo will rebuild the
> ++            // dependency. When we go on to build rustdoc, we'll look for
> ++            // bitflags, and find two different copies: one built during the
> ++            // rustc step and one that we just built. This isn't always a
> ++            // problem, somehow -- not really clear why -- but we know that this
> ++            // fixes things.
> ++            Mode::ToolRustc => metadata.push_str("tool-rustc"),
> ++            _ => {}
> +         }
> +         cargo.env("__CARGO_DEFAULT_LIB_METADATA", &metadata);
> +
> Index: patches/patch-src_bootstrap_lib_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_lib_rs,v
> retrieving revision 1.24
> diff -u -p -r1.24 patch-src_bootstrap_lib_rs
> --- patches/patch-src_bootstrap_lib_rs 29 Sep 2019 08:23:17 -0000 1.24
> +++ patches/patch-src_bootstrap_lib_rs 8 Dec 2019 10:55:23 -0000
> @@ -4,16 +4,7 @@ https://github.com/rust-lang/rust/issues
>  Index: src/bootstrap/lib.rs
>  --- src/bootstrap/lib.rs.orig
>  +++ src/bootstrap/lib.rs
> -@@ -104,7 +104,7 @@
> - //! also check out the `src/bootstrap/README.md` file for more information.
> -
> - // NO-RUSTC-WRAPPER
> --#![deny(warnings, rust_2018_idioms, unused_lifetimes)]
> -+#![deny(rust_2018_idioms, unused_lifetimes)]
> -
> - #![feature(core_intrinsics)]
> - #![feature(drain_filter)]
> -@@ -768,7 +768,6 @@ impl Build {
> +@@ -757,7 +757,6 @@ impl Build {
>           // cc-rs because the build scripts will determine that for themselves.
>           let mut base = self.cc[&target].args().iter()
>                              .map(|s| s.to_string_lossy().into_owned())
> Index: patches/patch-src_bootstrap_test_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_test_rs,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-src_bootstrap_test_rs
> --- patches/patch-src_bootstrap_test_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ patches/patch-src_bootstrap_test_rs 8 Dec 2019 10:55:23 -0000
> @@ -4,7 +4,7 @@ Disable "Bootstrap" test by default (it
>  Index: src/bootstrap/test.rs
>  --- src/bootstrap/test.rs.orig
>  +++ src/bootstrap/test.rs
> -@@ -2085,7 +2085,7 @@ pub struct Bootstrap;
> +@@ -2043,7 +2043,7 @@ pub struct Bootstrap;
>  
>   impl Step for Bootstrap {
>       type Output = ();
> Index: patches/patch-src_librustc_llvm_build_rs
> ===================================================================
> RCS file: patches/patch-src_librustc_llvm_build_rs
> diff -N patches/patch-src_librustc_llvm_build_rs
> --- patches/patch-src_librustc_llvm_build_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -$OpenBSD: patch-src_librustc_llvm_build_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -some archs are still using estdc++ and not c++
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/librustc_llvm/build.rs
> ---- src/librustc_llvm/build.rs.orig
> -+++ src/librustc_llvm/build.rs
> -@@ -250,8 +250,11 @@ fn main() {
> -     let llvm_use_libcxx = env::var_os("LLVM_USE_LIBCXX");
> -
> -     let stdcppname = if target.contains("openbsd") {
> --        // llvm-config on OpenBSD doesn't mention stdlib=libc++
> --        "c++"
> -+        if target.contains("sparc64") {
> -+            "estdc++"
> -+        } else {
> -+            "c++"
> -+        }
> -     } else if target.contains("freebsd") {
> -         "c++"
> -     } else if target.contains("darwin") {
> Index: patches/patch-src_librustc_target_spec_mod_rs
> ===================================================================
> RCS file: patches/patch-src_librustc_target_spec_mod_rs
> diff -N patches/patch-src_librustc_target_spec_mod_rs
> --- patches/patch-src_librustc_target_spec_mod_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -$OpenBSD: patch-src_librustc_target_spec_mod_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -add sparc64-unknown-openbsd definition
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/librustc_target/spec/mod.rs
> ---- src/librustc_target/spec/mod.rs.orig
> -+++ src/librustc_target/spec/mod.rs
> -@@ -395,6 +395,7 @@ supported_targets! {
> -
> -     ("aarch64-unknown-openbsd", aarch64_unknown_openbsd),
> -     ("i686-unknown-openbsd", i686_unknown_openbsd),
> -+    ("sparc64-unknown-openbsd", sparc64_unknown_openbsd),
> -     ("x86_64-unknown-openbsd", x86_64_unknown_openbsd),
> -
> -     ("aarch64-unknown-netbsd", aarch64_unknown_netbsd),
> Index: patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
> ===================================================================
> RCS file: patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
> diff -N patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
> --- patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs 16 Aug 2019 18:14:21 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,30 +0,0 @@
> -$OpenBSD: patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs,v 1.1 2019/08/16 18:14:21 semarie Exp $
> -add sparc64-unknown-openbsd definition
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/librustc_target/spec/sparc64_unknown_openbsd.rs
> ---- src/librustc_target/spec/sparc64_unknown_openbsd.rs.orig
> -+++ src/librustc_target/spec/sparc64_unknown_openbsd.rs
> -@@ -0,0 +1,22 @@
> -+use crate::spec::{LinkerFlavor, Target, TargetResult};
> -+
> -+pub fn target() -> TargetResult {
> -+    let mut base = super::openbsd_base::opts();
> -+    base.cpu = "v9".to_string();
> -+    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
> -+    base.max_atomic_width = Some(64);
> -+
> -+    Ok(Target {
> -+        llvm_target: "sparc64-unknown-openbsd".to_string(),
> -+        target_endian: "big".to_string(),
> -+        target_pointer_width: "64".to_string(),
> -+        target_c_int_width: "32".to_string(),
> -+        data_layout: "E-m:e-i64:64-n32:64-S128".to_string(),
> -+        arch: "sparc64".to_string(),
> -+        target_os: "openbsd".to_string(),
> -+        target_env: String::new(),
> -+        target_vendor: "unknown".to_string(),
> -+        linker_flavor: LinkerFlavor::Gcc,
> -+        options: base,
> -+    })
> -+}
> Index: patches/patch-src_libunwind_build_rs
> ===================================================================
> RCS file: patches/patch-src_libunwind_build_rs
> diff -N patches/patch-src_libunwind_build_rs
> --- patches/patch-src_libunwind_build_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,20 +0,0 @@
> -$OpenBSD: patch-src_libunwind_build_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -some archs are still using estdc++ and not c++
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/libunwind/build.rs
> ---- src/libunwind/build.rs.orig
> -+++ src/libunwind/build.rs
> -@@ -25,7 +25,11 @@ fn main() {
> -     } else if target.contains("netbsd") {
> -         println!("cargo:rustc-link-lib=gcc_s");
> -     } else if target.contains("openbsd") {
> --        println!("cargo:rustc-link-lib=c++abi");
> -+        if target.contains("sparc64") {
> -+            println!("cargo:rustc-link-lib=gcc");
> -+        } else {
> -+            println!("cargo:rustc-link-lib=c++abi");
> -+        }
> -     } else if target.contains("solaris") {
> -         println!("cargo:rustc-link-lib=gcc_s");
> -     } else if target.contains("dragonfly") {
> Index: patches/patch-src_test_ui_abi_stack-probes-lto_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_abi_stack-probes-lto_rs
> diff -N patches/patch-src_test_ui_abi_stack-probes-lto_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_test_ui_abi_stack-probes-lto_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> +Index: src/test/ui/abi/stack-probes-lto.rs
> +--- src/test/ui/abi/stack-probes-lto.rs.orig
> ++++ src/test/ui/abi/stack-probes-lto.rs
> +@@ -8,6 +8,7 @@
> + // ignore-sparc
> + // ignore-sparc64
> + // ignore-wasm
> ++// ignore-openbsd
> + // ignore-cloudabi no processes
> + // ignore-emscripten no processes
> + // ignore-sgx no processes
> Index: patches/patch-src_test_ui_abi_stack-probes_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_abi_stack-probes_rs
> diff -N patches/patch-src_test_ui_abi_stack-probes_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_test_ui_abi_stack-probes_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> +Index: src/test/ui/abi/stack-probes.rs
> +--- src/test/ui/abi/stack-probes.rs.orig
> ++++ src/test/ui/abi/stack-probes.rs
> +@@ -8,6 +8,7 @@
> + // ignore-sparc
> + // ignore-sparc64
> + // ignore-wasm
> ++// ignore-openbsd
> + // ignore-cloudabi no processes
> + // ignore-emscripten no processes
> + // ignore-sgx no processes
> Index: patches/patch-src_test_ui_stack-probes-lto_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_stack-probes-lto_rs
> diff -N patches/patch-src_test_ui_stack-probes-lto_rs
> --- patches/patch-src_test_ui_stack-probes-lto_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-src_test_ui_stack-probes-lto_rs,v 1.1 2019/09/29 08:23:17 semarie Exp $
> -Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> -Index: src/test/ui/stack-probes-lto.rs
> ---- src/test/ui/stack-probes-lto.rs.orig
> -+++ src/test/ui/stack-probes-lto.rs
> -@@ -8,6 +8,7 @@
> - // ignore-sparc
> - // ignore-sparc64
> - // ignore-wasm
> -+// ignore-openbsd
> - // ignore-cloudabi no processes
> - // ignore-emscripten no processes
> - // ignore-sgx no processes
> Index: patches/patch-src_test_ui_stack-probes_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_stack-probes_rs
> diff -N patches/patch-src_test_ui_stack-probes_rs
> --- patches/patch-src_test_ui_stack-probes_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-src_test_ui_stack-probes_rs,v 1.1 2019/09/29 08:23:17 semarie Exp $
> -Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> -Index: src/test/ui/stack-probes.rs
> ---- src/test/ui/stack-probes.rs.orig
> -+++ src/test/ui/stack-probes.rs
> -@@ -8,6 +8,7 @@
> - // ignore-sparc
> - // ignore-sparc64
> - // ignore-wasm
> -+// ignore-openbsd
> - // ignore-cloudabi no processes
> - // ignore-emscripten no processes
> - // ignore-sgx no processes
> Index: patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
> ===================================================================
> RCS file: patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
> diff -N patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,26 @@
> +$OpenBSD$
> +
> +Index: src/tools/cargo/crates/cargo-test-support/src/paths.rs
> +--- src/tools/cargo/crates/cargo-test-support/src/paths.rs.orig
> ++++ src/tools/cargo/crates/cargo-test-support/src/paths.rs
> +@@ -13,19 +13,7 @@ static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
> +
> + lazy_static! {
> +     static ref GLOBAL_ROOT: PathBuf = {
> +-        let mut path = t!(env::current_exe());
> +-        path.pop(); // chop off exe name
> +-        path.pop(); // chop off 'debug'
> +-
> +-        // If `cargo test` is run manually then our path looks like
> +-        // `target/debug/foo`, in which case our `path` is already pointing at
> +-        // `target`. If, however, `cargo test --target $target` is used then the
> +-        // output is `target/$target/debug/foo`, so our path is pointing at
> +-        // `target/$target`. Here we conditionally pop the `$target` name.
> +-        if path.file_name().and_then(|s| s.to_str()) != Some("target") {
> +-            path.pop();
> +-        }
> +-
> ++        let path = PathBuf::from("${WRKBUILD}/test-cargo");
> +         path.push(CARGO_INTEGRATION_TEST_DIR);
> +         path.mkdir_p();
> +         path
> Index: patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
> ===================================================================
> RCS file: patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
> diff -N patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
> --- patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,26 +0,0 @@
> -$OpenBSD: patch-src_tools_cargo_tests_testsuite_support_paths_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -
> -Index: src/tools/cargo/tests/testsuite/support/paths.rs
> ---- src/tools/cargo/tests/testsuite/support/paths.rs.orig
> -+++ src/tools/cargo/tests/testsuite/support/paths.rs
> -@@ -14,19 +14,7 @@ static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
> -
> - lazy_static! {
> -     static ref GLOBAL_ROOT: PathBuf = {
> --        let mut path = t!(env::current_exe());
> --        path.pop(); // chop off exe name
> --        path.pop(); // chop off 'debug'
> --
> --        // If `cargo test` is run manually then our path looks like
> --        // `target/debug/foo`, in which case our `path` is already pointing at
> --        // `target`. If, however, `cargo test --target $target` is used then the
> --        // output is `target/$target/debug/foo`, so our path is pointing at
> --        // `target/$target`. Here we conditionally pop the `$target` name.
> --        if path.file_name().and_then(|s| s.to_str()) != Some("target") {
> --            path.pop();
> --        }
> --
> -+        let path = PathBuf::from("${WRKBUILD}/test-cargo");
> -         path.push(CARGO_INTEGRATION_TEST_DIR);
> -         path.mkdir_p();
> -         path
> Index: patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs
> --- patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs 8 Dec 2019 10:55:23 -0000
> @@ -5,7 +5,7 @@ https://github.com/rust-lang/libc/pull/1
>  Index: vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
>  --- vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs.orig
>  +++ vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
> -@@ -1436,6 +1436,9 @@ cfg_if! {
> +@@ -1437,6 +1437,9 @@ cfg_if! {
>       } else if #[cfg(target_arch = "aarch64")] {
>           mod aarch64;
>           pub use self::aarch64::*;
> Index: patches/patch-vendor_libgit2-sys_lib_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-vendor_libgit2-sys_lib_rs,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-vendor_libgit2-sys_lib_rs
> --- patches/patch-vendor_libgit2-sys_lib_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ patches/patch-vendor_libgit2-sys_lib_rs 8 Dec 2019 10:55:23 -0000
> @@ -29,7 +29,7 @@ Index: vendor/libgit2-sys/lib.rs
>  
>   #[repr(C)]
>   pub struct git_push_update {
> -@@ -1892,7 +1889,7 @@ extern "C" {
> +@@ -1939,7 +1936,7 @@ extern "C" {
>           repo: *mut git_repository,
>           options: *const git_status_options,
>       ) -> c_int;
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/lang/rust/pkg/PLIST-main,v
> retrieving revision 1.21
> diff -u -p -r1.21 PLIST-main
> --- pkg/PLIST-main 29 Sep 2019 08:23:17 -0000 1.21
> +++ pkg/PLIST-main 8 Dec 2019 10:55:23 -0000
> @@ -4,11 +4,10 @@
>  @bin bin/cargo
>  @bin bin/rustc
>  @bin bin/rustdoc
> -lib/librustc_driver-7334a9357bae3bae.so
> -lib/librustc_macros-682b0305a704df88.so
> -lib/libstd-9ca43a303eb2c8b1.so
> -lib/libterm-38eb38acc80d3055.so
> -lib/libtest-0ec1949644c3e841.so
> +lib/librustc_driver-1606be613dcf0865.so
> +lib/librustc_macros-a0a13155f0f7063f.so
> +lib/libstd-d37decbf2d7be566.so
> +lib/libtest-efeac124cbe33a76.so
>  lib/rustlib/
>  lib/rustlib/etc/
>  lib/rustlib/etc/debugger_pretty_printers_common.py
> @@ -19,127 +18,128 @@ lib/rustlib/${TRIPLE_ARCH}/
>  lib/rustlib/${TRIPLE_ARCH}/codegen-backends/
>  lib/rustlib/${TRIPLE_ARCH}/codegen-backends/librustc_codegen_llvm-llvm.so
>  lib/rustlib/${TRIPLE_ARCH}/lib/
> -lib/rustlib/${TRIPLE_ARCH}/lib/liballoc-36852a7819e8d0c1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libannotate_snippets-d2bcae2ddb59e443.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libarena-220e218f54049f3a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libarrayvec-3a15280e4e1924e1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libatty-9a43b2caf1a6e1ac.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-bd930610c2320f09.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-eb6910e932ccffe9.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-2bcb70ee4037bfc6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-3538891d737ff6f4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbitflags-4dd322d883b94e1b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbyteorder-4aa56d8facbc58dd.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcc-540a448284011734.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-1a8cd70ab4a99752.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-3038b85f9aafafc6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_engine-97be28a23cb622d3.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_macros-91e531711b27daab.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler_builtins-4797fbd3d7eb9c19.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcore-d88254451c78c288.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrc32fast-1f8438637372243d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_deque-a3c3c5a26faf79fd.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_epoch-6063e3c38e3ad967.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-2bcda5f21d09bdac.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-8cbc024e0c5093f3.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libdatafrog-5179ed3167b70539.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libeither-e0158664272a5bde.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libena-c589e8612b8c19cd.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libenv_logger-5627df291955aa63.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libflate2-2ac4bf3bc5aedb07.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-60b66e1465a825fc.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-b806b497032833ac.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-f0fafda27e935c68.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libhashbrown-76e43be31287666c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libhumantime-9442ff59e598ea7b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libindexmap-1c40adecb1a374a9.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libitoa-c747df8e7d903f30.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libjobserver-2c9763fa16b40eb6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-55b3abc184b6cb7b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-ae4e99ece89939e8.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-3eb34a5db42f3b69.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-72b03002151a1ba6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblock_api-0e5469be8a0ee8bc.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblog-4cfe86ac2f832636.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblog_settings-7898d6eac4c38964.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libmeasureme-05ff1b5cd15130f5.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libmemmap-9ccdd6467865e769.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libmemoffset-fb8ddc58dc5dadfb.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libminiz_sys-e2bb8939250c7a72.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libnodrop-53a2adc0e031ed8c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libnum_cpus-6508f4003210d1bc.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libowning_ref-659927a9159e3ac6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_abort-ad5d246753614c43.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_unwind-b06cf6ddaed1917c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot-babb1badec702978.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot_core-f0b4fc0a22cc79e5.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpolonius_engine-1fcf49ef3e1adc5e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libproc_macro-ea21ea8bba5181e0.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpunycode-83bc200530d5827e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libquick_error-2a2fb589e8922a5e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand-673508021dc8a28d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_chacha-d52eb7a0be7f2b35.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_core-9a99909710a848b2.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_hc-25242bfa04c1b01a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_isaac-897c6a5cd578871e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_pcg-7ac6ab85d397c93c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_xorshift-78d73218291d5f18.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libremove_dir_all-0f7d66ffbd601312.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librls_data-32956e050b6dc26a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librls_span-ce8010f0fc351a74.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc-c92cba089a0c9d87.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_apfloat-a9a512fa826685b4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_ast_borrowck-32db12a4e80bf849.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_ssa-646945d47e805402.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_utils-991e35a7e119b0a6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-7d73fca79818032d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-1eeebf530896bf12.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-c74f9bedb3d15391.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-7334a9357bae3bae.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_errors-0af4ead6a18b78da.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_fs_util-a9d8a13e561fd045.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_hash-0b0bd00881191b32.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_incremental-0dadf3c9520944d4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_interface-3536255937fbdcc6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lexer-60af954ee11e103a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-f311bfa3911a299f.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_macros-682b0305a704df88.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_metadata-bb670352bca28c06.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-4d3ba6268ae7268a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_passes-abedfe6fb12cc0b0.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin-33bce6d8e60898e0.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-bf52590fede8009d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon-9545327130f15ed9.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon_core-875c6af4ca2f0cdb.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-c650ccb391830aff.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_save_analysis-e34f0ab5a41f00af.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_alloc-ed7e05caed933486.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_core-a244c9e83a75389b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_target-b143eefa8c613a4c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_traits-06ccc916bc7d642a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-0eeb15086eeaf19d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libryu-c2e8e983b3bc059d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libscoped_tls-8ed554f0ef02a18b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-0c6b10f9f8dc3621.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libserde-20cf816f35665c7c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libserde_json-22c0f816a4eb722c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-ca5674d547a6752b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsmallvec-03f8492957d7a2ec.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libstable_deref_trait-8f63efd19c451d0c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libstd-9ca43a303eb2c8b1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libstd-9ca43a303eb2c8b1.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-8b4bc621343f3d9a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_ext-1345630a52da46b4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_pos-929a9e8e1ce00215.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtempfile-f24565121164bd8e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libterm-38eb38acc80d3055.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libterm-38eb38acc80d3055.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtermcolor-56627662d258d9f1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtest-0ec1949644c3e841.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtest-0ec1949644c3e841.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-1675276c3ac9ffde.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-b2873080a4f0d0da.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libunwind-5e3d91563aa76b22.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liballoc-d6289c27aef82f74.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libannotate_snippets-09f38bae943e646e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libarena-520f5b9b12e5a718.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libarrayvec-44f37aa228a9c845.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libatty-fae302ec26ab150e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-5417168f4ecf0b51.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-bf31a8237be8931a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-f44fe2f044944ab1.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-fa66bf62c2e70083.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbitflags-c322a547231b6776.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbyteorder-061a343e95fd3aed.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libc2_chacha-34609398ee817956.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcc-60533bf54a8a0fb5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-8054f57f9c881e32.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-c895cb5e0fb8c19d.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_engine-e8b3ee336d5e7958.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_macros-163a1c2878cc1947.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler_builtins-c8b585eb56abc414.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcore-c410fa45b7966969.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrc32fast-69a72454065fa036.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_deque-92f82f646e5089f4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_epoch-db44c3a724cb485b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-262fca41cf2ae9b9.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-cbdcb9489d891e08.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libdatafrog-b409158ad724d45c.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libeither-49cec8fa09531353.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libena-ca9e5b1edacedc49.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libenv_logger-71bf42680fd11f42.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libflate2-3cb455eb3ba77a81.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-bae4d05a234190f8.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-eb865286d6925182.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libgetrandom-00d20c340b02657b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-d01aad69ced95815.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libhashbrown-57a52b14be6e5d83.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libindexmap-a13149a13a4d12e6.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libitoa-348ed89f8999311b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libjobserver-cedfad4fa6ec0253.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-7bd91b1416dc4c85.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-f4a2ba544d7d5961.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-b6ce2dd39a12a155.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-e17f7b10824cfd23.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblock_api-cac976d41bf83d09.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblog-57e4167cd8787c28.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblog_settings-bac18e4662d4e3d4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libmeasureme-372313f5a2f136a0.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libmemmap-f21eca5ad31c1c12.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libmemoffset-33f033fa857250f9.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libminiz_sys-ec4b8c44675f2d4d.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libnodrop-31f224dce0e281cf.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libnum_cpus-f0bbdccfdf2088e5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libonce_cell-0ca7e7c6fa325427.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_abort-35e7e645fe1c4e4c.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_unwind-8275c47be73409a4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot-278f2d7810732963.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot_core-c0b880e0a9eb33fd.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpolonius_engine-9cee3d969af444dc.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libppv_lite86-3daddea0021c3570.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libproc_macro-dac4d13fc88ca4c5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpunycode-bb0a5a5b8d4ab8dc.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librand-a02d5b6ad9a120b1.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librand_chacha-00393a51d25fc623.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librand_core-4168987aee19ebc4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libremove_dir_all-5dbba00a148fd0f5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librls_data-9b917d46e80f9662.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librls_span-a7f6d8f8ccf23a7e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc-7eb5fe68c14b8bda.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_apfloat-f44c5706bf0a5a2e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_ast_borrowck-e2aa208cd0e2583a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_ssa-5161a0f5ee28f97a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_utils-e815caffad55e084.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-d64288d92a630214.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-8f6b9ddcc7201da3.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-e7bac4eb670c1d68.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-1606be613dcf0865.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_errors-fc819ebc6a304fcd.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_fs_util-1d4c3644ae6c526b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_hash-b0cd4e680f1a6152.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_incremental-8144dd09cc4f1d45.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_interface-226c0942216c3be0.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lexer-447fffed0f6e4268.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-11d2fed567157f44.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_macros-a0a13155f0f7063f.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_metadata-4e05c9bad14295b2.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-1f93498f1165cc15.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_passes-0557f36c0967e44f.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin-479bba114d80899b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin_impl-2b8e81b624b9fc27.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-9a95550d8f0606d3.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon-d8a272eeb52478f5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon_core-b67e5d356b8ef1df.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-4d2d670c232985f7.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_save_analysis-ac907576403235e9.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_alloc-b511cb7c627d3593.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_core-4f6ae5852c9ab846.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_std-19cf0ede7faa9e76.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_target-844e75954b2110bb.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_traits-00bf47bff77dec46.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-b3fb541ec551adac.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libryu-60cf5e49ccff6a2a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libscoped_tls-0bc3b131dbe844cc.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-13565673691a5e3b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-417d8bc9ad1f34d1.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libserde-791a73e8d14f40ec.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libserde_json-82b8a609d56a76de.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-f3040a5efb57db8a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsmallvec-33a2c36e485e406c.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libstable_deref_trait-88e8092e5d47c8c2.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libstd-d37decbf2d7be566.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libstd-d37decbf2d7be566.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-a02fca8defc4a9b8.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_ext-db3ef9764af704e0.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_pos-7b1a9a123c53dc53.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtempfile-aae36d5d691bf0a2.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libterm-8c71712ca5699a61.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libterm_size-e500dfdcfde5d739.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtermcolor-b97a72ae01177052.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtest-efeac124cbe33a76.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtest-efeac124cbe33a76.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-6a01ba0088334a70.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-7a86e6735a7786e4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_xid-3668f41535c028ca.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunwind-498683b6e47ce894.rlib
>  @man man/man1/cargo-bench.1
>  @man man/man1/cargo-build.1
>  @man man/man1/cargo-check.1
>

Reply | Threaded
Open this post in threaded view
|

Re: update: lang/rust

Laurence Tratt
In reply to this post by Sebastien Marie-3
On Sun, Dec 08, 2019 at 12:30:09PM +0100, Sebastien Marie wrote:

Hello Sebastien,

> Here the diff for updating lang/rust to 1.39.0

This works well for my Rust code. I've also tested all the subpackages
successfully: rustfmt, Clippy, and rust-gdb (I didn't even realise there was
a subpackage for the latter until I looked in the Makefile!). Thanks for
this -- I'm starting to see code which doesn't compile under 1.38 so this is
very useful!


Laurie

Reply | Threaded
Open this post in threaded view
|

Re: update: lang/rust

Niklas Hallqvist
In reply to this post by Sebastien Marie-3
As a matter of fact I did the same update just a week ago, and ended up in exactly the same patch set as you, except for one thing:

The version reported by 'rust -V' normally include the git hash and date, and some rust code out there depends on it (maybe dumb, but nevertheless it is).

I did it by adding to the diff-file for src/bootstrap/lib.rs, but it can conceivably instead be a post-patch target patching lib.rs with the contents of 'git-commit-hash', a file found in the build directory.

/Niklas

diff --git a/lang/rust/patches/patch-src_bootstrap_lib_rs b/lang/rust/patches/p\
atch-src_bootstrap_lib_rs
index 4ae91048f80..5c8543e5e18 100644
--- a/lang/rust/patches/patch-src_bootstrap_lib_rs
+++ b/lang/rust/patches/patch-src_bootstrap_lib_rs
@@ -12,3 +12,12 @@ Index: src/bootstrap/lib.rs
                             .collect::<Vec<String>>();
   
          // If we're compiling on macOS then we add a few unconditional flags
+@@ -1048,7 +1047,7 @@ impl Build {
+     /// Note that this is a descriptive string which includes the commit date\
,
+     /// sha, version, etc.
+     fn rust_version(&self) -> String {
+-        self.rust_info.version(self, channel::CFG_RELEASE_NUM)
++        String::from("1.39.0 (4560ea788 2019-11-04)")
+     }
+  
+     /// Returns the full commit hash.

> On 8 Dec 2019, at 12:30, Sebastien Marie <[hidden email]> wrote:
>
> Hi,
>
> Here the diff for updating lang/rust to 1.39.0
>
> The patch took more time than expected to be done: I had problem with sparc64
> and I only achieved to have a workaround in order to avoid a SEGFAULT during the
> build. I am suspecting some LLVM bug in sparc64, as the workaround is to build
> some part of rust with -O3 (else the generated code will SEGFAULT). I didn't
> really investigated at asm level.
>
> The port was tested some times ago on amd64 (and build tested and all archs).
>
> I intent to commit it in few days. But comments or OK are welcome :)
>
> Thanks.
> --
> Sebastien Marie
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/lang/rust/Makefile,v
> retrieving revision 1.102
> diff -u -p -r1.102 Makefile
> --- Makefile 29 Sep 2019 08:23:17 -0000 1.102
> +++ Makefile 8 Dec 2019 10:55:23 -0000
> @@ -13,17 +13,17 @@ COMMENT-gdb = Rust debugger through gdb
> COMMENT-clippy = Rust linter
> COMMENT-rustfmt = Rust code formatter
>
> -V = 1.38.0
> -CARGO_V = 0.39.0
> +V = 1.39.0
> +CARGO_V = 0.40.0
> CLIPPY_V = 0.0.212
> -RUSTFMT_V = 1.4.4
> +RUSTFMT_V = 1.4.8
> DISTNAME = rustc-${V}-src
>
> # rustc bootstrap version
> -BV-aarch64 = 1.38.0-20190926
> -BV-amd64 = 1.38.0-20190924
> -BV-i386 = 1.38.0-20190924
> -BV-sparc64 = 1.37.0-20190813
> +BV-aarch64 = 1.39.0-20191124
> +BV-amd64 = 1.39.0-20191122
> +BV-i386 = 1.39.0-20191123
> +BV-sparc64 = 1.39.0-20191207
> BV = ${BV-${MACHINE_ARCH}}
>
> PKGNAME = rust-${V}
> @@ -138,7 +138,7 @@ SUBST_VARS += WRKBUILD
> post-patch:
> sed -i 's/"files":{[^}]*}/"files":{}/' \
> ${WRKSRC}/vendor/*/.cargo-checksum.json
> - ${SUBST_CMD} ${WRKSRC}/src/tools/cargo/tests/testsuite/support/paths.rs
> + ${SUBST_CMD} ${WRKSRC}/src/tools/cargo/crates/cargo-test-support/src/paths.rs
>
> # - check datasize limit before configuring (and building)
> pre-configure:
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/lang/rust/distinfo,v
> retrieving revision 1.58
> diff -u -p -r1.58 distinfo
> --- distinfo 29 Sep 2019 08:23:17 -0000 1.58
> +++ distinfo 8 Dec 2019 10:55:23 -0000
> @@ -1,10 +1,10 @@
> -SHA256 (rust/rustc-1.38.0-src.tar.xz) = OnmRqky0TvlB1xY25FqVRotSDcb8fPclNkklvT49OjQ=
> -SHA256 (rust/rustc-bootstrap-aarch64-1.38.0-20190926.tar.xz) = K6z7+X02Zw6kzFdt93JoOhVFJmVI1tp2kcV3Ep07i1k=
> -SHA256 (rust/rustc-bootstrap-amd64-1.38.0-20190924.tar.xz) = s7m04Xk4Rukj3of8sLaK2NRiRZoAEEaxeQ14zE7/42U=
> -SHA256 (rust/rustc-bootstrap-i386-1.38.0-20190924.tar.xz) = p7GH8ebq4uh5OUGIK3qbmRoWnotASu9Z6K/nMOLX2Ck=
> -SHA256 (rust/rustc-bootstrap-sparc64-1.37.0-20190813.tar.xz) = Mja3fEVQ6pD9cxq0ZfEX+O6QW+cVLpA9n5k67M6u0gU=
> -SIZE (rust/rustc-1.38.0-src.tar.xz) = 96163304
> -SIZE (rust/rustc-bootstrap-aarch64-1.38.0-20190926.tar.xz) = 179869984
> -SIZE (rust/rustc-bootstrap-amd64-1.38.0-20190924.tar.xz) = 195854424
> -SIZE (rust/rustc-bootstrap-i386-1.38.0-20190924.tar.xz) = 193885292
> -SIZE (rust/rustc-bootstrap-sparc64-1.37.0-20190813.tar.xz) = 77696860
> +SHA256 (rust/rustc-1.39.0-src.tar.xz) = Sw27NWBwaHpgYDT3HcAyt4O7+LXT+f/znywfvE8XHCk=
> +SHA256 (rust/rustc-bootstrap-aarch64-1.39.0-20191124.tar.xz) = d+u86EWh5RRFuzf3NbOkHPV+jT5ySxEkqnOgQgU+w1g=
> +SHA256 (rust/rustc-bootstrap-amd64-1.39.0-20191122.tar.xz) = SKh/PBPnJkPT489dOjhwwVemVEOA/UL5rOzmXWjCw84=
> +SHA256 (rust/rustc-bootstrap-i386-1.39.0-20191123.tar.xz) = rbXw6X+yJdoinB56eCQPkg6k8o1SJiUl4yzcnPr2Als=
> +SHA256 (rust/rustc-bootstrap-sparc64-1.39.0-20191207.tar.xz) = zbSeowzoJp2uhgnIcmOHiLXTZTlsXa0SGS8pm77zyaw=
> +SIZE (rust/rustc-1.39.0-src.tar.xz) = 96495140
> +SIZE (rust/rustc-bootstrap-aarch64-1.39.0-20191124.tar.xz) = 182606628
> +SIZE (rust/rustc-bootstrap-amd64-1.39.0-20191122.tar.xz) = 198744372
> +SIZE (rust/rustc-bootstrap-i386-1.39.0-20191123.tar.xz) = 198502860
> +SIZE (rust/rustc-bootstrap-sparc64-1.39.0-20191207.tar.xz) = 225734860
> Index: patches/patch-src_bootstrap_bin_rustc_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_bin_rustc_rs,v
> retrieving revision 1.12
> diff -u -p -r1.12 patch-src_bootstrap_bin_rustc_rs
> --- patches/patch-src_bootstrap_bin_rustc_rs 29 Sep 2019 08:23:17 -0000 1.12
> +++ patches/patch-src_bootstrap_bin_rustc_rs 8 Dec 2019 10:55:23 -0000
> @@ -4,15 +4,16 @@ try to reduce memory usage on aarch64:
> Index: src/bootstrap/bin/rustc.rs
> --- src/bootstrap/bin/rustc.rs.orig
> +++ src/bootstrap/bin/rustc.rs
> -@@ -222,6 +222,11 @@ fn main() {
> -             cmd.arg("-C").arg(format!("codegen-units={}", s));
> -         }
> +@@ -113,6 +113,12 @@ fn main() {
> +             Err(..) => "n",
> +         };
>
> -+        if target.contains("aarch64-unknown-openbsd")
> ++        if target.unwrap().contains("aarch64-unknown-openbsd")
> +            && crate_name == Some("rustc") {
> ++
> +            cmd.arg("-Z").arg("fewer-names");
> +        }
> +
> -         // Emit save-analysis info.
> -         if env::var("RUSTC_SAVE_ANALYSIS") == Ok("api".to_string()) {
> -             cmd.arg("-Zsave-analysis");
> +         // The compiler builtins are pretty sensitive to symbols referenced in
> +         // libcore and such, so we never compile them with debug assertions.
> +         //
> Index: patches/patch-src_bootstrap_bootstrap_py
> ===================================================================
> RCS file: patches/patch-src_bootstrap_bootstrap_py
> diff -N patches/patch-src_bootstrap_bootstrap_py
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_bootstrap_bootstrap_py 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,16 @@
> +$OpenBSD$
> +Workaround for sparc64: bootstrap segfaults without -O3
> +
> +Index: src/bootstrap/bootstrap.py
> +--- src/bootstrap/bootstrap.py.orig
> ++++ src/bootstrap/bootstrap.py
> +@@ -645,6 +645,9 @@ class RustBuild(object):
> +         if self.get_toml("deny-warnings", "rust") != "false":
> +             env["RUSTFLAGS"] += "-Dwarnings "
> +
> ++        if self.build_triple() == "sparc64-unknown-openbsd":
> ++            env["RUSTFLAGS"] += "-Copt-level=3 "
> ++
> +         env["PATH"] = os.path.join(self.bin_root(), "bin") + \
> +             os.pathsep + env["PATH"]
> +         if not os.path.isfile(self.cargo()):
> Index: patches/patch-src_bootstrap_builder_rs
> ===================================================================
> RCS file: patches/patch-src_bootstrap_builder_rs
> diff -N patches/patch-src_bootstrap_builder_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_bootstrap_builder_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,26 @@
> +$OpenBSD$
> +Fix rustdoc build
> +https://github.com/rust-lang/rust/commit/73369f32621f6a844a80a8513ae3ded901e4a406
> +Index: src/bootstrap/builder.rs
> +--- src/bootstrap/builder.rs.orig
> ++++ src/bootstrap/builder.rs
> +@@ -875,7 +875,18 @@ impl<'a> Builder<'a> {
> +         // things still build right, please do!
> +         match mode {
> +             Mode::Std => metadata.push_str("std"),
> +-            _ => {},
> ++            // When we're building rustc tools, they're built with a search path
> ++            // that contains things built during the rustc build. For example,
> ++            // bitflags is built during the rustc build, and is a dependency of
> ++            // rustdoc as well. We're building rustdoc in a different target
> ++            // directory, though, which means that Cargo will rebuild the
> ++            // dependency. When we go on to build rustdoc, we'll look for
> ++            // bitflags, and find two different copies: one built during the
> ++            // rustc step and one that we just built. This isn't always a
> ++            // problem, somehow -- not really clear why -- but we know that this
> ++            // fixes things.
> ++            Mode::ToolRustc => metadata.push_str("tool-rustc"),
> ++            _ => {}
> +         }
> +         cargo.env("__CARGO_DEFAULT_LIB_METADATA", &metadata);
> +
> Index: patches/patch-src_bootstrap_lib_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_lib_rs,v
> retrieving revision 1.24
> diff -u -p -r1.24 patch-src_bootstrap_lib_rs
> --- patches/patch-src_bootstrap_lib_rs 29 Sep 2019 08:23:17 -0000 1.24
> +++ patches/patch-src_bootstrap_lib_rs 8 Dec 2019 10:55:23 -0000
> @@ -4,16 +4,7 @@ https://github.com/rust-lang/rust/issues
> Index: src/bootstrap/lib.rs
> --- src/bootstrap/lib.rs.orig
> +++ src/bootstrap/lib.rs
> -@@ -104,7 +104,7 @@
> - //! also check out the `src/bootstrap/README.md` file for more information.
> -
> - // NO-RUSTC-WRAPPER
> --#![deny(warnings, rust_2018_idioms, unused_lifetimes)]
> -+#![deny(rust_2018_idioms, unused_lifetimes)]
> -
> - #![feature(core_intrinsics)]
> - #![feature(drain_filter)]
> -@@ -768,7 +768,6 @@ impl Build {
> +@@ -757,7 +757,6 @@ impl Build {
>          // cc-rs because the build scripts will determine that for themselves.
>          let mut base = self.cc[&target].args().iter()
>                             .map(|s| s.to_string_lossy().into_owned())
> Index: patches/patch-src_bootstrap_test_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-src_bootstrap_test_rs,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-src_bootstrap_test_rs
> --- patches/patch-src_bootstrap_test_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ patches/patch-src_bootstrap_test_rs 8 Dec 2019 10:55:23 -0000
> @@ -4,7 +4,7 @@ Disable "Bootstrap" test by default (it
> Index: src/bootstrap/test.rs
> --- src/bootstrap/test.rs.orig
> +++ src/bootstrap/test.rs
> -@@ -2085,7 +2085,7 @@ pub struct Bootstrap;
> +@@ -2043,7 +2043,7 @@ pub struct Bootstrap;
>
>  impl Step for Bootstrap {
>      type Output = ();
> Index: patches/patch-src_librustc_llvm_build_rs
> ===================================================================
> RCS file: patches/patch-src_librustc_llvm_build_rs
> diff -N patches/patch-src_librustc_llvm_build_rs
> --- patches/patch-src_librustc_llvm_build_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -$OpenBSD: patch-src_librustc_llvm_build_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -some archs are still using estdc++ and not c++
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/librustc_llvm/build.rs
> ---- src/librustc_llvm/build.rs.orig
> -+++ src/librustc_llvm/build.rs
> -@@ -250,8 +250,11 @@ fn main() {
> -     let llvm_use_libcxx = env::var_os("LLVM_USE_LIBCXX");
> -
> -     let stdcppname = if target.contains("openbsd") {
> --        // llvm-config on OpenBSD doesn't mention stdlib=libc++
> --        "c++"
> -+        if target.contains("sparc64") {
> -+            "estdc++"
> -+        } else {
> -+            "c++"
> -+        }
> -     } else if target.contains("freebsd") {
> -         "c++"
> -     } else if target.contains("darwin") {
> Index: patches/patch-src_librustc_target_spec_mod_rs
> ===================================================================
> RCS file: patches/patch-src_librustc_target_spec_mod_rs
> diff -N patches/patch-src_librustc_target_spec_mod_rs
> --- patches/patch-src_librustc_target_spec_mod_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -$OpenBSD: patch-src_librustc_target_spec_mod_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -add sparc64-unknown-openbsd definition
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/librustc_target/spec/mod.rs
> ---- src/librustc_target/spec/mod.rs.orig
> -+++ src/librustc_target/spec/mod.rs
> -@@ -395,6 +395,7 @@ supported_targets! {
> -
> -     ("aarch64-unknown-openbsd", aarch64_unknown_openbsd),
> -     ("i686-unknown-openbsd", i686_unknown_openbsd),
> -+    ("sparc64-unknown-openbsd", sparc64_unknown_openbsd),
> -     ("x86_64-unknown-openbsd", x86_64_unknown_openbsd),
> -
> -     ("aarch64-unknown-netbsd", aarch64_unknown_netbsd),
> Index: patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
> ===================================================================
> RCS file: patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
> diff -N patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs
> --- patches/patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs 16 Aug 2019 18:14:21 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,30 +0,0 @@
> -$OpenBSD: patch-src_librustc_target_spec_sparc64_unknown_openbsd_rs,v 1.1 2019/08/16 18:14:21 semarie Exp $
> -add sparc64-unknown-openbsd definition
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/librustc_target/spec/sparc64_unknown_openbsd.rs
> ---- src/librustc_target/spec/sparc64_unknown_openbsd.rs.orig
> -+++ src/librustc_target/spec/sparc64_unknown_openbsd.rs
> -@@ -0,0 +1,22 @@
> -+use crate::spec::{LinkerFlavor, Target, TargetResult};
> -+
> -+pub fn target() -> TargetResult {
> -+    let mut base = super::openbsd_base::opts();
> -+    base.cpu = "v9".to_string();
> -+    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
> -+    base.max_atomic_width = Some(64);
> -+
> -+    Ok(Target {
> -+        llvm_target: "sparc64-unknown-openbsd".to_string(),
> -+        target_endian: "big".to_string(),
> -+        target_pointer_width: "64".to_string(),
> -+        target_c_int_width: "32".to_string(),
> -+        data_layout: "E-m:e-i64:64-n32:64-S128".to_string(),
> -+        arch: "sparc64".to_string(),
> -+        target_os: "openbsd".to_string(),
> -+        target_env: String::new(),
> -+        target_vendor: "unknown".to_string(),
> -+        linker_flavor: LinkerFlavor::Gcc,
> -+        options: base,
> -+    })
> -+}
> Index: patches/patch-src_libunwind_build_rs
> ===================================================================
> RCS file: patches/patch-src_libunwind_build_rs
> diff -N patches/patch-src_libunwind_build_rs
> --- patches/patch-src_libunwind_build_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,20 +0,0 @@
> -$OpenBSD: patch-src_libunwind_build_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -some archs are still using estdc++ and not c++
> -https://github.com/rust-lang/rust/pull/63595
> -
> -Index: src/libunwind/build.rs
> ---- src/libunwind/build.rs.orig
> -+++ src/libunwind/build.rs
> -@@ -25,7 +25,11 @@ fn main() {
> -     } else if target.contains("netbsd") {
> -         println!("cargo:rustc-link-lib=gcc_s");
> -     } else if target.contains("openbsd") {
> --        println!("cargo:rustc-link-lib=c++abi");
> -+        if target.contains("sparc64") {
> -+            println!("cargo:rustc-link-lib=gcc");
> -+        } else {
> -+            println!("cargo:rustc-link-lib=c++abi");
> -+        }
> -     } else if target.contains("solaris") {
> -         println!("cargo:rustc-link-lib=gcc_s");
> -     } else if target.contains("dragonfly") {
> Index: patches/patch-src_test_ui_abi_stack-probes-lto_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_abi_stack-probes-lto_rs
> diff -N patches/patch-src_test_ui_abi_stack-probes-lto_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_test_ui_abi_stack-probes-lto_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> +Index: src/test/ui/abi/stack-probes-lto.rs
> +--- src/test/ui/abi/stack-probes-lto.rs.orig
> ++++ src/test/ui/abi/stack-probes-lto.rs
> +@@ -8,6 +8,7 @@
> + // ignore-sparc
> + // ignore-sparc64
> + // ignore-wasm
> ++// ignore-openbsd
> + // ignore-cloudabi no processes
> + // ignore-emscripten no processes
> + // ignore-sgx no processes
> Index: patches/patch-src_test_ui_abi_stack-probes_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_abi_stack-probes_rs
> diff -N patches/patch-src_test_ui_abi_stack-probes_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_test_ui_abi_stack-probes_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> +Index: src/test/ui/abi/stack-probes.rs
> +--- src/test/ui/abi/stack-probes.rs.orig
> ++++ src/test/ui/abi/stack-probes.rs
> +@@ -8,6 +8,7 @@
> + // ignore-sparc
> + // ignore-sparc64
> + // ignore-wasm
> ++// ignore-openbsd
> + // ignore-cloudabi no processes
> + // ignore-emscripten no processes
> + // ignore-sgx no processes
> Index: patches/patch-src_test_ui_stack-probes-lto_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_stack-probes-lto_rs
> diff -N patches/patch-src_test_ui_stack-probes-lto_rs
> --- patches/patch-src_test_ui_stack-probes-lto_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-src_test_ui_stack-probes-lto_rs,v 1.1 2019/09/29 08:23:17 semarie Exp $
> -Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> -Index: src/test/ui/stack-probes-lto.rs
> ---- src/test/ui/stack-probes-lto.rs.orig
> -+++ src/test/ui/stack-probes-lto.rs
> -@@ -8,6 +8,7 @@
> - // ignore-sparc
> - // ignore-sparc64
> - // ignore-wasm
> -+// ignore-openbsd
> - // ignore-cloudabi no processes
> - // ignore-emscripten no processes
> - // ignore-sgx no processes
> Index: patches/patch-src_test_ui_stack-probes_rs
> ===================================================================
> RCS file: patches/patch-src_test_ui_stack-probes_rs
> diff -N patches/patch-src_test_ui_stack-probes_rs
> --- patches/patch-src_test_ui_stack-probes_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-src_test_ui_stack-probes_rs,v 1.1 2019/09/29 08:23:17 semarie Exp $
> -Disable stack-probes test (MAP_STACK terminate the process in a way the testsuite fails).
> -Index: src/test/ui/stack-probes.rs
> ---- src/test/ui/stack-probes.rs.orig
> -+++ src/test/ui/stack-probes.rs
> -@@ -8,6 +8,7 @@
> - // ignore-sparc
> - // ignore-sparc64
> - // ignore-wasm
> -+// ignore-openbsd
> - // ignore-cloudabi no processes
> - // ignore-emscripten no processes
> - // ignore-sgx no processes
> Index: patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
> ===================================================================
> RCS file: patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
> diff -N patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_tools_cargo_crates_cargo-test-support_src_paths_rs 8 Dec 2019 10:55:23 -0000
> @@ -0,0 +1,26 @@
> +$OpenBSD$
> +
> +Index: src/tools/cargo/crates/cargo-test-support/src/paths.rs
> +--- src/tools/cargo/crates/cargo-test-support/src/paths.rs.orig
> ++++ src/tools/cargo/crates/cargo-test-support/src/paths.rs
> +@@ -13,19 +13,7 @@ static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
> +
> + lazy_static! {
> +     static ref GLOBAL_ROOT: PathBuf = {
> +-        let mut path = t!(env::current_exe());
> +-        path.pop(); // chop off exe name
> +-        path.pop(); // chop off 'debug'
> +-
> +-        // If `cargo test` is run manually then our path looks like
> +-        // `target/debug/foo`, in which case our `path` is already pointing at
> +-        // `target`. If, however, `cargo test --target $target` is used then the
> +-        // output is `target/$target/debug/foo`, so our path is pointing at
> +-        // `target/$target`. Here we conditionally pop the `$target` name.
> +-        if path.file_name().and_then(|s| s.to_str()) != Some("target") {
> +-            path.pop();
> +-        }
> +-
> ++        let path = PathBuf::from("${WRKBUILD}/test-cargo");
> +         path.push(CARGO_INTEGRATION_TEST_DIR);
> +         path.mkdir_p();
> +         path
> Index: patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
> ===================================================================
> RCS file: patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
> diff -N patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs
> --- patches/patch-src_tools_cargo_tests_testsuite_support_paths_rs 29 Sep 2019 08:23:17 -0000 1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,26 +0,0 @@
> -$OpenBSD: patch-src_tools_cargo_tests_testsuite_support_paths_rs,v 1.4 2019/09/29 08:23:17 semarie Exp $
> -
> -Index: src/tools/cargo/tests/testsuite/support/paths.rs
> ---- src/tools/cargo/tests/testsuite/support/paths.rs.orig
> -+++ src/tools/cargo/tests/testsuite/support/paths.rs
> -@@ -14,19 +14,7 @@ static CARGO_INTEGRATION_TEST_DIR: &str = "cit";
> -
> - lazy_static! {
> -     static ref GLOBAL_ROOT: PathBuf = {
> --        let mut path = t!(env::current_exe());
> --        path.pop(); // chop off exe name
> --        path.pop(); // chop off 'debug'
> --
> --        // If `cargo test` is run manually then our path looks like
> --        // `target/debug/foo`, in which case our `path` is already pointing at
> --        // `target`. If, however, `cargo test --target $target` is used then the
> --        // output is `target/$target/debug/foo`, so our path is pointing at
> --        // `target/$target`. Here we conditionally pop the `$target` name.
> --        if path.file_name().and_then(|s| s.to_str()) != Some("target") {
> --            path.pop();
> --        }
> --
> -+        let path = PathBuf::from("${WRKBUILD}/test-cargo");
> -         path.push(CARGO_INTEGRATION_TEST_DIR);
> -         path.mkdir_p();
> -         path
> Index: patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs
> --- patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ patches/patch-vendor_libc_src_unix_bsd_netbsdlike_openbsd_mod_rs 8 Dec 2019 10:55:23 -0000
> @@ -5,7 +5,7 @@ https://github.com/rust-lang/libc/pull/1
> Index: vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
> --- vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs.orig
> +++ vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
> -@@ -1436,6 +1436,9 @@ cfg_if! {
> +@@ -1437,6 +1437,9 @@ cfg_if! {
>      } else if #[cfg(target_arch = "aarch64")] {
>          mod aarch64;
>          pub use self::aarch64::*;
> Index: patches/patch-vendor_libgit2-sys_lib_rs
> ===================================================================
> RCS file: /cvs/ports/lang/rust/patches/patch-vendor_libgit2-sys_lib_rs,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-vendor_libgit2-sys_lib_rs
> --- patches/patch-vendor_libgit2-sys_lib_rs 29 Sep 2019 08:23:17 -0000 1.1
> +++ patches/patch-vendor_libgit2-sys_lib_rs 8 Dec 2019 10:55:23 -0000
> @@ -29,7 +29,7 @@ Index: vendor/libgit2-sys/lib.rs
>
>  #[repr(C)]
>  pub struct git_push_update {
> -@@ -1892,7 +1889,7 @@ extern "C" {
> +@@ -1939,7 +1936,7 @@ extern "C" {
>          repo: *mut git_repository,
>          options: *const git_status_options,
>      ) -> c_int;
> Index: pkg/PLIST-main
> ===================================================================
> RCS file: /cvs/ports/lang/rust/pkg/PLIST-main,v
> retrieving revision 1.21
> diff -u -p -r1.21 PLIST-main
> --- pkg/PLIST-main 29 Sep 2019 08:23:17 -0000 1.21
> +++ pkg/PLIST-main 8 Dec 2019 10:55:23 -0000
> @@ -4,11 +4,10 @@
> @bin bin/cargo
> @bin bin/rustc
> @bin bin/rustdoc
> -lib/librustc_driver-7334a9357bae3bae.so
> -lib/librustc_macros-682b0305a704df88.so
> -lib/libstd-9ca43a303eb2c8b1.so
> -lib/libterm-38eb38acc80d3055.so
> -lib/libtest-0ec1949644c3e841.so
> +lib/librustc_driver-1606be613dcf0865.so
> +lib/librustc_macros-a0a13155f0f7063f.so
> +lib/libstd-d37decbf2d7be566.so
> +lib/libtest-efeac124cbe33a76.so
> lib/rustlib/
> lib/rustlib/etc/
> lib/rustlib/etc/debugger_pretty_printers_common.py
> @@ -19,127 +18,128 @@ lib/rustlib/${TRIPLE_ARCH}/
> lib/rustlib/${TRIPLE_ARCH}/codegen-backends/
> lib/rustlib/${TRIPLE_ARCH}/codegen-backends/librustc_codegen_llvm-llvm.so
> lib/rustlib/${TRIPLE_ARCH}/lib/
> -lib/rustlib/${TRIPLE_ARCH}/lib/liballoc-36852a7819e8d0c1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libannotate_snippets-d2bcae2ddb59e443.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libarena-220e218f54049f3a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libarrayvec-3a15280e4e1924e1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libatty-9a43b2caf1a6e1ac.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-bd930610c2320f09.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-eb6910e932ccffe9.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-2bcb70ee4037bfc6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-3538891d737ff6f4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbitflags-4dd322d883b94e1b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libbyteorder-4aa56d8facbc58dd.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcc-540a448284011734.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-1a8cd70ab4a99752.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-3038b85f9aafafc6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_engine-97be28a23cb622d3.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_macros-91e531711b27daab.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler_builtins-4797fbd3d7eb9c19.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcore-d88254451c78c288.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrc32fast-1f8438637372243d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_deque-a3c3c5a26faf79fd.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_epoch-6063e3c38e3ad967.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-2bcda5f21d09bdac.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-8cbc024e0c5093f3.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libdatafrog-5179ed3167b70539.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libeither-e0158664272a5bde.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libena-c589e8612b8c19cd.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libenv_logger-5627df291955aa63.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libflate2-2ac4bf3bc5aedb07.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-60b66e1465a825fc.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-b806b497032833ac.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-f0fafda27e935c68.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libhashbrown-76e43be31287666c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libhumantime-9442ff59e598ea7b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libindexmap-1c40adecb1a374a9.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libitoa-c747df8e7d903f30.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libjobserver-2c9763fa16b40eb6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-55b3abc184b6cb7b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-ae4e99ece89939e8.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-3eb34a5db42f3b69.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-72b03002151a1ba6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblock_api-0e5469be8a0ee8bc.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblog-4cfe86ac2f832636.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/liblog_settings-7898d6eac4c38964.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libmeasureme-05ff1b5cd15130f5.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libmemmap-9ccdd6467865e769.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libmemoffset-fb8ddc58dc5dadfb.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libminiz_sys-e2bb8939250c7a72.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libnodrop-53a2adc0e031ed8c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libnum_cpus-6508f4003210d1bc.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libowning_ref-659927a9159e3ac6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_abort-ad5d246753614c43.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_unwind-b06cf6ddaed1917c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot-babb1badec702978.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot_core-f0b4fc0a22cc79e5.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpolonius_engine-1fcf49ef3e1adc5e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libproc_macro-ea21ea8bba5181e0.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libpunycode-83bc200530d5827e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libquick_error-2a2fb589e8922a5e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand-673508021dc8a28d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_chacha-d52eb7a0be7f2b35.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_core-9a99909710a848b2.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_hc-25242bfa04c1b01a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_isaac-897c6a5cd578871e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_pcg-7ac6ab85d397c93c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librand_xorshift-78d73218291d5f18.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libremove_dir_all-0f7d66ffbd601312.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librls_data-32956e050b6dc26a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librls_span-ce8010f0fc351a74.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc-c92cba089a0c9d87.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_apfloat-a9a512fa826685b4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_ast_borrowck-32db12a4e80bf849.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_ssa-646945d47e805402.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_utils-991e35a7e119b0a6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-7d73fca79818032d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-1eeebf530896bf12.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-c74f9bedb3d15391.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-7334a9357bae3bae.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_errors-0af4ead6a18b78da.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_fs_util-a9d8a13e561fd045.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_hash-0b0bd00881191b32.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_incremental-0dadf3c9520944d4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_interface-3536255937fbdcc6.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lexer-60af954ee11e103a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-f311bfa3911a299f.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_macros-682b0305a704df88.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_metadata-bb670352bca28c06.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-4d3ba6268ae7268a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_passes-abedfe6fb12cc0b0.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin-33bce6d8e60898e0.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-bf52590fede8009d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon-9545327130f15ed9.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon_core-875c6af4ca2f0cdb.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-c650ccb391830aff.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_save_analysis-e34f0ab5a41f00af.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_alloc-ed7e05caed933486.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_core-a244c9e83a75389b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_target-b143eefa8c613a4c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_traits-06ccc916bc7d642a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-0eeb15086eeaf19d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libryu-c2e8e983b3bc059d.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libscoped_tls-8ed554f0ef02a18b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-0c6b10f9f8dc3621.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libserde-20cf816f35665c7c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libserde_json-22c0f816a4eb722c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-ca5674d547a6752b.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsmallvec-03f8492957d7a2ec.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libstable_deref_trait-8f63efd19c451d0c.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libstd-9ca43a303eb2c8b1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libstd-9ca43a303eb2c8b1.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-8b4bc621343f3d9a.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_ext-1345630a52da46b4.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_pos-929a9e8e1ce00215.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtempfile-f24565121164bd8e.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libterm-38eb38acc80d3055.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libterm-38eb38acc80d3055.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtermcolor-56627662d258d9f1.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtest-0ec1949644c3e841.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libtest-0ec1949644c3e841.so
> -lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-1675276c3ac9ffde.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-b2873080a4f0d0da.rlib
> -lib/rustlib/${TRIPLE_ARCH}/lib/libunwind-5e3d91563aa76b22.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liballoc-d6289c27aef82f74.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libannotate_snippets-09f38bae943e646e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libarena-520f5b9b12e5a718.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libarrayvec-44f37aa228a9c845.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libatty-fae302ec26ab150e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-5417168f4ecf0b51.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace-bf31a8237be8931a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-f44fe2f044944ab1.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbacktrace_sys-fa66bf62c2e70083.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbitflags-c322a547231b6776.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libbyteorder-061a343e95fd3aed.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libc2_chacha-34609398ee817956.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcc-60533bf54a8a0fb5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-8054f57f9c881e32.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcfg_if-c895cb5e0fb8c19d.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_engine-e8b3ee336d5e7958.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libchalk_macros-163a1c2878cc1947.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler_builtins-c8b585eb56abc414.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcore-c410fa45b7966969.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrc32fast-69a72454065fa036.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_deque-92f82f646e5089f4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_epoch-db44c3a724cb485b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-262fca41cf2ae9b9.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libcrossbeam_utils-cbdcb9489d891e08.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libdatafrog-b409158ad724d45c.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libeither-49cec8fa09531353.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libena-ca9e5b1edacedc49.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libenv_logger-71bf42680fd11f42.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libflate2-3cb455eb3ba77a81.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-bae4d05a234190f8.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-eb865286d6925182.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libgetrandom-00d20c340b02657b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-d01aad69ced95815.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libhashbrown-57a52b14be6e5d83.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libindexmap-a13149a13a4d12e6.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libitoa-348ed89f8999311b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libjobserver-cedfad4fa6ec0253.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-7bd91b1416dc4c85.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblazy_static-f4a2ba544d7d5961.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-b6ce2dd39a12a155.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblibc-e17f7b10824cfd23.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblock_api-cac976d41bf83d09.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblog-57e4167cd8787c28.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/liblog_settings-bac18e4662d4e3d4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libmeasureme-372313f5a2f136a0.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libmemmap-f21eca5ad31c1c12.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libmemoffset-33f033fa857250f9.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libminiz_sys-ec4b8c44675f2d4d.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libnodrop-31f224dce0e281cf.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libnum_cpus-f0bbdccfdf2088e5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libonce_cell-0ca7e7c6fa325427.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_abort-35e7e645fe1c4e4c.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpanic_unwind-8275c47be73409a4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot-278f2d7810732963.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libparking_lot_core-c0b880e0a9eb33fd.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpolonius_engine-9cee3d969af444dc.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libppv_lite86-3daddea0021c3570.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libproc_macro-dac4d13fc88ca4c5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libpunycode-bb0a5a5b8d4ab8dc.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librand-a02d5b6ad9a120b1.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librand_chacha-00393a51d25fc623.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librand_core-4168987aee19ebc4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libremove_dir_all-5dbba00a148fd0f5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librls_data-9b917d46e80f9662.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librls_span-a7f6d8f8ccf23a7e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc-7eb5fe68c14b8bda.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_apfloat-f44c5706bf0a5a2e.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_ast_borrowck-e2aa208cd0e2583a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_ssa-5161a0f5ee28f97a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_codegen_utils-e815caffad55e084.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-d64288d92a630214.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-8f6b9ddcc7201da3.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_demangle-e7bac4eb670c1d68.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-1606be613dcf0865.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_errors-fc819ebc6a304fcd.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_fs_util-1d4c3644ae6c526b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_hash-b0cd4e680f1a6152.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_incremental-8144dd09cc4f1d45.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_interface-226c0942216c3be0.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lexer-447fffed0f6e4268.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-11d2fed567157f44.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_macros-a0a13155f0f7063f.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_metadata-4e05c9bad14295b2.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-1f93498f1165cc15.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_passes-0557f36c0967e44f.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin-479bba114d80899b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_plugin_impl-2b8e81b624b9fc27.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-9a95550d8f0606d3.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon-d8a272eeb52478f5.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_rayon_core-b67e5d356b8ef1df.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-4d2d670c232985f7.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_save_analysis-ac907576403235e9.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_alloc-b511cb7c627d3593.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_core-4f6ae5852c9ab846.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_std_workspace_std-19cf0ede7faa9e76.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_target-844e75954b2110bb.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_traits-00bf47bff77dec46.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-b3fb541ec551adac.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libryu-60cf5e49ccff6a2a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libscoped_tls-0bc3b131dbe844cc.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-13565673691a5e3b.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libscopeguard-417d8bc9ad1f34d1.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libserde-791a73e8d14f40ec.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libserde_json-82b8a609d56a76de.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-f3040a5efb57db8a.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsmallvec-33a2c36e485e406c.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libstable_deref_trait-88e8092e5d47c8c2.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libstd-d37decbf2d7be566.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libstd-d37decbf2d7be566.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-a02fca8defc4a9b8.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_ext-db3ef9764af704e0.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax_pos-7b1a9a123c53dc53.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtempfile-aae36d5d691bf0a2.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libterm-8c71712ca5699a61.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libterm_size-e500dfdcfde5d739.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtermcolor-b97a72ae01177052.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtest-efeac124cbe33a76.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libtest-efeac124cbe33a76.so
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-6a01ba0088334a70.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_width-7a86e6735a7786e4.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunicode_xid-3668f41535c028ca.rlib
> +lib/rustlib/${TRIPLE_ARCH}/lib/libunwind-498683b6e47ce894.rlib
> @man man/man1/cargo-bench.1
> @man man/man1/cargo-build.1
> @man man/man1/cargo-check.1
>

Reply | Threaded
Open this post in threaded view
|

Re: update: lang/rust

Sebastien Marie-3
On Thu, Dec 12, 2019 at 07:52:21AM +0100, Niklas Hallqvist wrote:
> As a matter of fact I did the same update just a week ago, and ended up in exactly the same patch set as you, except for one thing:
>
> The version reported by 'rust -V' normally include the git hash and date, and some rust code out there depends on it (maybe dumb, but nevertheless it is).

it is currently expected for build from a tarball. git information is only
included when build from a git directory. so I am expecting that any rust
installed from distribution to share the same output. (but when installed from
rustup, it comes from a build from mozilla which is done using git)

if some rust crate depends on it, you should open a bug report.

it could be interesting to also open a bug report on rustc itself in order to
include the information for tarball too (the tarball contains at least the
commit-hash information).

Thanks.
--
Sebastien Marie

Reply | Threaded
Open this post in threaded view
|

Re: update: lang/rust

Niklas Hallqvist
Yes, I sort of agree, but personally I will run with this meanwhile.  I
now recall what it was that made me do this: wasm. The wasm-pack system
requires the version of rustc to match with the wasm32-unknown-unknown
target, and I thought it better (read: easier :-) )to use the published
target instead of bootstrapping it myself.  Esp. if the only reason is
to get matching version strings.  As the tarball version is containing
the githash+date information I thought this was the easiest way.  Call
me lazy :-) I still had to build rust myself since I wanted 1.39 for
other reasons.

I won't push for the offical port of yours  to contain this, I just
wanted to contribute an idea.  Do with it what you like. Maybe I will
open a ticket with rustc for the tarball to contain the version, it
makes sense I think.

/Niklas

On 2019-12-12 09:15, Sebastien Marie wrote:

> On Thu, Dec 12, 2019 at 07:52:21AM +0100, Niklas Hallqvist wrote:
>> As a matter of fact I did the same update just a week ago, and ended up in exactly the same patch set as you, except for one thing:
>>
>> The version reported by 'rust -V' normally include the git hash and date, and some rust code out there depends on it (maybe dumb, but nevertheless it is).
> it is currently expected for build from a tarball. git information is only
> included when build from a git directory. so I am expecting that any rust
> installed from distribution to share the same output. (but when installed from
> rustup, it comes from a build from mozilla which is done using git)
>
> if some rust crate depends on it, you should open a bug report.
>
> it could be interesting to also open a bug report on rustc itself in order to
> include the information for tarball too (the tarball contains at least the
> commit-hash information).
>
> Thanks.