svn commit: r212862 - in projects/sv: . cddl/contrib/opensolaris/lib/libzfs/common cddl/usr.sbin/plockstat contrib/top lib/clang/libllvmarmasmparser lib/clang/libllvmarminfo lib/clang/libllvmbitrea...

Attilio Rao attilio at FreeBSD.org
Sun Sep 19 15:15:06 UTC 2010


Author: attilio
Date: Sun Sep 19 15:15:04 2010
New Revision: 212862
URL: http://svn.freebsd.org/changeset/base/212862

Log:
  MFC @ r212861

Added:
  projects/sv/cddl/usr.sbin/plockstat/plockstat.1
     - copied unchanged from r212756, head/cddl/usr.sbin/plockstat/plockstat.1
  projects/sv/share/man/man4/atrtc.4
     - copied unchanged from r212861, head/share/man/man4/atrtc.4
  projects/sv/share/man/man4/attimer.4
     - copied unchanged from r212861, head/share/man/man4/attimer.4
  projects/sv/share/man/man4/hpet.4
     - copied, changed from r212756, head/share/man/man4/hpet.4
  projects/sv/share/man/man4/mps.4
     - copied unchanged from r212756, head/share/man/man4/mps.4
  projects/sv/share/man/man4/send.4
     - copied unchanged from r212861, head/share/man/man4/send.4
  projects/sv/share/man/man7/eventtimers.7
     - copied, changed from r212756, head/share/man/man7/eventtimers.7
  projects/sv/sys/conf/ldscript.mips.64.cfe
     - copied unchanged from r212756, head/sys/conf/ldscript.mips.64.cfe
  projects/sv/sys/contrib/dev/acpica/hardware/hwpci.c
     - copied unchanged from r212861, head/sys/contrib/dev/acpica/hardware/hwpci.c
  projects/sv/sys/contrib/dev/acpica/utilities/utxferror.c
     - copied unchanged from r212861, head/sys/contrib/dev/acpica/utilities/utxferror.c
  projects/sv/sys/mips/conf/SWARM64
     - copied unchanged from r212756, head/sys/mips/conf/SWARM64
  projects/sv/sys/mips/conf/SWARM64_SMP
     - copied unchanged from r212756, head/sys/mips/conf/SWARM64_SMP
  projects/sv/sys/mips/conf/SWARM_COMMON
     - copied unchanged from r212756, head/sys/mips/conf/SWARM_COMMON
  projects/sv/tools/regression/sbin/
     - copied from r212861, head/tools/regression/sbin/
Deleted:
  projects/sv/sys/mips/rmi/dev/sec/stats.h
