Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Feb 2015 21:17:51 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r278638 - in projects/building-blocks: . bin/pkill/tests contrib/binutils/ld/scripttempl contrib/elftoolchain/libdwarf contrib/netbsd-tests/games etc etc/mtree etc/root games games/caes...
Message-ID:  <201502122117.t1CLHp3n009237@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Thu Feb 12 21:17:50 2015
New Revision: 278638
URL: https://svnweb.freebsd.org/changeset/base/278638

Log:
  MFhead @ r278636

Modified:
  projects/building-blocks/Makefile.inc1
  projects/building-blocks/ObsoleteFiles.inc
  projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh
  projects/building-blocks/contrib/binutils/ld/scripttempl/elf.sc
  projects/building-blocks/contrib/elftoolchain/libdwarf/_libdwarf.h
  projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_reloc.c
  projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3
  projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.c
  projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.h
  projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c
  projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_reloc.c
  projects/building-blocks/contrib/netbsd-tests/games/t_factor.sh
  projects/building-blocks/etc/login.conf
  projects/building-blocks/etc/master.passwd
  projects/building-blocks/etc/mtree/BSD.debug.dist
  projects/building-blocks/etc/mtree/BSD.usr.dist
  projects/building-blocks/etc/root/dot.cshrc
  projects/building-blocks/etc/root/dot.login
  projects/building-blocks/etc/root/dot.profile
  projects/building-blocks/games/Makefile.inc
  projects/building-blocks/games/caesar/rot13.sh
  projects/building-blocks/games/fortune/datfiles/Makefile
  projects/building-blocks/include/stdio.h
  projects/building-blocks/lib/libc/gen/ulimit.c
  projects/building-blocks/lib/libthr/libthr.3
  projects/building-blocks/release/scripts/make-manifest.sh
  projects/building-blocks/share/man/man4/led.4
  projects/building-blocks/share/man/man6/intro.6
  projects/building-blocks/share/man/man7/hier.7
  projects/building-blocks/share/mk/bsd.prog.mk
  projects/building-blocks/share/skel/Makefile
  projects/building-blocks/share/skel/dot.cshrc.in
  projects/building-blocks/share/skel/dot.login.in
  projects/building-blocks/share/skel/dot.profile.in
  projects/building-blocks/sys/arm/arm/db_trace.c
  projects/building-blocks/sys/arm/xscale/ixp425/if_npe.c
  projects/building-blocks/sys/boot/arm/ixp425/boot2/ixp425_board.c
  projects/building-blocks/sys/boot/pc98/boot2/Makefile
  projects/building-blocks/sys/cam/ctl/ctl.c
  projects/building-blocks/sys/cam/ctl/ctl.h
  projects/building-blocks/sys/cam/ctl/ctl_backend_block.c
  projects/building-blocks/sys/cam/ctl/ctl_private.h
  projects/building-blocks/sys/cam/ctl/ctl_tpc.c
  projects/building-blocks/sys/cam/ctl/ctl_tpc.h
  projects/building-blocks/sys/cam/ctl/ctl_tpc_local.c
  projects/building-blocks/sys/cam/scsi/scsi_all.h
  projects/building-blocks/sys/cddl/dev/fbt/arm/fbt_isa.c
  projects/building-blocks/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
  projects/building-blocks/sys/dev/hwpmc/hwpmc_armv7.c
  projects/building-blocks/sys/kern/kern_sig.c
  projects/building-blocks/sys/kern/kern_timeout.c
  projects/building-blocks/sys/x86/iommu/intel_drv.c
  projects/building-blocks/sys/x86/iommu/intel_reg.h
  projects/building-blocks/sys/x86/iommu/intel_utils.c
  projects/building-blocks/tools/build/mk/OptionalObsoleteFiles.inc
  projects/building-blocks/tools/tools/nanobsd/gateworks/Files/root/.profile
  projects/building-blocks/tools/tools/nanobsd/pcengines/Files/root/.cshrc
  projects/building-blocks/tools/tools/nanobsd/pcengines/Files/root/.login
  projects/building-blocks/tools/tools/nanobsd/rescue/Files/root/.cshrc
  projects/building-blocks/usr.bin/svn/svn/Makefile
  projects/building-blocks/usr.bin/wc/wc.c
  projects/building-blocks/usr.bin/whereis/pathnames.h
  projects/building-blocks/usr.bin/whereis/whereis.1
  projects/building-blocks/usr.bin/whereis/whereis.c
  projects/building-blocks/usr.sbin/bsdconfig/include/messages.subr
  projects/building-blocks/usr.sbin/ctladm/ctladm.8
  projects/building-blocks/usr.sbin/ctld/ctl.conf.5
  projects/building-blocks/usr.sbin/ctld/ctld.c
  projects/building-blocks/usr.sbin/ctld/ctld.h
  projects/building-blocks/usr.sbin/ctld/keys.c
  projects/building-blocks/usr.sbin/flowctl/flowctl.c
  projects/building-blocks/usr.sbin/iscsid/iscsid.h
  projects/building-blocks/usr.sbin/iscsid/keys.c
  projects/building-blocks/usr.sbin/pc-sysinstall/backend/functions-extractimage.sh
Directory Properties:
  projects/building-blocks/   (props changed)
  projects/building-blocks/contrib/binutils/   (props changed)
  projects/building-blocks/contrib/elftoolchain/   (props changed)
  projects/building-blocks/etc/   (props changed)
  projects/building-blocks/include/   (props changed)
  projects/building-blocks/lib/libc/   (props changed)
  projects/building-blocks/share/   (props changed)
  projects/building-blocks/share/man/man4/   (props changed)
  projects/building-blocks/sys/   (props changed)
  projects/building-blocks/sys/boot/   (props changed)

Modified: projects/building-blocks/Makefile.inc1
==============================================================================
--- projects/building-blocks/Makefile.inc1	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/Makefile.inc1	Thu Feb 12 21:17:50 2015	(r278638)
@@ -189,9 +189,8 @@ OBJTREE=	${MAKEOBJDIRPREFIX}
 OBJTREE=	${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH}
 .endif
 WORLDTMP=	${OBJTREE}${.CURDIR}/tmp
