svn commit: r202144 - in projects/ngroups: . contrib/gcc/config/mips contrib/one-true-awk contrib/opie/libopie etc etc/rc.d games/fortune/datfiles kerberos5/usr.bin/kdestroy kerberos5/usr.bin/kpass...

Brooks Davis brooks at FreeBSD.org
Tue Jan 12 07:55:03 UTC 2010


Author: brooks
Date: Tue Jan 12 07:55:02 2010
New Revision: 202144
URL: http://svn.freebsd.org/changeset/base/202144

Log:
  MFH at r202143

Added:
  projects/ngroups/lib/libc/mips/gen/hardfloat/
     - copied from r202143, head/lib/libc/mips/gen/hardfloat/
  projects/ngroups/share/man/man3/pthread_affinity_np.3
     - copied unchanged from r202143, head/share/man/man3/pthread_affinity_np.3
  projects/ngroups/share/man/man3/pthread_attr_affinity_np.3
     - copied unchanged from r202143, head/share/man/man3/pthread_attr_affinity_np.3
  projects/ngroups/sys/boot/efi/libefi/efipart.c
     - copied unchanged from r202143, head/sys/boot/efi/libefi/efipart.c
  projects/ngroups/sys/conf/ldscript.mips.mips64
     - copied unchanged from r202143, head/sys/conf/ldscript.mips.mips64
  projects/ngroups/sys/conf/ldscript.mips.octeon1.32
     - copied unchanged from r202143, head/sys/conf/ldscript.mips.octeon1.32
  projects/ngroups/sys/conf/ldscript.mips.octeon1.64
     - copied unchanged from r202143, head/sys/conf/ldscript.mips.octeon1.64
  projects/ngroups/sys/conf/ldscript.mips.octeon1.n32
     - copied unchanged from r202143, head/sys/conf/ldscript.mips.octeon1.n32
  projects/ngroups/sys/dev/cfe/cfe_env.c
     - copied unchanged from r202143, head/sys/dev/cfe/cfe_env.c
  projects/ngroups/sys/dev/flash/mx25l.c
     - copied unchanged from r202143, head/sys/dev/flash/mx25l.c
  projects/ngroups/sys/dev/flash/mx25lreg.h
     - copied unchanged from r202143, head/sys/dev/flash/mx25lreg.h
  projects/ngroups/sys/dev/siba/siba_cc.c
     - copied unchanged from r202143, head/sys/dev/siba/siba_cc.c
  projects/ngroups/sys/ia64/ia64/iodev_machdep.c
     - copied unchanged from r202143, head/sys/ia64/ia64/iodev_machdep.c
  projects/ngroups/sys/ia64/include/iodev.h
     - copied unchanged from r202143, head/sys/ia64/include/iodev.h
  projects/ngroups/sys/mips/alchemy/
     - copied from r202143, head/sys/mips/alchemy/
  projects/ngroups/sys/mips/atheros/
     - copied from r202143, head/sys/mips/atheros/
  projects/ngroups/sys/mips/cavium/
     - copied from r202143, head/sys/mips/cavium/
  projects/ngroups/sys/mips/conf/ALCHEMY
     - copied unchanged from r202143, head/sys/mips/conf/ALCHEMY
  projects/ngroups/sys/mips/conf/AR71XX
     - copied unchanged from r202143, head/sys/mips/conf/AR71XX
  projects/ngroups/sys/mips/conf/AR71XX.hints
     - copied unchanged from r202143, head/sys/mips/conf/AR71XX.hints
  projects/ngroups/sys/mips/conf/MALTA64
     - copied unchanged from r202143, head/sys/mips/conf/MALTA64
  projects/ngroups/sys/mips/conf/OCTEON1
     - copied unchanged from r202143, head/sys/mips/conf/OCTEON1
  projects/ngroups/sys/mips/conf/OCTEON1-32
     - copied unchanged from r202143, head/sys/mips/conf/OCTEON1-32
  projects/ngroups/sys/mips/conf/OCTEON1.hints
     - copied unchanged from r202143, head/sys/mips/conf/OCTEON1.hints
  projects/ngroups/sys/mips/conf/SWARM
     - copied unchanged from r202143, head/sys/mips/conf/SWARM
  projects/ngroups/sys/mips/conf/SWARM.hints
     - copied unchanged from r202143, head/sys/mips/conf/SWARM.hints
  projects/ngroups/sys/mips/conf/XLR
     - copied unchanged from r202143, head/sys/mips/conf/XLR
  projects/ngroups/sys/mips/include/cdefs.h
     - copied unchanged from r202143, head/sys/mips/include/cdefs.h
  projects/ngroups/sys/mips/include/fls64.h
     - copied unchanged from r202143, head/sys/mips/include/fls64.h
  projects/ngroups/sys/mips/mips/bus_space_generic.c
     - copied unchanged from r202143, head/sys/mips/mips/bus_space_generic.c
  projects/ngroups/sys/mips/mips/elf_trampoline.c
     - copied unchanged from r202143, head/sys/mips/mips/elf_trampoline.c
  projects/ngroups/sys/mips/mips/inckern.S
     - copied unchanged from r202143, head/sys/mips/mips/inckern.S
  projects/ngroups/sys/mips/mips/ptrace_machdep.c
     - copied unchanged from r202143, head/sys/mips/mips/ptrace_machdep.c
  projects/ngroups/sys/mips/mips/sys_machdep.c
     - copied unchanged from r202143, head/sys/mips/mips/sys_machdep.c
  projects/ngroups/sys/mips/rmi/
     - copied from r202143, head/sys/mips/rmi/
  projects/ngroups/sys/mips/sibyte/
     - copied from r202143, head/sys/mips/sibyte/
  projects/ngroups/sys/modules/epic/
     - copied from r202143, head/sys/modules/epic/
  projects/ngroups/sys/sparc64/ebus/epic.c
     - copied unchanged from r202143, head/sys/sparc64/ebus/epic.c
Deleted:
  projects/ngroups/contrib/one-true-awk/mac.code
  projects/ngroups/lib/libc/mips/gen/fpgetmask.c
  projects/ngroups/lib/libc/mips/gen/fpgetround.c
  projects/ngroups/lib/libc/mips/gen/fpgetsticky.c
  projects/ngroups/lib/libc/mips/gen/fpsetmask.c
  projects/ngroups/lib/libc/mips/gen/fpsetround.c
  projects/ngroups/lib/libc/mips/gen/fpsetsticky.c
  projects/ngroups/sys/boot/efi/libefi/efifs.c
  projects/ngroups/sys/mips/include/bus_octeon.h
  projects/ngroups/sys/mips/include/intr.h
  projects/ngroups/sys/mips/include/pltfm.h
  projects/ngroups/sys/mips/sentry5/siba_cc.c
  projects/ngroups/sys/mips/sentry5/siba_mips.c
  projects/ngroups/sys/mips/sentry5/siba_sdram.c
  projects/ngroups/usr.bin/awk/b.c.diff
  projects/ngroups/usr.bin/awk/main.c.diff
  projects/ngroups/usr.bin/awk/run.c.diff