Modified:
  projects/sv/UPDATING
  projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  projects/sv/lib/clang/libllvmarmasmparser/Makefile
  projects/sv/lib/clang/libllvmarminfo/Makefile
  projects/sv/lib/clang/libllvmbitreader/Makefile
  projects/sv/lib/clang/libllvminstcombine/Makefile
  projects/sv/lib/clang/libllvmmipsinfo/Makefile
  projects/sv/lib/clang/libllvmpowerpcinfo/Makefile
  projects/sv/lib/clang/libllvmx86asmparser/Makefile
  projects/sv/lib/clang/libllvmx86info/Makefile
  projects/sv/lib/libproc/proc_util.c
  projects/sv/lib/libthr/Makefile
  projects/sv/lib/libthr/thread/thr_clean.c
  projects/sv/lib/libthr/thread/thr_create.c
  projects/sv/lib/libthr/thread/thr_exit.c
  projects/sv/lib/libthr/thread/thr_fork.c
  projects/sv/lib/libthr/thread/thr_init.c
  projects/sv/lib/libthr/thread/thr_join.c
  projects/sv/lib/libthr/thread/thr_private.h
  projects/sv/lib/libthr/thread/thr_sig.c
  projects/sv/libexec/tftpd/Makefile
  projects/sv/libexec/tftpd/tftp-io.c
  projects/sv/release/Makefile.inc.docports
  projects/sv/sbin/fdisk/fdisk.c
  projects/sv/sbin/geom/class/eli/geli.8
  projects/sv/sbin/geom/class/part/geom_part.c
  projects/sv/sbin/geom/core/geom.c
  projects/sv/sbin/geom/core/geom.h
  projects/sv/sbin/growfs/growfs.c
  projects/sv/sbin/reboot/nextboot.sh
  projects/sv/sbin/sysctl/sysctl.c
  projects/sv/share/man/man4/Makefile
  projects/sv/share/man/man4/ahci.4
  projects/sv/share/man/man4/bwi.4
  projects/sv/share/man/man4/bwn.4
  projects/sv/share/man/man4/mpt.4
  projects/sv/share/man/man4/mvs.4
  projects/sv/share/man/man4/siis.4
  projects/sv/share/man/man4/tcp.4
  projects/sv/share/man/man5/devfs.5
  projects/sv/share/man/man5/fdescfs.5
  projects/sv/share/man/man7/Makefile
  projects/sv/share/man/man7/tuning.7
  projects/sv/sys/amd64/conf/GENERIC
  projects/sv/sys/amd64/conf/NOTES
  projects/sv/sys/amd64/include/vmparam.h
  projects/sv/sys/arm/arm/cpufunc.c
  projects/sv/sys/arm/arm/cpufunc_asm_sheeva.S
  projects/sv/sys/arm/include/cpufunc.h
  projects/sv/sys/arm/mv/timer.c
  projects/sv/sys/boot/forth/loader.conf
  projects/sv/sys/boot/i386/libi386/biosdisk.c
  projects/sv/sys/boot/i386/zfsboot/zfsboot.c
  projects/sv/sys/boot/sparc64/boot1/boot1.c
  projects/sv/sys/boot/zfs/zfs.c
  projects/sv/sys/cddl/compat/opensolaris/sys/vnode.h
  projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h
  projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
  projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  projects/sv/sys/compat/linprocfs/linprocfs.c
  projects/sv/sys/conf/files
  projects/sv/sys/conf/files.amd64
  projects/sv/sys/contrib/dev/acpica/changes.txt
  projects/sv/sys/contrib/dev/acpica/common/adfile.c
  projects/sv/sys/contrib/dev/acpica/common/adisasm.c
  projects/sv/sys/contrib/dev/acpica/common/adwalk.c
  projects/sv/sys/contrib/dev/acpica/common/dmrestag.c
  projects/sv/sys/contrib/dev/acpica/common/getopt.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslanalyze.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslcompile.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslcompiler.h
  projects/sv/sys/contrib/dev/acpica/compiler/aslerror.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslfiles.c
  projects/sv/sys/contrib/dev/acpica/compiler/asllisting.c
  projects/sv/sys/contrib/dev/acpica/compiler/asllookup.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslmain.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslopcodes.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslpredef.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslrestype1.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslrestype2d.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslrestype2e.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslrestype2w.c
  projects/sv/sys/contrib/dev/acpica/compiler/aslstartup.c
  projects/sv/sys/contrib/dev/acpica/compiler/dtcompile.c
  projects/sv/sys/contrib/dev/acpica/compiler/dtio.c
  projects/sv/sys/contrib/dev/acpica/debugger/dbexec.c
  projects/sv/sys/contrib/dev/acpica/events/evrgnini.c
  projects/sv/sys/contrib/dev/acpica/executer/exmutex.c
  projects/sv/sys/contrib/dev/acpica/include/acglobal.h
  projects/sv/sys/contrib/dev/acpica/include/achware.h
  projects/sv/sys/contrib/dev/acpica/include/aclocal.h
  projects/sv/sys/contrib/dev/acpica/include/acmacros.h
  projects/sv/sys/contrib/dev/acpica/include/acnamesp.h
  projects/sv/sys/contrib/dev/acpica/include/acpiosxf.h
  projects/sv/sys/contrib/dev/acpica/include/acpixf.h
  projects/sv/sys/contrib/dev/acpica/include/actypes.h
  projects/sv/sys/contrib/dev/acpica/include/acutils.h
  projects/sv/sys/contrib/dev/acpica/include/platform/acenv.h
  projects/sv/sys/contrib/dev/acpica/include/platform/acfreebsd.h
  projects/sv/sys/contrib/dev/acpica/include/platform/acgcc.h
  projects/sv/sys/contrib/dev/acpica/namespace/nsrepair2.c
  projects/sv/sys/contrib/dev/acpica/namespace/nsutils.c
  projects/sv/sys/contrib/dev/acpica/osunixxf.c
  projects/sv/sys/contrib/dev/acpica/tables/tbfadt.c
  projects/sv/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h
  projects/sv/sys/contrib/dev/acpica/utilities/utdebug.c
  projects/sv/sys/contrib/dev/acpica/utilities/utmath.c
  projects/sv/sys/contrib/dev/acpica/utilities/utmisc.c
  projects/sv/sys/contrib/dev/acpica/utilities/utmutex.c
  projects/sv/sys/contrib/octeon-sdk/cvmx-app-init.h
  projects/sv/sys/contrib/octeon-sdk/cvmx-helper-board.c
  projects/sv/sys/contrib/octeon-sdk/cvmx-helper-spi.c
  projects/sv/sys/contrib/octeon-sdk/cvmx-helper.c
  projects/sv/sys/contrib/octeon-sdk/cvmx-spi.c
  projects/sv/sys/dev/aac/aac.c
  projects/sv/sys/dev/aac/aac_cam.c
  projects/sv/sys/dev/aac/aac_disk.c
  projects/sv/sys/dev/aac/aacreg.h
  projects/sv/sys/dev/aac/aacvar.h
  projects/sv/sys/dev/acpi_support/acpi_wmi.c
  projects/sv/sys/dev/acpica/Osd/OsdHardware.c
  projects/sv/sys/dev/ahci/ahci.c
  projects/sv/sys/dev/alc/if_alc.c
  projects/sv/sys/dev/bge/if_bge.c
  projects/sv/sys/dev/cxgb/common/cxgb_t3_hw.c
  projects/sv/sys/dev/cxgb/cxgb_sge.c
  projects/sv/sys/dev/gem/if_gem.c
  projects/sv/sys/dev/gem/if_gem_pci.c
  projects/sv/sys/dev/gem/if_gem_sbus.c
  projects/sv/sys/dev/iwn/if_iwn.c
  projects/sv/sys/dev/iwn/if_iwnvar.h
  projects/sv/sys/dev/mps/mps.c
  projects/sv/sys/dev/mps/mps_sas.c
  projects/sv/sys/dev/mvs/mvs.c
  projects/sv/sys/dev/siis/siis.c
  projects/sv/sys/dev/syscons/scvgarndr.c
  projects/sv/sys/dev/usb/usb_busdma.c
  projects/sv/sys/dev/usb/usbdevs
  projects/sv/sys/fs/devfs/devfs.h
  projects/sv/sys/fs/devfs/devfs_devs.c
  projects/sv/sys/fs/devfs/devfs_vnops.c
  projects/sv/sys/fs/nfsserver/nfs_nfsdport.c
  projects/sv/sys/fs/nfsserver/nfs_nfsdstate.c
  projects/sv/sys/fs/tmpfs/tmpfs_vnops.c
  projects/sv/sys/geom/concat/g_concat.c
  projects/sv/sys/geom/eli/g_eli.h
  projects/sv/sys/geom/part/g_part.c
  projects/sv/sys/i386/conf/NOTES
  projects/sv/sys/kern/kern_clocksource.c
  projects/sv/sys/kern/kern_malloc.c
  projects/sv/sys/kern/kern_sysctl.c
  projects/sv/sys/kern/sched_ule.c
  projects/sv/sys/kern/subr_bus.c
  projects/sv/sys/kern/subr_lock.c
  projects/sv/sys/kern/subr_sbuf.c
  projects/sv/sys/kern/subr_sleepqueue.c
  projects/sv/sys/kern/subr_witness.c
  projects/sv/sys/kern/tty.c
  projects/sv/sys/kern/uipc_socket.c
  projects/sv/sys/mips/atheros/ar71xx_machdep.c
  projects/sv/sys/mips/cavium/obio.c
  projects/sv/sys/mips/cavium/octeon_machdep.c
  projects/sv/sys/mips/cavium/octeon_mp.c
  projects/sv/sys/mips/cavium/octopci.c
  projects/sv/sys/mips/cavium/usb/octusb.c
  projects/sv/sys/mips/conf/SWARM
  projects/sv/sys/mips/conf/SWARM_SMP
  projects/sv/sys/mips/include/cpufunc.h
  projects/sv/sys/mips/include/cpuregs.h
  projects/sv/sys/mips/include/md_var.h
  projects/sv/sys/mips/mips/machdep.c
  projects/sv/sys/mips/mips/trap.c
  projects/sv/sys/mips/rmi/dev/nlge/if_nlge.c
  projects/sv/sys/mips/rmi/dev/nlge/if_nlge.h
  projects/sv/sys/mips/rmi/dev/sec/desc.h
  projects/sv/sys/mips/rmi/dev/sec/rmilib.c
  projects/sv/sys/mips/rmi/dev/sec/rmilib.h
  projects/sv/sys/mips/rmi/dev/sec/rmisec.c
  projects/sv/sys/mips/rmi/dev/xlr/rge.c
  projects/sv/sys/mips/rmi/dev/xlr/rge.h
  projects/sv/sys/mips/rmi/fmn.c
  projects/sv/sys/mips/rmi/iodi.c
  projects/sv/sys/mips/rmi/msgring.h
  projects/sv/sys/mips/rmi/rmi_mips_exts.h
  projects/sv/sys/mips/sibyte/sb_machdep.c
  projects/sv/sys/modules/acpi/acpi/Makefile
  projects/sv/sys/modules/gem/Makefile
  projects/sv/sys/net/bpf.c
  projects/sv/sys/netinet/sctp_asconf.c
  projects/sv/sys/netinet/sctp_asconf.h
  projects/sv/sys/netinet/sctp_auth.c
  projects/sv/sys/netinet/sctp_bsd_addr.c
  projects/sv/sys/netinet/sctp_cc_functions.c
  projects/sv/sys/netinet/sctp_constants.h
  projects/sv/sys/netinet/sctp_indata.c
  projects/sv/sys/netinet/sctp_input.c
  projects/sv/sys/netinet/sctp_output.c
  projects/sv/sys/netinet/sctp_output.h
  projects/sv/sys/netinet/sctp_pcb.c
  projects/sv/sys/netinet/sctp_sysctl.c
  projects/sv/sys/netinet/sctp_sysctl.h
  projects/sv/sys/netinet/sctp_timer.c
  projects/sv/sys/netinet/sctp_usrreq.c
  projects/sv/sys/netinet/sctputil.c
  projects/sv/sys/netinet/siftr.c
  projects/sv/sys/netinet/tcp.h
  projects/sv/sys/netinet/tcp_input.c
  projects/sv/sys/netinet/tcp_output.c
  projects/sv/sys/netinet/tcp_subr.c
  projects/sv/sys/netinet/tcp_timer.h
  projects/sv/sys/netinet/tcp_usrreq.c
  projects/sv/sys/netinet/tcp_var.h
  projects/sv/sys/netinet6/sctp6_usrreq.c
  projects/sv/sys/powerpc/aim/copyinout.c
  projects/sv/sys/powerpc/aim/mmu_oea.c
  projects/sv/sys/powerpc/aim/mmu_oea64.c
  projects/sv/sys/powerpc/aim/slb.c
  projects/sv/sys/powerpc/aim/trap.c
  projects/sv/sys/powerpc/aim/trap_subr64.S
  projects/sv/sys/powerpc/booke/pmap.c
  projects/sv/sys/powerpc/include/mmuvar.h
  projects/sv/sys/powerpc/include/pcb.h
  projects/sv/sys/powerpc/include/pcpu.h
  projects/sv/sys/powerpc/include/pmap.h
  projects/sv/sys/powerpc/include/sr.h
  projects/sv/sys/powerpc/powermac/kiic.c
  projects/sv/sys/sparc64/include/asm.h
  projects/sv/sys/sparc64/include/md_var.h
  projects/sv/sys/sparc64/sparc64/bus_machdep.c
  projects/sv/sys/sparc64/sparc64/iommu.c
  projects/sv/sys/sparc64/sparc64/machdep.c
  projects/sv/sys/sparc64/sparc64/mp_machdep.c
  projects/sv/sys/sparc64/sparc64/support.S
  projects/sv/sys/sparc64/sparc64/vm_machdep.c
  projects/sv/sys/sun4v/sun4v/bus_machdep.c
  projects/sv/sys/sun4v/sun4v/hviommu.c
  projects/sv/sys/sys/mount.h
  projects/sv/sys/sys/pcpu.h
  projects/sv/sys/sys/proc.h
  projects/sv/sys/sys/socketvar.h
  projects/sv/sys/sys/sysctl.h
  projects/sv/sys/sys/unistd.h
  projects/sv/sys/ufs/ffs/ffs_softdep.c
  projects/sv/sys/ufs/ffs/ffs_vfsops.c
  projects/sv/sys/ufs/ffs/fs.h
  projects/sv/sys/ufs/ffs/softdep.h
  projects/sv/sys/vm/uma_core.c
  projects/sv/sys/vm/vm_map.c
  projects/sv/sys/vm/vm_map.h
  projects/sv/sys/vm/vm_phys.c
  projects/sv/sys/vm/vm_reserv.c
  projects/sv/sys/x86/cpufreq/est.c
  projects/sv/sys/x86/isa/clock.c
  projects/sv/usr.bin/kdump/mksubr
  projects/sv/usr.bin/ruptime/ruptime.c
  projects/sv/usr.bin/script/script.1
  projects/sv/usr.bin/script/script.c
  projects/sv/usr.sbin/acpi/acpidb/Makefile
  projects/sv/usr.sbin/acpi/iasl/Makefile
  projects/sv/usr.sbin/pciconf/cap.c
  projects/sv/usr.sbin/ppp/throughput.c
