svn commit: r217138 - in projects/sv: . bin/kill bin/setfacl bin/sh
bin/sh/bltin contrib/gcc/config/i386 contrib/top etc etc/rc.d
gnu/lib/libgcc gnu/lib/libgomp gnu/usr.bin/binutils
gnu/usr.bin/bin...
Attilio Rao
attilio at FreeBSD.org
Sat Jan 8 01:15:33 UTC 2011
Author: attilio
Date: Sat Jan 8 01:15:32 2011
New Revision: 217138
URL: http://svn.freebsd.org/changeset/base/217138
Log:
MFC
Added:
projects/sv/lib/libthr/thread/thr_sleepq.c
- copied unchanged from r217136, head/lib/libthr/thread/thr_sleepq.c
projects/sv/share/man/man4/vte.4
- copied unchanged from r217136, head/share/man/man4/vte.4
projects/sv/share/man/man9/osd.9
- copied unchanged from r217136, head/share/man/man9/osd.9
projects/sv/sys/boot/powerpc/ps3/
- copied from r217136, head/sys/boot/powerpc/ps3/
projects/sv/sys/dev/mii/rdcphy.c
- copied unchanged from r217136, head/sys/dev/mii/rdcphy.c
projects/sv/sys/dev/mii/rdcphyreg.h
- copied unchanged from r217136, head/sys/dev/mii/rdcphyreg.h
projects/sv/sys/dev/vte/
- copied from r217136, head/sys/dev/vte/
projects/sv/sys/modules/vte/
- copied from r217136, head/sys/modules/vte/
projects/sv/sys/powerpc/ps3/
- copied from r217136, head/sys/powerpc/ps3/
projects/sv/tools/regression/bin/sh/builtins/exit1.0
- copied unchanged from r217136, head/tools/regression/bin/sh/builtins/exit1.0
projects/sv/tools/regression/bin/sh/builtins/trap4.0
- copied unchanged from r217136, head/tools/regression/bin/sh/builtins/trap4.0
projects/sv/tools/regression/bin/sh/errors/assignment-error2.0
- copied unchanged from r217136, head/tools/regression/bin/sh/errors/assignment-error2.0
projects/sv/tools/regression/bin/sh/errors/redirection-error7.0
- copied unchanged from r217136, head/tools/regression/bin/sh/errors/redirection-error7.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst10.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst10.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst4.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst4.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst5.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst5.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst6.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst6.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst7.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst7.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst8.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst8.0
projects/sv/tools/regression/bin/sh/expansion/cmdsubst9.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/cmdsubst9.0
projects/sv/tools/regression/bin/sh/expansion/plus-minus7.0
- copied unchanged from r217136, head/tools/regression/bin/sh/expansion/plus-minus7.0
projects/sv/tools/regression/usr.bin/sed/inplace_race.t
- copied unchanged from r217136, head/tools/regression/usr.bin/sed/inplace_race.t
Deleted:
projects/sv/sys/arm/conf/SKYEYE
projects/sv/sys/dev/cxgb/ulp/tom/cxgb_vm.c
projects/sv/sys/dev/cxgb/ulp/tom/cxgb_vm.h
projects/sv/sys/mips/conf/OCTEON1-32
Modified:
projects/sv/COPYRIGHT
projects/sv/Makefile
projects/sv/Makefile.inc1
projects/sv/Makefile.mips
projects/sv/UPDATING
projects/sv/bin/kill/kill.1
projects/sv/bin/kill/kill.c
projects/sv/bin/setfacl/setfacl.c
projects/sv/bin/sh/Makefile
projects/sv/bin/sh/alias.c
projects/sv/bin/sh/bltin/bltin.h
projects/sv/bin/sh/builtins.def
projects/sv/bin/sh/cd.c
projects/sv/bin/sh/error.c
projects/sv/bin/sh/error.h
projects/sv/bin/sh/eval.c
projects/sv/bin/sh/exec.c
projects/sv/bin/sh/expand.c
projects/sv/bin/sh/expand.h
projects/sv/bin/sh/histedit.c
projects/sv/bin/sh/jobs.c
projects/sv/bin/sh/memalloc.c
projects/sv/bin/sh/memalloc.h
projects/sv/bin/sh/parser.c
projects/sv/bin/sh/redir.c
projects/sv/bin/sh/sh.1
projects/sv/bin/sh/trap.c
projects/sv/bin/sh/var.c
projects/sv/bin/sh/var.h
projects/sv/contrib/gcc/config/i386/freebsd.h
projects/sv/etc/devd.conf
projects/sv/etc/portsnap.conf
projects/sv/etc/rc.d/devd
projects/sv/etc/rc.d/ldconfig
projects/sv/etc/rc.subr
projects/sv/gnu/lib/libgcc/Makefile
projects/sv/gnu/lib/libgomp/Makefile
projects/sv/gnu/usr.bin/binutils/Makefile.inc0
projects/sv/gnu/usr.bin/binutils/ld/Makefile.mips
projects/sv/gnu/usr.bin/binutils/libbfd/Makefile.mips
projects/sv/gnu/usr.bin/cc/Makefile.inc
projects/sv/gnu/usr.bin/cc/Makefile.tgt
projects/sv/gnu/usr.bin/gdb/Makefile.inc
projects/sv/gnu/usr.bin/gdb/libgdb/Makefile
projects/sv/include/pthread.h
projects/sv/lib/bind/config.mk
projects/sv/lib/csu/amd64/crti.S
projects/sv/lib/csu/amd64/crtn.S
projects/sv/lib/csu/i386-elf/crt1_s.S
projects/sv/lib/csu/i386-elf/crti.S
projects/sv/lib/csu/i386-elf/crtn.S
projects/sv/lib/libc/Makefile
projects/sv/lib/libc/amd64/gen/_setjmp.S
projects/sv/lib/libc/amd64/gen/fabs.S
projects/sv/lib/libc/amd64/gen/modf.S
projects/sv/lib/libc/amd64/gen/rfork_thread.S
projects/sv/lib/libc/amd64/gen/setjmp.S
projects/sv/lib/libc/amd64/gen/sigsetjmp.S
projects/sv/lib/libc/amd64/stdlib/div.S
projects/sv/lib/libc/amd64/stdlib/ldiv.S
projects/sv/lib/libc/amd64/stdlib/lldiv.S
projects/sv/lib/libc/amd64/string/bcmp.S
projects/sv/lib/libc/amd64/string/bcopy.S
projects/sv/lib/libc/amd64/string/bzero.S
projects/sv/lib/libc/amd64/string/memcmp.S
projects/sv/lib/libc/amd64/string/memmove.S
projects/sv/lib/libc/amd64/string/memset.S
projects/sv/lib/libc/amd64/string/strcat.S
projects/sv/lib/libc/amd64/string/strcmp.S
projects/sv/lib/libc/amd64/string/strcpy.S
projects/sv/lib/libc/amd64/sys/brk.S
projects/sv/lib/libc/amd64/sys/cerror.S
projects/sv/lib/libc/amd64/sys/exect.S
projects/sv/lib/libc/amd64/sys/getcontext.S
projects/sv/lib/libc/amd64/sys/pipe.S
projects/sv/lib/libc/amd64/sys/ptrace.S
projects/sv/lib/libc/amd64/sys/reboot.S
projects/sv/lib/libc/amd64/sys/sbrk.S
projects/sv/lib/libc/amd64/sys/setlogin.S
projects/sv/lib/libc/amd64/sys/sigreturn.S
projects/sv/lib/libc/amd64/sys/vfork.S
projects/sv/lib/libc/i386/gen/_ctx_start.S
projects/sv/lib/libc/i386/gen/_setjmp.S
projects/sv/lib/libc/i386/gen/fabs.S
projects/sv/lib/libc/i386/gen/modf.S
projects/sv/lib/libc/i386/gen/rfork_thread.S
projects/sv/lib/libc/i386/gen/setjmp.S
projects/sv/lib/libc/i386/gen/sigsetjmp.S
projects/sv/lib/libc/i386/stdlib/div.S
projects/sv/lib/libc/i386/stdlib/ldiv.S
projects/sv/lib/libc/i386/string/bcmp.S
projects/sv/lib/libc/i386/string/bcopy.S
projects/sv/lib/libc/i386/string/bzero.S
projects/sv/lib/libc/i386/string/ffs.S
projects/sv/lib/libc/i386/string/index.S
projects/sv/lib/libc/i386/string/memchr.S
projects/sv/lib/libc/i386/string/memcmp.S
projects/sv/lib/libc/i386/string/memcpy.S
projects/sv/lib/libc/i386/string/memmove.S
projects/sv/lib/libc/i386/string/memset.S
projects/sv/lib/libc/i386/string/rindex.S
projects/sv/lib/libc/i386/string/strcat.S
projects/sv/lib/libc/i386/string/strchr.S
projects/sv/lib/libc/i386/string/strcmp.S
projects/sv/lib/libc/i386/string/strcpy.S
projects/sv/lib/libc/i386/string/strncmp.S
projects/sv/lib/libc/i386/string/strrchr.S
projects/sv/lib/libc/i386/string/swab.S
projects/sv/lib/libc/i386/string/wcschr.S
projects/sv/lib/libc/i386/string/wcscmp.S
projects/sv/lib/libc/i386/string/wcslen.S
projects/sv/lib/libc/i386/string/wmemchr.S
projects/sv/lib/libc/i386/sys/Ovfork.S
projects/sv/lib/libc/i386/sys/brk.S
projects/sv/lib/libc/i386/sys/cerror.S
projects/sv/lib/libc/i386/sys/exect.S
projects/sv/lib/libc/i386/sys/getcontext.S
projects/sv/lib/libc/i386/sys/pipe.S
projects/sv/lib/libc/i386/sys/ptrace.S
projects/sv/lib/libc/i386/sys/reboot.S
projects/sv/lib/libc/i386/sys/sbrk.S
projects/sv/lib/libc/i386/sys/setlogin.S
projects/sv/lib/libc/i386/sys/sigreturn.S
projects/sv/lib/libc/i386/sys/syscall.S
projects/sv/lib/libc/locale/mbrtowc.3
projects/sv/lib/libc/rpc/publickey.3
projects/sv/lib/libc/sys/Makefile.inc
projects/sv/lib/libcompiler_rt/Makefile
projects/sv/lib/libkvm/kvm_getloadavg.3
projects/sv/lib/libstand/Makefile
projects/sv/lib/libthr/arch/amd64/amd64/_umtx_op_err.S
projects/sv/lib/libthr/arch/i386/i386/_umtx_op_err.S
projects/sv/lib/libthr/thread/Makefile.inc
projects/sv/lib/libthr/thread/thr_cond.c
projects/sv/lib/libthr/thread/thr_init.c
projects/sv/lib/libthr/thread/thr_kern.c
projects/sv/lib/libthr/thread/thr_list.c
projects/sv/lib/libthr/thread/thr_mutex.c
projects/sv/lib/libthr/thread/thr_private.h
projects/sv/lib/libthr/thread/thr_umtx.c
projects/sv/lib/libthr/thread/thr_umtx.h
projects/sv/lib/libugidfw/ugidfw.c
projects/sv/lib/msun/amd64/e_remainder.S
projects/sv/lib/msun/amd64/e_remainderf.S
projects/sv/lib/msun/amd64/e_remainderl.S
projects/sv/lib/msun/amd64/e_sqrt.S
projects/sv/lib/msun/amd64/e_sqrtf.S
projects/sv/lib/msun/amd64/e_sqrtl.S
projects/sv/lib/msun/amd64/s_llrint.S
projects/sv/lib/msun/amd64/s_llrintf.S
projects/sv/lib/msun/amd64/s_llrintl.S
projects/sv/lib/msun/amd64/s_logbl.S
projects/sv/lib/msun/amd64/s_lrint.S
projects/sv/lib/msun/amd64/s_lrintf.S
projects/sv/lib/msun/amd64/s_lrintl.S
projects/sv/lib/msun/amd64/s_remquo.S
projects/sv/lib/msun/amd64/s_remquof.S
projects/sv/lib/msun/amd64/s_remquol.S
projects/sv/lib/msun/amd64/s_rintl.S
projects/sv/lib/msun/amd64/s_scalbn.S
projects/sv/lib/msun/amd64/s_scalbnf.S
projects/sv/lib/msun/amd64/s_scalbnl.S
projects/sv/lib/msun/i387/e_exp.S
projects/sv/lib/msun/i387/e_fmod.S
projects/sv/lib/msun/i387/e_log.S
projects/sv/lib/msun/i387/e_log10.S
projects/sv/lib/msun/i387/e_log10f.S
projects/sv/lib/msun/i387/e_logf.S
projects/sv/lib/msun/i387/e_remainder.S
projects/sv/lib/msun/i387/e_remainderf.S
projects/sv/lib/msun/i387/e_remainderl.S
projects/sv/lib/msun/i387/e_sqrt.S
projects/sv/lib/msun/i387/e_sqrtf.S
projects/sv/lib/msun/i387/e_sqrtl.S
projects/sv/lib/msun/i387/s_ceil.S
projects/sv/lib/msun/i387/s_ceilf.S
projects/sv/lib/msun/i387/s_ceill.S
projects/sv/lib/msun/i387/s_copysign.S
projects/sv/lib/msun/i387/s_copysignf.S
projects/sv/lib/msun/i387/s_copysignl.S
projects/sv/lib/msun/i387/s_cos.S
projects/sv/lib/msun/i387/s_finite.S
projects/sv/lib/msun/i387/s_floor.S
projects/sv/lib/msun/i387/s_floorf.S
projects/sv/lib/msun/i387/s_floorl.S
projects/sv/lib/msun/i387/s_llrint.S
projects/sv/lib/msun/i387/s_llrintf.S
projects/sv/lib/msun/i387/s_llrintl.S
projects/sv/lib/msun/i387/s_logb.S
projects/sv/lib/msun/i387/s_logbf.S
projects/sv/lib/msun/i387/s_logbl.S
projects/sv/lib/msun/i387/s_lrint.S
projects/sv/lib/msun/i387/s_lrintf.S
projects/sv/lib/msun/i387/s_lrintl.S
projects/sv/lib/msun/i387/s_remquo.S
projects/sv/lib/msun/i387/s_remquof.S
projects/sv/lib/msun/i387/s_remquol.S
projects/sv/lib/msun/i387/s_rint.S
projects/sv/lib/msun/i387/s_rintf.S
projects/sv/lib/msun/i387/s_rintl.S
projects/sv/lib/msun/i387/s_scalbn.S
projects/sv/lib/msun/i387/s_scalbnf.S
projects/sv/lib/msun/i387/s_scalbnl.S
projects/sv/lib/msun/i387/s_significand.S
projects/sv/lib/msun/i387/s_significandf.S
projects/sv/lib/msun/i387/s_sin.S
projects/sv/lib/msun/i387/s_tan.S
projects/sv/lib/msun/i387/s_trunc.S
projects/sv/lib/msun/i387/s_truncf.S
projects/sv/lib/msun/i387/s_truncl.S
projects/sv/libexec/ftpd/ftpd.c
projects/sv/libexec/rtld-elf/Makefile
projects/sv/libexec/rtld-elf/amd64/Makefile.inc
projects/sv/libexec/rtld-elf/amd64/reloc.c
projects/sv/libexec/rtld-elf/amd64/rtld_start.S
projects/sv/libexec/rtld-elf/arm/reloc.c
projects/sv/libexec/rtld-elf/i386/Makefile.inc
projects/sv/libexec/rtld-elf/i386/reloc.c
projects/sv/libexec/rtld-elf/i386/rtld_start.S
projects/sv/libexec/rtld-elf/ia64/reloc.c
projects/sv/libexec/rtld-elf/mips/reloc.c
projects/sv/libexec/rtld-elf/powerpc/reloc.c
projects/sv/libexec/rtld-elf/powerpc64/reloc.c
projects/sv/libexec/rtld-elf/powerpc64/rtld_start.S
projects/sv/libexec/rtld-elf/rtld.1
projects/sv/libexec/rtld-elf/rtld.c
projects/sv/libexec/rtld-elf/rtld.h
projects/sv/libexec/rtld-elf/rtld_lock.c
projects/sv/libexec/rtld-elf/rtld_lock.h
projects/sv/libexec/rtld-elf/sparc64/reloc.c
projects/sv/sbin/camcontrol/camcontrol.8
projects/sv/sbin/dumpfs/dumpfs.c
projects/sv/sbin/hastd/parse.y
projects/sv/sbin/ifconfig/ifmedia.c
projects/sv/sbin/mount_nfs/mount_nfs.c
projects/sv/sbin/newfs/mkfs.c
projects/sv/sbin/newfs/newfs.8
projects/sv/sbin/newfs/newfs.c
projects/sv/sbin/newfs/newfs.h
projects/sv/sbin/shutdown/Makefile
projects/sv/sbin/shutdown/shutdown.8
projects/sv/sbin/shutdown/shutdown.c
projects/sv/sbin/tunefs/tunefs.8
projects/sv/sbin/tunefs/tunefs.c
projects/sv/share/examples/etc/make.conf
projects/sv/share/man/man1/builtin.1
projects/sv/share/man/man4/Makefile
projects/sv/share/man/man4/altq.4
projects/sv/share/man/man4/miibus.4
projects/sv/share/man/man4/tcp.4
projects/sv/share/man/man4/vlan.4
projects/sv/share/man/man4/wi.4
projects/sv/share/man/man5/core.5
projects/sv/share/man/man9/BUS_SETUP_INTR.9
projects/sv/share/man/man9/Makefile
projects/sv/share/man/man9/ithread.9
projects/sv/share/man/man9/mutex.9
projects/sv/share/man/man9/style.9
projects/sv/share/man/man9/swi.9
projects/sv/share/misc/committers-doc.dot
projects/sv/share/misc/committers-src.dot
projects/sv/share/mk/bsd.cpu.mk
projects/sv/share/mk/bsd.endian.mk
projects/sv/share/mk/bsd.lib.mk
projects/sv/share/mk/bsd.own.mk
projects/sv/share/mk/sys.mk
projects/sv/sys/amd64/amd64/cpu_switch.S
projects/sv/sys/amd64/amd64/exception.S
projects/sv/sys/amd64/amd64/fpu.c
projects/sv/sys/amd64/amd64/genassym.c
projects/sv/sys/amd64/amd64/machdep.c
projects/sv/sys/amd64/amd64/sys_machdep.c
projects/sv/sys/amd64/amd64/vm_machdep.c
projects/sv/sys/amd64/ia32/ia32_reg.c
projects/sv/sys/amd64/ia32/ia32_signal.c
projects/sv/sys/amd64/include/elf.h
projects/sv/sys/amd64/include/pcb.h
projects/sv/sys/amd64/linux32/linux32_machdep.c
projects/sv/sys/amd64/linux32/linux32_sysvec.c
projects/sv/sys/arm/at91/at91_st.c
projects/sv/sys/arm/at91/at91rm9200.c
projects/sv/sys/arm/at91/if_macb.c
projects/sv/sys/arm/at91/uart_bus_at91usart.c
projects/sv/sys/arm/at91/uart_cpu_at91rm9200usart.c
projects/sv/sys/arm/at91/uart_dev_at91usart.c
projects/sv/sys/arm/include/_limits.h
projects/sv/sys/arm/include/elf.h
projects/sv/sys/arm/include/pmap.h
projects/sv/sys/arm/mv/gpio.c
projects/sv/sys/arm/s3c2xx0/s3c24x0_clk.c
projects/sv/sys/arm/xscale/ixp425/avila_gpio.c
projects/sv/sys/boot/efi/libefi/efinet.c
projects/sv/sys/boot/efi/libefi/efipart.c
projects/sv/sys/boot/ficl/Makefile
projects/sv/sys/boot/forth/loader.conf
projects/sv/sys/boot/i386/Makefile.inc
projects/sv/sys/boot/i386/boot2/Makefile
projects/sv/sys/boot/i386/gptboot/Makefile
projects/sv/sys/boot/i386/gptzfsboot/Makefile
projects/sv/sys/boot/i386/zfsboot/Makefile
projects/sv/sys/boot/pc98/Makefile.inc
projects/sv/sys/boot/pc98/boot2/Makefile
projects/sv/sys/boot/powerpc/Makefile
projects/sv/sys/boot/zfs/Makefile
projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
projects/sv/sys/compat/linux/linux_ioctl.c
projects/sv/sys/compat/linux/linux_ioctl.h
projects/sv/sys/conf/NOTES
projects/sv/sys/conf/files
projects/sv/sys/conf/files.powerpc
projects/sv/sys/conf/kern.mk
projects/sv/sys/conf/kern.pre.mk
projects/sv/sys/conf/makeLINT.mk
projects/sv/sys/conf/options.i386
projects/sv/sys/conf/options.powerpc
projects/sv/sys/dev/acpica/acpi.c
projects/sv/sys/dev/acpica/acpi_ec.c
projects/sv/sys/dev/acpica/acpivar.h
projects/sv/sys/dev/adlink/adlink.c
projects/sv/sys/dev/ae/if_ae.c
projects/sv/sys/dev/ae/if_aevar.h
projects/sv/sys/dev/age/if_age.c
projects/sv/sys/dev/age/if_agevar.h
projects/sv/sys/dev/alc/if_alc.c
projects/sv/sys/dev/alc/if_alcvar.h
projects/sv/sys/dev/ale/if_ale.c
projects/sv/sys/dev/ale/if_alevar.h
projects/sv/sys/dev/bge/if_bge.c
projects/sv/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c
projects/sv/sys/dev/cxgb/ulp/tom/cxgb_ddp.c
projects/sv/sys/dev/drm/via_dmablit.c
projects/sv/sys/dev/if_ndis/if_ndis.c
projects/sv/sys/dev/ispfw/asm_2322.h
projects/sv/sys/dev/ispfw/asm_2400.h
projects/sv/sys/dev/ispfw/asm_2500.h
projects/sv/sys/dev/ixgbe/ixgbe.c
projects/sv/sys/dev/ixgbe/ixgbe.h
projects/sv/sys/dev/md/md.c
projects/sv/sys/dev/mii/miidevs
projects/sv/sys/dev/mii/nsgphy.c
projects/sv/sys/dev/mmc/mmc.c
projects/sv/sys/dev/mpt/mpt_cam.c
projects/sv/sys/dev/mpt/mpt_pci.c
projects/sv/sys/dev/msk/if_msk.c
projects/sv/sys/dev/mwl/mwlhal.c
projects/sv/sys/dev/mxge/if_mxge.c
projects/sv/sys/dev/nfe/if_nfe.c
projects/sv/sys/dev/nfe/if_nfevar.h
projects/sv/sys/dev/pty/pty.c
projects/sv/sys/dev/random/randomdev.c
projects/sv/sys/dev/sound/pci/hda/hdac.c
projects/sv/sys/dev/usb/controller/ehci_mv.c
projects/sv/sys/dev/usb/serial/uplcom.c
projects/sv/sys/dev/usb/usbdevs
projects/sv/sys/dev/wpi/if_wpi.c
projects/sv/sys/dev/xen/balloon/balloon.c
projects/sv/sys/dev/xen/blkfront/blkfront.c
projects/sv/sys/dev/xen/console/console.c
projects/sv/sys/dev/xen/netfront/netfront.c
projects/sv/sys/dev/xen/xenpci/evtchn.c
projects/sv/sys/fs/nfs/nfs.h
projects/sv/sys/fs/nfs/nfs_commonsubs.c
projects/sv/sys/fs/nfs/nfs_var.h
projects/sv/sys/fs/nfs/nfsdport.h
projects/sv/sys/fs/nfs/nfsport.h
projects/sv/sys/fs/nfsclient/nfs_clvfsops.c
projects/sv/sys/fs/nfsclient/nfsmount.h
projects/sv/sys/fs/nfsserver/nfs_nfsdport.c
projects/sv/sys/fs/nfsserver/nfs_nfsdserv.c
projects/sv/sys/fs/nfsserver/nfs_nfsdsocket.c
projects/sv/sys/fs/nfsserver/nfs_nfsdstate.c
projects/sv/sys/geom/geom_ctl.c
projects/sv/sys/geom/geom_disk.c
projects/sv/sys/geom/part/g_part.c
projects/sv/sys/geom/part/g_part_ebr.c
projects/sv/sys/geom/part/g_part_gpt.c
projects/sv/sys/i386/conf/GENERIC
projects/sv/sys/i386/conf/XBOX
projects/sv/sys/i386/conf/XEN
projects/sv/sys/i386/i386/sys_machdep.c
projects/sv/sys/i386/include/_limits.h
projects/sv/sys/i386/include/elf.h
projects/sv/sys/i386/include/pcpu.h
projects/sv/sys/i386/include/pmap.h
projects/sv/sys/i386/include/segments.h
projects/sv/sys/i386/include/xen/hypercall.h
projects/sv/sys/i386/include/xen/xen-os.h
projects/sv/sys/i386/include/xen/xenpmap.h
projects/sv/sys/i386/include/xen/xenvar.h
projects/sv/sys/i386/xen/clock.c
projects/sv/sys/i386/xen/mp_machdep.c
projects/sv/sys/i386/xen/pmap.c
projects/sv/sys/i386/xen/xen_machdep.c
projects/sv/sys/ia64/include/elf.h
projects/sv/sys/kern/init_main.c
projects/sv/sys/kern/kern_descrip.c
projects/sv/sys/kern/kern_fork.c
projects/sv/sys/kern/kern_jail.c
projects/sv/sys/kern/kern_kthread.c
projects/sv/sys/kern/kern_linker.c
projects/sv/sys/kern/kern_resource.c
projects/sv/sys/kern/kern_synch.c
projects/sv/sys/kern/kern_timeout.c
projects/sv/sys/kern/kern_umtx.c
projects/sv/sys/kern/sched_4bsd.c
projects/sv/sys/kern/sched_ule.c
projects/sv/sys/kern/subr_autoconf.c
projects/sv/sys/kern/subr_bus.c
projects/sv/sys/kern/subr_devstat.c
projects/sv/sys/kern/subr_log.c
projects/sv/sys/kern/sys_pipe.c
projects/sv/sys/kern/tty.c
projects/sv/sys/kern/tty_tty.c
projects/sv/sys/kern/uipc_cow.c
projects/sv/sys/kern/vfs_bio.c
projects/sv/sys/kern/vfs_subr.c
projects/sv/sys/mips/cavium/octeon_machdep.c
projects/sv/sys/mips/cavium/octeon_mp.c
projects/sv/sys/mips/conf/SENTRY5
projects/sv/sys/mips/include/_limits.h
projects/sv/sys/mips/include/cpufunc.h
projects/sv/sys/mips/include/elf.h
projects/sv/sys/mips/mips/machdep.c
projects/sv/sys/mips/mips/mp_machdep.c
projects/sv/sys/mips/rmi/dev/nlge/if_nlge.c
projects/sv/sys/mips/rmi/dev/xlr/rge.c
projects/sv/sys/mips/rmi/fmn.c
projects/sv/sys/modules/Makefile
projects/sv/sys/modules/aha/Makefile
projects/sv/sys/modules/ahb/Makefile
projects/sv/sys/modules/mii/Makefile
projects/sv/sys/net/bpf_zerocopy.c
projects/sv/sys/net/flowtable.c
projects/sv/sys/net/if_llatbl.h
projects/sv/sys/net/if_media.h
projects/sv/sys/netinet/if_ether.c
projects/sv/sys/netinet/in_pcb.c
projects/sv/sys/netinet/ip_output.c
projects/sv/sys/netinet/ipfw/ip_dummynet.c
projects/sv/sys/netinet/sctp_asconf.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_pcb.c
projects/sv/sys/netinet/sctp_sysctl.h
projects/sv/sys/netinet/sctp_timer.c
projects/sv/sys/netinet/sctp_uio.h
projects/sv/sys/netinet/sctp_usrreq.c
projects/sv/sys/netinet/sctputil.c
projects/sv/sys/netinet/tcp_input.c
projects/sv/sys/netinet/tcp_lro.c
projects/sv/sys/netinet/tcp_lro.h
projects/sv/sys/netinet/tcp_output.c
projects/sv/sys/netinet/tcp_reass.c
projects/sv/sys/netinet/tcp_sack.c
projects/sv/sys/netinet/tcp_subr.c
projects/sv/sys/netinet/tcp_syncache.h
projects/sv/sys/netinet/tcp_timer.c
projects/sv/sys/netinet/tcp_usrreq.c
projects/sv/sys/netinet/tcp_var.h
projects/sv/sys/netinet/udp.h
projects/sv/sys/netinet/udp_var.h
projects/sv/sys/netinet6/in6_ifattach.c
projects/sv/sys/netinet6/sctp6_usrreq.c
projects/sv/sys/nfs/nfs_lock.c
projects/sv/sys/nfs/nfs_mountcommon.h
projects/sv/sys/nfsclient/nfs_vfsops.c
projects/sv/sys/nfsclient/nfsmount.h
projects/sv/sys/nfsserver/nfs.h
projects/sv/sys/nfsserver/nfs_serv.c
projects/sv/sys/nfsserver/nfs_srvsubs.c
projects/sv/sys/nlm/nlm_advlock.c
projects/sv/sys/nlm/nlm_prot_impl.c
projects/sv/sys/pc98/pc98/machdep.c
projects/sv/sys/powerpc/aim/nexus.c
projects/sv/sys/powerpc/aim/vm_machdep.c
projects/sv/sys/powerpc/conf/GENERIC64
projects/sv/sys/powerpc/conf/NOTES
projects/sv/sys/powerpc/cpufreq/dfs.c
projects/sv/sys/powerpc/cpufreq/pcr.c
projects/sv/sys/powerpc/include/_limits.h
projects/sv/sys/powerpc/include/elf.h
projects/sv/sys/powerpc/include/pte.h
projects/sv/sys/powerpc/ofw/ofw_real.c
projects/sv/sys/powerpc/powermac/macgpio.c
projects/sv/sys/powerpc/powermac/uninorth.c
projects/sv/sys/powerpc/powerpc/intr_machdep.c
projects/sv/sys/sparc64/include/asmacros.h
projects/sv/sys/sparc64/include/cpufunc.h
projects/sv/sys/sparc64/include/elf.h
projects/sv/sys/sparc64/include/intr_machdep.h
projects/sv/sys/sparc64/include/pmap.h
projects/sv/sys/sparc64/include/tsb.h
projects/sv/sys/sparc64/include/vmparam.h
projects/sv/sys/sparc64/pci/apb.c
projects/sv/sys/sparc64/pci/fire.c
projects/sv/sys/sparc64/pci/ofw_pcib.c
projects/sv/sys/sparc64/pci/psycho.c
projects/sv/sys/sparc64/pci/schizo.c
projects/sv/sys/sparc64/sbus/sbus.c
projects/sv/sys/sparc64/sparc64/exception.S
projects/sv/sys/sparc64/sparc64/genassym.c
projects/sv/sys/sparc64/sparc64/intr_machdep.c
projects/sv/sys/sparc64/sparc64/mp_machdep.c
projects/sv/sys/sparc64/sparc64/pmap.c
projects/sv/sys/sparc64/sparc64/support.S
projects/sv/sys/sparc64/sparc64/tick.c
projects/sv/sys/sparc64/sparc64/tlb.c
projects/sv/sys/sparc64/sparc64/tsb.c
projects/sv/sys/sun4v/include/elf.h
projects/sv/sys/sys/_umtx.h
projects/sv/sys/sys/bus.h
projects/sv/sys/sys/copyright.h
projects/sv/sys/sys/mount.h
projects/sv/sys/sys/param.h
projects/sv/sys/sys/priority.h
projects/sv/sys/sys/sched.h
projects/sv/sys/sys/umtx.h
projects/sv/sys/ufs/ffs/ffs_alloc.c
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/ufs/ufs/ufs_inode.c
projects/sv/sys/ufs/ufs/ufs_vnops.c
projects/sv/sys/ufs/ufs/ufsmount.h
projects/sv/sys/vm/swap_pager.c
projects/sv/sys/vm/vm_contig.c
projects/sv/sys/vm/vm_extern.h
projects/sv/sys/vm/vm_fault.c
projects/sv/sys/vm/vm_object.c
projects/sv/sys/vm/vm_object.h
projects/sv/sys/vm/vm_page.c
projects/sv/sys/vm/vm_pageout.c
projects/sv/sys/x86/x86/io_apic.c
projects/sv/sys/xen/evtchn/evtchn.c
projects/sv/tools/regression/acct/Makefile
projects/sv/tools/regression/acct/pack.c
projects/sv/tools/regression/acct/regress.t
projects/sv/tools/regression/bin/sh/expansion/plus-minus1.0
projects/sv/tools/regression/usr.bin/sed/Makefile
projects/sv/tools/tools/nanobsd/gateworks/common
projects/sv/tools/tools/nanobsd/nanobsd.sh
projects/sv/usr.bin/ar/ar.1
projects/sv/usr.bin/c89/c89.1
projects/sv/usr.bin/c99/c99.1
projects/sv/usr.bin/calendar/calendar.1
projects/sv/usr.bin/calendar/calendar.h
projects/sv/usr.bin/calendar/calendars/calendar.freebsd
projects/sv/usr.bin/calendar/parsedata.c
projects/sv/usr.bin/gcore/gcore.1
projects/sv/usr.bin/lock/lock.c
projects/sv/usr.bin/mail/mail.1
projects/sv/usr.bin/printf/printf.c
projects/sv/usr.bin/sed/main.c
projects/sv/usr.bin/tar/bsdtar.1
projects/sv/usr.bin/xlint/Makefile.inc
projects/sv/usr.sbin/Makefile.mips
projects/sv/usr.sbin/ancontrol/ancontrol.8
projects/sv/usr.sbin/cpucontrol/cpucontrol.c
projects/sv/usr.sbin/fwcontrol/fwdv.c
projects/sv/usr.sbin/fwcontrol/fwmpegts.c
projects/sv/usr.sbin/newsyslog/newsyslog.c
projects/sv/usr.sbin/pkg_install/add/main.c
projects/sv/usr.sbin/rtadvd/Makefile
projects/sv/usr.sbin/rtadvd/rtadvd.8
projects/sv/usr.sbin/rtadvd/rtadvd.c
projects/sv/usr.sbin/rtprio/rtprio.c
projects/sv/usr.sbin/sysinstall/devices.c
projects/sv/usr.sbin/sysinstall/menus.c
Directory Properties:
projects/sv/ (props changed)
projects/sv/cddl/contrib/opensolaris/ (props changed)
projects/sv/contrib/bind9/ (props changed)
projects/sv/contrib/binutils/ (props changed)
projects/sv/contrib/bzip2/ (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/contrib/xz/ (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/octeon-sdk/ (props changed)
projects/sv/sys/contrib/pf/ (props changed)
projects/sv/sys/contrib/x86emu/ (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/COPYRIGHT
==============================================================================
--- projects/sv/COPYRIGHT Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/COPYRIGHT Sat Jan 8 01:15:32 2011 (r217138)
@@ -4,7 +4,7 @@
The compilation of software known as FreeBSD is distributed under the
following terms:
-Copyright (c) 1992-2010 The FreeBSD Project. All rights reserved.
+Copyright (c) 1992-2011 The FreeBSD Project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
Modified: projects/sv/Makefile
==============================================================================
--- projects/sv/Makefile Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/Makefile Sat Jan 8 01:15:32 2011 (r217138)
@@ -26,6 +26,7 @@
# delete-old-dirs - Delete obsolete directories.
# delete-old-files - Delete obsolete files.
# delete-old-libs - Delete obsolete libraries.
+# targets - Print a list of supported TARGET/TARGET_ARCH pairs.
#
# This makefile is simple by design. The FreeBSD make automatically reads
# the /usr/share/mk/sys.mk unless the -m argument is specified on the
@@ -280,10 +281,10 @@ tinderbox:
# with a reasonable chance of success, regardless of how old your
# existing system is.
#
-.if make(universe) || make(universe_kernels) || make(tinderbox)
+.if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets)
TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v
TARGET_ARCHES_arm?= arm armeb
-TARGET_ARCHES_mips?= mipsel mipseb
+TARGET_ARCHES_mips?= mipsel mipseb mips64el mips64eb
TARGET_ARCHES_powerpc?= powerpc powerpc64
TARGET_ARCHES_pc98?= i386
TARGET_ARCHES_sun4v?= sparc64
@@ -291,6 +292,14 @@ TARGET_ARCHES_sun4v?= sparc64
TARGET_ARCHES_${target}?= ${target}
.endfor
+targets:
+ @echo "Supported TARGET/TARGET_ARCH pairs"
+.for target in ${TARGETS}
+.for target_arch in ${TARGET_ARCHES_${target}}
+ @echo " ${target}/${target_arch}"
+.endfor
+.endfor
+
.if defined(DOING_TINDERBOX)
FAILFILE=tinderbox.failed
MAKEFAIL=tee -a ${FAILFILE}
@@ -350,8 +359,11 @@ KERNCONFS!= cd ${.CURDIR}/sys/${TARGET}/
universe_kernconfs:
.for kernel in ${KERNCONFS}
TARGET_ARCH_${kernel}!= cd ${.CURDIR}/sys/${TARGET}/conf && \
- config -m ${.CURDIR}/sys/${TARGET}/conf/${kernel} | \
- cut -f 2
+ config -m ${.CURDIR}/sys/${TARGET}/conf/${kernel} 2> /dev/null | \
+ grep -v WARNING: | cut -f 2
+.if empty(TARGET_ARCH_${kernel})
+.error "Target architecture for ${TARGET}/conf/${kernel} unknown. config(8) likely too old."
+.endif
universe_kernconfs: universe_kernconf_${TARGET}_${kernel}
universe_kernconf_${TARGET}_${kernel}:
@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
Modified: projects/sv/Makefile.inc1
==============================================================================
--- projects/sv/Makefile.inc1 Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/Makefile.inc1 Sat Jan 8 01:15:32 2011 (r217138)
@@ -121,7 +121,7 @@ VERSION+= ${OSRELDATE}
TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/}
.elif !defined(TARGET) && defined(TARGET_ARCH) && \
${TARGET_ARCH} != ${MACHINE_ARCH}
-TARGET= ${TARGET_ARCH:C/mipse[lb]/mips/:C/armeb/arm/}
+TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/}
.endif
# Legacy names, for a transition period mips:mips -> mipsel:mips
.if defined(TARGET) && defined(TARGET_ARCH) && \
@@ -142,7 +142,7 @@ TARGET_ARCH=armeb
TARGET?= ${MACHINE}
TARGET_ARCH?= ${MACHINE_ARCH}
-KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v
+KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v
.if ${TARGET} == ${TARGET_ARCH}
_t= ${TARGET}
.else
Modified: projects/sv/Makefile.mips
==============================================================================
--- projects/sv/Makefile.mips Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/Makefile.mips Sat Jan 8 01:15:32 2011 (r217138)
@@ -1,5 +1,5 @@
# $FreeBSD$
-.if defined(TARGET_ABI) && ${TARGET_ABI} == "n64"
+.if ${MACHINE_ARCH} != "mipsel" && ${MACHINE_ARCH} != "mipseb"
MK_RESCUE=no
.endif
Modified: projects/sv/UPDATING
==============================================================================
--- projects/sv/UPDATING Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/UPDATING Sat Jan 8 01:15:32 2011 (r217138)
@@ -22,6 +22,27 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
machines to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20110103:
+ If you are trying to run make universe on a -stable system, and you get
+ the following warning:
+"Makefile", line 356: "Target architecture for i386/conf/GENERIC unknown. config(8) likely too old."
+ or something similar to it, then you must upgrade your -stable system
+ to 8.2-Release or newer (really, any time after r210146 7/15/2010 in
+ stable/8) or build the config from the latest stable/8 branch and
+ install it on your system.
+
+ Prior to this date, building a current universe on 8-stable system from
+ between 7/15/2010 and 1/2/2011 would result in a weird shell parsing
+ error in the first kernel build phase. A new config on those old systems
+ will fix that problem for older versions of -current.
+
+20101228:
+ The TCP stack has been modified to allow Khelp modules to interact with
+ it via helper hook points and store per-connection data in the TCP
+ control block. Bump __FreeBSD_version to 900029. User space tools that
+ rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to
+ be recompiled.
+
20101114:
Generic IEEE 802.3 annex 31B full duplex flow control support has been
added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along
Modified: projects/sv/bin/kill/kill.1
==============================================================================
--- projects/sv/bin/kill/kill.1 Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/kill/kill.1 Sat Jan 8 01:15:32 2011 (r217138)
@@ -134,6 +134,7 @@ Terminate the process group with PGID 11
.Xr csh 1 ,
.Xr killall 1 ,
.Xr ps 1 ,
+.Xr sh 1 ,
.Xr kill 2 ,
.Xr sigaction 2
.Sh STANDARDS
Modified: projects/sv/bin/kill/kill.c
==============================================================================
--- projects/sv/bin/kill/kill.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/kill/kill.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -49,6 +49,12 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
#include <string.h>
+#ifdef SHELL
+#define main killcmd
+#include "bltin/bltin.h"
+#include "error.h"
+#endif
+
static void nosig(const char *);
static void printsignals(FILE *);
static int signame_to_signum(const char *);
@@ -75,16 +81,16 @@ main(int argc, char *argv[])
usage();
numsig = strtol(*argv, &ep, 10);
if (!**argv || *ep)
- errx(1, "illegal signal number: %s", *argv);
+ errx(2, "illegal signal number: %s", *argv);
if (numsig >= 128)
numsig -= 128;
if (numsig <= 0 || numsig >= sys_nsig)
nosig(*argv);
printf("%s\n", sys_signame[numsig]);
- exit(0);
+ return (0);
}
printsignals(stdout);
- exit(0);
+ return (0);
}
if (!strcmp(*argv, "-s")) {
@@ -107,7 +113,7 @@ main(int argc, char *argv[])
} else if (isdigit(**argv)) {
numsig = strtol(*argv, &ep, 10);
if (!**argv || *ep)
- errx(1, "illegal signal number: %s", *argv);
+ errx(2, "illegal signal number: %s", *argv);
if (numsig < 0)
nosig(*argv);
} else
@@ -122,16 +128,23 @@ main(int argc, char *argv[])
usage();
for (errors = 0; argc; argc--, argv++) {
- pid = strtol(*argv, &ep, 10);
- if (!**argv || *ep)
- errx(1, "illegal process id: %s", *argv);
- else if (kill(pid, numsig) == -1) {
+#ifdef SHELL
+ if (**argv == '%')
+ pid = getjobpgrp(*argv);
+ else
+#endif
+ {
+ pid = strtol(*argv, &ep, 10);
+ if (!**argv || *ep)
+ errx(2, "illegal process id: %s", *argv);
+ }
+ if (kill(pid, numsig) == -1) {
warn("%s", *argv);
errors = 1;
}
}
- exit(errors);
+ return (errors);
}
static int
@@ -154,7 +167,11 @@ nosig(const char *name)
warnx("unknown signal %s; valid signals:", name);
printsignals(stderr);
- exit(1);
+#ifdef SHELL
+ error(NULL);
+#else
+ exit(2);
+#endif
}
static void
@@ -180,5 +197,9 @@ usage(void)
" kill -l [exit_status]",
" kill -signal_name pid ...",
" kill -signal_number pid ...");
- exit(1);
+#ifdef SHELL
+ error(NULL);
+#else
+ exit(2);
+#endif
}
Modified: projects/sv/bin/setfacl/setfacl.c
==============================================================================
--- projects/sv/bin/setfacl/setfacl.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/setfacl/setfacl.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -201,12 +201,14 @@ main(int argc, char *argv[])
if (stat(file->filename, &sb) == -1) {
warn("%s: stat() failed", file->filename);
+ carried_error++;
continue;
}
if (acl_type == ACL_TYPE_DEFAULT && S_ISDIR(sb.st_mode) == 0) {
warnx("%s: default ACL may only be set on a directory",
file->filename);
+ carried_error++;
continue;
}
@@ -218,6 +220,7 @@ main(int argc, char *argv[])
if (acl_type == ACL_TYPE_DEFAULT) {
warnx("%s: there are no default entries "
"in NFSv4 ACLs", file->filename);
+ carried_error++;
continue;
}
acl_type = ACL_TYPE_NFS4;
@@ -240,6 +243,7 @@ main(int argc, char *argv[])
else
warn("%s: acl_get_file() failed",
file->filename);
+ carried_error++;
continue;
}
Modified: projects/sv/bin/sh/Makefile
==============================================================================
--- projects/sv/bin/sh/Makefile Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/Makefile Sat Jan 8 01:15:32 2011 (r217138)
@@ -4,7 +4,7 @@
PROG= sh
INSTALLFLAGS= -S
SHSRCS= alias.c arith.y arith_lex.l cd.c echo.c error.c eval.c exec.c expand.c \
- histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
+ histedit.c input.c jobs.c kill.c mail.c main.c memalloc.c miscbltin.c \
mystring.c options.c output.c parser.c printf.c redir.c show.c \
test.c trap.c var.c
GENSRCS= builtins.c init.c nodes.c syntax.c
@@ -26,6 +26,7 @@ WARNS?= 2
WFORMAT=0
.PATH: ${.CURDIR}/bltin \
+ ${.CURDIR}/../kill \
${.CURDIR}/../test \
${.CURDIR}/../../usr.bin/printf
Modified: projects/sv/bin/sh/alias.c
==============================================================================
--- projects/sv/bin/sh/alias.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/alias.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -246,7 +246,7 @@ aliascmd(int argc, char **argv)
while ((n = *++argv) != NULL) {
if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */
if ((ap = lookupalias(n, 0)) == NULL) {
- outfmt(out2, "alias: %s not found\n", n);
+ warning("%s not found", n);
ret = 1;
} else
printalias(ap);
Modified: projects/sv/bin/sh/bltin/bltin.h
==============================================================================
--- projects/sv/bin/sh/bltin/bltin.h Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/bltin/bltin.h Sat Jan 8 01:15:32 2011 (r217138)
@@ -43,6 +43,7 @@
#include "../mystring.h"
#ifdef SHELL
#include "../output.h"
+#define FILE struct output
#undef stdout
#define stdout out1
#undef stderr
@@ -57,11 +58,8 @@
#define fwrite(ptr, size, nmemb, file) outbin(ptr, (size) * (nmemb), file)
#define fflush flushout
#define INITARGS(argv)
-#define warnx(...) do { \
- out2fmt_flush("%s: ", commandname); \
- out2fmt_flush(__VA_ARGS__); \
- out2fmt_flush("\n"); \
- } while (0)
+#define warnx warning
+#define warn(fmt, ...) warning(fmt ": %s", __VA_ARGS__, strerror(errno))
#define errx(exitstatus, ...) error(__VA_ARGS__)
#else
@@ -71,8 +69,11 @@
#define INITARGS(argv) if ((commandname = argv[0]) == NULL) {fputs("Argc is zero\n", stderr); exit(2);} else
#endif
+#include <unistd.h>
+
pointer stalloc(int);
void error(const char *, ...) __printf0like(1, 2);
+pid_t getjobpgrp(char *);
int echocmd(int, char **);
int testcmd(int, char **);
Modified: projects/sv/bin/sh/builtins.def
==============================================================================
--- projects/sv/bin/sh/builtins.def Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/builtins.def Sat Jan 8 01:15:32 2011 (r217138)
@@ -70,6 +70,7 @@ hashcmd hash
histcmd -h fc
jobidcmd jobid
jobscmd jobs
+killcmd kill
localcmd local
printfcmd printf
pwdcmd pwd
Modified: projects/sv/bin/sh/cd.c
==============================================================================
--- projects/sv/bin/sh/cd.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/cd.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -224,7 +224,7 @@ cdphysical(char *dest)
}
p = findcwd(NULL);
if (p == NULL)
- out2fmt_flush("cd: warning: failed to get name of current directory\n");
+ warning("warning: failed to get name of current directory");
updatepwd(p);
INTON;
return (0);
Modified: projects/sv/bin/sh/error.c
==============================================================================
--- projects/sv/bin/sh/error.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/error.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -134,6 +134,26 @@ onint(void)
}
+static void
+vwarning(const char *msg, va_list ap)
+{
+ if (commandname)
+ outfmt(out2, "%s: ", commandname);
+ doformat(out2, msg, ap);
+ out2fmt_flush("\n");
+}
+
+
+void
+warning(const char *msg, ...)
+{
+ va_list ap;
+ va_start(ap, msg);
+ vwarning(msg, ap);
+ va_end(ap);
+}
+
+
/*
* Exverror is called to raise the error exception. If the first argument
* is not NULL then error prints an error message using printf style
@@ -158,12 +178,8 @@ exverror(int cond, const char *msg, va_l
else
TRACE(("exverror(%d, NULL) pid=%d\n", cond, getpid()));
#endif
- if (msg) {
- if (commandname)
- outfmt(out2, "%s: ", commandname);
- doformat(out2, msg, ap);
- out2c('\n');
- }
+ if (msg)
+ vwarning(msg, ap);
flushall();
exraise(cond);
}
Modified: projects/sv/bin/sh/error.h
==============================================================================
--- projects/sv/bin/sh/error.h Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/error.h Sat Jan 8 01:15:32 2011 (r217138)
@@ -80,6 +80,7 @@ extern volatile sig_atomic_t intpending;
void exraise(int) __dead2;
void onint(void);
+void warning(const char *, ...) __printflike(1, 2);
void error(const char *, ...) __printf0like(1, 2) __dead2;
void exerror(int, const char *, ...) __printf0like(2, 3) __dead2;
Modified: projects/sv/bin/sh/eval.c
==============================================================================
--- projects/sv/bin/sh/eval.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/eval.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -94,6 +94,7 @@ static void evalsubshell(union node *, i
static void evalredir(union node *, int);
static void expredir(union node *);
static void evalpipe(union node *);
+static int is_valid_fast_cmdsubst(union node *n);
static void evalcommand(union node *, int, struct backcmd *);
static void prehash(union node *);
@@ -565,6 +566,19 @@ evalpipe(union node *n)
+static int
+is_valid_fast_cmdsubst(union node *n)
+{
+ union node *argp;
+
+ if (n->type != NCMD)
+ return 0;
+ for (argp = n->ncmd.args ; argp ; argp = argp->narg.next)
+ if (expandhassideeffects(argp->narg.text))
+ return 0;
+ return 1;
+}
+
/*
* Execute a command inside back quotes. If it's a builtin command, we
* want to save its output in a block obtained from malloc. Otherwise
@@ -578,6 +592,8 @@ evalbackcmd(union node *n, struct backcm
int pip[2];
struct job *jp;
struct stackmark smark; /* unnecessary */
+ struct jmploc jmploc;
+ struct jmploc *savehandler;
setstackmark(&smark);
result->fd = -1;
@@ -588,9 +604,21 @@ evalbackcmd(union node *n, struct backcm
exitstatus = 0;
goto out;
}
- if (n->type == NCMD) {
+ if (is_valid_fast_cmdsubst(n)) {
exitstatus = oexitstatus;
- evalcommand(n, EV_BACKCMD, result);
+ savehandler = handler;
+ if (setjmp(jmploc.loc)) {
+ if (exception == EXERROR || exception == EXEXEC)
+ exitstatus = 2;
+ else if (exception != 0) {
+ handler = savehandler;
+ longjmp(handler->loc, 1);
+ }
+ } else {
+ handler = &jmploc;
+ evalcommand(n, EV_BACKCMD, result);
+ }
+ handler = savehandler;
} else {
exitstatus = 0;
if (pipe(pip) < 0)
@@ -615,10 +643,35 @@ out:
result->fd, result->buf, result->nleft, result->jp));
}
-
+/*
+ * Check if a builtin can safely be executed in the same process,
+ * even though it should be in a subshell (command substitution).
+ * Note that jobid, jobs, times and trap can show information not
+ * available in a child process; this is deliberate.
+ * The arguments should already have been expanded.
+ */
+static int
+safe_builtin(int idx, int argc, char **argv)
+{
+ if (idx == BLTINCMD || idx == COMMANDCMD || idx == ECHOCMD ||
+ idx == FALSECMD || idx == JOBIDCMD || idx == JOBSCMD ||
+ idx == KILLCMD || idx == PRINTFCMD || idx == PWDCMD ||
+ idx == TESTCMD || idx == TIMESCMD || idx == TRUECMD ||
+ idx == TYPECMD)
+ return (1);
+ if (idx == EXPORTCMD || idx == TRAPCMD || idx == ULIMITCMD ||
+ idx == UMASKCMD)
+ return (argc <= 1 || (argc == 2 && argv[1][0] == '-'));
+ if (idx == SETCMD)
+ return (argc <= 1 || (argc == 2 && (argv[1][0] == '-' ||
+ argv[1][0] == '+') && argv[1][1] == 'o' &&
+ argv[1][2] == '\0'));
+ return (0);
+}
/*
* Execute a simple command.
+ * Note: This may or may not return if (flags & EV_EXIT).
*/
static void
@@ -655,6 +708,7 @@ evalcommand(union node *cmd, int flags,
arglist.lastp = &arglist.list;
varlist.lastp = &varlist.list;
varflag = 1;
+ jp = NULL;
do_clearcmdentry = 0;
oexitstatus = exitstatus;
exitstatus = 0;
@@ -833,10 +887,8 @@ evalcommand(union node *cmd, int flags,
|| ((cmdentry.cmdtype == CMDNORMAL || cmdentry.cmdtype == CMDUNKNOWN)
&& ((flags & EV_EXIT) == 0 || have_traps()))
|| ((flags & EV_BACKCMD) != 0
- && (cmdentry.cmdtype != CMDBUILTIN
- || cmdentry.u.index == CDCMD
- || cmdentry.u.index == DOTCMD
- || cmdentry.u.index == EVALCMD))) {
+ && (cmdentry.cmdtype != CMDBUILTIN ||
+ !safe_builtin(cmdentry.u.index, argc, argv)))) {
jp = makejob(cmd, 1);
mode = cmd->ncmd.backgnd;
if (flags & EV_BACKCMD) {
@@ -915,7 +967,7 @@ evalcommand(union node *cmd, int flags,
evalskip = 0;
skipcount = 0;
}
- if (flags & EV_EXIT)
+ if (jp)
exitshell(exitstatus);
} else if (cmdentry.cmdtype == CMDBUILTIN) {
#ifdef DEBUG
@@ -947,8 +999,7 @@ evalcommand(union node *cmd, int flags,
*/
if (argc == 0 && !(flags & EV_BACKCMD))
cmdentry.special = 1;
- if (cmdentry.special)
- listsetvar(cmdenviron);
+ listsetvar(cmdenviron, cmdentry.special ? 0 : VNOSET);
if (argc > 0)
bltinsetlocale();
commandname = argv[0];
@@ -964,13 +1015,12 @@ cmddone:
out1 = &output;
out2 = &errout;
freestdout();
+ handler = savehandler;
if (e != EXSHELLPROC) {
commandname = savecmdname;
- if (flags & EV_EXIT) {
+ if (jp)
exitshell(exitstatus);
- }
}
- handler = savehandler;
if (flags == EV_BACKCMD) {
backcmd->buf = memout.buf;
backcmd->nleft = memout.nextc - memout.buf;
Modified: projects/sv/bin/sh/exec.c
==============================================================================
--- projects/sv/bin/sh/exec.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/exec.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -190,9 +190,8 @@ padvance(const char **path, const char *
for (p = start; *p && *p != ':' && *p != '%'; p++)
; /* nothing */
len = p - start + strlen(name) + 2; /* "2" is for '/' and '\0' */
- while (stackblocksize() < len)
- growstackblock();
- q = stackblock();
+ STARTSTACKSTR(q);
+ CHECKSTRSPACE(len, q);
if (p != start) {
memcpy(q, start, p - start);
q += p - start;
Modified: projects/sv/bin/sh/expand.c
==============================================================================
--- projects/sv/bin/sh/expand.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/expand.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -502,13 +502,14 @@ expbackq(union node *cmd, int quoted, in
if (lastc == '\n') {
nnl++;
} else {
+ CHECKSTRSPACE(nnl + 2, dest);
while (nnl > 0) {
nnl--;
- STPUTC('\n', dest);
+ USTPUTC('\n', dest);
}
if (quotes && syntax[(int)lastc] == CCTL)
- STPUTC(CTLESC, dest);
- STPUTC(lastc, dest);
+ USTPUTC(CTLESC, dest);
+ USTPUTC(lastc, dest);
}
}
}
@@ -1569,6 +1570,78 @@ cvtnum(int num, char *buf)
}
/*
+ * Check statically if expanding a string may have side effects.
+ */
+int
+expandhassideeffects(const char *p)
+{
+ int c;
+ int arinest;
+
+ arinest = 0;
+ while ((c = *p++) != '\0') {
+ switch (c) {
+ case CTLESC:
+ p++;
+ break;
+ case CTLVAR:
+ c = *p++;
+ /* Expanding $! sets the job to remembered. */
+ if (*p == '!')
+ return 1;
+ if ((c & VSTYPE) == VSASSIGN)
+ return 1;
+ /*
+ * If we are in arithmetic, the parameter may contain
+ * '=' which may cause side effects. Exceptions are
+ * the length of a parameter and $$, $# and $? which
+ * are always numeric.
+ */
+ if ((c & VSTYPE) == VSLENGTH) {
+ while (*p != '=')
+ p++;
+ p++;
+ break;
+ }
+ if ((*p == '$' || *p == '#' || *p == '?') &&
+ p[1] == '=') {
+ p += 2;
+ break;
+ }
+ if (arinest > 0)
+ return 1;
+ break;
+ case CTLBACKQ:
+ case CTLBACKQ | CTLQUOTE:
+ if (arinest > 0)
+ return 1;
+ break;
+ case CTLARI:
+ arinest++;
+ break;
+ case CTLENDARI:
+ arinest--;
+ break;
+ case '=':
+ if (*p == '=') {
+ /* Allow '==' operator. */
+ p++;
+ continue;
+ }
+ if (arinest > 0)
+ return 1;
+ break;
+ case '!': case '<': case '>':
+ /* Allow '!=', '<=', '>=' operators. */
+ if (*p == '=')
+ p++;
+ break;
+ }
+ }
+ return 0;
+}
+
+/*
* Do most of the work for wordexp(3).
*/
Modified: projects/sv/bin/sh/expand.h
==============================================================================
--- projects/sv/bin/sh/expand.h Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/expand.h Sat Jan 8 01:15:32 2011 (r217138)
@@ -63,4 +63,5 @@ void expari(int);
int patmatch(const char *, const char *, int);
void rmescapes(char *);
int casematch(union node *, const char *);
+int expandhassideeffects(const char *);
int wordexpcmd(int, char **);
Modified: projects/sv/bin/sh/histedit.c
==============================================================================
--- projects/sv/bin/sh/histedit.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/histedit.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -232,6 +232,7 @@ histcmd(int argc, char **argv)
}
argc -= optind, argv += optind;
+ savehandler = handler;
/*
* If executing...
*/
@@ -242,7 +243,6 @@ histcmd(int argc, char **argv)
* Catch interrupts to reset active counter and
* cleanup temp files.
*/
- savehandler = handler;
if (setjmp(jmploc.loc)) {
active = 0;
if (editfile)
@@ -399,6 +399,7 @@ histcmd(int argc, char **argv)
--active;
if (displayhist)
displayhist = 0;
+ handler = savehandler;
return 0;
}
Modified: projects/sv/bin/sh/jobs.c
==============================================================================
--- projects/sv/bin/sh/jobs.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/jobs.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -632,6 +632,14 @@ currentjob: if ((jp = getcurjob(NULL)) =
}
+pid_t
+getjobpgrp(char *name)
+{
+ struct job *jp;
+
+ jp = getjob(name);
+ return -jp->ps[0].pid;
+}
/*
* Return a new job structure,
Modified: projects/sv/bin/sh/memalloc.c
==============================================================================
--- projects/sv/bin/sh/memalloc.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/memalloc.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -127,7 +127,7 @@ static struct stack_block *stackp;
static struct stackmark *markp;
char *stacknxt;
int stacknleft;
-int sstrnleft;
+char *sstrend;
static void
@@ -146,6 +146,7 @@ stnewblock(int nbytes)
sp->prev = stackp;
stacknxt = SPACE(sp);
stacknleft = allocsize - (stacknxt - (char*)sp);
+ sstrend = stacknxt + stacknleft;
stackp = sp;
INTON;
}
@@ -204,6 +205,7 @@ popstackmark(struct stackmark *mark)
}
stacknxt = mark->stacknxt;
stacknleft = mark->stacknleft;
+ sstrend = stacknxt + stacknleft;
INTON;
}
@@ -218,8 +220,8 @@ popstackmark(struct stackmark *mark)
* part of the block that has been used.
*/
-void
-growstackblock(void)
+static void
+growstackblock(int min)
{
char *p;
int newlen;
@@ -229,8 +231,15 @@ growstackblock(void)
struct stack_block *oldstackp;
struct stackmark *xmark;
- newlen = (stacknleft == 0) ? MINSIZE : stacknleft * 2 + 100;
- newlen = ALIGN(newlen);
+ if (min < stacknleft)
+ min = stacknleft;
+ if (min >= INT_MAX / 2 - ALIGN(sizeof(struct stack_block)))
+ error("Out of space");
+ min += stacknleft;
+ min += ALIGN(sizeof(struct stack_block));
+ newlen = 512;
+ while (newlen < min)
+ newlen <<= 1;
oldspace = stacknxt;
oldlen = stacknleft;
@@ -243,6 +252,7 @@ growstackblock(void)
stackp = sp;
stacknxt = SPACE(sp);
stacknleft = newlen - (stacknxt - (char*)sp);
+ sstrend = stacknxt + stacknleft;
/*
* Stack marks pointing to the start of the old block
@@ -257,6 +267,7 @@ growstackblock(void)
}
INTON;
} else {
+ newlen -= ALIGN(sizeof(struct stack_block));
p = stalloc(newlen);
if (oldlen != 0)
memcpy(p, oldspace, oldlen);
@@ -295,10 +306,9 @@ grabstackblock(int len)
*/
static char *
-growstrstackblock(int n)
+growstrstackblock(int n, int min)
{
- growstackblock();
- sstrnleft = stackblocksize() - n;
+ growstackblock(min);
return stackblock() + n;
}
@@ -308,7 +318,7 @@ growstackstr(void)
int len;
len = stackblocksize();
- return growstrstackblock(len);
+ return (growstrstackblock(len, 0));
}
@@ -317,33 +327,21 @@ growstackstr(void)
*/
char *
-makestrspace(void)
+makestrspace(int min, char *p)
{
int len;
- len = stackblocksize() - sstrnleft;
- return growstrstackblock(len);
-}
-
-
-
-void
-ungrabstackstr(char *s, char *p)
-{
- stacknleft += stacknxt - s;
- stacknxt = s;
- sstrnleft = stacknleft - (p - s);
+ len = p - stackblock();
+ return (growstrstackblock(len, min));
}
char *
stputbin(const char *data, int len, char *p)
{
- int i;
-
- for (i = 0; i < len; i++)
- STPUTC(data[i], p);
- return (p);
+ CHECKSTRSPACE(len, p);
+ memcpy(p, data, len);
+ return (p + len);
}
char *
Modified: projects/sv/bin/sh/memalloc.h
==============================================================================
--- projects/sv/bin/sh/memalloc.h Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/memalloc.h Sat Jan 8 01:15:32 2011 (r217138)
@@ -45,7 +45,7 @@ struct stackmark {
extern char *stacknxt;
extern int stacknleft;
-extern int sstrnleft;
+extern char *sstrend;
pointer ckmalloc(size_t);
pointer ckrealloc(pointer, int);
@@ -55,11 +55,9 @@ pointer stalloc(int);
void stunalloc(pointer);
void setstackmark(struct stackmark *);
void popstackmark(struct stackmark *);
-void growstackblock(void);
void grabstackblock(int);
char *growstackstr(void);
-char *makestrspace(void);
-void ungrabstackstr(char *, char *);
+char *makestrspace(int, char *);
char *stputbin(const char *data, int len, char *p);
char *stputs(const char *data, char *p);
@@ -67,10 +65,10 @@ char *stputs(const char *data, char *p);
#define stackblock() stacknxt
#define stackblocksize() stacknleft
-#define STARTSTACKSTR(p) p = stackblock(), sstrnleft = stackblocksize()
-#define STPUTC(c, p) (--sstrnleft >= 0? (*p++ = (c)) : (p = growstackstr(), --sstrnleft, *p++ = (c)))
-#define CHECKSTRSPACE(n, p) { if (sstrnleft < n) p = makestrspace(); }
-#define USTPUTC(c, p) (--sstrnleft, *p++ = (c))
+#define STARTSTACKSTR(p) p = stackblock()
+#define STPUTC(c, p) do { if (p == sstrend) p = growstackstr(); *p++ = (c); } while(0)
+#define CHECKSTRSPACE(n, p) { if (sstrend - p < n) p = makestrspace(n, p); }
+#define USTPUTC(c, p) (*p++ = (c))
/*
* STACKSTRNUL's use is where we want to be able to turn a stack
* (non-sentinel, character counting string) into a C string,
@@ -78,10 +76,11 @@ char *stputs(const char *data, char *p);
* Note: Because of STACKSTRNUL's semantics, STACKSTRNUL cannot be used
* on a stack that will grabstackstr()ed.
*/
-#define STACKSTRNUL(p) (sstrnleft == 0? (p = growstackstr(), *p = '\0') : (*p = '\0'))
-#define STUNPUTC(p) (++sstrnleft, --p)
+#define STACKSTRNUL(p) (p == sstrend ? (p = growstackstr(), *p = '\0') : (*p = '\0'))
+#define STUNPUTC(p) (--p)
#define STTOPC(p) p[-1]
-#define STADJUST(amount, p) (p += (amount), sstrnleft -= (amount))
-#define grabstackstr(p) stalloc(stackblocksize() - sstrnleft)
+#define STADJUST(amount, p) (p += (amount))
+#define grabstackstr(p) stalloc((char *)p - stackblock())
+#define ungrabstackstr(s, p) stunalloc((s))
#define STPUTBIN(s, len, p) p = stputbin((s), (len), p)
#define STPUTS(s, p) p = stputs((s), p)
Modified: projects/sv/bin/sh/parser.c
==============================================================================
--- projects/sv/bin/sh/parser.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/parser.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -1093,9 +1093,8 @@ done:
popfile();
tokpushback = 0;
}
- while (stackblocksize() <= savelen)
- growstackblock();
STARTSTACKSTR(out);
+ CHECKSTRSPACE(savelen + 1, out);
INTOFF;
if (str) {
memcpy(out, str, savelen);
Modified: projects/sv/bin/sh/redir.c
==============================================================================
--- projects/sv/bin/sh/redir.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/redir.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -155,6 +155,7 @@ openredirect(union node *redir, char mem
int fd = redir->nfile.fd;
char *fname;
int f;
+ int e;
/*
* We suppress interrupts so that we won't leave open file
@@ -173,7 +174,11 @@ openredirect(union node *redir, char mem
error("cannot open %s: %s", fname, strerror(errno));
movefd:
if (f != fd) {
- dup2(f, fd);
+ if (dup2(f, fd) == -1) {
+ e = errno;
+ close(f);
+ error("%d: %s", fd, strerror(e));
+ }
close(f);
}
break;
Modified: projects/sv/bin/sh/sh.1
==============================================================================
--- projects/sv/bin/sh/sh.1 Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/sh.1 Sat Jan 8 01:15:32 2011 (r217138)
@@ -32,7 +32,7 @@
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
.\" $FreeBSD$
.\"
-.Dd December 3, 2010
+.Dd December 21, 2010
.Dt SH 1
.Os
.Sh NAME
@@ -456,9 +456,10 @@ would become
Aliases provide a convenient way for naive users to
create shorthands for commands without having to learn how
to create functions with arguments.
-They can also be
-used to create lexically obscure code.
-This use is discouraged.
+Using aliases in scripts is discouraged
+because the command that defines them must be executed
+before the code that uses them is parsed.
+This is fragile and not portable.
.Pp
An alias name may be escaped in a command line, so that it is not
replaced by its alias value, by using quoting characters within or
@@ -2049,6 +2050,10 @@ If the
.Fl s
option is specified, only the PIDs of the job commands are printed, one per
line.
+.It Ic kill
+A built-in equivalent of
+.Xr kill 1
+that additionally supports sending signals to jobs.
.It Ic local Oo Ar variable ... Oc Op Fl
See the
.Sx Functions
@@ -2477,6 +2482,7 @@ will return the argument.
.Xr echo 1 ,
.Xr ed 1 ,
.Xr emacs 1 ,
+.Xr kill 1 ,
.Xr printf 1 ,
.Xr pwd 1 ,
.Xr test 1 ,
Modified: projects/sv/bin/sh/trap.c
==============================================================================
--- projects/sv/bin/sh/trap.c Sat Jan 8 01:11:14 2011 (r217137)
+++ projects/sv/bin/sh/trap.c Sat Jan 8 01:15:32 2011 (r217138)
@@ -185,7 +185,7 @@ trapcmd(int argc, char **argv)
}
while (*argv) {
if ((signo = sigstring_to_signum(*argv)) == -1) {
- out2fmt_flush("trap: bad signal %s\n", *argv);
+ warning("bad signal %s", *argv);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list