Modified:
  projects/ngroups/Makefile
  projects/ngroups/UPDATING
  projects/ngroups/contrib/gcc/config/mips/freebsd.h
  projects/ngroups/contrib/one-true-awk/FIXES
  projects/ngroups/contrib/one-true-awk/b.c
  projects/ngroups/contrib/one-true-awk/lib.c
  projects/ngroups/contrib/one-true-awk/main.c
  projects/ngroups/contrib/one-true-awk/makefile
  projects/ngroups/contrib/one-true-awk/maketab.c
  projects/ngroups/contrib/one-true-awk/proctab.c
  projects/ngroups/contrib/one-true-awk/proto.h
  projects/ngroups/contrib/one-true-awk/run.c
  projects/ngroups/contrib/opie/libopie/getutmpentry.c
  projects/ngroups/contrib/opie/libopie/insecure.c
  projects/ngroups/contrib/opie/libopie/login.c
  projects/ngroups/etc/rc.firewall
  projects/ngroups/etc/termcap.small
  projects/ngroups/games/fortune/datfiles/freebsd-tips
  projects/ngroups/kerberos5/usr.bin/kdestroy/Makefile
  projects/ngroups/kerberos5/usr.bin/kpasswd/Makefile
  projects/ngroups/lib/libc/Makefile
  projects/ngroups/lib/libc/gen/sem_init.3
  projects/ngroups/lib/libc/gen/sem_open.3
  projects/ngroups/lib/libc/mips/Symbol.map
  projects/ngroups/lib/libc/mips/sys/brk.S
  projects/ngroups/lib/libc/stdio/fread.c
  projects/ngroups/lib/libc/stdio/fwrite.c
  projects/ngroups/lib/libc/sys/cpuset.2
  projects/ngroups/lib/libc/sys/cpuset_getaffinity.2
  projects/ngroups/lib/libstand/dosfs.c
  projects/ngroups/lib/libthr/arch/mips/include/pthread_md.h
  projects/ngroups/lib/libusb/libusb20.c
  projects/ngroups/sbin/fsck_ffs/pass2.c
  projects/ngroups/share/man/man3/Makefile
  projects/ngroups/share/man/man3/pthread.3
  projects/ngroups/share/man/man3/pthread_attr.3
  projects/ngroups/share/man/man4/bridge.4
  projects/ngroups/share/man/man4/faith.4
  projects/ngroups/share/man/man4/uart.4
  projects/ngroups/share/man/man5/devfs.rules.5
  projects/ngroups/share/man/man9/sleepqueue.9
  projects/ngroups/share/mk/bsd.libnames.mk
  projects/ngroups/share/termcap/termcap.src
  projects/ngroups/sys/amd64/amd64/io.c
  projects/ngroups/sys/amd64/amd64/mp_machdep.c
  projects/ngroups/sys/amd64/amd64/pmap.c
  projects/ngroups/sys/amd64/amd64/sys_machdep.c
  projects/ngroups/sys/amd64/conf/GENERIC
  projects/ngroups/sys/amd64/include/iodev.h
  projects/ngroups/sys/boot/common/bootstrap.h
  projects/ngroups/sys/boot/common/dev_net.c
  projects/ngroups/sys/boot/efi/include/efilib.h
  projects/ngroups/sys/boot/efi/libefi/Makefile
  projects/ngroups/sys/boot/forth/loader.conf
  projects/ngroups/sys/boot/ia64/efi/conf.c
  projects/ngroups/sys/boot/ia64/efi/main.c
  projects/ngroups/sys/boot/ia64/efi/version
  projects/ngroups/sys/boot/sparc64/loader/Makefile
  projects/ngroups/sys/cam/ata/ata_xpt.c
  projects/ngroups/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  projects/ngroups/sys/compat/linux/linux_file.c
  projects/ngroups/sys/conf/Makefile.mips
  projects/ngroups/sys/conf/NOTES
  projects/ngroups/sys/conf/files
  projects/ngroups/sys/conf/files.ia64
  projects/ngroups/sys/conf/files.mips
  projects/ngroups/sys/conf/files.sparc64
  projects/ngroups/sys/conf/kern.mk
  projects/ngroups/sys/conf/ldscript.mips
  projects/ngroups/sys/conf/options
  projects/ngroups/sys/conf/options.mips
  projects/ngroups/sys/dev/ae/if_ae.c
  projects/ngroups/sys/dev/ahci/ahci.c
  projects/ngroups/sys/dev/ata/ata-all.c
  projects/ngroups/sys/dev/ata/chipsets/ata-ati.c
  projects/ngroups/sys/dev/cfe/cfe_api.c
  projects/ngroups/sys/dev/cxgb/common/cxgb_t3_hw.c
  projects/ngroups/sys/dev/ic/ns16550.h
  projects/ngroups/sys/dev/io/iodev.c
  projects/ngroups/sys/dev/iwn/if_iwn.c
  projects/ngroups/sys/dev/iwn/if_iwnvar.h
  projects/ngroups/sys/dev/mxge/eth_z8e.h
  projects/ngroups/sys/dev/mxge/ethp_z8e.h
  projects/ngroups/sys/dev/mxge/if_mxge.c
  projects/ngroups/sys/dev/mxge/rss_eth_z8e.h
  projects/ngroups/sys/dev/mxge/rss_ethp_z8e.h
  projects/ngroups/sys/dev/sound/pci/hda/hdac.c
  projects/ngroups/sys/dev/sound/pci/hda/hdac_private.h
  projects/ngroups/sys/dev/usb/serial/u3g.c
  projects/ngroups/sys/dev/usb/usbdevs
  projects/ngroups/sys/i386/conf/GENERIC
  projects/ngroups/sys/i386/i386/io.c
  projects/ngroups/sys/i386/i386/locore.s
  projects/ngroups/sys/i386/i386/pmap.c
  projects/ngroups/sys/i386/include/iodev.h
  projects/ngroups/sys/i386/xen/mp_machdep.c
  projects/ngroups/sys/i386/xen/xen_machdep.c
  projects/ngroups/sys/ia64/conf/DEFAULTS
  projects/ngroups/sys/ia64/conf/GENERIC
  projects/ngroups/sys/ia64/ia64/sys_machdep.c
  projects/ngroups/sys/ia64/include/sysarch.h
  projects/ngroups/sys/kern/kern_clock.c
  projects/ngroups/sys/kern/kern_environment.c
  projects/ngroups/sys/kern/kern_jail.c
  projects/ngroups/sys/kern/kern_umtx.c
  projects/ngroups/sys/kern/subr_sleepqueue.c
  projects/ngroups/sys/kern/subr_turnstile.c
  projects/ngroups/sys/kern/vfs_syscalls.c
  projects/ngroups/sys/mips/adm5120/adm5120_machdep.c
  projects/ngroups/sys/mips/adm5120/files.adm5120
  projects/ngroups/sys/mips/adm5120/if_admsw.c
  projects/ngroups/sys/mips/adm5120/obio.c
  projects/ngroups/sys/mips/adm5120/uart_cpu_adm5120.c
  projects/ngroups/sys/mips/conf/MALTA
  projects/ngroups/sys/mips/conf/SENTRY5
  projects/ngroups/sys/mips/idt/files.idt
  projects/ngroups/sys/mips/idt/idt_machdep.c
  projects/ngroups/sys/mips/idt/obio.c
  projects/ngroups/sys/mips/idt/uart_bus_rc32434.c
  projects/ngroups/sys/mips/idt/uart_cpu_rc32434.c
  projects/ngroups/sys/mips/include/_align.h
  projects/ngroups/sys/mips/include/_bus.h
  projects/ngroups/sys/mips/include/_types.h
  projects/ngroups/sys/mips/include/asm.h
  projects/ngroups/sys/mips/include/atomic.h
  projects/ngroups/sys/mips/include/bus.h
  projects/ngroups/sys/mips/include/cache.h
  projects/ngroups/sys/mips/include/cache_mipsNN.h
  projects/ngroups/sys/mips/include/cpu.h
  projects/ngroups/sys/mips/include/cpufunc.h
  projects/ngroups/sys/mips/include/cpuinfo.h
  projects/ngroups/sys/mips/include/cpuregs.h
  projects/ngroups/sys/mips/include/db_machdep.h
  projects/ngroups/sys/mips/include/elf.h
  projects/ngroups/sys/mips/include/endian.h
  projects/ngroups/sys/mips/include/float.h
  projects/ngroups/sys/mips/include/hwfunc.h
  projects/ngroups/sys/mips/include/intr_machdep.h
  projects/ngroups/sys/mips/include/kdb.h
  projects/ngroups/sys/mips/include/locore.h
  projects/ngroups/sys/mips/include/md_var.h
  projects/ngroups/sys/mips/include/param.h
  projects/ngroups/sys/mips/include/pcb.h
  projects/ngroups/sys/mips/include/pmap.h
  projects/ngroups/sys/mips/include/proc.h
  projects/ngroups/sys/mips/include/profile.h
  projects/ngroups/sys/mips/include/psl.h
  projects/ngroups/sys/mips/include/pte.h
  projects/ngroups/sys/mips/include/regdef.h
  projects/ngroups/sys/mips/include/regnum.h
  projects/ngroups/sys/mips/include/sysarch.h
  projects/ngroups/sys/mips/include/trap.h
  projects/ngroups/sys/mips/include/ucontext.h
  projects/ngroups/sys/mips/malta/files.malta
  projects/ngroups/sys/mips/malta/gt_pci.c
  projects/ngroups/sys/mips/malta/malta_machdep.c
  projects/ngroups/sys/mips/malta/maltareg.h
  projects/ngroups/sys/mips/malta/obio.c
  projects/ngroups/sys/mips/malta/std.malta
  projects/ngroups/sys/mips/malta/uart_bus_maltausart.c
  projects/ngroups/sys/mips/malta/uart_cpu_maltausart.c
  projects/ngroups/sys/mips/malta/yamon.h
  projects/ngroups/sys/mips/mips/busdma_machdep.c
  projects/ngroups/sys/mips/mips/cache.c
  projects/ngroups/sys/mips/mips/cache_mipsNN.c
  projects/ngroups/sys/mips/mips/copystr.S
  projects/ngroups/sys/mips/mips/cpu.c
  projects/ngroups/sys/mips/mips/db_trace.c
  projects/ngroups/sys/mips/mips/elf_machdep.c
  projects/ngroups/sys/mips/mips/exception.S
  projects/ngroups/sys/mips/mips/fp.S
  projects/ngroups/sys/mips/mips/gdb_machdep.c
  projects/ngroups/sys/mips/mips/genassym.c
  projects/ngroups/sys/mips/mips/in_cksum.c
  projects/ngroups/sys/mips/mips/intr_machdep.c
  projects/ngroups/sys/mips/mips/locore.S
  projects/ngroups/sys/mips/mips/machdep.c
  projects/ngroups/sys/mips/mips/mainbus.c
  projects/ngroups/sys/mips/mips/mem.c
  projects/ngroups/sys/mips/mips/nexus.c
  projects/ngroups/sys/mips/mips/pm_machdep.c
  projects/ngroups/sys/mips/mips/pmap.c
  projects/ngroups/sys/mips/mips/psraccess.S
  projects/ngroups/sys/mips/mips/support.S
  projects/ngroups/sys/mips/mips/swtch.S
  projects/ngroups/sys/mips/mips/tick.c
  projects/ngroups/sys/mips/mips/tlb.S
  projects/ngroups/sys/mips/mips/trap.c
  projects/ngroups/sys/mips/mips/vm_machdep.c
  projects/ngroups/sys/mips/sentry5/files.sentry5
  projects/ngroups/sys/mips/sentry5/obio.c
  projects/ngroups/sys/mips/sentry5/s5_machdep.c
  projects/ngroups/sys/mips/sentry5/uart_bus_sbusart.c
  projects/ngroups/sys/mips/sentry5/uart_cpu_sbusart.c
  projects/ngroups/sys/modules/Makefile
  projects/ngroups/sys/net/if_epair.c
  projects/ngroups/sys/netgraph/ng_ether.c
  projects/ngroups/sys/nfsclient/nfs_vfsops.c
  projects/ngroups/sys/nfsclient/nfs_vnops.c
  projects/ngroups/sys/nfsserver/nfs.h
  projects/ngroups/sys/nfsserver/nfs_fha.c
  projects/ngroups/sys/nfsserver/nfs_srvkrpc.c
  projects/ngroups/sys/opencrypto/cryptosoft.c
  projects/ngroups/sys/pc98/conf/GENERIC
  projects/ngroups/sys/powerpc/conf/GENERIC
  projects/ngroups/sys/sparc64/conf/GENERIC
  projects/ngroups/sys/sparc64/pci/fire.c
  projects/ngroups/sys/sun4v/conf/GENERIC
  projects/ngroups/sys/sys/proc.h
  projects/ngroups/sys/sys/sleepqueue.h
  projects/ngroups/sys/sys/syscallsubr.h
  projects/ngroups/sys/sys/systm.h
  projects/ngroups/sys/ufs/ffs/ffs_alloc.c
  projects/ngroups/sys/ufs/ffs/fs.h
  projects/ngroups/sys/ufs/ufs/ufs_lookup.c
  projects/ngroups/tools/build/mk/OptionalObsoleteFiles.inc
  projects/ngroups/usr.bin/awk/Makefile
  projects/ngroups/usr.bin/lastcomm/lastcomm.c
  projects/ngroups/usr.bin/make/job.c
  projects/ngroups/usr.bin/netstat/if.c
  projects/ngroups/usr.bin/netstat/main.c
  projects/ngroups/usr.bin/netstat/netstat.1
  projects/ngroups/usr.bin/netstat/netstat.h
  projects/ngroups/usr.sbin/faithd/faithd.8
  projects/ngroups/usr.sbin/traceroute/findsaddr-udp.c
  projects/ngroups/usr.sbin/usbconfig/Makefile
  projects/ngroups/usr.sbin/usbconfig/usbconfig.c