Directory Properties:
  projects/sv/   (props changed)
  projects/sv/cddl/contrib/opensolaris/   (props changed)
  projects/sv/contrib/bind9/   (props changed)
  projects/sv/contrib/ee/   (props changed)
  projects/sv/contrib/expat/   (props changed)
  projects/sv/contrib/file/   (props changed)
  projects/sv/contrib/gdb/   (props changed)
  projects/sv/contrib/gdtoa/   (props changed)
  projects/sv/contrib/gnu-sort/   (props changed)
  projects/sv/contrib/groff/   (props changed)
  projects/sv/contrib/less/   (props changed)
  projects/sv/contrib/libpcap/   (props changed)
  projects/sv/contrib/llvm/   (props changed)
  projects/sv/contrib/llvm/tools/clang/   (props changed)
  projects/sv/contrib/ncurses/   (props changed)
  projects/sv/contrib/netcat/   (props changed)
  projects/sv/contrib/ntp/   (props changed)
  projects/sv/contrib/one-true-awk/   (props changed)
  projects/sv/contrib/openbsm/   (props changed)
  projects/sv/contrib/openpam/   (props changed)
  projects/sv/contrib/pf/   (props changed)
  projects/sv/contrib/sendmail/   (props changed)
  projects/sv/contrib/tcpdump/   (props changed)
  projects/sv/contrib/tcsh/   (props changed)
  projects/sv/contrib/top/   (props changed)
  projects/sv/contrib/top/install-sh   (props changed)
  projects/sv/contrib/tzcode/stdtime/   (props changed)
  projects/sv/contrib/tzcode/zic/   (props changed)
  projects/sv/contrib/tzdata/   (props changed)
  projects/sv/contrib/wpa/   (props changed)
  projects/sv/crypto/openssh/   (props changed)
  projects/sv/crypto/openssl/   (props changed)
  projects/sv/lib/libc/   (props changed)
  projects/sv/lib/libc/stdtime/   (props changed)
  projects/sv/lib/libutil/   (props changed)
  projects/sv/lib/libz/   (props changed)
  projects/sv/sbin/   (props changed)
  projects/sv/sbin/ipfw/   (props changed)
  projects/sv/share/mk/bsd.arch.inc.mk   (props changed)
  projects/sv/share/zoneinfo/   (props changed)
  projects/sv/sys/   (props changed)
  projects/sv/sys/amd64/include/xen/   (props changed)
  projects/sv/sys/cddl/contrib/opensolaris/   (props changed)
  projects/sv/sys/contrib/dev/acpica/   (props changed)
  projects/sv/sys/contrib/pf/   (props changed)
  projects/sv/sys/contrib/x86emu/   (props changed)
  projects/sv/sys/dev/xen/xenpci/   (props changed)
  projects/sv/usr.bin/calendar/   (props changed)
  projects/sv/usr.bin/csup/   (props changed)
  projects/sv/usr.bin/procstat/   (props changed)
  projects/sv/usr.sbin/zic/   (props changed)

Modified: projects/sv/UPDATING
==============================================================================
--- projects/sv/UPDATING	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/UPDATING	Sun Sep 19 15:15:04 2010	(r212862)
@@ -22,6 +22,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 	machines to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20100915:
+	A workaround for a fixed ld bug has been removed in kernel code,
+	so make sure that your system ld is built from sources after
+	revision 210245 (r211583 if building head kernel on stable/8,
+	r211584 for stable/7).  A symptom of incorrect ld version is
+	different addresses for set_pcpu section and __start_set_pcpu
+	symbol in kernel and/or modules.
+
 20100913:
 	The $ipv6_prefer variable in rc.conf(5) has been split into
 	$ip6addrctl_policy and $ipv6_activate_all_interfaces.

Modified: projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -40,7 +40,6 @@
 #include <zone.h>
 #include <sys/zfs_ioctl.h>
 #include <sys/zio.h>
-#include <strings.h>
 #include <umem.h>
 
 #include "zfs_namecheck.h"

