diff options
author | Tobias Kortkamp <tobik@FreeBSD.org> | 2020-02-20 12:12:06 +0000 |
---|---|---|
committer | Tobias Kortkamp <tobik@FreeBSD.org> | 2020-02-20 12:12:06 +0000 |
commit | b543e13adb49cd9781070326dc7b222489b1c6d8 (patch) | |
tree | 9107cb4d1bff65b82cf1de6136949a2d7ae2c023 /lang/rust-nightly | |
parent | dfb0df35ed6e70ad6670a6bfb85765647c644799 (diff) | |
download | ports-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/Makefile | 2 | ||||
-rw-r--r-- | lang/rust-nightly/distinfo | 6 | ||||
-rw-r--r-- | lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs | 17 | ||||
-rw-r--r-- | lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c | 131 |
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 (); |