Directory Properties:
  projects/ngroups/   (props changed)
  projects/ngroups/cddl/contrib/opensolaris/   (props changed)
  projects/ngroups/contrib/ee/   (props changed)
  projects/ngroups/contrib/expat/   (props changed)
  projects/ngroups/contrib/less/   (props changed)
  projects/ngroups/contrib/one-true-awk/   (props changed)
  projects/ngroups/contrib/tcsh/   (props changed)
  projects/ngroups/etc/rc.d/static_arp   (props changed)
  projects/ngroups/sys/cddl/contrib/opensolaris/   (props changed)
  projects/ngroups/sys/cddl/contrib/opensolaris/uts/common/rpc/   (props changed)
  projects/ngroups/sys/contrib/dev/acpica/   (props changed)
  projects/ngroups/sys/dev/xen/xenpci/   (props changed)

Modified: projects/ngroups/Makefile
==============================================================================
--- projects/ngroups/Makefile	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/Makefile	Tue Jan 12 07:55:02 2010	(r202144)
@@ -321,8 +321,9 @@ universe_${target}:
 	@echo ">> ${target} completed on `LC_ALL=C date`"
 .endfor
 universe_kernels: universe_kernconfs
-BUILD_ARCH!=	uname -p
-TARGET?=	${BUILD_ARCH}
+.if !defined(TARGET)
+TARGET!=	uname -m
+.endif
 KERNCONFS!=	cd ${.CURDIR}/sys/${TARGET}/conf && \
 		find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
 		! -name DEFAULTS ! -name NOTES

Modified: projects/ngroups/UPDATING
==============================================================================
--- projects/ngroups/UPDATING	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/UPDATING	Tue Jan 12 07:55:02 2010	(r202144)
@@ -22,6 +22,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 	machines to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20100108:
+	Introduce the kernel thread "deadlock resolver" (which can be enabled
+	via the DEADLKRES option, see NOTES for more details) and the
+	sleepq_type() function for sleepqueues.
+
 20091202:
 	The rc.firewall and rc.firewall6 were unified, and
 	rc.firewall6 and rc.d/ip6fw were removed.

