Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Oct 2015 01:29:50 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r289101 - in user/ngie/more-tests2: . contrib/elftoolchain/addr2line contrib/elftoolchain/ar contrib/elftoolchain/brandelf contrib/elftoolchain/common contrib/elftoolchain/elfcopy contr...
Message-ID:  <201510100129.t9A1ToVO084170@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Sat Oct 10 01:29:50 2015
New Revision: 289101
URL: https://svnweb.freebsd.org/changeset/base/289101

Log:
  MFhead @ r289100

Added:
  user/ngie/more-tests2/contrib/llvm/patches/patch-07-undo-llvm-r240144-iostream-sigbus.diff
     - copied unchanged from r289100, head/contrib/llvm/patches/patch-07-undo-llvm-r240144-iostream-sigbus.diff
  user/ngie/more-tests2/libexec/dma/Makefile.inc
     - copied unchanged from r289100, head/libexec/dma/Makefile.inc
  user/ngie/more-tests2/libexec/dma/dma-mbox-create/
     - copied from r289100, head/libexec/dma/dma-mbox-create/
  user/ngie/more-tests2/libexec/dma/dmagent/
     - copied from r289100, head/libexec/dma/dmagent/
  user/ngie/more-tests2/share/mk/bsd.confs.mk
     - copied unchanged from r289100, head/share/mk/bsd.confs.mk
  user/ngie/more-tests2/sys/dev/xen/console/xen_console.c
     - copied unchanged from r289100, head/sys/dev/xen/console/xen_console.c
  user/ngie/more-tests2/usr.bin/kdump/utrace.c
     - copied unchanged from r289100, head/usr.bin/kdump/utrace.c
  user/ngie/more-tests2/usr.sbin/ppp/ppp.conf
     - copied unchanged from r289100, head/usr.sbin/ppp/ppp.conf
Replaced:
  user/ngie/more-tests2/libexec/dma/Makefile
     - copied unchanged from r289100, head/libexec/dma/Makefile
Deleted:
  user/ngie/more-tests2/etc/dma/
  user/ngie/more-tests2/etc/ppp/
  user/ngie/more-tests2/libexec/dma-mbox-create/
  user/ngie/more-tests2/share/examples/dma/
  user/ngie/more-tests2/sys/dev/xen/console/console.c
  user/ngie/more-tests2/sys/dev/xen/console/xencons_ring.c
  user/ngie/more-tests2/sys/dev/xen/console/xencons_ring.h