Copied: projects/sv/cddl/usr.sbin/plockstat/plockstat.1 (from r212756, head/cddl/usr.sbin/plockstat/plockstat.1)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/sv/cddl/usr.sbin/plockstat/plockstat.1	Sun Sep 19 15:15:04 2010	(r212862, copy of r212756, head/cddl/usr.sbin/plockstat/plockstat.1)
@@ -0,0 +1,95 @@
+.\"
+.\" Copyright (c) 2010 The FreeBSD Foundation 
+.\" All rights reserved. 
+.\" 
+.\" This software was developed by Rui Paulo under sponsorship from the
+.\" FreeBSD Foundation. 
+.\"  
+.\" Redistribution and use in source and binary forms, with or without 
+.\" modification, are permitted provided that the following conditions 
+.\" are met: 
+.\" 1. Redistributions of source code must retain the above copyright 
+.\"    notice, this list of conditions and the following disclaimer. 
+.\" 2. Redistributions in binary form must reproduce the above copyright 
+.\"    notice, this list of conditions and the following disclaimer in the 
+.\"    documentation and/or other materials provided with the distribution. 
+.\" 
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+.\" SUCH DAMAGE. 
+.\"
+.\" $FreeBSD$
+.\"
+.Dd September 13, 2010
+.Dt PLOCKSTAT 1
+.Os
+.Sh NAME
+.Nm plockstat
+.Nd Trace pthread lock statistics using DTrace
+.Sh SYNOPSIS
+.Nm
+.Op Fl vACHV
+.Op Fl n Ar count
+.Op Fl s Ar depth
+.Op Fl e Ar secs
+.Op Fl x Ar opt Ns = Ns Ar val
+.Ar command
+.Op arg...
+.Nm
+.Op Fl vACHV
+.Op Fl n Ar count
+.Op Fl s Ar depth
+.Op Fl e Ar secs
+.Op Fl x Ar opt Ns = Ns Ar val
+.Fl p Ar pid 
+.Sh DESCRIPTION
+The
+.Nm
+utility traces pthread locks (mutexes and rwlocks) and prints statistics about
+them.
+You can use
+.Nm
+to investigate bottlenecks in your software.
+.Pp
+The following options are available:
+.Bl -tag -width indent
+.It Fl v
+Be verbose.
+.It Fl A
+Print all statistics.
+.It Fl C
+Print commulative statistics (the default).
+.It Fl H
+Print an histogram.
+.It Fl V
+Print the DTrace script about to be used to stderr.
+.It Fl n Ar count
+Set the aggregation count for the data set.
+.It Fl s Ar depth
+Set the ustack (userland stack) caller depth.
+.It Fl e Ar secs
+Does nothing at the moment.
+.It Fl x Ar opt Ns = Ns Ar val
+Specify DTrace options.
+See the
+.Xr dtrace 1
+man page for more details.
+.El
+.Sh EXIT STATUS
+.Ex -std
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr pthread 3
+.Sh HISTORY
+The
+.Nm
+utility comes from the OpenSolaris and was first imported into
+.Fx 9.0 .

Modified: projects/sv/lib/clang/libllvmarmasmparser/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmarmasmparser/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmarmasmparser/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -7,7 +7,7 @@ INCDIR=	lib/Target/ARM
 SRCS=	ARMAsmParser.cpp \
 	ARMAsmLexer.cpp
 
-TGHDRS= ARMGenInstrNames \
+TGHDRS=	ARMGenInstrNames \
 	ARMGenRegisterInfo.h \
 	ARMGenRegisterNames
 

Modified: projects/sv/lib/clang/libllvmarminfo/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmarminfo/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmarminfo/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -6,7 +6,7 @@ SRCDIR=	lib/Target/ARM/TargetInfo/
 INCDIR=	lib/Target/ARM
 SRCS=	ARMTargetInfo.cpp
 
-TGHDRS= ARMGenInstrNames \
+TGHDRS=	ARMGenInstrNames \
 	ARMGenRegisterNames
 
 .include "../clang.lib.mk"

Modified: projects/sv/lib/clang/libllvmbitreader/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmbitreader/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmbitreader/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -6,6 +6,6 @@ SRCDIR=	lib/Bitcode/Reader
 SRCS=	BitReader.cpp \
 	BitcodeReader.cpp
 
-TGHDRS= Intrinsics
+TGHDRS=	Intrinsics
 
 .include "../clang.lib.mk"

Modified: projects/sv/lib/clang/libllvminstcombine/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvminstcombine/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvminstcombine/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -17,6 +17,6 @@ SRCS=	InstCombineAddSub.cpp \
 	InstCombineVectorOps.cpp \
 	InstructionCombining.cpp
 
-TGHDRS= Intrinsics
+TGHDRS=	Intrinsics
 
 .include "../clang.lib.mk"

Modified: projects/sv/lib/clang/libllvmmipsinfo/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmmipsinfo/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmmipsinfo/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -6,7 +6,7 @@ SRCDIR=	lib/Target/Mips/TargetInfo/
 INCDIR=	lib/Target/Mips
 SRCS=	MipsTargetInfo.cpp
 
-TGHDRS= MipsGenRegisterNames \
+TGHDRS=	MipsGenRegisterNames \
 	MipsGenInstrNames
 
 .include "../clang.lib.mk"

Modified: projects/sv/lib/clang/libllvmpowerpcinfo/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmpowerpcinfo/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmpowerpcinfo/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -6,7 +6,7 @@ SRCDIR=	lib/Target/PowerPC/TargetInfo/
 INCDIR=	lib/Target/PowerPC
 SRCS=	PowerPCTargetInfo.cpp
 
-TGHDRS= PPCGenRegisterNames \
+TGHDRS=	PPCGenRegisterNames \
 	PPCGenInstrNames
 
 .include "../clang.lib.mk"

Modified: projects/sv/lib/clang/libllvmx86asmparser/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmx86asmparser/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmx86asmparser/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -7,7 +7,7 @@ INCDIR=	lib/Target/X86
 SRCS=	X86AsmLexer.cpp \
 	X86AsmParser.cpp
 
-TGHDRS= X86GenAsmMatcher \
+TGHDRS=	X86GenAsmMatcher \
 	X86GenInstrNames \
 	X86GenRegisterNames
 

Modified: projects/sv/lib/clang/libllvmx86info/Makefile
==============================================================================
--- projects/sv/lib/clang/libllvmx86info/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/clang/libllvmx86info/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -6,7 +6,7 @@ SRCDIR=	lib/Target/X86/TargetInfo/
 INCDIR=	lib/Target/X86
 SRCS=	X86TargetInfo.cpp
 
-TGHDRS= X86GenInstrNames \
+TGHDRS=	X86GenInstrNames \
 	X86GenRegisterNames
 
 .include "../clang.lib.mk"

Modified: projects/sv/lib/libproc/proc_util.c
==============================================================================
--- projects/sv/lib/libproc/proc_util.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libproc/proc_util.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -145,7 +145,8 @@ proc_wstatus(struct proc_handle *phdl)
 	if (phdl == NULL)
 		return (-1);
 	if (waitpid(phdl->pid, &status, WUNTRACED) < 0) {
-		warn("waitpid");
+		if (errno != EINTR)
+			warn("waitpid");
 		return (-1);
 	}
 	if (WIFSTOPPED(status))

Modified: projects/sv/lib/libthr/Makefile
==============================================================================
--- projects/sv/lib/libthr/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -25,6 +25,14 @@ CFLAGS+=-I${.CURDIR}/../../libexec/rtld-
 CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf/${MACHINE_CPUARCH}
 CFLAGS+=-I${.CURDIR}/../libthread_db
 CFLAGS+=-Winline
+
+LIBTHR_UNWIND_STACK=yes
+
+.ifdef LIBTHR_UNWIND_STACK
+CFLAGS+=-I${.CURDIR}/../../contrib/gcc -fexceptions 
+CFLAGS+=-D_PTHREAD_FORCED_UNWIND
+.endif
+
 LDFLAGS+=-Wl,-znodelete
 
 VERSION_DEF=${.CURDIR}/../libc/Versions.def

Modified: projects/sv/lib/libthr/thread/thr_clean.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_clean.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_clean.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -78,6 +78,9 @@ __pthread_cleanup_pop_imp(int execute)
 void
 _pthread_cleanup_push(void (*routine) (void *), void *arg)
 {
+#ifdef _PTHREAD_FORCED_UNWIND
+	PANIC("_pthread_cleanup_push is not supported while stack unwinding is enabled.");
+#else
 	struct pthread	*curthread = _get_curthread();
 	struct pthread_cleanup *newbuf;
 
@@ -89,10 +92,15 @@ _pthread_cleanup_push(void (*routine) (v
 		newbuf->prev = curthread->cleanup;
 		curthread->cleanup = newbuf;
 	}
+#endif
 }
 
 void
 _pthread_cleanup_pop(int execute)
 {
+#ifdef _PTHREAD_FORCED_UNWIND
+	PANIC("_pthread_cleanup_pop is not supported while stack unwinding is enabled.");
+#else
 	__pthread_cleanup_pop_imp(execute);
+#endif
 }

Modified: projects/sv/lib/libthr/thread/thr_create.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_create.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_create.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -264,6 +264,11 @@ thread_start(struct pthread *curthread)
 		__sys_sigprocmask(SIG_SETMASK, &set, NULL);
 	}
 
