aboutsummaryrefslogtreecommitdiff
path: root/lang/rust
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2020-04-23 15:32:29 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2020-04-23 15:32:29 +0000
commit5abe8902a53b7bfd7ab482ec3f59229cdc2e812d (patch)
treedaa44b3bcefdd28f130988ddbc1a68139417194d /lang/rust
parentc108a6700f69ec335f794e2b36e9077f81facda9 (diff)
downloadports-5abe8902a53b7bfd7ab482ec3f59229cdc2e812d.tar.gz
ports-5abe8902a53b7bfd7ab482ec3f59229cdc2e812d.zip
lang/rust: Update to 1.43.0
- Add workaround to fix build when CC/CXX have "clang" in them [1] - Respect AR to fix build with external toolchains [2] - Force rebuild all consumers to catch regressions early Changes: https://blog.rust-lang.org/2020/04/23/Rust-1.43.0.html PR: 238556 [1], 245583 [2] Reported by: Matthias Apitz <guru@unixarea.de> [1], Greg V <greg@unrelenting.technology> [2] Tested by: mikael, pkubaj, tobik With hat: rust Differential Revision: https://reviews.freebsd.org/D24521
Notes
Notes: svn path=/head/; revision=532685
Diffstat (limited to 'lang/rust')
-rw-r--r--lang/rust/Makefile36
-rw-r--r--lang/rust/distinfo90
-rw-r--r--lang/rust/files/patch-src_stdarch_crates_std__detect_src_detect_mod.rs11
-rw-r--r--lang/rust/files/patch-vendor_cc_src_lib.rs42
4 files changed, 119 insertions, 60 deletions
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index c04f93610163..cfa7f250c55a 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= rust
-PORTVERSION?= 1.42.0
-PORTREVISION?= 2
+PORTVERSION?= 1.43.0
+PORTREVISION?= 0
CATEGORIES= lang
-MASTER_SITES= https://static.rust-lang.org/dist/:src \
+MASTER_SITES= https://dev-static.rust-lang.org/dist/:src \
LOCAL/tobik/rust:bootstrap \
https://static.rust-lang.org/dist/:bootstrap
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
@@ -28,7 +28,8 @@ 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
-BUILD_DEPENDS= cmake:devel/cmake
+BUILD_DEPENDS= cmake:devel/cmake \
+ libgit2>=1.0.0:devel/libgit2
LIB_DEPENDS= libcurl.so:ftp/curl \
libgit2.so:devel/libgit2 \
libssh2.so:security/libssh2
@@ -51,16 +52,17 @@ GDB_DESC= Install ports gdb (necessary for debugging rust programs)
SOURCES_DESC= Install source files
WASM_DESC= Build the WebAssembly target (wasm32-unknown-unknown)
-DOCS_VARS_OFF= _RUST_BUILD_DOCS=false
DOCS_VARS= _RUST_BUILD_DOCS=true
+DOCS_VARS_OFF= _RUST_BUILD_DOCS=false
GDB_RUN_DEPENDS= ${LOCALBASE}/bin/gdb:devel/gdb
+WASM_VARS= _RUST_BUILD_WASM=true \
+ _RUST_TARGETS+=wasm32-unknown-unknown
WASM_VARS_OFF= _RUST_BUILD_WASM=false
-WASM_VARS= _RUST_BUILD_WASM=true
# See WRKSRC/src/stage0.txt for the date and version values.
-BOOTSTRAPS_DATE?= 2020-02-29
-RUST_BOOTSTRAP_VERSION?= 1.41.1
-CARGO_BOOTSTRAP_VERSION?= 0.42.0
+BOOTSTRAPS_DATE?= 2020-03-12
+RUST_BOOTSTRAP_VERSION?= 1.42.0
+CARGO_BOOTSTRAP_VERSION?= 0.43.0
BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}}
BOOTSTRAPS_SUFFIX_powerpc64?= -${PPC_ABI:tl}
@@ -71,6 +73,7 @@ CARGO_VENDOR_DIR?= ${WRKSRC}/vendor
_RUST_ARCH_amd64= x86_64
_RUST_ARCH_i386= i686
_RUST_TARGET= ${_RUST_ARCH_${ARCH}:U${ARCH}}-unknown-${OPSYS:tl}
+_RUST_TARGETS= ${_RUST_TARGET}
_RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
_RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
@@ -144,9 +147,7 @@ do-configure:
@${ECHO_CMD} 'python="${PYTHON_CMD}"' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'docs=${_RUST_BUILD_DOCS}' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'verbose=2' >> ${WRKSRC}/config.toml
-.if ${PORT_OPTIONS:MWASM}
- @${ECHO_CMD} 'target=["${_RUST_TARGET}","wasm32-unknown-unknown"]' >> ${WRKSRC}/config.toml
-.endif
+ @${ECHO_CMD} 'target=[${_RUST_TARGETS:@.target.@"${.target.}"@:ts,}]' >> ${WRKSRC}/config.toml
@${ECHO_CMD} '[install]' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'prefix="${PREFIX}"' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'sysconfdir="${PREFIX}/etc"' >> ${WRKSRC}/config.toml
@@ -161,17 +162,22 @@ do-configure:
.else
@${ECHO_CMD} 'ccache=false' >> ${WRKSRC}/config.toml
.endif
- @${ECHO_CMD} '[target.${_RUST_TARGET}]' >> ${WRKSRC}/config.toml
- @${ECHO_CMD} 'cc="${CC}"' >> ${WRKSRC}/config.toml
- @${ECHO_CMD} 'cxx="${CXX}"' >> ${WRKSRC}/config.toml
.if ${ARCH} == armv6
# fails to link with base ld.bfd: rustc_codegen_llvm.e2557spx-cgu.11:(.text._ZN89_$LT$rustc_target..abi..call..CastTarget$u20$as$u20$rustc_codegen_llvm..abi..LlvmType$GT$9llvm_type17h1296210ab461fc57E+0x54): relocation truncated to fit: R_ARM_CALL against symbol `__aeabi_uldivmod' defined in .text.__aeabi_uldivmod section in /tmp/rustcdnGbao/libcompiler_builtins-ee65b414e4115a8f.rlib(compiler_builtins-ee65b414e4115a8f.compiler_builtins.ay8p39ey-cgu.13.rcgu.o)
@${PRINTF} '#!/bin/sh\nexec ${CC} -fuse-ld=lld "$$@"' > ${WRKDIR}/cc-wrapper
@${CHMOD} +x ${WRKDIR}/cc-wrapper
+.endif
+.for _target in ${_RUST_TARGETS}
+ @${ECHO_CMD} '[target.${_target}]' >> ${WRKSRC}/config.toml
+ @${ECHO_CMD} 'ar="${AR}"' >> ${WRKSRC}/config.toml
+ @${ECHO_CMD} 'cc="${CC}"' >> ${WRKSRC}/config.toml
+ @${ECHO_CMD} 'cxx="${CXX}"' >> ${WRKSRC}/config.toml
+.if ${ARCH} == armv6
@${ECHO_CMD} 'linker="${WRKDIR}/cc-wrapper"' >> ${WRKSRC}/config.toml
.else
@${ECHO_CMD} 'linker="${CC}"' >> ${WRKSRC}/config.toml
.endif
+.endfor
@${ECHO_CMD} '[dist]' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'src-tarball=false' >> ${WRKSRC}/config.toml
@${REINPLACE_CMD} 's,%CC%,${CC},g' \
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index f45e02a85fc5..14e76b82957a 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,45 +1,45 @@
-TIMESTAMP = 1583854644
-SHA256 (rust/rustc-1.42.0-src.tar.xz) = aa5b4c0f2bac33cc26a11523fce9b0f120d2eff510ed148ae7c586501481ed04
-SIZE (rust/rustc-1.42.0-src.tar.xz) = 94186592
-SHA256 (rust/2020-02-29/rustc-1.41.1-aarch64-unknown-freebsd.tar.xz) = 450b9870656a3cc76385dc6fb3347d4192f4a75c09644d22d73641016e47ae34
-SIZE (rust/2020-02-29/rustc-1.41.1-aarch64-unknown-freebsd.tar.xz) = 25741844
-SHA256 (rust/2020-02-29/rust-std-1.41.1-aarch64-unknown-freebsd.tar.xz) = 768483484e03449718098d71d2df49859498dd089da0fbba93839490922a9f89
-SIZE (rust/2020-02-29/rust-std-1.41.1-aarch64-unknown-freebsd.tar.xz) = 13184164
-SHA256 (rust/2020-02-29/cargo-0.42.0-aarch64-unknown-freebsd.tar.xz) = 9a2327bc426e1524c62626845330bf0e38bd592bbc51c046848459b941adc948
-SIZE (rust/2020-02-29/cargo-0.42.0-aarch64-unknown-freebsd.tar.xz) = 3768016
-SHA256 (rust/2020-02-29/rustc-1.41.1-x86_64-unknown-freebsd.tar.xz) = 183bcbda3a19fb3c6be81082ed422dd97c7a8d3a4a8370268d8a8474278b9637
-SIZE (rust/2020-02-29/rustc-1.41.1-x86_64-unknown-freebsd.tar.xz) = 28096624
-SHA256 (rust/2020-02-29/rust-std-1.41.1-x86_64-unknown-freebsd.tar.xz) = 28bccebc5c0bff25ffc63850d5b19ff316d6552f843bb14936f7538f1a3ea5d4
-SIZE (rust/2020-02-29/rust-std-1.41.1-x86_64-unknown-freebsd.tar.xz) = 13800276
-SHA256 (rust/2020-02-29/cargo-0.42.0-x86_64-unknown-freebsd.tar.xz) = 4a55196e0853ba57e793cc67c85e9ae06ec2ad6cf5c3545bfd2d89abc5362825
-SIZE (rust/2020-02-29/cargo-0.42.0-x86_64-unknown-freebsd.tar.xz) = 4397816
-SHA256 (rust/2020-02-29/rustc-1.41.1-armv6-unknown-freebsd.tar.xz) = 64fc2601a9047f8605183a5f5e0870ec776e84c3a01fdca179af1d799e7ec5f8
-SIZE (rust/2020-02-29/rustc-1.41.1-armv6-unknown-freebsd.tar.xz) = 26932384
-SHA256 (rust/2020-02-29/rust-std-1.41.1-armv6-unknown-freebsd.tar.xz) = 8cd6b1f6d18c853f739438df3ee1aa45d0e904b19d01db034935267b6a7cf3d1
-SIZE (rust/2020-02-29/rust-std-1.41.1-armv6-unknown-freebsd.tar.xz) = 13197644
-SHA256 (rust/2020-02-29/cargo-0.42.0-armv6-unknown-freebsd.tar.xz) = 6af958f17914f4ca317613745f2f53fba8e7d92160d7f9cec75c0992e6504a9c
-SIZE (rust/2020-02-29/cargo-0.42.0-armv6-unknown-freebsd.tar.xz) = 3826200
-SHA256 (rust/2020-02-29/rustc-1.41.1-armv7-unknown-freebsd.tar.xz) = 24d2603a1191e88f32caff98c0f30e1c0a19fc58a894fbf28e298e9753c4ed24
-SIZE (rust/2020-02-29/rustc-1.41.1-armv7-unknown-freebsd.tar.xz) = 26889080
-SHA256 (rust/2020-02-29/rust-std-1.41.1-armv7-unknown-freebsd.tar.xz) = ef5b70ee1f2f5ff5368431301d9983ae1675f02f675dbdd0c4cd238874541661
-SIZE (rust/2020-02-29/rust-std-1.41.1-armv7-unknown-freebsd.tar.xz) = 13115476
-SHA256 (rust/2020-02-29/cargo-0.42.0-armv7-unknown-freebsd.tar.xz) = c12d407e33a106ce370468f4e71cf4ca73ed5dc32fc295dcbd23340b8486832d
-SIZE (rust/2020-02-29/cargo-0.42.0-armv7-unknown-freebsd.tar.xz) = 3820132
-SHA256 (rust/2020-02-29/rustc-1.41.1-i686-unknown-freebsd.tar.xz) = 9192ae6f5cff5afd7d29686694e72e1618ec9f973e29c89a267a399097d893d9
-SIZE (rust/2020-02-29/rustc-1.41.1-i686-unknown-freebsd.tar.xz) = 28774560
-SHA256 (rust/2020-02-29/rust-std-1.41.1-i686-unknown-freebsd.tar.xz) = 0416b5b7a1c6d22101802f246ef760d856d589d0f2f73898df8f1b46b4d37d43
-SIZE (rust/2020-02-29/rust-std-1.41.1-i686-unknown-freebsd.tar.xz) = 13670064
-SHA256 (rust/2020-02-29/cargo-0.42.0-i686-unknown-freebsd.tar.xz) = 64fc4a4418d96e20bc83abc38c76f3212ae6643bcd039db1dc05aacb596dc98e
-SIZE (rust/2020-02-29/cargo-0.42.0-i686-unknown-freebsd.tar.xz) = 4416360
-SHA256 (rust/2020-02-29/rustc-1.41.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 3f81c55a6865da252a7184af48878c0eedf65f3c5075b019619380d26ee05f9f
-SIZE (rust/2020-02-29/rustc-1.41.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 31564236
-SHA256 (rust/2020-02-29/rust-std-1.41.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 544eb40644658cb6319d3b012881b062f68474d28f441100b7aa9b2f31c7eda7
-SIZE (rust/2020-02-29/rust-std-1.41.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 13163336
-SHA256 (rust/2020-02-29/cargo-0.42.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 5a1d8683c2327305ddb5f0a2a794325b09e904451bf74c6e8aa8e8ec925eec57
-SIZE (rust/2020-02-29/cargo-0.42.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 4246988
-SHA256 (rust/2020-02-29/rustc-1.41.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 08023a907b3e69dd4689f174dd2da7e654324a35ecfc522db31d7aa9e049520d
-SIZE (rust/2020-02-29/rustc-1.41.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 26407348
-SHA256 (rust/2020-02-29/rust-std-1.41.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 008e9e8426fe4f82d9b950ea325aaeaecf6b182ce061a39ebfbf3b2d9263ab16
-SIZE (rust/2020-02-29/rust-std-1.41.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 13116720
-SHA256 (rust/2020-02-29/cargo-0.42.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = a1010a8fb3e2d635f2fd81999fe2309120da9ec4db4aacb3b6e9cb8bd0a79736
-SIZE (rust/2020-02-29/cargo-0.42.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4025124
+TIMESTAMP = 1587600298
+SHA256 (rust/rustc-1.43.0-src.tar.xz) = d0899933840369f07394b211cb0b53a5cd4634907633f0bee541133c8b75e309
+SIZE (rust/rustc-1.43.0-src.tar.xz) = 94354332
+SHA256 (rust/2020-03-12/rustc-1.42.0-aarch64-unknown-freebsd.tar.xz) = a8f1f858837b160bd63ce2526ab6add67ed6fcda56b6e5d566434b11f0e5f56f
+SIZE (rust/2020-03-12/rustc-1.42.0-aarch64-unknown-freebsd.tar.xz) = 26088116
+SHA256 (rust/2020-03-12/rust-std-1.42.0-aarch64-unknown-freebsd.tar.xz) = 5d24030cf4476850c2873caa1f00580b4c9e21d71aace2318c0b3ba496e7b6a7
+SIZE (rust/2020-03-12/rust-std-1.42.0-aarch64-unknown-freebsd.tar.xz) = 13088580
+SHA256 (rust/2020-03-12/cargo-0.43.0-aarch64-unknown-freebsd.tar.xz) = e91c969f3a14a84008bb8318ba133b4f9b0d8db592ea8e8f82ca71c693e3e8b6
+SIZE (rust/2020-03-12/cargo-0.43.0-aarch64-unknown-freebsd.tar.xz) = 3778792
+SHA256 (rust/2020-03-12/rustc-1.42.0-x86_64-unknown-freebsd.tar.xz) = 57bf3f88f1ef09142c45a434a79611bb81e5366862a9f954d5ff76a5c09ef3db
+SIZE (rust/2020-03-12/rustc-1.42.0-x86_64-unknown-freebsd.tar.xz) = 28223964
+SHA256 (rust/2020-03-12/rust-std-1.42.0-x86_64-unknown-freebsd.tar.xz) = c132f7024d83c717e518ff01830ec37a779db4b6f4b57d03633b8663bb7672f9
+SIZE (rust/2020-03-12/rust-std-1.42.0-x86_64-unknown-freebsd.tar.xz) = 13665440
+SHA256 (rust/2020-03-12/cargo-0.43.0-x86_64-unknown-freebsd.tar.xz) = b7d01dfc78082a3081a30acba89eeeaddb01f8e2d5dc9959f415079d53c92d18
+SIZE (rust/2020-03-12/cargo-0.43.0-x86_64-unknown-freebsd.tar.xz) = 4411904
+SHA256 (rust/2020-03-12/rustc-1.42.0-armv6-unknown-freebsd.tar.xz) = 1de050ad62ec3777ebfb35fb4fdcb28b4774549b5cbad6291e4b4d7787fe8c4e
+SIZE (rust/2020-03-12/rustc-1.42.0-armv6-unknown-freebsd.tar.xz) = 27219532
+SHA256 (rust/2020-03-12/rust-std-1.42.0-armv6-unknown-freebsd.tar.xz) = eb3265f010b7ea874a7875df99d7ca699001fccc205011bef9fef6b07c44a5eb
+SIZE (rust/2020-03-12/rust-std-1.42.0-armv6-unknown-freebsd.tar.xz) = 13120800
+SHA256 (rust/2020-03-12/cargo-0.43.0-armv6-unknown-freebsd.tar.xz) = 09afe625801c252d7bf84b60248776269ede2e886937f4bc3e1210e37c3bf8e2
+SIZE (rust/2020-03-12/cargo-0.43.0-armv6-unknown-freebsd.tar.xz) = 3850860
+SHA256 (rust/2020-03-12/rustc-1.42.0-armv7-unknown-freebsd.tar.xz) = 6ae842cb01ac1b8e26b90c21ae3e4cc5feb53490603c6513b14fd2e8348b5c34
+SIZE (rust/2020-03-12/rustc-1.42.0-armv7-unknown-freebsd.tar.xz) = 27377064
+SHA256 (rust/2020-03-12/rust-std-1.42.0-armv7-unknown-freebsd.tar.xz) = f24cc8db0d44d127c933c9d0c3828183b3b8701ac60f691bc81bd8bb6debc150
+SIZE (rust/2020-03-12/rust-std-1.42.0-armv7-unknown-freebsd.tar.xz) = 13074792
+SHA256 (rust/2020-03-12/cargo-0.43.0-armv7-unknown-freebsd.tar.xz) = 619572f3c0786e275ce9120a3fcc8b629a6deaedc36d79134c328cc9dc4d0293
+SIZE (rust/2020-03-12/cargo-0.43.0-armv7-unknown-freebsd.tar.xz) = 3847128
+SHA256 (rust/2020-03-12/rustc-1.42.0-i686-unknown-freebsd.tar.xz) = 48a22fce0ce707c36abc06a802f09055cf3159f038dfeb7c85b0c64783311c44
+SIZE (rust/2020-03-12/rustc-1.42.0-i686-unknown-freebsd.tar.xz) = 28924904
+SHA256 (rust/2020-03-12/rust-std-1.42.0-i686-unknown-freebsd.tar.xz) = ea808b5867263f5e5c49303d3e404df3684bb78105ffbe80c91db770f0cd8bee
+SIZE (rust/2020-03-12/rust-std-1.42.0-i686-unknown-freebsd.tar.xz) = 13596844
+SHA256 (rust/2020-03-12/cargo-0.43.0-i686-unknown-freebsd.tar.xz) = b876b882513a4b6848e31788aa8181bfbece9b3e75b1ca807edb8300e539267d
+SIZE (rust/2020-03-12/cargo-0.43.0-i686-unknown-freebsd.tar.xz) = 4467712
+SHA256 (rust/2020-03-12/rustc-1.42.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = bb5a93a7b72673dd36c1b36d4826118b8d5e6f4914777b10406dde9a890e5a09
+SIZE (rust/2020-03-12/rustc-1.42.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 32013656
+SHA256 (rust/2020-03-12/rust-std-1.42.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = b70b28c1630917ec0475891aef1f8ad24ae2ee7a2f3acbc0050648e4efde4b5d
+SIZE (rust/2020-03-12/rust-std-1.42.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 13056600
+SHA256 (rust/2020-03-12/cargo-0.43.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = b4c4e1d998ae003d878ec79ebeb9762655fd8d1eb7ec0d06eea9eebf53732ba2
+SIZE (rust/2020-03-12/cargo-0.43.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 4303300
+SHA256 (rust/2020-03-12/rustc-1.42.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = f6fa812e3cdffffd7c9010a23fc7a33a042b490bc7763c8ef35c87a5952e5400
+SIZE (rust/2020-03-12/rustc-1.42.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 26564788
+SHA256 (rust/2020-03-12/rust-std-1.42.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 41639879c77b37feb60a85c5f935374c3d2eb95604175bc59ea3ea5a6cdafc40
+SIZE (rust/2020-03-12/rust-std-1.42.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 13032100
+SHA256 (rust/2020-03-12/cargo-0.43.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = c853af3a88baabf87bde3453f511b3c4586eb819fa7caed18b51b70d370efbf9
+SIZE (rust/2020-03-12/cargo-0.43.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4025108
diff --git a/lang/rust/files/patch-src_stdarch_crates_std__detect_src_detect_mod.rs b/lang/rust/files/patch-src_stdarch_crates_std__detect_src_detect_mod.rs
new file mode 100644
index 000000000000..9eae9f4fd08c
--- /dev/null
+++ b/lang/rust/files/patch-src_stdarch_crates_std__detect_src_detect_mod.rs
@@ -0,0 +1,11 @@
+--- src/stdarch/crates/std_detect/src/detect/mod.rs.orig 2020-04-21 17:12:47 UTC
++++ src/stdarch/crates/std_detect/src/detect/mod.rs
+@@ -100,7 +100,7 @@ cfg_if! {
+ } else if #[cfg(all(target_os = "linux", feature = "use_std"))] {
+ #[path = "os/linux/mod.rs"]
+ mod os;
+- } else if #[cfg(target_os = "freebsd")] {
++ } else if #[cfg(all(target_os = "freebsd", feature = "use_std"))] {
+ #[cfg(target_arch = "aarch64")]
+ #[path = "os/aarch64.rs"]
+ mod aarch64;
diff --git a/lang/rust/files/patch-vendor_cc_src_lib.rs b/lang/rust/files/patch-vendor_cc_src_lib.rs
new file mode 100644
index 000000000000..0c6b6f99cbe9
--- /dev/null
+++ b/lang/rust/files/patch-vendor_cc_src_lib.rs
@@ -0,0 +1,42 @@
+When the compiler has "clang" in its name the cc crate will pass
+an LLVM target triple to it. Rust uses a triple that lacks the OS
+version and LLVM will default to FreeBSD 9 behavior, i.e., it will
+default to libstdc++ which is no longer available in newer releases.
+
+To avoid this issue assume we have a GNU compatible toolchain instead
+until LLVM can be updated to use libc++ by default.
+
+https://reviews.llvm.org/D77776
+
+--- vendor/cc/src/lib.rs.orig 2020-04-14 08:55:10 UTC
++++ vendor/cc/src/lib.rs
+@@ -2353,28 +2353,7 @@ impl Tool {
+ }
+
+ fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self {
+- // Try to detect family of the tool from its name, falling back to Gnu.
+- let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
+- if fname.contains("clang-cl") {
+- ToolFamily::Msvc { clang_cl: true }
+- } else if fname.contains("cl")
+- && !fname.contains("cloudabi")
+- && !fname.contains("uclibc")
+- && !fname.contains("clang")
+- {
+- ToolFamily::Msvc { clang_cl: false }
+- } else if fname.contains("clang") {
+- match clang_driver {
+- Some("cl") => ToolFamily::Msvc { clang_cl: true },
+- _ => ToolFamily::Clang,
+- }
+- } else {
+- ToolFamily::Gnu
+- }
+- } else {
+- ToolFamily::Gnu
+- };
+-
++ let family = ToolFamily::Gnu;
+ Tool {
+ path: path,
+ cc_wrapper_path: None,