Date: Tue, 13 Nov 2012 07:39:06 +0000 (UTC) From: Neel Natu <neel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r242954 - in projects/bhyve: . bin/ls bin/sh cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/libdtrace/powerpc cddl/lib cddl/lib/libdtrace cddl/usr.sbin contrib/gdb/gdb ... Message-ID: <201211130739.qAD7d6mh009111@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: neel Date: Tue Nov 13 07:39:05 2012 New Revision: 242954 URL: http://svnweb.freebsd.org/changeset/base/242954 Log: IFC @ r242940 Added: projects/bhyve/cddl/contrib/opensolaris/lib/libdtrace/powerpc/ - copied from r242940, head/cddl/contrib/opensolaris/lib/libdtrace/powerpc/ projects/bhyve/lib/libcrypt/tests/ - copied from r242940, head/lib/libcrypt/tests/ projects/bhyve/share/mk/atf.test.mk - copied unchanged from r242940, head/share/mk/atf.test.mk projects/bhyve/share/mk/bsd.test.mk - copied unchanged from r242940, head/share/mk/bsd.test.mk projects/bhyve/sys/cddl/contrib/opensolaris/uts/powerpc/ - copied from r242940, head/sys/cddl/contrib/opensolaris/uts/powerpc/ projects/bhyve/sys/cddl/dev/dtrace/powerpc/ - copied from r242940, head/sys/cddl/dev/dtrace/powerpc/ projects/bhyve/sys/dev/ath/if_ath_alq.c - copied unchanged from r242940, head/sys/dev/ath/if_ath_alq.c projects/bhyve/sys/dev/ath/if_ath_alq.h - copied unchanged from r242940, head/sys/dev/ath/if_ath_alq.h projects/bhyve/tools/regression/bin/sh/builtins/alias3.0 - copied unchanged from r242940, head/tools/regression/bin/sh/builtins/alias3.0 projects/bhyve/tools/regression/bin/sh/builtins/alias3.0.stdout - copied unchanged from r242940, head/tools/regression/bin/sh/builtins/alias3.0.stdout projects/bhyve/tools/regression/bin/sh/parser/alias10.0 - copied unchanged from r242940, head/tools/regression/bin/sh/parser/alias10.0 projects/bhyve/tools/regression/bin/sh/parser/alias9.0 - copied unchanged from r242940, head/tools/regression/bin/sh/parser/alias9.0 Modified: projects/bhyve/Makefile.inc1 projects/bhyve/bin/ls/cmp.c projects/bhyve/bin/ls/extern.h projects/bhyve/bin/ls/ls.1 projects/bhyve/bin/ls/ls.c projects/bhyve/bin/ls/ls.h projects/bhyve/bin/ls/print.c projects/bhyve/bin/ls/util.c projects/bhyve/bin/sh/alias.c projects/bhyve/bin/sh/input.c projects/bhyve/bin/sh/input.h projects/bhyve/cddl/contrib/opensolaris/cmd/ztest/ztest.c projects/bhyve/cddl/lib/Makefile projects/bhyve/cddl/lib/libdtrace/Makefile projects/bhyve/cddl/usr.sbin/Makefile projects/bhyve/contrib/gdb/gdb/c-valprint.c projects/bhyve/contrib/gdb/gdb/cp-valprint.c projects/bhyve/contrib/gdb/gdb/dwarf2loc.c projects/bhyve/contrib/gdb/gdb/f-valprint.c projects/bhyve/contrib/gdb/gdb/jv-valprint.c projects/bhyve/contrib/gdb/gdb/p-valprint.c projects/bhyve/contrib/gdb/gdb/scm-valprint.c projects/bhyve/contrib/gdb/gdb/stack.c projects/bhyve/contrib/gdb/gdb/valprint.c projects/bhyve/contrib/gdb/gdb/value.h projects/bhyve/contrib/gdb/gdb/varobj.c projects/bhyve/contrib/jemalloc/ChangeLog projects/bhyve/contrib/jemalloc/FREEBSD-diffs projects/bhyve/contrib/jemalloc/VERSION projects/bhyve/contrib/jemalloc/doc/jemalloc.3 projects/bhyve/contrib/jemalloc/include/jemalloc/internal/arena.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/chunk.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/chunk_dss.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/chunk_mmap.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/ctl.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/extent.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/huge.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/private_namespace.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/prof.h projects/bhyve/contrib/jemalloc/include/jemalloc/internal/rtree.h projects/bhyve/contrib/jemalloc/include/jemalloc/jemalloc.h projects/bhyve/contrib/jemalloc/include/jemalloc/jemalloc_defs.h projects/bhyve/contrib/jemalloc/src/arena.c projects/bhyve/contrib/jemalloc/src/base.c projects/bhyve/contrib/jemalloc/src/chunk.c projects/bhyve/contrib/jemalloc/src/chunk_dss.c projects/bhyve/contrib/jemalloc/src/chunk_mmap.c projects/bhyve/contrib/jemalloc/src/ctl.c projects/bhyve/contrib/jemalloc/src/huge.c projects/bhyve/contrib/jemalloc/src/jemalloc.c projects/bhyve/contrib/jemalloc/src/mutex.c projects/bhyve/contrib/jemalloc/src/prof.c projects/bhyve/contrib/jemalloc/src/rtree.c projects/bhyve/contrib/jemalloc/src/stats.c projects/bhyve/contrib/jemalloc/src/tcache.c projects/bhyve/contrib/jemalloc/src/util.c projects/bhyve/contrib/llvm/lib/Target/X86/X86Subtarget.cpp projects/bhyve/contrib/top/commands.c projects/bhyve/contrib/tzdata/asia projects/bhyve/contrib/tzdata/northamerica projects/bhyve/etc/pccard_ether projects/bhyve/lib/Makefile projects/bhyve/lib/libc/gen/isnan.c projects/bhyve/lib/libc/stdio/printf.3 projects/bhyve/lib/libproc/proc_bkpt.c projects/bhyve/lib/libproc/proc_regs.c projects/bhyve/lib/msun/src/k_rem_pio2.c projects/bhyve/lib/msun/src/s_isnan.c projects/bhyve/release/Makefile projects/bhyve/release/doc/share/xml/release.ent projects/bhyve/sbin/ifconfig/ifconfig.8 projects/bhyve/secure/usr.bin/bdes/bdes.1 projects/bhyve/share/man/man4/icmp6.4 projects/bhyve/share/man/man4/ipsec.4 projects/bhyve/share/mk/Makefile projects/bhyve/share/mk/bsd.progs.mk projects/bhyve/share/mk/bsd.subdir.mk projects/bhyve/sys/amd64/amd64/identcpu.c projects/bhyve/sys/arm/arm/machdep.c projects/bhyve/sys/arm/at91/at91_machdep.c projects/bhyve/sys/arm/lpc/lpc_gpio.c projects/bhyve/sys/boot/common/Makefile.inc projects/bhyve/sys/boot/forth/menu.4th projects/bhyve/sys/boot/i386/boot2/sio.S projects/bhyve/sys/boot/i386/loader/Makefile projects/bhyve/sys/boot/ia64/common/Makefile projects/bhyve/sys/boot/pc98/Makefile.inc projects/bhyve/sys/boot/pc98/boot2/Makefile projects/bhyve/sys/boot/pc98/boot2/boot2.c projects/bhyve/sys/boot/pc98/btx/btx/btx.S projects/bhyve/sys/boot/pc98/cdboot/Makefile projects/bhyve/sys/boot/pc98/libpc98/comconsole.c projects/bhyve/sys/boot/pc98/loader/Makefile projects/bhyve/sys/boot/powerpc/ofw/Makefile projects/bhyve/sys/boot/powerpc/ps3/Makefile projects/bhyve/sys/boot/sparc64/loader/Makefile projects/bhyve/sys/cam/scsi/scsi_enc_ses.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/bhyve/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/bhyve/sys/cddl/dev/lockstat/lockstat.c projects/bhyve/sys/cddl/dev/profile/profile.c projects/bhyve/sys/conf/Makefile.pc98 projects/bhyve/sys/conf/files projects/bhyve/sys/conf/kern.pre.mk projects/bhyve/sys/dev/aac/aac_debug.c projects/bhyve/sys/dev/acpica/acpivar.h projects/bhyve/sys/dev/ahci/ahciem.c projects/bhyve/sys/dev/asmc/asmc.c projects/bhyve/sys/dev/ath/ath_hal/ah.h projects/bhyve/sys/dev/ath/ath_hal/ah_debug.h projects/bhyve/sys/dev/ath/ath_hal/ah_internal.h projects/bhyve/sys/dev/ath/if_ath.c projects/bhyve/sys/dev/ath/if_ath_rx.c projects/bhyve/sys/dev/ath/if_ath_rx_edma.c projects/bhyve/sys/dev/ath/if_ath_sysctl.c projects/bhyve/sys/dev/ath/if_ath_tx.c projects/bhyve/sys/dev/ath/if_ath_tx_edma.c projects/bhyve/sys/dev/ath/if_athvar.h projects/bhyve/sys/dev/bktr/bktr_audio.c projects/bhyve/sys/dev/ct/bshw_machdep.c projects/bhyve/sys/dev/ct/ct.c projects/bhyve/sys/dev/ct/ct_isa.c projects/bhyve/sys/dev/ct/ct_machdep.h projects/bhyve/sys/dev/drm/via_dma.c projects/bhyve/sys/dev/drm/via_dmablit.c projects/bhyve/sys/dev/etherswitch/arswitch/arswitch.c projects/bhyve/sys/dev/md/md.c projects/bhyve/sys/dev/mfi/mfi.c projects/bhyve/sys/dev/mfi/mfi_cam.c projects/bhyve/sys/dev/mfi/mfivar.h projects/bhyve/sys/dev/mn/if_mn.c projects/bhyve/sys/dev/nve/if_nve.c projects/bhyve/sys/dev/nxge/xgehal/xgehal-device.c projects/bhyve/sys/dev/puc/pucdata.c projects/bhyve/sys/dev/snc/dp83932.c projects/bhyve/sys/dev/snc/dp83932subr.c projects/bhyve/sys/dev/snc/if_snc.c projects/bhyve/sys/dev/snc/if_snc_cbus.c projects/bhyve/sys/dev/sound/pci/emu10kx.c projects/bhyve/sys/dev/twa/tw_cl_misc.c projects/bhyve/sys/dev/usb/controller/dwc_otg.c projects/bhyve/sys/dev/usb/controller/dwc_otg.h projects/bhyve/sys/dev/usb/controller/dwc_otgreg.h projects/bhyve/sys/dev/usb/net/if_udav.c projects/bhyve/sys/dev/usb/serial/u3g.c projects/bhyve/sys/dev/usb/serial/usb_serial.c projects/bhyve/sys/dev/usb/usbdevs projects/bhyve/sys/dev/xen/netback/netback_unit_tests.c projects/bhyve/sys/fs/cd9660/cd9660_vfsops.c projects/bhyve/sys/fs/devfs/devfs_vfsops.c projects/bhyve/sys/fs/ext2fs/ext2_vfsops.c projects/bhyve/sys/fs/fdescfs/fdesc_vfsops.c projects/bhyve/sys/fs/fuse/fuse_file.c projects/bhyve/sys/fs/fuse/fuse_internal.c projects/bhyve/sys/fs/fuse/fuse_internal.h projects/bhyve/sys/fs/fuse/fuse_io.c projects/bhyve/sys/fs/fuse/fuse_node.c projects/bhyve/sys/fs/fuse/fuse_node.h projects/bhyve/sys/fs/fuse/fuse_vfsops.c projects/bhyve/sys/fs/fuse/fuse_vnops.c projects/bhyve/sys/fs/msdosfs/msdosfs_vfsops.c projects/bhyve/sys/fs/nandfs/nandfs_vfsops.c projects/bhyve/sys/fs/nfsclient/nfs_clvfsops.c projects/bhyve/sys/fs/nullfs/null_vfsops.c projects/bhyve/sys/fs/pseudofs/pseudofs.c projects/bhyve/sys/fs/tmpfs/tmpfs_vfsops.c projects/bhyve/sys/fs/udf/udf_vfsops.c projects/bhyve/sys/fs/unionfs/union_vfsops.c projects/bhyve/sys/fs/unionfs/union_vnops.c projects/bhyve/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/bhyve/sys/i386/include/vmparam.h projects/bhyve/sys/i386/xen/clock.c projects/bhyve/sys/kern/kern_malloc.c projects/bhyve/sys/kern/kern_mbuf.c projects/bhyve/sys/kern/sched_ule.c projects/bhyve/sys/kern/subr_param.c projects/bhyve/sys/kern/tty.c projects/bhyve/sys/kern/uipc_mqueue.c projects/bhyve/sys/kern/vfs_subr.c projects/bhyve/sys/mips/conf/AP91.hints projects/bhyve/sys/mips/conf/AP93.hints projects/bhyve/sys/mips/conf/AP96.hints projects/bhyve/sys/mips/conf/RSPRO.hints projects/bhyve/sys/modules/Makefile projects/bhyve/sys/modules/dtrace/Makefile projects/bhyve/sys/modules/nxge/Makefile projects/bhyve/sys/netinet/sctp_constants.h projects/bhyve/sys/netinet/sctp_indata.c projects/bhyve/sys/netinet/sctp_input.c projects/bhyve/sys/netinet/sctp_output.c projects/bhyve/sys/netinet/sctp_pcb.c projects/bhyve/sys/netinet/sctp_structs.h projects/bhyve/sys/netinet/sctp_timer.c projects/bhyve/sys/netinet/sctputil.c projects/bhyve/sys/netinet/tcp_output.c projects/bhyve/sys/netinet/tcp_subr.c projects/bhyve/sys/netinet/tcp_timewait.c projects/bhyve/sys/netinet6/in6_src.c projects/bhyve/sys/netpfil/ipfw/ip_fw_dynamic.c projects/bhyve/sys/netpfil/pf/if_pfsync.c projects/bhyve/sys/nfsclient/nfs_vfsops.c projects/bhyve/sys/ofed/drivers/infiniband/core/cma.c projects/bhyve/sys/ofed/drivers/infiniband/core/ud_header.c projects/bhyve/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c projects/bhyve/sys/ofed/include/linux/cdev.h projects/bhyve/sys/ofed/include/linux/pci.h projects/bhyve/sys/pc98/include/bus.h projects/bhyve/sys/pc98/pc98/machdep.c projects/bhyve/sys/powerpc/aim/locore32.S projects/bhyve/sys/powerpc/aim/locore64.S projects/bhyve/sys/powerpc/aim/trap.c projects/bhyve/sys/powerpc/aim/trap_subr32.S projects/bhyve/sys/powerpc/aim/trap_subr64.S projects/bhyve/sys/powerpc/conf/GENERIC projects/bhyve/sys/powerpc/include/bat.h projects/bhyve/sys/sys/_mutex.h projects/bhyve/sys/sys/_rwlock.h projects/bhyve/sys/sys/mount.h projects/bhyve/sys/ufs/ffs/ffs_softdep.c projects/bhyve/sys/ufs/ffs/ffs_vfsops.c projects/bhyve/sys/vm/vm_map.c projects/bhyve/usr.bin/calendar/calendars/calendar.history projects/bhyve/usr.bin/clang/clang/Makefile projects/bhyve/usr.bin/locale/locale.1 projects/bhyve/usr.bin/locale/locale.c projects/bhyve/usr.bin/ssh-copy-id/ssh-copy-id.1 projects/bhyve/usr.bin/ssh-copy-id/ssh-copy-id.sh projects/bhyve/usr.bin/top/machine.c projects/bhyve/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.8 Directory Properties: projects/bhyve/ (props changed) projects/bhyve/cddl/contrib/opensolaris/ (props changed) projects/bhyve/contrib/gdb/ (props changed) projects/bhyve/contrib/llvm/ (props changed) projects/bhyve/contrib/top/ (props changed) projects/bhyve/contrib/tzdata/ (props changed) projects/bhyve/lib/libc/ (props changed) projects/bhyve/sbin/ (props changed) projects/bhyve/share/man/man4/ (props changed) projects/bhyve/sys/ (props changed) projects/bhyve/sys/boot/ (props changed) projects/bhyve/sys/boot/powerpc/ofw/ (props changed) projects/bhyve/sys/cddl/contrib/opensolaris/ (props changed) projects/bhyve/sys/conf/ (props changed) projects/bhyve/usr.bin/calendar/ (props changed) Modified: projects/bhyve/Makefile.inc1 ============================================================================== --- projects/bhyve/Makefile.inc1 Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/Makefile.inc1 Tue Nov 13 07:39:05 2012 (r242954) @@ -1138,7 +1138,7 @@ _aicasm= sys/modules/aic7xxx/aicasm _share= share/syscons/scrnmaps .endif -.if ${MK_GCC} != "no" && ${MK_CLANG_IS_CC} == "no" +.if ${MK_GCC} != "no" && (${MK_CLANG_IS_CC} == "no" || ${TARGET} == "pc98") _gcc_tools= gnu/usr.bin/cc/cc_tools .endif @@ -1200,7 +1200,7 @@ _clang= usr.bin/clang _clang_libs= lib/clang .endif -.if ${MK_GCC} != "no" && ${MK_CLANG_IS_CC} == "no" +.if ${MK_GCC} != "no" && (${MK_CLANG_IS_CC} == "no" || ${TARGET} == "pc98") _cc= gnu/usr.bin/cc .endif Modified: projects/bhyve/bin/ls/cmp.c ============================================================================== --- projects/bhyve/bin/ls/cmp.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/cmp.c Tue Nov 13 07:39:05 2012 (r242954) @@ -78,7 +78,10 @@ modcmp(const FTSENT *a, const FTSENT *b) if (b->fts_statp->st_mtim.tv_nsec < a->fts_statp->st_mtim.tv_nsec) return (-1); - return (strcoll(a->fts_name, b->fts_name)); + if (f_samesort) + return (strcoll(b->fts_name, a->fts_name)); + else + return (strcoll(a->fts_name, b->fts_name)); } int @@ -104,7 +107,10 @@ acccmp(const FTSENT *a, const FTSENT *b) if (b->fts_statp->st_atim.tv_nsec < a->fts_statp->st_atim.tv_nsec) return (-1); - return (strcoll(a->fts_name, b->fts_name)); + if (f_samesort) + return (strcoll(b->fts_name, a->fts_name)); + else + return (strcoll(a->fts_name, b->fts_name)); } int @@ -130,7 +136,10 @@ birthcmp(const FTSENT *a, const FTSENT * if (b->fts_statp->st_birthtim.tv_nsec < a->fts_statp->st_birthtim.tv_nsec) return (-1); - return (strcoll(a->fts_name, b->fts_name)); + if (f_samesort) + return (strcoll(b->fts_name, a->fts_name)); + else + return (strcoll(a->fts_name, b->fts_name)); } int @@ -156,7 +165,10 @@ statcmp(const FTSENT *a, const FTSENT *b if (b->fts_statp->st_ctim.tv_nsec < a->fts_statp->st_ctim.tv_nsec) return (-1); - return (strcoll(a->fts_name, b->fts_name)); + if (f_samesort) + return (strcoll(b->fts_name, a->fts_name)); + else + return (strcoll(a->fts_name, b->fts_name)); } int Modified: projects/bhyve/bin/ls/extern.h ============================================================================== --- projects/bhyve/bin/ls/extern.h Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/extern.h Tue Nov 13 07:39:05 2012 (r242954) @@ -55,12 +55,12 @@ int prn_octal(const char *); int prn_printable(const char *); #ifdef COLORLS void parsecolors(const char *cs); -void colorquit(int); +void colorquit(int); -extern char *ansi_fgcol; -extern char *ansi_bgcol; -extern char *ansi_coloff; -extern char *attrs_off; -extern char *enter_bold; +extern char *ansi_fgcol; +extern char *ansi_bgcol; +extern char *ansi_coloff; +extern char *attrs_off; +extern char *enter_bold; #endif extern int termwidth; Modified: projects/bhyve/bin/ls/ls.1 ============================================================================== --- projects/bhyve/bin/ls/ls.1 Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/ls.1 Tue Nov 13 07:39:05 2012 (r242954) @@ -32,7 +32,7 @@ .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 .\" $FreeBSD$ .\" -.Dd September 28, 2011 +.Dd November 8, 2012 .Dt LS 1 .Os .Sh NAME @@ -40,7 +40,7 @@ .Nd list directory contents .Sh SYNOPSIS .Nm -.Op Fl ABCFGHILPRSTUWZabcdfghiklmnopqrstuwx1 +.Op Fl ABCFGHILPRSTUWZabcdfghiklmnopqrstuwxy1, .Op Fl D Ar format .Op Ar .Sh DESCRIPTION @@ -130,6 +130,8 @@ This option is equivalent to defining .Ev CLICOLOR in the environment. (See below.) +This functionality can be compiled out by removing the definition of +.Ev COLORLS . .It Fl H Symbolic links on the command line are followed. This option is assumed if @@ -249,12 +251,35 @@ subsection below, except (if the long fo the directory totals are not output when the output is in a single column, even if multi-column output is requested. .It Fl t -Sort by time modified (most recently modified -first) before sorting the operands in lexicographical -order. +Sort by descending time modified (most recently modified first). If two files +have the same modification timestamp, sort their names in ascending +lexicographical order. +The +.Fl r +option reverses both of these sort orders. +.Pp +Note that these sort orders are contradictory: the time sequence is in +descending order, the lexicographical sort is in ascending order. +This behavior is mandated by +.St -p1003.2 . +This feature can cause problems listing files stored with sequential names on +FAT file systems, such as from digital cameras, where it is possible to have +more than one image with the same timestamp. +In such a case, the photos cannot be listed in the sequence in which +they were taken. +To ensure the same sort order for time and for lexicographical sorting, set the +environment variable +.Ev LS_SAMESORT +or use the +.Fl y +option. +This causes +.Nm +to reverse the lexicographal sort order when sorting files with the +same modification timestamp. .It Fl u Use time of last access, -instead of last modification +instead of time of last modification of the file for sorting .Pq Fl t or printing @@ -268,6 +293,15 @@ The same as .Fl C , except that the multi-column output is produced with entries sorted across, rather than down, the columns. +.It Fl y +When the +.Fl t +option is set, sort the alphabetical output in the same order as the time output. +This has the same effect as setting +.Ev LS_SAMESORT . +See the description of the +.Fl t +option for more details. .It Fl 1 (The numeric digit .Dq one . ) @@ -275,6 +309,15 @@ Force output to be one entry per line. This is the default when output is not to a terminal. +.It Fl , +(Comma) When the +.Fl l +option is set, print file sizes grouped and separated by thousands using the +non-monetary separator returned by +.Xr localeconv 3 , +typically a comma or period. +If no locale is set, or the locale does not have a non-monetary separator, this +option has no effect. .El .Pp The @@ -529,7 +572,7 @@ variable is defined. .It Ev CLICOLOR_FORCE Color sequences are normally disabled if the output is not directed to a terminal. -This can be overridden by setting this flag. +This can be overridden by setting this variable. The .Ev TERM variable still needs to reference a color capable terminal however @@ -655,6 +698,14 @@ Not all columns have changeable widths. The fields are, in order: inode, block count, number of links, user name, group name, flags, file size, file name. +.It Ev LS_SAMESORT +If this variable is set, the +.Fl t +option sorts the names of files with the same modification timestamp in the same +sense as the time sort. +See the description of the +.Fl t +option for more details. .It Ev TERM The .Ev CLICOLOR @@ -678,6 +729,7 @@ specification. .Xr getfacl 1 , .Xr sort 1 , .Xr xterm 1 , +.Xr localeconv 3 , .Xr strftime 3 , .Xr strmode 3 , .Xr termcap 5 , @@ -716,3 +768,9 @@ option description might be a feature th based on the fact that single-column output usually goes to something other than a terminal. It is debatable whether this is a design bug. +.Pp +.St -p1003.2 +mandates opposite sort orders for files with the same timestamp when +sorting with the +.Fl t +option. Modified: projects/bhyve/bin/ls/ls.c ============================================================================== --- projects/bhyve/bin/ls/ls.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/ls.c Tue Nov 13 07:39:05 2012 (r242954) @@ -109,10 +109,11 @@ int termwidth = 80; /* default terminal int f_humanval; /* show human-readable file sizes */ int f_inode; /* print inode */ static int f_kblocks; /* print size in kilobytes */ + int f_label; /* show MAC label */ static int f_listdir; /* list actual directory, not contents */ static int f_listdot; /* list files beginning with . */ -static int f_noautodot; /* do not automatically enable -A for root */ int f_longform; /* long listing format */ +static int f_noautodot; /* do not automatically enable -A for root */ static int f_nofollow; /* don't follow symbolic link arguments */ int f_nonprint; /* show unprintables as ? */ static int f_nosort; /* don't sort output */ @@ -122,19 +123,21 @@ static int f_numericonly; /* don't conve int f_octal_escape; /* like f_octal but use C escapes if possible */ static int f_recursive; /* ls subdirectories also */ static int f_reversesort; /* reverse whatever sort is used */ - int f_sectime; /* print the real time for all files */ + int f_samesort; /* sort time and name in same direction */ + int f_sectime; /* print full time information */ static int f_singlecol; /* use single column output */ int f_size; /* list size in short listing */ +static int f_sizesort; int f_slash; /* similar to f_type, but only for dirs */ int f_sortacross; /* sort across rows, not down columns */ int f_statustime; /* use time of last mode change */ static int f_stream; /* stream the output, separate with commas */ + int f_thousands; /* show file sizes with thousands separators */ + char *f_timeformat; /* user-specified time format */ static int f_timesort; /* sort by time vice name */ - char *f_timeformat; /* user-specified time format */ -static int f_sizesort; int f_type; /* add type character for non-regular files */ static int f_whiteout; /* show whiteout entries */ - int f_label; /* show MAC label */ + #ifdef COLORLS int f_color; /* add type in color for non-regular files */ @@ -180,8 +183,10 @@ main(int argc, char *argv[]) } fts_options = FTS_PHYSICAL; - while ((ch = getopt(argc, argv, - "1ABCD:FGHILPRSTUWZabcdfghiklmnopqrstuwx")) != -1) { + if (getenv("LS_SAMESORT")) + f_samesort = 1; + while ((ch = getopt(argc, argv, + "1ABCD:FGHILPRSTUWXZabcdfghiklmnopqrstuwxy,")) != -1) { switch (ch) { /* * The -1, -C, -x and -l options all override each other so @@ -192,17 +197,9 @@ main(int argc, char *argv[]) f_longform = 0; f_stream = 0; break; - case 'B': - f_nonprint = 0; - f_octal = 1; - f_octal_escape = 0; - break; case 'C': f_sortacross = f_longform = f_singlecol = 0; break; - case 'D': - f_timeformat = optarg; - break; case 'l': f_longform = 1; f_singlecol = 0; @@ -229,16 +226,46 @@ main(int argc, char *argv[]) f_accesstime = 0; f_statustime = 0; break; + case 'a': + fts_options |= FTS_SEEDOT; + /* FALLTHROUGH */ + case 'A': + f_listdot = 1; + break; + /* The -t and -S options override each other. */ + case 'S': + f_sizesort = 1; + f_timesort = 0; + break; + case 't': + f_timesort = 1; + f_sizesort = 0; + break; + /* Other flags. Please keep alphabetic. */ + case ',': + f_thousands = 1; + break; + case 'B': + f_nonprint = 0; + f_octal = 1; + f_octal_escape = 0; + break; + case 'D': + f_timeformat = optarg; + break; case 'F': f_type = 1; f_slash = 0; break; + case 'G': + setenv("CLICOLOR", "", 1); + break; case 'H': fts_options |= FTS_COMFOLLOW; f_nofollow = 0; break; - case 'G': - setenv("CLICOLOR", "", 1); + case 'I': + f_noautodot = 1; break; case 'L': fts_options &= ~FTS_PHYSICAL; @@ -254,14 +281,19 @@ main(int argc, char *argv[]) case 'R': f_recursive = 1; break; - case 'a': - fts_options |= FTS_SEEDOT; - /* FALLTHROUGH */ - case 'A': - f_listdot = 1; + case 'T': + f_sectime = 1; break; - case 'I': - f_noautodot = 1; + case 'W': + f_whiteout = 1; + break; + case 'Z': + f_label = 1; + break; + case 'b': + f_nonprint = 0; + f_octal = 0; + f_octal_escape = 1; break; /* The -d option turns off the -R option. */ case 'd': @@ -309,33 +341,13 @@ main(int argc, char *argv[]) case 's': f_size = 1; break; - case 'T': - f_sectime = 1; - break; - /* The -t and -S options override each other. */ - case 't': - f_timesort = 1; - f_sizesort = 0; - break; - case 'S': - f_sizesort = 1; - f_timesort = 0; - break; - case 'W': - f_whiteout = 1; - break; - case 'b': - f_nonprint = 0; - f_octal = 0; - f_octal_escape = 1; - break; case 'w': f_nonprint = 0; f_octal = 0; f_octal_escape = 0; break; - case 'Z': - f_label = 1; + case 'y': + f_samesort = 1; break; default: case '?': @@ -849,6 +861,8 @@ label_out: d.s_size = sizelen; d.s_user = maxuser; } + if (f_thousands) /* make space for commas */ + d.s_size += (d.s_size - 1) / 3; printfcn(&d); output = 1; Modified: projects/bhyve/bin/ls/ls.h ============================================================================== --- projects/bhyve/bin/ls/ls.h Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/ls.h Tue Nov 13 07:39:05 2012 (r242954) @@ -49,12 +49,14 @@ extern int f_longform; /* long listing extern int f_octal; /* print unprintables in octal */ extern int f_octal_escape; /* like f_octal but use C escapes if possible */ extern int f_nonprint; /* show unprintables as ? */ +extern int f_samesort; /* sort time and name in same direction */ extern int f_sectime; /* print the real time for all files */ extern int f_size; /* list size in short listing */ extern int f_slash; /* append a '/' if the file is a directory */ extern int f_sortacross; /* sort across rows, not down columns */ extern int f_statustime; /* use time of last mode change */ -extern char *f_timeformat; /* user-specified time format */ +extern int f_thousands; /* show file sizes with thousands separators */ +extern char *f_timeformat; /* user-specified time format */ extern int f_notabs; /* don't use tab-separated multi-col output */ extern int f_type; /* add type character for non-regular files */ #ifdef COLORLS Modified: projects/bhyve/bin/ls/print.c ============================================================================== --- projects/bhyve/bin/ls/print.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/print.c Tue Nov 13 07:39:05 2012 (r242954) @@ -606,6 +606,10 @@ printsize(size_t width, off_t bytes) humanize_number(buf, sizeof(buf), (int64_t)bytes, "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); (void)printf("%*s ", (u_int)width, buf); + } else if (f_thousands) { /* with commas */ + /* This format assignment needed to work round gcc bug. */ + const char *format = "%*j'd "; + (void)printf(format, (u_int)width, bytes); } else (void)printf("%*jd ", (u_int)width, bytes); } Modified: projects/bhyve/bin/ls/util.c ============================================================================== --- projects/bhyve/bin/ls/util.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/ls/util.c Tue Nov 13 07:39:05 2012 (r242954) @@ -132,7 +132,7 @@ prn_printable(const char *s) * to fix this as an efficient fix would involve a lookup table. Same goes * for the rather inelegant code in prn_octal. * - * DES 1998/04/23 + * DES 1998/04/23 */ size_t @@ -175,7 +175,7 @@ prn_octal(const char *s) size_t clen; unsigned char ch; int goodchar, i, len, prtlen; - + memset(&mbs, 0, sizeof(mbs)); len = 0; while ((clen = mbrtowc(&wc, s, MB_LEN_MAX, &mbs)) != 0) { @@ -200,9 +200,9 @@ prn_octal(const char *s) for (i = 0; i < prtlen; i++) { ch = (unsigned char)s[i]; putchar('\\'); - putchar('0' + (ch >> 6)); - putchar('0' + ((ch >> 3) & 7)); - putchar('0' + (ch & 7)); + putchar('0' + (ch >> 6)); + putchar('0' + ((ch >> 3) & 7)); + putchar('0' + (ch & 7)); len += 4; } } @@ -222,9 +222,9 @@ usage(void) { (void)fprintf(stderr, #ifdef COLORLS - "usage: ls [-ABCFGHILPRSTUWZabcdfghiklmnopqrstuwx1] [-D format]" + "usage: ls [-ABCFGHILPRSTUWZabcdfghiklmnopqrstuwxy1,] [-D format]" #else - "usage: ls [-ABCFHILPRSTUWZabcdfghiklmnopqrstuwx1] [-D format]" + "usage: ls [-ABCFHILPRSTUWZabcdfghiklmnopqrstuwxy1,] [-D format]" #endif " [file ...]\n"); exit(1); Modified: projects/bhyve/bin/sh/alias.c ============================================================================== --- projects/bhyve/bin/sh/alias.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/sh/alias.c Tue Nov 13 07:39:05 2012 (r242954) @@ -68,7 +68,18 @@ setalias(const char *name, const char *v if (equal(name, ap->name)) { INTOFF; ckfree(ap->val); + /* See HACK below. */ +#ifdef notyet ap->val = savestr(val); +#else + { + size_t len = strlen(val); + ap->val = ckmalloc(len + 2); + memcpy(ap->val, val, len); + ap->val[len] = ' '; + ap->val[len+1] = '\0'; + } +#endif INTON; return; } Modified: projects/bhyve/bin/sh/input.c ============================================================================== --- projects/bhyve/bin/sh/input.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/sh/input.c Tue Nov 13 07:39:05 2012 (r242954) @@ -350,7 +350,7 @@ pungetc(void) * We handle aliases this way. */ void -pushstring(char *s, int len, void *ap) +pushstring(char *s, int len, struct alias *ap) { struct strpush *sp; @@ -365,9 +365,9 @@ pushstring(char *s, int len, void *ap) sp->prevstring = parsenextc; sp->prevnleft = parsenleft; sp->prevlleft = parselleft; - sp->ap = (struct alias *)ap; + sp->ap = ap; if (ap) - ((struct alias *)ap)->flag |= ALIASINUSE; + ap->flag |= ALIASINUSE; parsenextc = s; parsenleft = len; INTON; Modified: projects/bhyve/bin/sh/input.h ============================================================================== --- projects/bhyve/bin/sh/input.h Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/bin/sh/input.h Tue Nov 13 07:39:05 2012 (r242954) @@ -45,6 +45,7 @@ extern int parsenleft; /* number of cha extern char *parsenextc; /* next character in input buffer */ extern int init_editline; /* 0 == not setup, 1 == OK, -1 == failed */ +struct alias; struct parsefile; char *pfgets(char *, int); @@ -52,7 +53,7 @@ int pgetc(void); int preadbuffer(void); int preadateof(void); void pungetc(void); -void pushstring(char *, int, void *); +void pushstring(char *, int, struct alias *); void setinputfile(const char *, int); void setinputfd(int, int); void setinputstring(char *, int); Modified: projects/bhyve/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- projects/bhyve/cddl/contrib/opensolaris/cmd/ztest/ztest.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/cddl/contrib/opensolaris/cmd/ztest/ztest.c Tue Nov 13 07:39:05 2012 (r242954) @@ -121,8 +121,8 @@ #include <sys/fs/zfs.h> #include <libnvpair.h> -#define ZTEST_FD_DATA 3 -#define ZTEST_FD_RAND 4 +static int ztest_fd_data = -1; +static int ztest_fd_rand = -1; typedef struct ztest_shared_hdr { uint64_t zh_hdr_size; @@ -710,14 +710,17 @@ process_options(int argc, char **argv) UINT64_MAX >> 2); if (strlen(altdir) > 0) { - char cmd[MAXNAMELEN]; - char realaltdir[MAXNAMELEN]; + char *cmd; + char *realaltdir; char *bin; char *ztest; char *isa; int isalen; - (void) realpath(getexecname(), cmd); + cmd = umem_alloc(MAXPATHLEN, UMEM_NOFAIL); + realaltdir = umem_alloc(MAXPATHLEN, UMEM_NOFAIL); + + VERIFY(NULL != realpath(getexecname(), cmd)); if (0 != access(altdir, F_OK)) { ztest_dump_core = B_FALSE; fatal(B_TRUE, "invalid alternate ztest path: %s", @@ -748,6 +751,9 @@ process_options(int argc, char **argv) fatal(B_TRUE, "invalid alternate lib directory %s", zo->zo_alt_libpath); } + + umem_free(cmd, MAXPATHLEN); + umem_free(realaltdir, MAXPATHLEN); } } @@ -764,10 +770,12 @@ ztest_random(uint64_t range) { uint64_t r; + ASSERT3S(ztest_fd_rand, >=, 0); + if (range == 0) return (0); - if (read(ZTEST_FD_RAND, &r, sizeof (r)) != sizeof (r)) + if (read(ztest_fd_rand, &r, sizeof (r)) != sizeof (r)) fatal(1, "short read from /dev/urandom"); return (r % range); @@ -4703,7 +4711,18 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 if (islog) (void) rw_unlock(&ztest_name_lock); } else { + /* + * Ideally we would like to be able to randomly + * call vdev_[on|off]line without holding locks + * to force unpredictable failures but the side + * effects of vdev_[on|off]line prevent us from + * doing so. We grab the ztest_vdev_lock here to + * prevent a race between injection testing and + * aux_vdev removal. + */ + VERIFY(mutex_lock(&ztest_vdev_lock) == 0); (void) vdev_online(spa, guid0, 0, NULL); + VERIFY(mutex_unlock(&ztest_vdev_lock) == 0); } } @@ -5660,29 +5679,16 @@ ztest_init(ztest_shared_t *zs) } static void -setup_fds(void) +setup_data_fd(void) { - int fd; -#ifdef illumos - - char *tmp = tempnam(NULL, NULL); - fd = open(tmp, O_RDWR | O_CREAT, 0700); - ASSERT3U(fd, ==, ZTEST_FD_DATA); - (void) unlink(tmp); - free(tmp); -#else - char tmp[MAXPATHLEN]; - - strlcpy(tmp, ztest_opts.zo_dir, MAXPATHLEN); - strlcat(tmp, "/ztest.XXXXXX", MAXPATHLEN); - fd = mkstemp(tmp); - ASSERT3U(fd, ==, ZTEST_FD_DATA); -#endif + static char ztest_name_data[] = "/tmp/ztest.data.XXXXXX"; - fd = open("/dev/urandom", O_RDONLY); - ASSERT3U(fd, ==, ZTEST_FD_RAND); + ztest_fd_data = mkstemp(ztest_name_data); + ASSERT3S(ztest_fd_data, >=, 0); + (void) unlink(ztest_name_data); } + static int shared_data_size(ztest_shared_hdr_t *hdr) { @@ -5703,15 +5709,11 @@ setup_hdr(void) int size; ztest_shared_hdr_t *hdr; -#ifndef illumos - pwrite(ZTEST_FD_DATA, "", 1, 0); -#endif - hdr = (void *)mmap(0, P2ROUNDUP(sizeof (*hdr), getpagesize()), - PROT_READ | PROT_WRITE, MAP_SHARED, ZTEST_FD_DATA, 0); + PROT_READ | PROT_WRITE, MAP_SHARED, ztest_fd_data, 0); ASSERT(hdr != MAP_FAILED); - VERIFY3U(0, ==, ftruncate(ZTEST_FD_DATA, sizeof (ztest_shared_hdr_t))); + VERIFY3U(0, ==, ftruncate(ztest_fd_data, sizeof (ztest_shared_hdr_t))); hdr->zh_hdr_size = sizeof (ztest_shared_hdr_t); hdr->zh_opts_size = sizeof (ztest_shared_opts_t); @@ -5722,7 +5724,7 @@ setup_hdr(void) hdr->zh_ds_count = ztest_opts.zo_datasets; size = shared_data_size(hdr); - VERIFY3U(0, ==, ftruncate(ZTEST_FD_DATA, size)); + VERIFY3U(0, ==, ftruncate(ztest_fd_data, size)); (void) munmap((caddr_t)hdr, P2ROUNDUP(sizeof (*hdr), getpagesize())); } @@ -5735,14 +5737,14 @@ setup_data(void) uint8_t *buf; hdr = (void *)mmap(0, P2ROUNDUP(sizeof (*hdr), getpagesize()), - PROT_READ, MAP_SHARED, ZTEST_FD_DATA, 0); + PROT_READ, MAP_SHARED, ztest_fd_data, 0); ASSERT(hdr != MAP_FAILED); size = shared_data_size(hdr); (void) munmap((caddr_t)hdr, P2ROUNDUP(sizeof (*hdr), getpagesize())); hdr = ztest_shared_hdr = (void *)mmap(0, P2ROUNDUP(size, getpagesize()), - PROT_READ | PROT_WRITE, MAP_SHARED, ZTEST_FD_DATA, 0); + PROT_READ | PROT_WRITE, MAP_SHARED, ztest_fd_data, 0); ASSERT(hdr != MAP_FAILED); buf = (uint8_t *)hdr; @@ -5761,12 +5763,13 @@ exec_child(char *cmd, char *libpath, boo { pid_t pid; int status; - char cmdbuf[MAXPATHLEN]; + char *cmdbuf = NULL; pid = fork(); if (cmd == NULL) { - (void) strlcpy(cmdbuf, getexecname(), sizeof (cmdbuf)); + cmdbuf = umem_alloc(MAXPATHLEN, UMEM_NOFAIL); + (void) strlcpy(cmdbuf, getexecname(), MAXPATHLEN); cmd = cmdbuf; } @@ -5775,9 +5778,16 @@ exec_child(char *cmd, char *libpath, boo if (pid == 0) { /* child */ char *emptyargv[2] = { cmd, NULL }; + char fd_data_str[12]; struct rlimit rl = { 1024, 1024 }; (void) setrlimit(RLIMIT_NOFILE, &rl); + + (void) close(ztest_fd_rand); + VERIFY3U(11, >=, + snprintf(fd_data_str, 12, "%d", ztest_fd_data)); + VERIFY0(setenv("ZTEST_FD_DATA", fd_data_str, 1)); + (void) enable_extended_FILE_stdio(-1, -1); if (libpath != NULL) VERIFY(0 == setenv("LD_LIBRARY_PATH", libpath, 1)); @@ -5790,6 +5800,11 @@ exec_child(char *cmd, char *libpath, boo fatal(B_TRUE, "exec failed: %s", cmd); } + if (cmdbuf != NULL) { + umem_free(cmdbuf, MAXPATHLEN); + cmd = NULL; + } + while (waitpid(pid, &status, 0) != pid) continue; if (statusp != NULL) @@ -5854,39 +5869,41 @@ main(int argc, char **argv) char timebuf[100]; char numbuf[6]; spa_t *spa; - char cmd[MAXNAMELEN]; + char *cmd; boolean_t hasalt; - - boolean_t ischild = (0 == lseek(ZTEST_FD_DATA, 0, SEEK_CUR)); - ASSERT(ischild || errno == EBADF); + char *fd_data_str = getenv("ZTEST_FD_DATA"); (void) setvbuf(stdout, NULL, _IOLBF, 0); dprintf_setup(&argc, argv); - if (!ischild) { + ztest_fd_rand = open("/dev/urandom", O_RDONLY); + ASSERT3S(ztest_fd_rand, >=, 0); + + if (!fd_data_str) { process_options(argc, argv); - setup_fds(); + setup_data_fd(); setup_hdr(); setup_data(); bcopy(&ztest_opts, ztest_shared_opts, sizeof (*ztest_shared_opts)); } else { + ztest_fd_data = atoi(fd_data_str); setup_data(); bcopy(ztest_shared_opts, &ztest_opts, sizeof (ztest_opts)); } ASSERT3U(ztest_opts.zo_datasets, ==, ztest_shared_hdr->zh_ds_count); /* Override location of zpool.cache */ - (void) asprintf((char **)&spa_config_path, "%s/zpool.cache", - ztest_opts.zo_dir); + VERIFY3U(asprintf((char **)&spa_config_path, "%s/zpool.cache", + ztest_opts.zo_dir), !=, -1); ztest_ds = umem_alloc(ztest_opts.zo_datasets * sizeof (ztest_ds_t), UMEM_NOFAIL); zs = ztest_shared; - if (ischild) { + if (fd_data_str) { metaslab_gang_bang = ztest_opts.zo_metaslab_gang_bang; metaslab_df_alloc_threshold = zs->zs_metaslab_df_alloc_threshold; @@ -5909,7 +5926,8 @@ main(int argc, char **argv) (u_longlong_t)ztest_opts.zo_time); } - (void) strlcpy(cmd, getexecname(), sizeof (cmd)); + cmd = umem_alloc(MAXNAMELEN, UMEM_NOFAIL); + (void) strlcpy(cmd, getexecname(), MAXNAMELEN); zs->zs_do_init = B_TRUE; if (strlen(ztest_opts.zo_alt_ztest) != 0) { @@ -6050,5 +6068,7 @@ main(int argc, char **argv) kills, iters - kills, (100.0 * kills) / MAX(1, iters)); } + umem_free(cmd, MAXNAMELEN); + return (0); } Modified: projects/bhyve/cddl/lib/Makefile ============================================================================== --- projects/bhyve/cddl/lib/Makefile Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/cddl/lib/Makefile Tue Nov 13 07:39:05 2012 (r242954) @@ -19,7 +19,8 @@ _libzpool= libzpool .endif .endif -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" || ${MACHINE_CPUARCH} == "mips" +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_CPUARCH} == "mips" || ${MACHINE_CPUARCH} == "powerpc" _drti= drti _libdtrace= libdtrace .endif Modified: projects/bhyve/cddl/lib/libdtrace/Makefile ============================================================================== --- projects/bhyve/cddl/lib/libdtrace/Makefile Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/cddl/lib/libdtrace/Makefile Tue Nov 13 07:39:05 2012 (r242954) @@ -74,6 +74,10 @@ CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/ut CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/mips .PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libdtrace/mips .PATH: ${.CURDIR}/../../../sys/cddl/dev/dtrace/mips +.elif ${MACHINE_CPUARCH} == "powerpc" +CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/powerpc +.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libdtrace/powerpc +.PATH: ${.CURDIR}/../../../sys/cddl/dev/dtrace/powerpc .else # temporary hack CFLAGS+= -I${OPENSOLARIS_SYS_DISTDIR}/uts/intel Modified: projects/bhyve/cddl/usr.sbin/Makefile ============================================================================== --- projects/bhyve/cddl/usr.sbin/Makefile Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/cddl/usr.sbin/Makefile Tue Nov 13 07:39:05 2012 (r242954) @@ -25,4 +25,10 @@ _lockstat= lockstat _dtrace= dtrace .endif +.if ${MACHINE_CPUARCH} == "powerpc" +_dtrace= dtrace +_dtruss= dtruss +_lockstat= lockstat +.endif + .include <bsd.subdir.mk> Modified: projects/bhyve/contrib/gdb/gdb/c-valprint.c ============================================================================== --- projects/bhyve/contrib/gdb/gdb/c-valprint.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/contrib/gdb/gdb/c-valprint.c Tue Nov 13 07:39:05 2012 (r242954) @@ -232,9 +232,8 @@ c_val_print (struct type *type, char *va wtype = TYPE_TARGET_TYPE (type); } vt_val = value_at (wtype, vt_address, NULL); - val_print (VALUE_TYPE (vt_val), VALUE_CONTENTS (vt_val), 0, - VALUE_ADDRESS (vt_val), stream, format, - deref_ref, recurse + 1, pretty); + common_val_print (vt_val, stream, format, + deref_ref, recurse + 1, pretty); if (pretty) { fprintf_filtered (stream, "\n"); @@ -283,15 +282,8 @@ c_val_print (struct type *type, char *va unpack_pointer (lookup_pointer_type (builtin_type_void), valaddr + embedded_offset), NULL); - val_print (VALUE_TYPE (deref_val), - VALUE_CONTENTS (deref_val), - 0, - VALUE_ADDRESS (deref_val), - stream, - format, - deref_ref, - recurse, - pretty); + common_val_print (deref_val, stream, format, deref_ref, + recurse, pretty); } else fputs_filtered ("???", stream); Modified: projects/bhyve/contrib/gdb/gdb/cp-valprint.c ============================================================================== --- projects/bhyve/contrib/gdb/gdb/cp-valprint.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/contrib/gdb/gdb/cp-valprint.c Tue Nov 13 07:39:05 2012 (r242954) @@ -361,8 +361,7 @@ cp_print_value_fields (struct type *type (TYPE_FIELD_TYPE (type, i), unpack_field_as_long (type, valaddr + offset, i)); - val_print (TYPE_FIELD_TYPE (type, i), VALUE_CONTENTS (v), - 0, 0, stream, format, 0, recurse + 1, pretty); + common_val_print (v, stream, format, 0, recurse + 1, pretty); } } else @@ -426,8 +425,7 @@ cp_print_value_fields (struct type *type v = value_from_pointer (lookup_pointer_type (builtin_type_unsigned_long), *(unsigned long *) (valaddr + offset)); - val_print (VALUE_TYPE (v), VALUE_CONTENTS (v), 0, 0, - stream, format, 0, recurse + 1, pretty); + common_val_print (v, stream, format, 0, recurse + 1, pretty); fields_seen = 1; if (vtblprint) @@ -791,8 +789,7 @@ cp_print_hpacc_virtual_table_entries (st VALUE_TYPE (vf) = VALUE_TYPE (v); /* make it a pointer */ /* print out the entry */ - val_print (VALUE_TYPE (vf), VALUE_CONTENTS (vf), 0, 0, - stream, format, 0, recurse + 1, pretty); + common_val_print (vf, stream, format, 0, recurse + 1, pretty); field_physname = TYPE_FN_FIELD_PHYSNAME (TYPE_FN_FIELDLIST1 (type, fn), oi); /* pai: (temp) FIXME Maybe this should be DMGL_ANSI */ Modified: projects/bhyve/contrib/gdb/gdb/dwarf2loc.c ============================================================================== --- projects/bhyve/contrib/gdb/gdb/dwarf2loc.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/contrib/gdb/gdb/dwarf2loc.c Tue Nov 13 07:39:05 2012 (r242954) @@ -492,9 +492,14 @@ loclist_read_variable (struct symbol *sy data = find_location_expression (dlbaton, &size, frame ? get_frame_pc (frame) : 0); if (data == NULL) - error ("Variable \"%s\" is not available.", SYMBOL_NATURAL_NAME (symbol)); - - val = dwarf2_evaluate_loc_desc (symbol, frame, data, size, dlbaton->objfile); + { + val = allocate_value (SYMBOL_TYPE (symbol)); + VALUE_LVAL (val) = not_lval; + VALUE_OPTIMIZED_OUT (val) = 1; + } + else + val = dwarf2_evaluate_loc_desc (symbol, frame, data, size, + dlbaton->objfile); return val; } Modified: projects/bhyve/contrib/gdb/gdb/f-valprint.c ============================================================================== --- projects/bhyve/contrib/gdb/gdb/f-valprint.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/contrib/gdb/gdb/f-valprint.c Tue Nov 13 07:39:05 2012 (r242954) @@ -444,15 +444,8 @@ f_val_print (struct type *type, char *va unpack_pointer (lookup_pointer_type (builtin_type_void), valaddr + embedded_offset), NULL); - val_print (VALUE_TYPE (deref_val), - VALUE_CONTENTS (deref_val), - 0, - VALUE_ADDRESS (deref_val), - stream, - format, - deref_ref, - recurse, - pretty); + common_val_print (deref_val, stream, format, deref_ref, recurse, + pretty); } else fputs_filtered ("???", stream); Modified: projects/bhyve/contrib/gdb/gdb/jv-valprint.c ============================================================================== --- projects/bhyve/contrib/gdb/gdb/jv-valprint.c Tue Nov 13 07:34:46 2012 (r242953) +++ projects/bhyve/contrib/gdb/gdb/jv-valprint.c Tue Nov 13 07:39:05 2012 (r242954) @@ -189,8 +189,7 @@ java_value_print (struct value *val, str else fprintf_filtered (stream, "%d..%d: ", i, i + reps - 1); - val_print (VALUE_TYPE (v), VALUE_CONTENTS (v), 0, 0, - stream, format, 2, 1, pretty); + common_val_print (v, stream, format, 2, 1, pretty); things_printed++; i += reps; @@ -242,8 +241,7 @@ java_value_print (struct value *val, str return 0; } - return (val_print (type, VALUE_CONTENTS (val), 0, address, - stream, format, 1, 0, pretty)); + return common_val_print (val, stream, format, 1, 0, pretty); } *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211130739.qAD7d6mh009111>