From owner-svn-src-projects@FreeBSD.ORG Sun Jul 22 14:47:17 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 442CB106566C; Sun, 22 Jul 2012 14:47:17 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2B8198FC14; Sun, 22 Jul 2012 14:47:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6MElHEh095875; Sun, 22 Jul 2012 14:47:17 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6MElGoV095846; Sun, 22 Jul 2012 14:47:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201207221447.q6MElGoV095846@svn.freebsd.org> From: Attilio Rao Date: Sun, 22 Jul 2012 14:47:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238694 - in projects/fuse: . bin/cat bin/ps bin/stty cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma cddl/contrib... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 14:47:17 -0000 Author: attilio Date: Sun Jul 22 14:47:15 2012 New Revision: 238694 URL: http://svn.freebsd.org/changeset/base/238694 Log: MFC Added: projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ - copied from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/include/ projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh - copied unchanged from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh projects/fuse/share/dtrace/hotopen - copied unchanged from r238693, head/share/dtrace/hotopen projects/fuse/share/dtrace/nfsattrstats - copied unchanged from r238693, head/share/dtrace/nfsattrstats projects/fuse/share/examples/libusb20/ - copied from r238693, head/share/examples/libusb20/ projects/fuse/tools/tools/ath/athratestats/ - copied from r238693, head/tools/tools/ath/athratestats/ Deleted: projects/fuse/sys/vm/vm_contig.c Modified: projects/fuse/ObsoleteFiles.inc projects/fuse/bin/cat/cat.c projects/fuse/bin/ps/print.c projects/fuse/bin/stty/extern.h projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h projects/fuse/etc/mtree/BSD.usr.dist projects/fuse/etc/rc.d/bgfsck projects/fuse/etc/rc.d/ip6addrctl projects/fuse/etc/rc.d/jail projects/fuse/gnu/usr.bin/groff/tmac/Makefile projects/fuse/lib/libc/net/getaddrinfo.c projects/fuse/lib/libc/sys/fcntl.2 projects/fuse/lib/libc/sys/fcntl.c projects/fuse/lib/libedit/makelist projects/fuse/lib/libedit/tokenizer.c projects/fuse/lib/libthr/thread/thr_getschedparam.c projects/fuse/lib/libthr/thread/thr_info.c projects/fuse/lib/libthr/thread/thr_setprio.c projects/fuse/lib/libthr/thread/thr_setschedparam.c projects/fuse/sbin/hastd/hast.conf.5 projects/fuse/sbin/ipfw/ipfw.8 projects/fuse/share/dtrace/Makefile projects/fuse/share/examples/Makefile projects/fuse/share/man/man4/gpib.4 projects/fuse/share/man/man5/moduli.5 projects/fuse/share/man/man9/ieee80211_node.9 projects/fuse/share/man/man9/kernel_mount.9 projects/fuse/share/man/man9/malloc.9 projects/fuse/sys/amd64/amd64/fpu.c projects/fuse/sys/amd64/amd64/machdep.c projects/fuse/sys/amd64/amd64/pmap.c projects/fuse/sys/amd64/amd64/ptrace_machdep.c projects/fuse/sys/amd64/amd64/trap.c projects/fuse/sys/amd64/amd64/vm_machdep.c projects/fuse/sys/amd64/include/fpu.h projects/fuse/sys/amd64/include/pcpu.h projects/fuse/sys/arm/arm/nexus.c projects/fuse/sys/arm/at91/at91.c projects/fuse/sys/arm/econa/econa.c projects/fuse/sys/arm/s3c2xx0/s3c24x0.c projects/fuse/sys/arm/xscale/i8134x/i81342.c projects/fuse/sys/arm/xscale/pxa/pxa_obio.c projects/fuse/sys/cam/scsi/scsi_all.c projects/fuse/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/fuse/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/fuse/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/fuse/sys/compat/ia32/ia32_sysvec.c projects/fuse/sys/compat/ia32/ia32_util.h projects/fuse/sys/conf/files projects/fuse/sys/contrib/pf/net/pf_if.c projects/fuse/sys/dev/aac/aac_disk.c projects/fuse/sys/dev/ata/ata-all.c projects/fuse/sys/dev/ata/ata-lowlevel.c projects/fuse/sys/dev/ath/ath_hal/ah.h projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/fuse/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/fuse/sys/dev/ath/ath_rate/amrr/amrr.c projects/fuse/sys/dev/ath/ath_rate/onoe/onoe.c projects/fuse/sys/dev/ath/ath_rate/sample/sample.c projects/fuse/sys/dev/ath/ath_rate/sample/sample.h projects/fuse/sys/dev/ath/if_ath.c projects/fuse/sys/dev/ath/if_ath_beacon.c projects/fuse/sys/dev/ath/if_ath_rx.c projects/fuse/sys/dev/ath/if_ath_rx_edma.c projects/fuse/sys/dev/ath/if_ath_sysctl.c projects/fuse/sys/dev/ath/if_ath_tx.c projects/fuse/sys/dev/ath/if_athioctl.h projects/fuse/sys/dev/ath/if_athrate.h projects/fuse/sys/dev/ath/if_athvar.h projects/fuse/sys/dev/mps/mps_sas_lsi.c projects/fuse/sys/dev/sdhci/sdhci.c projects/fuse/sys/dev/sym/sym_hipd.c projects/fuse/sys/dev/usb/controller/xhci_pci.c projects/fuse/sys/dev/usb/controller/xhcireg.h projects/fuse/sys/dev/usb/serial/u3g.c projects/fuse/sys/dev/usb/usbdevs projects/fuse/sys/fs/smbfs/smbfs_node.c projects/fuse/sys/geom/geom.h projects/fuse/sys/geom/geom_subr.c projects/fuse/sys/geom/part/g_part.c projects/fuse/sys/i386/i386/ptrace_machdep.c projects/fuse/sys/i386/i386/trap.c projects/fuse/sys/i386/include/npx.h projects/fuse/sys/i386/isa/npx.c projects/fuse/sys/kern/imgact_aout.c projects/fuse/sys/kern/imgact_elf.c projects/fuse/sys/kern/kern_descrip.c projects/fuse/sys/kern/kern_malloc.c projects/fuse/sys/kern/kern_proc.c projects/fuse/sys/kern/kern_tc.c projects/fuse/sys/mips/mips/pmap.c projects/fuse/sys/net/if_stf.c projects/fuse/sys/netinet/in_var.h projects/fuse/sys/netinet/ip_output.c projects/fuse/sys/netinet/sctp_asconf.c projects/fuse/sys/netinet/sctp_output.c projects/fuse/sys/netinet/sctp_pcb.c projects/fuse/sys/netinet/sctp_uio.h projects/fuse/sys/netinet/sctp_usrreq.c projects/fuse/sys/netinet/sctputil.c projects/fuse/sys/netinet/tcp_output.c projects/fuse/sys/netinet6/sctp6_usrreq.c projects/fuse/sys/sys/fcntl.h projects/fuse/sys/sys/user.h projects/fuse/sys/vm/memguard.c projects/fuse/sys/vm/memguard.h projects/fuse/sys/vm/vm_kern.c projects/fuse/sys/vm/vm_map.h projects/fuse/sys/vm/vm_page.c projects/fuse/sys/vm/vm_pageout.c projects/fuse/sys/vm/vm_pageout.h projects/fuse/sys/vm/vm_reserv.c projects/fuse/tools/tools/ath/Makefile projects/fuse/tools/tools/ath/common/diag.h projects/fuse/usr.bin/Makefile projects/fuse/usr.bin/du/du.1 projects/fuse/usr.bin/du/du.c projects/fuse/usr.bin/netstat/Makefile projects/fuse/usr.bin/netstat/sctp.c projects/fuse/usr.bin/procstat/procstat.1 projects/fuse/usr.bin/procstat/procstat_vm.c projects/fuse/usr.sbin/ipfwpcap/ipfwpcap.8 projects/fuse/usr.sbin/lpr/common_source/common.c projects/fuse/usr.sbin/wpa/hostapd/hostapd.8 Directory Properties: projects/fuse/ (props changed) projects/fuse/cddl/contrib/opensolaris/ (props changed) projects/fuse/lib/libc/ (props changed) projects/fuse/sbin/ (props changed) projects/fuse/sbin/ipfw/ (props changed) projects/fuse/share/man/man4/ (props changed) projects/fuse/sys/ (props changed) projects/fuse/sys/cddl/contrib/opensolaris/ (props changed) projects/fuse/sys/conf/ (props changed) projects/fuse/sys/contrib/pf/ (props changed) projects/fuse/usr.bin/procstat/ (props changed) Modified: projects/fuse/ObsoleteFiles.inc ============================================================================== --- projects/fuse/ObsoleteFiles.inc Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/ObsoleteFiles.inc Sun Jul 22 14:47:15 2012 (r238694) @@ -1358,6 +1358,11 @@ OLD_FILES+=usr/share/man/man2/kse_thr_in OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 +# 20080225: bsdar/bsdranlib rename to ar/ranlib +OLD_FILES+=usr/bin/bsdar +OLD_FILES+=usr/bin/bsdranlib +OLD_FILES+=usr/share/man/man1/bsdar.1.gz +OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal Modified: projects/fuse/bin/cat/cat.c ============================================================================== --- projects/fuse/bin/cat/cat.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/bin/cat/cat.c Sun Jul 22 14:47:15 2012 (r238694) @@ -58,11 +58,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include -#include static int bflag, eflag, nflag, sflag, tflag, vflag; static int rval; @@ -77,16 +77,20 @@ static void raw_cat(int); static int udom_open(const char *path, int flags); #endif -/* Memory strategy threshold, in pages: if physmem is larger then this, use a - * large buffer */ -#define PHYSPAGES_THRESHOLD (32*1024) - -/* Maximum buffer size in bytes - do not allow it to grow larger than this */ -#define BUFSIZE_MAX (2*1024*1024) - -/* Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS */ -#define BUFSIZE_SMALL (MAXPHYS) +/* + * Memory strategy threshold, in pages: if physmem is larger than this, + * use a large buffer. + */ +#define PHYSPAGES_THRESHOLD (32 * 1024) + +/* Maximum buffer size in bytes - do not allow it to grow larger than this. */ +#define BUFSIZE_MAX (2 * 1024 * 1024) + +/* + * Small (default) buffer size in bytes. It's inefficient for this to be + * smaller than MAXPHYS. + */ +#define BUFSIZE_SMALL (MAXPHYS) int main(int argc, char *argv[]) @@ -144,13 +148,12 @@ usage(void) static void scanfiles(char *argv[], int cooked) { - int i = 0; + int fd, i; char *path; FILE *fp; + i = 0; while ((path = argv[i]) != NULL || i == 0) { - int fd; - if (path == NULL || strcmp(path, "-") == 0) { filename = "stdin"; fd = STDIN_FILENO; @@ -257,16 +260,16 @@ raw_cat(int rfd) wfd = fileno(stdout); if (buf == NULL) { if (fstat(wfd, &sbuf)) - err(1, "%s", filename); + err(1, "stdout"); if (S_ISREG(sbuf.st_mode)) { /* If there's plenty of RAM, use a large copy buffer */ if (sysconf(_SC_PHYS_PAGES) > PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS*8); + bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); else bsize = BUFSIZE_SMALL; } else - bsize = MAX(sbuf.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); + bsize = MAX(sbuf.st_blksize, + (blksize_t)sysconf(_SC_PAGESIZE)); if ((buf = malloc(bsize)) == NULL) err(1, "malloc() failure of IO buffer"); } @@ -327,7 +330,7 @@ udom_open(const char *path, int flags) break; } } - return(fd); + return (fd); } #endif Modified: projects/fuse/bin/ps/print.c ============================================================================== --- projects/fuse/bin/ps/print.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/bin/ps/print.c Sun Jul 22 14:47:15 2012 (r238694) @@ -387,12 +387,13 @@ started(KINFO *k, VARENT *ve __unused) size_t buflen = 100; char *buf; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); if (use_ampm < 0) use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); then = k->ki_p->ki_start.tv_sec; @@ -415,12 +416,13 @@ lstarted(KINFO *k, VARENT *ve __unused) char *buf; size_t buflen = 100; + if (!k->ki_valid) + return (NULL); + buf = malloc(buflen); if (buf == NULL) errx(1, "malloc failed"); - if (!k->ki_valid) - return (NULL); then = k->ki_p->ki_start.tv_sec; (void)strftime(buf, buflen, "%c", localtime(&then)); return (buf); Modified: projects/fuse/bin/stty/extern.h ============================================================================== --- projects/fuse/bin/stty/extern.h Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/bin/stty/extern.h Sun Jul 22 14:47:15 2012 (r238694) @@ -40,6 +40,6 @@ int ksearch(char ***, struct info *); int msearch(char ***, struct info *); void optlist(void); void print(struct termios *, struct winsize *, int, enum FMT); -void usage(void); +void usage(void) __dead2; extern struct cchar cchars1[], cchars2[]; Copied: projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh (from r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh Sun Jul 22 14:47:15 2012 (r238694, copy of r238693, head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pragma/tst.libdepsepdir.ksh) @@ -0,0 +1,76 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright (c) 2011, Joyent Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Test to catch that we properly look for libraries dependencies in +# our full library parth +# + +if [ $# != 1 ]; then + echo expected one argument: '<'dtrace-path'>' + exit 2 +fi + +libdira=${TMPDIR:-/tmp}/libdepa.$$ +libdirb=${TMPDIR:-/tmp}/libdepb.$$ +libdirc=${TMPDIR:-/tmp}/libdepc.$$ +dtrace=$1 + +setup_libs() +{ + mkdir $libdira + mkdir $libdirb + mkdir $libdirc + cat > $libdira/liba.$$.d < $libdirb/libb.$$.d < $libdirb/libc.$$.d < $libdirb/libd.$$.d < $libdirc/libe.$$.d < $libdirc/libf.$$.d <dt_lib_dep); dld != NULL; + dld = dt_list_next(dld)) { + end = strrchr(dld->dtld_library, '/'); + /* dt_lib_depend_add ensures this */ + assert(end != NULL); + if (strcmp(end + 1, dp->d_name) == 0) + break; + } + + if (dld != NULL) { + dt_dprintf("skipping library %s, already processed " + "library with the same name: %s", dp->d_name, + dld->dtld_library); + continue; + } + dtp->dt_filetag = fname; if (dt_lib_depend_add(dtp, &dtp->dt_lib_dep, fname) != 0) - goto err; + return (-1); /* preserve dt_errno */ rv = dt_compile(dtp, DT_CTX_DPROG, DTRACE_PROBESPEC_NAME, NULL, @@ -2203,7 +2221,7 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons if (rv != NULL && dtp->dt_errno && (dtp->dt_errno != EDT_COMPILER || dtp->dt_errtag != dt_errtag(D_PRAGMA_DEPEND))) - goto err; + return (-1); /* preserve dt_errno */ if (dtp->dt_errno) dt_dprintf("error parsing library %s: %s\n", @@ -2214,6 +2232,27 @@ dt_load_libs_dir(dtrace_hdl_t *dtp, cons } (void) closedir(dirp); + + return (0); +} + +/* + * Perform a topological sorting of all the libraries found across the entire + * dt_lib_path. Once sorted, compile each one in topological order to cache its + * inlines and translators, etc. We silently ignore any missing directories and + * other files found therein. We only fail (and thereby fail dt_load_libs()) if + * we fail to compile a library and the error is something other than #pragma D + * depends_on. Dependency errors are silently ignored to permit a library + * directory to contain libraries which may not be accessible depending on our + * privileges. + */ +static int +dt_load_libs_sort(dtrace_hdl_t *dtp) +{ + dtrace_prog_t *pgp; + FILE *fp; + dt_lib_depend_t *dld; + /* * Finish building the graph containing the library dependencies * and perform a topological sort to generate an ordered list @@ -2274,7 +2313,14 @@ dt_load_libs(dtrace_hdl_t *dtp) dtp->dt_cflags |= DTRACE_C_NOLIBS; - for (dirp = dt_list_next(&dtp->dt_lib_path); + /* + * /usr/lib/dtrace is always at the head of the list. The rest of the + * list is specified in the precedence order the user requested. Process + * everything other than the head first. DTRACE_C_NOLIBS has already + * been spcified so dt_vopen will ensure that there is always one entry + * in dt_lib_path. + */ + for (dirp = dt_list_next(dt_list_next(&dtp->dt_lib_path)); dirp != NULL; dirp = dt_list_next(dirp)) { if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { dtp->dt_cflags &= ~DTRACE_C_NOLIBS; @@ -2282,6 +2328,16 @@ dt_load_libs(dtrace_hdl_t *dtp) } } + /* Handle /usr/lib/dtrace */ + dirp = dt_list_next(&dtp->dt_lib_path); + if (dt_load_libs_dir(dtp, dirp->dir_path) != 0) { + dtp->dt_cflags &= ~DTRACE_C_NOLIBS; + return (-1); /* errno is set for us */ + } + + if (dt_load_libs_sort(dtp) < 0) + return (-1); /* errno is set for us */ + return (0); } Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c Sun Jul 22 14:47:15 2012 (r238694) @@ -21,7 +21,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2011, Joyent Inc. All rights reserved. */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -31,9 +31,13 @@ #if defined(sun) #include #endif +#include #include #include +#include +#include + #include #include #include @@ -201,6 +205,29 @@ dt_pragma_binding(const char *prname, dt dtp->dt_globals->dh_defer = &dt_pragma_apply; } +static void +dt_pragma_depends_finddep(dtrace_hdl_t *dtp, const char *lname, char *lib, + size_t len) +{ + dt_dirpath_t *dirp; + struct stat sbuf; + int found = 0; + + for (dirp = dt_list_next(&dtp->dt_lib_path); dirp != NULL; + dirp = dt_list_next(dirp)) { + (void) snprintf(lib, len, "%s/%s", dirp->dir_path, lname); + + if (stat(lib, &sbuf) == 0) { + found = 1; + break; + } + } + + if (!found) + xyerror(D_PRAGMA_DEPEND, + "failed to find dependency in libpath: %s", lname); +} + /* * The #pragma depends_on directive can be used to express a dependency on a * module, provider or library which if not present will cause processing to @@ -230,16 +257,13 @@ dt_pragma_depends(const char *prname, dt if (yypcb->pcb_cflags & DTRACE_C_CTL) { assert(dtp->dt_filetag != NULL); - /* - * We have the file we are working on in dtp->dt_filetag - * so find that node and add the dependency in. - */ + dt_pragma_depends_finddep(dtp, nnp->dn_string, lib, + sizeof (lib)); + dld = dt_lib_depend_lookup(&dtp->dt_lib_dep, dtp->dt_filetag); assert(dld != NULL); - (void) snprintf(lib, sizeof (lib), "%s%s", - dld->dtld_libpath, nnp->dn_string); if ((dt_lib_depend_add(dtp, &dld->dtld_dependencies, lib)) != 0) { xyerror(D_PRAGMA_DEPEND, @@ -261,8 +285,8 @@ dt_pragma_depends(const char *prname, dt dtp->dt_filetag); assert(dld != NULL); - (void) snprintf(lib, sizeof (lib), "%s%s", - dld->dtld_libpath, nnp->dn_string); + dt_pragma_depends_finddep(dtp, nnp->dn_string, lib, + sizeof (lib)); dld = dt_lib_depend_lookup(&dtp->dt_lib_dep_sorted, lib); assert(dld != NULL); Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c Sun Jul 22 14:47:15 2012 (r238694) @@ -29,23 +29,6 @@ #include #include -#include - -/* - * Create a copy of string s, but only duplicate the first n bytes. - */ -char * -strndup(const char *s, size_t n) -{ - char *s2 = malloc(n + 1); - - if (s2 == NULL) - longjmp(yypcb->pcb_jmpbuf, EDT_NOMEM); - - (void) strncpy(s2, s, n); - s2[n] = '\0'; - return (s2); -} /* * Transform string s inline, converting each embedded C escape sequence string Modified: projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h ============================================================================== --- projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h Sun Jul 22 14:47:15 2012 (r238694) @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -20,14 +19,12 @@ * CDDL HEADER END */ /* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. */ #ifndef _DT_STRING_H #define _DT_STRING_H -#pragma ident "%Z%%M% %I% %E% SMI" #include #include @@ -36,7 +33,6 @@ extern "C" { #endif -extern char *strndup(const char *, size_t); extern size_t stresc2chr(char *); extern char *strchr2esc(const char *, size_t); extern const char *strbasename(const char *); Modified: projects/fuse/etc/mtree/BSD.usr.dist ============================================================================== --- projects/fuse/etc/mtree/BSD.usr.dist Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/mtree/BSD.usr.dist Sun Jul 22 14:47:15 2012 (r238694) @@ -271,6 +271,8 @@ .. .. .. + libusb20 + .. libvgl .. mdoc Modified: projects/fuse/etc/rc.d/bgfsck ============================================================================== --- projects/fuse/etc/rc.d/bgfsck Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/rc.d/bgfsck Sun Jul 22 14:47:15 2012 (r238694) @@ -17,7 +17,7 @@ stop_cmd=":" bgfsck_start() { if [ -z "${rc_force}" ]; then - background_fsck_delay=${background_fsck_delay:=0} + background_fsck_delay=${background_fsck_delay:-0} else background_fsck_delay=0 fi Modified: projects/fuse/etc/rc.d/ip6addrctl ============================================================================== --- projects/fuse/etc/rc.d/ip6addrctl Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/rc.d/ip6addrctl Sun Jul 22 14:47:15 2012 (r238694) @@ -83,6 +83,9 @@ ip6addrctl_start() # Backward compatibility when ipv6_prefer=NO ip6addrctl_prefer_ipv4 ;; + [Nn][Oo][Nn][Ee]) + ip6addrctl flush >/dev/null 2>&1 + ;; *) warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \ " \"ipv4_prefer\" is used instead." Modified: projects/fuse/etc/rc.d/jail ============================================================================== --- projects/fuse/etc/rc.d/jail Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/etc/rc.d/jail Sun Jul 22 14:47:15 2012 (r238694) @@ -641,7 +641,7 @@ jail_start() i=$((i + 1)) done - eval ${_setfib} jail ${_flags} -n ${_jail} -i ${_rootdir} ${_hostname} \ + eval ${_setfib} jail -n ${_jail} ${_flags} -i ${_rootdir} ${_hostname} \ \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \ e_wild & 0x01) #define WILD_SOCKTYPE(ex) ((ex)->e_wild & 0x02) @@ -164,21 +163,21 @@ struct explore { static const struct explore explore[] = { #if 0 - { PF_LOCAL, ANY, ANY, NULL, 0x01 }, + { PF_LOCAL, ANY, ANY, 0x01 }, #endif #ifdef INET6 - { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, - { PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, - { PF_INET6, SOCK_STREAM, IPPROTO_SCTP, "sctp", 0x03 }, - { PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP, "sctp", 0x07 }, - { PF_INET6, SOCK_RAW, ANY, NULL, 0x05 }, -#endif - { PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, - { PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, - { PF_INET, SOCK_STREAM, IPPROTO_SCTP, "sctp", 0x03 }, - { PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP, "sctp", 0x07 }, - { PF_INET, SOCK_RAW, ANY, NULL, 0x05 }, - { -1, 0, 0, NULL, 0 }, + { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, 0x07 }, + { PF_INET6, SOCK_STREAM, IPPROTO_TCP, 0x07 }, + { PF_INET6, SOCK_STREAM, IPPROTO_SCTP, 0x03 }, + { PF_INET6, SOCK_SEQPACKET, IPPROTO_SCTP, 0x07 }, + { PF_INET6, SOCK_RAW, ANY, 0x05 }, +#endif + { PF_INET, SOCK_DGRAM, IPPROTO_UDP, 0x07 }, + { PF_INET, SOCK_STREAM, IPPROTO_TCP, 0x07 }, + { PF_INET, SOCK_STREAM, IPPROTO_SCTP, 0x03 }, + { PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP, 0x07 }, + { PF_INET, SOCK_RAW, ANY, 0x05 }, + { -1, 0, 0, 0 }, }; #ifdef INET6 @@ -693,6 +692,8 @@ get_addrselectpolicy(struct policyhead * if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &l, NULL, 0) < 0) return (0); + if (l == 0) + return (0); if ((buf = malloc(l)) == NULL) return (0); if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buf, &l, NULL, 0) < 0) { Modified: projects/fuse/lib/libc/sys/fcntl.2 ============================================================================== --- projects/fuse/lib/libc/sys/fcntl.2 Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libc/sys/fcntl.2 Sun Jul 22 14:47:15 2012 (r238694) @@ -28,7 +28,7 @@ .\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94 .\" $FreeBSD$ .\" -.Dd January 28, 2012 +.Dd July 18, 2012 .Dt FCNTL 2 .Os .Sh NAME @@ -54,7 +54,7 @@ Depending on the value of .Fn fcntl can take an additional third argument .Fa "int arg" . -.Bl -tag -width F_GETOWNX +.Bl -tag -width F_DUPFD_CLOEXEC .It Dv F_DUPFD Return a new descriptor as follows: .Pp @@ -73,11 +73,22 @@ Same access mode (read, write or read/wr Same file status flags (i.e., both file descriptors share the same file status flags). .It -The close-on-exec flag associated with the new file descriptor -is set to remain open across +The close-on-exec flag +.Dv FD_CLOEXEC +associated with the new file descriptor is cleared, so the file descriptor is +to remain open across .Xr execve 2 system calls. .El +.It Dv F_DUPFD_CLOEXEC +Like +.Dv F_DUPFD , +but the +.Dv FD_CLOEXEC +flag associated with the new file descriptor is set, so the file descriptor +is closed when +.Xr execve 2 +system call executes. .It Dv F_DUP2FD It is functionally equivalent to .Bd -literal -offset indent Modified: projects/fuse/lib/libc/sys/fcntl.c ============================================================================== --- projects/fuse/lib/libc/sys/fcntl.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libc/sys/fcntl.c Sun Jul 22 14:47:15 2012 (r238694) @@ -41,7 +41,7 @@ __fcntl_compat(int fd, int cmd, ...) { va_list args; long arg; - struct oflock ofl; + struct __oflock ofl; struct flock *flp; int res; Modified: projects/fuse/lib/libedit/makelist ============================================================================== --- projects/fuse/lib/libedit/makelist Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libedit/makelist Sun Jul 22 14:47:15 2012 (r238694) @@ -1,5 +1,5 @@ #!/bin/sh - -# $NetBSD: makelist,v 1.10 2005/08/08 14:04:49 christos Exp $ +# $NetBSD: makelist,v 1.11 2005/10/22 16:45:03 christos Exp $ # $FreeBSD$ # # Copyright (c) 1992, 1993 @@ -141,7 +141,7 @@ case $FLAG in # -fh) cat $FILES | $AWK '/el_action_t/ { print $3 }' | \ - sort | LC_ALL=C tr 'a-z' 'A-Z' | $AWK ' + sort | LC_ALL=C tr '[:lower:]' '[:upper:]' | $AWK ' BEGIN { printf("/* Automatically generated file, do not edit */\n"); printf("#ifndef _h_fcns_c\n#define _h_fcns_c\n"); Modified: projects/fuse/lib/libedit/tokenizer.c ============================================================================== --- projects/fuse/lib/libedit/tokenizer.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libedit/tokenizer.c Sun Jul 22 14:47:15 2012 (r238694) @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $NetBSD: tokenizer.c,v 1.14 2003/12/05 13:37:48 lukem Exp $ + * $NetBSD: tokenizer.c,v 1.15 2009/02/15 21:55:23 christos Exp $ */ #if !defined(lint) && !defined(SCCSID) @@ -198,7 +198,7 @@ tok_line(Tokenizer *tok, const LineInfo ptr = ""; if (ptr == line->cursor) { cc = tok->argc; - co = tok->wptr - tok->wstart; + co = (int)(tok->wptr - tok->wstart); } switch (*ptr) { case '\'': @@ -417,7 +417,7 @@ tok_line(Tokenizer *tok, const LineInfo tok_line_outok: if (cc == -1 && co == -1) { cc = tok->argc; - co = tok->wptr - tok->wstart; + co = (int)(tok->wptr - tok->wstart); } if (cursorc != NULL) *cursorc = cc; Modified: projects/fuse/lib/libthr/thread/thr_getschedparam.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_getschedparam.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_getschedparam.c Sun Jul 22 14:47:15 2012 (r238694) @@ -48,30 +48,21 @@ _pthread_getschedparam(pthread_t pthread struct sched_param *param) { struct pthread *curthread = _get_curthread(); - int ret; + int ret = 0; if (policy == NULL || param == NULL) return (EINVAL); - if (pthread == curthread) { - /* - * Avoid searching the thread list when it is the current - * thread. - */ + /* + * Avoid searching the thread list when it is the current + * thread. + */ + if (pthread == curthread) THR_LOCK(curthread); - *policy = curthread->attr.sched_policy; - param->sched_priority = curthread->attr.prio; - THR_UNLOCK(curthread); - ret = 0; - } - /* Find the thread in the list of active threads. */ - else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) - == 0) { - THR_THREAD_LOCK(curthread, pthread); - *policy = pthread->attr.sched_policy; - param->sched_priority = pthread->attr.prio; - THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); - } + else if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0))) + return (ret); + *policy = pthread->attr.sched_policy; + param->sched_priority = pthread->attr.prio; + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } Modified: projects/fuse/lib/libthr/thread/thr_info.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_info.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_info.c Sun Jul 22 14:47:15 2012 (r238694) @@ -51,16 +51,12 @@ _pthread_set_name_np(pthread_t thread, c if (thr_set_name(thread->tid, name)) ret = errno; } else { - if (_thr_ref_add(curthread, thread, 0) == 0) { - THR_THREAD_LOCK(curthread, thread); + if ((ret=_thr_find_thread(curthread, thread, 0)) == 0) { if (thread->state != PS_DEAD) { if (thr_set_name(thread->tid, name)) ret = errno; } THR_THREAD_UNLOCK(curthread, thread); - _thr_ref_delete(curthread, thread); - } else { - ret = ESRCH; } } #if 0 Modified: projects/fuse/lib/libthr/thread/thr_setprio.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_setprio.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_setprio.c Sun Jul 22 14:47:15 2012 (r238694) @@ -45,38 +45,22 @@ _pthread_setprio(pthread_t pthread, int int ret; param.sched_priority = prio; - if (pthread == curthread) { + if (pthread == curthread) THR_LOCK(curthread); - if (curthread->attr.sched_policy == SCHED_OTHER || - curthread->attr.prio == prio) { - curthread->attr.prio = prio; - ret = 0; - } else { - ret = _thr_setscheduler(curthread->tid, - curthread->attr.sched_policy, ¶m); - if (ret == -1) - ret = errno; - else - curthread->attr.prio = prio; - } - THR_UNLOCK(curthread); - } else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) - == 0) { - THR_THREAD_LOCK(curthread, pthread); - if (pthread->attr.sched_policy == SCHED_OTHER || - pthread->attr.prio == prio) { + else if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0))) + return (ret); + if (pthread->attr.sched_policy == SCHED_OTHER || + pthread->attr.prio == prio) { + pthread->attr.prio = prio; + ret = 0; + } else { + ret = _thr_setscheduler(pthread->tid, + pthread->attr.sched_policy, ¶m); + if (ret == -1) + ret = errno; + else pthread->attr.prio = prio; - ret = 0; - } else { - ret = _thr_setscheduler(pthread->tid, - curthread->attr.sched_policy, ¶m); - if (ret == -1) - ret = errno; - else - pthread->attr.prio = prio; - } - THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); } + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } Modified: projects/fuse/lib/libthr/thread/thr_setschedparam.c ============================================================================== --- projects/fuse/lib/libthr/thread/thr_setschedparam.c Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/lib/libthr/thread/thr_setschedparam.c Sun Jul 22 14:47:15 2012 (r238694) @@ -53,42 +53,25 @@ _pthread_setschedparam(pthread_t pthread struct pthread *curthread = _get_curthread(); int ret; - if (pthread == curthread) { + if (pthread == curthread) THR_LOCK(curthread); - if (curthread->attr.sched_policy == policy && - (policy == SCHED_OTHER || - curthread->attr.prio == param->sched_priority)) { - pthread->attr.prio = param->sched_priority; - THR_UNLOCK(curthread); - return (0); - } - ret = _thr_setscheduler(curthread->tid, policy, param); - if (ret == -1) - ret = errno; - else { - curthread->attr.sched_policy = policy; - curthread->attr.prio = param->sched_priority; - } - THR_UNLOCK(curthread); - } else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) - == 0) { - THR_THREAD_LOCK(curthread, pthread); - if (pthread->attr.sched_policy == policy && - (policy == SCHED_OTHER || - pthread->attr.prio == param->sched_priority)) { - pthread->attr.prio = param->sched_priority; - THR_THREAD_UNLOCK(curthread, pthread); - return (0); - } - ret = _thr_setscheduler(pthread->tid, policy, param); - if (ret == -1) - ret = errno; - else { - pthread->attr.sched_policy = policy; - pthread->attr.prio = param->sched_priority; - } + else if ((ret = _thr_find_thread(curthread, pthread, + /*include dead*/0)) != 0) + return (ret); + if (pthread->attr.sched_policy == policy && + (policy == SCHED_OTHER || + pthread->attr.prio == param->sched_priority)) { + pthread->attr.prio = param->sched_priority; THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); + return (0); } + ret = _thr_setscheduler(pthread->tid, policy, param); + if (ret == -1) + ret = errno; + else { + pthread->attr.sched_policy = policy; + pthread->attr.prio = param->sched_priority; + } + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } Modified: projects/fuse/sbin/hastd/hast.conf.5 ============================================================================== --- projects/fuse/sbin/hastd/hast.conf.5 Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/sbin/hastd/hast.conf.5 Sun Jul 22 14:47:15 2012 (r238694) @@ -63,7 +63,7 @@ checksum compression timeout exec -metaflush "on" | "off" +metaflush on | off pidfile on { @@ -89,14 +89,14 @@ resource { local timeout exec - metaflush "on" | "off" + metaflush on | off on { # Resource-node section name # Required local - metaflush "on" | "off" + metaflush on | off # Required remote source @@ -106,7 +106,7 @@ resource { name # Required local - metaflush "on" | "off" + metaflush on | off # Required remote source Modified: projects/fuse/sbin/ipfw/ipfw.8 ============================================================================== --- projects/fuse/sbin/ipfw/ipfw.8 Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/sbin/ipfw/ipfw.8 Sun Jul 22 14:47:15 2012 (r238694) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 9, 2012 +.Dd July 16, 2012 .Dt IPFW 8 .Os .Sh NAME @@ -2967,9 +2967,11 @@ This will let the firewall install dynam those connection which start with a regular SYN packet coming from the inside of our network. Dynamic rules are checked when encountering the first -.Cm check-state -or +occurrence of a +.Cm check-state , .Cm keep-state +or +.Cm limit rule. A .Cm check-state Modified: projects/fuse/share/dtrace/Makefile ============================================================================== --- projects/fuse/share/dtrace/Makefile Sun Jul 22 14:41:35 2012 (r238693) +++ projects/fuse/share/dtrace/Makefile Sun Jul 22 14:47:15 2012 (r238694) @@ -12,9 +12,9 @@ SUBDIR= ${_toolkit} _toolkit= toolkit .endif -SCRIPTS= nfsclienttime +SCRIPTS= nfsclienttime hotopen -SCRIPTSDIR= ${SHAREDIR}/dtrace/ +SCRIPTSDIR= ${SHAREDIR}/dtrace NO_OBJ= Copied: projects/fuse/share/dtrace/hotopen (from r238693, head/share/dtrace/hotopen) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/fuse/share/dtrace/hotopen Sun Jul 22 14:47:15 2012 (r238694, copy of r238693, head/share/dtrace/hotopen) @@ -0,0 +1,58 @@ +#!/bin/sh +# +# Copyright (c) 2012 George V. Neville-Neil +# All rights reserved. *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***