summaryrefslogtreecommitdiff
path: root/lang/rust
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2020-07-17 06:44:04 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2020-07-17 06:44:04 +0000
commitb0f1d6430efe60a7d9a3aa11e8ed28a80842469b (patch)
tree99d9ac6360ee6f7d04f5cb7d7f1db83a19a355f8 /lang/rust
parentmultimedia/kodi-addon-pvr-hts: Update to 4.4.21 to chase kodi update (diff)
lang/rust: Update to 1.45.0
- This Rust release comes with LLVM 10. Drop the LLVM patches we no longer need. - On FreeBSD 13.0 powerpc64 set the elfv2 ABI explicitly in the Rust target instead of patching LLVM. - Build LLVM with Ninja. It can shorten the build time slightly. - Force rebuild all consumers to catch regressions early Changes: https://blog.rust-lang.org/2020/07/16/Rust-1.45.0.html Tested by: mikael, pkubaj, tobik With hat: rust Differential Revision: https://reviews.freebsd.org/D25658
Notes
Notes: svn path=/head/; revision=542412
Diffstat (limited to 'lang/rust')
-rw-r--r--lang/rust/Makefile33
-rw-r--r--lang/rust/distinfo90
-rw-r--r--lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c43
-rw-r--r--lang/rust/files/armv7/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c43
-rw-r--r--lang/rust/files/patch-src_bootstrap_native.rs10
-rw-r--r--lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_InstCombine_InstCombineCasts.cpp156
-rw-r--r--lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_spec_powerpc64__unknown__freebsd.rs14
-rw-r--r--lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_clang_lib_Basic_Targets_PPC.h34
-rw-r--r--lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_llvm_lib_Target_PowerPC_PPCTargetMachine.cpp23
9 files changed, 75 insertions, 371 deletions
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index cae53f4de613..8dd66f57536e 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= rust
-PORTVERSION?= 1.44.1
-PORTREVISION?= 1
+PORTVERSION?= 1.45.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,10 +28,8 @@ ONLY_FOR_ARCHS?= aarch64 amd64 armv6 armv7 i386 powerpc64
ONLY_FOR_ARCHS_REASON?= requires prebuilt bootstrap compiler
BUILD_DEPENDS= cmake:devel/cmake \
- libgit2>=1.0.0:devel/libgit2
-.if defined(NIGHTLY_DATE)
-BUILD_DEPENDS+= ninja:devel/ninja
-.endif
+ libgit2>=1.0.0:devel/libgit2 \
+ ninja:devel/ninja
LIB_DEPENDS= libcurl.so:ftp/curl \
libgit2.so:devel/libgit2 \
libssh2.so:security/libssh2
@@ -57,14 +55,15 @@ WASM_DESC= Build the WebAssembly target (wasm32-unknown-unknown)
DOCS_VARS= _RUST_BUILD_DOCS=true
DOCS_VARS_OFF= _RUST_BUILD_DOCS=false
GDB_RUN_DEPENDS= ${LOCALBASE}/bin/gdb:devel/gdb
+SOURCES_VARS= _RUST_TOOLS+=src
WASM_VARS= _RUST_BUILD_WASM=true \
_RUST_TARGETS+=wasm32-unknown-unknown
WASM_VARS_OFF= _RUST_BUILD_WASM=false
# See WRKSRC/src/stage0.txt for the date and version values.
-BOOTSTRAPS_DATE?= 2020-05-07
-RUST_BOOTSTRAP_VERSION?= 1.43.1
-CARGO_BOOTSTRAP_VERSION?= 0.44.0
+BOOTSTRAPS_DATE?= 2020-06-18
+RUST_BOOTSTRAP_VERSION?= 1.44.1
+CARGO_BOOTSTRAP_VERSION?= 0.45.1
BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}}
BOOTSTRAPS_SUFFIX_powerpc64?= -${PPC_ABI:tl}
@@ -76,6 +75,7 @@ _RUST_ARCH_amd64= x86_64
_RUST_ARCH_i386= i686
_RUST_TARGET= ${_RUST_ARCH_${ARCH}:U${ARCH}}-unknown-${OPSYS:tl}
_RUST_TARGETS= ${_RUST_TARGET}
+_RUST_TOOLS= analysis cargo clippy rls rustfmt
_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}
@@ -107,20 +107,10 @@ post-patch:
.if defined(NIGHTLY_DATE)
@${REINPLACE_CMD} '/^rustfmt:/d' ${WRKSRC}/src/stage0.txt
.endif
-.if ${ARCH} == powerpc64
-# Starting with 13.0 powerpc64 is ELFv2 while 12.0 is ELFv1. Pass the correct LLVM target triple.
- @${REINPLACE_CMD} 's,powerpc64-unknown-freebsd,powerpc64-unknown-freebsd${OSREL},' \
- ${WRKSRC}/src/librustc_target/spec/powerpc64_unknown_freebsd.rs
-.endif
# Disable vendor checksums
@${REINPLACE_CMD} 's,"files":{[^}]*},"files":{},' \
${CARGO_VENDOR_DIR}/*/.cargo-checksum.json
-post-patch-SOURCES-off:
-# Mimic tools in config.toml with just src excluded
- @${REINPLACE_CMD} 's,config.tools.*"src".*,false;,' \
- ${WRKSRC}/src/bootstrap/install.rs
-
do-configure:
# Check that the running kernel has COMPAT_FREEBSD11 required by lang/rust post-ino64
@${SETENV} CC="${CC}" OPSYS="${OPSYS}" OSVERSION="${OSVERSION}" WRKDIR="${WRKDIR}" \
@@ -142,6 +132,7 @@ do-configure:
@${ECHO_CMD} 'target=[${_RUST_TARGETS:@.target.@"${.target.}"@:ts,}]' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'cargo="${WRKDIR}/bootstrap/bin/cargo"' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'rustc="${WRKDIR}/bootstrap/bin/rustc"' >> ${WRKSRC}/config.toml
+ @${ECHO_CMD} 'tools=[${_RUST_TOOLS:@.tool.@"${.tool.}"@: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
@@ -156,9 +147,7 @@ do-configure:
.else
@${ECHO_CMD} 'ccache=false' >> ${WRKSRC}/config.toml
.endif
-.if defined(NIGHTLY_DATE)
@${ECHO_CMD} 'ninja=true' >> ${WRKSRC}/config.toml
-.endif
.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
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index eb80643facfc..4d69ea676c16 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,45 +1,45 @@
-TIMESTAMP = 1592451352
-SHA256 (rust/rustc-1.44.1-src.tar.xz) = e0386295dd5f2c7842835a509e4c57989eec6c29f989a1c85478b0e06f9d38ea
-SIZE (rust/rustc-1.44.1-src.tar.xz) = 94756856
-SHA256 (rust/2020-05-07/rustc-1.43.1-aarch64-unknown-freebsd.tar.xz) = bf65d73547f9a1445ea8177fc452dddab8bbcfff8ad17d8292903ba4fc65d1a6
-SIZE (rust/2020-05-07/rustc-1.43.1-aarch64-unknown-freebsd.tar.xz) = 27175484
-SHA256 (rust/2020-05-07/rust-std-1.43.1-aarch64-unknown-freebsd.tar.xz) = d0f8413767123d9630bb2648fe15e8a2a05382cb7dcbe3c332223eb1e4a788a4
-SIZE (rust/2020-05-07/rust-std-1.43.1-aarch64-unknown-freebsd.tar.xz) = 13267024
-SHA256 (rust/2020-05-07/cargo-0.44.0-aarch64-unknown-freebsd.tar.xz) = 8f5852b0fb3a726152468e48bfb3f95d4441493901325c739dba5d7a444d3e2b
-SIZE (rust/2020-05-07/cargo-0.44.0-aarch64-unknown-freebsd.tar.xz) = 3891232
-SHA256 (rust/2020-05-07/rustc-1.43.1-x86_64-unknown-freebsd.tar.xz) = 7d12495c00e2e6186a2ca26b13b41a90b1444aa379313a816f83bee31d2f6454
-SIZE (rust/2020-05-07/rustc-1.43.1-x86_64-unknown-freebsd.tar.xz) = 29803884
-SHA256 (rust/2020-05-07/rust-std-1.43.1-x86_64-unknown-freebsd.tar.xz) = a4610e7a07792a382c01511d7401f8bc4404a59e8529659f770e96734ef1ee71
-SIZE (rust/2020-05-07/rust-std-1.43.1-x86_64-unknown-freebsd.tar.xz) = 13797152
-SHA256 (rust/2020-05-07/cargo-0.44.0-x86_64-unknown-freebsd.tar.xz) = c70f874ccf4ac92b5138d13ef374429702ace98fa01b621dc1b308e73adead05
-SIZE (rust/2020-05-07/cargo-0.44.0-x86_64-unknown-freebsd.tar.xz) = 4632952
-SHA256 (rust/2020-05-07/rustc-1.43.1-armv6-unknown-freebsd.tar.xz) = 360495e0722e16ea29076d21399fd65f65e787b419ea3069d711aa2f4fcb4098
-SIZE (rust/2020-05-07/rustc-1.43.1-armv6-unknown-freebsd.tar.xz) = 28690648
-SHA256 (rust/2020-05-07/rust-std-1.43.1-armv6-unknown-freebsd.tar.xz) = f400e2a4b001a3a9e505c61728cfe1274f2e68f60c455f8aa72159c814af04e2
-SIZE (rust/2020-05-07/rust-std-1.43.1-armv6-unknown-freebsd.tar.xz) = 13260336
-SHA256 (rust/2020-05-07/cargo-0.44.0-armv6-unknown-freebsd.tar.xz) = bac4421f5237aa743fc5c416298344057a550d4563d622d9ece2c715075308f8
-SIZE (rust/2020-05-07/cargo-0.44.0-armv6-unknown-freebsd.tar.xz) = 3980908
-SHA256 (rust/2020-05-07/rustc-1.43.1-armv7-unknown-freebsd.tar.xz) = 6d56e3c9517a3798b30e90735eaecea41e2a1677549f9aee31550ab095b0d88e
-SIZE (rust/2020-05-07/rustc-1.43.1-armv7-unknown-freebsd.tar.xz) = 28783628
-SHA256 (rust/2020-05-07/rust-std-1.43.1-armv7-unknown-freebsd.tar.xz) = 8363fcce57a0aebecd2e0b18fef5701a9a55f082698eef282dc45c43c0dee106
-SIZE (rust/2020-05-07/rust-std-1.43.1-armv7-unknown-freebsd.tar.xz) = 13185812
-SHA256 (rust/2020-05-07/cargo-0.44.0-armv7-unknown-freebsd.tar.xz) = 9bd79b8da7b4eef717f4773e0d282b158c783d0545b35437060726634e917079
-SIZE (rust/2020-05-07/cargo-0.44.0-armv7-unknown-freebsd.tar.xz) = 3975184
-SHA256 (rust/2020-05-07/rustc-1.43.1-i686-unknown-freebsd.tar.xz) = 3ec5c5a58f55f62c2225d79839c66d85ec1e036df7f348d7fbc5fd8742ee408e
-SIZE (rust/2020-05-07/rustc-1.43.1-i686-unknown-freebsd.tar.xz) = 30358564
-SHA256 (rust/2020-05-07/rust-std-1.43.1-i686-unknown-freebsd.tar.xz) = 0484f94f7c3da65ab04c81d0da48c278c6432d001e5eaf5cd47f3c20e505c247
-SIZE (rust/2020-05-07/rust-std-1.43.1-i686-unknown-freebsd.tar.xz) = 13793004
-SHA256 (rust/2020-05-07/cargo-0.44.0-i686-unknown-freebsd.tar.xz) = d6cdaf9f3106a45eb0b561be88450dd5d142ce78e3507d59bdf6f0ce0efa3313
-SIZE (rust/2020-05-07/cargo-0.44.0-i686-unknown-freebsd.tar.xz) = 4550164
-SHA256 (rust/2020-05-07/rustc-1.43.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 0d3dd6720be8ce31ef79ea20cc6dab432e4eca364a44b6bb27ff9cefea1d6966
-SIZE (rust/2020-05-07/rustc-1.43.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 33209688
-SHA256 (rust/2020-05-07/rust-std-1.43.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 7f48580ffcadb6de4347efe58e6e24485cdb996e58f99ae88a1b057e34bb6e43
-SIZE (rust/2020-05-07/rust-std-1.43.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 13249040
-SHA256 (rust/2020-05-07/cargo-0.44.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = ec9418790b1ba5f12fa0837779ebb75e43d8bf727ca4b7dad41e44f53af0ad35
-SIZE (rust/2020-05-07/cargo-0.44.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 4530892
-SHA256 (rust/2020-05-07/rustc-1.43.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 56c0a38209aca776f9836a414d87672e86213dc431aa441e59b58e52e86ebe17
-SIZE (rust/2020-05-07/rustc-1.43.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 27568464
-SHA256 (rust/2020-05-07/rust-std-1.43.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 54fd8ebc85460db5b822b56082d22ae5343837f766d4f64c8a7885c242e24787
-SIZE (rust/2020-05-07/rust-std-1.43.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 13226424
-SHA256 (rust/2020-05-07/cargo-0.44.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = e2a857b8292181e30ef98384a16e432246780f7aab7c7ee7f4634bc9da015661
-SIZE (rust/2020-05-07/cargo-0.44.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4227604
+TIMESTAMP = 1594679619
+SHA256 (rust/rustc-1.45.0-src.tar.xz) = c436034db42bc0ea7e7f32816ac6555b70d1f76c834407597966dfaf2ec839d6
+SIZE (rust/rustc-1.45.0-src.tar.xz) = 98677856
+SHA256 (rust/2020-06-18/rustc-1.44.1-aarch64-unknown-freebsd.tar.xz) = 76eb48d6f925cc80ae79ce088d4d9f1aec7daee860d6d730fa4575fc9340329e
+SIZE (rust/2020-06-18/rustc-1.44.1-aarch64-unknown-freebsd.tar.xz) = 27714208
+SHA256 (rust/2020-06-18/rust-std-1.44.1-aarch64-unknown-freebsd.tar.xz) = 8914a9222c0680297d90ca15d4b5e93dab277cd122933ec3c5ebf09c2a3dc245
+SIZE (rust/2020-06-18/rust-std-1.44.1-aarch64-unknown-freebsd.tar.xz) = 13821100
+SHA256 (rust/2020-06-18/cargo-0.45.1-aarch64-unknown-freebsd.tar.xz) = 643c9f03af1f4bda3f8278341f7c76d38dbce93deb966f0bb99fdd061f61b35c
+SIZE (rust/2020-06-18/cargo-0.45.1-aarch64-unknown-freebsd.tar.xz) = 3954724
+SHA256 (rust/2020-06-18/rustc-1.44.1-x86_64-unknown-freebsd.tar.xz) = a8b8dbce588446fdcd24878114a7366f052c9f58996d1de8b7fbf303874320fd
+SIZE (rust/2020-06-18/rustc-1.44.1-x86_64-unknown-freebsd.tar.xz) = 30246044
+SHA256 (rust/2020-06-18/rust-std-1.44.1-x86_64-unknown-freebsd.tar.xz) = c65d1ddbaf5b4616e886ee34d9ca05dedc9e1369b9e42501e07fb4f29023c943
+SIZE (rust/2020-06-18/rust-std-1.44.1-x86_64-unknown-freebsd.tar.xz) = 14477368
+SHA256 (rust/2020-06-18/cargo-0.45.1-x86_64-unknown-freebsd.tar.xz) = ba4bcc8640eaacef28ce167f577320e780b04b1fe2b9de1ff6bedd6b1f8f186c
+SIZE (rust/2020-06-18/cargo-0.45.1-x86_64-unknown-freebsd.tar.xz) = 4676020
+SHA256 (rust/2020-06-18/rustc-1.44.1-armv6-unknown-freebsd.tar.xz) = 70df1f88849eab352b922286cf11a81fefd0c74233da89fed63b1a95173addc0
+SIZE (rust/2020-06-18/rustc-1.44.1-armv6-unknown-freebsd.tar.xz) = 29123284
+SHA256 (rust/2020-06-18/rust-std-1.44.1-armv6-unknown-freebsd.tar.xz) = 64a66fbc6b4c5fa50c5fa6837a35bf70daa277dabd63f8bb70e5e3a28e134b1f
+SIZE (rust/2020-06-18/rust-std-1.44.1-armv6-unknown-freebsd.tar.xz) = 13860760
+SHA256 (rust/2020-06-18/cargo-0.45.1-armv6-unknown-freebsd.tar.xz) = f4b496153fdeb366ff3a4fc7e9f76f79567fa48e8b5095d701ce2a557e8ddddf
+SIZE (rust/2020-06-18/cargo-0.45.1-armv6-unknown-freebsd.tar.xz) = 4059848
+SHA256 (rust/2020-06-18/rustc-1.44.1-armv7-unknown-freebsd.tar.xz) = 2f7caecbbb87c9b2c289b86705b335ba7c72b69a49e34b373748949795ba3c96
+SIZE (rust/2020-06-18/rustc-1.44.1-armv7-unknown-freebsd.tar.xz) = 29000984
+SHA256 (rust/2020-06-18/rust-std-1.44.1-armv7-unknown-freebsd.tar.xz) = 8d1de65d63e7669c6058d597aefa99077078f3827dc523c82985d11a55d6ef1e
+SIZE (rust/2020-06-18/rust-std-1.44.1-armv7-unknown-freebsd.tar.xz) = 13878980
+SHA256 (rust/2020-06-18/cargo-0.45.1-armv7-unknown-freebsd.tar.xz) = 89af922e6a33432b0f8a1d569528cc482d6e255e5f5a621feda9aea90f727ab2
+SIZE (rust/2020-06-18/cargo-0.45.1-armv7-unknown-freebsd.tar.xz) = 4046556
+SHA256 (rust/2020-06-18/rustc-1.44.1-i686-unknown-freebsd.tar.xz) = 2e1d72c85b38aa8ba0e60cadbf2f8af19edcc478c42c77412338fd46edaa78bb
+SIZE (rust/2020-06-18/rustc-1.44.1-i686-unknown-freebsd.tar.xz) = 30719424
+SHA256 (rust/2020-06-18/rust-std-1.44.1-i686-unknown-freebsd.tar.xz) = ff81978947669cb08e66dddeb3f97b25af9ba9c20231a90390b4907ff233295e
+SIZE (rust/2020-06-18/rust-std-1.44.1-i686-unknown-freebsd.tar.xz) = 14316028
+SHA256 (rust/2020-06-18/cargo-0.45.1-i686-unknown-freebsd.tar.xz) = dcfd6e7e4a798331442c18ca6d40ba9cea9e82891dc29dae20dc6f11886098f5
+SIZE (rust/2020-06-18/cargo-0.45.1-i686-unknown-freebsd.tar.xz) = 4600508
+SHA256 (rust/2020-06-18/rustc-1.44.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 69f97a4ee7026324d2dd7fe17d58f3460b050497ade6676d4f371c24cc22ca44
+SIZE (rust/2020-06-18/rustc-1.44.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 33787016
+SHA256 (rust/2020-06-18/rust-std-1.44.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 6154918a77b3d5ea8c53fb7a8739404dd874f1b003e5dad05cf886e1e7b552c1
+SIZE (rust/2020-06-18/rust-std-1.44.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 13783880
+SHA256 (rust/2020-06-18/cargo-0.45.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 8cfc689a6a8068b3f405013b2ab5f109cf4130bda14f4c9a6d75f3b7c3cfd442
+SIZE (rust/2020-06-18/cargo-0.45.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 4517500
+SHA256 (rust/2020-06-18/rustc-1.44.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 657f04c1256862c0e7a9e22ce00d553c9c628e2c348b43abb5520d3ac811690c
+SIZE (rust/2020-06-18/rustc-1.44.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 28157416
+SHA256 (rust/2020-06-18/rust-std-1.44.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 834cd2799fedd8d435441e92580efbaa4eddb630e686d69e71ecab2103a44b68
+SIZE (rust/2020-06-18/rust-std-1.44.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 13745812
+SHA256 (rust/2020-06-18/cargo-0.45.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 58eb64e241405b4243f448b764d9dc0173199bd567162278e5d7e2bcbaffc6ad
+SIZE (rust/2020-06-18/cargo-0.45.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4216696
diff --git a/lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c b/lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
deleted file mode 100644
index 48a112abcd57..000000000000
--- a/lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
+++ /dev/null
@@ -1,43 +0,0 @@
-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/armv7/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c b/lang/rust/files/armv7/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
deleted file mode 100644
index 48a112abcd57..000000000000
--- a/lang/rust/files/armv7/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
+++ /dev/null
@@ -1,43 +0,0 @@
-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_bootstrap_native.rs b/lang/rust/files/patch-src_bootstrap_native.rs
index 433833a4a5af..7af832a912d3 100644
--- a/lang/rust/files/patch-src_bootstrap_native.rs
+++ b/lang/rust/files/patch-src_bootstrap_native.rs
@@ -3,9 +3,9 @@ for building rust-lld. Attempt to improve reliability of the build
by not using it. llvm-config-wrapper is a hack in the first place
that is only really needed on Windows.
---- src/bootstrap/native.rs.orig 2020-02-27 18:39:49 UTC
+--- src/bootstrap/native.rs.orig 2020-05-03 19:47:59 UTC
+++ src/bootstrap/native.rs
-@@ -467,25 +467,9 @@ impl Step for Lld {
+@@ -488,25 +488,9 @@ impl Step for Lld {
let mut cfg = cmake::Config::new(builder.src.join("src/llvm-project/lld"));
configure_cmake(builder, target, &mut cfg, true);
@@ -26,9 +26,9 @@ that is only really needed on Windows.
- let llvm_config_shim = env::current_exe().unwrap().with_file_name("llvm-config-wrapper");
cfg.out_dir(&out_dir)
.profile("Release")
-- .env("LLVM_CONFIG_REAL", llvm_config)
+- .env("LLVM_CONFIG_REAL", &llvm_config)
- .define("LLVM_CONFIG_PATH", llvm_config_shim)
-+ .define("LLVM_CONFIG_PATH", llvm_config)
++ .define("LLVM_CONFIG_PATH", &llvm_config)
.define("LLVM_INCLUDE_TESTS", "OFF");
- cfg.build();
+ // While we're using this horrible workaround to shim the execution of
diff --git a/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_InstCombine_InstCombineCasts.cpp b/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_InstCombine_InstCombineCasts.cpp
deleted file mode 100644
index 1b4a494b3fe8..000000000000
--- a/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_InstCombine_InstCombineCasts.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-From f8e146f3430de3a6cd904f3f3f7aa1bfaefee14c Mon Sep 17 00:00:00 2001
-From: Bjorn Pettersson <bjorn.a.pettersson@ericsson.com>
-Date: Thu, 28 Nov 2019 23:18:28 +0100
-Subject: [PATCH] [InstCombine] Fix big-endian miscompile of (bitcast
- (zext/trunc (bitcast)))
-
-Summary:
-optimizeVectorResize is rewriting patterns like:
- %1 = bitcast vector %src to integer
- %2 = trunc/zext %1
- %dst = bitcast %2 to vector
-
-Since bitcasting between integer an vector types gives
-different integer values depending on endianness, we need
-to take endianness into account. As it happens the old
-implementation only produced the correct result for little
-endian targets.
-
-Fixes: https://bugs.llvm.org/show_bug.cgi?id=44178
-
-Reviewers: spatel, lattner, lebedev.ri
-
-Reviewed By: spatel, lebedev.ri
-
-Subscribers: lebedev.ri, hiraditya, uabelho, llvm-commits
-
-Tags: #llvm
-
-Differential Revision: https://reviews.llvm.org/D70844
-
-(cherry picked from commit a9d6b0e5444741d08ff1df7cf71d1559e7fefc1f)
----
- .../InstCombine/InstCombineCasts.cpp | 79 +++++++++++++------
- llvm/test/Transforms/InstCombine/cast.ll | 6 +-
- 2 files changed, 60 insertions(+), 25 deletions(-)
-
---- src/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp.orig 2020-04-07 15:52:51 UTC
-+++ src/llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
-@@ -18,6 +18,7 @@
- #include "llvm/IR/DIBuilder.h"
- #include "llvm/IR/PatternMatch.h"
- #include "llvm/Support/KnownBits.h"
-+#include <numeric>
- using namespace llvm;
- using namespace PatternMatch;
-
-@@ -1820,12 +1821,24 @@ Instruction *InstCombiner::visitPtrToInt(PtrToIntInst
- }
-
- /// This input value (which is known to have vector type) is being zero extended
--/// or truncated to the specified vector type.
-+/// or truncated to the specified vector type. Since the zext/trunc is done
-+/// using an integer type, we have a (bitcast(cast(bitcast))) pattern,
-+/// endianness will impact which end of the vector that is extended or
-+/// truncated.
-+///
-+/// A vector is always stored with index 0 at the lowest address, which
-+/// corresponds to the most significant bits for a big endian stored integer and
-+/// the least significant bits for little endian. A trunc/zext of an integer
-+/// impacts the big end of the integer. Thus, we need to add/remove elements at
-+/// the front of the vector for big endian targets, and the back of the vector
-+/// for little endian targets.
-+///
- /// Try to replace it with a shuffle (and vector/vector bitcast) if possible.
- ///
- /// The source and destination vector types may have different element types.
--static Instruction *optimizeVectorResize(Value *InVal, VectorType *DestTy,
-- InstCombiner &IC) {
-+static Instruction *optimizeVectorResizeWithIntegerBitCasts(Value *InVal,
-+ VectorType *DestTy,
-+ InstCombiner &IC) {
- // We can only do this optimization if the output is a multiple of the input
- // element size, or the input is a multiple of the output element size.
- // Convert the input type to have the same element type as the output.
-@@ -1844,31 +1857,53 @@ static Instruction *optimizeVectorResize(Value *InVal,
- InVal = IC.Builder.CreateBitCast(InVal, SrcTy);
- }
-
-+ bool IsBigEndian = IC.getDataLayout().isBigEndian();
-+ unsigned SrcElts = SrcTy->getNumElements();
-+ unsigned DestElts = DestTy->getNumElements();
-+
-+ assert(SrcElts != DestElts && "Element counts should be different.");
-+
- // Now that the element types match, get the shuffle mask and RHS of the
- // shuffle to use, which depends on whether we're increasing or decreasing the
- // size of the input.
-- SmallVector<uint32_t, 16> ShuffleMask;
-+ SmallVector<uint32_t, 16> ShuffleMaskStorage;
-+ ArrayRef<uint32_t> ShuffleMask;
- Value *V2;
-
-- if (SrcTy->getNumElements() > DestTy->getNumElements()) {
-- // If we're shrinking the number of elements, just shuffle in the low
-- // elements from the input and use undef as the second shuffle input.
-- V2 = UndefValue::get(SrcTy);
-- for (unsigned i = 0, e = DestTy->getNumElements(); i != e; ++i)
-- ShuffleMask.push_back(i);
-+ // Produce an identify shuffle mask for the src vector.
-+ ShuffleMaskStorage.resize(SrcElts);
-+ std::iota(ShuffleMaskStorage.begin(), ShuffleMaskStorage.end(), 0);
-
-+ if (SrcElts > DestElts) {
-+ // If we're shrinking the number of elements (rewriting an integer
-+ // truncate), just shuffle in the elements corresponding to the least
-+ // significant bits from the input and use undef as the second shuffle
-+ // input.
-+ V2 = UndefValue::get(SrcTy);
-+ // Make sure the shuffle mask selects the "least significant bits" by
-+ // keeping elements from back of the src vector for big endian, and from the
-+ // front for little endian.
-+ ShuffleMask = ShuffleMaskStorage;
-+ if (IsBigEndian)
-+ ShuffleMask = ShuffleMask.take_back(DestElts);
-+ else
-+ ShuffleMask = ShuffleMask.take_front(DestElts);
- } else {
-- // If we're increasing the number of elements, shuffle in all of the
-- // elements from InVal and fill the rest of the result elements with zeros
-- // from a constant zero.
-+ // If we're increasing the number of elements (rewriting an integer zext),
-+ // shuffle in all of the elements from InVal. Fill the rest of the result
-+ // elements with zeros from a constant zero.
- V2 = Constant::getNullValue(SrcTy);
-- unsigned SrcElts = SrcTy->getNumElements();
-- for (unsigned i = 0, e = SrcElts; i != e; ++i)
-- ShuffleMask.push_back(i);
--
-- // The excess elements reference the first element of the zero input.
-- for (unsigned i = 0, e = DestTy->getNumElements()-SrcElts; i != e; ++i)
-- ShuffleMask.push_back(SrcElts);
-+ // Use first elt from V2 when indicating zero in the shuffle mask.
-+ uint32_t NullElt = SrcElts;
-+ // Extend with null values in the "most significant bits" by adding elements
-+ // in front of the src vector for big endian, and at the back for little
-+ // endian.
-+ unsigned DeltaElts = DestElts - SrcElts;
-+ if (IsBigEndian)
-+ ShuffleMaskStorage.insert(ShuffleMaskStorage.begin(), DeltaElts, NullElt);
-+ else
-+ ShuffleMaskStorage.append(DeltaElts, NullElt);
-+ ShuffleMask = ShuffleMaskStorage;
- }
-
- return new ShuffleVectorInst(InVal, V2,
-@@ -2396,8 +2431,8 @@ Instruction *InstCombiner::visitBitCast(BitCastInst &C
- CastInst *SrcCast = cast<CastInst>(Src);
- if (BitCastInst *BCIn = dyn_cast<BitCastInst>(SrcCast->getOperand(0)))
- if (isa<VectorType>(BCIn->getOperand(0)->getType()))
-- if (Instruction *I = optimizeVectorResize(BCIn->getOperand(0),
-- cast<VectorType>(DestTy), *this))
-+ if (Instruction *I = optimizeVectorResizeWithIntegerBitCasts(
-+ BCIn->getOperand(0), cast<VectorType>(DestTy), *this))
- return I;
- }
-
diff --git a/lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_spec_powerpc64__unknown__freebsd.rs b/lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_spec_powerpc64__unknown__freebsd.rs
new file mode 100644
index 000000000000..e8bf492c91a2
--- /dev/null
+++ b/lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_spec_powerpc64__unknown__freebsd.rs
@@ -0,0 +1,14 @@
+--- src/librustc_target/spec/powerpc64_unknown_freebsd.rs.orig 2020-07-15 11:31:58 UTC
++++ src/librustc_target/spec/powerpc64_unknown_freebsd.rs
+@@ -17,6 +17,10 @@ pub fn target() -> TargetResult {
+ target_env: String::new(),
+ target_vendor: "unknown".to_string(),
+ linker_flavor: LinkerFlavor::Gcc,
+- options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
++ options: TargetOptions {
++ target_mcount: "_mcount".to_string(),
++ llvm_abiname: "elfv2".to_string(),
++ ..base
++ },
+ })
+ }
diff --git a/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_clang_lib_Basic_Targets_PPC.h b/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_clang_lib_Basic_Targets_PPC.h
deleted file mode 100644
index 43e85603791d..000000000000
--- a/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_clang_lib_Basic_Targets_PPC.h
+++ /dev/null
@@ -1,34 +0,0 @@
---- src/llvm-project/clang/lib/Basic/Targets/PPC.h.orig 2019-09-20 16:14:30 UTC
-+++ src/llvm-project/clang/lib/Basic/Targets/PPC.h
-@@ -374,12 +374,29 @@ class LLVM_LIBRARY_VISIBILITY PPC64TargetInfo : public
- IntMaxType = SignedLong;
- Int64Type = SignedLong;
-
-+ if (Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) {
-+ switch (Triple.getEnvironment()){
-+ case llvm::Triple::ELFv1:
-+ ABI = "elfv1";
-+ break;
-+ default:
-+ ABI = "elfv2";
-+ break;
-+ }
-+ } else {
-+ if ((Triple.getOS() == llvm::Triple::FreeBSD) &&
-+ (Triple.getOSMajorVersion() < 13)) {
-+ ABI = "elfv1";
-+ } else {
-+ ABI = "elfv2";
-+ }
-+ }
-+
-+
- if ((Triple.getArch() == llvm::Triple::ppc64le)) {
- resetDataLayout("e-m:e-i64:64-n32:64");
-- ABI = "elfv2";
- } else {
- resetDataLayout("E-m:e-i64:64-n32:64");
-- ABI = Triple.getEnvironment() == llvm::Triple::ELFv2 ? "elfv2" : "elfv1";
- }
-
- if (Triple.getOS() == llvm::Triple::AIX)
diff --git a/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_llvm_lib_Target_PowerPC_PPCTargetMachine.cpp b/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_llvm_lib_Target_PowerPC_PPCTargetMachine.cpp
deleted file mode 100644
index 87fff59c8b28..000000000000
--- a/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_llvm_lib_Target_PowerPC_PPCTargetMachine.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
---- src/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp.orig 2019-09-20 16:14:30 UTC
-+++ src/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
-@@ -209,6 +209,20 @@ static PPCTargetMachine::PPCABI computeTargetABI(const
- if (TT.isMacOSX())
- return PPCTargetMachine::PPC_ABI_UNKNOWN;
-
-+ if (TT.isOSFreeBSD()) {
-+ switch (TT.getArch()) {
-+ case Triple::ppc64le:
-+ case Triple::ppc64:
-+ if (TT.getOSMajorVersion() >= 13)
-+ return PPCTargetMachine::PPC_ABI_ELFv2;
-+ else
-+ return PPCTargetMachine::PPC_ABI_ELFv1;
-+ case Triple::ppc:
-+ default:
-+ return PPCTargetMachine::PPC_ABI_UNKNOWN;
-+ }
-+ }
-+
- switch (TT.getArch()) {
- case Triple::ppc64le:
- return PPCTargetMachine::PPC_ABI_ELFv2;