summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2013-08-23 12:35:48 +0000
committeremaste <emaste@FreeBSD.org>2013-08-23 12:35:48 +0000
commit69d69e8c31e4194232fe07a10788647223ea898d (patch)
treea522b4b963b1f09ab0f665f47c5b979833087729
parent78d2ae699c3dab50ce497cb490b2dbef1229786d (diff)
downloadFreeBSD-src-69d69e8c31e4194232fe07a10788647223ea898d.zip
FreeBSD-src-69d69e8c31e4194232fe07a10788647223ea898d.tar.gz
Remove accidental import of libexecinfo at wrong directory level
-rw-r--r--contrib/libexecinfo/20130822/backtrace.3159
-rw-r--r--contrib/libexecinfo/20130822/backtrace.c229
-rw-r--r--contrib/libexecinfo/20130822/builtin.c68
-rw-r--r--contrib/libexecinfo/20130822/execinfo.h44
-rw-r--r--contrib/libexecinfo/20130822/symtab.c192
-rw-r--r--contrib/libexecinfo/20130822/symtab.h42
-rw-r--r--contrib/libexecinfo/20130822/unwind.c72
-rw-r--r--contrib/libexecinfo/20130822/unwind.h68
-rw-r--r--contrib/libexecinfo/20130822/unwind_arm_ehabi_stub.c61
-rw-r--r--contrib/libexecinfo/dist/backtrace.3159
-rw-r--r--contrib/libexecinfo/dist/backtrace.c229
-rw-r--r--contrib/libexecinfo/dist/builtin.c68
-rw-r--r--contrib/libexecinfo/dist/execinfo.h44
-rw-r--r--contrib/libexecinfo/dist/symtab.c192
-rw-r--r--contrib/libexecinfo/dist/symtab.h42
-rw-r--r--contrib/libexecinfo/dist/unwind.c72
-rw-r--r--contrib/libexecinfo/dist/unwind.h68
-rw-r--r--contrib/libexecinfo/dist/unwind_arm_ehabi_stub.c61
18 files changed, 0 insertions, 1870 deletions
diff --git a/contrib/libexecinfo/20130822/backtrace.3 b/contrib/libexecinfo/20130822/backtrace.3
deleted file mode 100644
index 781dc6e..0000000
--- a/contrib/libexecinfo/20130822/backtrace.3
+++ /dev/null
@@ -1,159 +0,0 @@
-.\" $NetBSD: backtrace.3,v 1.4 2012/06/10 00:24:36 christos Exp $
-.\"
-.\" Copyright (c) 2012 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Christos Zoulas
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd May 26, 2012
-.Dt BACKTRACE 3
-.Os
-.Sh NAME
-.Nm backtrace
-.Nd fill in the backtrace of the currently executing thread
-.Sh LIBRARY
-.Lb libexecinfo
-.Sh SYNOPSIS
-.In execinfo.h
-.Ft size_t
-.Fn backtrace "void **addrlist" "size_t len"
-.Ft "char **"
-.Fn backtrace_symbols "void * const *addrlist" "size_t len"
-.Ft int
-.Fn backtrace_symbols_fd "void * const *addrlist" "size_t len" "int fd"
-.Ft "char **"
-.Fn backtrace_symbols_fmt "void * const *addrlist" "size_t len" "const char *fmt"
-.Ft int
-.Fn backtrace_symbols_fmt_fd "void * const *addrlist" "size_t len" "const char *fmt" "int fd"
-.Sh DESCRIPTION
-The
-.Fn backtrace
-function places into the array pointed by
-.Fa addrlist
-the array of the values of the program counter for each frame called up to
-.Fa len
-frames.
-The number of frames found (which can be fewer than
-.Fa len )
-is returned.
-.Pp
-The
-.Fn backtrace_symbols_fmt
-function takes an array of previously filled addresses from
-.Fn backtrace
-in
-.Fa addrlist
-of
-.Fa len
-elements, and uses
-.Fa fmt
-to format them.
-The formatting characters available are:
-.Bl -tag -width a -offset indent
-.It Dv a
-The numeric address of each element as would be printed using %p.
-.It Dv n
-The name of the nearest function symbol (smaller than the address element)
-as determined by
-.Xr dladdr 3
-if the symbol was dynamic, or looked up in the executable if static and
-the /proc filesystem is available to determine the executable path.
-.It Dv d
-The difference of the symbol address and the address element printed
-using 0x%tx.
-.It Dv D
-The difference of the symbol addresss and the address element printed using
-+0x%tx if non-zero, or nothing if zero.
-.It Dv f
-The filename of the symbol as determined by
-.Xr dladdr 3 .
-.El
-.Pp
-The array of formatted strings is returned as a contiguous memory address which
-can be freed by a single
-.Xr free 3 .
-.Pp
-The
-.Fn backtrace_symbols
-function is equivalent of calling
-.Fn backtrace_symbols_fmt
-with a format argument of
-.Dv "%a <%n%D> at %f"
-.Pp
-The
-.Fn backtrace_symbols_fd
-and
-.Fn backtrace_symbols_fmt_fd
-are similar to the non _fd named functions, only instead of returning
-an array or strings, they print a new-line separated array of strings in
-fd, and return
-.Dv 0
-on success and
-.Dv \-1
-on failure.
-.Sh RETURN VALUES
-The
-.Fn backtrace
-function returns the number of elements tht were filled in the backtrace.
-The
-.Fn backtrace_symbols
-and
-.Fn backtrace_symbols_fmt
-return a string array on success, and
-.Dv NULL
-on failure, setting
-.Va errno .
-Diagnostic output may also be produced by the ELF symbol lookup functions.
-.Sh SEE ALSO
-.Xr dladdr 3 ,
-.Xr elf 3
-.Sh HISTORY
-The
-.Fn backtrace
-library of functions first appeared in
-.Nx 7.0 .
-.Sh BUGS
-.Bl -enum
-.It
-Errors should not be printed but communicated to the caller differently.
-.It
-Because these functions use
-.Xr elf 3
-this is a separate library instead of being part of libc/libutil
-so that no library dependencies are introduced.
-.It
-The Linux versions of the functions (there are no _fmt variants) use
-.Ft int
-instead of
-.Ft size_t
-arguments.
-.It
-Since
-.Xr dladdr 3
-only deals with dynamic symbols, we need to find the symbols from the main
-portion of the program.
-For that we need to locate the executable, and we use procfs for
-finding it, which is not portable.
-.El
diff --git a/contrib/libexecinfo/20130822/backtrace.c b/contrib/libexecinfo/20130822/backtrace.c
deleted file mode 100644
index 02ad148..0000000
--- a/contrib/libexecinfo/20130822/backtrace.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* $NetBSD: backtrace.c,v 1.2 2012/07/09 03:11:59 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: backtrace.c,v 1.2 2012/07/09 03:11:59 christos Exp $");
-
-#include <sys/param.h>
-#include <assert.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <dlfcn.h>
-#include <elf.h>
-
-#include "execinfo.h"
-#include "symtab.h"
-
-#ifdef __linux__
-#define SELF "/proc/self/exe"
-#else
-#define SELF "/proc/curproc/file"
-#endif
-
-static int __printflike(4, 5)
-rasprintf(char **buf, size_t *bufsiz, size_t offs, const char *fmt, ...)
-{
- for (;;) {
- size_t nbufsiz;
- char *nbuf;
-
- if (*buf && offs < *bufsiz) {
- va_list ap;
- int len;
-
- va_start(ap, fmt);
- len = vsnprintf(*buf + offs, *bufsiz - offs, fmt, ap);
- va_end(ap);
-
- if (len < 0 || (size_t)len < *bufsiz - offs)
- return len;
- nbufsiz = MAX(*bufsiz + 512, (size_t)len + 1);
- } else
- nbufsiz = MAX(offs, *bufsiz) + 512;
-
- nbuf = realloc(*buf, nbufsiz);
- if (nbuf == NULL)
- return -1;
- *buf = nbuf;
- *bufsiz = nbufsiz;
- }
-}
-
-/*
- * format specifiers:
- * %a = address
- * %n = symbol_name
- * %d = symbol_address - address
- * %D = if symbol_address == address "" else +%d
- * %f = filename
- */
-static ssize_t
-format_string(char **buf, size_t *bufsiz, size_t offs, const char *fmt,
- Dl_info *dli, const void *addr)
-{
- ptrdiff_t diff = (const char *)addr - (const char *)dli->dli_saddr;
- size_t o = offs;
- int len;
-
- for (; *fmt; fmt++) {
- if (*fmt != '%')
- goto printone;
- switch (*++fmt) {
- case 'a':
- len = rasprintf(buf, bufsiz, o, "%p", addr);
- break;
- case 'n':
- len = rasprintf(buf, bufsiz, o, "%s", dli->dli_sname);
- break;
- case 'D':
- if (diff)
- len = rasprintf(buf, bufsiz, o, "+0x%tx", diff);
- else
- len = 0;
- break;
- case 'd':
- len = rasprintf(buf, bufsiz, o, "0x%tx", diff);
- break;
- case 'f':
- len = rasprintf(buf, bufsiz, o, "%s", dli->dli_fname);
- break;
- default:
- printone:
- len = rasprintf(buf, bufsiz, o, "%c", *fmt);
- break;
- }
- if (len == -1)
- return -1;
- o += len;
- }
- return o - offs;
-}
-
-static ssize_t
-format_address(symtab_t *st, char **buf, size_t *bufsiz, size_t offs,
- const char *fmt, const void *addr)
-{
- Dl_info dli;
-
- memset(&dli, 0, sizeof(dli));
- (void)dladdr(addr, &dli);
- if (st)
- symtab_find(st, addr, &dli);
-
- if (dli.dli_sname == NULL)
- dli.dli_sname = "???";
- if (dli.dli_fname == NULL)
- dli.dli_fname = "???";
- if (dli.dli_saddr == NULL)
- dli.dli_saddr = (void *)(intptr_t)addr;
-
- return format_string(buf, bufsiz, offs, fmt, &dli, addr);
-}
-
-char **
-backtrace_symbols_fmt(void *const *trace, size_t len, const char *fmt)
-{
-
- static const size_t slen = sizeof(char *) + 64; /* estimate */
- char *ptr;
- symtab_t *st;
- int fd;
-
- if ((fd = open(SELF, O_RDONLY)) != -1)
- st = symtab_create(fd, -1, STT_FUNC);
- else
- st = NULL;
-
- if ((ptr = calloc(len, slen)) == NULL)
- goto out;
-
- size_t psize = len * slen;
- size_t offs = len * sizeof(char *);
-
- /* We store only offsets in the first pass because of realloc */
- for (size_t i = 0; i < len; i++) {
- ssize_t x;
- ((char **)(void *)ptr)[i] = (void *)offs;
- x = format_address(st, &ptr, &psize, offs, fmt, trace[i]);
- if (x == -1) {
- free(ptr);
- ptr = NULL;
- goto out;
- }
- offs += x;
- ptr[offs++] = '\0';
- assert(offs < psize);
- }
-
- /* Change offsets to pointers */
- for (size_t j = 0; j < len; j++)
- ((char **)(void *)ptr)[j] += (intptr_t)ptr;
-
-out:
- symtab_destroy(st);
- if (fd != -1)
- (void)close(fd);
-
- return (void *)ptr;
-}
-
-int
-backtrace_symbols_fd_fmt(void *const *trace, size_t len, int fd,
- const char *fmt)
-{
- char **s = backtrace_symbols_fmt(trace, len, fmt);
- if (s == NULL)
- return -1;
- for (size_t i = 0; i < len; i++)
- if (dprintf(fd, "%s\n", s[i]) < 0)
- break;
- free(s);
- return 0;
-}
-
-static const char fmt[] = "%a <%n%D> at %f";
-
-char **
-backtrace_symbols(void *const *trace, size_t len)
-{
- return backtrace_symbols_fmt(trace, len, fmt);
-}
-
-int
-backtrace_symbols_fd(void *const *trace, size_t len, int fd)
-{
- return backtrace_symbols_fd_fmt(trace, len, fd, fmt);
-}
diff --git a/contrib/libexecinfo/20130822/builtin.c b/contrib/libexecinfo/20130822/builtin.c
deleted file mode 100644
index 3fc8619..0000000
--- a/contrib/libexecinfo/20130822/builtin.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $NetBSD: builtin.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: builtin.c,v 1.1 2012/05/26 22:02:29 christos Exp $");
-
-#include <sys/param.h>
-#include <sys/types.h>
-
-#include "execinfo.h"
-
-#ifdef __MACHINE_STACK_GROWS_UP
-#define BELOW >
-#else
-#define BELOW <
-#endif
-
-#ifdef __lint__
-#define __builtin_frame_address(a) ((void *)a)
-#endif
-
-struct frameinfo {
- struct frameinfo *next;
- void *return_address;
-};
-
-size_t
-backtrace(void **trace, size_t len)
-{
- const struct frameinfo *frame = __builtin_frame_address(0);
- void *stack = &stack;
-
- for (size_t i = 0; i < len; i++) {
- if ((const void *)frame BELOW stack)
- return i;
- trace[i] = frame->return_address;
- frame = frame->next;
- }
-
- return len;
-}
diff --git a/contrib/libexecinfo/20130822/execinfo.h b/contrib/libexecinfo/20130822/execinfo.h
deleted file mode 100644
index 0ea529e..0000000
--- a/contrib/libexecinfo/20130822/execinfo.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* $NetBSD: execinfo.h,v 1.2 2012/06/09 21:22:17 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _EXECINFO_H_
-#define _EXECINFO_H_
-
-#include <stddef.h>
-
-__BEGIN_DECLS
-size_t backtrace(void **, size_t);
-char **backtrace_symbols(void *const *, size_t);
-int backtrace_symbols_fd(void *const *, size_t, int);
-char **backtrace_symbols_fmt(void *const *, size_t, const char *);
-int backtrace_symbols_fd_fmt(void *const *, size_t, int, const char *);
-__END_DECLS
-
-#endif /* _EXECINFO_H_ */
diff --git a/contrib/libexecinfo/20130822/symtab.c b/contrib/libexecinfo/20130822/symtab.c
deleted file mode 100644
index b5da75c..0000000
--- a/contrib/libexecinfo/20130822/symtab.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* $NetBSD: symtab.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: symtab.c,v 1.1 2012/05/26 22:02:29 christos Exp $");
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <err.h>
-#include <dlfcn.h>
-
-#include <libelf.h>
-#include <gelf.h>
-#ifndef ELF_ST_BIND
-#define ELF_ST_BIND(x) ((x) >> 4)
-#endif
-#ifndef ELF_ST_TYPE
-#define ELF_ST_TYPE(x) (((unsigned int)x) & 0xf)
-#endif
-
-
-#include "symtab.h"
-
-struct symbol {
- char *st_name;
- uintptr_t st_value;
- uintptr_t st_info;
-};
-
-struct symtab {
- size_t nsymbols;
- struct symbol *symbols;
-};
-
-static int
-address_compare(const void *a, const void *b)
-{
- const struct symbol *sa = a;
- const struct symbol *sb = b;
- return (int)(intmax_t)(sa->st_value - sb->st_value);
-}
-
-void
-symtab_destroy(symtab_t *s)
-{
- if (s == NULL)
- return;
- for (size_t i = 0; i < s->nsymbols; i++)
- free(s->symbols[i].st_name);
- free(s->symbols);
- free(s);
-}
-
-symtab_t *
-symtab_create(int fd, int bind, int type)
-{
- Elf *elf;
- symtab_t *st;
- Elf_Scn *scn = NULL;
-
- if (elf_version(EV_CURRENT) == EV_NONE) {
- warnx("Elf Library is out of date.");
- return NULL;
- }
-
- elf = elf_begin(fd, ELF_C_READ, NULL);
- if (elf == NULL) {
- warnx("Error opening elf file: %s", elf_errmsg(elf_errno()));
- return NULL;
- }
- st = calloc(1, sizeof(*st));
- if (st == NULL) {
- warnx("Error allocating symbol table");
- elf_end(elf);
- return NULL;
- }
-
- while ((scn = elf_nextscn(elf, scn)) != NULL) {
- GElf_Shdr shdr;
- Elf_Data *edata;
- size_t ns;
- struct symbol *s;
-
- gelf_getshdr(scn, &shdr);
- if(shdr.sh_type != SHT_SYMTAB)
- continue;
-
- edata = elf_getdata(scn, NULL);
- ns = shdr.sh_size / shdr.sh_entsize;
- s = calloc(ns, sizeof(*s));
- if (s == NULL) {
- warn("Cannot allocate %zu symbols", ns);
- goto out;
- }
- st->symbols = s;
-
- for (size_t i = 0; i < ns; i++) {
- GElf_Sym sym;
- gelf_getsym(edata, (int)i, &sym);
-
- if (bind != -1 &&
- (unsigned)bind != ELF_ST_BIND(sym.st_info))
- continue;
-
- if (type != -1 &&
- (unsigned)type != ELF_ST_TYPE(sym.st_info))
- continue;
-
- s->st_value = sym.st_value;
- s->st_info = sym.st_info;
- s->st_name = strdup(
- elf_strptr(elf, shdr.sh_link, sym.st_name));
- if (s->st_name == NULL)
- goto out;
- s++;
- }
- st->nsymbols = s - st->symbols;
- if (st->nsymbols == 0) {
- warnx("No symbols found");
- goto out;
- }
- qsort(st->symbols, st->nsymbols, sizeof(*st->symbols),
- address_compare);
- elf_end(elf);
- return st;
- }
-out:
- symtab_destroy(st);
- elf_end(elf);
- return NULL;
-}
-
-
-int
-symtab_find(const symtab_t *st, const void *p, Dl_info *dli)
-{
- struct symbol *s = st->symbols;
- size_t ns = st->nsymbols;
- size_t hi = ns;
- size_t lo = 0;
- size_t mid = ns / 2;
- uintptr_t dd, sd, me = (uintptr_t)p;
-
- for (;;) {
- if (s[mid].st_value < me)
- lo = mid;
- else if (s[mid].st_value > me)
- hi = mid;
- else
- break;
- if (hi - lo == 1) {
- mid = lo;
- break;
- }
- mid = (hi + lo) / 2;
- }
- dd = me - (uintptr_t)dli->dli_saddr;
- sd = me - s[mid].st_value;
- if (dd > sd) {
- dli->dli_saddr = (void *)s[mid].st_value;
- dli->dli_sname = s[mid].st_name;
- }
- return 1;
-}
diff --git a/contrib/libexecinfo/20130822/symtab.h b/contrib/libexecinfo/20130822/symtab.h
deleted file mode 100644
index d527a3c..0000000
--- a/contrib/libexecinfo/20130822/symtab.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $NetBSD: symtab.h,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _SYMTAB_H_
-#define _SYMTAB_H_
-
-__BEGIN_DECLS
-typedef struct symtab symtab_t;
-
-void symtab_destroy(symtab_t *);
-symtab_t * symtab_create(int, int, int);
-int symtab_find(const symtab_t *, const void *, Dl_info *);
-__END_DECLS
-
-#endif /* _SYMTAB_H_ */
diff --git a/contrib/libexecinfo/20130822/unwind.c b/contrib/libexecinfo/20130822/unwind.c
deleted file mode 100644
index b9b785f..0000000
--- a/contrib/libexecinfo/20130822/unwind.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* $NetBSD: unwind.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <stdio.h>
-
-#include "unwind.h"
-#include "execinfo.h"
-
-struct tracer_context {
- void **arr;
- size_t len;
- size_t n;
-};
-
-static _Unwind_Reason_Code
-tracer(struct _Unwind_Context *ctx, void *arg)
-{
- struct tracer_context *t = arg;
- if (t->n == (size_t)~0) {
- /* Skip backtrace frame */
- t->n = 0;
- return 0;
- }
- if (t->n < t->len)
- t->arr[t->n++] = _Unwind_GetIP(ctx);
- return 0;
-}
-
-size_t
-backtrace(void **arr, size_t len)
-{
- struct tracer_context ctx;
-
- ctx.arr = arr;
- ctx.len = len;
- ctx.n = (size_t)~0;
-
- _Unwind_Backtrace(tracer, &ctx);
- if (ctx.n != (size_t)~0 && ctx.n > 0)
- ctx.arr[--ctx.n] = NULL; /* Skip frame below __start */
-
- return ctx.n;
-}
diff --git a/contrib/libexecinfo/20130822/unwind.h b/contrib/libexecinfo/20130822/unwind.h
deleted file mode 100644
index c9978b3d..0000000
--- a/contrib/libexecinfo/20130822/unwind.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $NetBSD: unwind.h,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _UNWIND_H_
-#define _UNWIND_H_
-
-__BEGIN_DECLS
-struct _Unwind_Context;
-struct _Unwind_Exception;
-typedef int _Unwind_Reason_Code;
-typedef void *_Unwind_Ptr;
-typedef long _Unwind_Word;
-
-typedef _Unwind_Reason_Code
- (*_Unwind_Trace_Fn)(struct _Unwind_Context *, void *);
-#ifdef notyet
-typedef _Unwind_Reason_Code
- (*_Unwind_Stop_Fn)(struct _Unwind_Context *, void *);
-#endif
-
-_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *);
-void _Unwind_DeleteException(struct _Unwind_Exception *);
-void *_Unwind_FindEnclosingFunction(void *);
-#ifdef notyet
-_Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *,
- _Unwind_Stop_fn, void *);
-#endif
-_Unwind_Word _Unwind_GetCFA(struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *);
-_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int);
-_Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetIPInfo(struct _Unwind_Context *, int *);
-void *_Unwind_GetLanguageSpecificData(
- struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
-_Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception *);
-void _Unwind_Resume(struct _Unwind_Exception *);
-_Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct _Unwind_Exception *);
-void _Unwind_SetGR(struct _Unwind_Context *, int,
- _Unwind_Ptr);
-void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr);
-__END_DECLS
-#endif /* _UNWIND_H_ */
diff --git a/contrib/libexecinfo/20130822/unwind_arm_ehabi_stub.c b/contrib/libexecinfo/20130822/unwind_arm_ehabi_stub.c
deleted file mode 100644
index 6fe9716..0000000
--- a/contrib/libexecinfo/20130822/unwind_arm_ehabi_stub.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*-
- * Copyright (c) 2013 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include "unwind.h"
-
-void _Unwind_VRS_Get(struct _Unwind_Context *, int, _Unwind_Word, int, void *);
-void _Unwind_VRS_Set(struct _Unwind_Context *, int, _Unwind_Word, int, void *);
-
-_Unwind_Word
-_Unwind_GetGR(struct _Unwind_Context *context, int regno)
-{
- _Unwind_Word val;
- _Unwind_VRS_Get(context, 0 /*_UVRSC_CORE*/, regno, 0 /*_UVRSD_UINT32*/,
- &val);
-
- return val;
-}
-
-_Unwind_Ptr
-_Unwind_GetIP(struct _Unwind_Context *context)
-{
- return (_Unwind_Ptr)(_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1);
-}
-
-_Unwind_Ptr
-_Unwind_GetIPInfo(struct _Unwind_Context *context, int *p)
-{
- *p = 0;
- return _Unwind_GetIP(context);
-}
-
-void
-_Unwind_SetGR(struct _Unwind_Context *context, int reg, _Unwind_Ptr val)
-{
- _Unwind_VRS_Set(context, 0 /*_UVRSC_CORE*/, reg, 0 /*_UVRSD_UINT32*/,
- &val);
-}
diff --git a/contrib/libexecinfo/dist/backtrace.3 b/contrib/libexecinfo/dist/backtrace.3
deleted file mode 100644
index 781dc6e..0000000
--- a/contrib/libexecinfo/dist/backtrace.3
+++ /dev/null
@@ -1,159 +0,0 @@
-.\" $NetBSD: backtrace.3,v 1.4 2012/06/10 00:24:36 christos Exp $
-.\"
-.\" Copyright (c) 2012 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Christos Zoulas
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd May 26, 2012
-.Dt BACKTRACE 3
-.Os
-.Sh NAME
-.Nm backtrace
-.Nd fill in the backtrace of the currently executing thread
-.Sh LIBRARY
-.Lb libexecinfo
-.Sh SYNOPSIS
-.In execinfo.h
-.Ft size_t
-.Fn backtrace "void **addrlist" "size_t len"
-.Ft "char **"
-.Fn backtrace_symbols "void * const *addrlist" "size_t len"
-.Ft int
-.Fn backtrace_symbols_fd "void * const *addrlist" "size_t len" "int fd"
-.Ft "char **"
-.Fn backtrace_symbols_fmt "void * const *addrlist" "size_t len" "const char *fmt"
-.Ft int
-.Fn backtrace_symbols_fmt_fd "void * const *addrlist" "size_t len" "const char *fmt" "int fd"
-.Sh DESCRIPTION
-The
-.Fn backtrace
-function places into the array pointed by
-.Fa addrlist
-the array of the values of the program counter for each frame called up to
-.Fa len
-frames.
-The number of frames found (which can be fewer than
-.Fa len )
-is returned.
-.Pp
-The
-.Fn backtrace_symbols_fmt
-function takes an array of previously filled addresses from
-.Fn backtrace
-in
-.Fa addrlist
-of
-.Fa len
-elements, and uses
-.Fa fmt
-to format them.
-The formatting characters available are:
-.Bl -tag -width a -offset indent
-.It Dv a
-The numeric address of each element as would be printed using %p.
-.It Dv n
-The name of the nearest function symbol (smaller than the address element)
-as determined by
-.Xr dladdr 3
-if the symbol was dynamic, or looked up in the executable if static and
-the /proc filesystem is available to determine the executable path.
-.It Dv d
-The difference of the symbol address and the address element printed
-using 0x%tx.
-.It Dv D
-The difference of the symbol addresss and the address element printed using
-+0x%tx if non-zero, or nothing if zero.
-.It Dv f
-The filename of the symbol as determined by
-.Xr dladdr 3 .
-.El
-.Pp
-The array of formatted strings is returned as a contiguous memory address which
-can be freed by a single
-.Xr free 3 .
-.Pp
-The
-.Fn backtrace_symbols
-function is equivalent of calling
-.Fn backtrace_symbols_fmt
-with a format argument of
-.Dv "%a <%n%D> at %f"
-.Pp
-The
-.Fn backtrace_symbols_fd
-and
-.Fn backtrace_symbols_fmt_fd
-are similar to the non _fd named functions, only instead of returning
-an array or strings, they print a new-line separated array of strings in
-fd, and return
-.Dv 0
-on success and
-.Dv \-1
-on failure.
-.Sh RETURN VALUES
-The
-.Fn backtrace
-function returns the number of elements tht were filled in the backtrace.
-The
-.Fn backtrace_symbols
-and
-.Fn backtrace_symbols_fmt
-return a string array on success, and
-.Dv NULL
-on failure, setting
-.Va errno .
-Diagnostic output may also be produced by the ELF symbol lookup functions.
-.Sh SEE ALSO
-.Xr dladdr 3 ,
-.Xr elf 3
-.Sh HISTORY
-The
-.Fn backtrace
-library of functions first appeared in
-.Nx 7.0 .
-.Sh BUGS
-.Bl -enum
-.It
-Errors should not be printed but communicated to the caller differently.
-.It
-Because these functions use
-.Xr elf 3
-this is a separate library instead of being part of libc/libutil
-so that no library dependencies are introduced.
-.It
-The Linux versions of the functions (there are no _fmt variants) use
-.Ft int
-instead of
-.Ft size_t
-arguments.
-.It
-Since
-.Xr dladdr 3
-only deals with dynamic symbols, we need to find the symbols from the main
-portion of the program.
-For that we need to locate the executable, and we use procfs for
-finding it, which is not portable.
-.El
diff --git a/contrib/libexecinfo/dist/backtrace.c b/contrib/libexecinfo/dist/backtrace.c
deleted file mode 100644
index 02ad148..0000000
--- a/contrib/libexecinfo/dist/backtrace.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* $NetBSD: backtrace.c,v 1.2 2012/07/09 03:11:59 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: backtrace.c,v 1.2 2012/07/09 03:11:59 christos Exp $");
-
-#include <sys/param.h>
-#include <assert.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <dlfcn.h>
-#include <elf.h>
-
-#include "execinfo.h"
-#include "symtab.h"
-
-#ifdef __linux__
-#define SELF "/proc/self/exe"
-#else
-#define SELF "/proc/curproc/file"
-#endif
-
-static int __printflike(4, 5)
-rasprintf(char **buf, size_t *bufsiz, size_t offs, const char *fmt, ...)
-{
- for (;;) {
- size_t nbufsiz;
- char *nbuf;
-
- if (*buf && offs < *bufsiz) {
- va_list ap;
- int len;
-
- va_start(ap, fmt);
- len = vsnprintf(*buf + offs, *bufsiz - offs, fmt, ap);
- va_end(ap);
-
- if (len < 0 || (size_t)len < *bufsiz - offs)
- return len;
- nbufsiz = MAX(*bufsiz + 512, (size_t)len + 1);
- } else
- nbufsiz = MAX(offs, *bufsiz) + 512;
-
- nbuf = realloc(*buf, nbufsiz);
- if (nbuf == NULL)
- return -1;
- *buf = nbuf;
- *bufsiz = nbufsiz;
- }
-}
-
-/*
- * format specifiers:
- * %a = address
- * %n = symbol_name
- * %d = symbol_address - address
- * %D = if symbol_address == address "" else +%d
- * %f = filename
- */
-static ssize_t
-format_string(char **buf, size_t *bufsiz, size_t offs, const char *fmt,
- Dl_info *dli, const void *addr)
-{
- ptrdiff_t diff = (const char *)addr - (const char *)dli->dli_saddr;
- size_t o = offs;
- int len;
-
- for (; *fmt; fmt++) {
- if (*fmt != '%')
- goto printone;
- switch (*++fmt) {
- case 'a':
- len = rasprintf(buf, bufsiz, o, "%p", addr);
- break;
- case 'n':
- len = rasprintf(buf, bufsiz, o, "%s", dli->dli_sname);
- break;
- case 'D':
- if (diff)
- len = rasprintf(buf, bufsiz, o, "+0x%tx", diff);
- else
- len = 0;
- break;
- case 'd':
- len = rasprintf(buf, bufsiz, o, "0x%tx", diff);
- break;
- case 'f':
- len = rasprintf(buf, bufsiz, o, "%s", dli->dli_fname);
- break;
- default:
- printone:
- len = rasprintf(buf, bufsiz, o, "%c", *fmt);
- break;
- }
- if (len == -1)
- return -1;
- o += len;
- }
- return o - offs;
-}
-
-static ssize_t
-format_address(symtab_t *st, char **buf, size_t *bufsiz, size_t offs,
- const char *fmt, const void *addr)
-{
- Dl_info dli;
-
- memset(&dli, 0, sizeof(dli));
- (void)dladdr(addr, &dli);
- if (st)
- symtab_find(st, addr, &dli);
-
- if (dli.dli_sname == NULL)
- dli.dli_sname = "???";
- if (dli.dli_fname == NULL)
- dli.dli_fname = "???";
- if (dli.dli_saddr == NULL)
- dli.dli_saddr = (void *)(intptr_t)addr;
-
- return format_string(buf, bufsiz, offs, fmt, &dli, addr);
-}
-
-char **
-backtrace_symbols_fmt(void *const *trace, size_t len, const char *fmt)
-{
-
- static const size_t slen = sizeof(char *) + 64; /* estimate */
- char *ptr;
- symtab_t *st;
- int fd;
-
- if ((fd = open(SELF, O_RDONLY)) != -1)
- st = symtab_create(fd, -1, STT_FUNC);
- else
- st = NULL;
-
- if ((ptr = calloc(len, slen)) == NULL)
- goto out;
-
- size_t psize = len * slen;
- size_t offs = len * sizeof(char *);
-
- /* We store only offsets in the first pass because of realloc */
- for (size_t i = 0; i < len; i++) {
- ssize_t x;
- ((char **)(void *)ptr)[i] = (void *)offs;
- x = format_address(st, &ptr, &psize, offs, fmt, trace[i]);
- if (x == -1) {
- free(ptr);
- ptr = NULL;
- goto out;
- }
- offs += x;
- ptr[offs++] = '\0';
- assert(offs < psize);
- }
-
- /* Change offsets to pointers */
- for (size_t j = 0; j < len; j++)
- ((char **)(void *)ptr)[j] += (intptr_t)ptr;
-
-out:
- symtab_destroy(st);
- if (fd != -1)
- (void)close(fd);
-
- return (void *)ptr;
-}
-
-int
-backtrace_symbols_fd_fmt(void *const *trace, size_t len, int fd,
- const char *fmt)
-{
- char **s = backtrace_symbols_fmt(trace, len, fmt);
- if (s == NULL)
- return -1;
- for (size_t i = 0; i < len; i++)
- if (dprintf(fd, "%s\n", s[i]) < 0)
- break;
- free(s);
- return 0;
-}
-
-static const char fmt[] = "%a <%n%D> at %f";
-
-char **
-backtrace_symbols(void *const *trace, size_t len)
-{
- return backtrace_symbols_fmt(trace, len, fmt);
-}
-
-int
-backtrace_symbols_fd(void *const *trace, size_t len, int fd)
-{
- return backtrace_symbols_fd_fmt(trace, len, fd, fmt);
-}
diff --git a/contrib/libexecinfo/dist/builtin.c b/contrib/libexecinfo/dist/builtin.c
deleted file mode 100644
index 3fc8619..0000000
--- a/contrib/libexecinfo/dist/builtin.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $NetBSD: builtin.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: builtin.c,v 1.1 2012/05/26 22:02:29 christos Exp $");
-
-#include <sys/param.h>
-#include <sys/types.h>
-
-#include "execinfo.h"
-
-#ifdef __MACHINE_STACK_GROWS_UP
-#define BELOW >
-#else
-#define BELOW <
-#endif
-
-#ifdef __lint__
-#define __builtin_frame_address(a) ((void *)a)
-#endif
-
-struct frameinfo {
- struct frameinfo *next;
- void *return_address;
-};
-
-size_t
-backtrace(void **trace, size_t len)
-{
- const struct frameinfo *frame = __builtin_frame_address(0);
- void *stack = &stack;
-
- for (size_t i = 0; i < len; i++) {
- if ((const void *)frame BELOW stack)
- return i;
- trace[i] = frame->return_address;
- frame = frame->next;
- }
-
- return len;
-}
diff --git a/contrib/libexecinfo/dist/execinfo.h b/contrib/libexecinfo/dist/execinfo.h
deleted file mode 100644
index 0ea529e..0000000
--- a/contrib/libexecinfo/dist/execinfo.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* $NetBSD: execinfo.h,v 1.2 2012/06/09 21:22:17 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _EXECINFO_H_
-#define _EXECINFO_H_
-
-#include <stddef.h>
-
-__BEGIN_DECLS
-size_t backtrace(void **, size_t);
-char **backtrace_symbols(void *const *, size_t);
-int backtrace_symbols_fd(void *const *, size_t, int);
-char **backtrace_symbols_fmt(void *const *, size_t, const char *);
-int backtrace_symbols_fd_fmt(void *const *, size_t, int, const char *);
-__END_DECLS
-
-#endif /* _EXECINFO_H_ */
diff --git a/contrib/libexecinfo/dist/symtab.c b/contrib/libexecinfo/dist/symtab.c
deleted file mode 100644
index b5da75c..0000000
--- a/contrib/libexecinfo/dist/symtab.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* $NetBSD: symtab.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: symtab.c,v 1.1 2012/05/26 22:02:29 christos Exp $");
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <err.h>
-#include <dlfcn.h>
-
-#include <libelf.h>
-#include <gelf.h>
-#ifndef ELF_ST_BIND
-#define ELF_ST_BIND(x) ((x) >> 4)
-#endif
-#ifndef ELF_ST_TYPE
-#define ELF_ST_TYPE(x) (((unsigned int)x) & 0xf)
-#endif
-
-
-#include "symtab.h"
-
-struct symbol {
- char *st_name;
- uintptr_t st_value;
- uintptr_t st_info;
-};
-
-struct symtab {
- size_t nsymbols;
- struct symbol *symbols;
-};
-
-static int
-address_compare(const void *a, const void *b)
-{
- const struct symbol *sa = a;
- const struct symbol *sb = b;
- return (int)(intmax_t)(sa->st_value - sb->st_value);
-}
-
-void
-symtab_destroy(symtab_t *s)
-{
- if (s == NULL)
- return;
- for (size_t i = 0; i < s->nsymbols; i++)
- free(s->symbols[i].st_name);
- free(s->symbols);
- free(s);
-}
-
-symtab_t *
-symtab_create(int fd, int bind, int type)
-{
- Elf *elf;
- symtab_t *st;
- Elf_Scn *scn = NULL;
-
- if (elf_version(EV_CURRENT) == EV_NONE) {
- warnx("Elf Library is out of date.");
- return NULL;
- }
-
- elf = elf_begin(fd, ELF_C_READ, NULL);
- if (elf == NULL) {
- warnx("Error opening elf file: %s", elf_errmsg(elf_errno()));
- return NULL;
- }
- st = calloc(1, sizeof(*st));
- if (st == NULL) {
- warnx("Error allocating symbol table");
- elf_end(elf);
- return NULL;
- }
-
- while ((scn = elf_nextscn(elf, scn)) != NULL) {
- GElf_Shdr shdr;
- Elf_Data *edata;
- size_t ns;
- struct symbol *s;
-
- gelf_getshdr(scn, &shdr);
- if(shdr.sh_type != SHT_SYMTAB)
- continue;
-
- edata = elf_getdata(scn, NULL);
- ns = shdr.sh_size / shdr.sh_entsize;
- s = calloc(ns, sizeof(*s));
- if (s == NULL) {
- warn("Cannot allocate %zu symbols", ns);
- goto out;
- }
- st->symbols = s;
-
- for (size_t i = 0; i < ns; i++) {
- GElf_Sym sym;
- gelf_getsym(edata, (int)i, &sym);
-
- if (bind != -1 &&
- (unsigned)bind != ELF_ST_BIND(sym.st_info))
- continue;
-
- if (type != -1 &&
- (unsigned)type != ELF_ST_TYPE(sym.st_info))
- continue;
-
- s->st_value = sym.st_value;
- s->st_info = sym.st_info;
- s->st_name = strdup(
- elf_strptr(elf, shdr.sh_link, sym.st_name));
- if (s->st_name == NULL)
- goto out;
- s++;
- }
- st->nsymbols = s - st->symbols;
- if (st->nsymbols == 0) {
- warnx("No symbols found");
- goto out;
- }
- qsort(st->symbols, st->nsymbols, sizeof(*st->symbols),
- address_compare);
- elf_end(elf);
- return st;
- }
-out:
- symtab_destroy(st);
- elf_end(elf);
- return NULL;
-}
-
-
-int
-symtab_find(const symtab_t *st, const void *p, Dl_info *dli)
-{
- struct symbol *s = st->symbols;
- size_t ns = st->nsymbols;
- size_t hi = ns;
- size_t lo = 0;
- size_t mid = ns / 2;
- uintptr_t dd, sd, me = (uintptr_t)p;
-
- for (;;) {
- if (s[mid].st_value < me)
- lo = mid;
- else if (s[mid].st_value > me)
- hi = mid;
- else
- break;
- if (hi - lo == 1) {
- mid = lo;
- break;
- }
- mid = (hi + lo) / 2;
- }
- dd = me - (uintptr_t)dli->dli_saddr;
- sd = me - s[mid].st_value;
- if (dd > sd) {
- dli->dli_saddr = (void *)s[mid].st_value;
- dli->dli_sname = s[mid].st_name;
- }
- return 1;
-}
diff --git a/contrib/libexecinfo/dist/symtab.h b/contrib/libexecinfo/dist/symtab.h
deleted file mode 100644
index d527a3c..0000000
--- a/contrib/libexecinfo/dist/symtab.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $NetBSD: symtab.h,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _SYMTAB_H_
-#define _SYMTAB_H_
-
-__BEGIN_DECLS
-typedef struct symtab symtab_t;
-
-void symtab_destroy(symtab_t *);
-symtab_t * symtab_create(int, int, int);
-int symtab_find(const symtab_t *, const void *, Dl_info *);
-__END_DECLS
-
-#endif /* _SYMTAB_H_ */
diff --git a/contrib/libexecinfo/dist/unwind.c b/contrib/libexecinfo/dist/unwind.c
deleted file mode 100644
index b9b785f..0000000
--- a/contrib/libexecinfo/dist/unwind.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* $NetBSD: unwind.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Christos Zoulas.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <stdio.h>
-
-#include "unwind.h"
-#include "execinfo.h"
-
-struct tracer_context {
- void **arr;
- size_t len;
- size_t n;
-};
-
-static _Unwind_Reason_Code
-tracer(struct _Unwind_Context *ctx, void *arg)
-{
- struct tracer_context *t = arg;
- if (t->n == (size_t)~0) {
- /* Skip backtrace frame */
- t->n = 0;
- return 0;
- }
- if (t->n < t->len)
- t->arr[t->n++] = _Unwind_GetIP(ctx);
- return 0;
-}
-
-size_t
-backtrace(void **arr, size_t len)
-{
- struct tracer_context ctx;
-
- ctx.arr = arr;
- ctx.len = len;
- ctx.n = (size_t)~0;
-
- _Unwind_Backtrace(tracer, &ctx);
- if (ctx.n != (size_t)~0 && ctx.n > 0)
- ctx.arr[--ctx.n] = NULL; /* Skip frame below __start */
-
- return ctx.n;
-}
diff --git a/contrib/libexecinfo/dist/unwind.h b/contrib/libexecinfo/dist/unwind.h
deleted file mode 100644
index c9978b3d..0000000
--- a/contrib/libexecinfo/dist/unwind.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $NetBSD: unwind.h,v 1.1 2012/05/26 22:02:29 christos Exp $ */
-
-/*-
- * Copyright (c) 2012 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _UNWIND_H_
-#define _UNWIND_H_
-
-__BEGIN_DECLS
-struct _Unwind_Context;
-struct _Unwind_Exception;
-typedef int _Unwind_Reason_Code;
-typedef void *_Unwind_Ptr;
-typedef long _Unwind_Word;
-
-typedef _Unwind_Reason_Code
- (*_Unwind_Trace_Fn)(struct _Unwind_Context *, void *);
-#ifdef notyet
-typedef _Unwind_Reason_Code
- (*_Unwind_Stop_Fn)(struct _Unwind_Context *, void *);
-#endif
-
-_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *);
-void _Unwind_DeleteException(struct _Unwind_Exception *);
-void *_Unwind_FindEnclosingFunction(void *);
-#ifdef notyet
-_Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *,
- _Unwind_Stop_fn, void *);
-#endif
-_Unwind_Word _Unwind_GetCFA(struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *);
-_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int);
-_Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetIPInfo(struct _Unwind_Context *, int *);
-void *_Unwind_GetLanguageSpecificData(
- struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *);
-_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
-_Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception *);
-void _Unwind_Resume(struct _Unwind_Exception *);
-_Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct _Unwind_Exception *);
-void _Unwind_SetGR(struct _Unwind_Context *, int,
- _Unwind_Ptr);
-void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Ptr);
-__END_DECLS
-#endif /* _UNWIND_H_ */
diff --git a/contrib/libexecinfo/dist/unwind_arm_ehabi_stub.c b/contrib/libexecinfo/dist/unwind_arm_ehabi_stub.c
deleted file mode 100644
index 6fe9716..0000000
--- a/contrib/libexecinfo/dist/unwind_arm_ehabi_stub.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*-
- * Copyright (c) 2013 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include "unwind.h"
-
-void _Unwind_VRS_Get(struct _Unwind_Context *, int, _Unwind_Word, int, void *);
-void _Unwind_VRS_Set(struct _Unwind_Context *, int, _Unwind_Word, int, void *);
-
-_Unwind_Word
-_Unwind_GetGR(struct _Unwind_Context *context, int regno)
-{
- _Unwind_Word val;
- _Unwind_VRS_Get(context, 0 /*_UVRSC_CORE*/, regno, 0 /*_UVRSD_UINT32*/,
- &val);
-
- return val;
-}
-
-_Unwind_Ptr
-_Unwind_GetIP(struct _Unwind_Context *context)
-{
- return (_Unwind_Ptr)(_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1);
-}
-
-_Unwind_Ptr
-_Unwind_GetIPInfo(struct _Unwind_Context *context, int *p)
-{
- *p = 0;
- return _Unwind_GetIP(context);
-}
-
-void
-_Unwind_SetGR(struct _Unwind_Context *context, int reg, _Unwind_Ptr val)
-{
- _Unwind_VRS_Set(context, 0 /*_UVRSC_CORE*/, reg, 0 /*_UVRSD_UINT32*/,
- &val);
-}
OpenPOWER on IntegriCloud