Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jan 2011 18:42:17 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r218029 - in projects/binutils-2.17: . bin/ps bin/sh contrib/top etc/periodic/daily gnu/lib/libgcc gnu/lib/libgomp gnu/usr.bin/binutils lib/libc lib/libc/sys lib/libelf libexec/rtld-elf...
Message-ID:  <201101281842.p0SIgHRP095016@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Fri Jan 28 18:42:17 2011
New Revision: 218029
URL: http://svn.freebsd.org/changeset/base/218029

Log:
  Sync: merge r217802 through r218028 from ^/head.

Added:
  projects/binutils-2.17/share/doc/papers/kernmalloc/appendix.ms
     - copied unchanged from r218024, head/share/doc/papers/kernmalloc/appendix.ms
  projects/binutils-2.17/share/doc/papers/sysperf/appendix.ms
     - copied unchanged from r218024, head/share/doc/papers/sysperf/appendix.ms
  projects/binutils-2.17/sys/dev/ath/ath_rate/sample/tx_schedules.h
     - copied unchanged from r218024, head/sys/dev/ath/ath_rate/sample/tx_schedules.h
  projects/binutils-2.17/sys/modules/khelp/h_ertt/
     - copied from r218024, head/sys/modules/khelp/h_ertt/
  projects/binutils-2.17/sys/netinet/khelp/
     - copied from r218024, head/sys/netinet/khelp/
  projects/binutils-2.17/tools/regression/bin/sh/builtins/trap7.0
     - copied unchanged from r218024, head/tools/regression/bin/sh/builtins/trap7.0
Modified:
  projects/binutils-2.17/Makefile
  projects/binutils-2.17/bin/ps/ps.1
  projects/binutils-2.17/bin/sh/var.c
  projects/binutils-2.17/etc/periodic/daily/800.scrub-zfs
  projects/binutils-2.17/gnu/lib/libgcc/Makefile
  projects/binutils-2.17/gnu/lib/libgomp/Makefile
  projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0
  projects/binutils-2.17/lib/libc/Makefile
  projects/binutils-2.17/lib/libc/sys/Makefile.inc
  projects/binutils-2.17/lib/libc/sys/ptrace.2
  projects/binutils-2.17/lib/libelf/elf_data.c
  projects/binutils-2.17/libexec/rtld-elf/amd64/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/arm/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/i386/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/ia64/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/map_object.c
  projects/binutils-2.17/libexec/rtld-elf/mips/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_machdep.h
  projects/binutils-2.17/libexec/rtld-elf/rtld.c
  projects/binutils-2.17/libexec/rtld-elf/sparc64/rtld_machdep.h
  projects/binutils-2.17/sbin/fdisk/fdisk.c
  projects/binutils-2.17/sbin/geom/class/part/gpart.8
  projects/binutils-2.17/sbin/hastctl/hastctl.c
  projects/binutils-2.17/sbin/hastd/control.c
  projects/binutils-2.17/sbin/hastd/hast.h
  projects/binutils-2.17/sbin/hastd/hastd.c
  projects/binutils-2.17/sbin/hastd/pjdlog.c
  projects/binutils-2.17/sbin/hastd/pjdlog.h
  projects/binutils-2.17/sbin/iscontrol/config.c
  projects/binutils-2.17/sbin/iscontrol/fsm.c
  projects/binutils-2.17/sbin/mount/mount.8
  projects/binutils-2.17/share/doc/papers/kernmalloc/Makefile
  projects/binutils-2.17/share/doc/papers/sysperf/Makefile
  projects/binutils-2.17/share/examples/etc/make.conf
  projects/binutils-2.17/share/man/man4/altq.4
  projects/binutils-2.17/share/man/man4/ixgb.4
  projects/binutils-2.17/share/man/man4/nfe.4
  projects/binutils-2.17/share/man/man4/re.4
  projects/binutils-2.17/share/man/man4/rgephy.4
  projects/binutils-2.17/share/man/man7/build.7
  projects/binutils-2.17/share/man/man9/Makefile
  projects/binutils-2.17/share/man/man9/sbuf.9
  projects/binutils-2.17/sys/amd64/amd64/machdep.c
  projects/binutils-2.17/sys/amd64/amd64/vm_machdep.c
  projects/binutils-2.17/sys/amd64/linux32/linux.h
  projects/binutils-2.17/sys/amd64/linux32/linux32_machdep.c
  projects/binutils-2.17/sys/cam/ata/ata_xpt.c
  projects/binutils-2.17/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c
  projects/binutils-2.17/sys/cddl/compat/opensolaris/sys/atomic.h
  projects/binutils-2.17/sys/compat/linprocfs/linprocfs.c
  projects/binutils-2.17/sys/compat/linux/linux_misc.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ah.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ah.h
  projects/binutils-2.17/sys/dev/ath/ath_hal/ah_debug.h
  projects/binutils-2.17/sys/dev/ath/ath_hal/ah_eeprom_v4k.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ah_eeprom_v4k.h
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5212/ar5212.h
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5416/ar2133.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5416/ar5416.h
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
  projects/binutils-2.17/sys/dev/ath/ath_hal/ar9002/ar9285v2.ini
  projects/binutils-2.17/sys/dev/ath/ath_rate/sample/sample.c
  projects/binutils-2.17/sys/dev/cxgb/cxgb_sge.c
  projects/binutils-2.17/sys/dev/md/md.c
  projects/binutils-2.17/sys/dev/mii/miidevs
  projects/binutils-2.17/sys/dev/mii/rlphy.c
  projects/binutils-2.17/sys/dev/re/if_re.c
  projects/binutils-2.17/sys/dev/siis/siis.c
  projects/binutils-2.17/sys/dev/siis/siis.h
  projects/binutils-2.17/sys/fs/nfs/nfsport.h
  projects/binutils-2.17/sys/fs/procfs/procfs_dbregs.c
  projects/binutils-2.17/sys/fs/procfs/procfs_fpregs.c
  projects/binutils-2.17/sys/fs/procfs/procfs_map.c
  projects/binutils-2.17/sys/fs/procfs/procfs_regs.c
  projects/binutils-2.17/sys/geom/geom_disk.c
  projects/binutils-2.17/sys/geom/journal/g_journal.c
  projects/binutils-2.17/sys/geom/part/g_part.c
  projects/binutils-2.17/sys/geom/part/g_part.h
  projects/binutils-2.17/sys/geom/part/g_part_bsd.c
  projects/binutils-2.17/sys/geom/part/g_part_ebr.c
  projects/binutils-2.17/sys/geom/part/g_part_gpt.c
  projects/binutils-2.17/sys/geom/part/g_part_mbr.c
  projects/binutils-2.17/sys/i386/i386/machdep.c
  projects/binutils-2.17/sys/i386/linux/linux_machdep.c
  projects/binutils-2.17/sys/kern/kern_descrip.c
  projects/binutils-2.17/sys/kern/kern_fork.c
  projects/binutils-2.17/sys/kern/kern_jail.c
  projects/binutils-2.17/sys/kern/kern_malloc.c
  projects/binutils-2.17/sys/kern/kern_proc.c
  projects/binutils-2.17/sys/kern/kern_sig.c
  projects/binutils-2.17/sys/kern/kern_sysctl.c
  projects/binutils-2.17/sys/kern/subr_lock.c
  projects/binutils-2.17/sys/kern/subr_sleepqueue.c
  projects/binutils-2.17/sys/kern/subr_trap.c
  projects/binutils-2.17/sys/kern/subr_witness.c
  projects/binutils-2.17/sys/kern/sys_process.c
  projects/binutils-2.17/sys/kern/uipc_syscalls.c
  projects/binutils-2.17/sys/kern/vfs_subr.c
  projects/binutils-2.17/sys/mips/include/sf_buf.h
  projects/binutils-2.17/sys/mips/mips/uio_machdep.c
  projects/binutils-2.17/sys/mips/mips/vm_machdep.c
  projects/binutils-2.17/sys/modules/khelp/Makefile
  projects/binutils-2.17/sys/net/if.c
  projects/binutils-2.17/sys/netinet/if_ether.c
  projects/binutils-2.17/sys/netinet/in_pcb.c
  projects/binutils-2.17/sys/netinet/sctp_cc_functions.c
  projects/binutils-2.17/sys/netinet/sctp_constants.h
  projects/binutils-2.17/sys/netinet/sctp_output.c
  projects/binutils-2.17/sys/netinet/sctp_pcb.h
  projects/binutils-2.17/sys/netinet/sctp_structs.h
  projects/binutils-2.17/sys/netinet/sctp_sysctl.h
  projects/binutils-2.17/sys/netinet/sctp_usrreq.c
  projects/binutils-2.17/sys/pci/if_rlreg.h
  projects/binutils-2.17/sys/powerpc/aim/trap.c
  projects/binutils-2.17/sys/powerpc/powerpc/exec_machdep.c
  projects/binutils-2.17/sys/sys/diskmbr.h
  projects/binutils-2.17/sys/sys/gpt.h
  projects/binutils-2.17/sys/sys/proc.h
  projects/binutils-2.17/sys/sys/ptrace.h
  projects/binutils-2.17/sys/sys/sysctl.h
  projects/binutils-2.17/sys/sys/sysent.h
  projects/binutils-2.17/sys/vm/uma_core.c
  projects/binutils-2.17/sys/vm/vm_phys.c
  projects/binutils-2.17/sys/vm/vm_reserv.c
  projects/binutils-2.17/tools/tools/ath/ath_ee_v4k_print/v4k.c
  projects/binutils-2.17/usr.bin/csup/updater.c
  projects/binutils-2.17/usr.bin/getopt/getopt.1
  projects/binutils-2.17/usr.bin/ktrdump/ktrdump.8
  projects/binutils-2.17/usr.bin/ktrdump/ktrdump.c
  projects/binutils-2.17/usr.bin/man/man.sh
  projects/binutils-2.17/usr.sbin/Makefile.mips
  projects/binutils-2.17/usr.sbin/usbdump/usbdump.c