Modified:
  user/ngie/more-tests2/Makefile
  user/ngie/more-tests2/Makefile.inc1
  user/ngie/more-tests2/contrib/elftoolchain/addr2line/addr2line.c
  user/ngie/more-tests2/contrib/elftoolchain/ar/ar.1
  user/ngie/more-tests2/contrib/elftoolchain/ar/ar.c
  user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.1
  user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.c
  user/ngie/more-tests2/contrib/elftoolchain/common/_elftc.h
  user/ngie/more-tests2/contrib/elftoolchain/common/elfdefinitions.h
  user/ngie/more-tests2/contrib/elftoolchain/elfcopy/sections.c
  user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.1
  user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.c
  user/ngie/more-tests2/contrib/elftoolchain/libdwarf/dwarf_sections.c
  user/ngie/more-tests2/contrib/elftoolchain/readelf/readelf.c
  user/ngie/more-tests2/contrib/elftoolchain/size/size.c
  user/ngie/more-tests2/contrib/libc++/include/__hash_table
  user/ngie/more-tests2/contrib/libc++/include/__std_stream
  user/ngie/more-tests2/contrib/libc++/include/functional
  user/ngie/more-tests2/contrib/libc++/include/memory
  user/ngie/more-tests2/contrib/libc++/include/string
  user/ngie/more-tests2/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  user/ngie/more-tests2/contrib/tzcode/stdtime/difftime.c
  user/ngie/more-tests2/contrib/tzcode/stdtime/localtime.c
  user/ngie/more-tests2/contrib/tzcode/stdtime/private.h
  user/ngie/more-tests2/contrib/unbound/Makefile.in
  user/ngie/more-tests2/contrib/unbound/acx_nlnetlabs.m4
  user/ngie/more-tests2/contrib/unbound/config.h
  user/ngie/more-tests2/contrib/unbound/config.h.in
  user/ngie/more-tests2/contrib/unbound/configure
  user/ngie/more-tests2/contrib/unbound/configure.ac
  user/ngie/more-tests2/contrib/unbound/daemon/daemon.c
  user/ngie/more-tests2/contrib/unbound/daemon/remote.c
  user/ngie/more-tests2/contrib/unbound/doc/Changelog
  user/ngie/more-tests2/contrib/unbound/doc/README
  user/ngie/more-tests2/contrib/unbound/doc/example.conf
  user/ngie/more-tests2/contrib/unbound/doc/example.conf.in
  user/ngie/more-tests2/contrib/unbound/doc/libunbound.3
  user/ngie/more-tests2/contrib/unbound/doc/libunbound.3.in
  user/ngie/more-tests2/contrib/unbound/doc/unbound-anchor.8
  user/ngie/more-tests2/contrib/unbound/doc/unbound-anchor.8.in
  user/ngie/more-tests2/contrib/unbound/doc/unbound-checkconf.8
  user/ngie/more-tests2/contrib/unbound/doc/unbound-checkconf.8.in
  user/ngie/more-tests2/contrib/unbound/doc/unbound-control.8
  user/ngie/more-tests2/contrib/unbound/doc/unbound-control.8.in
  user/ngie/more-tests2/contrib/unbound/doc/unbound-host.1
  user/ngie/more-tests2/contrib/unbound/doc/unbound-host.1.in
  user/ngie/more-tests2/contrib/unbound/doc/unbound.8
  user/ngie/more-tests2/contrib/unbound/doc/unbound.8.in
  user/ngie/more-tests2/contrib/unbound/doc/unbound.conf.5
  user/ngie/more-tests2/contrib/unbound/doc/unbound.conf.5.in
  user/ngie/more-tests2/contrib/unbound/iterator/iter_hints.c
  user/ngie/more-tests2/contrib/unbound/iterator/iterator.h
  user/ngie/more-tests2/contrib/unbound/libunbound/libunbound.c
  user/ngie/more-tests2/contrib/unbound/sldns/rrdef.h
  user/ngie/more-tests2/contrib/unbound/smallapp/unbound-anchor.c
  user/ngie/more-tests2/contrib/unbound/smallapp/unbound-control.c
  user/ngie/more-tests2/contrib/unbound/util/config_file.c
  user/ngie/more-tests2/contrib/unbound/util/config_file.h
  user/ngie/more-tests2/contrib/unbound/util/configlexer.lex
  user/ngie/more-tests2/contrib/unbound/util/configparser.y
  user/ngie/more-tests2/contrib/unbound/util/data/msgencode.c
  user/ngie/more-tests2/contrib/unbound/util/iana_ports.inc
  user/ngie/more-tests2/contrib/unbound/util/net_help.c
  user/ngie/more-tests2/contrib/unbound/validator/autotrust.c
  user/ngie/more-tests2/contrib/unbound/validator/val_sigcrypt.c
  user/ngie/more-tests2/contrib/unbound/validator/validator.c
  user/ngie/more-tests2/etc/Makefile
  user/ngie/more-tests2/etc/periodic/daily/480.status-ntpd
  user/ngie/more-tests2/gnu/usr.bin/binutils/ld/Makefile.depend.host
  user/ngie/more-tests2/lib/clang/libclangbasic/Makefile
  user/ngie/more-tests2/lib/libc/rpc/getpublickey.c
  user/ngie/more-tests2/lib/libc/rpc/key_call.c
  user/ngie/more-tests2/lib/libc/sys/ptrace.2
  user/ngie/more-tests2/lib/libc/sys/utrace.2
  user/ngie/more-tests2/lib/libstand/open.c
  user/ngie/more-tests2/lib/libxo/Makefile
  user/ngie/more-tests2/libexec/Makefile
  user/ngie/more-tests2/libexec/rtld-elf/powerpc64/reloc.c
  user/ngie/more-tests2/release/doc/en_US.ISO8859-1/relnotes/article.xml
  user/ngie/more-tests2/release/scripts/list-new-changesets.py
  user/ngie/more-tests2/sbin/rtsol/Makefile
  user/ngie/more-tests2/sbin/sysctl/sysctl.c
  user/ngie/more-tests2/share/examples/Makefile
  user/ngie/more-tests2/share/examples/bhyve/vmrun.sh
  user/ngie/more-tests2/share/man/man5/rc.conf.5
  user/ngie/more-tests2/share/mk/bsd.README
  user/ngie/more-tests2/share/mk/bsd.incs.mk
  user/ngie/more-tests2/share/mk/bsd.lib.mk
  user/ngie/more-tests2/share/mk/bsd.man.mk
  user/ngie/more-tests2/share/mk/bsd.nls.mk
  user/ngie/more-tests2/share/mk/bsd.own.mk
  user/ngie/more-tests2/share/mk/bsd.prog.mk
  user/ngie/more-tests2/share/mk/bsd.progs.mk
  user/ngie/more-tests2/share/mk/bsd.subdir.mk
  user/ngie/more-tests2/share/mk/bsd.sys.mk
  user/ngie/more-tests2/share/mk/local.autodep.mk
  user/ngie/more-tests2/share/mk/local.init.mk
  user/ngie/more-tests2/share/mk/meta.stage.mk
  user/ngie/more-tests2/share/timedef/zh_CN.GB18030.src   (contents, props changed)
  user/ngie/more-tests2/share/timedef/zh_CN.GB2312.src   (contents, props changed)
  user/ngie/more-tests2/share/timedef/zh_CN.UTF-8.src   (contents, props changed)
  user/ngie/more-tests2/share/timedef/zh_CN.eucCN.src   (contents, props changed)
  user/ngie/more-tests2/share/timedef/zh_TW.Big5.src   (contents, props changed)
  user/ngie/more-tests2/share/timedef/zh_TW.UTF-8.src   (contents, props changed)
  user/ngie/more-tests2/sys/amd64/include/xen/hypercall.h
  user/ngie/more-tests2/sys/amd64/linux/linux_sysvec.c
  user/ngie/more-tests2/sys/arm/arm/vfp.c
  user/ngie/more-tests2/sys/arm/arm/vm_machdep.c
  user/ngie/more-tests2/sys/arm/freescale/imx/imx_i2c.c
  user/ngie/more-tests2/sys/arm/freescale/vybrid/vf_i2c.c
  user/ngie/more-tests2/sys/arm/include/md_var.h
  user/ngie/more-tests2/sys/arm/samsung/exynos/exynos5_i2c.c
  user/ngie/more-tests2/sys/arm/ti/files.ti
  user/ngie/more-tests2/sys/arm64/arm64/elf_machdep.c
  user/ngie/more-tests2/sys/arm64/conf/GENERIC
  user/ngie/more-tests2/sys/boot/i386/gptboot/gptldr.S
  user/ngie/more-tests2/sys/cam/ctl/ctl_backend_block.c
  user/ngie/more-tests2/sys/compat/cloudabi/cloudabi_syscalldefs.h
  user/ngie/more-tests2/sys/compat/linux/linux_fork.c
  user/ngie/more-tests2/sys/conf/Makefile.arm64
  user/ngie/more-tests2/sys/conf/files
  user/ngie/more-tests2/sys/conf/files.arm
  user/ngie/more-tests2/sys/conf/kern.mk
  user/ngie/more-tests2/sys/conf/kern.post.mk
  user/ngie/more-tests2/sys/conf/kmod.mk
  user/ngie/more-tests2/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c
  user/ngie/more-tests2/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  user/ngie/more-tests2/sys/dev/iicbus/icee.c
  user/ngie/more-tests2/sys/dev/iicbus/iicoc.c
  user/ngie/more-tests2/sys/dev/iicbus/iiconf.c
  user/ngie/more-tests2/sys/dev/iicbus/iiconf.h
  user/ngie/more-tests2/sys/dev/otus/if_otusreg.h
  user/ngie/more-tests2/sys/dev/pcf/pcf.c
  user/ngie/more-tests2/sys/dev/sym/sym_hipd.c
  user/ngie/more-tests2/sys/dev/usb/controller/xhci_pci.c
  user/ngie/more-tests2/sys/dev/usb/usbdevs
  user/ngie/more-tests2/sys/dev/usb/wlan/if_run.c
  user/ngie/more-tests2/sys/dev/usb/wlan/if_urtwn.c
  user/ngie/more-tests2/sys/dev/wpi/if_wpi.c
  user/ngie/more-tests2/sys/dev/wpi/if_wpivar.h
  user/ngie/more-tests2/sys/i386/include/xen/hypercall.h
  user/ngie/more-tests2/sys/i386/linux/linux_sysvec.c
  user/ngie/more-tests2/sys/kern/kern_exit.c
  user/ngie/more-tests2/sys/kern/kern_fork.c
  user/ngie/more-tests2/sys/kern/uipc_mbuf.c
  user/ngie/more-tests2/sys/kern/vfs_mountroot.c
  user/ngie/more-tests2/sys/kern/vfs_vnops.c
  user/ngie/more-tests2/sys/modules/Makefile
  user/ngie/more-tests2/sys/net/if_lagg.c
  user/ngie/more-tests2/sys/netinet/if_ether.c
  user/ngie/more-tests2/sys/powerpc/mpc85xx/i2c.c
  user/ngie/more-tests2/sys/sys/elf_common.h
  user/ngie/more-tests2/sys/sys/kernel.h
  user/ngie/more-tests2/sys/sys/pmc.h
  user/ngie/more-tests2/sys/sys/systm.h
  user/ngie/more-tests2/sys/ufs/ffs/ffs_softdep.c
  user/ngie/more-tests2/sys/vm/vm_glue.c
  user/ngie/more-tests2/sys/xen/hypervisor.h
  user/ngie/more-tests2/tests/sys/kern/ptrace_test.c
  user/ngie/more-tests2/usr.bin/fortune/strfile/strfile.c
  user/ngie/more-tests2/usr.bin/kdump/Makefile
  user/ngie/more-tests2/usr.bin/kdump/kdump.c
  user/ngie/more-tests2/usr.bin/truss/Makefile
  user/ngie/more-tests2/usr.bin/truss/Makefile.depend.amd64
  user/ngie/more-tests2/usr.bin/truss/amd64-cloudabi64.c
  user/ngie/more-tests2/usr.bin/truss/main.c
  user/ngie/more-tests2/usr.bin/truss/syscall.h
  user/ngie/more-tests2/usr.bin/truss/syscalls.c
  user/ngie/more-tests2/usr.bin/truss/truss.1
  user/ngie/more-tests2/usr.bin/truss/truss.h
  user/ngie/more-tests2/usr.sbin/bhyveload/bhyveload.8
  user/ngie/more-tests2/usr.sbin/bhyveload/bhyveload.c
  user/ngie/more-tests2/usr.sbin/freebsd-update/freebsd-update.8
  user/ngie/more-tests2/usr.sbin/freebsd-update/freebsd-update.sh
  user/ngie/more-tests2/usr.sbin/iscsid/discovery.c
  user/ngie/more-tests2/usr.sbin/iscsid/pdu.c
  user/ngie/more-tests2/usr.sbin/pmcstat/pmcstat_log.c
  user/ngie/more-tests2/usr.sbin/ppp/Makefile
  user/ngie/more-tests2/usr.sbin/pw/pw.c
  user/ngie/more-tests2/usr.sbin/rtadvd/Makefile
  user/ngie/more-tests2/usr.sbin/rtadvd/rtadvd.c
  user/ngie/more-tests2/usr.sbin/rtsold/Makefile
  user/ngie/more-tests2/usr.sbin/rtsold/rtsold.c
  user/ngie/more-tests2/usr.sbin/watch/watch.c