Modified: projects/ngroups/contrib/gcc/config/mips/freebsd.h
==============================================================================
--- projects/ngroups/contrib/gcc/config/mips/freebsd.h	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/gcc/config/mips/freebsd.h	Tue Jan 12 07:55:02 2010	(r202144)
@@ -97,6 +97,9 @@ Boston, MA 02110-1301, USA.  */
    Needs to agree with <machine/ansi.h>.  GCC defaults come from c-decl.c,
    c-common.c, and config/<arch>/<arch>.h.  */
 
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT (MASK_ABICALLS | MASK_SOFT_FLOAT)
+
 #if TARGET_ENDIAN_DEFAULT != 0
 #define TARGET_VERSION	fprintf (stderr, " (FreeBSD/mips)");
 #else

Modified: projects/ngroups/contrib/one-true-awk/FIXES
==============================================================================
--- projects/ngroups/contrib/one-true-awk/FIXES	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/FIXES	Tue Jan 12 07:55:02 2010	(r202144)
@@ -25,6 +25,23 @@ THIS SOFTWARE.
 This file lists all bug fixes, changes, etc., made since the AWK book
 was sent to the printers in August, 1987.
 
+Nov 26, 2009:
+	fixed a long-standing issue with when FS takes effect.  a
+	change to FS is now noticed immediately for subsequent splits.
+
+	changed the name getline() to awkgetline() to avoid yet another
+	name conflict somewhere.
+
+Feb 11, 2009:
+	temporarily for now defined HAS_ISBLANK, since that seems to
+	be the best way through the thicket.  isblank arrived in C99,
+	but seems to be arriving at different systems at different
+	times.
+
+Oct 8, 2008:
+	fixed typo in b.c that set tmpvec wrongly.  no one had ever
+	run into the problem, apparently.  thanks to alistair crooks.
+
 Oct 23, 2007:
 	minor fix in lib.c: increase inputFS to 100, change malloc
 	for fields to n+1.  

Modified: projects/ngroups/contrib/one-true-awk/b.c
==============================================================================
--- projects/ngroups/contrib/one-true-awk/b.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/b.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -24,6 +24,9 @@ THIS SOFTWARE.
 
 /* lasciate ogne speranza, voi ch'intrate. */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #define	DEBUG
 
 #include <ctype.h>
