summaryrefslogtreecommitdiff
path: root/lang/rust
diff options
context:
space:
mode:
Diffstat (limited to 'lang/rust')
-rw-r--r--lang/rust/Makefile26
-rw-r--r--lang/rust/distinfo90
-rw-r--r--lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c (renamed from lang/rust/files/extra-patch-arm-compiler-rt)0
-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.rs48
-rw-r--r--lang/rust/files/patch-src_llvm-project_llvm_utils_llvm-build_llvmbuild_main.py4
-rw-r--r--lang/rust/files/patch-vendor_libgit2-sys_lib.rs4
-rw-r--r--lang/rust/files/patch-vendor_openssl-sys_build_main.rs56
-rw-r--r--lang/rust/files/patch-vendor_openssl-sys_src_ssl.rs4
-rw-r--r--lang/rust/files/powerpc64-elfv1/patch-src_bootstrap_native.rs13
-rw-r--r--lang/rust/files/powerpc64-elfv1/patch-src_librustc__llvm_build.rs (renamed from lang/rust/files/patch-src_librustc__llvm_build.rs)4
-rw-r--r--lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_abi_call_powerpc64.rs11
-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
14 files changed, 239 insertions, 121 deletions
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 989af50a55e3..7e16c9701bad 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= rust
-PORTVERSION?= 1.38.0
+PORTVERSION?= 1.39.0
PORTREVISION?= 0
CATEGORIES= lang
MASTER_SITES= https://static.rust-lang.org/dist/:src \
@@ -41,14 +41,10 @@ LIB_DEPENDS= libcurl.so:ftp/curl \
libgit2.so:devel/libgit2 \
libssh2.so:security/libssh2
-USES= libedit pkgconfig python:build ssl tar:xz
+USES= 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
@@ -61,9 +57,9 @@ 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-08-15
-RUST_BOOTSTRAP_VERSION?= 1.37.0
-CARGO_BOOTSTRAP_VERSION?= 0.38.0
+BOOTSTRAPS_DATE?= 2019-09-26
+RUST_BOOTSTRAP_VERSION?= 1.38.0
+CARGO_BOOTSTRAP_VERSION?= 0.39.0
COMPILER_RT_VERSION?= 9.0.0
BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}}
@@ -83,6 +79,10 @@ _CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_B
.include <bsd.port.pre.mk>
+.if exists(${PATCHDIR}/${ARCH}${BOOTSTRAPS_SUFFIX})
+EXTRA_PATCHES+= ${PATCHDIR}/${ARCH}${BOOTSTRAPS_SUFFIX}
+.endif
+
.if ${ARCH} == powerpc64
# The bootstrap is hardcoded to use gcc9
# but we can build with a newer or older compiler as provided by USE_GCC=yes
@@ -90,9 +90,7 @@ BUILD_DEPENDS+= gcc9:lang/gcc9
USE_GCC= yes
.endif
-.if ${OPSYS} == FreeBSD && ${ARCH} == aarch64 && \
- (${OSVERSION} < 1200502 || \
- (${OSVERSION} > 1300000 && ${OSVERSION} < 1300006))
+.if ${ARCH} == aarch64 && ${OSVERSION} < 1200502
IGNORE= fails to run due to a bug in rtld, update to 12-STABLE r342847 or 13-CURRENT r342113
.endif
@@ -131,6 +129,10 @@ post-patch:
${WRKSRC}/src/stage0.txt
@${ECHO_MSG} "Bootstrap date and version after patching:"
@${GREP} -E '^(date|rustc|cargo)' ${WRKSRC}/src/stage0.txt
+.if ${ARCH} == powerpc64
+ @${REINPLACE_CMD} -e '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
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index 675691860200..be9f9a2538cb 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,47 +1,47 @@
-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
+TIMESTAMP = 1573135953
+SHA256 (rust/rustc-1.39.0-src.tar.xz) = 4b0dbb356070687a606034f71dc032b783bbf8b5d3f9fff39f2c1fbc4f171c29
+SIZE (rust/rustc-1.39.0-src.tar.xz) = 96495140
+SHA256 (rust/2019-09-26/rustc-1.38.0-aarch64-unknown-freebsd.tar.gz) = 07a769da1a47e8f507e87d723b7de115b1ea916f34339b0fe5bc583a75e0f3ea
+SIZE (rust/2019-09-26/rustc-1.38.0-aarch64-unknown-freebsd.tar.gz) = 37145293
+SHA256 (rust/2019-09-26/rust-std-1.38.0-aarch64-unknown-freebsd.tar.gz) = 18b84f46c767071e282fe9a5813317294b0cb7959f6ab30abd0a949531eb2817
+SIZE (rust/2019-09-26/rust-std-1.38.0-aarch64-unknown-freebsd.tar.gz) = 191199264
+SHA256 (rust/2019-09-26/cargo-0.39.0-aarch64-unknown-freebsd.tar.gz) = 2b97bda932259c10b41583226539bcd637d0efa6253a3eb390f622e6f7f6d27d
+SIZE (rust/2019-09-26/cargo-0.39.0-aarch64-unknown-freebsd.tar.gz) = 4556329
+SHA256 (rust/2019-09-26/rustc-1.38.0-x86_64-unknown-freebsd.tar.gz) = 1d99318bbdc947c6dc375215f0eddcd767348c309811cd141e5d18e17d5aaaa4
+SIZE (rust/2019-09-26/rustc-1.38.0-x86_64-unknown-freebsd.tar.gz) = 49746736
+SHA256 (rust/2019-09-26/rust-std-1.38.0-x86_64-unknown-freebsd.tar.gz) = 9f1d88449ef56c31ebc514873ba4d5889fa12697c4c2ea1071f15127f301ac4d
+SIZE (rust/2019-09-26/rust-std-1.38.0-x86_64-unknown-freebsd.tar.gz) = 218121173
+SHA256 (rust/2019-09-26/cargo-0.39.0-x86_64-unknown-freebsd.tar.gz) = 4ef06348157836fd6a144acc13578653d77ff05d0b1a220437b8cde0492c8dd2
+SIZE (rust/2019-09-26/cargo-0.39.0-x86_64-unknown-freebsd.tar.gz) = 6793022
+SHA256 (rust/2019-09-26/rustc-1.38.0-armv6-unknown-freebsd.tar.gz) = 33e0d04dd94c5a0c6c546cf9c1aefb79d7141b1612635f88d02cd0e693c50e1d
+SIZE (rust/2019-09-26/rustc-1.38.0-armv6-unknown-freebsd.tar.gz) = 39977103
+SHA256 (rust/2019-09-26/rust-std-1.38.0-armv6-unknown-freebsd.tar.gz) = 35648a4c90b9f9a5c92bcefc9bf493f446fa53da746eec84fa0b7112b5bd4245
+SIZE (rust/2019-09-26/rust-std-1.38.0-armv6-unknown-freebsd.tar.gz) = 198873440
+SHA256 (rust/2019-09-26/cargo-0.39.0-armv6-unknown-freebsd.tar.gz) = d4b88144a7aae90ea3174bff8cfe0142b1a761e5ad50adfd24d39fa713682712
+SIZE (rust/2019-09-26/cargo-0.39.0-armv6-unknown-freebsd.tar.gz) = 5583543
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
+SHA256 (rust/2019-09-26/rustc-1.38.0-armv7-unknown-freebsd.tar.gz) = 95e33dda5c68ff0a8452472079f852e449bbcdbaf60ef0aca8068bd23d81f4d2
+SIZE (rust/2019-09-26/rustc-1.38.0-armv7-unknown-freebsd.tar.gz) = 38588675
+SHA256 (rust/2019-09-26/rust-std-1.38.0-armv7-unknown-freebsd.tar.gz) = d7e7671fe7c0aa53c6df4ca60547e6518416bd8497fc1f75c92366468f607d1b
+SIZE (rust/2019-09-26/rust-std-1.38.0-armv7-unknown-freebsd.tar.gz) = 197638533
+SHA256 (rust/2019-09-26/cargo-0.39.0-armv7-unknown-freebsd.tar.gz) = c49fef9d921ff02b700bb302147dd1c9b32d2afdfc92beedf574d075a27e36cb
+SIZE (rust/2019-09-26/cargo-0.39.0-armv7-unknown-freebsd.tar.gz) = 4835740
+SHA256 (rust/2019-09-26/rustc-1.38.0-i686-unknown-freebsd.tar.gz) = 1e4c148ffb38fdf8f3de3e6355ea418056e40749c4a29af1a447019b04891817
+SIZE (rust/2019-09-26/rustc-1.38.0-i686-unknown-freebsd.tar.gz) = 50284685
+SHA256 (rust/2019-09-26/rust-std-1.38.0-i686-unknown-freebsd.tar.gz) = 7eb02bd86f78dc0748d45a41748c0dfa145aab33d552a14dae2fce22f9d0f9b6
+SIZE (rust/2019-09-26/rust-std-1.38.0-i686-unknown-freebsd.tar.gz) = 218440878
+SHA256 (rust/2019-09-26/cargo-0.39.0-i686-unknown-freebsd.tar.gz) = 57179ee4f61be55a978aff61cea7475fe31dcac4d763e735637219a661a812fa
+SIZE (rust/2019-09-26/cargo-0.39.0-i686-unknown-freebsd.tar.gz) = 6669103
+SHA256 (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = d6654031b77b9e90b0a3b2d2e5d702ea6f52b50b6589606043036e1780192da9
+SIZE (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 48397197
+SHA256 (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 4a7a1cbfd4aa169528e4aad4c46a1690db4d5477c73e2e857bce9d3735f8b76f
+SIZE (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 196472426
+SHA256 (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 1b23312ae307293c5e53282d799bf7688269d9ed3946729cf8886710581284b0
+SIZE (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 5676205
+SHA256 (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 8d877ef738ee01548b1be69a7bf6f4619a0909a7a4db12ab414441b32763b9af
+SIZE (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 39853681
+SHA256 (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 2c5da67f44b5bc8cf4c5f58d11e7200ef5d64a66416d9cdf6b5bc4f55774b8ba
+SIZE (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 193639233
+SHA256 (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 4a91b5db28538504992462ea65945419d28fe6ee5fa3a48b23055b4a2f3edc91
+SIZE (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 4604255
diff --git a/lang/rust/files/extra-patch-arm-compiler-rt b/lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
index 48a112abcd57..48a112abcd57 100644
--- a/lang/rust/files/extra-patch-arm-compiler-rt
+++ b/lang/rust/files/armv6/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
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
new file mode 100644
index 000000000000..48a112abcd57
--- /dev/null
+++ b/lang/rust/files/armv7/patch-src_llvm-project_compiler-rt_lib_builtins_atomic.c
@@ -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_bootstrap_native.rs b/lang/rust/files/patch-src_bootstrap_native.rs
deleted file mode 100644
index ed2de6528b74..000000000000
--- a/lang/rust/files/patch-src_bootstrap_native.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-Avoid unnecessarily restarting the LLVM build and installing it
-into STAGEDIR during the install phase.
-
-https://github.com/rust-lang/rust/issues/61206
-
---- src/bootstrap/native.rs.orig 2019-05-22 05:39:52 UTC
-+++ src/bootstrap/native.rs
-@@ -92,17 +92,9 @@ impl Step for Llvm {
- .join(exe("llvm-config", &*builder.config.build));
- let done_stamp = out_dir.join("llvm-finished-building");
-
-- if let Some(llvm_commit) = llvm_info.sha() {
- if done_stamp.exists() {
-- let done_contents = t!(fs::read(&done_stamp));
--
-- // If LLVM was already built previously and the submodule's commit didn't change
-- // from the previous build, then no action is required.
-- if done_contents == llvm_commit.as_bytes() {
-- return build_llvm_config
-- }
-+ return build_llvm_config
- }
-- }
-
- let _folder = builder.fold_output(|| "llvm");
- let descriptor = if emscripten { "Emscripten " } else { "" };
-@@ -218,6 +210,10 @@ impl Step for Llvm {
- }
- }
-
-+ if target == "powerpc64-unknown-freebsd" {
-+ cfg.define("CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath=/usr/local/lib/%CC% -L/usr/local/lib/%CC%");
-+ }
-+
- // http://llvm.org/docs/HowToCrossCompileLLVM.html
- if target != builder.config.build && !emscripten {
- builder.ensure(Llvm {
-@@ -283,9 +279,7 @@ impl Step for Llvm {
-
- cfg.build();
-
-- if let Some(llvm_commit) = llvm_info.sha() {
-- t!(fs::write(&done_stamp, llvm_commit));
-- }
-+ t!(fs::write(&done_stamp, "done building LLVM"));
-
- build_llvm_config
- }
diff --git a/lang/rust/files/patch-src_llvm-project_llvm_utils_llvm-build_llvmbuild_main.py b/lang/rust/files/patch-src_llvm-project_llvm_utils_llvm-build_llvmbuild_main.py
index 0b485dbd572f..475d9833a777 100644
--- a/lang/rust/files/patch-src_llvm-project_llvm_utils_llvm-build_llvmbuild_main.py
+++ b/lang/rust/files/patch-src_llvm-project_llvm_utils_llvm-build_llvmbuild_main.py
@@ -1,6 +1,6 @@
---- src/llvm-project/llvm/utils/llvm-build/llvmbuild/main.py.orig 2018-12-13 15:33:50 UTC
+--- src/llvm-project/llvm/utils/llvm-build/llvmbuild/main.py.orig 2019-09-20 16:14:30 UTC
+++ src/llvm-project/llvm/utils/llvm-build/llvmbuild/main.py
-@@ -659,6 +659,8 @@ def add_magic_target_components(parser, project, opts)
+@@ -657,6 +657,8 @@ def add_magic_target_components(parser, project, opts)
# We handle a few special cases of target names here for historical
# reasons, as these are the names configure currently comes up with.
native_target_name = { 'x86' : 'X86',
diff --git a/lang/rust/files/patch-vendor_libgit2-sys_lib.rs b/lang/rust/files/patch-vendor_libgit2-sys_lib.rs
index 3f342b41b922..880de9d35d0e 100644
--- a/lang/rust/files/patch-vendor_libgit2-sys_lib.rs
+++ b/lang/rust/files/patch-vendor_libgit2-sys_lib.rs
@@ -1,6 +1,6 @@
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.orig 2019-11-04 17:34:46 UTC
+++ vendor/libgit2-sys/lib.rs
@@ -331,7 +331,6 @@ pub struct git_remote_callbacks {
pub push_negotiation: Option<git_push_negotiation>,
@@ -19,7 +19,7 @@ Revert to libgit2 0.28 API per https://github.com/rust-lang/git2-rs/issues/458
#[repr(C)]
pub struct git_push_update {
-@@ -2233,7 +2230,7 @@ extern "C" {
+@@ -2280,7 +2277,7 @@ extern "C" {
source: *const git_tree,
) -> c_int;
pub fn git_treebuilder_clear(bld: *mut git_treebuilder);
diff --git a/lang/rust/files/patch-vendor_openssl-sys_build_main.rs b/lang/rust/files/patch-vendor_openssl-sys_build_main.rs
index d9aeddc25910..0629319631dd 100644
--- a/lang/rust/files/patch-vendor_openssl-sys_build_main.rs
+++ b/lang/rust/files/patch-vendor_openssl-sys_build_main.rs
@@ -1,19 +1,59 @@
---- vendor/openssl-sys/build/main.rs.orig 2019-05-13 21:50:35 UTC
+--- vendor/openssl-sys/build/main.rs.orig 2019-11-04 17:34:46 UTC
+++ vendor/openssl-sys/build/main.rs
-@@ -505,6 +505,7 @@ See rust-openssl README for more information:
- (8, 1) => ('8', '1'),
- (8, _) => ('8', 'x'),
- (9, 0) => ('9', '0'),
-+ (9, _) => ('9', 'x'),
+@@ -183,27 +183,32 @@ See rust-openssl README for more information:
+ if let Some(libressl_version) = libressl_version {
+ println!("cargo:libressl_version_number={:x}", libressl_version);
+
++ let major = (libressl_version >> 28) as u8;
+ let minor = (libressl_version >> 20) as u8;
+ let fix = (libressl_version >> 12) as u8;
+- let (minor, fix) = match (minor, fix) {
+- (5, 0) => ('5', '0'),
+- (5, 1) => ('5', '1'),
+- (5, 2) => ('5', '2'),
+- (5, _) => ('5', 'x'),
+- (6, 0) => ('6', '0'),
+- (6, 1) => ('6', '1'),
+- (6, 2) => ('6', '2'),
+- (6, _) => ('6', 'x'),
+- (7, _) => ('7', 'x'),
+- (8, 0) => ('8', '0'),
+- (8, 1) => ('8', '1'),
+- (8, _) => ('8', 'x'),
+- (9, 0) => ('9', '0'),
++ let (major, minor, fix) = match (major, minor, fix) {
++ (2, 5, 0) => ('2', '5', '0'),
++ (2, 5, 1) => ('2', '5', '1'),
++ (2, 5, 2) => ('2', '5', '2'),
++ (2, 5, _) => ('2', '5', 'x'),
++ (2, 6, 0) => ('2', '6', '0'),
++ (2, 6, 1) => ('2', '6', '1'),
++ (2, 6, 2) => ('2', '6', '2'),
++ (2, 6, _) => ('2', '6', 'x'),
++ (2, 7, _) => ('2', '7', 'x'),
++ (2, 8, 0) => ('2', '8', '0'),
++ (2, 8, 1) => ('2', '8', '1'),
++ (2, 8, _) => ('2', '8', 'x'),
++ (2, 9, 0) => ('2', '9', '0'),
++ (2, 9, _) => ('2', '9', 'x'),
++ (3, 0, 0) => ('3', '0', '0'),
++ (3, 0, 1) => ('3', '0', '1'),
++ (3, 0, _) => ('3', '0', 'x'),
_ => version_error(),
};
-@@ -545,7 +546,7 @@ fn version_error() -> ! {
+ println!("cargo:libressl=true");
+- println!("cargo:libressl_version=2{}{}", minor, fix);
++ println!("cargo:libressl_version={}{}{}", major, minor, fix);
+ println!("cargo:version=101");
+ Version::Libressl
+ } else {
+@@ -239,7 +244,7 @@ fn version_error() -> ! {
"
This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
-through 2.9.0, but a different version of OpenSSL was found. The build is now aborting
-+through 2.9.x, but a different version of OpenSSL was found. The build is now aborting
++through 3.0.x, but a different version of OpenSSL was found. The build is now aborting
due to this version mismatch.
"
diff --git a/lang/rust/files/patch-vendor_openssl-sys_src_ssl.rs b/lang/rust/files/patch-vendor_openssl-sys_src_ssl.rs
index f412c3c469f7..e54f58f9249c 100644
--- a/lang/rust/files/patch-vendor_openssl-sys_src_ssl.rs
+++ b/lang/rust/files/patch-vendor_openssl-sys_src_ssl.rs
@@ -1,6 +1,6 @@
---- vendor/openssl-sys/src/ssl.rs.orig 2019-05-13 21:50:35 UTC
+--- vendor/openssl-sys/src/ssl.rs.orig 2019-11-04 17:34:46 UTC
+++ vendor/openssl-sys/src/ssl.rs
-@@ -1032,7 +1032,7 @@ extern "C" {
+@@ -1057,7 +1057,7 @@ extern "C" {
}
cfg_if! {
diff --git a/lang/rust/files/powerpc64-elfv1/patch-src_bootstrap_native.rs b/lang/rust/files/powerpc64-elfv1/patch-src_bootstrap_native.rs
new file mode 100644
index 000000000000..854b992fcffe
--- /dev/null
+++ b/lang/rust/files/powerpc64-elfv1/patch-src_bootstrap_native.rs
@@ -0,0 +1,13 @@
+--- src/bootstrap/native.rs.orig 2019-11-04 15:45:21 UTC
++++ src/bootstrap/native.rs
+@@ -241,6 +241,10 @@ impl Step for Llvm {
+ }
+ }
+
++ if target == "powerpc64-unknown-freebsd" {
++ cfg.define("CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath=/usr/local/lib/%CC% -L/usr/local/lib/%CC%");
++ }
++
+ // http://llvm.org/docs/HowToCrossCompileLLVM.html
+ if target != builder.config.build && !emscripten {
+ builder.ensure(Llvm {
diff --git a/lang/rust/files/patch-src_librustc__llvm_build.rs b/lang/rust/files/powerpc64-elfv1/patch-src_librustc__llvm_build.rs
index fa2064382f55..db32de43d8c5 100644
--- a/lang/rust/files/patch-src_librustc__llvm_build.rs
+++ b/lang/rust/files/powerpc64-elfv1/patch-src_librustc__llvm_build.rs
@@ -1,6 +1,6 @@
---- src/librustc_llvm/build.rs.orig 2019-04-08 12:42:31 UTC
+--- src/librustc_llvm/build.rs.orig 2019-11-04 15:45:21 UTC
+++ src/librustc_llvm/build.rs
-@@ -254,7 +254,10 @@ fn main() {
+@@ -273,7 +273,10 @@ fn main() {
};
// C++ runtime library
diff --git a/lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_abi_call_powerpc64.rs b/lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_abi_call_powerpc64.rs
new file mode 100644
index 000000000000..bc48318fa83e
--- /dev/null
+++ b/lang/rust/files/powerpc64-elfv2/patch-src_librustc__target_abi_call_powerpc64.rs
@@ -0,0 +1,11 @@
+--- src/librustc_target/abi/call/powerpc64.rs.orig 2019-09-23 21:15:52 UTC
++++ src/librustc_target/abi/call/powerpc64.rs
+@@ -128,7 +128,7 @@ pub fn compute_abi_info<'a, Ty, C>(cx: &C, fty: &mut F
+ ELFv2
+ } else {
+ match cx.data_layout().endian {
+- Endian::Big => ELFv1,
++ Endian::Big => ELFv2,
+ Endian::Little => ELFv2
+ }
+ };
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
new file mode 100644
index 000000000000..43e85603791d
--- /dev/null
+++ b/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_clang_lib_Basic_Targets_PPC.h
@@ -0,0 +1,34 @@
+--- 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
new file mode 100644
index 000000000000..87fff59c8b28
--- /dev/null
+++ b/lang/rust/files/powerpc64-elfv2/patch-src_llvm-project_llvm_lib_Target_PowerPC_PPCTargetMachine.cpp
@@ -0,0 +1,23 @@
+--- 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;