Directory Properties:
  user/ngie/more-tests2/   (props changed)
  user/ngie/more-tests2/contrib/elftoolchain/   (props changed)
  user/ngie/more-tests2/contrib/elftoolchain/ar/   (props changed)
  user/ngie/more-tests2/contrib/elftoolchain/brandelf/   (props changed)
  user/ngie/more-tests2/contrib/elftoolchain/elfdump/   (props changed)
  user/ngie/more-tests2/contrib/libc++/   (props changed)
  user/ngie/more-tests2/contrib/llvm/   (props changed)
  user/ngie/more-tests2/contrib/tzcode/stdtime/   (props changed)
  user/ngie/more-tests2/contrib/unbound/   (props changed)
  user/ngie/more-tests2/gnu/usr.bin/binutils/   (props changed)
  user/ngie/more-tests2/lib/libc/   (props changed)
  user/ngie/more-tests2/sbin/   (props changed)
  user/ngie/more-tests2/share/   (props changed)
  user/ngie/more-tests2/sys/   (props changed)
  user/ngie/more-tests2/sys/amd64/include/xen/   (props changed)
  user/ngie/more-tests2/sys/boot/   (props changed)
  user/ngie/more-tests2/sys/conf/   (props changed)
  user/ngie/more-tests2/usr.sbin/bhyveload/   (props changed)
  user/ngie/more-tests2/usr.sbin/rtadvd/   (props changed)
  user/ngie/more-tests2/usr.sbin/rtsold/   (props changed)

Modified: user/ngie/more-tests2/Makefile
==============================================================================
--- user/ngie/more-tests2/Makefile	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/Makefile	Sat Oct 10 01:29:50 2015	(r289101)
@@ -121,7 +121,7 @@ TGTS=	all all-man buildenv buildenvvars 
 	_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
 	_build-tools _cross-tools _includes _libraries _depend \
 	build32 builddtb distribute32 install32 xdev xdev-build xdev-install \
-	xdev-links native-xtools \
+	xdev-links native-xtools installconfig \
 
 TGTS+=	${SUBDIR_TARGETS}
 

Modified: user/ngie/more-tests2/Makefile.inc1
==============================================================================
--- user/ngie/more-tests2/Makefile.inc1	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/Makefile.inc1	Sat Oct 10 01:29:50 2015	(r289101)
@@ -996,10 +996,15 @@ redistribute: .MAKE
 	    DISTRIBUTION=lib32
 .endif
 
-distrib-dirs distribution: .MAKE
+distrib-dirs: .MAKE
 	cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \
 	    ${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET}
 
