1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-07 11:49:40 +00:00
freebsd-ports/lang/rust-nightly/files/patch-src_libbacktrace_fileline.c
Bryan Drewery 01b60efd6f Unbreak on i386/amd64 and update to 1.25.0-2018-02-19
- Stop using git to build as it is unmaintainable due to submodules,
  but more importantly because src/vendor is no longer bundled.  Just
  fetch the source already generated that has all dependencies bundled.
  It may be a bit slower to get updates but is far more maintainable.
- Copy all patches to lang/rust-nightly/files since they may not always
  apply exactly between both versions.
- Add in patch for llvm-config getting -lexecinfo wrong, this is in
  review with LLVM at https://reviews.llvm.org/D42702.
- Bring in other random updates from lang/rust.
2018-02-24 06:17:17 +00:00

43 lines
1.0 KiB
C

--- src/libbacktrace/fileline.c.orig 2017-06-06 00:42:59 UTC
+++ src/libbacktrace/fileline.c
@@ -38,8 +38,39 @@ POSSIBILITY OF SUCH DAMAGE. */
#include <fcntl.h>
#include <stdlib.h>
+#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#include <sys/sysctl.h>
+#include <limits.h>
+#endif
+
#include "backtrace.h"
#include "internal.h"
+
+#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)
+{
+ size_t path_len = sizeof(execname);
+ int mib[] = {
+ CTL_KERN,
+#if defined(__NetBSD__)
+ KERN_PROC_ARGS,
+ -1,
+ KERN_PROC_PATHNAME,
+#else
+ KERN_PROC,
+ KERN_PROC_PATHNAME,
+ -1,
+#endif
+ };
+ u_int miblen = sizeof(mib) / sizeof(mib[0]);
+ int rc = sysctl(mib, miblen, execname, &path_len, NULL, 0);
+ return rc ? NULL : execname;
+}
+#endif /* !HAVE_GETEXECNAME && KERN_PROC_PATHNAME */
#ifndef HAVE_GETEXECNAME
#define getexecname() NULL