From owner-svn-src-projects@FreeBSD.ORG Fri Jan 28 18:42:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77AB41065672; Fri, 28 Jan 2011 18:42:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 636028FC13; Fri, 28 Jan 2011 18:42:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0SIgI9H095051; Fri, 28 Jan 2011 18:42:18 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0SIgHRP095016; Fri, 28 Jan 2011 18:42:17 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201101281842.p0SIgHRP095016@svn.freebsd.org> From: Dimitry Andric Date: Fri, 28 Jan 2011 18:42:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: 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... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jan 2011 18:42:18 -0000 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 * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from @@ -33,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -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 * 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 ***