aboutsummaryrefslogtreecommitdiff
path: root/lang/rust
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <dumbbell@FreeBSD.org>2018-07-19 20:57:09 +0000
committerJean-Sébastien Pédron <dumbbell@FreeBSD.org>2018-07-19 20:57:09 +0000
commit80e30d61332368ec2c604a0d0ea2e5248d2726d4 (patch)
tree5af7ab084c8c6e7d717f77ea4f165a9b04f68701 /lang/rust
parent9b9d1273f305ae96a31c4c0d14de932e7bcd1eaf (diff)
downloadports-80e30d61332368ec2c604a0d0ea2e5248d2726d4.tar.gz
ports-80e30d61332368ec2c604a0d0ea2e5248d2726d4.zip
Notes
Diffstat (limited to 'lang/rust')
-rw-r--r--lang/rust/Makefile16
-rw-r--r--lang/rust/distinfo42
-rw-r--r--lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_dragonfly_mod.rs7
-rw-r--r--lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs7
-rw-r--r--lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86.rs7
-rw-r--r--lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs7
-rw-r--r--lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_mod.rs18
-rw-r--r--lang/rust/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs (renamed from lang/rust/files/patch-src_librustc__back_target_i686__unknown__freebsd.rs)6
-rw-r--r--lang/rust/files/patch-src_libstd_os_raw_mod.rs18
-rw-r--r--lang/rust/files/patch-src_libstd_sys_unix_stack__overflow.rs31
-rw-r--r--lang/rust/files/patch-src_llvm_utils_llvm-build_llvmbuild_main.py4
-rw-r--r--lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_dragonfly_mod.rs7
-rw-r--r--lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs7
-rw-r--r--lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86.rs7
-rw-r--r--lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs7
-rw-r--r--lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_mod.rs18
16 files changed, 176 insertions, 33 deletions
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 39b89ff0c967..f3a855c72b0e 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= rust
-PORTVERSION?= 1.26.2
+PORTVERSION?= 1.27.1
PORTREVISION?=
CATEGORIES= lang
MASTER_SITES= http://static.rust-lang.org/dist/:src \
@@ -36,6 +36,8 @@ LIB_DEPENDS= libcurl.so:ftp/curl \
ONLY_FOR_ARCHS?= aarch64 amd64 i386
ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler
+BROKEN_aarch64= fails to build: bootstrap compiler crashes
+
# FIXME: The bootstrapped rustc adds -L/usr/local/lib in front of
# the LDFLAGS. When stage0's rustc is linked, it picks the installed
# librust*so and fails.
@@ -44,13 +46,13 @@ ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler
CONFLICTS_INSTALL?= rust-nightly
# See WRKSRC/src/stage0.txt for this date and version values.
-BOOTSTRAPS_DATE?= 2018-03-29
+BOOTSTRAPS_DATE?= 2018-05-10
-RUST_BOOTSTRAP_VERSION?= 1.25.0
+RUST_BOOTSTRAP_VERSION?= 1.26.0
RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
-CARGO_BOOTSTRAP_VERSION?= 0.26.0
+CARGO_BOOTSTRAP_VERSION?= 0.27.0
CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
RUST_CHANNEL= ${PKGNAMESUFFIX:Ustable:S/^-//}
@@ -250,7 +252,7 @@ do-install:
cd ${WRKSRC} && \
${SETENV} ${X_PY_ENV} \
DESTDIR=${STAGEDIR} \
- ${X_PY_CMD} install \
+ ${X_PY_CMD} 'install' \
--verbose \
--config ./config.toml \
--jobs ${MAKE_JOBS_NUMBER}
@@ -334,8 +336,8 @@ do-test:
--jobs ${MAKE_JOBS_NUMBER}
makesum-all-archs:
- ${MAKE} makesum ARCH=${ONLY_FOR_ARCHS:[1]}
-.for arch in ${ONLY_FOR_ARCHS:[2..-1]}
+ ${MAKE} makesum ARCH=${ONLY_FOR_ARCHS:O:[1]}
+.for arch in ${ONLY_FOR_ARCHS:O:[2..-1]}
${MAKE} makesum ARCH=${arch} DISTINFO_FILE=${DISTINFO_FILE}.${arch}
${GREP} ${RUST_ARCH_${arch}} ${DISTINFO_FILE}.${arch} >> ${DISTINFO_FILE}
${RM} ${DISTINFO_FILE}.${arch}
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index b430c78024f9..6148f39df7f4 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,21 +1,21 @@
-TIMESTAMP = 1528500986
-SHA256 (rust/rustc-1.26.2-src.tar.xz) = a1202800bd5621f5cac027177904da0b964eb43b93606d3e4c7b342a9f7473b4
-SIZE (rust/rustc-1.26.2-src.tar.xz) = 54613640
-SHA256 (rust/2018-03-29/rustc-1.25.0-aarch64-unknown-freebsd.tar.gz) = bef48b3ba5d560ae2eae532bfa4858827cd90687684e42ba515cb6dd78348ea9
-SIZE (rust/2018-03-29/rustc-1.25.0-aarch64-unknown-freebsd.tar.gz) = 62374768
-SHA256 (rust/2018-03-29/rust-std-1.25.0-aarch64-unknown-freebsd.tar.gz) = 994e415d2bec4c862cede93ca8f50fdc30272930170d30d963f5f9e127f8e60b
-SIZE (rust/2018-03-29/rust-std-1.25.0-aarch64-unknown-freebsd.tar.gz) = 59733871
-SHA256 (rust/2018-03-29/cargo-0.26.0-aarch64-unknown-freebsd.tar.gz) = a2efee9c92a87ac48d3281eafeb24d713e32aca18dc7b287079f054dd68c533f
-SIZE (rust/2018-03-29/cargo-0.26.0-aarch64-unknown-freebsd.tar.gz) = 4170950
-SHA256 (rust/2018-03-29/rustc-1.25.0-x86_64-unknown-freebsd.tar.gz) = 42279e4bb3ab6a6be87096c023ee62a43ffcefb36d2d23ed13b762c5b509ea6d
-SIZE (rust/2018-03-29/rustc-1.25.0-x86_64-unknown-freebsd.tar.gz) = 56569917
-SHA256 (rust/2018-03-29/rust-std-1.25.0-x86_64-unknown-freebsd.tar.gz) = c5c62da893a1563e7ccff77ff313417a241300e09b4d06d9f5165bf35a72c58a
-SIZE (rust/2018-03-29/rust-std-1.25.0-x86_64-unknown-freebsd.tar.gz) = 50228076
-SHA256 (rust/2018-03-29/cargo-0.26.0-x86_64-unknown-freebsd.tar.gz) = f5c4c0fbbb11b36223de815b734ab6f3497b6c453ca7f9fb93d457316fbfc1b7
-SIZE (rust/2018-03-29/cargo-0.26.0-x86_64-unknown-freebsd.tar.gz) = 5211772
-SHA256 (rust/2018-03-29/rustc-1.25.0-i686-unknown-freebsd.tar.gz) = 8a2488f0d905bd2d498addf8943bed58f817f3fad8387ba4cb7124f38a4c24dd
-SIZE (rust/2018-03-29/rustc-1.25.0-i686-unknown-freebsd.tar.gz) = 56770706
-SHA256 (rust/2018-03-29/rust-std-1.25.0-i686-unknown-freebsd.tar.gz) = fe470bcb2e46d91d866b8a7cb22d7f78f421962b54116938b78286a4f9242775
-SIZE (rust/2018-03-29/rust-std-1.25.0-i686-unknown-freebsd.tar.gz) = 50402505
-SHA256 (rust/2018-03-29/cargo-0.26.0-i686-unknown-freebsd.tar.gz) = 3736e794fcede8f24dae8798d70ec4252b47516978460448e324b7dd3d875a73
-SIZE (rust/2018-03-29/cargo-0.26.0-i686-unknown-freebsd.tar.gz) = 4930623
+TIMESTAMP = 1531989867
+SHA256 (rust/rustc-1.27.1-src.tar.xz) = 948e2645057960ee1c03d9f0e8f78133a5f73d9ca9a24bc56126e395a212d25c
+SIZE (rust/rustc-1.27.1-src.tar.xz) = 55458892
+SHA256 (rust/2018-05-10/rustc-1.26.0-aarch64-unknown-freebsd.tar.gz) = 74e87fe6b29fe56a353f045f8b0c1069c55e2fea8bd9e2d5da44606fdbcee362
+SIZE (rust/2018-05-10/rustc-1.26.0-aarch64-unknown-freebsd.tar.gz) = 62636938
+SHA256 (rust/2018-05-10/rust-std-1.26.0-aarch64-unknown-freebsd.tar.gz) = 73180f8ddde7e56622f596d9167beae0a1ab548bd5bf258cee276fdc87f30dca
+SIZE (rust/2018-05-10/rust-std-1.26.0-aarch64-unknown-freebsd.tar.gz) = 62613320
+SHA256 (rust/2018-05-10/cargo-0.27.0-aarch64-unknown-freebsd.tar.gz) = 6cc48fd7a2d04ff151d7399c536d2e6a4cd37a7cd51ced67bb6978121b4bc3cb
+SIZE (rust/2018-05-10/cargo-0.27.0-aarch64-unknown-freebsd.tar.gz) = 4349432
+SHA256 (rust/2018-05-10/rustc-1.26.0-x86_64-unknown-freebsd.tar.gz) = 9499ce5b68d631f8345c387e1f59b21892d97e0acb5650deb61a34719310bd38
+SIZE (rust/2018-05-10/rustc-1.26.0-x86_64-unknown-freebsd.tar.gz) = 64672199
+SHA256 (rust/2018-05-10/rust-std-1.26.0-x86_64-unknown-freebsd.tar.gz) = 38cd138eba2ccaff59513d154fec580b6663ca6ef38cd620c348364aa1e11a40
+SIZE (rust/2018-05-10/rust-std-1.26.0-x86_64-unknown-freebsd.tar.gz) = 64727651
+SHA256 (rust/2018-05-10/cargo-0.27.0-x86_64-unknown-freebsd.tar.gz) = ee0e709f26f14be1cf88a8fdff50063b78d33bb73d8e343aad7b2562a5730249
+SIZE (rust/2018-05-10/cargo-0.27.0-x86_64-unknown-freebsd.tar.gz) = 5905896
+SHA256 (rust/2018-05-10/rustc-1.26.0-i686-unknown-freebsd.tar.gz) = 11111cb60c00bc6e5ea27a0748068d3f2430809d2a3a7f8554750c24d1a728a9
+SIZE (rust/2018-05-10/rustc-1.26.0-i686-unknown-freebsd.tar.gz) = 65599090
+SHA256 (rust/2018-05-10/rust-std-1.26.0-i686-unknown-freebsd.tar.gz) = 549129f86701a8968b411b0c39e296312b2a3a0b3a8c221865d876b72f265972
+SIZE (rust/2018-05-10/rust-std-1.26.0-i686-unknown-freebsd.tar.gz) = 65229010
+SHA256 (rust/2018-05-10/cargo-0.27.0-i686-unknown-freebsd.tar.gz) = 438288ab5e28ffff96d2a4aeaaf656f7388cbc4b6706ad9e7423301089d615da
+SIZE (rust/2018-05-10/cargo-0.27.0-i686-unknown-freebsd.tar.gz) = 5671969
diff --git a/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_dragonfly_mod.rs b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_dragonfly_mod.rs
new file mode 100644
index 000000000000..38971008f5f9
--- /dev/null
+++ b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_dragonfly_mod.rs
@@ -0,0 +1,7 @@
+--- src/liblibc/src/unix/bsd/freebsdlike/dragonfly/mod.rs.orig 2018-06-19 04:36:14 UTC
++++ src/liblibc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
+@@ -1,3 +1,4 @@
++pub type c_char = i8;
+ pub type clock_t = u64;
+ pub type ino_t = u64;
+ pub type lwpid_t = i32;
diff --git a/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs
new file mode 100644
index 000000000000..cc3ea537274a
--- /dev/null
+++ b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs
@@ -0,0 +1,7 @@
+--- src/liblibc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs.orig 2018-06-19 04:36:14 UTC
++++ src/liblibc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
+@@ -1,3 +1,4 @@
++pub type c_char = u8;
+ pub type c_long = i64;
+ pub type c_ulong = u64;
+ pub type time_t = i64;
diff --git a/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86.rs b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86.rs
new file mode 100644
index 000000000000..b636ba3a6c02
--- /dev/null
+++ b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86.rs
@@ -0,0 +1,7 @@
+--- src/liblibc/src/unix/bsd/freebsdlike/freebsd/x86.rs.orig 2018-06-19 04:36:14 UTC
++++ src/liblibc/src/unix/bsd/freebsdlike/freebsd/x86.rs
+@@ -1,3 +1,4 @@
++pub type c_char = i8;
+ pub type c_long = i32;
+ pub type c_ulong = u32;
+ pub type time_t = i32;
diff --git a/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs
new file mode 100644
index 000000000000..9c43a045fdda
--- /dev/null
+++ b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs
@@ -0,0 +1,7 @@
+--- src/liblibc/src/unix/bsd/freebsdlike/freebsd/x86_64.rs.orig 2018-06-19 04:36:14 UTC
++++ src/liblibc/src/unix/bsd/freebsdlike/freebsd/x86_64.rs
+@@ -1,3 +1,4 @@
++pub type c_char = i8;
+ pub type c_long = i64;
+ pub type c_ulong = u64;
+ pub type time_t = i64;
diff --git a/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_mod.rs b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_mod.rs
new file mode 100644
index 000000000000..75011cbdd645
--- /dev/null
+++ b/lang/rust/files/patch-src_liblibc_src_unix_bsd_freebsdlike_mod.rs
@@ -0,0 +1,18 @@
+--- src/liblibc/src/unix/bsd/freebsdlike/mod.rs.orig 2018-06-19 04:36:14 UTC
++++ src/liblibc/src/unix/bsd/freebsdlike/mod.rs
+@@ -1,4 +1,3 @@
+-pub type c_char = i8;
+ pub type dev_t = u32;
+ pub type mode_t = u16;
+ pub type pthread_attr_t = *mut ::c_void;
+@@ -84,7 +83,10 @@ s! {
+
+ pub struct stack_t {
+ // In FreeBSD 11 and later, ss_sp is actually a void*
++ #[cfg(not(target_arch = "aarch64"))]
+ pub ss_sp: *mut ::c_char,
++ #[cfg(target_arch = "aarch64")]
++ pub ss_sp: *mut ::c_void,
+ pub ss_size: ::size_t,
+ pub ss_flags: ::c_int,
+ }
diff --git a/lang/rust/files/patch-src_librustc__back_target_i686__unknown__freebsd.rs b/lang/rust/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs
index 47f594784f7e..cad081ce0d8c 100644
--- a/lang/rust/files/patch-src_librustc__back_target_i686__unknown__freebsd.rs
+++ b/lang/rust/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs
@@ -1,6 +1,6 @@
---- src/librustc_back/target/i686_unknown_freebsd.rs.orig 2017-10-09 20:04:51 UTC
-+++ src/librustc_back/target/i686_unknown_freebsd.rs
-@@ -13,7 +13,7 @@ use target::{Target, TargetResult};
+--- src/librustc_target/spec/i686_unknown_freebsd.rs.orig 2018-06-19 04:35:53 UTC
++++ src/librustc_target/spec/i686_unknown_freebsd.rs
+@@ -12,7 +12,7 @@ use spec::{LinkerFlavor, Target, TargetResult};
pub fn target() -> TargetResult {
let mut base = super::freebsd_base::opts();
diff --git a/lang/rust/files/patch-src_libstd_os_raw_mod.rs b/lang/rust/files/patch-src_libstd_os_raw_mod.rs
new file mode 100644
index 000000000000..48a6ca481552
--- /dev/null
+++ b/lang/rust/files/patch-src_libstd_os_raw_mod.rs
@@ -0,0 +1,18 @@
+--- src/libstd/os/raw/mod.rs.orig 2018-06-19 04:35:53 UTC
++++ src/libstd/os/raw/mod.rs
+@@ -29,6 +29,7 @@ use fmt;
+ all(target_os = "android", any(target_arch = "aarch64",
+ target_arch = "arm")),
+ all(target_os = "l4re", target_arch = "x86_64"),
++ all(target_os = "freebsd", target_arch = "aarch64"),
+ all(target_os = "openbsd", target_arch = "aarch64"),
+ all(target_os = "fuchsia", target_arch = "aarch64")))]
+ #[stable(feature = "raw_os", since = "1.1.0")] pub type c_char = u8;
+@@ -41,6 +42,7 @@ use fmt;
+ all(target_os = "android", any(target_arch = "aarch64",
+ target_arch = "arm")),
+ all(target_os = "l4re", target_arch = "x86_64"),
++ all(target_os = "freebsd", target_arch = "aarch64"),
+ all(target_os = "openbsd", target_arch = "aarch64"),
+ all(target_os = "fuchsia", target_arch = "aarch64"))))]
+ #[stable(feature = "raw_os", since = "1.1.0")] pub type c_char = i8;
diff --git a/lang/rust/files/patch-src_libstd_sys_unix_stack__overflow.rs b/lang/rust/files/patch-src_libstd_sys_unix_stack__overflow.rs
new file mode 100644
index 000000000000..f3b681926509
--- /dev/null
+++ b/lang/rust/files/patch-src_libstd_sys_unix_stack__overflow.rs
@@ -0,0 +1,31 @@
+--- src/libstd/sys/unix/stack_overflow.rs.orig 2018-06-19 04:35:53 UTC
++++ src/libstd/sys/unix/stack_overflow.rs
+@@ -148,18 +148,20 @@ mod imp {
+ stackp
+ }
+
+- #[cfg(any(target_os = "linux",
+- target_os = "macos",
+- target_os = "bitrig",
+- target_os = "netbsd",
+- target_os = "openbsd",
+- target_os = "solaris"))]
++ #[cfg(any(any(target_os = "linux",
++ target_os = "macos",
++ target_os = "bitrig",
++ target_os = "netbsd",
++ target_os = "openbsd",
++ target_os = "solaris"),
++ all(target_os = "freebsd", target_arch = "aarch64")))]
+ unsafe fn get_stack() -> libc::stack_t {
+ libc::stack_t { ss_sp: get_stackp(), ss_flags: 0, ss_size: SIGSTKSZ }
+ }
+
+- #[cfg(any(target_os = "freebsd",
+- target_os = "dragonfly"))]
++ #[cfg(all(any(target_os = "freebsd",
++ target_os = "dragonfly"),
++ not(target_arch = "aarch64")))]
+ unsafe fn get_stack() -> libc::stack_t {
+ libc::stack_t { ss_sp: get_stackp() as *mut i8, ss_flags: 0, ss_size: SIGSTKSZ }
+ }
diff --git a/lang/rust/files/patch-src_llvm_utils_llvm-build_llvmbuild_main.py b/lang/rust/files/patch-src_llvm_utils_llvm-build_llvmbuild_main.py
index 50b7587e40f8..c785763611ba 100644
--- a/lang/rust/files/patch-src_llvm_utils_llvm-build_llvmbuild_main.py
+++ b/lang/rust/files/patch-src_llvm_utils_llvm-build_llvmbuild_main.py
@@ -1,6 +1,6 @@
---- src/llvm/utils/llvm-build/llvmbuild/main.py.orig 2015-10-28 01:10:50 UTC
+--- src/llvm/utils/llvm-build/llvmbuild/main.py.orig 2018-04-04 08:39:57 UTC
+++ src/llvm/utils/llvm-build/llvmbuild/main.py
-@@ -719,6 +719,8 @@ def add_magic_target_components(parser,
+@@ -752,6 +752,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-src_vendor_libc_src_unix_bsd_freebsdlike_dragonfly_mod.rs b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_dragonfly_mod.rs
new file mode 100644
index 000000000000..afa5f0151af5
--- /dev/null
+++ b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_dragonfly_mod.rs
@@ -0,0 +1,7 @@
+--- src/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs.orig 2018-06-19 05:52:22 UTC
++++ src/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
+@@ -1,3 +1,4 @@
++pub type c_char = i8;
+ pub type clock_t = u64;
+ pub type ino_t = u64;
+ pub type lwpid_t = i32;
diff --git a/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs
new file mode 100644
index 000000000000..d41748c8864f
--- /dev/null
+++ b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_aarch64.rs
@@ -0,0 +1,7 @@
+--- src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs.orig 2018-06-19 05:52:22 UTC
++++ src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
+@@ -1,3 +1,4 @@
++pub type c_char = u8;
+ pub type c_long = i64;
+ pub type c_ulong = u64;
+ pub type time_t = i64;
diff --git a/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86.rs b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86.rs
new file mode 100644
index 000000000000..d73db50eb783
--- /dev/null
+++ b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86.rs
@@ -0,0 +1,7 @@
+--- src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs.orig 2018-06-19 05:52:22 UTC
++++ src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs
+@@ -1,3 +1,4 @@
++pub type c_char = i8;
+ pub type c_long = i32;
+ pub type c_ulong = u32;
+ pub type time_t = i32;
diff --git a/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs
new file mode 100644
index 000000000000..8e1a279ecd69
--- /dev/null
+++ b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_freebsd_x86__64.rs
@@ -0,0 +1,7 @@
+--- src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64.rs.orig 2018-06-19 05:52:22 UTC
++++ src/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64.rs
+@@ -1,3 +1,4 @@
++pub type c_char = i8;
+ pub type c_long = i64;
+ pub type c_ulong = u64;
+ pub type time_t = i64;
diff --git a/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_mod.rs b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_mod.rs
new file mode 100644
index 000000000000..58a077616c65
--- /dev/null
+++ b/lang/rust/files/patch-src_vendor_libc_src_unix_bsd_freebsdlike_mod.rs
@@ -0,0 +1,18 @@
+--- src/vendor/libc/src/unix/bsd/freebsdlike/mod.rs.orig 2018-06-19 05:52:22 UTC
++++ src/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
+@@ -1,4 +1,3 @@
+-pub type c_char = i8;
+ pub type dev_t = u32;
+ pub type mode_t = u16;
+ pub type pthread_attr_t = *mut ::c_void;
+@@ -84,7 +83,10 @@ s! {
+
+ pub struct stack_t {
+ // In FreeBSD 11 and later, ss_sp is actually a void*
++ #[cfg(not(target_arch = "aarch64"))]
+ pub ss_sp: *mut ::c_char,
++ #[cfg(target_arch = "aarch64")]
++ pub ss_sp: *mut ::c_void,
+ pub ss_size: ::size_t,
+ pub ss_flags: ::c_int,
+ }