aboutsummaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2019-09-27 09:35:20 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2019-09-27 09:35:20 +0000
commitdeaa22d85c723390e0a8a8d18d783d82f9a07dcc (patch)
tree8f6d2407afa434eb97adf4d5cae76c4fd1897123 /lang
parent3362bfdd01e4eb0461404cd0b9202132a26d27da (diff)
downloadports-deaa22d85c723390e0a8a8d18d783d82f9a07dcc.tar.gz
ports-deaa22d85c723390e0a8a8d18d783d82f9a07dcc.zip
lang/rust: Update to 1.38.0
- Force rebuild all consumers to catch regressions early Thanks to Mikaƫl Urankar for providing updated bootstraps for aarch64, armv6, armv7, powerpc64. Changes: https://blog.rust-lang.org/2019/09/26/Rust-1.38.0.html Tested by: jbeich, mikael.urankar@gmail.com, tobik With hat: rust Differential Revision: https://reviews.freebsd.org/D21778
Notes
Notes: svn path=/head/; revision=513013
Diffstat (limited to 'lang')
-rw-r--r--lang/rust/Makefile40
-rw-r--r--lang/rust/distinfo94
-rw-r--r--lang/rust/files/extra-patch-arm-compiler-rt43
-rw-r--r--lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_arm.rs30
-rw-r--r--lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_auxvec.rs89
-rw-r--r--lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_mod.rs20
-rw-r--r--lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_powerpc.rs30
-rw-r--r--lang/rust/files/patch-vendor_libgit2-sys_lib.rs30
8 files changed, 145 insertions, 231 deletions
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 44badba43059..76fe9b3fde60 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= rust
-PORTVERSION?= 1.37.0
+PORTVERSION?= 1.38.0
PORTREVISION?= 0
CATEGORIES= lang
MASTER_SITES= https://static.rust-lang.org/dist/:src \
@@ -10,14 +10,16 @@ MASTER_SITES= https://static.rust-lang.org/dist/:src \
LOCAL/tobik/rust:rust_bootstrap \
https://static.rust-lang.org/dist/:cargo_bootstrap \
LOCAL/tobik/rust:cargo_bootstrap \
- https://github.com/llvm/llvm-project/releases/download/llvmorg-8.0.1/:compiler_rt
+ https://releases.llvm.org/${COMPILER_RT_VERSION}/:compiler_rt \
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-${COMPILER_RT_VERSION}/:compiler_rt
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
DISTFILES?= ${NIGHTLY_SUBDIR}${DISTNAME}${EXTRACT_SUFX}:src \
${_RUSTC_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz:rust_bootstrap \
${_RUST_STD_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz:rust_bootstrap \
${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz:cargo_bootstrap \
${DISTFILES_${ARCH}}
-DISTFILES_armv6= compiler-rt-8.0.1.src.tar.xz:compiler_rt
+DISTFILES_armv6= compiler-rt-${COMPILER_RT_VERSION}.src.tar.xz:compiler_rt
+DISTFILES_armv7= compiler-rt-${COMPILER_RT_VERSION}.src.tar.xz:compiler_rt
DIST_SUBDIR?= rust
EXTRACT_ONLY?= ${DISTFILES:N*\:*bootstrap:C/:.*//}
@@ -29,6 +31,7 @@ LICENSE_COMB= dual
LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT
+IGNORE_FreeBSD_11_powerpc64= is missing a bootstrap for FreeBSD 11.x powerpc64
ONLY_FOR_ARCHS?= aarch64 amd64 armv6 armv7 i386 powerpc64
ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler
@@ -38,10 +41,14 @@ LIB_DEPENDS= libcurl.so:ftp/curl \
libgit2.so:devel/libgit2 \
libssh2.so:security/libssh2
-USES= libedit pkgconfig python:2.7,build ssl tar:xz
+USES= libedit pkgconfig python:build ssl tar:xz
CONFLICTS_INSTALL?= rust-nightly
+EXTRA_PATCHES+= ${EXTRA_PATCHES_${ARCH}}
+EXTRA_PATCHES_armv6= ${PATCHDIR}/extra-patch-arm-compiler-rt
+EXTRA_PATCHES_armv7= ${PATCHDIR}/extra-patch-arm-compiler-rt
+
PLIST_FILES= lib/rustlib/components \
lib/rustlib/rust-installer-version
@@ -54,9 +61,10 @@ DOCS_VARS= _RUST_BUILD_DOCS=true
GDB_RUN_DEPENDS= ${LOCALBASE}/bin/gdb:devel/gdb
# See WRKSRC/src/stage0.txt for the date and version values.
-BOOTSTRAPS_DATE?= 2019-07-04
-RUST_BOOTSTRAP_VERSION?= 1.36.0
-CARGO_BOOTSTRAP_VERSION?= 0.37.0
+BOOTSTRAPS_DATE?= 2019-08-15
+RUST_BOOTSTRAP_VERSION?= 1.37.0
+CARGO_BOOTSTRAP_VERSION?= 0.38.0
+COMPILER_RT_VERSION?= 9.0.0
BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}}
BOOTSTRAPS_SUFFIX_powerpc64?= -elfv1
@@ -76,9 +84,9 @@ _CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_B
.include <bsd.port.pre.mk>
.if ${ARCH} == powerpc64
-# The bootstrap is hardcoded to use gcc8
+# The bootstrap is hardcoded to use gcc9
# but we can build with a newer or older compiler as provided by USE_GCC=yes
-BUILD_DEPENDS+= gcc8:lang/gcc8
+BUILD_DEPENDS+= gcc9:lang/gcc9
USE_GCC= yes
.endif
@@ -106,8 +114,8 @@ post-extract:
${WRKSRC}/build/cache/${_RUST_STD_BOOTSTRAP}.tar.gz
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz \
${WRKSRC}/build/cache/${_CARGO_BOOTSTRAP}.tar.gz
-.if ${ARCH} == armv6
- ${LN} -sf ${WRKDIR}/compiler-rt-8.0.1.src ${WRKSRC}/src/llvm-project/compiler-rt
+.if ${ARCH} == armv6 || ${ARCH} == armv7
+ ${LN} -sf ${WRKDIR}/compiler-rt-${COMPILER_RT_VERSION}.src ${WRKSRC}/src/llvm-project/compiler-rt
.endif
post-patch:
@@ -236,18 +244,20 @@ do-test:
.if !defined(_RUST_MAKESUM_GUARD)
makesum:
- ${MAKE} -D_RUST_MAKESUM_GUARD makesum ARCH=${ONLY_FOR_ARCHS:O:[1]}
+ ${MAKE} -D_RUST_MAKESUM_GUARD makesum ARCH=${ONLY_FOR_ARCHS:O:[1]} DISTINFO_FILE=${DISTINFO_FILE}.tmp
.for arch in ${ONLY_FOR_ARCHS:O:[2..-1]}
${MAKE} -D_RUST_MAKESUM_GUARD makesum ARCH=${arch} DISTINFO_FILE=${DISTINFO_FILE}.${arch}
- ${GREP} ${_RUST_ARCH_${arch}:U${arch}} ${DISTINFO_FILE}.${arch} >> ${DISTINFO_FILE}
+ ${GREP} ${_RUST_ARCH_${arch}:U${arch}} ${DISTINFO_FILE}.${arch} >> ${DISTINFO_FILE}.tmp
.for file in ${DISTFILES_${arch}}
- ${GREP} ${file:S,:, ,:[1]} ${DISTINFO_FILE}.${arch} >> ${DISTINFO_FILE}
+ ${GREP} ${file:S,:, ,:[1]} ${DISTINFO_FILE}.${arch} >> ${DISTINFO_FILE}.tmp
.endfor
${RM} ${DISTINFO_FILE}.${arch}
.endfor
${MAKE} -D_RUST_MAKESUM_GUARD makesum ARCH=powerpc64 BOOTSTRAPS_SUFFIX="-elfv2" DISTINFO_FILE=${DISTINFO_FILE}.powerpc64-elfv2
- ${GREP} ${_RUST_ARCH_powerpc64:Upowerpc64} ${DISTINFO_FILE}.powerpc64-elfv2 >> ${DISTINFO_FILE}
+ ${GREP} ${_RUST_ARCH_powerpc64:Upowerpc64} ${DISTINFO_FILE}.powerpc64-elfv2 >> ${DISTINFO_FILE}.tmp
${RM} ${DISTINFO_FILE}.powerpc64-elfv2
+ ${AWK} '!seen[$$0]++' ${DISTINFO_FILE}.tmp > ${DISTINFO_FILE}
+ ${RM} ${DISTINFO_FILE}.tmp
.endif
.include <bsd.port.post.mk>
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index 6a16c17f5b26..675691860200 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,47 +1,47 @@
-TIMESTAMP = 1567322590
-SHA256 (rust/rustc-1.37.0-src.tar.xz) = 10abffac50a729cf74cef6dd03193a2f4647541bd19ee9281be9e5b12ca8cdfd
-SIZE (rust/rustc-1.37.0-src.tar.xz) = 98654252
-SHA256 (rust/2019-07-04/rustc-1.36.0-aarch64-unknown-freebsd.tar.gz) = 8eec2d7750c96030b6b95eec2bc9ed1b7194780628d6017f615c2effdcc3b928
-SIZE (rust/2019-07-04/rustc-1.36.0-aarch64-unknown-freebsd.tar.gz) = 68458486
-SHA256 (rust/2019-07-04/rust-std-1.36.0-aarch64-unknown-freebsd.tar.gz) = 3c1e46be0c1d42bec5538eccc07e948d65743a160417856bf6d5885cede31c98
-SIZE (rust/2019-07-04/rust-std-1.36.0-aarch64-unknown-freebsd.tar.gz) = 77059731
-SHA256 (rust/2019-07-04/cargo-0.37.0-aarch64-unknown-freebsd.tar.gz) = 2fb56bb2a1420ea66e6f75f37d1c0d808c2943401d70650696d463ad90e78af9
-SIZE (rust/2019-07-04/cargo-0.37.0-aarch64-unknown-freebsd.tar.gz) = 6144087
-SHA256 (rust/2019-07-04/rustc-1.36.0-x86_64-unknown-freebsd.tar.gz) = c2dd0cec49b054ed9439762fb31555b8df9a3d81747b194f7d3afbc6d8adb8de
-SIZE (rust/2019-07-04/rustc-1.36.0-x86_64-unknown-freebsd.tar.gz) = 79088915
-SHA256 (rust/2019-07-04/rust-std-1.36.0-x86_64-unknown-freebsd.tar.gz) = a2a923cbfa3481af66c22673cac38e7cb70e26333318ad59c27b8b6ac16a84fe
-SIZE (rust/2019-07-04/rust-std-1.36.0-x86_64-unknown-freebsd.tar.gz) = 87112148
-SHA256 (rust/2019-07-04/cargo-0.37.0-x86_64-unknown-freebsd.tar.gz) = ae237412a5de0d01cc8aa065e00f604e72fadf85dd350d16b73a15d6ff7393f2
-SIZE (rust/2019-07-04/cargo-0.37.0-x86_64-unknown-freebsd.tar.gz) = 6651104
-SHA256 (rust/2019-07-04/rustc-1.36.0-armv6-unknown-freebsd.tar.gz) = 30af064165ada8defaa8bd1e63265944fb37c69172249723bd2747203ad7cbf0
-SIZE (rust/2019-07-04/rustc-1.36.0-armv6-unknown-freebsd.tar.gz) = 71286638
-SHA256 (rust/2019-07-04/rust-std-1.36.0-armv6-unknown-freebsd.tar.gz) = 6c35036131a110c858e7cb83657cd1b25ffae4cc65708f4e5a6e31325ef96edd
-SIZE (rust/2019-07-04/rust-std-1.36.0-armv6-unknown-freebsd.tar.gz) = 79061925
-SHA256 (rust/2019-07-04/cargo-0.37.0-armv6-unknown-freebsd.tar.gz) = e4fa3e76ab448eb8bfdf323b4de976a6f07c35d0eca91cc2bf480b41faa157ec
-SIZE (rust/2019-07-04/cargo-0.37.0-armv6-unknown-freebsd.tar.gz) = 5544892
-SHA256 (rust/compiler-rt-8.0.1.src.tar.xz) = 11828fb4823387d820c6715b25f6b2405e60837d12a7469e7a8882911c721837
-SIZE (rust/compiler-rt-8.0.1.src.tar.xz) = 1954204
-SHA256 (rust/2019-07-04/rustc-1.36.0-armv7-unknown-freebsd.tar.gz) = c652bfb82d0e640e24a91aef39e9eeeedc0bd0b5b828546f9ef47bbae6a279bd
-SIZE (rust/2019-07-04/rustc-1.36.0-armv7-unknown-freebsd.tar.gz) = 70165782
-SHA256 (rust/2019-07-04/rust-std-1.36.0-armv7-unknown-freebsd.tar.gz) = 8750ff6013261b68f692413c7db97fabac6a83583b4c16c2175ebb6a81c1d0c6
-SIZE (rust/2019-07-04/rust-std-1.36.0-armv7-unknown-freebsd.tar.gz) = 78322763
-SHA256 (rust/2019-07-04/cargo-0.37.0-armv7-unknown-freebsd.tar.gz) = f092d15bbfe91423efffa2d20c77e5ca9655aac4c41bd1943cf632aff1a92bf1
-SIZE (rust/2019-07-04/cargo-0.37.0-armv7-unknown-freebsd.tar.gz) = 5463628
-SHA256 (rust/2019-07-04/rustc-1.36.0-i686-unknown-freebsd.tar.gz) = 4ac319c56b360a1c9418cc1862ed86366c79155dbcfdd0a9852b98e0bc4dcd0e
-SIZE (rust/2019-07-04/rustc-1.36.0-i686-unknown-freebsd.tar.gz) = 80314139
-SHA256 (rust/2019-07-04/rust-std-1.36.0-i686-unknown-freebsd.tar.gz) = 3387dff03da9babc28861892f41b08ff58bc51bea2d0e84ac0a045e84999eebf
-SIZE (rust/2019-07-04/rust-std-1.36.0-i686-unknown-freebsd.tar.gz) = 87744414
-SHA256 (rust/2019-07-04/cargo-0.37.0-i686-unknown-freebsd.tar.gz) = 3c4cef06939123951649c9ffcef7ba104cc3bc63c2b3243a7a7228749c58f37c
-SIZE (rust/2019-07-04/cargo-0.37.0-i686-unknown-freebsd.tar.gz) = 6553782
-SHA256 (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 98b0f27977a5412852044bc7ef2e95dfb5eced140c73a0ed0faf5841cecbaf83
-SIZE (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 78638311
-SHA256 (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 197bb8ce6944eddc7c18d20f7c2721e35abb3458678ef60d287941ca01e244ed
-SIZE (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 81520259
-SHA256 (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 17d9345621caa47015843b811019e16b32020c053fb72c3f3a6909e42d548f6c
-SIZE (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 7388067
-SHA256 (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 7581410a224e3649fc75cbb302c46fa0d59d571f3c6b9556682ab1411872db83
-SIZE (rust/2019-07-04/rustc-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 72163495
-SHA256 (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = edd4584a9583fb699dbf23797151d1d78bdf1e1d1389d715acbdefc5fcf5dc7c
-SIZE (rust/2019-07-04/rust-std-1.36.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 79921640
-SHA256 (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 408fb3a5b2127ca369d5e5fe5768d475820916aa4e84150bdb939d0d155d5e32
-SIZE (rust/2019-07-04/cargo-0.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 5701853
+TIMESTAMP = 1569482113
+SHA256 (rust/rustc-1.38.0-src.tar.xz) = 3a7991aa4cb44ef941d71636e45a95468b520dc6fc7cf725364925bd3e3d3a34
+SIZE (rust/rustc-1.38.0-src.tar.xz) = 96163304
+SHA256 (rust/2019-08-15/rustc-1.37.0-aarch64-unknown-freebsd.tar.gz) = ebdd6e51cc8d3b73de59bcf609b6b0fd9f255d6c0b4c982c5d9609775b0269ff
+SIZE (rust/2019-08-15/rustc-1.37.0-aarch64-unknown-freebsd.tar.gz) = 56866730
+SHA256 (rust/2019-08-15/rust-std-1.37.0-aarch64-unknown-freebsd.tar.gz) = 2c6181d3dca8c70623625f9c0784e992128c00b1abbfad29f70791856d308eed
+SIZE (rust/2019-08-15/rust-std-1.37.0-aarch64-unknown-freebsd.tar.gz) = 68907067
+SHA256 (rust/2019-08-15/cargo-0.38.0-aarch64-unknown-freebsd.tar.gz) = 387b571a741d5e6162876ecae136366646b22d870511a47140301a1b0604a7b5
+SIZE (rust/2019-08-15/cargo-0.38.0-aarch64-unknown-freebsd.tar.gz) = 5422359
+SHA256 (rust/2019-08-15/rustc-1.37.0-x86_64-unknown-freebsd.tar.gz) = a4dd357a0b39abf1ebbe8a0f64973c3b0c5bc527e374c12afe51266279fc1ca6
+SIZE (rust/2019-08-15/rustc-1.37.0-x86_64-unknown-freebsd.tar.gz) = 70318740
+SHA256 (rust/2019-08-15/rust-std-1.37.0-x86_64-unknown-freebsd.tar.gz) = 8783a667ea9c46f27027d494098c51563faa734c5ddb23c6b9b3eda804eb9742
+SIZE (rust/2019-08-15/rust-std-1.37.0-x86_64-unknown-freebsd.tar.gz) = 87956779
+SHA256 (rust/2019-08-15/cargo-0.38.0-x86_64-unknown-freebsd.tar.gz) = ec5051df58aeff6720f386067c05de21bbc0f6532d74d2646f7b7bc36d341629
+SIZE (rust/2019-08-15/cargo-0.38.0-x86_64-unknown-freebsd.tar.gz) = 6712004
+SHA256 (rust/2019-08-15/rustc-1.37.0-armv6-unknown-freebsd.tar.gz) = d0b6c3422892764ebff9b3224265c47f62241d82b5974d715c0aabf845bbf586
+SIZE (rust/2019-08-15/rustc-1.37.0-armv6-unknown-freebsd.tar.gz) = 59085607
+SHA256 (rust/2019-08-15/rust-std-1.37.0-armv6-unknown-freebsd.tar.gz) = ce2b3f002457d7086870a2743e121aedc4dfb800fd9a65e6190d50f1b2e061a7
+SIZE (rust/2019-08-15/rust-std-1.37.0-armv6-unknown-freebsd.tar.gz) = 70261468
+SHA256 (rust/2019-08-15/cargo-0.38.0-armv6-unknown-freebsd.tar.gz) = 643497ec41d40168c99f327ee31cbcc0b73ea9bbb6bab523bfef2b915d13d186
+SIZE (rust/2019-08-15/cargo-0.38.0-armv6-unknown-freebsd.tar.gz) = 5716966
+SHA256 (rust/compiler-rt-9.0.0.src.tar.xz) = 56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e
+SIZE (rust/compiler-rt-9.0.0.src.tar.xz) = 1993084
+SHA256 (rust/2019-08-15/rustc-1.37.0-armv7-unknown-freebsd.tar.gz) = b957e13bdb899f42c1c4b3cd91d18f7d4f6ab08b2492f9acf85e447f53640121
+SIZE (rust/2019-08-15/rustc-1.37.0-armv7-unknown-freebsd.tar.gz) = 58107583
+SHA256 (rust/2019-08-15/rust-std-1.37.0-armv7-unknown-freebsd.tar.gz) = c380d455923065b5067a43ec796c043dfb4241392e068a187d6d93909f1cbafb
+SIZE (rust/2019-08-15/rust-std-1.37.0-armv7-unknown-freebsd.tar.gz) = 69710688
+SHA256 (rust/2019-08-15/cargo-0.38.0-armv7-unknown-freebsd.tar.gz) = 80641006fcb23de4780ac8576b9f0b235be1cb95e3d632a0976bfdd6117ee502
+SIZE (rust/2019-08-15/cargo-0.38.0-armv7-unknown-freebsd.tar.gz) = 4742625
+SHA256 (rust/2019-08-15/rustc-1.37.0-i686-unknown-freebsd.tar.gz) = 0d3a5bc51f138bfe3f7ccd4b9ccaa5aeec0d881118b7264f5e59ae8e1ce9f78a
+SIZE (rust/2019-08-15/rustc-1.37.0-i686-unknown-freebsd.tar.gz) = 70857405
+SHA256 (rust/2019-08-15/rust-std-1.37.0-i686-unknown-freebsd.tar.gz) = 21fbe36d9580f68fcd65d4248ffb05a40f787a38d87792545c7946b273e91beb
+SIZE (rust/2019-08-15/rust-std-1.37.0-i686-unknown-freebsd.tar.gz) = 88558002
+SHA256 (rust/2019-08-15/cargo-0.38.0-i686-unknown-freebsd.tar.gz) = e54e8e072ae5fba11ce36935cb813793ad6871b1fe1b3dfdb02a0a18e920ddda
+SIZE (rust/2019-08-15/cargo-0.38.0-i686-unknown-freebsd.tar.gz) = 6593950
+SHA256 (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = aa4c7295731a92258c9378e24697f90a546c6a403da6fa9ff4a688878fbcced7
+SIZE (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 67717247
+SHA256 (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = e6043fda28f881c9c7cb50cb1cd31b29552285d1e27a6e46d1c1abf707115be1
+SIZE (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 72780079
+SHA256 (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 335216cbd2f460b337e02c1f3ef235178943194d9a41700f98d6d063d34668e7
+SIZE (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 5587878
+SHA256 (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = f0e1eca1713b14e4dad034a96c2bdfe0493afe390b5dd33bf16139691412e91b
+SIZE (rust/2019-08-15/rustc-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 59832229
+SHA256 (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 2c6802162b807ad2e332a4872943f9a694aa925f553ef2e61fac9def9ad73d8e
+SIZE (rust/2019-08-15/rust-std-1.37.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 71174548
+SHA256 (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = db19655601cecbf18b9bca3d2db2545301b9d31fa353c78582eb378af6dc3966
+SIZE (rust/2019-08-15/cargo-0.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 4983791
diff --git a/lang/rust/files/extra-patch-arm-compiler-rt b/lang/rust/files/extra-patch-arm-compiler-rt
new file mode 100644
index 000000000000..48a112abcd57
--- /dev/null
+++ b/lang/rust/files/extra-patch-arm-compiler-rt
@@ -0,0 +1,43 @@
+https://reviews.llvm.org/D68045
+
+--- src/llvm-project/compiler-rt/lib/builtins/atomic.c.orig 2019-09-09 18:30:53 UTC
++++ src/llvm-project/compiler-rt/lib/builtins/atomic.c
+@@ -51,9 +51,11 @@ static const long SPINLOCK_MASK = SPINLOCK_COUNT - 1;
+ ////////////////////////////////////////////////////////////////////////////////
+ #ifdef __FreeBSD__
+ #include <errno.h>
+-#include <machine/atomic.h>
++// clang-format off
+ #include <sys/types.h>
++#include <machine/atomic.h>
+ #include <sys/umtx.h>
++// clang-format on
+ typedef struct _usem Lock;
+ __inline static void unlock(Lock *l) {
+ __c11_atomic_store((_Atomic(uint32_t) *)&l->_count, 1, __ATOMIC_RELEASE);
+--- src/llvm-project/compiler-rt/lib/builtins/clear_cache.c.orig 2019-09-09 18:30:53 UTC
++++ src/llvm-project/compiler-rt/lib/builtins/clear_cache.c
+@@ -23,8 +23,10 @@ uintptr_t GetCurrentProcess(void);
+ #endif
+
+ #if defined(__FreeBSD__) && defined(__arm__)
+-#include <machine/sysarch.h>
++// clang-format off
+ #include <sys/types.h>
++#include <machine/sysarch.h>
++// clang-format on
+ #endif
+
+ #if defined(__NetBSD__) && defined(__arm__)
+@@ -32,8 +34,10 @@ uintptr_t GetCurrentProcess(void);
+ #endif
+
+ #if defined(__OpenBSD__) && defined(__mips__)
+-#include <machine/sysarch.h>
++// clang-format off
+ #include <sys/types.h>
++#include <machine/sysarch.h>
++// clang-format on
+ #endif
+
+ #if defined(__linux__) && defined(__mips__)
diff --git a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_arm.rs b/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_arm.rs
deleted file mode 100644
index e04640b9d926..000000000000
--- a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_arm.rs
+++ /dev/null
@@ -1,30 +0,0 @@
---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/arm.rs.orig 2019-04-25 17:33:21 UTC
-+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/arm.rs
-@@ -0,0 +1,27 @@
-+//! Run-time feature detection for ARM on FreeBSD
-+
-+use crate::detect::{Feature, cache};
-+use super::{auxvec};
-+
-+/// Performs run-time feature detection.
-+#[inline]
-+pub fn check_for(x: Feature) -> bool {
-+ cache::test(x as u32, detect_features)
-+}
-+
-+/// Try to read the features from the auxiliary vector
-+fn detect_features() -> cache::Initializer {
-+ let mut value = cache::Initializer::default();
-+ let enable_feature = |value: &mut cache::Initializer, f, enable| {
-+ if enable {
-+ value.set(f as u32);
-+ }
-+ };
-+
-+ if let Ok(auxv) = auxvec::auxv() {
-+ enable_feature(&mut value, Feature::neon, auxv.hwcap & 0x00001000 != 0);
-+ enable_feature(&mut value, Feature::pmull, auxv.hwcap2 & 0x00000002 != 0);
-+ return value;
-+ }
-+ value
-+}
diff --git a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_auxvec.rs b/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_auxvec.rs
deleted file mode 100644
index 61210ce561dd..000000000000
--- a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_auxvec.rs
+++ /dev/null
@@ -1,89 +0,0 @@
---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/auxvec.rs.orig 2019-04-25 17:33:21 UTC
-+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/auxvec.rs
-@@ -0,0 +1,86 @@
-+//! Parses ELF auxiliary vectors.
-+#![cfg_attr(any(target_arch = "arm", target_arch = "powerpc64"), allow(dead_code))]
-+
-+/// Key to access the CPU Hardware capabilities bitfield.
-+pub(crate) const AT_HWCAP: usize = 25;
-+/// Key to access the CPU Hardware capabilities 2 bitfield.
-+pub(crate) const AT_HWCAP2: usize = 26;
-+
-+/// Cache HWCAP bitfields of the ELF Auxiliary Vector.
-+///
-+/// If an entry cannot be read all the bits in the bitfield are set to zero.
-+/// This should be interpreted as all the features being disabled.
-+#[derive(Debug, Copy, Clone)]
-+pub(crate) struct AuxVec {
-+ pub hwcap: usize,
-+ pub hwcap2: usize,
-+}
-+
-+/// ELF Auxiliary Vector
-+///
-+/// The auxiliary vector is a memory region in a running ELF program's stack
-+/// composed of (key: usize, value: usize) pairs.
-+///
-+/// The keys used in the aux vector are platform dependent. For FreeBSD, they are
-+/// defined in [sys/elf_common.h][elf_common_h]. The hardware capabilities of a given
-+/// CPU can be queried with the `AT_HWCAP` and `AT_HWCAP2` keys.
-+///
-+/// Note that run-time feature detection is not invoked for features that can
-+/// be detected at compile-time.
-+///
-+/// [elf_common.h]: https://svnweb.freebsd.org/base/release/12.0.0/sys/sys/elf_common.h?revision=341707
-+pub(crate) fn auxv() -> Result<AuxVec, ()> {
-+ if let Ok(hwcap) = archauxv(AT_HWCAP) {
-+ if let Ok(hwcap2) = archauxv(AT_HWCAP2) {
-+ if hwcap != 0 && hwcap2 != 0 {
-+ return Ok(AuxVec { hwcap, hwcap2 });
-+ }
-+ }
-+ }
-+ Err(())
-+}
-+
-+/// Tries to read the `key` from the auxiliary vector.
-+fn archauxv(key: usize) -> Result<usize, ()> {
-+ use crate::mem;
-+
-+ #[derive (Copy, Clone)]
-+ #[repr(C)]
-+ pub struct Elf_Auxinfo {
-+ pub a_type: usize,
-+ pub a_un: unnamed,
-+ }
-+ #[derive (Copy, Clone)]
-+ #[repr(C)]
-+ pub union unnamed {
-+ pub a_val: libc::c_long,
-+ pub a_ptr: *mut libc::c_void,
-+ pub a_fcn: Option<unsafe extern "C" fn() -> ()>,
-+ }
-+
-+ let mut auxv: [Elf_Auxinfo; 27] =
-+ [Elf_Auxinfo{a_type: 0, a_un: unnamed{a_val: 0,},}; 27];
-+
-+ let mut len: libc::c_uint = mem::size_of_val(&auxv) as libc::c_uint;
-+
-+ unsafe {
-+ let mut mib = [libc::CTL_KERN, libc::KERN_PROC, libc::KERN_PROC_AUXV, libc::getpid()];
-+
-+ let ret = libc::sysctl(mib.as_mut_ptr(),
-+ mib.len() as u32,
-+ &mut auxv as *mut _ as *mut _,
-+ &mut len as *mut _ as *mut _,
-+ 0 as *mut libc::c_void,
-+ 0,
-+ );
-+
-+ if ret != -1 {
-+ for i in 0..auxv.len() {
-+ if auxv[i].a_type == key {
-+ return Ok(auxv[i].a_un.a_val as usize);
-+ }
-+ }
-+ }
-+ }
-+ return Ok(0);
-+}
diff --git a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_mod.rs b/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_mod.rs
deleted file mode 100644
index c7b6bd5bac4e..000000000000
--- a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_mod.rs
+++ /dev/null
@@ -1,20 +0,0 @@
---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/mod.rs.orig 2019-05-20 12:10:32 UTC
-+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/mod.rs
-@@ -1,9 +1,17 @@
- //! Run-time feature detection on FreeBSD
-
-+mod auxvec;
-+
- cfg_if! {
- if #[cfg(target_arch = "aarch64")] {
- mod aarch64;
- pub use self::aarch64::check_for;
-+ } else if #[cfg(target_arch = "arm")] {
-+ mod arm;
-+ pub use self::arm::check_for;
-+ } else if #[cfg(target_arch = "powerpc64")] {
-+ mod powerpc;
-+ pub use self::powerpc::check_for;
- } else {
- use crate::arch::detect::Feature;
- /// Performs run-time feature detection.
diff --git a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_powerpc.rs b/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_powerpc.rs
deleted file mode 100644
index 352ba56708f0..000000000000
--- a/lang/rust/files/patch-src_stdsimd_crates_std__detect_src_detect_os_freebsd_powerpc.rs
+++ /dev/null
@@ -1,30 +0,0 @@
---- src/stdsimd/crates/std_detect/src/detect/os/freebsd/powerpc.rs.orig 2019-04-25 17:33:21 UTC
-+++ src/stdsimd/crates/std_detect/src/detect/os/freebsd/powerpc.rs
-@@ -0,0 +1,27 @@
-+//! Run-time feature detection for PowerPC on FreeBSD.
-+
-+use crate::detect::{Feature, cache};
-+use super::{auxvec};
-+
-+/// Performs run-time feature detection.
-+#[inline]
-+pub fn check_for(x: Feature) -> bool {
-+ cache::test(x as u32, detect_features)
-+}
-+
-+fn detect_features() -> cache::Initializer {
-+ let mut value = cache::Initializer::default();
-+ let enable_feature = |value: &mut cache::Initializer, f, enable| {
-+ if enable {
-+ value.set(f as u32);
-+ }
-+ };
-+
-+ if let Ok(auxv) = auxvec::auxv() {
-+ enable_feature(&mut value, Feature::altivec, auxv.hwcap & 0x10000000 != 0);
-+ enable_feature(&mut value, Feature::vsx, auxv.hwcap & 0x00000080 != 0);
-+ enable_feature(&mut value, Feature::power8, auxv.hwcap2 & 0x80000000 != 0);
-+ return value;
-+ }
-+ value
-+}
diff --git a/lang/rust/files/patch-vendor_libgit2-sys_lib.rs b/lang/rust/files/patch-vendor_libgit2-sys_lib.rs
new file mode 100644
index 000000000000..3f342b41b922
--- /dev/null
+++ b/lang/rust/files/patch-vendor_libgit2-sys_lib.rs
@@ -0,0 +1,30 @@
+Revert to libgit2 0.28 API per https://github.com/rust-lang/git2-rs/issues/458
+
+--- vendor/libgit2-sys/lib.rs.orig 2019-08-16 20:27:18 UTC
++++ vendor/libgit2-sys/lib.rs
+@@ -331,7 +331,6 @@ pub struct git_remote_callbacks {
+ pub push_negotiation: Option<git_push_negotiation>,
+ pub transport: Option<git_transport_cb>,
+ pub payload: *mut c_void,
+- pub resolve_url: Option<git_url_resolve_cb>,
+ }
+
+ #[repr(C)]
+@@ -385,8 +384,6 @@ pub type git_push_negotiation =
+
+ pub type git_push_update_reference_cb =
+ extern "C" fn(*const c_char, *const c_char, *mut c_void) -> c_int;
+-pub type git_url_resolve_cb =
+- extern "C" fn(*mut git_buf, *const c_char, c_int, *mut c_void) -> c_int;
+
+ #[repr(C)]
+ pub struct git_push_update {
+@@ -2233,7 +2230,7 @@ extern "C" {
+ source: *const git_tree,
+ ) -> c_int;
+ pub fn git_treebuilder_clear(bld: *mut git_treebuilder);
+- pub fn git_treebuilder_entrycount(bld: *mut git_treebuilder) -> size_t;
++ pub fn git_treebuilder_entrycount(bld: *mut git_treebuilder) -> c_uint;
+ pub fn git_treebuilder_free(bld: *mut git_treebuilder);
+ pub fn git_treebuilder_get(
+ bld: *mut git_treebuilder,