+#ifdef _PTHREAD_FORCED_UNWIND
+	curthread->unwind_stackend = (char *)curthread->attr.stackaddr_attr +
+		curthread->attr.stacksize_attr;
+#endif
+
 	/* Run the current thread's start routine with argument: */
 	_pthread_exit(curthread->start_routine(curthread->arg));
 

Modified: projects/sv/lib/libthr/thread/thr_exit.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_exit.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_exit.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -31,6 +31,9 @@
 
 #include "namespace.h"
 #include <errno.h>
+#ifdef _PTHREAD_FORCED_UNWIND
+#include <dlfcn.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <pthread.h>
@@ -43,8 +46,132 @@
 
 void	_pthread_exit(void *status);
 
+static void	exit_thread(void) __dead2;
+
 __weak_reference(_pthread_exit, pthread_exit);
 
+#ifdef _PTHREAD_FORCED_UNWIND
+
+static void thread_unwind(void) __dead2;
+#ifdef PIC
+static void thread_uw_init(void);
+static _Unwind_Reason_Code thread_unwind_stop(int version,
+	_Unwind_Action actions,
+	_Unwind_Exception_Class exc_class,
+	struct _Unwind_Exception *exc_obj,
+	struct _Unwind_Context *context, void *stop_parameter);
+/* unwind library pointers */
+static _Unwind_Reason_Code (*uwl_forcedunwind)(struct _Unwind_Exception *,
+	_Unwind_Stop_Fn, void *);
+static _Unwind_Word (*uwl_getcfa)(struct _Unwind_Context *);
+
+static void
+thread_uw_init(void)
+{
+	static int inited = 0;
+	Dl_info dlinfo;
+	void *handle;
+	void *forcedunwind, *getcfa;
+
+	if (inited)
+	    return;
+	handle = RTLD_DEFAULT;
+	if ((forcedunwind = dlsym(handle, "_Unwind_ForcedUnwind")) != NULL) {
+	    if (dladdr(forcedunwind, &dlinfo)) {
+		/*
+		 * Make sure the address is always valid by holding the library,
+		 * also assume functions are in same library.
+		 */
+		if ((handle = dlopen(dlinfo.dli_fname, RTLD_LAZY)) != NULL) {
+		    forcedunwind = dlsym(handle, "_Unwind_ForcedUnwind");
+		    getcfa = dlsym(handle, "_Unwind_GetCFA");
+		    if (forcedunwind != NULL && getcfa != NULL) {
+			uwl_getcfa = getcfa;
+			atomic_store_rel_ptr((volatile void *)&uwl_forcedunwind,
+				(uintptr_t)forcedunwind);
+		    } else {
+			dlclose(handle);
+		    }
+		}
+	    }
+	}
+	inited = 1;
+}
+
+_Unwind_Reason_Code
+_Unwind_ForcedUnwind(struct _Unwind_Exception *ex, _Unwind_Stop_Fn stop_func,
+	void *stop_arg)
+{
+	return (*uwl_forcedunwind)(ex, stop_func, stop_arg);
+}
+
+_Unwind_Word
+_Unwind_GetCFA(struct _Unwind_Context *context)
+{
+	return (*uwl_getcfa)(context);
+}
+#else
+#pragma weak _Unwind_GetCFA
+#pragma weak _Unwind_ForcedUnwind
+#endif /* PIC */
+
+static void
+thread_unwind_cleanup(_Unwind_Reason_Code code, struct _Unwind_Exception *e)
+{
+	/*
+	 * Specification said that _Unwind_Resume should not be used here,
+	 * instead, user should rethrow the exception. For C++ user, they
+	 * should put "throw" sentence in catch(...) block.
+	 */
+	PANIC("exception should be rethrown");
+}
+
+static _Unwind_Reason_Code
+thread_unwind_stop(int version, _Unwind_Action actions,
+	_Unwind_Exception_Class exc_class,
+	struct _Unwind_Exception *exc_obj,
+	struct _Unwind_Context *context, void *stop_parameter)
+{
+	struct pthread *curthread = _get_curthread();
+	struct pthread_cleanup *cur;
+	uintptr_t cfa;
+	int done = 0;
+
+	/* XXX assume stack grows down to lower address */
+
+	cfa = _Unwind_GetCFA(context);
+	if (actions & _UA_END_OF_STACK) {
+		done = 1;
+	} else if (cfa >= (uintptr_t)curthread->unwind_stackend) {
+		done = 1;
+	}
+
+	while ((cur = curthread->cleanup) != NULL &&
+	       (done ||
+		((uintptr_t)cur < (uintptr_t)curthread->unwind_stackend &&
+		 (uintptr_t)cur >= cfa))) {
+			__pthread_cleanup_pop_imp(1);
+	}
+
+	if (done)
+		exit_thread(); /* Never return! */
+
+	return (_URC_NO_REASON);
+}
+
+static void
+thread_unwind(void)
+{
+	struct pthread  *curthread = _get_curthread();
+
+	curthread->ex.exception_class = 0;
+	curthread->ex.exception_cleanup = thread_unwind_cleanup;
+	_Unwind_ForcedUnwind(&curthread->ex, thread_unwind_stop, NULL);
+	PANIC("_Unwind_ForcedUnwind returned");
+}
+
+#endif
+
 void
 _thread_exit(const char *fname, int lineno, const char *msg)
 {
@@ -79,7 +206,7 @@ _pthread_exit_mask(void *status, sigset_
 
 	/* Flag this thread as exiting. */
 	curthread->cancelling = 1;
-	curthread->cancel_enable = 0;
+	curthread->no_cancel = 1;
 	curthread->cancel_async = 0;
 	curthread->cancel_point = 0;
 	if (mask != NULL)
@@ -95,10 +222,39 @@ _pthread_exit_mask(void *status, sigset_
 	
 	/* Save the return value: */
 	curthread->ret = status;
+#ifdef _PTHREAD_FORCED_UNWIND
+#ifdef PIC
+	thread_uw_init();
+	if (uwl_forcedunwind != NULL) {
+		thread_unwind();
+	}
+#else
+	if (_Unwind_ForcedUnwind != NULL) {
+		thread_unwind();
+	}
+#endif /* PIC */
+
+ 	else {
+		while (curthread->cleanup != NULL) {
+			__pthread_cleanup_pop_imp(1);
+		}
+		exit_thread();
+	}
+
+#else
 	while (curthread->cleanup != NULL) {
-		_pthread_cleanup_pop(1);
+		__pthread_cleanup_pop_imp(1);
 	}
 
+	exit_thread();
+#endif /* _PTHREAD_FORCED_UNWIND */
+}
+
+static void
+exit_thread(void)
+{
+	struct pthread *curthread = _get_curthread();
+
 	/* Check if there is thread specific data: */
 	if (curthread->specific != NULL) {
 		/* Run the thread-specific data destructors: */

Modified: projects/sv/lib/libthr/thread/thr_fork.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_fork.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_fork.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -137,7 +137,7 @@ _fork(void)
 	struct pthread *curthread;
 	struct pthread_atfork *af;
 	pid_t ret;
-	int errsave;
+	int errsave, cancelsave;
 	int was_threaded;
 	int rtld_locks[MAX_RTLD_LOCKS];
 
@@ -145,7 +145,8 @@ _fork(void)
 		return (__sys_fork());
 
 	curthread = _get_curthread();
-
+	cancelsave = curthread->no_cancel;
+	curthread->no_cancel = 1;
 	_thr_rwl_rdlock(&_thr_atfork_lock);
 
 	/* Run down atfork prepare handlers. */
@@ -223,6 +224,7 @@ _fork(void)
 				af->child();
 		}
 		_thr_rwlock_unlock(&_thr_atfork_lock);
+		curthread->no_cancel = cancelsave;
 	} else {
 		/* Parent process */
 		errsave = errno;
@@ -244,6 +246,9 @@ _fork(void)
 		}
 
 		_thr_rwlock_unlock(&_thr_atfork_lock);
+		curthread->no_cancel = cancelsave;
+		/* test async cancel */
+		_thr_testcancel(curthread);
 	}
 	errno = errsave;
 

Modified: projects/sv/lib/libthr/thread/thr_init.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_init.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_init.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -413,6 +413,10 @@ init_main_thread(struct pthread *thread)
 		 &sched_param);
 	thread->attr.prio = sched_param.sched_priority;
 