Directory Properties:
  projects/binutils-2.17/   (props changed)
  projects/binutils-2.17/cddl/contrib/opensolaris/   (props changed)
  projects/binutils-2.17/contrib/bind9/   (props changed)
  projects/binutils-2.17/contrib/binutils/   (props changed)
  projects/binutils-2.17/contrib/bzip2/   (props changed)
  projects/binutils-2.17/contrib/dialog/   (props changed)
  projects/binutils-2.17/contrib/ee/   (props changed)
  projects/binutils-2.17/contrib/expat/   (props changed)
  projects/binutils-2.17/contrib/file/   (props changed)
  projects/binutils-2.17/contrib/gdb/   (props changed)
  projects/binutils-2.17/contrib/gdtoa/   (props changed)
  projects/binutils-2.17/contrib/gnu-sort/   (props changed)
  projects/binutils-2.17/contrib/groff/   (props changed)
  projects/binutils-2.17/contrib/less/   (props changed)
  projects/binutils-2.17/contrib/libpcap/   (props changed)
  projects/binutils-2.17/contrib/llvm/   (props changed)
  projects/binutils-2.17/contrib/llvm/tools/clang/   (props changed)
  projects/binutils-2.17/contrib/ncurses/   (props changed)
  projects/binutils-2.17/contrib/netcat/   (props changed)
  projects/binutils-2.17/contrib/ntp/   (props changed)
  projects/binutils-2.17/contrib/one-true-awk/   (props changed)
  projects/binutils-2.17/contrib/openbsm/   (props changed)
  projects/binutils-2.17/contrib/openpam/   (props changed)
  projects/binutils-2.17/contrib/pf/   (props changed)
  projects/binutils-2.17/contrib/sendmail/   (props changed)
  projects/binutils-2.17/contrib/tcpdump/   (props changed)
  projects/binutils-2.17/contrib/tcsh/   (props changed)
  projects/binutils-2.17/contrib/top/   (props changed)
  projects/binutils-2.17/contrib/top/install-sh   (props changed)
  projects/binutils-2.17/contrib/tzcode/stdtime/   (props changed)
  projects/binutils-2.17/contrib/tzcode/zic/   (props changed)
  projects/binutils-2.17/contrib/tzdata/   (props changed)
  projects/binutils-2.17/contrib/wpa/   (props changed)
  projects/binutils-2.17/contrib/xz/   (props changed)
  projects/binutils-2.17/crypto/openssh/   (props changed)
  projects/binutils-2.17/crypto/openssl/   (props changed)
  projects/binutils-2.17/lib/libc/   (props changed)
  projects/binutils-2.17/lib/libc/stdtime/   (props changed)
  projects/binutils-2.17/lib/libutil/   (props changed)
  projects/binutils-2.17/lib/libz/   (props changed)
  projects/binutils-2.17/sbin/   (props changed)
  projects/binutils-2.17/sbin/ipfw/   (props changed)
  projects/binutils-2.17/share/mk/bsd.arch.inc.mk   (props changed)
  projects/binutils-2.17/share/zoneinfo/   (props changed)
  projects/binutils-2.17/sys/   (props changed)
  projects/binutils-2.17/sys/amd64/include/xen/   (props changed)
  projects/binutils-2.17/sys/cddl/contrib/opensolaris/   (props changed)
  projects/binutils-2.17/sys/contrib/dev/acpica/   (props changed)
  projects/binutils-2.17/sys/contrib/octeon-sdk/   (props changed)
  projects/binutils-2.17/sys/contrib/pf/   (props changed)
  projects/binutils-2.17/sys/contrib/x86emu/   (props changed)
  projects/binutils-2.17/usr.bin/calendar/   (props changed)
  projects/binutils-2.17/usr.bin/csup/   (props changed)
  projects/binutils-2.17/usr.bin/procstat/   (props changed)
  projects/binutils-2.17/usr.sbin/zic/   (props changed)

