Date: Thu, 29 Aug 2013 16:57:56 +0000 (UTC) From: Ed Maste <emaste@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r255033 - head/contrib/libexecinfo Message-ID: <201308291657.r7TGvu5c052696@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: emaste Date: Thu Aug 29 16:57:55 2013 New Revision: 255033 URL: http://svnweb.freebsd.org/changeset/base/255033 Log: Update to 2013-08-29 NetBSD libexecinfo snapshot This adds my patch to use the kern.proc.pathname sysctl instead of relying on procfs(5). Modified: head/contrib/libexecinfo/backtrace.3 head/contrib/libexecinfo/backtrace.c head/contrib/libexecinfo/symtab.c Directory Properties: head/contrib/libexecinfo/ (props changed) Modified: head/contrib/libexecinfo/backtrace.3 ============================================================================== --- head/contrib/libexecinfo/backtrace.3 Thu Aug 29 16:41:40 2013 (r255032) +++ head/contrib/libexecinfo/backtrace.3 Thu Aug 29 16:57:55 2013 (r255033) @@ -1,4 +1,4 @@ -.\" $NetBSD: backtrace.3,v 1.4 2012/06/10 00:24:36 christos Exp $ +.\" $NetBSD: backtrace.3,v 1.5 2013/08/22 17:08:43 christos Exp $ .\" $FreeBSD$ .\" .\" Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -152,10 +152,4 @@ The Linux versions of the functions (the instead of .Ft size_t arguments. -.It -The -.Fn backtrace_symbols -functions currently rely on -.Xr procfs 5 -to locate the executable. .El Modified: head/contrib/libexecinfo/backtrace.c ============================================================================== --- head/contrib/libexecinfo/backtrace.c Thu Aug 29 16:41:40 2013 (r255032) +++ head/contrib/libexecinfo/backtrace.c Thu Aug 29 16:57:55 2013 (r255033) @@ -1,4 +1,4 @@ -/* $NetBSD: backtrace.c,v 1.2 2012/07/09 03:11:59 christos Exp $ */ +/* $NetBSD: backtrace.c,v 1.3 2013/08/29 14:58:56 christos Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: backtrace.c,v 1.2 2012/07/09 03:11:59 christos Exp $"); +__RCSID("$NetBSD: backtrace.c,v 1.3 2013/08/29 14:58:56 christos Exp $"); #include <sys/param.h> #include <assert.h> @@ -51,9 +51,29 @@ __RCSID("$NetBSD: backtrace.c,v 1.2 2012 #ifdef __linux__ #define SELF "/proc/self/exe" #else +#include <sys/sysctl.h> #define SELF "/proc/curproc/file" #endif +static int +open_self(int flags) +{ + const char *pathname = SELF; +#ifdef KERN_PROC_PATHNAME + static const int name[] = { + CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1, + }; + char path[MAXPATHLEN]; + size_t len; + + len = sizeof(path); + if (sysctl(name, 4, path, &len, NULL, 0) != -1) + pathname = path; +#endif + return open(pathname, flags); +} + + static int __printflike(4, 5) rasprintf(char **buf, size_t *bufsiz, size_t offs, const char *fmt, ...) { @@ -163,7 +183,7 @@ backtrace_symbols_fmt(void *const *trace symtab_t *st; int fd; - if ((fd = open(SELF, O_RDONLY)) != -1) + if ((fd = open_self(O_RDONLY)) != -1) st = symtab_create(fd, -1, STT_FUNC); else st = NULL; Modified: head/contrib/libexecinfo/symtab.c ============================================================================== --- head/contrib/libexecinfo/symtab.c Thu Aug 29 16:41:40 2013 (r255032) +++ head/contrib/libexecinfo/symtab.c Thu Aug 29 16:57:55 2013 (r255033) @@ -1,4 +1,4 @@ -/* $NetBSD: symtab.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */ +/* $NetBSD: symtab.c,v 1.2 2013/08/29 15:01:57 christos Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -29,12 +29,12 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__RCSID("$NetBSD: symtab.c,v 1.1 2012/05/26 22:02:29 christos Exp $"); +__RCSID("$NetBSD: symtab.c,v 1.2 2013/08/29 15:01:57 christos Exp $"); #include <stdlib.h> #include <stdio.h> -#include <stdint.h> #include <string.h> +#include <stdint.h> #include <err.h> #include <dlfcn.h>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308291657.r7TGvu5c052696>