@@ -285,9 +288,21 @@ int quoted(char **pp)	/* pick up next th
 	return c;
 }
 
+static int collate_range_cmp(int a, int b)
+{
+	static char s[2][2];
+
+	if ((uschar)a == (uschar)b)
+		return 0;
+	s[0][0] = a;
+	s[1][0] = b;
+	return (strcoll(s[0], s[1]));
+}
+
 char *cclenter(const char *argp)	/* add a character class */
 {
 	int i, c, c2;
+	int j;
 	uschar *p = (uschar *) argp;
 	uschar *op, *bp;
 	static uschar *buf = 0;
@@ -306,15 +321,18 @@ char *cclenter(const char *argp)	/* add 
 				c2 = *p++;
 				if (c2 == '\\')
 					c2 = quoted((char **) &p);
-				if (c > c2) {	/* empty; ignore */
+				if (collate_range_cmp(c, c2) > 0) {
 					bp--;
 					i--;
 					continue;
 				}
-				while (c < c2) {
+				for (j = 0; j < NCHARS; j++) {
+					if ((collate_range_cmp(c, j) > 0) ||
+					    collate_range_cmp(j, c2) > 0)
+						continue;
 					if (!adjbuf((char **) &buf, &bufsz, bp-buf+2, 100, (char **) &bp, "cclenter1"))
 						FATAL("out of space for character class [%.10s...] 2", p);
-					*bp++ = ++c;
+					*bp++ = j;
 					i++;
 				}
 				continue;
@@ -731,6 +749,7 @@ Node *unary(Node *np)
  * to nelson beebe for the suggestion; let's see if it works everywhere.
  */
 
+/* #define HAS_ISBLANK */
 #ifndef HAS_ISBLANK
 
 int (isblank)(int c)
@@ -876,7 +895,7 @@ int cgoto(fa *f, int s, int c)
 					if (q[j] >= maxsetvec) {
 						maxsetvec *= 4;
 						setvec = (int *) realloc(setvec, maxsetvec * sizeof(int));
-						tmpset = (int *) realloc(setvec, maxsetvec * sizeof(int));
+						tmpset = (int *) realloc(tmpset, maxsetvec * sizeof(int));
 						if (setvec == 0 || tmpset == 0)
 							overflo("cgoto overflow");
 					}

Modified: projects/ngroups/contrib/one-true-awk/lib.c
==============================================================================
--- projects/ngroups/contrib/one-true-awk/lib.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/lib.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -274,6 +274,7 @@ void fldbld(void)	/* create fields from 
 	}
 	fr = fields;
 	i = 0;	/* number of fields accumulated here */
+	strcpy(inputFS, *FS);
 	if (strlen(inputFS) > 1) {	/* it's a regular expression */
 		i = refldbld(r, inputFS);
 	} else if ((sep = *inputFS) == ' ') {	/* default whitespace */

Modified: projects/ngroups/contrib/one-true-awk/main.c
==============================================================================
--- projects/ngroups/contrib/one-true-awk/main.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/main.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -22,7 +22,10 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 THIS SOFTWARE.
 ****************************************************************/
 
-const char	*version = "version 20070501";
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+const char	*version = "version 20091126 (FreeBSD)";
 
 #define DEBUG
 #include <stdio.h>
@@ -58,6 +61,7 @@ int main(int argc, char *argv[])
 	const char *fs = NULL;
 
 	setlocale(LC_CTYPE, "");
+	setlocale(LC_COLLATE, "");
 	setlocale(LC_NUMERIC, "C"); /* for parsing cmdline & prog */
 	cmdname = argv[0];
 	if (argc == 1) {
@@ -86,13 +90,18 @@ int main(int argc, char *argv[])
 				safe = 1;
 			break;
 		case 'f':	/* next argument is program filename */
-			argc--;
-			argv++;
-			if (argc <= 1)
-				FATAL("no program filename");
-			if (npfile >= MAX_PFILE - 1)
-				FATAL("too many -f options"); 
-			pfile[npfile++] = argv[1];
+			if (argv[1][2] != 0) {	/* arg is -fsomething */
+				if (npfile >= MAX_PFILE - 1)
+					FATAL("too many -f options"); 
+				pfile[npfile++] = &argv[1][2];
+			} else {		/* arg is -f something */
+				argc--; argv++;
+				if (argc <= 1)
+					FATAL("no program filename");
+				if (npfile >= MAX_PFILE - 1)
+					FATAL("too many -f options"); 
+				pfile[npfile++] = argv[1];
+			}
 			break;
 		case 'F':	/* set field separator */
 			if (argv[1][2] != 0) {	/* arg is -Fsomething */
@@ -111,8 +120,14 @@ int main(int argc, char *argv[])
 				WARNING("field separator FS is empty");
 			break;
 		case 'v':	/* -v a=1 to be done NOW.  one -v for each */
-			if (argv[1][2] == '\0' && --argc > 1 && isclvar((++argv)[1]))
-				setclvar(argv[1]);
+			if (argv[1][2] != 0) {	/* arg is -vsomething */
+				if (argv[1][2] != 0)
+					setclvar(&argv[1][2]);
+			} else {		/* arg is -v something */
+				argc--; argv++;
+				if (argc > 1 && isclvar(argv[1]))
+					setclvar(argv[1]);
+			}
 			break;
 		case 'd':
 			dbg = atoi(&argv[1][2]);

Modified: projects/ngroups/contrib/one-true-awk/makefile
==============================================================================
--- projects/ngroups/contrib/one-true-awk/makefile	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/makefile	Tue Jan 12 07:55:02 2010	(r202144)
@@ -31,7 +31,6 @@ CC = gcc -fprofile-arcs -ftest-coverage 
 CC = gcc -Wall -g
 CC = cc
 CC = gcc -O4
-CC = gcc -Wall -g
 
 
 YACC = bison -y

Modified: projects/ngroups/contrib/one-true-awk/maketab.c
==============================================================================
--- projects/ngroups/contrib/one-true-awk/maketab.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/maketab.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -102,7 +102,7 @@ struct xx
 	{ CALL, "call", "call" },
 	{ ARG, "arg", "arg" },
 	{ VARNF, "getnf", "NF" },
-	{ GETLINE, "getline", "getline" },
+	{ GETLINE, "awkgetline", "getline" },
 	{ 0, "", "" },
 };
 

Modified: projects/ngroups/contrib/one-true-awk/proctab.c
==============================================================================
--- projects/ngroups/contrib/one-true-awk/proctab.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/proctab.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -180,7 +180,7 @@ Cell *(*proctab[93])(Node **, int) = {
 	nullproc,	/* NUMBER */
 	nullproc,	/* STRING */
 	nullproc,	/* REGEXPR */
-	getline,	/* GETLINE */
+	awkgetline,	/* GETLINE */
 	substr,	/* SUBSTR */
 	split,	/* SPLIT */
 	jump,	/* RETURN */

Modified: projects/ngroups/contrib/one-true-awk/proto.h
==============================================================================
--- projects/ngroups/contrib/one-true-awk/proto.h	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/proto.h	Tue Jan 12 07:55:02 2010	(r202144)
@@ -149,7 +149,7 @@ extern	Cell	*call(Node **, int);
 extern	Cell	*copycell(Cell *);
 extern	Cell	*arg(Node **, int);
 extern	Cell	*jump(Node **, int);
-extern	Cell	*getline(Node **, int);
+extern	Cell	*awkgetline(Node **, int);
 extern	Cell	*getnf(Node **, int);
 extern	Cell	*array(Node **, int);
 extern	Cell	*awkdelete(Node **, int);

Modified: projects/ngroups/contrib/one-true-awk/run.c
==============================================================================
--- projects/ngroups/contrib/one-true-awk/run.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/one-true-awk/run.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -22,6 +22,9 @@ ARISING OUT OF OR IN CONNECTION WITH THE
 THIS SOFTWARE.
 ****************************************************************/
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #define DEBUG
 #include <stdio.h>
 #include <ctype.h>
@@ -388,7 +391,7 @@ Cell *jump(Node **a, int n)	/* break, co
 	return 0;	/* not reached */
 }
 
-Cell *getline(Node **a, int n)	/* get next line from specific input */
+Cell *awkgetline(Node **a, int n)	/* get next line from specific input */
 {		/* a[0] is variable, a[1] is operator, a[2] is filename */
 	Cell *r, *x;
 	extern Cell **fldtab;
@@ -653,7 +656,7 @@ Cell *relop(Node **a, int n)	/* a[0 < a[
 		j = x->fval - y->fval;
 		i = j<0? -1: (j>0? 1: 0);
 	} else {
-		i = strcmp(getsval(x), getsval(y));
+		i = strcoll(getsval(x), getsval(y));
 	}
 	tempfree(x);
 	tempfree(y);
@@ -1159,11 +1162,11 @@ Cell *cat(Node **a, int q)	/* a[0] cat a
 			x->sval, y->sval);
 	strcpy(s, x->sval);
 	strcpy(s+n1, y->sval);
+	tempfree(x);
 	tempfree(y);
 	z = gettemp();
 	z->sval = s;
 	z->tval = STR;
-	tempfree(x);
 	return(z);
 }
 

Modified: projects/ngroups/contrib/opie/libopie/getutmpentry.c
==============================================================================
--- projects/ngroups/contrib/opie/libopie/getutmpentry.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/opie/libopie/getutmpentry.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -15,13 +15,14 @@ you didn't get a copy, you may request o
 #include "opie_cfg.h"
 #include <stdio.h>
 #include <sys/types.h>
-#include <utmp.h>
 
 #if DOUTMPX
 #include <utmpx.h>
 #define setutent setutxent
 #define getutline(x) getutxline(x)
 #define utmp utmpx
+#else
+#include <utmp.h>
 #endif /* DOUTMPX */
 
 #if HAVE_STRING_H

Modified: projects/ngroups/contrib/opie/libopie/insecure.c
==============================================================================
--- projects/ngroups/contrib/opie/libopie/insecure.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/opie/libopie/insecure.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -39,11 +39,12 @@ $FreeBSD$
 #include <sys/param.h>
 #include <unistd.h>
 
-#include <utmp.h>
 #if DOUTMPX
 #include <utmpx.h>
 #define utmp utmpx
 #define endutent endutxent
+#else
+#include <utmp.h>
 #endif	/* DOUTMPX */
 
 #if HAVE_SYS_UTSNAME_H

Modified: projects/ngroups/contrib/opie/libopie/login.c
==============================================================================
--- projects/ngroups/contrib/opie/libopie/login.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/contrib/opie/libopie/login.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -21,13 +21,14 @@ you didn't get a copy, you may request o
 #include "opie_cfg.h"
 #include <stdio.h>
 #include <sys/types.h>
-#include <utmp.h>
 
 #if DOUTMPX
 #include <utmpx.h>
 #define pututline(x) pututxline(x)
 #define endutent endutxent
 #define utmp utmpx
+#else
+#include <utmp.h>
 #endif /* DOUTMPX */
 
 #if HAVE_STRING_H

Modified: projects/ngroups/etc/rc.firewall
==============================================================================
--- projects/ngroups/etc/rc.firewall	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/etc/rc.firewall	Tue Jan 12 07:55:02 2010	(r202144)
@@ -220,6 +220,8 @@ case ${firewall_type} in
 		# Allow any link-local multicast traffic
 		${fwcmd} add pass all from fe80::/10 to ff02::/16
 		${fwcmd} add pass all from ${net6} to ff02::/16
+		# Allow DHCPv6
+		${fwcmd} add pass udp from fe80::/10 to me6 546
 	fi
 
 	# Allow TCP through if setup succeeded

Modified: projects/ngroups/etc/termcap.small
==============================================================================
--- projects/ngroups/etc/termcap.small	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/etc/termcap.small	Tue Jan 12 07:55:02 2010	(r202144)
@@ -294,9 +294,9 @@ pc3|ibmpc3|IBM PC 386BSD Console:\
 # $XTermId: termcap,v 1.78 2009/11/09 00:24:26 tom Exp $
 #
 xterm-new|modern xterm:\
-	:*6=\EOF:@7=\EOF:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\
+	:@7=\EOF:@8=\EOM:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\
 	:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
-	:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kH=\EOF:kI=\E[2~:\
+	:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kI=\E[2~:\
 	:kN=\E[6~:kP=\E[5~:kd=\EOB:kh=\EOH:kl=\EOD:kr=\EOC:ku=\EOA:\
 	:tc=xterm-basic:
 #

Modified: projects/ngroups/games/fortune/datfiles/freebsd-tips
==============================================================================
--- projects/ngroups/games/fortune/datfiles/freebsd-tips	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/games/fortune/datfiles/freebsd-tips	Tue Jan 12 07:55:02 2010	(r202144)
@@ -50,18 +50,6 @@ If you are in the C shell and have just 
 be able to run it unless you first type "rehash".
 		-- Dru <genesis at istar.ca>
 %
-If you are running xterm, the default TERM variable will be 'xterm'.  If you
-set this environment variable to 'xterm-color' instead, a lot of programs will
-use colors.  You can do this by
-
-	TERM=xterm-color; export TERM
-
-in Bourne-derived shells, and
-
-	setenv TERM xterm-color
-
-in csh-derived shells.
-%
 If you do not want to get beeps in X11 (X Windows), you can turn them off with
 
 	xset b off

Modified: projects/ngroups/kerberos5/usr.bin/kdestroy/Makefile
==============================================================================
--- projects/ngroups/kerberos5/usr.bin/kdestroy/Makefile	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/kerberos5/usr.bin/kdestroy/Makefile	Tue Jan 12 07:55:02 2010	(r202144)
@@ -2,7 +2,7 @@
 
 PROG=	kdestroy
 CFLAGS+=-I${KRB5DIR}/lib/roken
-DPADD=	${LIBKAFS5} ${LIBKRB5} ${LIBHX509) ${LIBROKEN} ${LIBVERS} \
+DPADD=	${LIBKAFS5} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
 	${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR}
 LDADD=	-lkafs5 -lkrb5 -lhx509 -lroken ${LIBVERS} \
 	-lasn1 -lcrypto -lcrypt -lcom_err

Modified: projects/ngroups/kerberos5/usr.bin/kpasswd/Makefile
==============================================================================
--- projects/ngroups/kerberos5/usr.bin/kpasswd/Makefile	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/kerberos5/usr.bin/kpasswd/Makefile	Tue Jan 12 07:55:02 2010	(r202144)
@@ -2,7 +2,7 @@
 
 PROG=	kpasswd
 CFLAGS+=-I${KRB5DIR}/lib/roken
-DPADD=	${LIBKRB5} ${LIBHX509 ${LIBROKEN} ${LIBVERS} \
+DPADD=	${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
 	${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR}
 LDADD=	-lkrb5 -lhx509 -lroken ${LIBVERS} \
 	-lasn1 -lcrypto -lcrypt -lcom_err

Modified: projects/ngroups/lib/libc/Makefile
==============================================================================
--- projects/ngroups/lib/libc/Makefile	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/Makefile	Tue Jan 12 07:55:02 2010	(r202144)
@@ -64,7 +64,7 @@ NOASM=
 .include "${.CURDIR}/rpc/Makefile.inc"
 .include "${.CURDIR}/uuid/Makefile.inc"
 .include "${.CURDIR}/xdr/Makefile.inc"
-.if ${MACHINE_ARCH} == "arm"
+.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "mips"
 .include "${.CURDIR}/softfloat/Makefile.inc"
 .endif
 .if ${MK_NIS} != "no"

Modified: projects/ngroups/lib/libc/gen/sem_init.3
==============================================================================
--- projects/ngroups/lib/libc/gen/sem_init.3	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/gen/sem_init.3	Tue Jan 12 07:55:02 2010	(r202144)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 7, 2010
+.Dd January 9, 2010
 .Dt SEM_INIT 3
 .Os
 .Sh NAME
@@ -46,9 +46,19 @@ function initializes the unnamed semapho
 .Fa sem
 to have the value
 .Fa value .
+.Pp
 A non-zero value for
 .Fa pshared
-specifies a shared semaphore that can be used by multiple processes.
+specifies a shared semaphore that can be used by multiple processes,
+the semaphore should be located in shared memory region (see
+.Xr mmap 2 ,
+.Xr shm_open 2 ,
+and
+.Xr shmget 2 ) ,
+any process having read and write access to address
+.Fa sem
+can perform semaphore operations on
+.Fa sem .
 .Pp
 Following a successful call to
 .Fn sem_init ,

Modified: projects/ngroups/lib/libc/gen/sem_open.3
==============================================================================
--- projects/ngroups/lib/libc/gen/sem_open.3	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/gen/sem_open.3	Tue Jan 12 07:55:02 2010	(r202144)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 15, 2003
+.Dd January 9, 2010
 .Dt SEM_OPEN 3
 .Os
 .Sh NAME
@@ -58,6 +58,12 @@ The returned semaphore may be used in su
 and
 .Fn sem_close .
 .Pp
+This implementation places strict requirements on the value of
+.Fa name :
+it must begin with a slash
+.Pq Ql /
+and contain no other slash characters.
+.Pp
 The following bits may be set in the
 .Fa oflag
 argument:
@@ -217,11 +223,3 @@ functions conform to
 .Sh HISTORY
 Support for named semaphores first appeared in
 .Fx 5.0 .
-.Sh BUGS
-This implementation places strict requirements on the value of
-.Fa name :
-it must begin with a slash
-.Pq Ql / ,
-contain no other slash characters,
-and be less than 14 characters in length
-not including the terminating null character.

Modified: projects/ngroups/lib/libc/mips/Symbol.map
==============================================================================
--- projects/ngroups/lib/libc/mips/Symbol.map	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/mips/Symbol.map	Tue Jan 12 07:55:02 2010	(r202144)
@@ -56,9 +56,27 @@ FBSDprivate_1.0 {
 	__siglongjmp;
 	__sys_vfork;
 	_vfork;
-	end;		/* XXX - Should this be _end (see sys/brk.S)? */
-	curbrk;
+	_end;
+	__curbrk;
 	minbrk;
 	_brk;
 	_sbrk;
+
+	/* softfloat */
+	__addsf3;
+	__adddf3;
+	__subsf3;
+	__subdf3;
+	__mulsf3;
+	__muldf3;
+	__divsf3;
+	__divdf3;
+	__floatsisf;
+	__floatsidf;
+	__fixsfsi;
+	__fixdfsi;
+	__fixunssfsi;
+	__fixunsdfsi;
+	__extendsfdf2;
+	__truncdfsf2;
 };

Modified: projects/ngroups/lib/libc/mips/sys/brk.S
==============================================================================
--- projects/ngroups/lib/libc/mips/sys/brk.S	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/mips/sys/brk.S	Tue Jan 12 07:55:02 2010	(r202144)
@@ -42,15 +42,12 @@ __FBSDID("$FreeBSD$");
 #endif /* LIBC_SCCS and not lint */
 
 	.globl	_C_LABEL(minbrk)
-	.globl	_C_LABEL(curbrk)
+	.globl	_C_LABEL(__curbrk)
 	.globl	_C_LABEL(_end)
 
 	.data
 _C_LABEL(minbrk):
 	.word	_C_LABEL(_end)
-_C_LABEL(curbrk):
-	.word	_C_LABEL(_end)
-	.text
 
 LEAF(__sys_brk)
 	WEAK_ALIAS(brk, __sys_brk)
@@ -67,7 +64,7 @@ LEAF(__sys_brk)
 	li	v0, SYS_break
 	syscall
 	bne	a3, zero, 2f
-	sw	a0, _C_LABEL(curbrk)
+	sw	a0, _C_LABEL(__curbrk)
 	move	v0, zero
 	j	ra
 2:

Modified: projects/ngroups/lib/libc/stdio/fread.c
==============================================================================
--- projects/ngroups/lib/libc/stdio/fread.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/stdio/fread.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -37,6 +37,8 @@ static char sccsid[] = "@(#)fread.c	8.2 
 __FBSDID("$FreeBSD$");
 
 #include "namespace.h"
+#include <errno.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <string.h>
 #include "un-namespace.h"
@@ -69,8 +71,27 @@ __fread(void * __restrict buf, size_t si
 	/*
 	 * ANSI and SUSv2 require a return value of 0 if size or count are 0.
 	 */
-	if ((resid = count * size) == 0)
+	if ((count == 0) || (size == 0))
 		return (0);
+
+	/*
+	 * Check for integer overflow.  As an optimization, first check that
+	 * at least one of {count, size} is at least 2^16, since if both
+	 * values are less than that, their product can't possible overflow
+	 * (size_t is always at least 32 bits on FreeBSD).
+	 */
+	if (((count | size) > 0xFFFF) &&
+	    (count > SIZE_MAX / size)) {
+		errno = EINVAL;
+		fp->_flags |= __SERR;
+		return (0);
+	}
+
+	/*
+	 * Compute the (now required to not overflow) number of bytes to
+	 * read and actually do the work.
+	 */
+	resid = count * size;
 	ORIENT(fp, -1);
 	if (fp->_r < 0)
 		fp->_r = 0;

Modified: projects/ngroups/lib/libc/stdio/fwrite.c
==============================================================================
--- projects/ngroups/lib/libc/stdio/fwrite.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/stdio/fwrite.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -37,6 +37,8 @@ static char sccsid[] = "@(#)fwrite.c	8.1
 __FBSDID("$FreeBSD$");
 
 #include "namespace.h"
+#include <errno.h>
+#include <stdint.h>
 #include <stdio.h>
 #include "un-namespace.h"
 #include "local.h"
@@ -60,10 +62,24 @@ fwrite(buf, size, count, fp)
 	/*
 	 * ANSI and SUSv2 require a return value of 0 if size or count are 0.
 	 */
-	n = count * size;
-	if (n == 0)
+	if ((count == 0) || (size == 0))
 		return (0);
 
+	/*
+	 * Check for integer overflow.  As an optimization, first check that
+	 * at least one of {count, size} is at least 2^16, since if both
+	 * values are less than that, their product can't possible overflow
+	 * (size_t is always at least 32 bits on FreeBSD).
+	 */
+	if (((count | size) > 0xFFFF) &&
+	    (count > SIZE_MAX / size)) {
+		errno = EINVAL;
+		fp->_flags |= __SERR;
+		return (0);
+	}
+
+	n = count * size;
+
 	iov.iov_base = (void *)buf;
 	uio.uio_resid = iov.iov_len = n;
 	uio.uio_iov = &iov;

Modified: projects/ngroups/lib/libc/sys/cpuset.2
==============================================================================
--- projects/ngroups/lib/libc/sys/cpuset.2	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/sys/cpuset.2	Tue Jan 12 07:55:02 2010	(r202144)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 29, 2008
+.Dd January 8, 2010
 .Dt CPUSET 2
 .Os
 .Sh NAME
@@ -216,7 +216,9 @@ for allocation.
 .Xr cpuset 1 ,
 .Xr cpuset_getaffinity 2 ,
 .Xr cpuset_setaffinity 2 ,
-.Xr CPU_SET 3
+.Xr CPU_SET 3 ,
+.Xr pthread_affinity_np 3 ,
+.Xr pthread_attr_affinity_np 3
 .Sh HISTORY
 The
 .Nm

Modified: projects/ngroups/lib/libc/sys/cpuset_getaffinity.2
==============================================================================
--- projects/ngroups/lib/libc/sys/cpuset_getaffinity.2	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libc/sys/cpuset_getaffinity.2	Tue Jan 12 07:55:02 2010	(r202144)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 29, 2008
+.Dd January 8, 2010
 .Dt CPUSET 2
 .Os
 .Sh NAME
@@ -147,7 +147,9 @@ operation.
 .Xr cpuset 2 ,
 .Xr cpuset_getid 2 ,
 .Xr cpuset_setid 2 ,
-.Xr CPU_SET 3
+.Xr CPU_SET 3 ,
+.Xr pthread_affinity_np 3 ,
+.Xr pthread_attr_affinity_np 3
 .Sh HISTORY
 The
 .Nm

Modified: projects/ngroups/lib/libstand/dosfs.c
==============================================================================
--- projects/ngroups/lib/libstand/dosfs.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libstand/dosfs.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -47,6 +47,7 @@ static int	dos_close(struct open_file *f
 static int	dos_read(struct open_file *fd, void *buf, size_t size, size_t *resid);
 static off_t	dos_seek(struct open_file *fd, off_t offset, int whence);
 static int	dos_stat(struct open_file *fd, struct stat *sb);
+static int	dos_readdir(struct open_file *fd, struct dirent *d);
 
 struct fs_ops dosfs_fsops = {
 	"dosfs",
@@ -56,7 +57,7 @@ struct fs_ops dosfs_fsops = {
 	null_write,
 	dos_seek,
 	dos_stat,
-	null_readdir
+	dos_readdir
 };
 
 #define SECSIZ  512             /* sector size */
@@ -354,6 +355,72 @@ dos_stat(struct open_file *fd, struct st
     return (0);
 }
 
+static int
+dos_readdir(struct open_file *fd, struct dirent *d)
+{
+    DOS_FILE *f = (DOS_FILE *)fd->f_fsdata;
+    u_char fn[261];
+    DOS_DIR dd;
+    size_t res;
+    u_int chk, i, x, xdn;
+    int err;
+
+    x = chk = 0;
+    while (1) {
+	xdn = x;
+	x = 0;
+	err = dos_read(fd, &dd, sizeof(dd), &res);
+	if (err)
+	    return (err);
+	if (res == sizeof(dd))
+	    return (ENOENT);
+	if (dd.de.name[0] == 0)
+	    return (ENOENT);
+
+	/* Skip deleted entries */
+	if (dd.de.name[0] == 0xe5)
+	    continue;
+
+	/* Skip volume labels */
+	if (dd.de.attr & FA_LABEL)
+	    continue;
+
+	if ((dd.de.attr & FA_MASK) == FA_XDE) {
+	    if (dd.xde.seq & 0x40)
+		chk = dd.xde.chk;
+	    else if (dd.xde.seq != xdn - 1 || dd.xde.chk != chk)
+		continue;
+	    x = dd.xde.seq & ~0x40;
+	    if (x < 1 || x > 20) {
+		x = 0;
+		continue;
+	    }
+	    cp_xdnm(fn, &dd.xde);
+	} else {
+	    if (xdn == 1) {
+		x = 0;
+		for (i = 0; i < 11; i++) {
+		    x = ((x & 1) << 7) | (x >> 1);
+		    x += dd.de.name[i];
+		    x &= 0xff;
+		}
+		if (x == chk)
+		    break;
+	    } else {
+		cp_sfn(fn, &dd.de);
+		break;
+	    }
+	    x = 0;
+	}
+    }
+
+    d->d_fileno = dd.de.clus[1] << 8 + dd.de.clus[0];
+    d->d_reclen = sizeof(*d);
+    d->d_type = (dd.de.attr & FA_DIR) ? DT_DIR : DT_REG;
+    memcpy(d->d_name, fn, sizeof(d->d_name));
+    return(0);
+}
+
 /*
  * Parse DOS boot sector
  */

Modified: projects/ngroups/lib/libthr/arch/mips/include/pthread_md.h
==============================================================================
--- projects/ngroups/lib/libthr/arch/mips/include/pthread_md.h	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libthr/arch/mips/include/pthread_md.h	Tue Jan 12 07:55:02 2010	(r202144)
@@ -60,7 +60,8 @@ void		_tcb_dtor(struct tcb *);
 static __inline void
 _tcb_set(struct tcb *tcb)
 {
-	mips_tcb_set(tcb);
+
+	sysarch(MIPS_SET_TLS, tcb);
 }
 
 /*
@@ -69,7 +70,10 @@ _tcb_set(struct tcb *tcb)
 static __inline struct tcb *
 _tcb_get(void)
 {
-	return (mips_tcb_get());
+	void *tcb;
+
+	sysarch(MIPS_GET_TLS, &tcb);
+	return tcb;
 }
 
 extern struct pthread *_thr_initial;

Modified: projects/ngroups/lib/libusb/libusb20.c
==============================================================================
--- projects/ngroups/lib/libusb/libusb20.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/lib/libusb/libusb20.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -130,8 +130,19 @@ libusb20_tr_close(struct libusb20_transf
 	if (xfer->ppBuffer) {
 		free(xfer->ppBuffer);
 	}
-	/* clear some fields */
+	/* reset variable fields in case the transfer is opened again */
+	xfer->priv_sc0 = 0;
+	xfer->priv_sc1 = 0;
 	xfer->is_opened = 0;
+	xfer->is_pending = 0;
+	xfer->is_cancel = 0;
+	xfer->is_draining = 0;
+	xfer->is_restart = 0;
+	xfer->status = 0;
+	xfer->flags = 0;
+	xfer->nFrames = 0;
+	xfer->aFrames = 0;
+	xfer->timeout = 0;
 	xfer->maxFrames = 0;
 	xfer->maxTotalLength = 0;
 	xfer->maxPacketLen = 0;

Modified: projects/ngroups/sbin/fsck_ffs/pass2.c
==============================================================================
--- projects/ngroups/sbin/fsck_ffs/pass2.c	Tue Jan 12 07:49:34 2010	(r202143)
+++ projects/ngroups/sbin/fsck_ffs/pass2.c	Tue Jan 12 07:55:02 2010	(r202144)
@@ -36,12 +36,14 @@ static const char sccsid[] = "@(#)pass2.
 __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
+#include <sys/sysctl.h>
 
 #include <ufs/ufs/dinode.h>
 #include <ufs/ufs/dir.h>
 #include <ufs/ffs/fs.h>
 
 #include <err.h>
+#include <errno.h>
 #include <stdint.h>
 #include <string.h>
 
@@ -49,6 +51,8 @@ __FBSDID("$FreeBSD$");
 
 #define MINDIRSIZE	(sizeof (struct dirtemplate))
 
+static int fix_extraneous(struct inoinfo *, struct inodesc *);
+static int deleteentry(struct inodesc *);
 static int blksort(const void *, const void *);
 static int pass2check(struct inodesc *);
 
@@ -212,9 +216,48 @@ pass2(void)
 			inoinfo(inp->i_parent)->ino_linkcnt--;
 			continue;
 		}
-		fileerror(inp->i_parent, inp->i_number,
-		    "BAD INODE NUMBER FOR '..'");
-		if (reply("FIX") == 0)
+		/*
+		 * Here we have:
+		 *    inp->i_number is directory with bad ".." in it.
+		 *    inp->i_dotdot is current value of "..".
+		 *    inp->i_parent is directory to which ".." should point.
+		 */
+		getpathname(pathbuf, inp->i_parent, inp->i_number);
+		printf("BAD INODE NUMBER FOR '..' in DIR I=%d (%s)\n",
+		    inp->i_number, pathbuf);
+		getpathname(pathbuf, inp->i_dotdot, inp->i_dotdot);
+		printf("CURRENTLY POINTS TO I=%d (%s), ", inp->i_dotdot,
+		    pathbuf);
+		getpathname(pathbuf, inp->i_parent, inp->i_parent);
+		printf("SHOULD POINT TO I=%d (%s)", inp->i_parent, pathbuf);
+		if (cursnapshot != 0) {
+			/*
+			 * We need to:
+			 *    setcwd(inp->i_number);
+			 *    setdotdot(inp->i_dotdot, inp->i_parent);
+			 */
+			cmd.value = inp->i_number;
+			if (sysctlbyname("vfs.ffs.setcwd", 0, 0,
+			    &cmd, sizeof cmd) == -1) {
+				/* kernel lacks support for these functions */
+				printf(" (IGNORED)\n");
+				continue;
+			}
+			cmd.value = inp->i_dotdot; /* verify same value */
+			cmd.size = inp->i_parent;  /* new parent */
+			if (sysctlbyname("vfs.ffs.setdotdot", 0, 0,
+			    &cmd, sizeof cmd) == -1) {
+				printf(" (FIX FAILED: %s)\n", strerror(errno));
+				continue;
+			}
+			printf(" (FIXED)\n");
+			inoinfo(inp->i_parent)->ino_linkcnt--;
+			inp->i_dotdot = inp->i_parent;
+			continue;
+		}
+		if (preen)
+			printf(" (FIXED)\n");
+		else if (reply("FIX") == 0)
 			continue;
 		inoinfo(inp->i_dotdot)->ino_linkcnt++;
 		inoinfo(inp->i_parent)->ino_linkcnt--;
@@ -236,8 +279,6 @@ pass2check(struct inodesc *idesc)
 	union dinode *dp;
 	const char *errmsg;
 	struct direct proto;
-	char namebuf[MAXPATHLEN + 1];
-	char pathbuf[MAXPATHLEN + 1];
 
 	/*
 	 * check for "."
@@ -416,27 +457,12 @@ again:
 
 		case DFOUND:
 			inp = getinoinfo(dirp->d_ino);
-			if (inp->i_parent != 0 && idesc->id_entryno > 2) {
-				getpathname(pathbuf, idesc->id_number,
-				    idesc->id_number);
-				getpathname(namebuf, dirp->d_ino, dirp->d_ino);
-				pwarn("%s%s%s %s %s\n", pathbuf,
-				    (strcmp(pathbuf, "/") == 0 ? "" : "/"),
-				    dirp->d_name,
-				    "IS AN EXTRANEOUS HARD LINK TO DIRECTORY",
-				    namebuf);
-				if (cursnapshot != 0)
-					break;
-				if (preen) {
-					printf(" (REMOVED)\n");
-					n = 1;
-					break;
-				}
-				if ((n = reply("REMOVE")) == 1)
+			if (idesc->id_entryno > 2) {
+				if (inp->i_parent == 0)
+					inp->i_parent = idesc->id_number;
+				else if ((n = fix_extraneous(inp, idesc)) == 1)
 					break;
 			}
-			if (idesc->id_entryno > 2)
-				inp->i_parent = idesc->id_number;
 			/* FALLTHROUGH */
 
 		case FSTATE:
@@ -462,6 +488,143 @@ again:
 	return (ret|KEEPON|ALTERED);
 }
 
+static int
+fix_extraneous(struct inoinfo *inp, struct inodesc *idesc)
+{
+	char *cp;
+	struct inodesc dotdesc;
+	char oldname[MAXPATHLEN + 1];
+	char newname[MAXPATHLEN + 1];
+	
+	/*
+	 * If we have not yet found "..", look it up now so we know
+	 * which inode the directory itself believes is its parent.
+	 */
+	if (inp->i_dotdot == 0) {
+		memset(&dotdesc, 0, sizeof(struct inodesc));
+		dotdesc.id_type = DATA;
+		dotdesc.id_number = idesc->id_dirp->d_ino;
+		dotdesc.id_func = findino;
+		dotdesc.id_name = strdup("..");
+		if ((ckinode(ginode(dotdesc.id_number), &dotdesc) & FOUND))
+			inp->i_dotdot = dotdesc.id_parent;
+	}
+	/*
+	 * We have the previously found old name (inp->i_parent) and the
+	 * just found new name (idesc->id_number). We have five cases:
+	 * 1)  ".." is missing - can remove either name, choose to delete
+	 *     new one and let fsck create ".." pointing to old name.
+	 * 2) Both new and old are in same directory, choose to delete
+	 *    the new name and let fsck fix ".." if it is wrong.
+	 * 3) ".." does not point to the new name, so delete it and let
+	 *    fsck fix ".." to point to the old one if it is wrong.
+	 * 4) ".." points to the old name only, so delete the new one.
+	 * 5) ".." points to the new name only, so delete the old one.
+	 *
+	 * For cases 1-4 we eliminate the new name;
+	 * for case 5 we eliminate the old name.
+	 */
+	if (inp->i_dotdot == 0 ||		    /* Case 1 */
+	    idesc->id_number == inp->i_parent ||    /* Case 2 */
+	    inp->i_dotdot != idesc->id_number ||    /* Case 3 */
+	    inp->i_dotdot == inp->i_parent) {	    /* Case 4 */
+		getpathname(newname, idesc->id_number, idesc->id_number);
+		if (strcmp(newname, "/") != 0)
+			strcat (newname, "/");
+		strcat(newname, idesc->id_dirp->d_name);
+		getpathname(oldname, inp->i_number, inp->i_number);
+		pwarn("%s IS AN EXTRANEOUS HARD LINK TO DIRECTORY %s",
+		    newname, oldname);
+		if (cursnapshot != 0) {
+			/*
+			 * We need to
+			 *    setcwd(idesc->id_number);
+			 *    unlink(idesc->id_dirp->d_name);
+			 */
+			cmd.value = idesc->id_number;
+			if (sysctlbyname("vfs.ffs.setcwd", 0, 0,
+			    &cmd, sizeof cmd) == -1) {
+				printf(" (IGNORED)\n");

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


More information about the svn-src-projects mailing list