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