-# /usr/games added for fortune which depend on strfile
-BPATH=		${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/usr/games:${WORLDTMP}/legacy/bin
-XPATH=		${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games
+BPATH=		${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/bin
+XPATH=		${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin
 STRICTTMPPATH=	${BPATH}:${XPATH}
 TMPPATH=	${STRICTTMPPATH}:${PATH}
 
@@ -812,9 +811,6 @@ ITOOLS+=makewhatis
 
 # Non-base distributions produced by the base system
 EXTRA_DISTRIBUTIONS=	doc
-.if ${MK_GAMES} != "no"
-EXTRA_DISTRIBUTIONS+=	games
-.endif
 .if defined(LIB32TMP) && ${MK_LIB32} != "no"
 EXTRA_DISTRIBUTIONS+=	lib32
 .endif

Modified: projects/building-blocks/ObsoleteFiles.inc
==============================================================================
--- projects/building-blocks/ObsoleteFiles.inc	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/ObsoleteFiles.inc	Thu Feb 12 21:17:50 2015	(r278638)
@@ -38,6 +38,22 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20150212: /usr/games moving into /usr/bin
+OLD_FILES+=usr/games/bcd
+OLD_FILES+=usr/games/caesar
+OLD_FILES+=usr/games/factor
+OLD_FILES+=usr/games/fortune
+OLD_FILES+=usr/games/grdc
+OLD_FILES+=usr/games/morse
+OLD_FILES+=usr/games/number
+OLD_FILES+=usr/games/pom
+OLD_FILES+=usr/games/ppt
+OLD_FILES+=usr/games/primes
+OLD_FILES+=usr/games/random
+OLD_FILES+=usr/games/rot13
+OLD_FILES+=usr/games/strfile
+OLD_FILES+=usr/games/unstr
+OLD_DIRS+=usr/games
 # 20150209: liblzma header
 OLD_FILES+=usr/include/lzma/lzma.h
 # 20150124: spl.9 and friends

Modified: projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh
==============================================================================
--- projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh	Thu Feb 12 21:17:50 2015	(r278638)
@@ -19,79 +19,71 @@ jail_name_to_jid()
 
 base=pgrep_j_test
 
+if [ `id -u` -ne 0 ]; then
+	echo "1..0 # skip Test needs uid 0."
+	exit 0
+fi
+
 echo "1..3"
 
+sleep=$(pwd)/sleep.txt
+ln -sf /bin/sleep $sleep
+
 name="pgrep -j <jid>"
-if [ `id -u` -eq 0 ]; then
-	sleep=$(pwd)/sleep.txt
-	ln -sf /bin/sleep $sleep
-	jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
-	    command=daemon -p ${PWD}/${base}_1_1.pid $sleep 5 &
-
-	jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
-	    command=daemon -p ${PWD}/${base}_1_2.pid $sleep 5 &
-
-	jid1=$(jail_name_to_jid ${base}_1_1)
-	jid2=$(jail_name_to_jid ${base}_1_2)
-	jid="${jid1},${jid2}"
-	pid1="$(pgrep -f -x -j $jid "$sleep 5" | sort)"
-	pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \
-	    $(cat ${PWD}/${base}_1_2.pid) | sort)
-	if [ "$pid1" = "$pid2" ]; then
-		echo "ok 1 - $name"
-	else
-		echo "not ok 1 - $name"
-	fi
-	[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
-	[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
-	rm -f $sleep
+sleep_amount=5
+jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_1_1.pid $sleep $sleep_amount &
+
+jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount &
+
+jid1=$(jail_name_to_jid ${base}_1_1)
+jid2=$(jail_name_to_jid ${base}_1_2)
+jid="${jid1},${jid2}"
+pid1="$(pgrep -f -x -j $jid "$sleep $sleep_amount" | sort)"
+pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \
+    $(cat ${PWD}/${base}_1_2.pid) | sort)
+if [ "$pid1" = "$pid2" ]; then
+	echo "ok 1 - $name"
 else
-	echo "ok 1 - $name # skip Test needs uid 0."
+	echo "not ok 1 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'"
 fi
+[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
+[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
 
 name="pgrep -j any"
-if [ `id -u` -eq 0 ]; then
-	sleep=$(pwd)/sleep.txt
-	ln -sf /bin/sleep $sleep
-	jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
-	    command=daemon -p ${PWD}/${base}_2_1.pid $sleep 5 &
-
-	jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
-	    command=daemon -p ${PWD}/${base}_2_2.pid $sleep 5 &
-
-	sleep 2
-	pid1="$(pgrep -f -x -j any "$sleep 5" | sort)"
-	pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_2_1.pid)" \
-	    $(cat ${PWD}/${base}_2_2.pid) | sort)
-	if [ "$pid1" = "$pid2" ]; then
-		echo "ok 2 - $name"
-	else
-		echo "not ok 2 - $name"
-	fi
-	[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
-	[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
-	rm -f $sleep
+sleep_amount=6
+jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount &
+
+jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount &
+
+sleep 2
+pid1="$(pgrep -f -x -j any "$sleep $sleep_amount" | sort)"
+pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_2_1.pid)" \
+    $(cat ${PWD}/${base}_2_2.pid) | sort)
+if [ "$pid1" = "$pid2" ]; then
+	echo "ok 2 - $name"
 else
-	echo "ok 2 - $name # skip Test needs uid 0."
+	echo "not ok 2 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'"
 fi
+[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
+[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
 
 name="pgrep -j none"
-if [ `id -u` -eq 0 ]; then
-	sleep=$(pwd)/sleep.txt
-	ln -sf /bin/sleep $sleep
-	daemon -p ${PWD}/${base}_3_1.pid $sleep 5 &
-	jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
-	    command=daemon -p ${PWD}/${base}_3_2.pid $sleep 5 &
-	sleep 2
-	pid="$(pgrep -f -x -j none "$sleep 5")"
-	if [ "$pid" = "$(cat ${PWD}/${base}_3_1.pid)" ]; then
-		echo "ok 3 - $name"
-	else
-		echo "not ok 3 - $name"
-	fi
-	rm -f $sleep
-	[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat $PWD/${base}_3_1.pid) 
-	[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat $PWD/${base}_3_2.pid) 
+sleep_amount=7
+daemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount &
+jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount &
+sleep 2
+pid="$(pgrep -f -x -j none "$sleep $sleep_amount")"
+if [ "$pid" = "$(cat ${PWD}/${base}_3_1.pid)" ]; then
+	echo "ok 3 - $name"
 else
-	echo "ok 3 - $name # skip Test needs uid 0."
+	echo "not ok 3 - $name # pgrep output: '$(echo $pid1)', pidfile output: '$(echo $pid2)'"
 fi
+[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat $PWD/${base}_3_1.pid) 
+[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat $PWD/${base}_3_2.pid) 
+
+rm -f $sleep

Modified: projects/building-blocks/contrib/binutils/ld/scripttempl/elf.sc
==============================================================================
--- projects/building-blocks/contrib/binutils/ld/scripttempl/elf.sc	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/binutils/ld/scripttempl/elf.sc	Thu Feb 12 21:17:50 2015	(r278638)
@@ -402,8 +402,8 @@ cat <<EOF
   .fini_array   ${RELOCATING-0} :
   {
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
-    KEEP (*(.fini_array))
     KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array))
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
   }
   ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/_libdwarf.h
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/_libdwarf.h	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/_libdwarf.h	Thu Feb 12 21:17:50 2015	(r278638)
@@ -49,7 +49,7 @@
 struct _libdwarf_globals {
 	Dwarf_Handler	errhand;
 	Dwarf_Ptr	errarg;
-	int		applyrela;
+	int		applyreloc;
 };
 
 extern struct _libdwarf_globals _libdwarf;

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_reloc.c
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_reloc.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_reloc.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -33,8 +33,8 @@ dwarf_set_reloc_application(int apply)
 {
 	int oldapply;
 
-	oldapply = _libdwarf.applyrela;
-	_libdwarf.applyrela = apply;
+	oldapply = _libdwarf.applyreloc;
+	_libdwarf.applyreloc = apply;
 
 	return (oldapply);
 }

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3	Thu Feb 12 21:17:50 2015	(r278638)
@@ -24,7 +24,7 @@
 .\"
 .\" $Id: dwarf_set_reloc_application.3 2075 2011-10-27 03:47:28Z jkoshy $
 .\"
-.Dd June 26, 2011
+.Dd February 11, 2015
 .Os
 .Dt DWARF_SET_RELOC_APPLICATION 3
 .Sh NAME
@@ -47,6 +47,8 @@ handled by the DWARF(3) library.
 If the argument
 .Ar apply
 holds a non-zero value, the library will process all the relevant
+.Dq ".rel"
+and
 .Dq ".rela"
 relocation sections and will apply the relocation records found to
 their corresponding DWARF sections.

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.c
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -31,5 +31,5 @@ ELFTC_VCSID("$Id: libdwarf.c 2070 2011-1
 struct _libdwarf_globals _libdwarf = {
 	.errhand	= NULL,
 	.errarg		= NULL,
-	.applyrela	= 1
+	.applyreloc	= 1
 };

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.h
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.h	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf.h	Thu Feb 12 21:17:50 2015	(r278638)
@@ -439,6 +439,7 @@ enum Dwarf_ISA {
 	DW_ISA_SPARC,
 	DW_ISA_X86,
 	DW_ISA_X86_64,
+	DW_ISA_AARCH64,
 	DW_ISA_MAX
 };
 

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -50,32 +50,46 @@ static const char *debug_name[] = {
 };
 
 static void
-_dwarf_elf_apply_reloc(Dwarf_Debug dbg, void *buf, Elf_Data *rel_data,
-    Elf_Data *symtab_data, int endian)
+_dwarf_elf_write_reloc(Dwarf_Debug dbg, Elf_Data *symtab_data, int endian,
+    void *buf, uint64_t offset, GElf_Xword r_info, GElf_Sxword r_addend)
 {
-	Dwarf_Unsigned type;
-	GElf_Rela rela;
 	GElf_Sym sym;
-	size_t symndx;
-	uint64_t offset;
-	int size, j;
+	int size;
 
-	j = 0;
-	while (gelf_getrela(rel_data, j++, &rela) != NULL) {
-		symndx = GELF_R_SYM(rela.r_info);
-		type = GELF_R_TYPE(rela.r_info);
+	if (gelf_getsym(symtab_data, GELF_R_SYM(r_info), &sym) == NULL)
+		return;
+	if ((size = _dwarf_get_reloc_size(dbg, GELF_R_TYPE(r_info))) == 0)
+		return; /* Unknown or non-absolute relocation. */
+	if (endian == ELFDATA2MSB)
+		_dwarf_write_msb(buf, &offset, sym.st_value + r_addend, size);
+	else
+		_dwarf_write_lsb(buf, &offset, sym.st_value + r_addend, size);
+}
 
-		if (gelf_getsym(symtab_data, symndx, &sym) == NULL)
-			continue;
+static void
+_dwarf_elf_apply_rel_reloc(Dwarf_Debug dbg, void *buf, Elf_Data *rel_data,
+    Elf_Data *symtab_data, int endian)
+{
+	GElf_Rel rel;
+	int j;
 
-		offset = rela.r_offset;
-		size = _dwarf_get_reloc_size(dbg, type);
+	j = 0;
+	while (gelf_getrel(rel_data, j++, &rel) != NULL)
+		_dwarf_elf_write_reloc(dbg, symtab_data, endian, buf,
+		     rel.r_offset, rel.r_info, 0);
+}
 
-		if (endian == ELFDATA2MSB)
-			_dwarf_write_msb(buf, &offset, rela.r_addend, size);
-		else
-			_dwarf_write_lsb(buf, &offset, rela.r_addend, size);
-	}
+static void
+_dwarf_elf_apply_rela_reloc(Dwarf_Debug dbg, void *buf, Elf_Data *rel_data,
+    Elf_Data *symtab_data, int endian)
+{
+	GElf_Rela rela;
+	int j;
+
+	j = 0;
+	while (gelf_getrela(rel_data, j++, &rela) != NULL)
+		_dwarf_elf_write_reloc(dbg, symtab_data, endian, buf,
+		    rela.r_offset, rela.r_info, rela.r_addend);
 }
 
 static int
@@ -104,7 +118,8 @@ _dwarf_elf_relocate(Dwarf_Debug dbg, Elf
 			return (DW_DLE_ELF);
 		}
 
-		if (sh.sh_type != SHT_RELA || sh.sh_size == 0)
+		if ((sh.sh_type != SHT_REL && sh.sh_type != SHT_RELA) ||
+		     sh.sh_size == 0)
 			continue;
 
 		if (sh.sh_info == shndx && sh.sh_link == symtab) {
@@ -125,8 +140,12 @@ _dwarf_elf_relocate(Dwarf_Debug dbg, Elf
 			}
 			memcpy(ed->ed_alloc, ed->ed_data->d_buf,
 			    ed->ed_data->d_size);
-			_dwarf_elf_apply_reloc(dbg, ed->ed_alloc, rel,
-			    symtab_data, eh.e_ident[EI_DATA]);
+			if (sh.sh_type == SHT_REL)
+				_dwarf_elf_apply_rel_reloc(dbg, ed->ed_alloc,
+				    rel, symtab_data, eh.e_ident[EI_DATA]);
+			else
+				_dwarf_elf_apply_rela_reloc(dbg, ed->ed_alloc,
+				    rel, symtab_data, eh.e_ident[EI_DATA]);
 
 			return (DW_DLE_NONE);
 		}
@@ -282,7 +301,7 @@ _dwarf_elf_init(Dwarf_Debug dbg, Elf *el
 				}
 			}
 
-			if (_libdwarf.applyrela) {
+			if (_libdwarf.applyreloc) {
 				if (_dwarf_elf_relocate(dbg, elf,
 				    &e->eo_data[j], elf_ndxscn(scn), symtab_ndx,
 				    symtab_data, error) != DW_DLE_NONE)

Modified: projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_reloc.c
==============================================================================
--- projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_reloc.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/elftoolchain/libdwarf/libdwarf_reloc.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -35,6 +35,8 @@ _dwarf_get_reloc_type(Dwarf_P_Debug dbg,
 	assert(dbg != NULL);
 
 	switch (dbg->dbgp_isa) {
+	case DW_ISA_AARCH64:
+		return (is64 ? R_AARCH64_ABS64 : R_AARCH64_ABS32);
 	case DW_ISA_X86:
 		return (R_386_32);
 	case DW_ISA_X86_64:
@@ -62,6 +64,12 @@ _dwarf_get_reloc_size(Dwarf_Debug dbg, D
 	switch (dbg->dbg_machine) {
 	case EM_NONE:
 		break;
+	case EM_AARCH64:
+		if (rel_type == R_AARCH64_ABS32)
+			return (4);
+		else if (rel_type == R_AARCH64_ABS64)
+			return (8);
+		break;
 	case EM_ARM:
 		if (rel_type == R_ARM_ABS32)
 			return (4);

Modified: projects/building-blocks/contrib/netbsd-tests/games/t_factor.sh
==============================================================================
--- projects/building-blocks/contrib/netbsd-tests/games/t_factor.sh	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/contrib/netbsd-tests/games/t_factor.sh	Thu Feb 12 21:17:50 2015	(r278638)
@@ -27,13 +27,13 @@
 
 expect() {
 	echo "${2}" >expout
-	atf_check -s eq:0 -o file:expout -e empty /usr/games/factor ${1}
+	atf_check -s eq:0 -o file:expout -e empty /usr/bin/factor ${1}
 }
 
 atf_test_case overflow
 overflow_head() {
 	atf_set "descr" "Tests for overflow conditions"
-	atf_set "require.progs" "/usr/games/factor"
+	atf_set "require.progs" "/usr/bin/factor"
 }
 overflow_body() {
 	expect '8675309' '8675309: 8675309'
@@ -44,7 +44,7 @@ atf_test_case loop
 loop_head() {
 	atf_set "descr" "Tests some cases that once locked the program" \
 	                "in an infinite loop"
-	atf_set "require.progs" "/usr/games/factor"
+	atf_set "require.progs" "/usr/bin/factor"
 }
 loop_body() {
 	expect '99999999999991' '99999999999991: 7 13 769231 1428571'

Modified: projects/building-blocks/etc/login.conf
==============================================================================
--- projects/building-blocks/etc/login.conf	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/login.conf	Thu Feb 12 21:17:50 2015	(r278638)
@@ -27,7 +27,7 @@ default:\
 	:copyright=/etc/COPYRIGHT:\
 	:welcome=/etc/motd:\
 	:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
-	:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
+	:path=/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\
 	:nologin=/var/run/nologin:\
 	:cputime=unlimited:\
 	:datasize=unlimited:\

Modified: projects/building-blocks/etc/master.passwd
==============================================================================
--- projects/building-blocks/etc/master.passwd	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/master.passwd	Thu Feb 12 21:17:50 2015	(r278638)
@@ -7,7 +7,7 @@ operator:*:2:5::0:0:System &:/:/usr/sbin
 bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin
 tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin
 kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin
-games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin
+games:*:7:13::0:0:Games pseudo-user:/:/usr/sbin/nologin
 news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin
 man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
 sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologin

Modified: projects/building-blocks/etc/mtree/BSD.debug.dist
==============================================================================
--- projects/building-blocks/etc/mtree/BSD.debug.dist	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/mtree/BSD.debug.dist	Thu Feb 12 21:17:50 2015	(r278638)
@@ -21,8 +21,6 @@
         usr
             bin
             ..
-            games
-            ..
             lib
                 clang
                     3.5.1

Modified: projects/building-blocks/etc/mtree/BSD.usr.dist
==============================================================================
--- projects/building-blocks/etc/mtree/BSD.usr.dist	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/mtree/BSD.usr.dist	Thu Feb 12 21:17:50 2015	(r278638)
@@ -7,8 +7,6 @@
 .
     bin
     ..
-    games
-    ..
     include
     ..
     lib

Modified: projects/building-blocks/etc/root/dot.cshrc
==============================================================================
--- projects/building-blocks/etc/root/dot.cshrc	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/root/dot.cshrc	Thu Feb 12 21:17:50 2015	(r278638)
@@ -15,7 +15,7 @@ alias ll	ls -lAF
 # A righteous umask
 umask 22
 
-set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)
+set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)
 
 setenv	EDITOR	vi
 setenv	PAGER	more

Modified: projects/building-blocks/etc/root/dot.login
==============================================================================
--- projects/building-blocks/etc/root/dot.login	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/root/dot.login	Thu Feb 12 21:17:50 2015	(r278638)
@@ -6,4 +6,4 @@
 #
 
 # Uncomment to display a random cookie each login:
-# /usr/games/fortune -s
+# if ( -x /usr/bin/fortune ) /usr/bin/fortune -s

Modified: projects/building-blocks/etc/root/dot.profile
==============================================================================
--- projects/building-blocks/etc/root/dot.profile	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/etc/root/dot.profile	Thu Feb 12 21:17:50 2015	(r278638)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 #
-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:~/bin
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:~/bin
 export PATH
 HOME=/root
 export HOME

Modified: projects/building-blocks/games/Makefile.inc
==============================================================================
--- projects/building-blocks/games/Makefile.inc	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/games/Makefile.inc	Thu Feb 12 21:17:50 2015	(r278638)
@@ -1,7 +1,6 @@
 #	@(#)Makefile.inc	8.1 (Berkeley) 5/31/93
 # $FreeBSD$
 
-BINDIR?=	/usr/games
+BINDIR?=	/usr/bin
 FILESDIR?=	${SHAREDIR}/games
 WARNS?=		6
-DISTRIBUTION?=	games

Modified: projects/building-blocks/games/caesar/rot13.sh
==============================================================================
--- projects/building-blocks/games/caesar/rot13.sh	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/games/caesar/rot13.sh	Thu Feb 12 21:17:50 2015	(r278638)
@@ -30,4 +30,4 @@
 #	@(#)rot13.sh	8.1 (Berkeley) 5/31/93
 # $FreeBSD$
 
-exec /usr/games/caesar 13 "$@"
+exec /usr/bin/caesar 13 "$@"

Modified: projects/building-blocks/games/fortune/datfiles/Makefile
==============================================================================
--- projects/building-blocks/games/fortune/datfiles/Makefile	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/games/fortune/datfiles/Makefile	Thu Feb 12 21:17:50 2015	(r278638)
@@ -15,7 +15,7 @@ FILESDIR=	${SHAREDIR}/games/fortune
 
 .for f in ${DB}
 $f.dat: $f
-	PATH=$$PATH:/usr/games:${.OBJDIR}/../strfile \
+	PATH=$$PATH:/usr/bin:${.OBJDIR}/../strfile \
 	    strfile -Cs ${.ALLSRC} ${.TARGET}
 .endfor
 

Modified: projects/building-blocks/include/stdio.h
==============================================================================
--- projects/building-blocks/include/stdio.h	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/include/stdio.h	Thu Feb 12 21:17:50 2015	(r278638)
@@ -166,7 +166,7 @@ __END_DECLS
 #define	__SRW	0x0010		/* open for reading & writing */
 #define	__SEOF	0x0020		/* found EOF */
 #define	__SERR	0x0040		/* found error */
-#define	__SMBF	0x0080		/* _buf is from malloc */
+#define	__SMBF	0x0080		/* _bf._base is from malloc */
 #define	__SAPP	0x0100		/* fdopen()ed in append mode */
 #define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
 #define	__SOPT	0x0400		/* do fseek() optimization */

Modified: projects/building-blocks/lib/libc/gen/ulimit.c
==============================================================================
--- projects/building-blocks/lib/libc/gen/ulimit.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/lib/libc/gen/ulimit.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -53,13 +53,13 @@ ulimit(int cmd, ...)
 		va_start(ap, cmd);
 		arg = va_arg(ap, long);
 		va_end(ap);
+		if (arg > RLIM_INFINITY / 512 || arg < 0)
+			arg = RLIM_INFINITY / 512;
 		limit.rlim_max = limit.rlim_cur = (rlim_t)arg * 512;
 
 		/* The setrlimit() function sets errno to EPERM if needed. */
 		if (setrlimit(RLIMIT_FSIZE, &limit) == -1)
 			return (-1);
-		if (arg * 512 > LONG_MAX)
-			return (LONG_MAX);
 		return (arg);
 	} else {
 		errno = EINVAL;

Modified: projects/building-blocks/lib/libthr/libthr.3
==============================================================================
--- projects/building-blocks/lib/libthr/libthr.3	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/lib/libthr/libthr.3	Thu Feb 12 21:17:50 2015	(r278638)
@@ -1,5 +1,5 @@
 .\" Copyright (c) 2005 Robert N. M. Watson
-.\" Copyright (c) 2014 The FreeBSD Foundation, Inc.
+.\" Copyright (c) 2014,2015 The FreeBSD Foundation, Inc.
 .\" All rights reserved.
 .\"
 .\" Part of this documentation was written by
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 26, 2014
+.Dd February 12, 2015
 .Dt LIBTHR 3
 .Os
 .Sh NAME
@@ -200,45 +200,25 @@ Bigger values reduce the frequency of th
 The value must be between 0 and 255.
 .El
 .Sh INTERACTION WITH RUN-TIME LINKER
-The
+On load,
 .Nm
-library must appear before
-.Li libc
-in the global order of depended objects.
-.Pp
-Loading
-.Nm
-with the
-.Xr dlopen 3
-call in the process after the program binary is activated
-is not supported, and causes miscellaneous and hard-to-diagnose misbehaviour.
-This is due to
-.Nm
-interposing several important
-.Li libc
-symbols to provide thread-safe services.
-In particular,
-.Dv errno
-and the locking stubs from
-.Li libc
-are affected.
-This requirement is currently not enforced.
-.Pp
-If the program loads any modules at run-time, and those modules may require
-threading services, the main program binary must be linked with
-.Li libpthread ,
-even if it does not require any services from the library.
+installs interposing handlers into the hooks exported by
+.Li libc .
+The interposers provide real locking implementation instead of the
+stubs for single-threaded processes in
+.Li ,
+cancellation support and some modifications to the signal operations.
 .Pp
 .Nm
 cannot be unloaded; the
 .Xr dlclose 3
 function does not perform any action when called with a handle for
 .Nm .
-One of the reasons is that the interposing of
+One of the reasons is that the internal interposing of
 .Li libc
 functions cannot be undone.
 .Sh SIGNALS
-The implementation also interposes the user-installed
+The implementation interposes the user-installed
 .Xr signal 3
 handlers.
 This interposing is done to postpone signal delivery to threads which

Modified: projects/building-blocks/release/scripts/make-manifest.sh
==============================================================================
--- projects/building-blocks/release/scripts/make-manifest.sh	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/release/scripts/make-manifest.sh	Thu Feb 12 21:17:50 2015	(r278638)
@@ -13,7 +13,6 @@ desc_base="Base system (MANDATORY)"
 desc_kernel="Kernel (MANDATORY)"
 desc_doc="Additional documentation"
 doc_default=off
-desc_games="Games (fortune, etc.)"
 desc_lib32="32-bit compatibility libraries"
 desc_ports="Ports tree"
 desc_src="System source code"

Modified: projects/building-blocks/share/man/man4/led.4
==============================================================================
--- projects/building-blocks/share/man/man4/led.4	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/man/man4/led.4	Thu Feb 12 21:17:50 2015	(r278638)
@@ -170,7 +170,7 @@ flashes
 .Pp
 .Dl *_*__**_
 .Bd -literal
-/usr/games/morse -l "Soekris rocks" > /dev/led/error
+/usr/bin/morse -l "Soekris rocks" > /dev/led/error
 .Ed
 .Sh SEE ALSO
 .Xr morse 6

Modified: projects/building-blocks/share/man/man6/intro.6
==============================================================================
--- projects/building-blocks/share/man/man6/intro.6	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/man/man6/intro.6	Thu Feb 12 21:17:50 2015	(r278638)
@@ -37,7 +37,7 @@
 This section contains information about games.
 The games
 are located in
-.Pa /usr/games
+.Pa /usr/bin
 if installed.
 You can get a short overview about all the games with the
 command:
@@ -45,13 +45,18 @@ command:
 $ apropos '\\(6\\)'
 .Ed
 .Sh FILES
-.Bl -tag -width /usr/games -compact
-.It Pa /usr/games
+.Bl -tag -width /usr/bin -compact
+.It Pa /usr/bin
 location of games
 .El
 .Sh SEE ALSO
 .Xr intro 1
 .Sh HISTORY
+In earlier versions of
+.Fx ,
+games were located in
+.Pa /usr/games .
+.Pp
 The
 .Nm
 section manual page appeared in

Modified: projects/building-blocks/share/man/man7/hier.7
==============================================================================
--- projects/building-blocks/share/man/man7/hier.7	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/man/man7/hier.7	Thu Feb 12 21:17:50 2015	(r278638)
@@ -187,8 +187,6 @@ common utilities, programming tools, and
 .It Pa compat/
 files needed to support binary compatibility with other operating systems,
 such as Linux
-.It Pa games/
-useful and semi-frivolous programs
 .It Pa include/
 standard C include files
 .Pp

Modified: projects/building-blocks/share/mk/bsd.prog.mk
==============================================================================
--- projects/building-blocks/share/mk/bsd.prog.mk	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/mk/bsd.prog.mk	Thu Feb 12 21:17:50 2015	(r278638)
@@ -62,7 +62,7 @@ PROG_FULL=${PROG}.full
     ${BINDIR} == "/bin" ||\
     ${BINDIR} == "/libexec" ||\
     ${BINDIR} == "/sbin" ||\
-    ${BINDIR:C%/usr/(bin|bsdinstall|games|libexec|lpr|sendmail|sm.bin|sbin)(/.*)?%/usr/bin%} == "/usr/bin"\
+    ${BINDIR:C%/usr/(bin|bsdinstall|libexec|lpr|sendmail|sm.bin|sbin)(/.*)?%/usr/bin%} == "/usr/bin"\
      )
 DEBUGFILEDIR=	${DEBUGDIR}${BINDIR}
 .else

Modified: projects/building-blocks/share/skel/Makefile
==============================================================================
--- projects/building-blocks/share/skel/Makefile	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/skel/Makefile	Thu Feb 12 21:17:50 2015	(r278638)
@@ -25,11 +25,6 @@ FILES2+=	dot.rhosts
 FILES1+=	dot.cshrc
 .endif
 
-.if ${MK_GAMES} == "no"
-dot.login_SED+=		-e "/\/usr\/games\/fortune /s/^/\#/"
-dot.profile_SED+=	-e "/\/usr\/games\/fortune /s/^/\#/"
-.endif
-
 .if ${MK_VI} == "no"
 dot.cshrc_SED+=		-e '/^setenv.*EDITOR.*vi$$/s/^/\#/'
 dot.mailrc_SED+=	-e '/^set EDITOR=vi$$/s/^/\#/' -e '/^set VISUAL=vi$$/s/^/\#/'

Modified: projects/building-blocks/share/skel/dot.cshrc.in
==============================================================================
--- projects/building-blocks/share/skel/dot.cshrc.in	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/skel/dot.cshrc.in	Thu Feb 12 21:17:50 2015	(r278638)
@@ -14,7 +14,7 @@ alias ll	ls -lAF
 
 # These are normally set through /etc/login.conf.  You may override them here
 # if wanted.
-# set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)
+# set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)
 # setenv	BLOCKSIZE	K
 # A righteous umask
 # umask 22

Modified: projects/building-blocks/share/skel/dot.login.in
==============================================================================
--- projects/building-blocks/share/skel/dot.login.in	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/skel/dot.login.in	Thu Feb 12 21:17:50 2015	(r278638)
@@ -5,4 +5,4 @@
 # see also csh(1), environ(7).
 #
 
-/usr/games/fortune freebsd-tips
+/usr/bin/fortune freebsd-tips

Modified: projects/building-blocks/share/skel/dot.profile.in
==============================================================================
--- projects/building-blocks/share/skel/dot.profile.in	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/share/skel/dot.profile.in	Thu Feb 12 21:17:50 2015	(r278638)
@@ -7,7 +7,7 @@
 
 # These are normally set through /etc/login.conf.  You may override them here
 # if wanted.
-# PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:$HOME/bin; export PATH
+# PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$HOME/bin; export PATH
 # BLOCKSIZE=K;	export BLOCKSIZE
 
 # Setting TERM is normally done through /etc/ttys.  Do only override
@@ -21,4 +21,4 @@ PAGER=more;  	export PAGER
 # set ENV to a file invoked each time sh is started for interactive use.
 ENV=$HOME/.shrc; export ENV
 
-/usr/games/fortune freebsd-tips
+/usr/bin/fortune freebsd-tips

Modified: projects/building-blocks/sys/arm/arm/db_trace.c
==============================================================================
--- projects/building-blocks/sys/arm/arm/db_trace.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/sys/arm/arm/db_trace.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
 #include <ddb/db_sym.h>
 #include <ddb/db_output.h>
 
-#ifdef __ARM_EABI__
 /*
  * Definitions for the instruction interpreter.
  *
@@ -453,131 +452,6 @@ db_stack_trace_cmd(struct unwind_state *
 		}
 	}
 }
-#endif
-
-/*
- * APCS stack frames are awkward beasts, so I don't think even trying to use
- * a structure to represent them is a good idea.
- *
- * Here's the diagram from the APCS.  Increasing address is _up_ the page.
- *
- *          save code pointer       [fp]        <- fp points to here
- *          return link value       [fp, #-4]
- *          return sp value         [fp, #-8]
- *          return fp value         [fp, #-12]
- *          [saved v7 value]
- *          [saved v6 value]
- *          [saved v5 value]
- *          [saved v4 value]
- *          [saved v3 value]
- *          [saved v2 value]
- *          [saved v1 value]
- *          [saved a4 value]
- *          [saved a3 value]
- *          [saved a2 value]
- *          [saved a1 value]
- *
- * The save code pointer points twelve bytes beyond the start of the
- * code sequence (usually a single STM) that created the stack frame.
- * We have to disassemble it if we want to know which of the optional
- * fields are actually present.
- */
-
-#ifndef __ARM_EABI__	/* The frame format is differend in AAPCS */
-static void
-db_stack_trace_cmd(db_expr_t addr, db_expr_t count, boolean_t kernel_only)
-{
-	u_int32_t	*frame, *lastframe;
-	c_db_sym_t sym;
-	const char *name;
-	db_expr_t value;
-	db_expr_t offset;
-	int	scp_offset;
-
-	frame = (u_int32_t *)addr;
-	lastframe = NULL;
-	scp_offset = -(get_pc_str_offset() >> 2);
-
-	while (count-- && frame != NULL && !db_pager_quit) {
-		db_addr_t	scp;
-		u_int32_t	savecode;
-		int		r;
-		u_int32_t	*rp;
-		const char	*sep;
-
-		/*
-		 * In theory, the SCP isn't guaranteed to be in the function
-		 * that generated the stack frame.  We hope for the best.
-		 */
-		scp = frame[FR_SCP];
-
-		sym = db_search_symbol(scp, DB_STGY_ANY, &offset);
-		if (sym == C_DB_SYM_NULL) {
-			value = 0;
-			name = "(null)";
-		} else
-			db_symbol_values(sym, &name, &value);
-		db_printf("%s() at ", name);
-		db_printsym(scp, DB_STGY_PROC);
-		db_printf("\n");
-#ifdef __PROG26
-		db_printf("\tscp=0x%08x rlv=0x%08x (", scp, frame[FR_RLV] & R15_PC);
-		db_printsym(frame[FR_RLV] & R15_PC, DB_STGY_PROC);
-		db_printf(")\n");
-#else
-		db_printf("\tscp=0x%08x rlv=0x%08x (", scp, frame[FR_RLV]);
-		db_printsym(frame[FR_RLV], DB_STGY_PROC);
-		db_printf(")\n");
-#endif
-		db_printf("\trsp=0x%08x rfp=0x%08x", frame[FR_RSP], frame[FR_RFP]);
-
-		savecode = ((u_int32_t *)scp)[scp_offset];
-		if ((savecode & 0x0e100000) == 0x08000000) {
-			/* Looks like an STM */
-			rp = frame - 4;
-			sep = "\n\t";
-			for (r = 10; r >= 0; r--) {
-				if (savecode & (1 << r)) {
-					db_printf("%sr%d=0x%08x",
-					    sep, r, *rp--);
-					sep = (frame - rp) % 4 == 2 ?
-					    "\n\t" : " ";
-				}
-			}
-		}
-
-		db_printf("\n");
-
-		/*
-		 * Switch to next frame up
-		 */
-		if (frame[FR_RFP] == 0)
-			break; /* Top of stack */
-
-		lastframe = frame;
-		frame = (u_int32_t *)(frame[FR_RFP]);
-
-		if (INKERNEL((int)frame)) {
-			/* staying in kernel */
-			if (frame <= lastframe) {
-				db_printf("Bad frame pointer: %p\n", frame);
-				break;
-			}
-		} else if (INKERNEL((int)lastframe)) {
-			/* switch from user to kernel */
-			if (kernel_only)
-				break;	/* kernel stack only */
-		} else {
-			/* in user */
-			if (frame <= lastframe) {
-				db_printf("Bad user frame pointer: %p\n",
-					  frame);
-				break;
-			}
-		}
-	}
-}
-#endif
 
 /* XXX stubs */
 void
@@ -600,24 +474,18 @@ db_md_set_watchpoint(db_expr_t addr, db_
 int
 db_trace_thread(struct thread *thr, int count)
 {
-#ifdef __ARM_EABI__
 	struct unwind_state state;
-#endif
 	struct pcb *ctx;
 
 	if (thr != curthread) {
 		ctx = kdb_thr_ctx(thr);
 
-#ifdef __ARM_EABI__
 		state.registers[FP] = ctx->pcb_regs.sf_r11;
 		state.registers[SP] = ctx->pcb_regs.sf_sp;
 		state.registers[LR] = ctx->pcb_regs.sf_lr;
 		state.registers[PC] = ctx->pcb_regs.sf_pc;
 
 		db_stack_trace_cmd(&state);
-#else
-		db_stack_trace_cmd(ctx->pcb_regs.sf_r11, -1, TRUE);
-#endif
 	} else
 		db_trace_self();
 	return (0);
@@ -626,7 +494,6 @@ db_trace_thread(struct thread *thr, int 
 void
 db_trace_self(void)
 {
-#ifdef __ARM_EABI__
 	struct unwind_state state;
 	uint32_t sp;
 
@@ -639,10 +506,4 @@ db_trace_self(void)
 	state.registers[PC] = (uint32_t)db_trace_self;
 
 	db_stack_trace_cmd(&state);
-#else
-	db_addr_t addr;
-
-	addr = (db_addr_t)__builtin_frame_address(0);
-	db_stack_trace_cmd(addr, -1, FALSE);
-#endif
 }

Modified: projects/building-blocks/sys/arm/xscale/ixp425/if_npe.c
==============================================================================
--- projects/building-blocks/sys/arm/xscale/ixp425/if_npe.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/sys/arm/xscale/ixp425/if_npe.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -285,7 +285,7 @@ unit2npeid(int unit)
 	};
 	/* XXX check feature register instead */
 	return (unit < 3 ? npeidmap[
-	    (cpu_id() & CPU_ID_CPU_MASK) == CPU_ID_IXP435][unit] : -1);
+	    (cpu_ident() & CPU_ID_CPU_MASK) == CPU_ID_IXP435][unit] : -1);
 }
 
 static int

Modified: projects/building-blocks/sys/boot/arm/ixp425/boot2/ixp425_board.c
==============================================================================
--- projects/building-blocks/sys/boot/arm/ixp425/boot2/ixp425_board.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/sys/boot/arm/ixp425/boot2/ixp425_board.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -74,7 +74,7 @@ board_init(void)
 {
 	struct board_config **pbp;
 
-	cputype = cpu_id() & CPU_ID_CPU_MASK;
+	cputype = cpu_ident() & CPU_ID_CPU_MASK;
 
 	SET_FOREACH(pbp, boards)
 		/* XXX pass down redboot board type */

Modified: projects/building-blocks/sys/boot/pc98/boot2/Makefile
==============================================================================
--- projects/building-blocks/sys/boot/pc98/boot2/Makefile	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/sys/boot/pc98/boot2/Makefile	Thu Feb 12 21:17:50 2015	(r278638)
@@ -92,6 +92,7 @@ boot2.out: ${BTXCRT} boot2.o sio.o
 	${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC}
 
 boot2.o: boot2.s
+	${CC} ${ACFLAGS} -c boot2.s
 
 SRCS=	boot2.c boot2.h
 

Modified: projects/building-blocks/sys/cam/ctl/ctl.c
==============================================================================
--- projects/building-blocks/sys/cam/ctl/ctl.c	Thu Feb 12 21:15:28 2015	(r278637)
+++ projects/building-blocks/sys/cam/ctl/ctl.c	Thu Feb 12 21:17:50 2015	(r278638)
@@ -4483,6 +4483,8 @@ ctl_init_log_page_index(struct ctl_lun *
 	lun->log_pages.index[1].page_len = k * 2;
 	lun->log_pages.index[2].page_data = &lun->log_pages.lbp_page[0];
 	lun->log_pages.index[2].page_len = 12*CTL_NUM_LBP_PARAMS;
+	lun->log_pages.index[3].page_data = (uint8_t *)&lun->log_pages.stat_page;
+	lun->log_pages.index[3].page_len = sizeof(lun->log_pages.stat_page);
 
 	return (CTL_RETVAL_COMPLETE);
 }
@@ -4720,6 +4722,9 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft
 		lun->serseq = CTL_LUN_SERSEQ_OFF;
 
 	lun->ctl_softc = ctl_softc;
+#ifdef CTL_TIME_IO
+	lun->last_busy = getsbinuptime();
+#endif
 	TAILQ_INIT(&lun->ooa_queue);
 	TAILQ_INIT(&lun->blocked_queue);
 	STAILQ_INIT(&lun->error_list);
@@ -7085,6 +7090,67 @@ ctl_lbp_log_sense_handler(struct ctl_scs
 }
 
 int
+ctl_sap_log_sense_handler(struct ctl_scsiio *ctsio,
+			       struct ctl_page_index *page_index,
+			       int pc)
+{
+	struct ctl_lun *lun;
+	struct stat_page *data;
+	uint64_t rn, wn, rb, wb;
+	struct bintime rt, wt;
+	int i;
+
+	lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr;
+	data = (struct stat_page *)page_index->page_data;

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



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