Modified: projects/binutils-2.17/Makefile
==============================================================================
--- projects/binutils-2.17/Makefile	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/Makefile	Fri Jan 28 18:42:17 2011	(r218029)
@@ -28,7 +28,8 @@
 # delete-old-dirs     - Delete obsolete directories.
 # delete-old-files    - Delete obsolete files.
 # delete-old-libs     - Delete obsolete libraries.
-# targets             - Print a list of supported TARGET/TARGET_ARCH pairs.
+# targets             - Print a list of supported TARGET/TARGET_ARCH pairs
+#                       for world and kernel targets.
 #
 # This makefile is simple by design. The FreeBSD make automatically reads
 # the /usr/share/mk/sys.mk unless the -m argument is specified on the
@@ -297,7 +298,7 @@ TARGET_ARCHES_${target}?= ${target}
 .endfor
 
 targets:
-	@echo "Supported TARGETS/TARGET_ARCH pairs"
+	@echo "Supported TARGET/TARGET_ARCH pairs for world and kernel targets"
 .for target in ${TARGETS}
 .for target_arch in ${TARGET_ARCHES_${target}}
 	@echo "    ${target}/${target_arch}"

Modified: projects/binutils-2.17/bin/ps/ps.1
==============================================================================
--- projects/binutils-2.17/bin/ps/ps.1	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/bin/ps/ps.1	Fri Jan 28 18:42:17 2011	(r218029)
@@ -288,6 +288,7 @@ the include file
 .It Dv "P_ADVLOCK" Ta No "0x00001	Process may hold a POSIX advisory lock"
 .It Dv "P_CONTROLT" Ta No "0x00002	Has a controlling terminal"
 .It Dv "P_KTHREAD" Ta No "0x00004	Kernel thread"
+.It Dv "P_FOLLOWFORK" Ta No "0x00008	Attach debugger to new children"
 .It Dv "P_PPWAIT" Ta No "0x00010	Parent is waiting for child to exec/exit"
 .It Dv "P_PROFIL" Ta No "0x00020	Has started profiling"
 .It Dv "P_STOPPROF" Ta No "0x00040	Has thread in requesting to stop prof"