+distribution: .MAKE
+	cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \
+	    ${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET}
+	${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 installconfig
+
 #
 # buildkernel and installkernel
 #

Modified: user/ngie/more-tests2/contrib/elftoolchain/addr2line/addr2line.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/addr2line/addr2line.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/addr2line/addr2line.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -39,7 +39,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: addr2line.c 3197 2015-05-12 21:01:31Z emaste $");
+ELFTC_VCSID("$Id: addr2line.c 3249 2015-10-04 08:11:30Z kaiwang27 $");
 
 static struct option longopts[] = {
 	{"target" , required_argument, NULL, 'b'},
@@ -61,7 +61,7 @@ Usage: %s [options] hexaddress...\n\
   Map program addresses to source file names and line numbers.\n\n\
   Options:\n\
   -b TGT  | --target=TGT      (Accepted but ignored).\n\
-  -e EXE  | --exec=EXE        Use program \"EXE\" to translate addresses.\n\
+  -e EXE  | --exe=EXE         Use program \"EXE\" to translate addresses.\n\
   -f      | --functions       Display function names.\n\
   -j NAME | --section=NAME    Values are offsets into section \"NAME\".\n\
   -s      | --basename        Only show the base name for each file name.\n\
@@ -123,8 +123,7 @@ handle_high_pc(Dwarf_Die die, Dwarf_Unsi
 }
 
 static void
-search_func(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Addr addr,
-    const char **rlt_func)
+search_func(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Addr addr, char **rlt_func)
 {
 	Dwarf_Die ret_die, spec_die;
 	Dwarf_Error de;
@@ -133,10 +132,11 @@ search_func(Dwarf_Debug dbg, Dwarf_Die d
 	Dwarf_Off ref;
 	Dwarf_Attribute sub_at, spec_at;
 	char *func0;
+	const char *func1;
 	int ret;
 
 	if (*rlt_func != NULL)
-		return;
+		goto done;
 
 	if (dwarf_tag(die, &tag, &de)) {
 		warnx("dwarf_tag: %s", dwarf_errmsg(de));
@@ -153,16 +153,19 @@ search_func(Dwarf_Debug dbg, Dwarf_Die d
 
 		/* Found it! */
 
-		*rlt_func = unknown;
+		if ((*rlt_func = strdup(unknown)) == NULL)
+			err(EXIT_FAILURE, "strdup");
 		ret = dwarf_attr(die, DW_AT_name, &sub_at, &de);
 		if (ret == DW_DLV_ERROR)
-			return;
+			goto done;
 		if (ret == DW_DLV_OK) {
-			if (dwarf_formstring(sub_at, &func0, &de))
-				*rlt_func = unknown;
-			else
-				*rlt_func = func0;
-			return;
+			if (dwarf_formstring(sub_at, &func0, &de) ==
+			    DW_DLV_OK) {
+				free(*rlt_func);
+				if ((*rlt_func = strdup(func0)) == NULL)
+					err(EXIT_FAILURE, "strdup");
+			}
+			goto done;
 		}
 
 		/*
@@ -171,15 +174,19 @@ search_func(Dwarf_Debug dbg, Dwarf_Die d
 		 * referenced by DW_AT_specification.
 		 */
 		if (dwarf_attr(die, DW_AT_specification, &spec_at, &de))
-			return;
+			goto done;
 		if (dwarf_global_formref(spec_at, &ref, &de))
-			return;
+			goto done;
 		if (dwarf_offdie(dbg, ref, &spec_die, &de))
-			return;
-		if (dwarf_attrval_string(spec_die, DW_AT_name, rlt_func, &de))
-			*rlt_func = unknown;
+			goto done;
+		if (dwarf_attrval_string(spec_die, DW_AT_name, &func1, &de) ==
+		    DW_DLV_OK) {
+			free(*rlt_func);
+			if ((*rlt_func = strdup(func1)) == NULL)
+			    err(EXIT_FAILURE, "strdup");
+		}
 
-		return;
+		goto done;
 	}
 
 cont_search:
@@ -197,19 +204,22 @@ cont_search:
 		errx(EXIT_FAILURE, "dwarf_siblingof: %s", dwarf_errmsg(de));
 	else if (ret == DW_DLV_OK)
 		search_func(dbg, ret_die, addr, rlt_func);
+
+done:
+	dwarf_dealloc(dbg, die, DW_DLA_DIE);
 }
 
 static void
 translate(Dwarf_Debug dbg, const char* addrstr)
 {
-	Dwarf_Die die;
+	Dwarf_Die die, ret_die;
 	Dwarf_Line *lbuf;
 	Dwarf_Error de;
 	Dwarf_Half tag;
 	Dwarf_Unsigned lopc, hipc, addr, lineno, plineno;
 	Dwarf_Signed lcount;
 	Dwarf_Addr lineaddr, plineaddr;
-	const char *funcname;
+	char *funcname;
 	char *file, *file0, *pfile;
 	char demangled[1024];
 	int i, ret;
@@ -218,23 +228,30 @@ translate(Dwarf_Debug dbg, const char* a
 	addr += section_base;
 	lineno = 0;
 	file = unknown;
+	die = NULL;
+	lbuf = NULL;
+	lcount = 0;
 
 	while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL,
 	    &de)) ==  DW_DLV_OK) {
 		die = NULL;
-		while (dwarf_siblingof(dbg, die, &die, &de) == DW_DLV_OK) {
+		while (dwarf_siblingof(dbg, die, &ret_die, &de) == DW_DLV_OK) {
+			if (die != NULL)
+				dwarf_dealloc(dbg, die, DW_DLA_DIE);
+			die = ret_die;
 			if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) {
 				warnx("dwarf_tag failed: %s",
 				    dwarf_errmsg(de));
-				goto out;
+				goto next_cu;
 			}
+
 			/* XXX: What about DW_TAG_partial_unit? */
 			if (tag == DW_TAG_compile_unit)
 				break;
 		}
-		if (die == NULL) {
+		if (ret_die == NULL) {
 			warnx("could not find DW_TAG_compile_unit die");
-			goto out;
+			goto next_cu;
 		}
 		if (!dwarf_attrval_unsigned(die, DW_AT_low_pc, &lopc, &de) &&
 		    !dwarf_attrval_unsigned(die, DW_AT_high_pc, &hipc, &de)) {
@@ -243,17 +260,17 @@ translate(Dwarf_Debug dbg, const char* a
 			 * this CU.
 			 */
 			if (handle_high_pc(die, lopc, &hipc) != DW_DLV_OK)
-				continue;
+				goto next_cu;
 			if (addr < lopc || addr >= hipc)
-				continue;
+				goto next_cu;
 		}
 
 		switch (dwarf_srclines(die, &lbuf, &lcount, &de)) {
 		case DW_DLV_OK:
 			break;
 		case DW_DLV_NO_ENTRY:
-			/* If one CU lacks debug info, just skip it. */
-			continue;
+			/* If a CU lacks debug info, just skip it. */
+			goto next_cu;
 		default:
 			warnx("dwarf_srclines: %s", dwarf_errmsg(de));
 			goto out;
@@ -289,25 +306,37 @@ translate(Dwarf_Debug dbg, const char* a
 			plineno = lineno;
 			pfile = file;
 		}
+	next_cu:
+		if (die != NULL) {
+			dwarf_dealloc(dbg, die, DW_DLA_DIE);
+			die = NULL;
+		}
 	}
 
 out:
 	funcname = NULL;
-	if (ret == DW_DLV_OK && func)
+	if (ret == DW_DLV_OK && func) {
 		search_func(dbg, die, addr, &funcname);
+		die = NULL;
+	}
 
 	if (func) {
 		if (funcname == NULL)
-			funcname = unknown;
+			if ((funcname = strdup(unknown)) == NULL)
+				err(EXIT_FAILURE, "strdup");
 		if (demangle &&
 		    !elftc_demangle(funcname, demangled, sizeof(demangled), 0))
 			printf("%s\n", demangled);
 		else
 			printf("%s\n", funcname);
+		free(funcname);
 	}
 
 	(void) printf("%s:%ju\n", base ? basename(file) : file, lineno);
 
+	if (die != NULL)
+		dwarf_dealloc(dbg, die, DW_DLA_DIE);
+
 	/*
 	 * Reset internal CU pointer, so we will start from the first CU
 	 * next round.

Modified: user/ngie/more-tests2/contrib/elftoolchain/ar/ar.1
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/ar/ar.1	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/ar/ar.1	Sat Oct 10 01:29:50 2015	(r289101)
@@ -21,9 +21,9 @@
 .\" out of the use of this software, even if advised of the possibility of
 .\" such damage.
 .\"
-.\" $Id: ar.1 3195 2015-05-12 17:22:19Z emaste $
+.\" $Id: ar.1 3230 2015-07-27 17:11:38Z emaste $
 .\"
-.Dd December 10, 2012
+.Dd July 27, 2015
 .Os
 .Dt AR 1
 .Sh NAME
@@ -66,6 +66,7 @@
 .Op Fl f
 .Op Fl F Ar flavor | Fl -flavor Ar flavor
 .Op Fl s | Fl S
+.Op Fl U
 .Op Fl v
 .Op Fl z
 .Ar archive
@@ -83,6 +84,7 @@
 .Op Fl j
 .Op Fl s | Fl S
 .Op Fl u
+.Op Fl U
 .Op Fl v
 .Op Fl z
 .Ar archive
@@ -91,6 +93,7 @@
 .Fl s
 .Op Fl D
 .Op Fl j
+.Op Fl U
 .Op Fl z
 .Ar archive
 .Nm
@@ -203,6 +206,11 @@ and 0644 instead of file mode from the m
 .Ar .
 This ensures that checksums on the resulting archives are reproducible
 when member contents are identical.
+If multiple
+.Fl D
+and
+.Fl U
+options are specified on the command line, the final one takes precedence.
 .It Fl f
 Synonymous with option
 .Fl T .
@@ -335,6 +343,19 @@ option, the members specified by argumen
 .Ar
 will be extracted only if they are newer than the corresponding
 files in the file system.
+.It Fl U
+When used in combination with the
+.Fl r
+or
+.Fl q
+option, insert the real mtime, uid and gid, and file mode values
+from the members named by arguments
+.Ar .
+If multiple
+.Fl D
+and
+.Fl U
+options are specified on the command line, the final one takes precedence.
 .It Fl v
 Provide verbose output.
 When used with the

Modified: user/ngie/more-tests2/contrib/elftoolchain/ar/ar.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/ar/ar.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/ar/ar.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -72,7 +72,7 @@
 
 #include "ar.h"
 
-ELFTC_VCSID("$Id: ar.c 3183 2015-04-10 16:18:42Z emaste $");
+ELFTC_VCSID("$Id: ar.c 3243 2015-08-31 19:28:45Z emaste $");
 
 enum options
 {
@@ -123,7 +123,7 @@ main(int argc, char **argv)
 	len = strlen(bsdar->progname);
 	if (len >= strlen("ranlib") &&
 	    strcmp(bsdar->progname + len - strlen("ranlib"), "ranlib") == 0) {
-		while ((opt = getopt_long(argc, argv, "tDV", longopts,
+		while ((opt = getopt_long(argc, argv, "tDUV", longopts,
 		    NULL)) != -1) {
 			switch(opt) {
 			case 't':
@@ -132,6 +132,9 @@ main(int argc, char **argv)
 			case 'D':
 				bsdar->options |= AR_D;
 				break;
+			case 'U':
+				bsdar->options &= ~AR_D;
+				break;
 			case 'V':
 				bsdar_version();
 				break;
@@ -148,7 +151,7 @@ main(int argc, char **argv)
 			ranlib_usage();
 
 		bsdar->options |= AR_S;
-		for (;(bsdar->filename = *argv++) != NULL;)
+		while ((bsdar->filename = *argv++) != NULL)
 			ar_write_archive(bsdar, 's');
 
 		exit(EXIT_SUCCESS);
@@ -169,7 +172,7 @@ main(int argc, char **argv)
 		}
 	}
 
-	while ((opt = getopt_long(argc, argv, "abCcdDfF:ijlMmopqrSsTtuVvxz",
+	while ((opt = getopt_long(argc, argv, "abCcdDfF:ijlMmopqrSsTtUuVvxz",
 	    longopts, NULL)) != -1) {
 		switch(opt) {
 		case 'a':
@@ -237,6 +240,9 @@ main(int argc, char **argv)
 		case 't':
 			set_mode(bsdar, opt);
 			break;
+		case 'U':
+			bsdar->options &= ~AR_D;
+			break;
 		case 'u':
 			bsdar->options |= AR_U;
 			break;
@@ -400,7 +406,8 @@ Usage: %s <command> [options] archive fi
   -D            Use fixed metadata, for consistent archive checksums.\n\
   -F FORMAT | --flavor=FORMAT\n\
                 Create archives with the specified format.\n\
-  -S            Do not generate an archive symbol table.\n"
+  -S            Do not generate an archive symbol table.\n\
+  -U            Use original metadata, for unique archive checksums.\n"
 
 static void
 bsdar_usage(void)
@@ -415,6 +422,7 @@ Usage: %s [options] archive...\n\
   Options:\n\
   -t              (This option is accepted, but ignored).\n\
   -D              Use fixed metadata, for consistent archive checksums.\n\
+  -U              Use original metadata, for unique archive checksums.\n\
   -V              Print a version identifier and exit.\n"
 
 static void

Modified: user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.1
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.1	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.1	Sat Oct 10 01:29:50 2015	(r289101)
@@ -1,5 +1,4 @@
-.\" Copyright (c) 1997
-.\"	John-Mark Gurney.  All rights reserved.
+.\" Copyright 1997 John-Mark Gurney.  All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
@@ -9,11 +8,8 @@
 .\" 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.
-.\" 3. Neither the name of the author nor the names of any co-contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
 .\"
-.\" THIS SOFTWARE IS PROVIDED BY John-Mark Gurney AND CONTRIBUTORS ``AS IS''
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR OR CONTRIBUTORS BE LIABLE
@@ -26,7 +22,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/usr.bin/brandelf/brandelf.1,v 1.17 2007/03/09 14:36:18 ru Exp $
-.\" $Id: brandelf.1 3195 2015-05-12 17:22:19Z emaste $
+.\" $Id: brandelf.1 3235 2015-07-31 16:44:47Z emaste $
 .\"
 .Dd October 27, 2014
 .Dt BRANDELF 1
@@ -148,4 +144,4 @@ manual page first appeared in
 .Fx 2.2 .
 .Sh AUTHORS
 This manual page was written by
-.An John-Mark Gurney Aq Mt gurney_j@efn.org .
+.An John-Mark Gurney Aq Mt jmg@FreeBSD.org .

Modified: user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/brandelf/brandelf.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2008 Hyogeol Lee
  * Copyright (c) 2000, 2001 David O'Brien
- * Copyright (c) 1996 Søren Schmidt
+ * Copyright (c) 1996 Søren Schmidt
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +44,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: brandelf.c 3174 2015-03-27 17:13:41Z emaste $");
+ELFTC_VCSID("$Id: brandelf.c 3234 2015-07-31 12:35:09Z emaste $");
 
 static int elftype(const char *);
 static const char *iselftype(int);

Modified: user/ngie/more-tests2/contrib/elftoolchain/common/_elftc.h
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/common/_elftc.h	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/common/_elftc.h	Sat Oct 10 01:29:50 2015	(r289101)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: _elftc.h 3209 2015-05-17 13:40:46Z kaiwang27 $
+ * $Id: _elftc.h 3244 2015-08-31 19:53:08Z emaste $
  */
 
 /**
@@ -372,7 +372,8 @@ extern const char *__progname;
 
 #if defined(__APPLE__)
 
-#include <machine/endian.h>
+#include <libkern/OSByteOrder.h>
+#define	htobe32(x)	OSSwapHostToBigInt32(x)
 #define	roundup2	roundup
 
 #define	ELFTC_BYTE_ORDER			_BYTE_ORDER
@@ -382,6 +383,7 @@ extern const char *__progname;
 #define	ELFTC_HAVE_MMAP				1
 #define	ELFTC_HAVE_STRMODE			1
 
+#define ELFTC_NEED_BYTEORDER_EXTENSIONS		1
 #endif /* __APPLE__ */
 
 

Modified: user/ngie/more-tests2/contrib/elftoolchain/common/elfdefinitions.h
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/common/elfdefinitions.h	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/common/elfdefinitions.h	Sat Oct 10 01:29:50 2015	(r289101)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: elfdefinitions.h 3198 2015-05-14 18:36:19Z emaste $
+ * $Id: elfdefinitions.h 3247 2015-09-22 16:57:51Z emaste $
  */
 
 /*
@@ -860,6 +860,12 @@ enum {
 #define	GRP_MASKPROC 	0xf0000000	/* processor-specific flags */
 
 /*
+ * Flags / mask for .gnu.versym sections.
+ */
+#define	VERSYM_VERSION	0x7fff
+#define	VERSYM_HIDDEN	0x8000
+
+/*
  * Flags used by program header table entries.
  */
 
@@ -1183,6 +1189,8 @@ _ELF_DEFINE_SHT(SHT_MIPS_XLATE_OLD,  0x7
 	"obsolete")							\
 _ELF_DEFINE_SHT(SHT_MIPS_PDR_EXCEPTION, 0x70000029UL,			\
 	"runtime procedure descriptor table exception information")	\
+_ELF_DEFINE_SHT(SHT_MIPS_ABIFLAGS,   0x7000002AUL,			\
+	"ABI flags")							\
 _ELF_DEFINE_SHT(SHT_SPARC_GOTDATA,   0x70000000UL,			\
 	"SPARC-specific data")						\
 _ELF_DEFINE_SHT(SHT_AMD64_UNWIND,    0x70000001UL,			\
@@ -1651,25 +1659,38 @@ _ELF_DEFINE_RELOC(R_IA_64_DTPREL64MSB,		
 _ELF_DEFINE_RELOC(R_IA_64_DTPREL64LSB,		0xB7)	\
 _ELF_DEFINE_RELOC(R_IA_64_LTOFF_DTPREL22,	0xBA)
 
-#define	_ELF_DEFINE_MIPS_RELOCATIONS()		\
-_ELF_DEFINE_RELOC(R_MIPS_NONE,		0)	\
-_ELF_DEFINE_RELOC(R_MIPS_16,		1)	\
-_ELF_DEFINE_RELOC(R_MIPS_32,		2)	\
-_ELF_DEFINE_RELOC(R_MIPS_REL32,		3)	\
-_ELF_DEFINE_RELOC(R_MIPS_26,		4)	\
-_ELF_DEFINE_RELOC(R_MIPS_HI16,		5)	\
-_ELF_DEFINE_RELOC(R_MIPS_LO16,		6)	\
-_ELF_DEFINE_RELOC(R_MIPS_GPREL16,	7)	\
-_ELF_DEFINE_RELOC(R_MIPS_LITERAL, 	8)	\
-_ELF_DEFINE_RELOC(R_MIPS_GOT16,		9)	\
-_ELF_DEFINE_RELOC(R_MIPS_PC16,		10)	\
-_ELF_DEFINE_RELOC(R_MIPS_CALL16,	11)	\
-_ELF_DEFINE_RELOC(R_MIPS_GPREL32,	12)	\
-_ELF_DEFINE_RELOC(R_MIPS_64,		18)	\
-_ELF_DEFINE_RELOC(R_MIPS_GOTHI16,	21)	\
-_ELF_DEFINE_RELOC(R_MIPS_GOTLO16,	22)	\
-_ELF_DEFINE_RELOC(R_MIPS_CALLHI16,	30)	\
-_ELF_DEFINE_RELOC(R_MIPS_CALLLO16,	31)
+#define	_ELF_DEFINE_MIPS_RELOCATIONS()			\
+_ELF_DEFINE_RELOC(R_MIPS_NONE,			0)	\
+_ELF_DEFINE_RELOC(R_MIPS_16,			1)	\
+_ELF_DEFINE_RELOC(R_MIPS_32,			2)	\
+_ELF_DEFINE_RELOC(R_MIPS_REL32,			3)	\
+_ELF_DEFINE_RELOC(R_MIPS_26,			4)	\
+_ELF_DEFINE_RELOC(R_MIPS_HI16,			5)	\
+_ELF_DEFINE_RELOC(R_MIPS_LO16,			6)	\
+_ELF_DEFINE_RELOC(R_MIPS_GPREL16,		7)	\
+_ELF_DEFINE_RELOC(R_MIPS_LITERAL, 		8)	\
+_ELF_DEFINE_RELOC(R_MIPS_GOT16,			9)	\
+_ELF_DEFINE_RELOC(R_MIPS_PC16,			10)	\
+_ELF_DEFINE_RELOC(R_MIPS_CALL16,		11)	\
+_ELF_DEFINE_RELOC(R_MIPS_GPREL32,		12)	\
+_ELF_DEFINE_RELOC(R_MIPS_64,			18)	\
+_ELF_DEFINE_RELOC(R_MIPS_GOTHI16,		21)	\
+_ELF_DEFINE_RELOC(R_MIPS_GOTLO16,		22)	\
+_ELF_DEFINE_RELOC(R_MIPS_CALLHI16,		30)	\
+_ELF_DEFINE_RELOC(R_MIPS_CALLLO16,		31)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPMOD32		38)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL32		39)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPMOD64		40)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL64		41)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_GD			42)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_LDM		43)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL_HI16	44)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL_LO16	45)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_GOTTPREL		46)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL32		47)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL64		48)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL_HI16		49)	\
+_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL_LO16		50)
 
 #define	_ELF_DEFINE_PPC32_RELOCATIONS()		\
 _ELF_DEFINE_RELOC(R_PPC_NONE,		0)	\
