diff options
Diffstat (limited to 'lang/rust')
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; |