+#ifdef _PTHREAD_FORCED_UNWIND
+	thread->unwind_stackend = _usrstack;
+#endif
+
 	/* Others cleared to zero by thr_alloc() */
 }
 

Modified: projects/sv/lib/libthr/thread/thr_join.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_join.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_join.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -48,7 +48,7 @@ static void backout_join(void *arg)
 
 	THR_THREAD_LOCK(curthread, pthread);
 	pthread->joiner = NULL;
-	THR_THREAD_LOCK(curthread, pthread);
+	THR_THREAD_UNLOCK(curthread, pthread);
 }
 
 int

Modified: projects/sv/lib/libthr/thread/thr_private.h
==============================================================================
--- projects/sv/lib/libthr/thread/thr_private.h	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_private.h	Sun Sep 19 15:15:04 2010	(r212862)
@@ -70,6 +70,10 @@
 #include "thr_umtx.h"
 #include "thread_db.h"
 
+#ifdef _PTHREAD_FORCED_UNWIND
+#include <unwind-generic.h>
+#endif
+
 typedef TAILQ_HEAD(pthreadlist, pthread) pthreadlist;
 typedef TAILQ_HEAD(atfork_head, pthread_atfork) atfork_head;
 TAILQ_HEAD(mutex_queue, pthread_mutex);