Modified: projects/binutils-2.17/bin/sh/var.c
==============================================================================
--- projects/binutils-2.17/bin/sh/var.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/bin/sh/var.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -600,9 +600,8 @@ var_compare(const void *a, const void *b
 
 
 /*
- * Command to list all variables which are set.  Currently this command
- * is invoked from the set command when the set command is called without
- * any variables.
+ * Command to list all variables which are set.  This is invoked from the
+ * set command when it is called without any options or operands.
  */
 
 int
@@ -840,9 +839,7 @@ setvarcmd(int argc, char **argv)
 
 
 /*
- * The unset builtin command.  We unset the function before we unset the
- * variable to allow a function to be unset when there is a readonly variable
- * with the same name.
+ * The unset builtin command.
  */
 
 int

Modified: projects/binutils-2.17/etc/periodic/daily/800.scrub-zfs
==============================================================================
--- projects/binutils-2.17/etc/periodic/daily/800.scrub-zfs	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/etc/periodic/daily/800.scrub-zfs	Fri Jan 28 18:42:17 2011	(r218029)
@@ -5,6 +5,10 @@
 
 # If there is a global system configuration file, suck it in.
 #
+
+newline="
+" # A single newline
+
 if [ -r /etc/defaults/periodic.conf ]
 then
     . /etc/defaults/periodic.conf
@@ -24,17 +28,19 @@ case "$daily_scrub_zfs_enable" in
 
 	for pool in ${daily_scrub_zfs_pools}; do
 		# sanity check
-		_status=$(zpool list ${pool} | sed -n -e '$p')
+		_status=$(zpool list "${pool}" 2> /dev/null)
 		if [ $? -ne 0 ]; then
 			echo "   WARNING: pool '${pool}' specified in"
 			echo "            '/etc/periodic.conf:daily_scrub_zfs_pools'"
 			echo "            does not exist"
 			continue
 		fi
-		if echo ${_status} | grep -q FAULTED; then
+		_status=${_status##*$newline}
+		case ${_status} in
+		*FAULTED*)
 			echo "Skipping faulted pool: ${pool}"
-			continue
-		fi
+			continue ;;
+		esac
 
 		# successful only if there is at least one pool to scrub
 		rc=0

Modified: projects/binutils-2.17/gnu/lib/libgcc/Makefile
==============================================================================
--- projects/binutils-2.17/gnu/lib/libgcc/Makefile	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/gnu/lib/libgcc/Makefile	Fri Jan 28 18:42:17 2011	(r218029)
@@ -121,8 +121,8 @@ LIB2FUNCS_EXTRA = floatunsidf.c floatuns
 
 .if ${TARGET_CPUARCH} == mips
 LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
-# XXX do we need n32 here?
-.if ${TARGET_ARCH:Mmips64*} != ""
+# ABIs other than o32 need this
+.if ${TARGET_ARCH:Mmipse[lb]} == ""
 LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c
 LIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c
 LIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c

Modified: projects/binutils-2.17/gnu/lib/libgomp/Makefile
==============================================================================
--- projects/binutils-2.17/gnu/lib/libgomp/Makefile	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/gnu/lib/libgomp/Makefile	Fri Jan 28 18:42:17 2011	(r218029)
@@ -25,7 +25,7 @@ VERSION_MAP=	${SRCDIR}/libgomp.map
 # Target-specific OpenMP configuration
 .if ${MACHINE_CPUARCH} == arm || ${MACHINE_CPUARCH} == i386 || \
     ${MACHINE_ARCH} == powerpc || \
-    ${MACHINE_ARCH} == mipsel || ${MACHINE_ARCH} == mipseb
+    (${MACHINE_CPUARCH} == mips &&  ${MACHINE_ARCH:Mmips64*} == "")
 OMP_LOCK_ALIGN	=	4
 OMP_LOCK_KIND=		4
 OMP_LOCK_SIZE=		4

Modified: projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0
==============================================================================
--- projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0	Fri Jan 28 18:42:17 2011	(r218029)
@@ -30,7 +30,7 @@ SRCDIR=	${.CURDIR}/${RELSRC}
 
 .if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "i386" || \
 	${TARGET_ARCH} == "powerpc" || \
-	${TARGET_ARCH} == "mipsel" || ${TARGET_ARCH} == "mipseb"
+	(${TARGET_CPUARCH} == "mips" && ${TARGET_ARCH:Mmips64*} == "")
 CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=32
 .else
 CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=64

Modified: projects/binutils-2.17/lib/libc/Makefile
==============================================================================
--- projects/binutils-2.17/lib/libc/Makefile	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/lib/libc/Makefile	Fri Jan 28 18:42:17 2011	(r218029)
@@ -68,6 +68,7 @@ NOASM=
     ${LIBC_ARCH} != "ia64" && \
     ${LIBC_ARCH} != "powerpc64" && \
     ${LIBC_ARCH} != "sparc64" && \
+    ${MACHINE_ARCH:Mmipsn32*} == "" && \
     ${MACHINE_ARCH:Mmips64*} == ""
 .include "${.CURDIR}/quad/Makefile.inc"
 .endif

Modified: projects/binutils-2.17/lib/libc/sys/Makefile.inc
==============================================================================
--- projects/binutils-2.17/lib/libc/sys/Makefile.inc	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/lib/libc/sys/Makefile.inc	Fri Jan 28 18:42:17 2011	(r218029)
@@ -53,16 +53,23 @@ SYM_MAPS+=	${.CURDIR}/sys/Symbol.map
 # Generated files
 CLEANFILES+=	${SASM} ${SPSEUDO}
 
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
+    ${MACHINE_CPUARCH} == "powerpc"
+NOTE_GNU_STACK='\t.section .note.GNU-stack,"",%%progbits\n'
+.else
+NOTE_GNU_STACK=''
+.endif
+
 ${SASM}:
 	printf '#include "compat.h"\n' > ${.TARGET}
 	printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' >> ${.TARGET}
-	printf '\t.section .note.GNU-stack,"",%%progbits\n' >>${.TARGET}
+	printf  ${NOTE_GNU_STACK} >>${.TARGET}
 
 ${SPSEUDO}:
 	printf '#include "compat.h"\n' > ${.TARGET}
 	printf '#include "SYS.h"\nPSEUDO(${.PREFIX:S/_//})\n' \
 	    >> ${.TARGET}
-	printf '\t.section .note.GNU-stack,"",%%progbits\n' >>${.TARGET}
+	printf ${NOTE_GNU_STACK} >>${.TARGET}
 
 MAN+=	abort2.2 accept.2 access.2 acct.2 adjtime.2 \
 	aio_cancel.2 aio_error.2 aio_read.2 aio_return.2 \

Modified: projects/binutils-2.17/lib/libc/sys/ptrace.2
==============================================================================
--- projects/binutils-2.17/lib/libc/sys/ptrace.2	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/lib/libc/sys/ptrace.2	Fri Jan 28 18:42:17 2011	(r218029)
@@ -2,7 +2,7 @@
 .\"	$NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $
 .\"
 .\" This file is in the public domain.
-.Dd July 10, 2010
+.Dd January 23, 2011
 .Dt PTRACE 2
 .Os
 .Sh NAME
@@ -295,6 +295,8 @@ struct ptrace_lwpinfo {
 	sigset_t pl_sigmask;
 	sigset_t pl_siglist;
 	siginfo_t pl_siginfo;
+	char	pl_tdname[MAXCOMLEN + 1];
+	int	pl_child_pid;
 };
 .Ed
 .Pp
@@ -345,6 +347,14 @@ Indicates that
 member of
 .Vt "struct ptrace_lwpinfo"
 contains valid information.
+.It PL_FLAG_FORKED
+Indicates that the process is returning from a call to
+.Fn fork 2
+that created a new child process.
+The process identifier of the new process is available in the
+.Va pl_child_pid
+member of
+.Vt "struct ptrace_lwpinfo" .
 .El
 .It pl_sigmask
 The current signal mask of the LWP
@@ -356,11 +366,20 @@ on an LWP siglist until the thread is se
 The siginfo that accompanies the signal pending.
 Only valid for
 .Dv PL_EVENT_SIGNAL
-kind of stop, when
-.Va pl_flags
-has
+stop when
 .Dv PL_FLAG_SI
-set.
+is set in
+.Va pl_flags .
+.It pl_tdname
+The name of the thread.
+.It pl_child_pid
+The process identifier of the new child process.
+Only valid for a
+.Dv PL_EVENT_SIGNAL
+stop when
+.Dv PL_FLAG_FORKED
+is set in
+.Va pl_flags .
 .El
 .It PT_GETNUMLWPS
 This request returns the number of kernel threads associated with the
@@ -391,6 +410,21 @@ This request will trace the specified pr
 .It PT_SYSCALL
 This request will trace the specified process
 on each system call entry and exit.
+.It PT_FOLLOW_FORK
+This request controls tracing for new child processes of a traced process.
+If
+.Fa data
+is non-zero,
+then new child processes will enable tracing and stop before executing their
+first instruction.
+If
+.Fa data
+is zero, then new child processes will execute without tracing enabled.
+By default, tracing is not enabled for new child processes.
+Child processes do not inherit this property.
+The traced process will set the
+.Dv PL_FLAG_FORKED
+flag upon exit from a system call that creates a new process.
 .It PT_VM_TIMESTAMP
 This request returns the generation number or timestamp of the memory map of
 the traced process as the return value from
@@ -567,6 +601,7 @@ function appeared in
 .At v7 .
 .Sh BUGS
 The
+.Dv PL_FLAG_FORKED ,
 .Dv PL_FLAG_SCE ,
 .Dv PL_FLAG_SCX
 and

Modified: projects/binutils-2.17/lib/libelf/elf_data.c
==============================================================================
--- projects/binutils-2.17/lib/libelf/elf_data.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/lib/libelf/elf_data.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -115,8 +115,10 @@ elf_getdata(Elf_Scn *s, Elf_Data *d)
 	d->d_type    = elftype;
 	d->d_version = e->e_version;
 
-	if (sh_type == SHT_NOBITS)
+	if (sh_type == SHT_NOBITS || sh_size == 0) {
+	        STAILQ_INSERT_TAIL(&s->s_data, d, d_next);
 		return (d);
+        }
 
 	if ((d->d_buf = malloc(msz*count)) == NULL) {
 		(void) _libelf_release_data(d);

Modified: projects/binutils-2.17/libexec/rtld-elf/amd64/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/amd64/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/amd64/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -73,4 +73,7 @@ typedef struct {
 
 extern void *__tls_get_addr(tls_index *ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	PF_X
+#define	RTLD_DEFAULT_STACK_EXEC		PROT_EXEC
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/arm/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/arm/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/arm/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -69,4 +69,7 @@ void _rtld_bind_start(void);
 
 extern void *__tls_get_addr(tls_index *ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	PF_X
+#define	RTLD_DEFAULT_STACK_EXEC		PROT_EXEC
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/i386/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/i386/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/i386/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -74,4 +74,7 @@ typedef struct {
 extern void *___tls_get_addr(tls_index *ti) __attribute__((__regparm__(1)));
 extern void *__tls_get_addr(tls_index *ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	PF_X
+#define	RTLD_DEFAULT_STACK_EXEC		PROT_EXEC
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/ia64/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/ia64/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/ia64/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -65,4 +65,7 @@ void call_initfini_pointer(const struct 
 
 extern void *__tls_get_addr(unsigned long module, unsigned long offset);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	0
+#define	RTLD_DEFAULT_STACK_EXEC		0
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/map_object.c
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/map_object.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/map_object.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -101,7 +101,7 @@ map_object(int fd, const char *path, con
     phdyn = phinterp = phtls = NULL;
     phdr_vaddr = 0;
     segs = alloca(sizeof(segs[0]) * hdr->e_phnum);
-    stack_flags = PF_X | PF_R | PF_W;
+    stack_flags = RTLD_DEFAULT_STACK_PF_EXEC | PF_R | PF_W;
     while (phdr < phlimit) {
 	switch (phdr->p_type) {
 

Modified: projects/binutils-2.17/libexec/rtld-elf/mips/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/mips/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/mips/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -69,4 +69,7 @@ void _rtld_bind_start(void);
 
 extern void *__tls_get_addr(tls_index *ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	PF_X
+#define	RTLD_DEFAULT_STACK_EXEC		PROT_EXEC
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/powerpc/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -84,4 +84,7 @@ typedef struct {
 
 extern void *__tls_get_addr(tls_index* ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	PF_X
+#define	RTLD_DEFAULT_STACK_EXEC		PROT_EXEC
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/powerpc64/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -76,4 +76,7 @@ typedef struct {
 
 extern void *__tls_get_addr(tls_index* ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	PF_X
+#define	RTLD_DEFAULT_STACK_EXEC		PROT_EXEC
+
 #endif

Modified: projects/binutils-2.17/libexec/rtld-elf/rtld.c
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/rtld.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/rtld.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -191,7 +191,7 @@ extern Elf_Dyn _DYNAMIC;
 
 int osreldate, pagesize;
 
-static int stack_prot = PROT_READ | PROT_WRITE | PROT_EXEC;
+static int stack_prot = PROT_READ | PROT_WRITE | RTLD_DEFAULT_STACK_EXEC;
 static int max_stack_flags;
 
 /*
@@ -1385,7 +1385,7 @@ init_rtld(caddr_t mapbase, Elf_Auxinfo *
 	digest_dynamic1(&objtmp, 1, &dyn_rpath, &dyn_soname);
 	assert(objtmp.needed == NULL);
 #if !defined(__mips__)
-	/* MIPS and SH{3,5} have a bogus DT_TEXTREL. */
+	/* MIPS has a bogus DT_TEXTREL. */
 	assert(!objtmp.textrel);
 #endif
 
@@ -2800,7 +2800,12 @@ get_program_var_addr(const char *name, R
     donelist_init(&donelist);
     if (symlook_global(&req, &donelist) != 0)
 	return (NULL);
-    return ((const void **)(req.defobj_out->relocbase + req.sym_out->st_value));
+    if (ELF_ST_TYPE(req.sym_out->st_info) == STT_FUNC)
+	return ((const void **)make_function_pointer(req.sym_out,
+	  req.defobj_out));
+    else
+	return ((const void **)(req.defobj_out->relocbase +
+	  req.sym_out->st_value));
 }
 
 /*

Modified: projects/binutils-2.17/libexec/rtld-elf/sparc64/rtld_machdep.h
==============================================================================
--- projects/binutils-2.17/libexec/rtld-elf/sparc64/rtld_machdep.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/libexec/rtld-elf/sparc64/rtld_machdep.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -65,4 +65,7 @@ typedef struct {
 
 extern void *__tls_get_addr(tls_index *ti);
 
+#define	RTLD_DEFAULT_STACK_PF_EXEC	0
+#define	RTLD_DEFAULT_STACK_EXEC		0
+
 #endif

Modified: projects/binutils-2.17/sbin/fdisk/fdisk.c
==============================================================================
--- projects/binutils-2.17/sbin/fdisk/fdisk.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/fdisk/fdisk.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -49,7 +49,10 @@ __FBSDID("$FreeBSD$");
 
 int iotest;
 
-#define NOSECTORS ((u_int32_t)-1)
+#define NO_DISK_SECTORS ((u_int32_t)-1)
+#define NO_TRACK_CYLINDERS 1023
+#define NO_TRACK_HEADS 255
+#define NO_TRACK_SECTORS 63
 #define LBUF 100
 static char lbuf[LBUF];
 
@@ -62,7 +65,7 @@ static char lbuf[LBUF];
  *	Created.
  */
 
-#define Decimal(str, ans, tmp, nbits) if (decimal(str, &tmp, ans, nbits)) ans = tmp
+#define Decimal(str, ans, tmp, maxval) if (decimal(str, &tmp, ans, maxval)) ans = tmp
 
 #define RoundCyl(x) ((((x) + cylsecs - 1) / cylsecs) * cylsecs)
 
@@ -247,7 +250,7 @@ static int get_params(void);
 static int read_s0(void);
 static int write_s0(void);
 static int ok(const char *str);
-static int decimal(const char *str, int *num, int deflt, int nbits);
+static int decimal(const char *str, int *num, int deflt, uint32_t maxval);
 static int read_config(char *config_file);
 static void reset_boot(void);
 static int sanitize_partition(struct dos_partition *);
@@ -572,9 +575,9 @@ change_part(int i)
 	}
 
 	do {
-		Decimal("sysid (165=FreeBSD)", partp->dp_typ, tmp, sizeof(partp->dp_typ) * 8);
-		Decimal("start", partp->dp_start, tmp, sizeof(partp->dp_start) * 8);
-		Decimal("size", partp->dp_size, tmp, sizeof(partp->dp_size) * 8);
+		Decimal("sysid (165=FreeBSD)", partp->dp_typ, tmp, 255);
+		Decimal("start", partp->dp_start, tmp, NO_DISK_SECTORS);
+		Decimal("size", partp->dp_size, tmp, NO_DISK_SECTORS);
 		if (!sanitize_partition(partp)) {
 			warnx("ERROR: failed to adjust; setting sysid to 0");
 			partp->dp_typ = 0;
@@ -586,9 +589,9 @@ change_part(int i)
 			tcyl = DPCYL(partp->dp_scyl,partp->dp_ssect);
 			thd = partp->dp_shd;
 			tsec = DPSECT(partp->dp_ssect);
-			Decimal("beginning cylinder", tcyl, tmp, 10);
-			Decimal("beginning head", thd, tmp, sizeof(partp->dp_shd) * 8);
-			Decimal("beginning sector", tsec, tmp, 6);
+			Decimal("beginning cylinder", tcyl, tmp, NO_TRACK_CYLINDERS);
+			Decimal("beginning head", thd, tmp, NO_TRACK_HEADS);
+			Decimal("beginning sector", tsec, tmp, NO_TRACK_SECTORS);
 			partp->dp_scyl = DOSCYL(tcyl);
 			partp->dp_ssect = DOSSECT(tsec,tcyl);
 			partp->dp_shd = thd;
@@ -596,9 +599,9 @@ change_part(int i)
 			tcyl = DPCYL(partp->dp_ecyl,partp->dp_esect);
 			thd = partp->dp_ehd;
 			tsec = DPSECT(partp->dp_esect);
-			Decimal("ending cylinder", tcyl, tmp, 10);
-			Decimal("ending head", thd, tmp, sizeof(partp->dp_ehd) * 8);
-			Decimal("ending sector", tsec, tmp, 6);
+			Decimal("ending cylinder", tcyl, tmp, NO_TRACK_CYLINDERS);
+			Decimal("ending head", thd, tmp, NO_TRACK_HEADS);
+			Decimal("ending sector", tsec, tmp, NO_TRACK_SECTORS);
 			partp->dp_ecyl = DOSCYL(tcyl);
 			partp->dp_esect = DOSSECT(tsec,tcyl);
 			partp->dp_ehd = thd;
@@ -915,16 +918,12 @@ ok(const char *str)
 }
 
 static int
-decimal(const char *str, int *num, int deflt, int nbits)
+decimal(const char *str, int *num, int deflt, uint32_t maxval)
 {
-	long long acc = 0, limit;
+	long long acc = 0;
 	int c;
 	char *cp;
 
-	if (nbits == 0) {
-		nbits = sizeof(*num) * 8;
-	}
-	limit = (long long)1 << nbits;
 	while (1) {
 		printf("Supply a decimal value for \"%s\" [%d] ", str, deflt);
 		fflush(stdout);
@@ -941,7 +940,7 @@ decimal(const char *str, int *num, int d
 			return 0;
 		while ((c = *cp++)) {
 			if (c <= '9' && c >= '0') {
-				if (acc < limit)
+				if (maxval > 0 && acc <= maxval)
 					acc = acc * 10 + c - '0';
 			} else
 				break;
@@ -949,10 +948,11 @@ decimal(const char *str, int *num, int d
 		if (c == ' ' || c == '\t')
 			while ((c = *cp) && (c == ' ' || c == '\t')) cp++;
 		if (!c) {
-			if (acc >= limit) {
-				acc = limit - 1;
-				printf("%s is too big, it will be truncated to %lld\n",
-				    lbuf, acc);
+			if (maxval > 0 && acc > maxval) {
+				acc = maxval;
+				printf("%s exceeds maximum value allowed for "
+				  "this field. The value has been reduced "
+				  "to %lld\n", lbuf, acc);
 			}
 			*num = acc;
 			return 1;
@@ -1108,7 +1108,7 @@ str2sectors(const char *str)
 	if (str == end || *end == '\0') {
 		warnx("ERROR line %d: unexpected size: \'%s\'",
 		    current_line_number, str);
-		return NOSECTORS;
+		return NO_DISK_SECTORS;
 	}
 
 	if (*end == 'K') 
@@ -1120,7 +1120,7 @@ str2sectors(const char *str)
 	else {
 		warnx("ERROR line %d: unexpected modifier: %c "
 		    "(not K/M/G)", current_line_number, *end);
-		return NOSECTORS;
+		return NO_DISK_SECTORS;
 	}
 
 	return val;
@@ -1170,7 +1170,7 @@ process_partition(CMD *command)
 			}
 		} else {
 			partp->dp_start = str2sectors(command->args[2].arg_str);
-			if (partp->dp_start == NOSECTORS)
+			if (partp->dp_start == NO_DISK_SECTORS)
 				break;
 		}
 	} else
@@ -1182,7 +1182,7 @@ process_partition(CMD *command)
 			    dos_cylsecs) - partp->dp_start;
 		else {
 			partp->dp_size = str2sectors(command->args[3].arg_str);
-			if (partp->dp_size == NOSECTORS)
+			if (partp->dp_size == NO_DISK_SECTORS)
 				break;
 		}
 		prev_cyl_boundary = ((partp->dp_start + partp->dp_size) /

Modified: projects/binutils-2.17/sbin/geom/class/part/gpart.8
==============================================================================
--- projects/binutils-2.17/sbin/geom/class/part/gpart.8	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/geom/class/part/gpart.8	Fri Jan 28 18:42:17 2011	(r218029)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 12, 2011
+.Dd January 28, 2011
 .Dt GPART 8
 .Os
 .Sh NAME
@@ -509,6 +509,11 @@ utility also allows the user to specify 
 for partition types that do not have symbol names.
 The symbolic names currently understood are:
 .Bl -tag -width ".Cm freebsd-vinum"
+.It Cm bios-boot
+The system partition dedicated to second stage of the boot loader program.
+Usually it used by GRUB 2 loader when the partition table is GPT.
+The scheme-specific type is
+.Qq Li "!21686148-6449-6E6F-744E-656564454649" .
 .It Cm efi
 The system partition for computers that use the Extensible Firmware
 Interface (EFI).

Modified: projects/binutils-2.17/sbin/hastctl/hastctl.c
==============================================================================
--- projects/binutils-2.17/sbin/hastctl/hastctl.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/hastctl/hastctl.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -430,6 +430,7 @@ main(int argc, char *argv[])
 		break;
 	}
 
+	pjdlog_init(PJDLOG_MODE_STD);
 	pjdlog_debug_set(debug);
 
 	cfg = yy_config_parse(cfgpath, true);

Modified: projects/binutils-2.17/sbin/hastd/control.c
==============================================================================
--- projects/binutils-2.17/sbin/hastd/control.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/hastd/control.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -278,6 +278,7 @@ control_handle(struct hastd_config *cfg)
 		return;
 	}
 
+	cfg->hc_controlin = conn;
 	nvin = nvout = NULL;
 	role = HAST_ROLE_UNDEF;
 
@@ -384,6 +385,7 @@ close:
 	if (nvout != NULL)
 		nv_free(nvout);
 	proto_close(conn);
+	cfg->hc_controlin = NULL;
 }
 
 /*

Modified: projects/binutils-2.17/sbin/hastd/hast.h
==============================================================================
--- projects/binutils-2.17/sbin/hastd/hast.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/hastd/hast.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -101,6 +101,8 @@ struct hastd_config {
 	char	 hc_controladdr[HAST_ADDRSIZE];
 	/* Protocol-specific data. */
 	struct proto_conn *hc_controlconn;
+	/* Incoming control connection. */
+	struct proto_conn *hc_controlin;
 	/* Address to listen on. */
 	char	 hc_listenaddr[HAST_ADDRSIZE];
 	/* Protocol-specific data. */

Modified: projects/binutils-2.17/sbin/hastd/hastd.c
==============================================================================
--- projects/binutils-2.17/sbin/hastd/hastd.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/hastd/hastd.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -666,6 +666,7 @@ main_loop(void)
 			case SIGTERM:
 				sigexit_received = true;
 				terminate_workers();
+				proto_close(cfg->hc_controlconn);
 				exit(EX_OK);
 				break;
 			case SIGCHLD:
@@ -772,6 +773,7 @@ main(int argc, char *argv[])
 	argc -= optind;
 	argv += optind;
 
+	pjdlog_init(PJDLOG_MODE_STD);
 	pjdlog_debug_set(debuglevel);
 
 	g_gate_load();

Modified: projects/binutils-2.17/sbin/hastd/pjdlog.c
==============================================================================
--- projects/binutils-2.17/sbin/hastd/pjdlog.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/hastd/pjdlog.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2009-2010 The FreeBSD Foundation
+ * Copyright (c) 2011 Pawel Jakub Dawidek <pjd@FreeBSD.org>
  * All rights reserved.
  *
  * This software was developed by Pawel Jakub Dawidek under sponsorship from
@@ -33,6 +34,7 @@ __FBSDID("$FreeBSD$");
 #include <assert.h>
 #include <errno.h>
 #include <stdarg.h>
+#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -40,10 +42,37 @@ __FBSDID("$FreeBSD$");
 
 #include "pjdlog.h"
 
+static bool pjdlog_initialized = false;
 static int pjdlog_mode = PJDLOG_MODE_STD;
 static int pjdlog_debug_level = 0;
 static char pjdlog_prefix[128];
 
+void
+pjdlog_init(int mode)
+{
+
+	assert(!pjdlog_initialized);
+	assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
+
+	if (mode == PJDLOG_MODE_SYSLOG)
+		openlog(NULL, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+	pjdlog_mode = mode;
+
+	pjdlog_initialized = true;
+}
+
+void
+pjdlog_fini(void)
+{
+
+	assert(pjdlog_initialized);
+
+	if (pjdlog_mode == PJDLOG_MODE_SYSLOG)
+		closelog();
+
+	pjdlog_initialized = false;
+}
+
 /*
  * Configure where the logs should go.
  * By default they are send to stdout/stderr, but after going into background
@@ -54,12 +83,18 @@ void
 pjdlog_mode_set(int mode)
 {
 
+	assert(pjdlog_initialized);
 	assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
 
-	pjdlog_mode = mode;
+	if (pjdlog_mode == mode)
+		return;
 
 	if (mode == PJDLOG_MODE_SYSLOG)
-		openlog(NULL, LOG_PID, LOG_DAEMON);
+		openlog(NULL, LOG_PID | LOG_NDELAY, LOG_DAEMON);
+	else /* if (mode == PJDLOG_MODE_STD) */
+		closelog();
+
+	pjdlog_mode = mode;
 }
 
 /*
@@ -69,6 +104,8 @@ int
 pjdlog_mode_get(void)
 {
 
+	assert(pjdlog_initialized);
+
 	return (pjdlog_mode);
 }
 
@@ -80,6 +117,7 @@ void
 pjdlog_debug_set(int level)
 {
 
+	assert(pjdlog_initialized);
 	assert(level >= 0);
 
 	pjdlog_debug_level = level;
@@ -92,6 +130,8 @@ int
 pjdlog_debug_get(void)
 {
 
+	assert(pjdlog_initialized);
+
 	return (pjdlog_debug_level);
 }
 
@@ -104,6 +144,8 @@ pjdlog_prefix_set(const char *fmt, ...)
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv_prefix_set(fmt, ap);
 	va_end(ap);
@@ -117,6 +159,7 @@ void
 pjdlogv_prefix_set(const char *fmt, va_list ap)
 {
 
+	assert(pjdlog_initialized);
 	assert(fmt != NULL);
 
 	vsnprintf(pjdlog_prefix, sizeof(pjdlog_prefix), fmt, ap);
@@ -159,6 +202,8 @@ pjdlog_common(int loglevel, int debuglev
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv_common(loglevel, debuglevel, error, fmt, ap);
 	va_end(ap);
@@ -173,6 +218,7 @@ pjdlogv_common(int loglevel, int debugle
     va_list ap)
 {
 
+	assert(pjdlog_initialized);
 	assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
 	    loglevel == LOG_CRIT || loglevel == LOG_ERR ||
 	    loglevel == LOG_WARNING || loglevel == LOG_NOTICE ||
@@ -249,6 +295,8 @@ void
 pjdlogv(int loglevel, const char *fmt, va_list ap)
 {
 
+	assert(pjdlog_initialized);
+
 	/* LOG_DEBUG is invalid here, pjdlogv?_debug() should be used. */
 	assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
 	    loglevel == LOG_CRIT || loglevel == LOG_ERR ||
@@ -266,6 +314,8 @@ pjdlog(int loglevel, const char *fmt, ..
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv(loglevel, fmt, ap);
 	va_end(ap);
@@ -278,6 +328,8 @@ void
 pjdlogv_debug(int debuglevel, const char *fmt, va_list ap)
 {
 
+	assert(pjdlog_initialized);
+
 	pjdlogv_common(LOG_DEBUG, debuglevel, -1, fmt, ap);
 }
 
@@ -289,6 +341,8 @@ pjdlog_debug(int debuglevel, const char 
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv_debug(debuglevel, fmt, ap);
 	va_end(ap);
@@ -301,6 +355,8 @@ void
 pjdlogv_errno(int loglevel, const char *fmt, va_list ap)
 {
 
+	assert(pjdlog_initialized);
+
 	pjdlogv_common(loglevel, 0, errno, fmt, ap);
 }
 
@@ -312,6 +368,8 @@ pjdlog_errno(int loglevel, const char *f
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv_errno(loglevel, fmt, ap);
 	va_end(ap);
@@ -324,6 +382,8 @@ void
 pjdlogv_exit(int exitcode, const char *fmt, va_list ap)
 {
 
+	assert(pjdlog_initialized);
+
 	pjdlogv_errno(LOG_ERR, fmt, ap);
 	exit(exitcode);
 	/* NOTREACHED */
@@ -337,6 +397,8 @@ pjdlog_exit(int exitcode, const char *fm
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv_exit(exitcode, fmt, ap);
 	/* NOTREACHED */
@@ -350,6 +412,8 @@ void
 pjdlogv_exitx(int exitcode, const char *fmt, va_list ap)
 {
 
+	assert(pjdlog_initialized);
+
 	pjdlogv(LOG_ERR, fmt, ap);
 	exit(exitcode);
 	/* NOTREACHED */
@@ -363,6 +427,8 @@ pjdlog_exitx(int exitcode, const char *f
 {
 	va_list ap;
 
+	assert(pjdlog_initialized);
+
 	va_start(ap, fmt);
 	pjdlogv_exitx(exitcode, fmt, ap);
 	/* NOTREACHED */
@@ -374,17 +440,38 @@ pjdlog_exitx(int exitcode, const char *f
  */
 void
 pjdlog_verify(const char *func, const char *file, int line,
-    const char *failedexpr)
+    const char *failedexpr, const char *fmt, ...)
 {
+	va_list ap;
 
-	if (func == NULL) {
-		pjdlog_critical("Assertion failed: (%s), file %s, line %d.",
-		    failedexpr, file, line);
+	assert(pjdlog_initialized);
+
+	/*
+	 * When there is no message we pass __func__ as 'fmt'.
+	 * It would be cleaner to pass NULL or "", but gcc generates a warning
+	 * for both of those.
+	 */
+	if (fmt != func) {
+		va_start(ap, fmt);
+		pjdlogv_critical(fmt, ap);
+		va_end(ap);
+	}
+	if (failedexpr == NULL) {
+		if (func == NULL) {
+			pjdlog_critical("Aborted at file %s, line %d.", file,
+			    line);
+		} else {
+			pjdlog_critical("Aborted at function %s, file %s, line %d.",
+			    func, file, line);
+		}
 	} else {
-		pjdlog_critical("Assertion failed: (%s), function %s, file %s, line %d.",
-		    failedexpr, func, file, line);
+		if (func == NULL) {
+			pjdlog_critical("Assertion failed: (%s), file %s, line %d.",
+			    failedexpr, file, line);
+		} else {
+			pjdlog_critical("Assertion failed: (%s), function %s, file %s, line %d.",
+			    failedexpr, func, file, line);
+		}
 	}
 	abort();
-        /* NOTREACHED */
 }
-

Modified: projects/binutils-2.17/sbin/hastd/pjdlog.h
==============================================================================
--- projects/binutils-2.17/sbin/hastd/pjdlog.h	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/hastd/pjdlog.h	Fri Jan 28 18:42:17 2011	(r218029)
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2009-2010 The FreeBSD Foundation
+ * Copyright (c) 2011 Pawel Jakub Dawidek <pjd@FreeBSD.org>
  * All rights reserved.
  *
  * This software was developed by Pawel Jakub Dawidek under sponsorship from
@@ -41,6 +42,9 @@
 #define	PJDLOG_MODE_STD		0
 #define	PJDLOG_MODE_SYSLOG	1
 
+void pjdlog_init(int mode);
+void pjdlog_fini(void);
+
 void pjdlog_mode_set(int mode);
 int pjdlog_mode_get(void);
 
@@ -86,16 +90,28 @@ void pjdlog_exitx(int exitcode, const ch
 void pjdlogv_exitx(int exitcode, const char *fmt, va_list ap) __printflike(2, 0) __dead2;
 
 void pjdlog_verify(const char *func, const char *file, int line,
-    const char *failedexpr) __dead2;
+    const char *failedexpr, const char *fmt, ...) __printflike(5, 6);
 
 #define	PJDLOG_VERIFY(expr)	do {					\
-	if (!(expr))							\
-		pjdlog_verify(__func__, __FILE__, __LINE__, #expr);	\
+	if (!(expr)) {							\
+		pjdlog_verify(__func__, __FILE__, __LINE__, #expr,	\
+		    __func__);						\
+	}								\
+} while (0)
+#define	PJDLOG_RVERIFY(expr, ...)	do {				\
+	if (!(expr)) {							\
+		pjdlog_verify(__func__, __FILE__, __LINE__, #expr,	\
+		    __VA_ARGS__);					\
+	}								\
 } while (0)
+#define	PJDLOG_ABORT(...)	pjdlog_verify(__func__, __FILE__,	\
+				    __LINE__, NULL, __VA_ARGS__)
 #ifdef NDEBUG
 #define	PJDLOG_ASSERT(expr)	do { } while (0)
+#define	PJDLOG_RASSERT(...)	do { } while (0)
 #else
 #define	PJDLOG_ASSERT(expr)	PJDLOG_VERIFY(expr)
+#define	PJDLOG_RASSERT(...)	PJDLOG_RVERIFY(__VA_ARGS__)
 #endif
 
 #endif	/* !_PJDLOG_H_ */

Modified: projects/binutils-2.17/sbin/iscontrol/config.c
==============================================================================
--- projects/binutils-2.17/sbin/iscontrol/config.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/iscontrol/config.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -295,7 +295,7 @@ keyLookup(char *key)
 {
      textkey_t	*tk;
 
-     for(tk = keyMap; tk->name; tk++) {
+     for(tk = keyMap; tk->name && strcmp(tk->name, "end"); tk++) {
 	  if(strcasecmp(key, tk->name) == 0)
 	       return tk;
      }

Modified: projects/binutils-2.17/sbin/iscontrol/fsm.c
==============================================================================
--- projects/binutils-2.17/sbin/iscontrol/fsm.c	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/iscontrol/fsm.c	Fri Jan 28 18:42:17 2011	(r218029)
@@ -359,8 +359,8 @@ doCAM(isess_t *sess)
       | for now will do this for each lun ...
       */
      for(n = i = 0; i < sess->cam.target_nluns; i++) {
-	  debug(2, "CAM path_id=%d target_id=%d target_lun=%d",
-		sess->cam.path_id, sess->cam.target_id, sess->cam.target_lun[i]);
+	  debug(2, "CAM path_id=%d target_id=%d",
+		sess->cam.path_id, sess->cam.target_id);
 
 	  sess->camdev = cam_open_btl(sess->cam.path_id, sess->cam.target_id,
 				      i, O_RDWR, NULL);

Modified: projects/binutils-2.17/sbin/mount/mount.8
==============================================================================
--- projects/binutils-2.17/sbin/mount/mount.8	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/sbin/mount/mount.8	Fri Jan 28 18:42:17 2011	(r218029)
@@ -28,7 +28,7 @@
 .\"     @(#)mount.8	8.8 (Berkeley) 6/16/94
 .\" $FreeBSD$
 .\"
-.Dd February 10, 2010
+.Dd January 25, 2011
 .Dt MOUNT 8
 .Os
 .Sh NAME
@@ -208,7 +208,11 @@ This option
 is useful on file systems where there are large numbers of files and
 performance is more critical than updating the file access time (which is
 rarely ever important).
-This option is currently only supported on local file systems.
+This option is not supported on network file systems when the
+server is FreeBSD.
+Support in network files servers on other operating systems
+with a FreeBSD client is possible,
+but should be tested before it is relied on.
 .It Cm noauto
 This file system should be skipped when
 .Nm

Modified: projects/binutils-2.17/share/doc/papers/kernmalloc/Makefile
==============================================================================
--- projects/binutils-2.17/share/doc/papers/kernmalloc/Makefile	Fri Jan 28 18:28:06 2011	(r218028)
+++ projects/binutils-2.17/share/doc/papers/kernmalloc/Makefile	Fri Jan 28 18:42:17 2011	(r218029)

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



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