aboutsummaryrefslogtreecommitdiff
path: root/lang/rust-nightly
diff options
context:
space:
mode:
authorTobias Kortkamp <tobik@FreeBSD.org>2020-02-20 12:12:06 +0000
committerTobias Kortkamp <tobik@FreeBSD.org>2020-02-20 12:12:06 +0000
commitb543e13adb49cd9781070326dc7b222489b1c6d8 (patch)
tree9107cb4d1bff65b82cf1de6136949a2d7ae2c023 /lang/rust-nightly
parentdfb0df35ed6e70ad6670a6bfb85765647c644799 (diff)
downloadports-b543e13adb49cd9781070326dc7b222489b1c6d8.tar.gz
ports-b543e13adb49cd9781070326dc7b222489b1c6d8.zip
lang/rust-nightly: Update to 1.43.0.20200220
- Switch backtrace crate patches to upstreamed version Changes: https://github.com/rust-lang/rust/compare/433aae93e4...7760cd0fbb
Notes
Notes: svn path=/head/; revision=526566
Diffstat (limited to 'lang/rust-nightly')
-rw-r--r--lang/rust-nightly/Makefile2
-rw-r--r--lang/rust-nightly/distinfo6
-rw-r--r--lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs17
-rw-r--r--lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c131
4 files changed, 123 insertions, 33 deletions
diff --git a/lang/rust-nightly/Makefile b/lang/rust-nightly/Makefile
index 8741dcdd8e17..791c9e1dc289 100644
--- a/lang/rust-nightly/Makefile
+++ b/lang/rust-nightly/Makefile
@@ -18,7 +18,7 @@ DISTINFO_FILE= ${.CURDIR}/distinfo
# Get latest from top level 'date' key in
# https://static.rust-lang.org/dist/channel-rust-nightly.toml
-NIGHTLY_DATE= 2020-02-15
+NIGHTLY_DATE= 2020-02-20
# See WRKSRC/src/stage0.txt for this date
BOOTSTRAPS_DATE= 2020-01-30
diff --git a/lang/rust-nightly/distinfo b/lang/rust-nightly/distinfo
index e7de97058cce..fec470eeea07 100644
--- a/lang/rust-nightly/distinfo
+++ b/lang/rust-nightly/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1581774340
-SHA256 (rust/2020-02-15/rustc-nightly-src.tar.xz) = 3c70d19fd4aba6cefde4ca1684ea48b719bc841f5c9d7f8ae0f46d6d71c8b9e8
-SIZE (rust/2020-02-15/rustc-nightly-src.tar.xz) = 94355884
+TIMESTAMP = 1582182852
+SHA256 (rust/2020-02-20/rustc-nightly-src.tar.xz) = 31db047319c5fcee593e0cabc21ecb58b11e29759e5a5b1b8700520f91da2c91
+SIZE (rust/2020-02-20/rustc-nightly-src.tar.xz) = 94305996
SHA256 (rust/2020-01-30/rustc-beta-x86_64-unknown-freebsd.tar.xz) = de239e7838f913c1b4c03ec866b32966e83941a4797809f2baab2b07bb0b7225
SIZE (rust/2020-01-30/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 34914832
SHA256 (rust/2020-01-30/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = f8ff7d3298374817cbe40c20ae131f9ed95a4271f952596b6581da52d655618f
diff --git a/lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs b/lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs
new file mode 100644
index 000000000000..32a363623ac4
--- /dev/null
+++ b/lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs
@@ -0,0 +1,17 @@
+https://github.com/rust-lang/backtrace-rs/pull/294
+
+--- vendor/backtrace-sys/build.rs.orig 2020-02-19 21:11:31 UTC
++++ vendor/backtrace-sys/build.rs
+@@ -60,6 +60,12 @@ fn main() {
+ File::create(out_dir.join("config.h")).unwrap();
+ if target.contains("android") {
+ maybe_enable_dl_iterate_phdr_android(&mut build);
++ } else if target.contains("freebsd") {
++ build.define("HAVE_DL_ITERATE_PHDR", "1");
++ build.define("HAVE_KERN_PROC", "1");
++ } else if target.contains("netbsd") {
++ build.define("HAVE_DL_ITERATE_PHDR", "1");
++ build.define("HAVE_KERN_PROC_ARGS", "1");
+ } else if !target.contains("apple-ios")
+ && !target.contains("solaris")
+ && !target.contains("redox")
diff --git a/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c b/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c
index 72a3a0a5cf4b..07713763576e 100644
--- a/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c
+++ b/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c
@@ -1,44 +1,117 @@
-This file is in the public domain.
+https://github.com/ianlancetaylor/libbacktrace/commit/0f06cda953cc4e26f38751c5b9f15ae8dfa5ff2d
+https://github.com/rust-lang-nursery/libbacktrace/pull/1
---- vendor/backtrace-sys/src/libbacktrace/fileline.c.orig 2017-06-06 00:42:59 UTC
+--- vendor/backtrace-sys/src/libbacktrace/fileline.c.orig 2020-02-19 21:11:31 UTC
+++ vendor/backtrace-sys/src/libbacktrace/fileline.c
-@@ -38,8 +38,39 @@ POSSIBILITY OF SUCH DAMAGE. */
- #include <fcntl.h>
+@@ -39,6 +39,10 @@ POSSIBILITY OF SUCH DAMAGE. */
#include <stdlib.h>
+ #include <unistd.h>
-+#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)
++#if defined (HAVE_KERN_PROC_ARGS) || defined (HAVE_KERN_PROC)
+#include <sys/sysctl.h>
-+#include <limits.h>
+#endif
+
#include "backtrace.h"
#include "internal.h"
+
+@@ -46,6 +50,78 @@ POSSIBILITY OF SUCH DAMAGE. */
+ #define getexecname() NULL
+ #endif
+
++#if !defined (HAVE_KERN_PROC_ARGS) && !defined (HAVE_KERN_PROC)
++
++#define sysctl_exec_name1(state, error_callback, data) NULL
++#define sysctl_exec_name2(state, error_callback, data) NULL
++
++#else /* defined (HAVE_KERN_PROC_ARGS) || |defined (HAVE_KERN_PROC) */
++
++static char *
++sysctl_exec_name (struct backtrace_state *state,
++ int mib0, int mib1, int mib2, int mib3,
++ backtrace_error_callback error_callback, void *data)
++{
++ int mib[4];
++ size_t len;
++ char *name;
++ size_t rlen;
+
-+#if !defined(HAVE_GETEXECNAME) && defined(KERN_PROC_PATHNAME)
-+/* Return pathname of executable or 0 on failure. */
-+#define HAVE_GETEXECNAME
-+static char execname[PATH_MAX + 1];
-+static const char *
-+getexecname(void)
++ mib[0] = mib0;
++ mib[1] = mib1;
++ mib[2] = mib2;
++ mib[3] = mib3;
++
++ if (sysctl (mib, 4, NULL, &len, NULL, 0) < 0)
++ return NULL;
++ name = (char *) backtrace_alloc (state, len, error_callback, data);
++ if (name == NULL)
++ return NULL;
++ rlen = len;
++ if (sysctl (mib, 4, name, &rlen, NULL, 0) < 0)
++ {
++ backtrace_free (state, name, len, error_callback, data);
++ return NULL;
++ }
++ return name;
++}
++
++#ifdef HAVE_KERN_PROC_ARGS
++
++static char *
++sysctl_exec_name1 (struct backtrace_state *state,
++ backtrace_error_callback error_callback, void *data)
+{
-+ size_t path_len = sizeof(execname);
-+ int mib[] = {
-+ CTL_KERN,
-+#if defined(__NetBSD__)
-+ KERN_PROC_ARGS,
-+ -1,
-+ KERN_PROC_PATHNAME,
++ /* This variant is used on NetBSD. */
++ return sysctl_exec_name (state, CTL_KERN, KERN_PROC_ARGS, -1,
++ KERN_PROC_PATHNAME, error_callback, data);
++}
++
+#else
-+ KERN_PROC,
-+ KERN_PROC_PATHNAME,
-+ -1,
++
++#define sysctl_exec_name1(state, error_callback, data) NULL
++
+#endif
-+ };
-+ u_int miblen = sizeof(mib) / sizeof(mib[0]);
-+ int rc = sysctl(mib, miblen, execname, &path_len, NULL, 0);
-+ return rc ? NULL : execname;
++
++#ifdef HAVE_KERN_PROC
++
++static char *
++sysctl_exec_name2 (struct backtrace_state *state,
++ backtrace_error_callback error_callback, void *data)
++{
++ /* This variant is used on FreeBSD. */
++ return sysctl_exec_name (state, CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1,
++ error_callback, data);
+}
-+#endif /* !HAVE_GETEXECNAME && KERN_PROC_PATHNAME */
++
++#else
++
++#define sysctl_exec_name2(state, error_callback, data) NULL
++
++#endif
++
++#endif /* defined (HAVE_KERN_PROC_ARGS) || |defined (HAVE_KERN_PROC) */
++
+ /* Initialize the fileline information from the executable. Returns 1
+ on success, 0 on failure. */
- #ifndef HAVE_GETEXECNAME
- #define getexecname() NULL
+@@ -83,7 +159,7 @@ fileline_initialize (struct backtrace_state *state,
+
+ descriptor = -1;
+ called_error_callback = 0;
+- for (pass = 0; pass < 5; ++pass)
++ for (pass = 0; pass < 7; ++pass)
+ {
+ int does_not_exist;
+
+@@ -105,6 +181,12 @@ fileline_initialize (struct backtrace_state *state,
+ snprintf (buf, sizeof (buf), "/proc/%ld/object/a.out",
+ (long) getpid ());
+ filename = buf;
++ break;
++ case 5:
++ filename = sysctl_exec_name1 (state, error_callback, data);
++ break;
++ case 6:
++ filename = sysctl_exec_name2 (state, error_callback, data);
+ break;
+ default:
+ abort ();