@@ -352,9 +356,9 @@ struct pthread {
 	struct pthread_attr	attr;
 
 #define	SHOULD_CANCEL(thr)					\
-	((thr)->cancel_pending &&				\
+	((thr)->cancel_pending && (thr)->cancel_enable &&	\
 	 ((thr)->cancel_point || (thr)->cancel_async) &&	\
-	 (thr)->cancel_enable && (thr)->cancelling == 0)
+	 (thr)->no_cancel == 0)
 
 	/* Cancellation is enabled */
 	int			cancel_enable;
@@ -365,8 +369,8 @@ struct pthread {
 	/* Thread is at cancellation point */
 	int			cancel_point;
 
-	/* Cancellation should be synchoronized */
-	int			cancel_defer;
+	/* Cancellation is temporarily disabled */
+	int			no_cancel;
 
 	/* Asynchronouse cancellation is enabled */
 	int			cancel_async;
@@ -415,13 +419,13 @@ struct pthread {
 #define THR_FLAGS_PRIVATE	0x0001
 #define	THR_FLAGS_NEED_SUSPEND	0x0002	/* thread should be suspended */
 #define	THR_FLAGS_SUSPENDED	0x0004	/* thread is suspended */
-#define	THR_FLAGS_IN_GCLIST	0x0008	/* thread in gc list */
-#define	THR_FLAGS_DETACHED	0x0010	/* thread is detached */
+#define	THR_FLAGS_DETACHED	0x0008	/* thread is detached */
 
 	/* Thread list flags; only set with thread list lock held. */
 	int			tlflags;
 #define	TLFLAGS_GC_SAFE		0x0001	/* thread safe for cleaning */
 #define	TLFLAGS_IN_TDLIST	0x0002	/* thread in all thread list */
+#define	TLFLAGS_IN_GCLIST	0x0004	/* thread in gc list */
 
 	/* Queue of currently owned NORMAL or PRIO_INHERIT type mutexes. */
 	struct mutex_queue	mutexq;
@@ -446,6 +450,11 @@ struct pthread {
 	/* Cleanup handlers Link List */
 	struct pthread_cleanup	*cleanup;
 
+#ifdef _PTHREAD_FORCED_UNWIND
+	struct _Unwind_Exception	ex;
+	void			*unwind_stackend;
+#endif
+
 	/*
 	 * Magic value to help recognize a valid thread structure
 	 * from an invalid one:
@@ -559,16 +568,16 @@ do {								\
 	}							\
 } while (0)
 #define	THR_GCLIST_ADD(thrd) do {				\
-	if (((thrd)->flags & THR_FLAGS_IN_GCLIST) == 0) {	\
+	if (((thrd)->tlflags & TLFLAGS_IN_GCLIST) == 0) {	\
 		TAILQ_INSERT_HEAD(&_thread_gc_list, thrd, gcle);\
-		(thrd)->flags |= THR_FLAGS_IN_GCLIST;		\
+		(thrd)->tlflags |= TLFLAGS_IN_GCLIST;		\
 		_gc_count++;					\
 	}							\
 } while (0)
 #define	THR_GCLIST_REMOVE(thrd) do {				\
-	if (((thrd)->flags & THR_FLAGS_IN_GCLIST) != 0) {	\
+	if (((thrd)->tlflags & TLFLAGS_IN_GCLIST) != 0) {	\
 		TAILQ_REMOVE(&_thread_gc_list, thrd, gcle);	\
-		(thrd)->flags &= ~THR_FLAGS_IN_GCLIST;		\
+		(thrd)->tlflags &= ~TLFLAGS_IN_GCLIST;		\
 		_gc_count--;					\
 	}							\
 } while (0)

Modified: projects/sv/lib/libthr/thread/thr_sig.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_sig.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/lib/libthr/thread/thr_sig.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -187,7 +187,6 @@ handle_signal(struct sigaction *actp, in
 	struct pthread *curthread = _get_curthread();
 	ucontext_t uc2;
 	__siginfohandler_t *sigfunc;
-	int cancel_defer;
 	int cancel_point;
 	int cancel_async;
 	int cancel_enable;
@@ -213,12 +212,10 @@ handle_signal(struct sigaction *actp, in
 	 * cancellation is pending, to avoid this problem while thread is in
 	 * deferring mode, cancellation is temporarily disabled.
 	 */
-	cancel_defer = curthread->cancel_defer;
 	cancel_point = curthread->cancel_point;
 	cancel_async = curthread->cancel_async;
 	cancel_enable = curthread->cancel_enable;
 	curthread->cancel_point = 0;
-	curthread->cancel_defer = 0;
 	if (!cancel_async)
 		curthread->cancel_enable = 0;
 
@@ -245,7 +242,6 @@ handle_signal(struct sigaction *actp, in
 	err = errno;
 
 	curthread->in_sigsuspend = in_sigsuspend;
-	curthread->cancel_defer = cancel_defer;
 	curthread->cancel_point = cancel_point;
 	curthread->cancel_enable = cancel_enable;
 
@@ -275,7 +271,7 @@ check_cancel(struct pthread *curthread, 
 {
 
 	if (__predict_true(!curthread->cancel_pending || !curthread->cancel_enable ||
-	    curthread->cancelling))
+	    curthread->no_cancel))
 		return;
 
 	if (curthread->cancel_async) {

Modified: projects/sv/libexec/tftpd/Makefile
==============================================================================
--- projects/sv/libexec/tftpd/Makefile	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/libexec/tftpd/Makefile	Sun Sep 19 15:15:04 2010	(r212862)
@@ -6,7 +6,6 @@ SRCS=	tftpd.c tftp-io.c tftp-utils.c tft
 WARNS=	3
 WFORMAT=0
 MAN=	tftpd.8
-CFLAGS=-g -Wall
 CFLAGS+=-I${.CURDIR}/../../usr.bin/tftp -I${.CURDIR}/../../libexec/tftpd
 .PATH:	${.CURDIR}/../../usr.bin/tftp
 COPTFLAGS = -O

Modified: projects/sv/libexec/tftpd/tftp-io.c
==============================================================================
--- projects/sv/libexec/tftpd/tftp-io.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/libexec/tftpd/tftp-io.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -398,8 +398,6 @@ receive_packet(int peer, char *data, int
 	int n;
 	static int waiting;
 
-	pfrom = (from == NULL) ? &from_local : from;
-
 	if (debug&DEBUG_PACKETS)
 		tftp_log(LOG_DEBUG,
 		    "Waiting %d seconds for packet", timeoutpacket);
@@ -423,6 +421,7 @@ receive_packet(int peer, char *data, int
 	}
 
 	waiting++;
+	pfrom = (from == NULL) ? &from_local : from;
 	fromlen = sizeof(*pfrom);
 	n = recvfrom(peer, data, size, 0, (struct sockaddr *)pfrom, &fromlen);
 

Modified: projects/sv/release/Makefile.inc.docports
==============================================================================
--- projects/sv/release/Makefile.inc.docports	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/release/Makefile.inc.docports	Sun Sep 19 15:15:04 2010	(r212862)
@@ -26,9 +26,12 @@ MINIMALDOCPORTS= \
 MINIMALDOCPORTS+= \
 	ports/archivers/unzip \
 	ports/converters/libiconv \
+	ports/devel/autoconf267 \
+	ports/devel/autoconf-wrapper \
 	ports/devel/gettext \
 	ports/devel/gmake \
-	ports/devel/libtool15 \
+	ports/devel/libtool22 \
+	ports/devel/m4 \
 	ports/devel/pkg-config \
 	ports/graphics/gd \
 	ports/graphics/jbigkit \
@@ -37,6 +40,7 @@ MINIMALDOCPORTS+= \
 	ports/graphics/png \
 	ports/graphics/scr2png \
 	ports/graphics/tiff \
+	ports/misc/help2man \
 	ports/print/freetype2 \
 	ports/print/ghostscript8 \
 	ports/print/ghostscript8-nox11 \

Modified: projects/sv/sbin/fdisk/fdisk.c
==============================================================================
--- projects/sv/sbin/fdisk/fdisk.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/sbin/fdisk/fdisk.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -1462,6 +1462,7 @@ sanitize_partition(struct dos_partition 
  *   /dev/da0a       => /dev/da0
  *   /dev/vinum/root => /dev/vinum/root
  * A ".eli" part is removed if it exists (see geli(8)).
+ * A ".journal" ending is removed if it exists (see gjournal(8)).
  */
 static char *
 get_rootdisk(void)
@@ -1476,7 +1477,7 @@ get_rootdisk(void)
 	if (statfs("/", &rootfs) == -1)
 		err(1, "statfs(\"/\")");
 
-	if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?$",
+	if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]*)([sp][0-9]+)?[a-h]?(\\.journal)?$",
 		    REG_EXTENDED)) != 0)
 		errx(1, "regcomp() failed (%d)", rv);
 	strlcpy(dev, rootfs.f_mntfromname, sizeof (dev));

Modified: projects/sv/sbin/geom/class/eli/geli.8
==============================================================================
--- projects/sv/sbin/geom/class/eli/geli.8	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/sbin/geom/class/eli/geli.8	Sun Sep 19 15:15:04 2010	(r212862)
@@ -217,7 +217,7 @@ The metadata can be recovered with the
 subcommand described below.
 .Pp
 Additional options include:
-.Bl -tag -width ".Fl a Ar aalgo"
+.Bl -tag -width ".Fl a Ar newkeyfile"
 .It Fl a Ar aalgo
 Enable data integrity verification (authentication) using the given algorithm.
 This will reduce size of available storage and also reduce speed.
@@ -302,7 +302,7 @@ provider's name with an
 suffix.
 .Pp
 Additional options include:
-.Bl -tag -width ".Fl a Ar algo"
+.Bl -tag -width ".Fl a Ar keyfile"
 .It Fl d
 If specified, a decrypted provider will be detached automatically on last close.
 This can help with short memory - user does not have to remember to detach the
@@ -332,7 +332,7 @@ Detach the given providers, which means 
 and clear the keys from memory.
 .Pp
 Additional options include:
-.Bl -tag -width ".Fl a Ar algo"
+.Bl -tag -width ".Fl f"
 .It Fl f
 Force detach - detach even if the provider is open.
 .It Fl l
@@ -347,7 +347,7 @@ Attach the given providers with random, 
 The command can be used to encrypt swap partitions or temporary file systems.
 .Pp
 Additional options include:
-.Bl -tag -width ".Fl a Ar aalgo"
+.Bl -tag -width ".Fl a Ar sectorsize"
 .It Fl a Ar aalgo
 Enable data integrity verification (authentication).
 For more information, see the description of the
@@ -402,7 +402,7 @@ When a provider is attached, the user do
 an old passphrase/keyfile.
 .Pp
 Additional options include:
-.Bl -tag -width ".Fl a Ar algo"
+.Bl -tag -width ".Fl a Ar iterations"
 .It Fl i Ar iterations
 Number of iterations to use with PKCS#5v2.
 If 0 is given, PKCS#5v2 will not be used.
@@ -432,7 +432,7 @@ will not be detached even if all keys wi
 It can be even rescued with the
 .Cm setkey
 subcommand.
-.Bl -tag -width ".Fl a Ar algo"
+.Bl -tag -width ".Fl a Ar keyno"
 .It Fl a
 Destroy all keys (does not need
 .Fl f
@@ -456,7 +456,7 @@ backup, your data is gone for good.
 In case the provider was attached with the
 .Fl r
 flag, the keys will not be destroyed, only the provider will be detached.
-.Bl -tag -width ".Fl a Ar algo"
+.Bl -tag -width ".Fl a"
 .It Fl a
 If specified, all currently attached providers will be killed.
 .El

Modified: projects/sv/sbin/geom/class/part/geom_part.c
==============================================================================
--- projects/sv/sbin/geom/class/part/geom_part.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/sbin/geom/class/part/geom_part.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -90,7 +90,7 @@ struct g_command PUBSYM(class_commands)[
 		{ 'b', "start", GPART_AUTOFILL, G_TYPE_STRING },
 		{ 's', "size", GPART_AUTOFILL, G_TYPE_STRING },
 		{ 't', "type", NULL, G_TYPE_STRING },
-		{ 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_NUMBER },
 		{ 'l', "label", G_VAL_OPTIONAL, G_TYPE_STRING },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
@@ -99,7 +99,7 @@ struct g_command PUBSYM(class_commands)[
 	{ "bootcode", 0, gpart_bootcode, {
 		{ 'b', GPART_PARAM_BOOTCODE, G_VAL_OPTIONAL, G_TYPE_STRING },
 		{ 'p', GPART_PARAM_PARTCODE, G_VAL_OPTIONAL, G_TYPE_STRING },
-		{ 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	    "bootcode [-b bootcode] [-p partcode] [-i index] [-f flags] geom"
@@ -109,13 +109,13 @@ struct g_command PUBSYM(class_commands)[
 	},
 	{ "create", 0, gpart_issue, {
 		{ 's', "scheme", NULL, G_TYPE_STRING },
-		{ 'n', "entries", G_VAL_OPTIONAL, G_TYPE_ASCNUM },
+		{ 'n', "entries", G_VAL_OPTIONAL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	    "-s scheme [-n entries] [-f flags] provider"
 	},
 	{ "delete", 0, gpart_issue, {
-		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	    "-i index [-f flags] geom"
@@ -126,7 +126,7 @@ struct g_command PUBSYM(class_commands)[
 	    "[-f flags] geom"
 	},
 	{ "modify", 0, gpart_issue, {
-		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER },
 		{ 'l', "label", G_VAL_OPTIONAL, G_TYPE_STRING },
 		{ 't', "type", G_VAL_OPTIONAL, G_TYPE_STRING },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
@@ -135,7 +135,7 @@ struct g_command PUBSYM(class_commands)[
 	},
 	{ "set", 0, gpart_issue, {
 		{ 'a', "attrib", NULL, G_TYPE_STRING },
-		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	    "-a attrib -i index [-f flags] geom"
@@ -151,14 +151,14 @@ struct g_command PUBSYM(class_commands)[
 	},
 	{ "unset", 0, gpart_issue, {
 		{ 'a', "attrib", NULL, G_TYPE_STRING },
-		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	    "-a attrib -i index [-f flags] geom"
 	},
 	{ "resize", 0, gpart_issue, {
 		{ 's', "size", GPART_AUTOFILL, G_TYPE_STRING },
-		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_ASCNUM },
+		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	    "[-s size] -i index [-f flags] geom"
@@ -285,12 +285,10 @@ gpart_autofill_resize(struct gctl_req *r
 	off_t last, size, start, new_size;
 	off_t lba, new_lba;
 	const char *s;
-	char *val;
 	int error, idx;
 
-	s = gctl_get_ascii(req, GPART_PARAM_INDEX);
-	idx = strtol(s, &val, 10);
-	if (idx < 1 || *s == '\0' || *val != '\0')
+	idx = (int)gctl_get_intmax(req, GPART_PARAM_INDEX);
+	if (idx < 1)
 		errx(EXIT_FAILURE, "invalid partition index");
 
 	error = geom_gettree(&mesh);
@@ -302,7 +300,7 @@ gpart_autofill_resize(struct gctl_req *r
 	cp = find_class(&mesh, s);
 	if (cp == NULL)
 		errx(EXIT_FAILURE, "Class %s not found.", s);
-	s = gctl_get_ascii(req, "geom");
+	s = gctl_get_ascii(req, "arg0");
 	if (s == NULL)
 		abort();
 	gp = find_geom(cp, s);
@@ -411,7 +409,7 @@ gpart_autofill(struct gctl_req *req)
 	cp = find_class(&mesh, s);
 	if (cp == NULL)
 		errx(EXIT_FAILURE, "Class %s not found.", s);
-	s = gctl_get_ascii(req, "geom");
+	s = gctl_get_ascii(req, "arg0");
 	if (s == NULL)
 		abort();
 	gp = find_geom(cp, s);
@@ -775,7 +773,6 @@ gpart_bootcode(struct gctl_req *req, uns
 	struct gclass *classp;
 	struct ggeom *gp;
 	const char *s;
-	char *sp;
 	void *bootcode, *partcode;
 	size_t bootsize, partsize;
 	int error, idx, vtoc8;
@@ -830,9 +827,8 @@ gpart_bootcode(struct gctl_req *req, uns
 	if (gctl_has_param(req, GPART_PARAM_INDEX)) {
 		if (partcode == NULL)
 			errx(EXIT_FAILURE, "-i is only valid with -p");
-		s = gctl_get_ascii(req, GPART_PARAM_INDEX);
-		idx = strtol(s, &sp, 10);
-		if (idx < 1 || *s == '\0' || *sp != '\0')
+		idx = (int)gctl_get_intmax(req, GPART_PARAM_INDEX);
+		if (idx < 1)
 			errx(EXIT_FAILURE, "invalid partition index");
 		error = gctl_delete_param(req, GPART_PARAM_INDEX);
 		if (error)

Modified: projects/sv/sbin/geom/core/geom.c
==============================================================================
--- projects/sv/sbin/geom/core/geom.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/sbin/geom/core/geom.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -259,27 +259,17 @@ set_option(struct gctl_req *req, struct 
 		optname = opt->go_name;
 	}
 
-	if (G_OPT_TYPE(opt) == G_TYPE_NUMBER ||
-	    G_OPT_TYPE(opt) == G_TYPE_ASCNUM) {
+	if (G_OPT_TYPE(opt) == G_TYPE_NUMBER) {
 		if (expand_number(val, &number) == -1) {
 			err(EXIT_FAILURE, "Invalid value for '%c' argument",
 			    opt->go_char);
 		}
-		if (G_OPT_TYPE(opt) == G_TYPE_NUMBER) {
-			ptr = malloc(sizeof(intmax_t));
-			if (ptr == NULL)
-				errx(EXIT_FAILURE, "No memory.");
-			*(intmax_t *)ptr = number;
-			opt->go_val = ptr;
-			gctl_ro_param(req, optname, sizeof(intmax_t),
-			    opt->go_val);
-		} else {
-			asprintf((void *)(&ptr), "%jd", number);
-			if (ptr == NULL)
-				errx(EXIT_FAILURE, "No memory.");
-			opt->go_val = ptr;
-			gctl_ro_param(req, optname, -1, opt->go_val);
-		}
+		ptr = malloc(sizeof(intmax_t));
+		if (ptr == NULL)
+			errx(EXIT_FAILURE, "No memory.");
+		*(intmax_t *)ptr = number;
+		opt->go_val = ptr;
+		gctl_ro_param(req, optname, sizeof(intmax_t), opt->go_val);
 	} else if (G_OPT_TYPE(opt) == G_TYPE_STRING) {
 		gctl_ro_param(req, optname, -1, val);
 	} else if (G_OPT_TYPE(opt) == G_TYPE_BOOL) {

Modified: projects/sv/sbin/geom/core/geom.h
==============================================================================
--- projects/sv/sbin/geom/core/geom.h	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/sbin/geom/core/geom.h	Sun Sep 19 15:15:04 2010	(r212862)
@@ -38,7 +38,6 @@
 #define	G_TYPE_BOOL	0x01
 #define	G_TYPE_STRING	0x02
 #define	G_TYPE_NUMBER	0x03
-#define	G_TYPE_ASCNUM	0x04
 #define	G_TYPE_MASK	0x0f
 #define	G_TYPE_DONE	0x10
 #define	G_TYPE_MULTI	0x20

Modified: projects/sv/sbin/growfs/growfs.c
==============================================================================
--- projects/sv/sbin/growfs/growfs.c	Sun Sep 19 14:40:37 2010	(r212861)
+++ projects/sv/sbin/growfs/growfs.c	Sun Sep 19 15:15:04 2010	(r212862)
@@ -371,16 +371,16 @@ static void
 initcg(int cylno, time_t utime, int fso, unsigned int Nflag)
 {
 	DBG_FUNC("initcg")
-	static void *iobuf;
+	static caddr_t iobuf;
 	long blkno, start;
 	ufs2_daddr_t i, cbase, dmax;
 	struct ufs1_dinode *dp1;
 	struct csum *cs;
 	uint d, dupper, dlower;
 
-	if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize)) == NULL) {
+	if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize * 3)) == NULL)
 		errx(37, "panic: cannot allocate I/O buffer");
-	}
+
 	/*
 	 * Determine block bounds for cylinder group.
 	 * Allow space for super block summary information in first
@@ -396,17 +396,12 @@ initcg(int cylno, time_t utime, int fso,
 		dupper += howmany(sblock.fs_cssize, sblock.fs_fsize);
 	cs = &fscs[cylno];
 	memset(&acg, 0, sblock.fs_cgsize);
-	/*

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


More information about the svn-src-projects mailing list