@@ -1865,6 +1886,50 @@ _ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HIGHE
 _ELF_DEFINE_RELOC(R_PPC64_TLSGD,		107)	\
 _ELF_DEFINE_RELOC(R_PPC64_TLSLD,		108)
 
+#define	_ELF_DEFINE_RISCV_RELOCATIONS()			\
+_ELF_DEFINE_RELOC(R_RISCV_NONE,			0)	\
+_ELF_DEFINE_RELOC(R_RISCV_32,			1)	\
+_ELF_DEFINE_RELOC(R_RISCV_64,			2)	\
+_ELF_DEFINE_RELOC(R_RISCV_RELATIVE,		3)	\
+_ELF_DEFINE_RELOC(R_RISCV_COPY,			4)	\
+_ELF_DEFINE_RELOC(R_RISCV_JUMP_SLOT,		5)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPMOD32,		6)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPMOD64,		7)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPREL32,		8)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPREL64,		9)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_TPREL32,		10)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_TPREL64,		11)	\
+_ELF_DEFINE_RELOC(R_RISCV_BRANCH,		16)	\
+_ELF_DEFINE_RELOC(R_RISCV_JAL,			17)	\
+_ELF_DEFINE_RELOC(R_RISCV_CALL,			18)	\
+_ELF_DEFINE_RELOC(R_RISCV_CALL_PLT,		19)	\
+_ELF_DEFINE_RELOC(R_RISCV_GOT_HI20,		20)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_GOT_HI20,		21)	\
+_ELF_DEFINE_RELOC(R_RISCV_TLS_GD_HI20,		22)	\
+_ELF_DEFINE_RELOC(R_RISCV_PCREL_HI20,		23)	\
+_ELF_DEFINE_RELOC(R_RISCV_PCREL_LO12_I,		24)	\
+_ELF_DEFINE_RELOC(R_RISCV_PCREL_LO12_S,		25)	\
+_ELF_DEFINE_RELOC(R_RISCV_HI20,			26)	\
+_ELF_DEFINE_RELOC(R_RISCV_LO12_I,		27)	\
+_ELF_DEFINE_RELOC(R_RISCV_LO12_S,		28)	\
+_ELF_DEFINE_RELOC(R_RISCV_TPREL_HI20,		29)	\
+_ELF_DEFINE_RELOC(R_RISCV_TPREL_LO12_I,		30)	\
+_ELF_DEFINE_RELOC(R_RISCV_TPREL_LO12_S,		31)	\
+_ELF_DEFINE_RELOC(R_RISCV_TPREL_ADD,		32)	\
+_ELF_DEFINE_RELOC(R_RISCV_ADD8,			33)	\
+_ELF_DEFINE_RELOC(R_RISCV_ADD16,		34)	\
+_ELF_DEFINE_RELOC(R_RISCV_ADD32,		35)	\
+_ELF_DEFINE_RELOC(R_RISCV_ADD64,		36)	\
+_ELF_DEFINE_RELOC(R_RISCV_SUB8,			37)	\
+_ELF_DEFINE_RELOC(R_RISCV_SUB16,		38)	\
+_ELF_DEFINE_RELOC(R_RISCV_SUB32,		39)	\
+_ELF_DEFINE_RELOC(R_RISCV_SUB64,		40)	\
+_ELF_DEFINE_RELOC(R_RISCV_GNU_VTINHERIT,	41)	\
+_ELF_DEFINE_RELOC(R_RISCV_GNU_VTENTRY,		42)	\
+_ELF_DEFINE_RELOC(R_RISCV_ALIGN			43)	\
+_ELF_DEFINE_RELOC(R_RISCV_RVC_BRANCH,		44)	\
+_ELF_DEFINE_RELOC(R_RISCV_RVC_JUMP,		45)
+
 #define	_ELF_DEFINE_SPARC_RELOCATIONS()		\
 _ELF_DEFINE_RELOC(R_SPARC_NONE,		0)	\
 _ELF_DEFINE_RELOC(R_SPARC_8,		1)	\

