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...
Dimitry Andric
dim at FreeBSD.org
Fri Jan 28 18:42:18 UTC 2011
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 at 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 at 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 ***
More information about the svn-src-projects
mailing list