Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Feb 2020 12:12:06 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r526566 - in head/lang/rust-nightly: . files
Message-ID:  <202002201212.01KCC6Bl074753@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tobik
Date: Thu Feb 20 12:12:06 2020
New Revision: 526566
URL: https://svnweb.freebsd.org/changeset/ports/526566

Log:
  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

Added:
  head/lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs   (contents, props changed)
Modified:
  head/lang/rust-nightly/Makefile
  head/lang/rust-nightly/distinfo
  head/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c

Modified: head/lang/rust-nightly/Makefile
==============================================================================
--- head/lang/rust-nightly/Makefile	Thu Feb 20 11:09:47 2020	(r526565)
+++ head/lang/rust-nightly/Makefile	Thu Feb 20 12:12:06 2020	(r526566)
@@ -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

Modified: head/lang/rust-nightly/distinfo
==============================================================================
--- head/lang/rust-nightly/distinfo	Thu Feb 20 11:09:47 2020	(r526565)
+++ head/lang/rust-nightly/distinfo	Thu Feb 20 12:12:06 2020	(r526566)
@@ -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

Added: head/lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/rust-nightly/files/patch-vendor_backtrace-sys_build.rs	Thu Feb 20 12:12:06 2020	(r526566)
@@ -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")

Modified: head/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c
==============================================================================
--- head/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c	Thu Feb 20 11:09:47 2020	(r526565)
+++ head/lang/rust-nightly/files/patch-vendor_backtrace-sys_src_libbacktrace_fileline.c	Thu Feb 20 12:12:06 2020	(r526566)
@@ -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)
 +
-+#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)
++#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)
 +{
-+  size_t path_len = sizeof(execname);
-+  int mib[] = {
-+    CTL_KERN,
-+#if defined(__NetBSD__)
-+    KERN_PROC_ARGS,
-+    -1,
-+    KERN_PROC_PATHNAME,
++  int mib[4];
++  size_t len;
++  char *name;
++  size_t rlen;
++
++  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)
++{
++  /* 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 ();



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002201212.01KCC6Bl074753>