Modified: user/ngie/more-tests2/contrib/elftoolchain/elfcopy/sections.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/elfcopy/sections.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/elfcopy/sections.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -34,7 +34,7 @@
 
 #include "elfcopy.h"
 
-ELFTC_VCSID("$Id: sections.c 3220 2015-05-24 23:42:39Z kaiwang27 $");
+ELFTC_VCSID("$Id: sections.c 3225 2015-06-06 02:35:23Z kaiwang27 $");
 
 static void	add_gnu_debuglink(struct elfcopy *ecp);
 static uint32_t calc_crc32(const char *p, size_t len, uint32_t crc);

Modified: user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.1
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.1	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.1	Sat Oct 10 01:29:50 2015	(r289101)
@@ -23,7 +23,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/usr.bin/elfdump/elfdump.1,v 1.6 2005/01/18 13:43:48 ru Exp $
-.\" $Id: elfdump.1 3195 2015-05-12 17:22:19Z emaste $
+.\" $Id: elfdump.1 3231 2015-07-30 13:47:56Z emaste $
 .\"
 .Dd August 25, 2011
 .Dt ELFDUMP 1
@@ -54,7 +54,7 @@ The options are as follows:
 .It Fl a
 Dump all information.
 .It Fl c
-Dump shared headers.
+Dump section headers.
 .It Fl d
 Dump dynamic symbols.
 .It Fl e

Modified: user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/elfdump/elfdump.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -50,7 +50,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: elfdump.c 3198 2015-05-14 18:36:19Z emaste $");
+ELFTC_VCSID("$Id: elfdump.c 3250 2015-10-06 13:56:15Z emaste $");
 
 #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION)
 #include "native-elf-format.h"
@@ -205,11 +205,11 @@ d_tags(uint64_t tag)
 	case 0x6ffffef5: return "DT_GNU_HASH";
 	case 0x6ffffef8: return "DT_GNU_CONFLICT";
 	case 0x6ffffef9: return "DT_GNU_LIBLIST";
-	case 0x6ffffefa: return "DT_SUNW_CONFIG";
-	case 0x6ffffefb: return "DT_SUNW_DEPAUDIT";
-	case 0x6ffffefc: return "DT_SUNW_AUDIT";
-	case 0x6ffffefd: return "DT_SUNW_PLTPAD";
-	case 0x6ffffefe: return "DT_SUNW_MOVETAB";
+	case 0x6ffffefa: return "DT_CONFIG";
+	case 0x6ffffefb: return "DT_DEPAUDIT";
+	case 0x6ffffefc: return "DT_AUDIT";
+	case 0x6ffffefd: return "DT_PLTPAD";
+	case 0x6ffffefe: return "DT_MOVETAB";
 	case 0x6ffffeff: return "DT_SYMINFO (DT_ADDRRNGHI)";
 	case 0x6ffffff9: return "DT_RELACOUNT";
 	case 0x6ffffffa: return "DT_RELCOUNT";
@@ -244,11 +244,14 @@ e_machines(unsigned int mach)
 	case EM_860:	return "EM_860";
 	case EM_MIPS:	return "EM_MIPS";
 	case EM_PPC:	return "EM_PPC";
+	case EM_PPC64:	return "EM_PPC64";
 	case EM_ARM:	return "EM_ARM";
 	case EM_ALPHA:	return "EM_ALPHA (legacy)";
 	case EM_SPARCV9:return "EM_SPARCV9";
 	case EM_IA_64:	return "EM_IA_64";
 	case EM_X86_64:	return "EM_X86_64";
+	case EM_AARCH64:return "EM_AARCH64";
+	case EM_RISCV:	return "EM_RISCV";
 	}
 	snprintf(machdesc, sizeof(machdesc),
 	    "(unknown machine) -- type 0x%x", mach);
@@ -271,11 +274,12 @@ static const char *ei_data[] = {
 	"ELFDATANONE", "ELFDATA2LSB", "ELFDATA2MSB"
 };
 
-static const char *ei_abis[] = {
+static const char *ei_abis[256] = {
 	"ELFOSABI_NONE", "ELFOSABI_HPUX", "ELFOSABI_NETBSD", "ELFOSABI_LINUX",
-	"ELFOSABI_HURD", "ELFOSABI_86OPEN", "ELFOSABI_SOLARIS",
-	"ELFOSABI_MONTEREY", "ELFOSABI_IRIX", "ELFOSABI_FREEBSD",
-	"ELFOSABI_TRU64", "ELFOSABI_MODESTO", "ELFOSABI_OPENBSD"
+	"ELFOSABI_HURD", "ELFOSABI_86OPEN", "ELFOSABI_SOLARIS", "ELFOSABI_AIX",
+	"ELFOSABI_IRIX", "ELFOSABI_FREEBSD", "ELFOSABI_TRU64",
+	"ELFOSABI_MODESTO", "ELFOSABI_OPENBSD",
+	[255] = "ELFOSABI_STANDALONE"
 };
 
 static const char *p_types[] = {
@@ -330,6 +334,7 @@ sh_types(u_int64_t sht) {
 	case 18: return "SHT_SYMTAB_SHNDX";
 	/* 0x60000000 - 0x6fffffff operating system-specific semantics */
 	case 0x6ffffff0: return "XXX:VERSYM";
+	case 0x6ffffff4: return "SHT_SUNW_dof";
 	case 0x6ffffff6: return "SHT_GNU_HASH";
 	case 0x6ffffff7: return "SHT_GNU_LIBLIST";
 	case 0x6ffffffc: return "XXX:VERDEF";
@@ -818,6 +823,7 @@ static void	elf_print_checksum(struct el
 static void	find_gotrel(struct elfdump *ed, struct section *gs,
     struct rel_entry *got);
 static struct spec_name	*find_name(struct elfdump *ed, const char *name);
+static int	get_ent_count(const struct section *s, int *ent_count);
 static const char *get_symbol_name(struct elfdump *ed, int symtab, int i);
 static const char *get_string(struct elfdump *ed, int strtab, size_t off);
 static void	get_versym(struct elfdump *ed, int i, uint16_t **vs, int *nvs);
@@ -1626,6 +1632,24 @@ elf_print_shdr(struct elfdump *ed)
 }
 
 /*
+ * Return number of entries in the given section. We'd prefer ent_count be a
+ * size_t, but libelf APIs already use int for section indices.
+ */
+static int
+get_ent_count(const struct section *s, int *ent_count)
+{
+	if (s->entsize == 0) {
+		warnx("section %s has entry size 0", s->name);
+		return (0);
+	} else if (s->sz / s->entsize > INT_MAX) {
+		warnx("section %s has invalid section count", s->name);
+		return (0);
+	}
+	*ent_count = (int)(s->sz / s->entsize);
+	return (1);
+}
+
+/*
  * Retrieve the content of the corresponding SHT_SUNW_versym section for
  * a symbol table section.
  */
@@ -1656,7 +1680,9 @@ get_versym(struct elfdump *ed, int i, ui
 	}
 
 	*vs = data->d_buf;
-	*nvs = data->d_size / s->entsize;
+	assert(data->d_size == s->sz);
+	if (!get_ent_count(s, nvs))
+		*nvs = 0;
 }
 
 /*
@@ -1687,7 +1713,9 @@ elf_print_symtab(struct elfdump *ed, int
 	}
 	vs = NULL;
 	nvs = 0;
-	len = data->d_size / s->entsize;
+	assert(data->d_size == s->sz);
+	if (!get_ent_count(s, &len))
+		return;
 	if (ed->flags & SOLARIS_FMT) {
 		if (ed->ec == ELFCLASS32)
 			PRT("     index    value       ");
@@ -1786,7 +1814,9 @@ elf_print_dynamic(struct elfdump *ed)
 			warnx("elf_getdata failed: %s", elf_errmsg(elferr));
 		return;
 	}
-	len = data->d_size / s->entsize;
+	assert(data->d_size == s->sz);
+	if (!get_ent_count(s, &len))
+		return;
 	for (i = 0; i < len; i++) {
 		if (gelf_getdyn(data, i, &dyn) != &dyn) {
 			warnx("gelf_getdyn failed: %s", elf_errmsg(-1));
@@ -1912,7 +1942,9 @@ elf_print_rela(struct elfdump *ed, struc
 	} else
 		PRT("\nrelocation with addend (%s):\n", s->name);
 	r.type = SHT_RELA;
-	len = data->d_size / s->entsize;
+	assert(data->d_size == s->sz);
+	if (!get_ent_count(s, &len))
+		return;
 	for (j = 0; j < len; j++) {
 		if (gelf_getrela(data, j, &r.u_r.rela) != &r.u_r.rela) {
 			warnx("gelf_getrela failed: %s",
@@ -1941,7 +1973,9 @@ elf_print_rel(struct elfdump *ed, struct
 	} else
 		PRT("\nrelocation (%s):\n", s->name);
 	r.type = SHT_REL;
-	len = data->d_size / s->entsize;
+	assert(data->d_size == s->sz);
+	if (!get_ent_count(s, &len))
+		return;
 	for (j = 0; j < len; j++) {
 		if (gelf_getrel(data, j, &r.u_r.rel) != &r.u_r.rel) {
 			warnx("gelf_getrel failed: %s", elf_errmsg(-1));
@@ -2042,7 +2076,9 @@ find_gotrel(struct elfdump *ed, struct s
 		}
 		memset(&r, 0, sizeof(struct rel_entry));
 		r.type = s->type;
-		len = data->d_size / s->entsize;
+		assert(data->d_size == s->sz);
+		if (!get_ent_count(s, &len))
+			return;
 		for (j = 0; j < len; j++) {
 			if (s->type == SHT_REL) {
 				if (gelf_getrel(data, j, &r.u_r.rel) !=
@@ -2086,9 +2122,11 @@ elf_print_got_section(struct elfdump *ed
 			return;
 	}
 
+	if (!get_ent_count(s, &len))
+		return;
 	if (ed->flags & SOLARIS_FMT)
-		PRT("\nGlobal Offset Table Section:  %s  (%jd entries)\n",
-		    s->name, s->sz / s->entsize);
+		PRT("\nGlobal Offset Table Section:  %s  (%d entries)\n",
+		    s->name, len);
 	else
 		PRT("\nglobal offset table: %s\n", s->name);
 	(void) elf_errno();
@@ -2115,7 +2153,7 @@ elf_print_got_section(struct elfdump *ed
 		warnx("gelf_xlatetom failed: %s", elf_errmsg(-1));
 		return;
 	}
-	len = dst.d_size / s->entsize;
+	assert(dst.d_size == s->sz);
 	if (ed->flags & SOLARIS_FMT) {
 		/*
 		 * In verbose/Solaris mode, we search the relocation sections
@@ -2503,7 +2541,8 @@ elf_print_gnu_hash(struct elfdump *ed, s
 	shift2 = buf[3];
 	buf += 4;
 	ds = &ed->sl[s->link];
-	dynsymcount = ds->sz / ds->entsize;
+	if (!get_ent_count(ds, &dynsymcount))
+		return;
 	nchain = dynsymcount - symndx;
 	if (data->d_size != 4 * sizeof(uint32_t) + maskwords *
 	    (ed->ec == ELFCLASS32 ? sizeof(uint32_t) : sizeof(uint64_t)) +

Modified: user/ngie/more-tests2/contrib/elftoolchain/libdwarf/dwarf_sections.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/libdwarf/dwarf_sections.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/libdwarf/dwarf_sections.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -26,7 +26,7 @@
 
 #include "_libdwarf.h"
 
-ELFTC_VCSID("$Id: dwarf_sections.c 3036 2014-05-05 19:19:31Z kaiwang27 $");
+ELFTC_VCSID("$Id: dwarf_sections.c 3226 2015-06-23 13:00:16Z emaste $");
 
 #define	SET(N, V)				\
 	do {					\

Modified: user/ngie/more-tests2/contrib/elftoolchain/readelf/readelf.c
==============================================================================
--- user/ngie/more-tests2/contrib/elftoolchain/readelf/readelf.c	Sat Oct 10 00:17:51 2015	(r289100)
+++ user/ngie/more-tests2/contrib/elftoolchain/readelf/readelf.c	Sat Oct 10 01:29:50 2015	(r289101)
@@ -47,7 +47,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: readelf.c 3223 2015-05-25 20:37:57Z emaste $");
+ELFTC_VCSID("$Id: readelf.c 3250 2015-10-06 13:56:15Z emaste $");
 
 /*
  * readelf(1) options.
@@ -1295,6 +1295,20 @@ r_type(unsigned int mach, unsigned int t
 		case 22: return "R_MIPS_GOTLO16";
 		case 30: return "R_MIPS_CALLHI16";
 		case 31: return "R_MIPS_CALLLO16";
+		case 38: return "R_MIPS_TLS_DTPMOD32";
+		case 39: return "R_MIPS_TLS_DTPREL32";
+		case 40: return "R_MIPS_TLS_DTPMOD64";
+		case 41: return "R_MIPS_TLS_DTPREL64";
+		case 42: return "R_MIPS_TLS_GD";
+		case 43: return "R_MIPS_TLS_LDM";
+		case 44: return "R_MIPS_TLS_DTPREL_HI16";
+		case 45: return "R_MIPS_TLS_DTPREL_LO16";
+		case 46: return "R_MIPS_TLS_GOTTPREL";
+		case 47: return "R_MIPS_TLS_TPREL32";
+		case 48: return "R_MIPS_TLS_TPREL64";
+		case 49: return "R_MIPS_TLS_TPREL_HI16";
+		case 50: return "R_MIPS_TLS_TPREL_LO16";
+
 		default: return "";
 		}
 	case EM_PPC:
@@ -1378,6 +1392,51 @@ r_type(unsigned int mach, unsigned int t
 		case 116: return "R_PPC_EMB_RELSDA";
 		default: return "";
 		}
+	case EM_RISCV:
+		switch(type) {
+		case 0: return "R_RISCV_NONE";
+		case 1: return "R_RISCV_32";
+		case 2: return "R_RISCV_64";
+		case 3: return "R_RISCV_RELATIVE";
+		case 4: return "R_RISCV_COPY";
+		case 5: return "R_RISCV_JUMP_SLOT";
+		case 6: return "R_RISCV_TLS_DTPMOD32";
+		case 7: return "R_RISCV_TLS_DTPMOD64";
+		case 8: return "R_RISCV_TLS_DTPREL32";
+		case 9: return "R_RISCV_TLS_DTPREL64";
+		case 10: return "R_RISCV_TLS_TPREL32";
+		case 11: return "R_RISCV_TLS_TPREL64";
+		case 16: return "R_RISCV_BRANCH";
+		case 17: return "R_RISCV_JAL";
+		case 18: return "R_RISCV_CALL";
+		case 19: return "R_RISCV_CALL_PLT";
+		case 20: return "R_RISCV_GOT_HI20";
+		case 21: return "R_RISCV_TLS_GOT_HI20";
+		case 22: return "R_RISCV_TLS_GD_HI20";
+		case 23: return "R_RISCV_PCREL_HI20";
+		case 24: return "R_RISCV_PCREL_LO12_I";
+		case 25: return "R_RISCV_PCREL_LO12_S";
+		case 26: return "R_RISCV_HI20";
+		case 27: return "R_RISCV_LO12_I";
+		case 28: return "R_RISCV_LO12_S";
+		case 29: return "R_RISCV_TPREL_HI20";
+		case 30: return "R_RISCV_TPREL_LO12_I";
+		case 31: return "R_RISCV_TPREL_LO12_S";
+		case 32: return "R_RISCV_TPREL_ADD";
+		case 33: return "R_RISCV_ADD8";
+		case 34: return "R_RISCV_ADD16";
+		case 35: return "R_RISCV_ADD32";
+		case 36: return "R_RISCV_ADD64";
+		case 37: return "R_RISCV_SUB8";
+		case 38: return "R_RISCV_SUB16";
+		case 39: return "R_RISCV_SUB32";
+		case 40: return "R_RISCV_SUB64";
+		case 41: return "R_RISCV_GNU_VTINHERIT";
+		case 42: return "R_RISCV_GNU_VTENTRY";
+		case 43: return "R_RISCV_ALIGN";
+		case 44: return "R_RISCV_RVC_BRANCH";
+		case 45: return "R_RISCV_RVC_JUMP";
+		}
 	case EM_SPARC:
 	case EM_SPARCV9:
 		switch(type) {
@@ -3179,6 +3238,9 @@ dump_rel(struct readelf *re, struct sect
 	uint64_t symval;
 	int i, len;
 
+	if (s->link >= re->shnum)
+		return;
+
 #define	REL_HDR "r_offset", "r_info", "r_type", "st_value", "st_name"
 #define	REL_CT32 (uintmax_t)r.r_offset, (uintmax_t)r.r_info,	    \
 		r_type(re->ehdr.e_machine, ELF32_R_TYPE(r.r_info)), \
@@ -3204,10 +3266,6 @@ dump_rel(struct readelf *re, struct sect
 			warnx("gelf_getrel failed: %s", elf_errmsg(-1));
 			continue;
 		}
-		if (s->link >= re->shnum) {
-			warnx("invalid section link index %u", s->link);
-			continue;
-		}
 		symname = get_symbol_name(re, s->link, GELF_R_SYM(r.r_info));
 		symval = get_symbol_value(re, s->link, GELF_R_SYM(r.r_info));
 		if (re->ec == ELFCLASS32) {
@@ -3236,6 +3294,9 @@ dump_rela(struct readelf *re, struct sec
 	uint64_t symval;
 	int i, len;
 
+	if (s->link >= re->shnum)
+		return;
+
 #define	RELA_HDR "r_offset", "r_info", "r_type", "st_value", \
 		"st_name + r_addend"
 #define	RELA_CT32 (uintmax_t)r.r_offset, (uintmax_t)r.r_info,	    \
@@ -3262,10 +3323,6 @@ dump_rela(struct readelf *re, struct sec
 			warnx("gelf_getrel failed: %s", elf_errmsg(-1));
 			continue;
 		}
-		if (s->link >= re->shnum) {
-			warnx("invalid section link index %u", s->link);
-			continue;
-		}
 		symname = get_symbol_name(re, s->link, GELF_R_SYM(r.r_info));
 		symval = get_symbol_value(re, s->link, GELF_R_SYM(r.r_info));
 		if (re->ec == ELFCLASS32) {
@@ -3321,9 +3378,13 @@ dump_symtab(struct readelf *re, int i)
 	Elf_Data *d;
 	GElf_Sym sym;
 	const char *name;
-	int elferr, stab, j, len;
+	uint32_t stab;
+	int elferr, j, len;
+	uint16_t vs;
 
 	s = &re->sl[i];

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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