From owner-svn-src-user@freebsd.org Mon Aug 22 01:41:05 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25E2BBC1DE9 for ; Mon, 22 Aug 2016 01:41:05 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DD93C13AB; Mon, 22 Aug 2016 01:41:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7M1f4T3076795; Mon, 22 Aug 2016 01:41:04 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7M1f4M8076794; Mon, 22 Aug 2016 01:41:04 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608220141.u7M1f4M8076794@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 22 Aug 2016 01:41:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304577 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 01:41:05 -0000 Author: markj Date: Mon Aug 22 01:41:03 2016 New Revision: 304577 URL: https://svnweb.freebsd.org/changeset/base/304577 Log: Rework the background laundering target after r304442. Now that we launder less frequently and at a rate proportional to the ratio of dirty to clean inactive pages, we want to process more pages during each background laundering run. Launder a constant number of pages, derived from the amount of system memory. Cap the rate at which pages are laundered to 4MB/s and add a check to ensure we don't launder too much on larger-memory systems if page daemon wakeups are infrequent and the number of dirty pages is large. Discussed with: alc Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Mon Aug 22 01:28:02 2016 (r304576) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Mon Aug 22 01:41:03 2016 (r304577) @@ -231,10 +231,15 @@ SYSCTL_INT(_vm, OID_AUTO, act_scan_laund CTLFLAG_RW, &act_scan_laundry_weight, 0, "weight given to clean vs. dirty pages in active queue scans"); -static u_int bkgrd_launder_max = 2048; +static u_int bkgrd_launder_rate = 4096; +SYSCTL_UINT(_vm, OID_AUTO, bkgrd_launder_rate, + CTLFLAG_RW, &bkgrd_launder_rate, 0, + "background laundering rate, in kilobytes per second"); + +static u_int bkgrd_launder_max = 20 * 1024; SYSCTL_UINT(_vm, OID_AUTO, bkgrd_launder_max, CTLFLAG_RW, &bkgrd_launder_max, 0, - "maximum background laundering rate, in pages per second"); + "background laundering cap in kilobytes"); #define VM_PAGEOUT_PAGE_COUNT 16 int vm_pageout_page_count = VM_PAGEOUT_PAGE_COUNT; @@ -1095,9 +1100,10 @@ static void vm_pageout_laundry_worker(void *arg) { struct vm_domain *domain; - uint64_t nclean, nlaundry; + uint64_t nclean, ndirty; u_int last_launder, wakeups; - int cycle, domidx, launder, prev_shortfall, shortfall, target; + int cycle, domidx, launder, prev_shortfall, shortfall; + int starting_target, target; domidx = (uintptr_t)arg; domain = &vm_dom[domidx]; @@ -1166,50 +1172,40 @@ vm_pageout_laundry_worker(void *arg) * * The background laundering threshold is not a constant. * Instead, it is a slowly growing function of the number of - * page daemon wakeups since the last laundering. + * page daemon wakeups since the last laundering. Thus, as the + * ratio of dirty to clean inactive pages grows, the amount of + * memory pressure required to trigger laundering decreases. */ nclean = vm_cnt.v_inactive_count + vm_cnt.v_free_count; - nlaundry = vm_cnt.v_laundry_count; + ndirty = vm_cnt.v_laundry_count; if (target == 0 && wakeups != last_launder && - nlaundry * isqrt(wakeups - last_launder) >= nclean) { + ndirty * isqrt(wakeups - last_launder) >= nclean) { last_launder = wakeups; - - /* - * The pagedaemon has woken up at least once since the - * last background laundering run and we're above the - * dirty page threshold. Launder some pages to balance - * the inactive and laundry queues. We attempt to - * finish within one second. - */ - cycle = VM_LAUNDER_INTERVAL; - - /* - * Set our target to that of the pagedaemon, scaled by - * the relative lengths of the inactive and laundry - * queues. Divide by a fudge factor as well: we don't - * want to reclaim dirty pages at the same rate as clean - * pages. - */ - target = vm_cnt.v_free_target - - vm_pageout_wakeup_thresh; - /* Avoid division by zero. */ - if (nclean == 0) - nclean = 1; - target = nlaundry * (u_int)target / nclean / 10; - if (target == 0) - target = 1; - - /* - * Make sure we don't exceed the background laundering - * threshold. - */ - target = min(target, bkgrd_launder_max); + target = starting_target = + (vm_cnt.v_free_target - vm_cnt.v_free_min) / 10; } + /* + * We have a non-zero background laundering target. If we've + * laundered up to our maximum without observing a page daemon + * wakeup, just stop. This is a safety belt that ensures we + * don't launder an excessive amount if memory pressure is low + * and the ratio of dirty to clean pages is large. Otherwise, + * proceed at the background laundering rate. + */ if (target > 0) { - if (cycle != 0) - launder = target / cycle--; - else - target = 0; + if (last_launder == wakeups) { + if (starting_target - target >= + bkgrd_launder_max * PAGE_SIZE / 1024) + target = 0; + } else { + last_launder = wakeups; + starting_target = target; + } + + launder = bkgrd_launder_rate * PAGE_SIZE / 1024 / + VM_LAUNDER_INTERVAL; + if (launder < target) + launder = target; } dolaundry: @@ -1601,6 +1597,10 @@ drop_page: if (page_shortage <= 0) vm_page_deactivate(m); else { + if (m->dirty == 0 && + m->object->ref_count != 0 && + pmap_is_modified(m)) + vm_cnt.v_postponed_launderings++; if (m->dirty == 0) { vm_page_deactivate(m); page_shortage -= From owner-svn-src-user@freebsd.org Mon Aug 22 01:43:52 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BA09BBC1ED4 for ; Mon, 22 Aug 2016 01:43:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5B8BF171B; Mon, 22 Aug 2016 01:43:52 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7M1hpLV079602; Mon, 22 Aug 2016 01:43:51 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7M1hmxJ079565; Mon, 22 Aug 2016 01:43:48 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608220143.u7M1hmxJ079565@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 22 Aug 2016 01:43:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304578 - in user/alc/PQ_LAUNDRY: . cddl/contrib/opensolaris/lib/libzfs/common contrib/dma contrib/llvm/lib/Target/ARM/MCTargetDesc etc lib/clang lib/libc/sys libexec/dma release/doc/en... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 01:43:52 -0000 Author: markj Date: Mon Aug 22 01:43:47 2016 New Revision: 304578 URL: https://svnweb.freebsd.org/changeset/base/304578 Log: MFH r304577 Added: user/alc/PQ_LAUNDRY/sys/compat/cloudabi/cloudabi_vdso.lds - copied unchanged from r304577, head/sys/compat/cloudabi/cloudabi_vdso.lds user/alc/PQ_LAUNDRY/sys/compat/cloudabi32/ - copied from r304577, head/sys/compat/cloudabi32/ user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi32_types.h - copied unchanged from r304577, head/sys/contrib/cloudabi/cloudabi32_types.h user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S - copied unchanged from r304577, head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S - copied unchanged from r304577, head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/syscalls32.master - copied unchanged from r304577, head/sys/contrib/cloudabi/syscalls32.master user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/syscalls64.master - copied unchanged from r304577, head/sys/contrib/cloudabi/syscalls64.master Deleted: user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/ie.4 user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/wl.4 user/alc/PQ_LAUNDRY/share/man/man4/scd.4 user/alc/PQ_LAUNDRY/share/man/man4/si.4 user/alc/PQ_LAUNDRY/share/man/man4/spic.4 user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_vdso.lds.s user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/syscalls.master user/alc/PQ_LAUNDRY/sys/dev/ie/ user/alc/PQ_LAUNDRY/sys/dev/scd/ user/alc/PQ_LAUNDRY/sys/dev/si/ user/alc/PQ_LAUNDRY/sys/dev/wds/ user/alc/PQ_LAUNDRY/sys/dev/wl/ user/alc/PQ_LAUNDRY/sys/i386/isa/spic.c user/alc/PQ_LAUNDRY/sys/i386/isa/spicreg.h user/alc/PQ_LAUNDRY/sys/modules/ie/ user/alc/PQ_LAUNDRY/sys/modules/scd/ user/alc/PQ_LAUNDRY/sys/modules/si/ user/alc/PQ_LAUNDRY/sys/modules/wds/ user/alc/PQ_LAUNDRY/sys/modules/wl/ user/alc/PQ_LAUNDRY/tools/kerneldoc/subsys/Doxyfile-dev_mcd user/alc/PQ_LAUNDRY/tools/kerneldoc/subsys/Doxyfile-dev_scd user/alc/PQ_LAUNDRY/tools/kerneldoc/subsys/Doxyfile-dev_si user/alc/PQ_LAUNDRY/tools/kerneldoc/subsys/Doxyfile-dev_wds user/alc/PQ_LAUNDRY/tools/kerneldoc/subsys/Doxyfile-dev_wl user/alc/PQ_LAUNDRY/usr.sbin/sicontrol/ user/alc/PQ_LAUNDRY/usr.sbin/wlconfig/ Modified: user/alc/PQ_LAUNDRY/ObsoleteFiles.inc user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/alc/PQ_LAUNDRY/contrib/dma/VERSION user/alc/PQ_LAUNDRY/contrib/dma/dma-mbox-create.c user/alc/PQ_LAUNDRY/contrib/dma/dma.c user/alc/PQ_LAUNDRY/contrib/dma/dma.h user/alc/PQ_LAUNDRY/contrib/dma/dns.c user/alc/PQ_LAUNDRY/contrib/dma/local.c user/alc/PQ_LAUNDRY/contrib/dma/net.c user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp user/alc/PQ_LAUNDRY/etc/devd.conf user/alc/PQ_LAUNDRY/lib/clang/freebsd_cc_version.h user/alc/PQ_LAUNDRY/lib/libc/sys/aio_fsync.2 user/alc/PQ_LAUNDRY/lib/libc/sys/aio_mlock.2 user/alc/PQ_LAUNDRY/lib/libc/sys/aio_read.2 user/alc/PQ_LAUNDRY/lib/libc/sys/aio_write.2 user/alc/PQ_LAUNDRY/libexec/dma/Makefile.inc user/alc/PQ_LAUNDRY/release/doc/en_US.ISO8859-1/hardware/article.xml user/alc/PQ_LAUNDRY/sbin/ipfw/ipfw.8 user/alc/PQ_LAUNDRY/share/man/man4/Makefile user/alc/PQ_LAUNDRY/share/man/man4/alc.4 user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/Makefile user/alc/PQ_LAUNDRY/sys/amd64/conf/NOTES user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner user/alc/PQ_LAUNDRY/sys/arm/allwinner/if_emac.c user/alc/PQ_LAUNDRY/sys/arm/arm/elf_trampoline.c user/alc/PQ_LAUNDRY/sys/boot/common/boot.c user/alc/PQ_LAUNDRY/sys/boot/common/bootstrap.h user/alc/PQ_LAUNDRY/sys/boot/common/commands.c user/alc/PQ_LAUNDRY/sys/boot/common/interp.c user/alc/PQ_LAUNDRY/sys/boot/common/ls.c user/alc/PQ_LAUNDRY/sys/boot/common/module.c user/alc/PQ_LAUNDRY/sys/boot/efi/loader/arch/amd64/framebuffer.c user/alc/PQ_LAUNDRY/sys/boot/fdt/fdt_loader_cmd.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi/cloudabi_clock.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi/cloudabi_thread.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/Makefile user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_fd.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_poll.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_proto.h user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_sock.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_syscall.h user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_syscalls.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_sysent.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_systrace_args.c user/alc/PQ_LAUNDRY/sys/compat/cloudabi64/cloudabi64_util.h user/alc/PQ_LAUNDRY/sys/conf/NOTES user/alc/PQ_LAUNDRY/sys/conf/files user/alc/PQ_LAUNDRY/sys/conf/files.amd64 user/alc/PQ_LAUNDRY/sys/conf/files.arm64 user/alc/PQ_LAUNDRY/sys/conf/files.i386 user/alc/PQ_LAUNDRY/sys/conf/options user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi64_types.h user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_types.h user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_types_common.h user/alc/PQ_LAUNDRY/sys/dev/ahci/ahci_pci.c user/alc/PQ_LAUNDRY/sys/dev/alc/if_alc.c user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcreg.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/common.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/t4_hw.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c user/alc/PQ_LAUNDRY/sys/dev/ixl/if_ixlv.c user/alc/PQ_LAUNDRY/sys/dev/pci/pci.c user/alc/PQ_LAUNDRY/sys/dev/usb/input/ukbd.c user/alc/PQ_LAUNDRY/sys/i386/conf/NOTES user/alc/PQ_LAUNDRY/sys/kern/kern_fork.c user/alc/PQ_LAUNDRY/sys/kern/kern_prot.c user/alc/PQ_LAUNDRY/sys/kern/sys_process.c user/alc/PQ_LAUNDRY/sys/kern/vfs_vnops.c user/alc/PQ_LAUNDRY/sys/mips/mips/elf_machdep.c user/alc/PQ_LAUNDRY/sys/modules/Makefile user/alc/PQ_LAUNDRY/sys/modules/cloudabi64/Makefile user/alc/PQ_LAUNDRY/sys/netinet/ip_ipsec.c user/alc/PQ_LAUNDRY/sys/netinet/sctp_usrreq.c user/alc/PQ_LAUNDRY/sys/netinet/sctputil.c user/alc/PQ_LAUNDRY/sys/netinet/udp_usrreq.c user/alc/PQ_LAUNDRY/sys/netinet6/ip6_ipsec.c user/alc/PQ_LAUNDRY/sys/netinet6/udp6_usrreq.c user/alc/PQ_LAUNDRY/sys/pc98/conf/NOTES user/alc/PQ_LAUNDRY/sys/powerpc/booke/locore.S user/alc/PQ_LAUNDRY/sys/security/audit/audit.h user/alc/PQ_LAUNDRY/sys/security/audit/audit_bsm.c user/alc/PQ_LAUNDRY/sys/sparc64/conf/NOTES user/alc/PQ_LAUNDRY/sys/sys/proc.h user/alc/PQ_LAUNDRY/targets/pseudo/userland/Makefile.depend user/alc/PQ_LAUNDRY/tools/build/mk/OptionalObsoleteFiles.inc user/alc/PQ_LAUNDRY/usr.bin/truss/syscalls.c user/alc/PQ_LAUNDRY/usr.sbin/Makefile.amd64 user/alc/PQ_LAUNDRY/usr.sbin/Makefile.i386 user/alc/PQ_LAUNDRY/usr.sbin/cron/cron/cron.8 user/alc/PQ_LAUNDRY/usr.sbin/cron/cron/cron.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/cddl/ (props changed) user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/ (props changed) user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/alc/PQ_LAUNDRY/contrib/dma/ (props changed) user/alc/PQ_LAUNDRY/contrib/llvm/ (props changed) Modified: user/alc/PQ_LAUNDRY/ObsoleteFiles.inc ============================================================================== --- user/alc/PQ_LAUNDRY/ObsoleteFiles.inc Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/ObsoleteFiles.inc Mon Aug 22 01:43:47 2016 (r304578) @@ -38,6 +38,20 @@ # xargs -n1 | sort | uniq -d; # done +# 20160819: Remove ie(4) +OLD_FILES+=usr/share/man/man4/i386/ie.4.gz +# 20160819: Remove spic(4) +OLD_FILES+=usr/share/man/man4/spic.4.gz +# 20160819: Remove wl(4) and wlconfig(8) +OLD_FILES+=usr/share/man/man4/i386/wl.4.gz +OLD_FILES+=usr/sbin/wlconfig +OLD_FILES+=usr/share/man/man8/i386/wlconfig.8.gz +# 20160819: Remove si(4) and sicontrol(8) +OLD_FILES+=usr/share/man/man4/si.4.gz +OLD_FILES+=usr/sbin/sicontrol +OLD_FILES+=usr/share/man/man8/sicontrol.8.gz +# 20160819: Remove scd(4) +OLD_FILES+=usr/share/man/man4/scd.4.gz # 20160815: Remove mcd(4) OLD_FILES+=usr/share/man/man4/mcd.4.gz # 20160703: POSIXify locales with variants Modified: user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Aug 22 01:43:47 2016 (r304578) @@ -1630,12 +1630,17 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvl assert(cl_idx < nvl_len); /* * We don't want to unmount & remount the dataset when changing - * its canmount property to 'on' or 'noauto'. We only use - * the changelist logic to unmount when setting canmount=off. + * its canmount property. We only use the changelist logic to + * unmount when setting canmount=off for a mounted filesystem + * or when setting canmount=on for an unmounted filesystem. + * For all other changes to canmount property the filesystem + * remains the same. */ if (prop != ZFS_PROP_CANMOUNT || (fnvpair_value_uint64(elem) == ZFS_CANMOUNT_OFF && - zfs_is_mounted(zhp, NULL))) { + zfs_is_mounted(zhp, NULL)) || + (fnvpair_value_uint64(elem) == ZFS_CANMOUNT_ON && + !zfs_is_mounted(zhp, NULL))) { cls[cl_idx] = changelist_gather(zhp, prop, 0, 0); if (cls[cl_idx] == NULL) goto error; Modified: user/alc/PQ_LAUNDRY/contrib/dma/VERSION ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/VERSION Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/VERSION Mon Aug 22 01:43:47 2016 (r304578) @@ -1 +1 @@ -v0.10 +v0.11 Modified: user/alc/PQ_LAUNDRY/contrib/dma/dma-mbox-create.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/dma-mbox-create.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/dma-mbox-create.c Mon Aug 22 01:43:47 2016 (r304578) @@ -142,7 +142,7 @@ main(int argc, char **argv) logfail(EX_CANTCREAT, "cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user); } - f = open(fn, O_RDONLY|O_CREAT, 0600); + f = open(fn, O_RDONLY|O_CREAT|O_NOFOLLOW, 0600); if (f < 0) logfail(EX_NOINPUT, "cannt open mbox `%s'", fn); Modified: user/alc/PQ_LAUNDRY/contrib/dma/dma.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/dma.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/dma.c Mon Aug 22 01:43:47 2016 (r304578) @@ -321,7 +321,7 @@ deliver(struct qitem *it) snprintf(errmsg, sizeof(errmsg), "unknown bounce reason"); retry: - syslog(LOG_INFO, "trying delivery"); + syslog(LOG_INFO, "<%s> trying delivery", it->addr); if (it->remote) error = deliver_remote(it); @@ -331,7 +331,7 @@ retry: switch (error) { case 0: delqueue(it); - syslog(LOG_INFO, "delivery successful"); + syslog(LOG_INFO, "<%s> delivery successful", it->addr); exit(EX_OK); case 1: Modified: user/alc/PQ_LAUNDRY/contrib/dma/dma.h ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/dma.h Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/dma.h Mon Aug 22 01:43:47 2016 (r304578) @@ -49,7 +49,7 @@ #define VERSION "DragonFly Mail Agent " DMA_VERSION #define BUF_SIZE 2048 -#define ERRMSG_SIZE 200 +#define ERRMSG_SIZE 1024 #define USERNAME_SIZE 50 #define MIN_RETRY 300 /* 5 minutes */ #define MAX_RETRY (3*60*60) /* retry at least every 3 hours */ Modified: user/alc/PQ_LAUNDRY/contrib/dma/dns.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/dns.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/dns.c Mon Aug 22 01:43:47 2016 (r304578) @@ -34,6 +34,7 @@ */ #include +#include #include #include #include Modified: user/alc/PQ_LAUNDRY/contrib/dma/local.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/local.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/local.c Mon Aug 22 01:43:47 2016 (r304578) @@ -196,7 +196,7 @@ retry: goto out; } - error = snprintf(line, sizeof(line), "%sFrom %s\t%s", newline, sender, ctime(&now)); + error = snprintf(line, sizeof(line), "%sFrom %s %s", newline, sender, ctime(&now)); if (error < 0 || (size_t)error >= sizeof(line)) { syslog(LOG_NOTICE, "local delivery deferred: can not write header: %m"); goto out; Modified: user/alc/PQ_LAUNDRY/contrib/dma/net.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/dma/net.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/dma/net.c Mon Aug 22 01:43:47 2016 (r304578) @@ -372,11 +372,13 @@ deliver_to_host(struct qitem *it, struct host->host, host->addr, c, neterr); \ snprintf(errmsg, sizeof(errmsg), "%s [%s] did not like our %s:\n%s", \ host->host, host->addr, c, neterr); \ - return (-1); \ + error = -1; \ + goto out; \ } else if (res != exp) { \ syslog(LOG_NOTICE, "remote delivery deferred: %s [%s] failed after %s: %s", \ host->host, host->addr, c, neterr); \ - return (1); \ + error = 1; \ + goto out; \ } /* Check first reply from remote host */ @@ -426,7 +428,8 @@ deliver_to_host(struct qitem *it, struct syslog(LOG_ERR, "remote delivery failed:" " SMTP login failed: %m"); snprintf(errmsg, sizeof(errmsg), "SMTP login to %s failed", host->host); - return (-1); + error = -1; + goto out; } /* SMTP login is not available, so try without */ else if (error > 0) { Modified: user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp Mon Aug 22 01:43:47 2016 (r304578) @@ -90,6 +90,7 @@ const MCFixupKindInfo &ARMAsmBackend::ge {"fixup_arm_movw_lo16", 0, 20, 0}, {"fixup_t2_movt_hi16", 0, 20, 0}, {"fixup_t2_movw_lo16", 0, 20, 0}, + {"fixup_arm_mod_imm", 0, 12, 0}, }; const static MCFixupKindInfo InfosBE[ARM::NumTargetFixupKinds] = { // This table *must* be in the order that the fixup_* kinds are defined in @@ -133,6 +134,7 @@ const MCFixupKindInfo &ARMAsmBackend::ge {"fixup_arm_movw_lo16", 12, 20, 0}, {"fixup_t2_movt_hi16", 12, 20, 0}, {"fixup_t2_movw_lo16", 12, 20, 0}, + {"fixup_arm_mod_imm", 20, 12, 0}, }; if (Kind < FirstTargetFixupKind) @@ -624,6 +626,13 @@ unsigned ARMAsmBackend::adjustFixupValue return Value; } + case ARM::fixup_arm_mod_imm: + Value = ARM_AM::getSOImmVal(Value); + if (Ctx && Value >> 12) { + Ctx->reportError(Fixup.getLoc(), "out of range immediate fixup value"); + return 0; + } + return Value; } } @@ -690,6 +699,7 @@ static unsigned getFixupKindNumBytes(uns case FK_Data_2: case ARM::fixup_arm_thumb_br: case ARM::fixup_arm_thumb_cb: + case ARM::fixup_arm_mod_imm: return 2; case ARM::fixup_arm_pcrel_10_unscaled: @@ -766,6 +776,7 @@ static unsigned getFixupKindContainerSiz case ARM::fixup_arm_movw_lo16: case ARM::fixup_t2_movt_hi16: case ARM::fixup_t2_movw_lo16: + case ARM::fixup_arm_mod_imm: // Instruction size is 4 bytes. return 4; } Modified: user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h Mon Aug 22 01:43:47 2016 (r304578) @@ -100,6 +100,9 @@ enum Fixups { fixup_t2_movt_hi16, // :upper16: fixup_t2_movw_lo16, // :lower16: + // fixup_arm_mod_imm - Fixup for mod_imm + fixup_arm_mod_imm, + // Marker LastTargetFixupKind, NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind Modified: user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp Mon Aug 22 01:43:47 2016 (r304578) @@ -312,12 +312,8 @@ public: // Support for fixups (MCFixup) if (MO.isExpr()) { const MCExpr *Expr = MO.getExpr(); - // In instruction code this value always encoded as lowest 12 bits, - // so we don't have to perform any specific adjustments. - // Due to requirements of relocatable records we have to use FK_Data_4. - // See ARMELFObjectWriter::ExplicitRelSym and - // ARMELFObjectWriter::GetRelocTypeInner for more details. - MCFixupKind Kind = MCFixupKind(FK_Data_4); + // Fixups resolve to plain values that need to be encoded. + MCFixupKind Kind = MCFixupKind(ARM::fixup_arm_mod_imm); Fixups.push_back(MCFixup::create(0, Expr, Kind, MI.getLoc())); return 0; } Modified: user/alc/PQ_LAUNDRY/etc/devd.conf ============================================================================== --- user/alc/PQ_LAUNDRY/etc/devd.conf Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/etc/devd.conf Mon Aug 22 01:43:47 2016 (r304578) @@ -19,8 +19,8 @@ options { # Setup some shorthand for regex that we use later in the file. #XXX Yes, these are gross -- imp set scsi-controller-regex - "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\ - esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\ + "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amr|bt|ciss|ct|dpt|\ + esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm)\ [0-9]+"; set wifi-driver-regex "(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|\ Modified: user/alc/PQ_LAUNDRY/lib/clang/freebsd_cc_version.h ============================================================================== --- user/alc/PQ_LAUNDRY/lib/clang/freebsd_cc_version.h Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/lib/clang/freebsd_cc_version.h Mon Aug 22 01:43:47 2016 (r304578) @@ -1,3 +1,3 @@ /* $FreeBSD$ */ -#define FREEBSD_CC_VERSION 1200001 +#define FREEBSD_CC_VERSION 1200002 Modified: user/alc/PQ_LAUNDRY/lib/libc/sys/aio_fsync.2 ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/sys/aio_fsync.2 Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/lib/libc/sys/aio_fsync.2 Mon Aug 22 01:43:47 2016 (r304578) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_FSYNC 2 .Os .Sh NAME @@ -74,16 +74,14 @@ the call returns without having enqueued .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS -The asynchronous I/O Control Block structure pointed to by +The Asynchronous I/O Control Block structure pointed to by .Fa iocb must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -91,9 +89,8 @@ should be zeroed before the .Fn aio_fsync call to avoid passing bogus context information to the kernel. .Pp -Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +Modification of the Asynchronous I/O Control Block structure is not allowed +while the request is queued. .Sh RETURN VALUES .Rv -std aio_fsync .Sh ERRORS Modified: user/alc/PQ_LAUNDRY/lib/libc/sys/aio_mlock.2 ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/sys/aio_mlock.2 Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/lib/libc/sys/aio_mlock.2 Mon Aug 22 01:43:47 2016 (r304578) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_MLOCK 2 .Os .Sh NAME @@ -67,7 +67,7 @@ then the call returns without having enq .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS @@ -77,8 +77,6 @@ and the buffer that the .Fa iocb->aio_buf member of that structure references must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -87,8 +85,8 @@ should be zeroed before the call to avoid passing bogus context information to the kernel. .Pp Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +memory mapping described by the virtual address range are not allowed +while the request is queued. .Sh RETURN VALUES .Rv -std aio_mlock .Sh ERRORS Modified: user/alc/PQ_LAUNDRY/lib/libc/sys/aio_read.2 ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/sys/aio_read.2 Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/lib/libc/sys/aio_read.2 Mon Aug 22 01:43:47 2016 (r304578) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_READ 2 .Os .Sh NAME @@ -82,7 +82,7 @@ not be referenced after the request is e .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS @@ -92,8 +92,6 @@ and the buffer that the .Fa iocb->aio_buf member of that structure references must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -102,8 +100,7 @@ should be zeroed before the call to avoid passing bogus context information to the kernel. .Pp Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +buffer contents are not allowed while the request is queued. .Pp If the file offset in .Fa iocb->aio_offset Modified: user/alc/PQ_LAUNDRY/lib/libc/sys/aio_write.2 ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/sys/aio_write.2 Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/lib/libc/sys/aio_write.2 Mon Aug 22 01:43:47 2016 (r304578) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_WRITE 2 .Os .Sh NAME @@ -88,7 +88,7 @@ be referenced after the request is enque .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS @@ -98,8 +98,6 @@ and the buffer that the .Fa iocb->aio_buf member of that structure references must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -108,8 +106,7 @@ should be zeroed before the system call to avoid passing bogus context information to the kernel. .Pp Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +buffer contents are not allowed while the request is queued. .Pp If the file offset in .Fa iocb->aio_offset Modified: user/alc/PQ_LAUNDRY/libexec/dma/Makefile.inc ============================================================================== --- user/alc/PQ_LAUNDRY/libexec/dma/Makefile.inc Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/libexec/dma/Makefile.inc Mon Aug 22 01:43:47 2016 (r304578) @@ -7,7 +7,7 @@ DMA_SOURCES= ${.CURDIR}/../../../contrib CFLAGS+= -I${DMA_SOURCES} \ -DHAVE_REALLOCF -DHAVE_STRLCPY -DHAVE_GETPROGNAME \ -DCONF_PATH='"/etc/dma"' \ - -DLIBEXEC_PATH='"/usr/libexec"' -DDMA_VERSION='"v0.10"' \ + -DLIBEXEC_PATH='"/usr/libexec"' -DDMA_VERSION='"v0.11+"' \ -DDMA_ROOT_USER='"mailnull"' \ -DDMA_GROUP='"mail"' BINGRP= mail Modified: user/alc/PQ_LAUNDRY/release/doc/en_US.ISO8859-1/hardware/article.xml ============================================================================== --- user/alc/PQ_LAUNDRY/release/doc/en_US.ISO8859-1/hardware/article.xml Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/release/doc/en_US.ISO8859-1/hardware/article.xml Mon Aug 22 01:43:47 2016 (r304578) @@ -751,9 +751,6 @@ &hwlist.vpo; - [&arch.i386;] The wds(4) driver supports the WD7000 SCSI - controller. - With all supported SCSI controllers, full support is provided for SCSI-I, SCSI-II, and SCSI-III peripherals, including hard disks, optical disks, tape drives (including @@ -775,23 +772,9 @@ - [&arch.i386;] Sony proprietary interface (all models) - (&man.scd.4;) - - - ATAPI IDE interface (&man.acd.4;) - - [&arch.i386;] The following device is unmaintained: - - - - Mitsumi proprietary CD-ROM interface (all models) - (&man.mcd.4;) - - @@ -853,8 +836,6 @@ &hwlist.hme; - &hwlist.ie; - &hwlist.igb; &hwlist.ipheth; @@ -1040,9 +1021,6 @@ Intersil PRISM-2.5, Intersil Prism-3, and Symbol Spectrum24 chipsets (&man.wi.4; driver) - [&arch.i386;] NCR / AT&T / Lucent Technologies WaveLan - T1-speed ISA/radio LAN cards (&man.wl.4; driver) - [&arch.i386;, &arch.amd64;] Intel PRO/Wireless 3945ABG MiniPCI network adapters (&man.wpi.4; driver) @@ -1238,13 +1216,6 @@ &hwlist.rc; - [&arch.i386;, &arch.amd64;] Specialix SI/XIO/SX multiport - serial cards, with both the older SIHOST2.x and the - enhanced (transputer based, aka JET) host cards - (ISA, EISA and PCI) are supported. Note that the newer SX+ - PCI cards are not currently supported. (&man.si.4; - driver) - [&arch.pc98;] Internel serial interfaces (&man.sio.4; driver) Modified: user/alc/PQ_LAUNDRY/sbin/ipfw/ipfw.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/ipfw/ipfw.8 Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sbin/ipfw/ipfw.8 Mon Aug 22 01:43:47 2016 (r304578) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 13, 2016 +.Dd August 21, 2016 .Dt IPFW 8 .Os .Sh NAME @@ -1588,8 +1588,7 @@ Matches IPv4 packets whose precedence fi .It Cm ipsec Matches packets that have IPSEC history associated with them (i.e., the packet comes encapsulated in IPSEC, the kernel -has IPSEC support and IPSEC_FILTERTUNNEL option, and can correctly -decapsulate it). +has IPSEC support, and can correctly decapsulate it). .Pp Note that specifying .Cm ipsec Modified: user/alc/PQ_LAUNDRY/share/man/man4/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/share/man/man4/Makefile Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/share/man/man4/Makefile Mon Aug 22 01:43:47 2016 (r304578) @@ -441,7 +441,6 @@ MAN= aac.4 \ sbp.4 \ sbp_targ.4 \ scc.4 \ - scd.4 \ sched_4bsd.4 \ sched_ule.4 \ screen.4 \ @@ -454,7 +453,6 @@ MAN= aac.4 \ sf.4 \ ${_sfxge.4} \ sge.4 \ - si.4 \ siba.4 \ siftr.4 \ siis.4 \ @@ -498,7 +496,6 @@ MAN= aac.4 \ snd_via82c686.4 \ snd_vibes.4 \ snp.4 \ - spic.4 \ ${_spkr.4} \ splash.4 \ sppp.4 \ Modified: user/alc/PQ_LAUNDRY/share/man/man4/alc.4 ============================================================================== --- user/alc/PQ_LAUNDRY/share/man/man4/alc.4 Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/share/man/man4/alc.4 Mon Aug 22 01:43:47 2016 (r304578) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 8, 2014 +.Dd August 22, 2016 .Dt ALC 4 .Os .Sh NAME @@ -122,6 +122,8 @@ Atheros AR8171 PCI Express Gigabit Ether Atheros AR8172 PCI Express Fast Ethernet controller .It Killer E2200 Gigabit Ethernet controller +.It +Killer E2400 Gigabit Ethernet controller .El .Sh LOADER TUNABLES Tunables can be set at the Modified: user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/Makefile Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/Makefile Mon Aug 22 01:43:47 2016 (r304578) @@ -16,7 +16,6 @@ MAN= aic.4 \ fe.4 \ glxiic.4 \ glxsb.4 \ - ie.4 \ longrun.4 \ mse.4 \ npx.4 \ @@ -31,8 +30,7 @@ MAN= aic.4 \ streams.4 \ svr4.4 \ vpd.4 \ - vx.4 \ - wl.4 + vx.4 MLINKS= CPU_ELAN.4 CPU_SOEKRIS.4 MLINKS+=pae.4 PAE.4 Modified: user/alc/PQ_LAUNDRY/sys/amd64/conf/NOTES ============================================================================== --- user/alc/PQ_LAUNDRY/sys/amd64/conf/NOTES Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/amd64/conf/NOTES Mon Aug 22 01:43:47 2016 (r304578) @@ -542,7 +542,6 @@ hint.pbio.0.port="0x360" device smbios device vpd device asmc -device si device tpm device padlock_rng # VIA Padlock RNG device rdrand_rng # Intel Bull Mountain RNG Modified: user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner ============================================================================== --- user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner Mon Aug 22 01:43:47 2016 (r304578) @@ -15,7 +15,6 @@ arm/allwinner/aw_if_dwc.c optional dwc arm/allwinner/aw_rsb.c optional rsb arm/allwinner/aw_rtc.c standard arm/allwinner/aw_wdog.c standard -arm/allwinner/a20/a20_cpu_cfg.c standard arm/allwinner/aw_machdep.c standard arm/allwinner/aw_mp.c optional smp arm/allwinner/axp209.c optional axp209 Modified: user/alc/PQ_LAUNDRY/sys/arm/allwinner/if_emac.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/arm/allwinner/if_emac.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/arm/allwinner/if_emac.c Mon Aug 22 01:43:47 2016 (r304578) @@ -77,6 +77,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include @@ -167,12 +168,17 @@ static void emac_get_hwaddr(struct emac_softc *sc, uint8_t *hwaddr) { uint32_t val0, val1, rnd; + u_char rootkey[16]; /* * Try to get MAC address from running hardware. * If there is something non-zero there just use it. * * Otherwise set the address to a convenient locally assigned address, + * using the SID rootkey. + * This is was uboot does so we end up with the same mac as if uboot + * did set it. + * If we can't get the root key, generate a random one, * 'bsd' + random 24 low-order bits. 'b' is 0x62, which has the locally * assigned bit set, and the broadcast/multicast bit clear. */ @@ -186,13 +192,23 @@ emac_get_hwaddr(struct emac_softc *sc, u hwaddr[4] = (val0 >> 8) & 0xff; hwaddr[5] = (val0 >> 0) & 0xff; } else { - rnd = arc4random() & 0x00ffffff; - hwaddr[0] = 'b'; - hwaddr[1] = 's'; - hwaddr[2] = 'd'; - hwaddr[3] = (rnd >> 16) & 0xff; - hwaddr[4] = (rnd >> 8) & 0xff; - hwaddr[5] = (rnd >> 0) & 0xff; + if (aw_sid_get_rootkey(rootkey) == 0) { + hwaddr[0] = 0x2; + hwaddr[1] = rootkey[3]; + hwaddr[2] = rootkey[12]; + hwaddr[3] = rootkey[13]; + hwaddr[4] = rootkey[14]; + hwaddr[5] = rootkey[15]; + } + else { + rnd = arc4random() & 0x00ffffff; + hwaddr[0] = 'b'; + hwaddr[1] = 's'; + hwaddr[2] = 'd'; + hwaddr[3] = (rnd >> 16) & 0xff; + hwaddr[4] = (rnd >> 8) & 0xff; + hwaddr[5] = (rnd >> 0) & 0xff; + } } if (bootverbose) printf("MAC address: %s\n", ether_sprintf(hwaddr)); Modified: user/alc/PQ_LAUNDRY/sys/arm/arm/elf_trampoline.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/arm/arm/elf_trampoline.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/arm/arm/elf_trampoline.c Mon Aug 22 01:43:47 2016 (r304578) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include extern char kernel_start[]; extern char kernel_end[]; @@ -47,7 +48,7 @@ extern void *_end; void _start(void); void __start(void); -void __startC(void); +void __startC(unsigned r0, unsigned r1, unsigned r2, unsigned r3); extern unsigned int cpu_ident(void); extern void armv6_idcache_wbinv_all(void); @@ -124,6 +125,10 @@ static int arm_dcache_l2_nsets; static int arm_dcache_l2_assoc; static int arm_dcache_l2_linesize; +/* + * Boot parameters + */ +static struct arm_boot_params s_boot_params; extern int arm9_dcache_sets_inc; extern int arm9_dcache_sets_max; @@ -172,12 +177,17 @@ bzero(void *addr, int count) static void arm9_setup(void); void -_startC(void) +_startC(unsigned r0, unsigned r1, unsigned r2, unsigned r3) { int tmp1; unsigned int sp = ((unsigned int)&_end & ~3) + 4; unsigned int pc, kernphysaddr; + s_boot_params.abp_r0 = r0; + s_boot_params.abp_r1 = r1; + s_boot_params.abp_r2 = r2; + s_boot_params.abp_r3 = r3; + /* * Figure out the physical address the kernel was loaded at. This * assumes the entry point (this code right here) is in the first page, @@ -211,8 +221,15 @@ _startC(void) /* Temporary set the sp and jump to the new location. */ __asm __volatile( "mov sp, %1\n" + "mov r0, %2\n" + "mov r1, %3\n" + "mov r2, %4\n" + "mov r3, %5\n" "mov pc, %0\n" - : : "r" (target_addr), "r" (tmp_sp)); + : : "r" (target_addr), "r" (tmp_sp), + "r" (s_boot_params.abp_r0), "r" (s_boot_params.abp_r1), + "r" (s_boot_params.abp_r2), "r" (s_boot_params.abp_r3), + : "r0", "r1", "r2", "r3"); } #endif @@ -487,6 +504,7 @@ load_kernel(unsigned int kstart, unsigne vm_offset_t lastaddr = 0; Elf_Addr ssym = 0; Elf_Dyn *dp; + struct arm_boot_params local_boot_params; eh = (Elf32_Ehdr *)kstart; ssym = 0; @@ -555,6 +573,12 @@ load_kernel(unsigned int kstart, unsigne if (!d) return ((void *)lastaddr); + /* + * Now the stack is fixed, copy boot params + * before it's overrided + */ + memcpy(&local_boot_params, &s_boot_params, sizeof(local_boot_params)); + j = eh->e_phnum; for (i = 0; i < j; i++) { volatile char c; @@ -604,7 +628,10 @@ load_kernel(unsigned int kstart, unsigne "mcr p15, 0, %0, c1, c0, 0\n" /* CP15_SCTLR(%0)*/ : "=r" (ssym)); /* Jump to the entry point. */ - ((void(*)(void))(entry_point - KERNVIRTADDR + curaddr))(); + ((void(*)(unsigned, unsigned, unsigned, unsigned)) + (entry_point - KERNVIRTADDR + curaddr)) + (local_boot_params.abp_r0, local_boot_params.abp_r1, + local_boot_params.abp_r2, local_boot_params.abp_r3); __asm __volatile(".globl func_end\n" "func_end:"); Modified: user/alc/PQ_LAUNDRY/sys/boot/common/boot.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/boot.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/boot/common/boot.c Mon Aug 22 01:43:47 2016 (r304578) @@ -61,7 +61,8 @@ command_boot(int argc, char *argv[]) /* XXX maybe we should discard everything and start again? */ if (file_findfile(NULL, NULL) != NULL) { - sprintf(command_errbuf, "can't boot '%s', kernel module already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't boot '%s', kernel module already loaded", argv[1]); return(CMD_ERROR); } @@ -129,7 +130,8 @@ command_autoboot(int argc, char *argv[]) case 2: howlong = strtol(argv[1], &cp, 0); if (*cp != 0) { - sprintf(command_errbuf, "bad delay '%s'", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad delay '%s'", argv[1]); return(CMD_ERROR); } /* FALLTHROUGH */ Modified: user/alc/PQ_LAUNDRY/sys/boot/common/bootstrap.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/bootstrap.h Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/boot/common/bootstrap.h Mon Aug 22 01:43:47 2016 (r304578) @@ -35,8 +35,9 @@ /* Commands and return values; nonzero return sets command_errmsg != NULL */ typedef int (bootblk_cmd_t)(int argc, char *argv[]); +#define COMMAND_ERRBUFSZ (256) extern char *command_errmsg; -extern char command_errbuf[]; /* XXX blah, length */ +extern char command_errbuf[COMMAND_ERRBUFSZ]; #define CMD_OK 0 #define CMD_WARN 1 #define CMD_ERROR 2 Modified: user/alc/PQ_LAUNDRY/sys/boot/common/commands.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/commands.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/boot/common/commands.c Mon Aug 22 01:43:47 2016 (r304578) @@ -33,7 +33,8 @@ __FBSDID("$FreeBSD$"); #include "bootstrap.h" char *command_errmsg; -char command_errbuf[256]; /* XXX should have procedural interface for setting, size limit? */ +/* XXX should have procedural interface for setting, size limit? */ +char command_errbuf[COMMAND_ERRBUFSZ]; static int page_file(char *filename); @@ -196,7 +197,8 @@ command_help(int argc, char *argv[]) pager_close(); close(hfd); if (!matched) { - sprintf(command_errbuf, "no help available for '%s'", topic); + snprintf(command_errbuf, sizeof(command_errbuf), + "no help available for '%s'", topic); free(topic); if (subtopic) free(subtopic); @@ -276,7 +278,8 @@ command_show(int argc, char *argv[]) if ((cp = getenv(argv[1])) != NULL) { printf("%s\n", cp); } else { - sprintf(command_errbuf, "variable '%s' not found", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "variable '%s' not found", argv[1]); return(CMD_ERROR); } } @@ -386,7 +389,8 @@ command_read(int argc, char *argv[]) case 't': timeout = strtol(optarg, &cp, 0); if (cp == optarg) { - sprintf(command_errbuf, "bad timeout '%s'", optarg); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad timeout '%s'", optarg); return(CMD_ERROR); } break; @@ -454,8 +458,10 @@ page_file(char *filename) result = pager_file(filename); - if (result == -1) - sprintf(command_errbuf, "error showing %s", filename); + if (result == -1) { + snprintf(command_errbuf, sizeof(command_errbuf), + "error showing %s", filename); + } return result; } Modified: user/alc/PQ_LAUNDRY/sys/boot/common/interp.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/interp.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/boot/common/interp.c Mon Aug 22 01:43:47 2016 (r304578) @@ -214,7 +214,8 @@ include(const char *filename) #endif if (((fd = open(filename, O_RDONLY)) == -1)) { - sprintf(command_errbuf,"can't open '%s': %s", filename, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't open '%s': %s", filename, strerror(errno)); return(CMD_ERROR); } @@ -256,8 +257,9 @@ include(const char *filename) script = script->next; free(se); } - sprintf(command_errbuf, "file '%s' line %d: memory allocation " - "failure - aborting", filename, line); + snprintf(command_errbuf, sizeof(command_errbuf), + "file '%s' line %d: memory allocation failure - aborting", + filename, line); return (CMD_ERROR); } strcpy(sp->text, cp); @@ -291,7 +293,9 @@ include(const char *filename) #ifdef BOOT_FORTH res = bf_run(sp->text); if (res != VM_OUTOFTEXT) { - sprintf(command_errbuf, "Error while including %s, in the line:\n%s", filename, sp->text); + snprintf(command_errbuf, sizeof(command_errbuf), + "Error while including %s, in the line:\n%s", + filename, sp->text); res = CMD_ERROR; break; } else Modified: user/alc/PQ_LAUNDRY/sys/boot/common/ls.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/ls.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/boot/common/ls.c Mon Aug 22 01:43:47 2016 (r304578) @@ -150,7 +150,8 @@ ls_getdir(char **pathp) /* Make sure the path is respectable to begin with */ if (archsw.arch_getdev(NULL, path, &cp)) { - sprintf(command_errbuf, "bad path '%s'", path); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad path '%s'", path); goto out; } @@ -160,15 +161,18 @@ ls_getdir(char **pathp) fd = open(path, O_RDONLY); if (fd < 0) { - sprintf(command_errbuf, "open '%s' failed: %s", path, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "open '%s' failed: %s", path, strerror(errno)); goto out; } if (fstat(fd, &sb) < 0) { - sprintf(command_errbuf, "stat failed: %s", strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "stat failed: %s", strerror(errno)); goto out; } if (!S_ISDIR(sb.st_mode)) { - sprintf(command_errbuf, "%s: %s", path, strerror(ENOTDIR)); + snprintf(command_errbuf, sizeof(command_errbuf), + "%s: %s", path, strerror(ENOTDIR)); goto out; } Modified: user/alc/PQ_LAUNDRY/sys/boot/common/module.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/module.c Mon Aug 22 01:41:03 2016 (r304577) +++ user/alc/PQ_LAUNDRY/sys/boot/common/module.c Mon Aug 22 01:43:47 2016 (r304578) @@ -143,7 +143,8 @@ command_load(int argc, char *argv[]) fp = file_findfile(argv[1], typestr); if (fp) { - sprintf(command_errbuf, "warning: file '%s' already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "warning: file '%s' already loaded", argv[1]); return (CMD_WARN); } @@ -162,7 +163,8 @@ command_load(int argc, char *argv[]) if (dokld || file_havepath(argv[1])) { error = mod_loadkld(argv[1], argc - 2, argv + 2); if (error == EEXIST) { - sprintf(command_errbuf, "warning: KLD '%s' already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "warning: KLD '%s' already loaded", argv[1]); return (CMD_WARN); } @@ -173,7 +175,8 @@ command_load(int argc, char *argv[]) */ error = mod_load(argv[1], NULL, argc - 2, argv + 2); if (error == EEXIST) { - sprintf(command_errbuf, "warning: module '%s' already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "warning: module '%s' already loaded", argv[1]); return (CMD_WARN); } @@ -202,7 +205,8 @@ command_load_geli(int argc, char *argv[] case 'n': num = strtol(optarg, &cp, 0); if (cp == optarg) { - sprintf(command_errbuf, "bad key index '%s'", optarg); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad key index '%s'", optarg); return(CMD_ERROR); } break; @@ -334,8 +338,8 @@ file_load(char *filename, vm_offset_t de if (error == EFTYPE) continue; /* Unknown to this handler? */ if (error) { - sprintf(command_errbuf, "can't load file '%s': %s", - filename, strerror(error)); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't load file '%s': %s", filename, strerror(error)); break; } } @@ -371,8 +375,8 @@ file_load_dependencies(struct preloaded_ */ mp = file_findmodule(NULL, dmodname, verinfo); if (mp == NULL) { - sprintf(command_errbuf, "module '%s' exists but with wrong version", - dmodname); + snprintf(command_errbuf, sizeof(command_errbuf), + "module '%s' exists but with wrong version", dmodname); error = ENOENT; break; } @@ -411,12 +415,14 @@ file_loadraw(const char *fname, char *ty /* locate the file on the load path */ name = file_search(fname, NULL); if (name == NULL) { - sprintf(command_errbuf, "can't find '%s'", fname); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't find '%s'", fname); return(NULL); } if ((fd = open(name, O_RDONLY)) < 0) { - sprintf(command_errbuf, "can't open '%s': %s", name, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't open '%s': %s", name, strerror(errno)); free(name); return(NULL); } @@ -433,7 +439,8 @@ file_loadraw(const char *fname, char *ty if (got == 0) /* end of file */ break; if (got < 0) { /* error */ - sprintf(command_errbuf, "error reading '%s': %s", name, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "error reading '%s': %s", name, strerror(errno)); free(name); close(fd); return(NULL); @@ -487,13 +494,15 @@ mod_load(char *modname, struct mod_depen free(mp->m_args); mp->m_args = unargv(argc, argv); #endif - sprintf(command_errbuf, "warning: module '%s' already loaded", mp->m_name); + snprintf(command_errbuf, sizeof(command_errbuf), *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Mon Aug 22 01:46:09 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EB944BC1F53 for ; Mon, 22 Aug 2016 01:46:09 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 91ED019C7; Mon, 22 Aug 2016 01:46:09 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7M1k8r9079932; Mon, 22 Aug 2016 01:46:08 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7M1k5eC079892; Mon, 22 Aug 2016 01:46:05 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608220146.u7M1k5eC079892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 22 Aug 2016 01:46:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304580 - in user/alc/PG_CACHED: . cddl/contrib/opensolaris/lib/libzfs/common contrib/dma contrib/llvm/lib/Target/ARM/MCTargetDesc etc lib/clang lib/libc/sys libexec/dma release/doc/en_... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 01:46:10 -0000 Author: markj Date: Mon Aug 22 01:46:04 2016 New Revision: 304580 URL: https://svnweb.freebsd.org/changeset/base/304580 Log: Merge from PQ_LAUNDRY at r304578. Added: user/alc/PG_CACHED/sys/compat/cloudabi/cloudabi_vdso.lds - copied unchanged from r304578, user/alc/PQ_LAUNDRY/sys/compat/cloudabi/cloudabi_vdso.lds user/alc/PG_CACHED/sys/compat/cloudabi32/ - copied from r304578, user/alc/PQ_LAUNDRY/sys/compat/cloudabi32/ user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi32_types.h - copied unchanged from r304578, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi32_types.h user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S - copied unchanged from r304578, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S - copied unchanged from r304578, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S user/alc/PG_CACHED/sys/contrib/cloudabi/syscalls32.master - copied unchanged from r304578, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/syscalls32.master user/alc/PG_CACHED/sys/contrib/cloudabi/syscalls64.master - copied unchanged from r304578, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/syscalls64.master Deleted: user/alc/PG_CACHED/share/man/man4/man4.i386/ie.4 user/alc/PG_CACHED/share/man/man4/man4.i386/wl.4 user/alc/PG_CACHED/share/man/man4/scd.4 user/alc/PG_CACHED/share/man/man4/si.4 user/alc/PG_CACHED/share/man/man4/spic.4 user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_vdso.lds.s user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c user/alc/PG_CACHED/sys/contrib/cloudabi/syscalls.master user/alc/PG_CACHED/sys/dev/ie/ user/alc/PG_CACHED/sys/dev/scd/ user/alc/PG_CACHED/sys/dev/si/ user/alc/PG_CACHED/sys/dev/wds/ user/alc/PG_CACHED/sys/dev/wl/ user/alc/PG_CACHED/sys/i386/isa/spic.c user/alc/PG_CACHED/sys/i386/isa/spicreg.h user/alc/PG_CACHED/sys/modules/ie/ user/alc/PG_CACHED/sys/modules/scd/ user/alc/PG_CACHED/sys/modules/si/ user/alc/PG_CACHED/sys/modules/wds/ user/alc/PG_CACHED/sys/modules/wl/ user/alc/PG_CACHED/tools/kerneldoc/subsys/Doxyfile-dev_mcd user/alc/PG_CACHED/tools/kerneldoc/subsys/Doxyfile-dev_scd user/alc/PG_CACHED/tools/kerneldoc/subsys/Doxyfile-dev_si user/alc/PG_CACHED/tools/kerneldoc/subsys/Doxyfile-dev_wds user/alc/PG_CACHED/tools/kerneldoc/subsys/Doxyfile-dev_wl user/alc/PG_CACHED/usr.sbin/sicontrol/ user/alc/PG_CACHED/usr.sbin/wlconfig/ Modified: user/alc/PG_CACHED/ObsoleteFiles.inc user/alc/PG_CACHED/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/alc/PG_CACHED/contrib/dma/VERSION user/alc/PG_CACHED/contrib/dma/dma-mbox-create.c user/alc/PG_CACHED/contrib/dma/dma.c user/alc/PG_CACHED/contrib/dma/dma.h user/alc/PG_CACHED/contrib/dma/dns.c user/alc/PG_CACHED/contrib/dma/local.c user/alc/PG_CACHED/contrib/dma/net.c user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp user/alc/PG_CACHED/etc/devd.conf user/alc/PG_CACHED/lib/clang/freebsd_cc_version.h user/alc/PG_CACHED/lib/libc/sys/aio_fsync.2 user/alc/PG_CACHED/lib/libc/sys/aio_mlock.2 user/alc/PG_CACHED/lib/libc/sys/aio_read.2 user/alc/PG_CACHED/lib/libc/sys/aio_write.2 user/alc/PG_CACHED/libexec/dma/Makefile.inc user/alc/PG_CACHED/release/doc/en_US.ISO8859-1/hardware/article.xml user/alc/PG_CACHED/sbin/ipfw/ipfw.8 user/alc/PG_CACHED/share/man/man4/Makefile user/alc/PG_CACHED/share/man/man4/alc.4 user/alc/PG_CACHED/share/man/man4/man4.i386/Makefile user/alc/PG_CACHED/sys/amd64/conf/NOTES user/alc/PG_CACHED/sys/arm/allwinner/files.allwinner user/alc/PG_CACHED/sys/arm/allwinner/if_emac.c user/alc/PG_CACHED/sys/arm/arm/elf_trampoline.c user/alc/PG_CACHED/sys/boot/common/boot.c user/alc/PG_CACHED/sys/boot/common/bootstrap.h user/alc/PG_CACHED/sys/boot/common/commands.c user/alc/PG_CACHED/sys/boot/common/interp.c user/alc/PG_CACHED/sys/boot/common/ls.c user/alc/PG_CACHED/sys/boot/common/module.c user/alc/PG_CACHED/sys/boot/efi/loader/arch/amd64/framebuffer.c user/alc/PG_CACHED/sys/boot/fdt/fdt_loader_cmd.c user/alc/PG_CACHED/sys/compat/cloudabi/cloudabi_clock.c user/alc/PG_CACHED/sys/compat/cloudabi/cloudabi_thread.c user/alc/PG_CACHED/sys/compat/cloudabi64/Makefile user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_fd.c user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_poll.c user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_proto.h user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_sock.c user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_syscall.h user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_syscalls.c user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_sysent.c user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_systrace_args.c user/alc/PG_CACHED/sys/compat/cloudabi64/cloudabi64_util.h user/alc/PG_CACHED/sys/conf/NOTES user/alc/PG_CACHED/sys/conf/files user/alc/PG_CACHED/sys/conf/files.amd64 user/alc/PG_CACHED/sys/conf/files.arm64 user/alc/PG_CACHED/sys/conf/files.i386 user/alc/PG_CACHED/sys/conf/options user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi64_types.h user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_types.h user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_types_common.h user/alc/PG_CACHED/sys/dev/ahci/ahci_pci.c user/alc/PG_CACHED/sys/dev/alc/if_alc.c user/alc/PG_CACHED/sys/dev/alc/if_alcreg.h user/alc/PG_CACHED/sys/dev/cxgbe/common/common.h user/alc/PG_CACHED/sys/dev/cxgbe/common/t4_hw.c user/alc/PG_CACHED/sys/dev/cxgbe/t4_main.c user/alc/PG_CACHED/sys/dev/ixl/if_ixlv.c user/alc/PG_CACHED/sys/dev/pci/pci.c user/alc/PG_CACHED/sys/dev/usb/input/ukbd.c user/alc/PG_CACHED/sys/i386/conf/NOTES user/alc/PG_CACHED/sys/kern/kern_fork.c user/alc/PG_CACHED/sys/kern/kern_prot.c user/alc/PG_CACHED/sys/kern/sys_process.c user/alc/PG_CACHED/sys/kern/vfs_vnops.c user/alc/PG_CACHED/sys/mips/mips/elf_machdep.c user/alc/PG_CACHED/sys/modules/Makefile user/alc/PG_CACHED/sys/modules/cloudabi64/Makefile user/alc/PG_CACHED/sys/netinet/ip_ipsec.c user/alc/PG_CACHED/sys/netinet/sctp_usrreq.c user/alc/PG_CACHED/sys/netinet/sctputil.c user/alc/PG_CACHED/sys/netinet/udp_usrreq.c user/alc/PG_CACHED/sys/netinet6/ip6_ipsec.c user/alc/PG_CACHED/sys/netinet6/udp6_usrreq.c user/alc/PG_CACHED/sys/pc98/conf/NOTES user/alc/PG_CACHED/sys/powerpc/booke/locore.S user/alc/PG_CACHED/sys/security/audit/audit.h user/alc/PG_CACHED/sys/security/audit/audit_bsm.c user/alc/PG_CACHED/sys/sparc64/conf/NOTES user/alc/PG_CACHED/sys/sys/proc.h user/alc/PG_CACHED/sys/vm/vm_pageout.c user/alc/PG_CACHED/targets/pseudo/userland/Makefile.depend user/alc/PG_CACHED/tools/build/mk/OptionalObsoleteFiles.inc user/alc/PG_CACHED/usr.bin/truss/syscalls.c user/alc/PG_CACHED/usr.sbin/Makefile.amd64 user/alc/PG_CACHED/usr.sbin/Makefile.i386 user/alc/PG_CACHED/usr.sbin/cron/cron/cron.8 user/alc/PG_CACHED/usr.sbin/cron/cron/cron.c Directory Properties: user/alc/PG_CACHED/ (props changed) user/alc/PG_CACHED/cddl/ (props changed) user/alc/PG_CACHED/cddl/contrib/opensolaris/ (props changed) user/alc/PG_CACHED/cddl/contrib/opensolaris/lib/libzfs/ (props changed) user/alc/PG_CACHED/contrib/dma/ (props changed) user/alc/PG_CACHED/contrib/llvm/ (props changed) Modified: user/alc/PG_CACHED/ObsoleteFiles.inc ============================================================================== --- user/alc/PG_CACHED/ObsoleteFiles.inc Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/ObsoleteFiles.inc Mon Aug 22 01:46:04 2016 (r304580) @@ -38,6 +38,20 @@ # xargs -n1 | sort | uniq -d; # done +# 20160819: Remove ie(4) +OLD_FILES+=usr/share/man/man4/i386/ie.4.gz +# 20160819: Remove spic(4) +OLD_FILES+=usr/share/man/man4/spic.4.gz +# 20160819: Remove wl(4) and wlconfig(8) +OLD_FILES+=usr/share/man/man4/i386/wl.4.gz +OLD_FILES+=usr/sbin/wlconfig +OLD_FILES+=usr/share/man/man8/i386/wlconfig.8.gz +# 20160819: Remove si(4) and sicontrol(8) +OLD_FILES+=usr/share/man/man4/si.4.gz +OLD_FILES+=usr/sbin/sicontrol +OLD_FILES+=usr/share/man/man8/sicontrol.8.gz +# 20160819: Remove scd(4) +OLD_FILES+=usr/share/man/man4/scd.4.gz # 20160815: Remove mcd(4) OLD_FILES+=usr/share/man/man4/mcd.4.gz # 20160703: POSIXify locales with variants Modified: user/alc/PG_CACHED/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- user/alc/PG_CACHED/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Mon Aug 22 01:46:04 2016 (r304580) @@ -1630,12 +1630,17 @@ zfs_prop_set_list(zfs_handle_t *zhp, nvl assert(cl_idx < nvl_len); /* * We don't want to unmount & remount the dataset when changing - * its canmount property to 'on' or 'noauto'. We only use - * the changelist logic to unmount when setting canmount=off. + * its canmount property. We only use the changelist logic to + * unmount when setting canmount=off for a mounted filesystem + * or when setting canmount=on for an unmounted filesystem. + * For all other changes to canmount property the filesystem + * remains the same. */ if (prop != ZFS_PROP_CANMOUNT || (fnvpair_value_uint64(elem) == ZFS_CANMOUNT_OFF && - zfs_is_mounted(zhp, NULL))) { + zfs_is_mounted(zhp, NULL)) || + (fnvpair_value_uint64(elem) == ZFS_CANMOUNT_ON && + !zfs_is_mounted(zhp, NULL))) { cls[cl_idx] = changelist_gather(zhp, prop, 0, 0); if (cls[cl_idx] == NULL) goto error; Modified: user/alc/PG_CACHED/contrib/dma/VERSION ============================================================================== --- user/alc/PG_CACHED/contrib/dma/VERSION Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/VERSION Mon Aug 22 01:46:04 2016 (r304580) @@ -1 +1 @@ -v0.10 +v0.11 Modified: user/alc/PG_CACHED/contrib/dma/dma-mbox-create.c ============================================================================== --- user/alc/PG_CACHED/contrib/dma/dma-mbox-create.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/dma-mbox-create.c Mon Aug 22 01:46:04 2016 (r304580) @@ -142,7 +142,7 @@ main(int argc, char **argv) logfail(EX_CANTCREAT, "cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user); } - f = open(fn, O_RDONLY|O_CREAT, 0600); + f = open(fn, O_RDONLY|O_CREAT|O_NOFOLLOW, 0600); if (f < 0) logfail(EX_NOINPUT, "cannt open mbox `%s'", fn); Modified: user/alc/PG_CACHED/contrib/dma/dma.c ============================================================================== --- user/alc/PG_CACHED/contrib/dma/dma.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/dma.c Mon Aug 22 01:46:04 2016 (r304580) @@ -321,7 +321,7 @@ deliver(struct qitem *it) snprintf(errmsg, sizeof(errmsg), "unknown bounce reason"); retry: - syslog(LOG_INFO, "trying delivery"); + syslog(LOG_INFO, "<%s> trying delivery", it->addr); if (it->remote) error = deliver_remote(it); @@ -331,7 +331,7 @@ retry: switch (error) { case 0: delqueue(it); - syslog(LOG_INFO, "delivery successful"); + syslog(LOG_INFO, "<%s> delivery successful", it->addr); exit(EX_OK); case 1: Modified: user/alc/PG_CACHED/contrib/dma/dma.h ============================================================================== --- user/alc/PG_CACHED/contrib/dma/dma.h Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/dma.h Mon Aug 22 01:46:04 2016 (r304580) @@ -49,7 +49,7 @@ #define VERSION "DragonFly Mail Agent " DMA_VERSION #define BUF_SIZE 2048 -#define ERRMSG_SIZE 200 +#define ERRMSG_SIZE 1024 #define USERNAME_SIZE 50 #define MIN_RETRY 300 /* 5 minutes */ #define MAX_RETRY (3*60*60) /* retry at least every 3 hours */ Modified: user/alc/PG_CACHED/contrib/dma/dns.c ============================================================================== --- user/alc/PG_CACHED/contrib/dma/dns.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/dns.c Mon Aug 22 01:46:04 2016 (r304580) @@ -34,6 +34,7 @@ */ #include +#include #include #include #include Modified: user/alc/PG_CACHED/contrib/dma/local.c ============================================================================== --- user/alc/PG_CACHED/contrib/dma/local.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/local.c Mon Aug 22 01:46:04 2016 (r304580) @@ -196,7 +196,7 @@ retry: goto out; } - error = snprintf(line, sizeof(line), "%sFrom %s\t%s", newline, sender, ctime(&now)); + error = snprintf(line, sizeof(line), "%sFrom %s %s", newline, sender, ctime(&now)); if (error < 0 || (size_t)error >= sizeof(line)) { syslog(LOG_NOTICE, "local delivery deferred: can not write header: %m"); goto out; Modified: user/alc/PG_CACHED/contrib/dma/net.c ============================================================================== --- user/alc/PG_CACHED/contrib/dma/net.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/dma/net.c Mon Aug 22 01:46:04 2016 (r304580) @@ -372,11 +372,13 @@ deliver_to_host(struct qitem *it, struct host->host, host->addr, c, neterr); \ snprintf(errmsg, sizeof(errmsg), "%s [%s] did not like our %s:\n%s", \ host->host, host->addr, c, neterr); \ - return (-1); \ + error = -1; \ + goto out; \ } else if (res != exp) { \ syslog(LOG_NOTICE, "remote delivery deferred: %s [%s] failed after %s: %s", \ host->host, host->addr, c, neterr); \ - return (1); \ + error = 1; \ + goto out; \ } /* Check first reply from remote host */ @@ -426,7 +428,8 @@ deliver_to_host(struct qitem *it, struct syslog(LOG_ERR, "remote delivery failed:" " SMTP login failed: %m"); snprintf(errmsg, sizeof(errmsg), "SMTP login to %s failed", host->host); - return (-1); + error = -1; + goto out; } /* SMTP login is not available, so try without */ else if (error > 0) { Modified: user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp ============================================================================== --- user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp Mon Aug 22 01:46:04 2016 (r304580) @@ -90,6 +90,7 @@ const MCFixupKindInfo &ARMAsmBackend::ge {"fixup_arm_movw_lo16", 0, 20, 0}, {"fixup_t2_movt_hi16", 0, 20, 0}, {"fixup_t2_movw_lo16", 0, 20, 0}, + {"fixup_arm_mod_imm", 0, 12, 0}, }; const static MCFixupKindInfo InfosBE[ARM::NumTargetFixupKinds] = { // This table *must* be in the order that the fixup_* kinds are defined in @@ -133,6 +134,7 @@ const MCFixupKindInfo &ARMAsmBackend::ge {"fixup_arm_movw_lo16", 12, 20, 0}, {"fixup_t2_movt_hi16", 12, 20, 0}, {"fixup_t2_movw_lo16", 12, 20, 0}, + {"fixup_arm_mod_imm", 20, 12, 0}, }; if (Kind < FirstTargetFixupKind) @@ -624,6 +626,13 @@ unsigned ARMAsmBackend::adjustFixupValue return Value; } + case ARM::fixup_arm_mod_imm: + Value = ARM_AM::getSOImmVal(Value); + if (Ctx && Value >> 12) { + Ctx->reportError(Fixup.getLoc(), "out of range immediate fixup value"); + return 0; + } + return Value; } } @@ -690,6 +699,7 @@ static unsigned getFixupKindNumBytes(uns case FK_Data_2: case ARM::fixup_arm_thumb_br: case ARM::fixup_arm_thumb_cb: + case ARM::fixup_arm_mod_imm: return 2; case ARM::fixup_arm_pcrel_10_unscaled: @@ -766,6 +776,7 @@ static unsigned getFixupKindContainerSiz case ARM::fixup_arm_movw_lo16: case ARM::fixup_t2_movt_hi16: case ARM::fixup_t2_movw_lo16: + case ARM::fixup_arm_mod_imm: // Instruction size is 4 bytes. return 4; } Modified: user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h ============================================================================== --- user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h Mon Aug 22 01:46:04 2016 (r304580) @@ -100,6 +100,9 @@ enum Fixups { fixup_t2_movt_hi16, // :upper16: fixup_t2_movw_lo16, // :lower16: + // fixup_arm_mod_imm - Fixup for mod_imm + fixup_arm_mod_imm, + // Marker LastTargetFixupKind, NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind Modified: user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp ============================================================================== --- user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp Mon Aug 22 01:46:04 2016 (r304580) @@ -312,12 +312,8 @@ public: // Support for fixups (MCFixup) if (MO.isExpr()) { const MCExpr *Expr = MO.getExpr(); - // In instruction code this value always encoded as lowest 12 bits, - // so we don't have to perform any specific adjustments. - // Due to requirements of relocatable records we have to use FK_Data_4. - // See ARMELFObjectWriter::ExplicitRelSym and - // ARMELFObjectWriter::GetRelocTypeInner for more details. - MCFixupKind Kind = MCFixupKind(FK_Data_4); + // Fixups resolve to plain values that need to be encoded. + MCFixupKind Kind = MCFixupKind(ARM::fixup_arm_mod_imm); Fixups.push_back(MCFixup::create(0, Expr, Kind, MI.getLoc())); return 0; } Modified: user/alc/PG_CACHED/etc/devd.conf ============================================================================== --- user/alc/PG_CACHED/etc/devd.conf Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/etc/devd.conf Mon Aug 22 01:46:04 2016 (r304580) @@ -19,8 +19,8 @@ options { # Setup some shorthand for regex that we use later in the file. #XXX Yes, these are gross -- imp set scsi-controller-regex - "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\ - esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\ + "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amr|bt|ciss|ct|dpt|\ + esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm)\ [0-9]+"; set wifi-driver-regex "(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|\ Modified: user/alc/PG_CACHED/lib/clang/freebsd_cc_version.h ============================================================================== --- user/alc/PG_CACHED/lib/clang/freebsd_cc_version.h Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/lib/clang/freebsd_cc_version.h Mon Aug 22 01:46:04 2016 (r304580) @@ -1,3 +1,3 @@ /* $FreeBSD$ */ -#define FREEBSD_CC_VERSION 1200001 +#define FREEBSD_CC_VERSION 1200002 Modified: user/alc/PG_CACHED/lib/libc/sys/aio_fsync.2 ============================================================================== --- user/alc/PG_CACHED/lib/libc/sys/aio_fsync.2 Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/lib/libc/sys/aio_fsync.2 Mon Aug 22 01:46:04 2016 (r304580) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_FSYNC 2 .Os .Sh NAME @@ -74,16 +74,14 @@ the call returns without having enqueued .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS -The asynchronous I/O Control Block structure pointed to by +The Asynchronous I/O Control Block structure pointed to by .Fa iocb must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -91,9 +89,8 @@ should be zeroed before the .Fn aio_fsync call to avoid passing bogus context information to the kernel. .Pp -Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +Modification of the Asynchronous I/O Control Block structure is not allowed +while the request is queued. .Sh RETURN VALUES .Rv -std aio_fsync .Sh ERRORS Modified: user/alc/PG_CACHED/lib/libc/sys/aio_mlock.2 ============================================================================== --- user/alc/PG_CACHED/lib/libc/sys/aio_mlock.2 Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/lib/libc/sys/aio_mlock.2 Mon Aug 22 01:46:04 2016 (r304580) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_MLOCK 2 .Os .Sh NAME @@ -67,7 +67,7 @@ then the call returns without having enq .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS @@ -77,8 +77,6 @@ and the buffer that the .Fa iocb->aio_buf member of that structure references must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -87,8 +85,8 @@ should be zeroed before the call to avoid passing bogus context information to the kernel. .Pp Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +memory mapping described by the virtual address range are not allowed +while the request is queued. .Sh RETURN VALUES .Rv -std aio_mlock .Sh ERRORS Modified: user/alc/PG_CACHED/lib/libc/sys/aio_read.2 ============================================================================== --- user/alc/PG_CACHED/lib/libc/sys/aio_read.2 Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/lib/libc/sys/aio_read.2 Mon Aug 22 01:46:04 2016 (r304580) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_READ 2 .Os .Sh NAME @@ -82,7 +82,7 @@ not be referenced after the request is e .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS @@ -92,8 +92,6 @@ and the buffer that the .Fa iocb->aio_buf member of that structure references must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -102,8 +100,7 @@ should be zeroed before the call to avoid passing bogus context information to the kernel. .Pp Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +buffer contents are not allowed while the request is queued. .Pp If the file offset in .Fa iocb->aio_offset Modified: user/alc/PG_CACHED/lib/libc/sys/aio_write.2 ============================================================================== --- user/alc/PG_CACHED/lib/libc/sys/aio_write.2 Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/lib/libc/sys/aio_write.2 Mon Aug 22 01:46:04 2016 (r304580) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 21, 2016 +.Dd August 19, 2016 .Dt AIO_WRITE 2 .Os .Sh NAME @@ -88,7 +88,7 @@ be referenced after the request is enque .Pp The .Fa iocb->aio_sigevent -structure can be used to request notification of the request's +structure can be used to request notification of the operation's completion as described in .Xr aio 4 . .Sh RESTRICTIONS @@ -98,8 +98,6 @@ and the buffer that the .Fa iocb->aio_buf member of that structure references must remain valid until the operation has completed. -For this reason, use of auto (stack) variables -for these objects is discouraged. .Pp The asynchronous I/O control buffer .Fa iocb @@ -108,8 +106,7 @@ should be zeroed before the system call to avoid passing bogus context information to the kernel. .Pp Modifications of the Asynchronous I/O Control Block structure or the -buffer contents after the request has been enqueued, but before the -request has completed, are not allowed. +buffer contents are not allowed while the request is queued. .Pp If the file offset in .Fa iocb->aio_offset Modified: user/alc/PG_CACHED/libexec/dma/Makefile.inc ============================================================================== --- user/alc/PG_CACHED/libexec/dma/Makefile.inc Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/libexec/dma/Makefile.inc Mon Aug 22 01:46:04 2016 (r304580) @@ -7,7 +7,7 @@ DMA_SOURCES= ${.CURDIR}/../../../contrib CFLAGS+= -I${DMA_SOURCES} \ -DHAVE_REALLOCF -DHAVE_STRLCPY -DHAVE_GETPROGNAME \ -DCONF_PATH='"/etc/dma"' \ - -DLIBEXEC_PATH='"/usr/libexec"' -DDMA_VERSION='"v0.10"' \ + -DLIBEXEC_PATH='"/usr/libexec"' -DDMA_VERSION='"v0.11+"' \ -DDMA_ROOT_USER='"mailnull"' \ -DDMA_GROUP='"mail"' BINGRP= mail Modified: user/alc/PG_CACHED/release/doc/en_US.ISO8859-1/hardware/article.xml ============================================================================== --- user/alc/PG_CACHED/release/doc/en_US.ISO8859-1/hardware/article.xml Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/release/doc/en_US.ISO8859-1/hardware/article.xml Mon Aug 22 01:46:04 2016 (r304580) @@ -751,9 +751,6 @@ &hwlist.vpo; - [&arch.i386;] The wds(4) driver supports the WD7000 SCSI - controller. - With all supported SCSI controllers, full support is provided for SCSI-I, SCSI-II, and SCSI-III peripherals, including hard disks, optical disks, tape drives (including @@ -775,23 +772,9 @@ - [&arch.i386;] Sony proprietary interface (all models) - (&man.scd.4;) - - - ATAPI IDE interface (&man.acd.4;) - - [&arch.i386;] The following device is unmaintained: - - - - Mitsumi proprietary CD-ROM interface (all models) - (&man.mcd.4;) - - @@ -853,8 +836,6 @@ &hwlist.hme; - &hwlist.ie; - &hwlist.igb; &hwlist.ipheth; @@ -1040,9 +1021,6 @@ Intersil PRISM-2.5, Intersil Prism-3, and Symbol Spectrum24 chipsets (&man.wi.4; driver) - [&arch.i386;] NCR / AT&T / Lucent Technologies WaveLan - T1-speed ISA/radio LAN cards (&man.wl.4; driver) - [&arch.i386;, &arch.amd64;] Intel PRO/Wireless 3945ABG MiniPCI network adapters (&man.wpi.4; driver) @@ -1238,13 +1216,6 @@ &hwlist.rc; - [&arch.i386;, &arch.amd64;] Specialix SI/XIO/SX multiport - serial cards, with both the older SIHOST2.x and the - enhanced (transputer based, aka JET) host cards - (ISA, EISA and PCI) are supported. Note that the newer SX+ - PCI cards are not currently supported. (&man.si.4; - driver) - [&arch.pc98;] Internel serial interfaces (&man.sio.4; driver) Modified: user/alc/PG_CACHED/sbin/ipfw/ipfw.8 ============================================================================== --- user/alc/PG_CACHED/sbin/ipfw/ipfw.8 Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sbin/ipfw/ipfw.8 Mon Aug 22 01:46:04 2016 (r304580) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 13, 2016 +.Dd August 21, 2016 .Dt IPFW 8 .Os .Sh NAME @@ -1588,8 +1588,7 @@ Matches IPv4 packets whose precedence fi .It Cm ipsec Matches packets that have IPSEC history associated with them (i.e., the packet comes encapsulated in IPSEC, the kernel -has IPSEC support and IPSEC_FILTERTUNNEL option, and can correctly -decapsulate it). +has IPSEC support, and can correctly decapsulate it). .Pp Note that specifying .Cm ipsec Modified: user/alc/PG_CACHED/share/man/man4/Makefile ============================================================================== --- user/alc/PG_CACHED/share/man/man4/Makefile Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/share/man/man4/Makefile Mon Aug 22 01:46:04 2016 (r304580) @@ -441,7 +441,6 @@ MAN= aac.4 \ sbp.4 \ sbp_targ.4 \ scc.4 \ - scd.4 \ sched_4bsd.4 \ sched_ule.4 \ screen.4 \ @@ -454,7 +453,6 @@ MAN= aac.4 \ sf.4 \ ${_sfxge.4} \ sge.4 \ - si.4 \ siba.4 \ siftr.4 \ siis.4 \ @@ -498,7 +496,6 @@ MAN= aac.4 \ snd_via82c686.4 \ snd_vibes.4 \ snp.4 \ - spic.4 \ ${_spkr.4} \ splash.4 \ sppp.4 \ Modified: user/alc/PG_CACHED/share/man/man4/alc.4 ============================================================================== --- user/alc/PG_CACHED/share/man/man4/alc.4 Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/share/man/man4/alc.4 Mon Aug 22 01:46:04 2016 (r304580) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 8, 2014 +.Dd August 22, 2016 .Dt ALC 4 .Os .Sh NAME @@ -122,6 +122,8 @@ Atheros AR8171 PCI Express Gigabit Ether Atheros AR8172 PCI Express Fast Ethernet controller .It Killer E2200 Gigabit Ethernet controller +.It +Killer E2400 Gigabit Ethernet controller .El .Sh LOADER TUNABLES Tunables can be set at the Modified: user/alc/PG_CACHED/share/man/man4/man4.i386/Makefile ============================================================================== --- user/alc/PG_CACHED/share/man/man4/man4.i386/Makefile Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/share/man/man4/man4.i386/Makefile Mon Aug 22 01:46:04 2016 (r304580) @@ -16,7 +16,6 @@ MAN= aic.4 \ fe.4 \ glxiic.4 \ glxsb.4 \ - ie.4 \ longrun.4 \ mse.4 \ npx.4 \ @@ -31,8 +30,7 @@ MAN= aic.4 \ streams.4 \ svr4.4 \ vpd.4 \ - vx.4 \ - wl.4 + vx.4 MLINKS= CPU_ELAN.4 CPU_SOEKRIS.4 MLINKS+=pae.4 PAE.4 Modified: user/alc/PG_CACHED/sys/amd64/conf/NOTES ============================================================================== --- user/alc/PG_CACHED/sys/amd64/conf/NOTES Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/amd64/conf/NOTES Mon Aug 22 01:46:04 2016 (r304580) @@ -542,7 +542,6 @@ hint.pbio.0.port="0x360" device smbios device vpd device asmc -device si device tpm device padlock_rng # VIA Padlock RNG device rdrand_rng # Intel Bull Mountain RNG Modified: user/alc/PG_CACHED/sys/arm/allwinner/files.allwinner ============================================================================== --- user/alc/PG_CACHED/sys/arm/allwinner/files.allwinner Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/arm/allwinner/files.allwinner Mon Aug 22 01:46:04 2016 (r304580) @@ -15,7 +15,6 @@ arm/allwinner/aw_if_dwc.c optional dwc arm/allwinner/aw_rsb.c optional rsb arm/allwinner/aw_rtc.c standard arm/allwinner/aw_wdog.c standard -arm/allwinner/a20/a20_cpu_cfg.c standard arm/allwinner/aw_machdep.c standard arm/allwinner/aw_mp.c optional smp arm/allwinner/axp209.c optional axp209 Modified: user/alc/PG_CACHED/sys/arm/allwinner/if_emac.c ============================================================================== --- user/alc/PG_CACHED/sys/arm/allwinner/if_emac.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/arm/allwinner/if_emac.c Mon Aug 22 01:46:04 2016 (r304580) @@ -77,6 +77,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include @@ -167,12 +168,17 @@ static void emac_get_hwaddr(struct emac_softc *sc, uint8_t *hwaddr) { uint32_t val0, val1, rnd; + u_char rootkey[16]; /* * Try to get MAC address from running hardware. * If there is something non-zero there just use it. * * Otherwise set the address to a convenient locally assigned address, + * using the SID rootkey. + * This is was uboot does so we end up with the same mac as if uboot + * did set it. + * If we can't get the root key, generate a random one, * 'bsd' + random 24 low-order bits. 'b' is 0x62, which has the locally * assigned bit set, and the broadcast/multicast bit clear. */ @@ -186,13 +192,23 @@ emac_get_hwaddr(struct emac_softc *sc, u hwaddr[4] = (val0 >> 8) & 0xff; hwaddr[5] = (val0 >> 0) & 0xff; } else { - rnd = arc4random() & 0x00ffffff; - hwaddr[0] = 'b'; - hwaddr[1] = 's'; - hwaddr[2] = 'd'; - hwaddr[3] = (rnd >> 16) & 0xff; - hwaddr[4] = (rnd >> 8) & 0xff; - hwaddr[5] = (rnd >> 0) & 0xff; + if (aw_sid_get_rootkey(rootkey) == 0) { + hwaddr[0] = 0x2; + hwaddr[1] = rootkey[3]; + hwaddr[2] = rootkey[12]; + hwaddr[3] = rootkey[13]; + hwaddr[4] = rootkey[14]; + hwaddr[5] = rootkey[15]; + } + else { + rnd = arc4random() & 0x00ffffff; + hwaddr[0] = 'b'; + hwaddr[1] = 's'; + hwaddr[2] = 'd'; + hwaddr[3] = (rnd >> 16) & 0xff; + hwaddr[4] = (rnd >> 8) & 0xff; + hwaddr[5] = (rnd >> 0) & 0xff; + } } if (bootverbose) printf("MAC address: %s\n", ether_sprintf(hwaddr)); Modified: user/alc/PG_CACHED/sys/arm/arm/elf_trampoline.c ============================================================================== --- user/alc/PG_CACHED/sys/arm/arm/elf_trampoline.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/arm/arm/elf_trampoline.c Mon Aug 22 01:46:04 2016 (r304580) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include extern char kernel_start[]; extern char kernel_end[]; @@ -47,7 +48,7 @@ extern void *_end; void _start(void); void __start(void); -void __startC(void); +void __startC(unsigned r0, unsigned r1, unsigned r2, unsigned r3); extern unsigned int cpu_ident(void); extern void armv6_idcache_wbinv_all(void); @@ -124,6 +125,10 @@ static int arm_dcache_l2_nsets; static int arm_dcache_l2_assoc; static int arm_dcache_l2_linesize; +/* + * Boot parameters + */ +static struct arm_boot_params s_boot_params; extern int arm9_dcache_sets_inc; extern int arm9_dcache_sets_max; @@ -172,12 +177,17 @@ bzero(void *addr, int count) static void arm9_setup(void); void -_startC(void) +_startC(unsigned r0, unsigned r1, unsigned r2, unsigned r3) { int tmp1; unsigned int sp = ((unsigned int)&_end & ~3) + 4; unsigned int pc, kernphysaddr; + s_boot_params.abp_r0 = r0; + s_boot_params.abp_r1 = r1; + s_boot_params.abp_r2 = r2; + s_boot_params.abp_r3 = r3; + /* * Figure out the physical address the kernel was loaded at. This * assumes the entry point (this code right here) is in the first page, @@ -211,8 +221,15 @@ _startC(void) /* Temporary set the sp and jump to the new location. */ __asm __volatile( "mov sp, %1\n" + "mov r0, %2\n" + "mov r1, %3\n" + "mov r2, %4\n" + "mov r3, %5\n" "mov pc, %0\n" - : : "r" (target_addr), "r" (tmp_sp)); + : : "r" (target_addr), "r" (tmp_sp), + "r" (s_boot_params.abp_r0), "r" (s_boot_params.abp_r1), + "r" (s_boot_params.abp_r2), "r" (s_boot_params.abp_r3), + : "r0", "r1", "r2", "r3"); } #endif @@ -487,6 +504,7 @@ load_kernel(unsigned int kstart, unsigne vm_offset_t lastaddr = 0; Elf_Addr ssym = 0; Elf_Dyn *dp; + struct arm_boot_params local_boot_params; eh = (Elf32_Ehdr *)kstart; ssym = 0; @@ -555,6 +573,12 @@ load_kernel(unsigned int kstart, unsigne if (!d) return ((void *)lastaddr); + /* + * Now the stack is fixed, copy boot params + * before it's overrided + */ + memcpy(&local_boot_params, &s_boot_params, sizeof(local_boot_params)); + j = eh->e_phnum; for (i = 0; i < j; i++) { volatile char c; @@ -604,7 +628,10 @@ load_kernel(unsigned int kstart, unsigne "mcr p15, 0, %0, c1, c0, 0\n" /* CP15_SCTLR(%0)*/ : "=r" (ssym)); /* Jump to the entry point. */ - ((void(*)(void))(entry_point - KERNVIRTADDR + curaddr))(); + ((void(*)(unsigned, unsigned, unsigned, unsigned)) + (entry_point - KERNVIRTADDR + curaddr)) + (local_boot_params.abp_r0, local_boot_params.abp_r1, + local_boot_params.abp_r2, local_boot_params.abp_r3); __asm __volatile(".globl func_end\n" "func_end:"); Modified: user/alc/PG_CACHED/sys/boot/common/boot.c ============================================================================== --- user/alc/PG_CACHED/sys/boot/common/boot.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/boot/common/boot.c Mon Aug 22 01:46:04 2016 (r304580) @@ -61,7 +61,8 @@ command_boot(int argc, char *argv[]) /* XXX maybe we should discard everything and start again? */ if (file_findfile(NULL, NULL) != NULL) { - sprintf(command_errbuf, "can't boot '%s', kernel module already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't boot '%s', kernel module already loaded", argv[1]); return(CMD_ERROR); } @@ -129,7 +130,8 @@ command_autoboot(int argc, char *argv[]) case 2: howlong = strtol(argv[1], &cp, 0); if (*cp != 0) { - sprintf(command_errbuf, "bad delay '%s'", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad delay '%s'", argv[1]); return(CMD_ERROR); } /* FALLTHROUGH */ Modified: user/alc/PG_CACHED/sys/boot/common/bootstrap.h ============================================================================== --- user/alc/PG_CACHED/sys/boot/common/bootstrap.h Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/boot/common/bootstrap.h Mon Aug 22 01:46:04 2016 (r304580) @@ -35,8 +35,9 @@ /* Commands and return values; nonzero return sets command_errmsg != NULL */ typedef int (bootblk_cmd_t)(int argc, char *argv[]); +#define COMMAND_ERRBUFSZ (256) extern char *command_errmsg; -extern char command_errbuf[]; /* XXX blah, length */ +extern char command_errbuf[COMMAND_ERRBUFSZ]; #define CMD_OK 0 #define CMD_WARN 1 #define CMD_ERROR 2 Modified: user/alc/PG_CACHED/sys/boot/common/commands.c ============================================================================== --- user/alc/PG_CACHED/sys/boot/common/commands.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/boot/common/commands.c Mon Aug 22 01:46:04 2016 (r304580) @@ -33,7 +33,8 @@ __FBSDID("$FreeBSD$"); #include "bootstrap.h" char *command_errmsg; -char command_errbuf[256]; /* XXX should have procedural interface for setting, size limit? */ +/* XXX should have procedural interface for setting, size limit? */ +char command_errbuf[COMMAND_ERRBUFSZ]; static int page_file(char *filename); @@ -196,7 +197,8 @@ command_help(int argc, char *argv[]) pager_close(); close(hfd); if (!matched) { - sprintf(command_errbuf, "no help available for '%s'", topic); + snprintf(command_errbuf, sizeof(command_errbuf), + "no help available for '%s'", topic); free(topic); if (subtopic) free(subtopic); @@ -276,7 +278,8 @@ command_show(int argc, char *argv[]) if ((cp = getenv(argv[1])) != NULL) { printf("%s\n", cp); } else { - sprintf(command_errbuf, "variable '%s' not found", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "variable '%s' not found", argv[1]); return(CMD_ERROR); } } @@ -386,7 +389,8 @@ command_read(int argc, char *argv[]) case 't': timeout = strtol(optarg, &cp, 0); if (cp == optarg) { - sprintf(command_errbuf, "bad timeout '%s'", optarg); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad timeout '%s'", optarg); return(CMD_ERROR); } break; @@ -454,8 +458,10 @@ page_file(char *filename) result = pager_file(filename); - if (result == -1) - sprintf(command_errbuf, "error showing %s", filename); + if (result == -1) { + snprintf(command_errbuf, sizeof(command_errbuf), + "error showing %s", filename); + } return result; } Modified: user/alc/PG_CACHED/sys/boot/common/interp.c ============================================================================== --- user/alc/PG_CACHED/sys/boot/common/interp.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/boot/common/interp.c Mon Aug 22 01:46:04 2016 (r304580) @@ -214,7 +214,8 @@ include(const char *filename) #endif if (((fd = open(filename, O_RDONLY)) == -1)) { - sprintf(command_errbuf,"can't open '%s': %s", filename, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't open '%s': %s", filename, strerror(errno)); return(CMD_ERROR); } @@ -256,8 +257,9 @@ include(const char *filename) script = script->next; free(se); } - sprintf(command_errbuf, "file '%s' line %d: memory allocation " - "failure - aborting", filename, line); + snprintf(command_errbuf, sizeof(command_errbuf), + "file '%s' line %d: memory allocation failure - aborting", + filename, line); return (CMD_ERROR); } strcpy(sp->text, cp); @@ -291,7 +293,9 @@ include(const char *filename) #ifdef BOOT_FORTH res = bf_run(sp->text); if (res != VM_OUTOFTEXT) { - sprintf(command_errbuf, "Error while including %s, in the line:\n%s", filename, sp->text); + snprintf(command_errbuf, sizeof(command_errbuf), + "Error while including %s, in the line:\n%s", + filename, sp->text); res = CMD_ERROR; break; } else Modified: user/alc/PG_CACHED/sys/boot/common/ls.c ============================================================================== --- user/alc/PG_CACHED/sys/boot/common/ls.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/boot/common/ls.c Mon Aug 22 01:46:04 2016 (r304580) @@ -150,7 +150,8 @@ ls_getdir(char **pathp) /* Make sure the path is respectable to begin with */ if (archsw.arch_getdev(NULL, path, &cp)) { - sprintf(command_errbuf, "bad path '%s'", path); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad path '%s'", path); goto out; } @@ -160,15 +161,18 @@ ls_getdir(char **pathp) fd = open(path, O_RDONLY); if (fd < 0) { - sprintf(command_errbuf, "open '%s' failed: %s", path, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "open '%s' failed: %s", path, strerror(errno)); goto out; } if (fstat(fd, &sb) < 0) { - sprintf(command_errbuf, "stat failed: %s", strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "stat failed: %s", strerror(errno)); goto out; } if (!S_ISDIR(sb.st_mode)) { - sprintf(command_errbuf, "%s: %s", path, strerror(ENOTDIR)); + snprintf(command_errbuf, sizeof(command_errbuf), + "%s: %s", path, strerror(ENOTDIR)); goto out; } Modified: user/alc/PG_CACHED/sys/boot/common/module.c ============================================================================== --- user/alc/PG_CACHED/sys/boot/common/module.c Mon Aug 22 01:45:29 2016 (r304579) +++ user/alc/PG_CACHED/sys/boot/common/module.c Mon Aug 22 01:46:04 2016 (r304580) @@ -143,7 +143,8 @@ command_load(int argc, char *argv[]) fp = file_findfile(argv[1], typestr); if (fp) { - sprintf(command_errbuf, "warning: file '%s' already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "warning: file '%s' already loaded", argv[1]); return (CMD_WARN); } @@ -162,7 +163,8 @@ command_load(int argc, char *argv[]) if (dokld || file_havepath(argv[1])) { error = mod_loadkld(argv[1], argc - 2, argv + 2); if (error == EEXIST) { - sprintf(command_errbuf, "warning: KLD '%s' already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "warning: KLD '%s' already loaded", argv[1]); return (CMD_WARN); } @@ -173,7 +175,8 @@ command_load(int argc, char *argv[]) */ error = mod_load(argv[1], NULL, argc - 2, argv + 2); if (error == EEXIST) { - sprintf(command_errbuf, "warning: module '%s' already loaded", argv[1]); + snprintf(command_errbuf, sizeof(command_errbuf), + "warning: module '%s' already loaded", argv[1]); return (CMD_WARN); } @@ -202,7 +205,8 @@ command_load_geli(int argc, char *argv[] case 'n': num = strtol(optarg, &cp, 0); if (cp == optarg) { - sprintf(command_errbuf, "bad key index '%s'", optarg); + snprintf(command_errbuf, sizeof(command_errbuf), + "bad key index '%s'", optarg); return(CMD_ERROR); } break; @@ -334,8 +338,8 @@ file_load(char *filename, vm_offset_t de if (error == EFTYPE) continue; /* Unknown to this handler? */ if (error) { - sprintf(command_errbuf, "can't load file '%s': %s", - filename, strerror(error)); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't load file '%s': %s", filename, strerror(error)); break; } } @@ -371,8 +375,8 @@ file_load_dependencies(struct preloaded_ */ mp = file_findmodule(NULL, dmodname, verinfo); if (mp == NULL) { - sprintf(command_errbuf, "module '%s' exists but with wrong version", - dmodname); + snprintf(command_errbuf, sizeof(command_errbuf), + "module '%s' exists but with wrong version", dmodname); error = ENOENT; break; } @@ -411,12 +415,14 @@ file_loadraw(const char *fname, char *ty /* locate the file on the load path */ name = file_search(fname, NULL); if (name == NULL) { - sprintf(command_errbuf, "can't find '%s'", fname); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't find '%s'", fname); return(NULL); } if ((fd = open(name, O_RDONLY)) < 0) { - sprintf(command_errbuf, "can't open '%s': %s", name, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "can't open '%s': %s", name, strerror(errno)); free(name); return(NULL); } @@ -433,7 +439,8 @@ file_loadraw(const char *fname, char *ty if (got == 0) /* end of file */ break; if (got < 0) { /* error */ - sprintf(command_errbuf, "error reading '%s': %s", name, strerror(errno)); + snprintf(command_errbuf, sizeof(command_errbuf), + "error reading '%s': %s", name, strerror(errno)); free(name); close(fd); return(NULL); @@ -487,13 +494,15 @@ mod_load(char *modname, struct mod_depen free(mp->m_args); mp->m_args = unargv(argc, argv); #endif - sprintf(command_errbuf, "warning: module '%s' already loaded", mp->m_name); + snprintf(command_errbuf, sizeof(command_errbuf), *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Mon Aug 22 03:23:29 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60477BC1722 for ; Mon, 22 Aug 2016 03:23:29 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3392F15C8; Mon, 22 Aug 2016 03:23:29 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7M3NSpj017486; Mon, 22 Aug 2016 03:23:28 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7M3NSCc017485; Mon, 22 Aug 2016 03:23:28 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608220323.u7M3NSCc017485@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 22 Aug 2016 03:23:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304583 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 03:23:29 -0000 Author: markj Date: Mon Aug 22 03:23:28 2016 New Revision: 304583 URL: https://svnweb.freebsd.org/changeset/base/304583 Log: Remove an unrelated change that crept in with r304577. Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Mon Aug 22 02:23:05 2016 (r304582) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Mon Aug 22 03:23:28 2016 (r304583) @@ -1597,10 +1597,6 @@ drop_page: if (page_shortage <= 0) vm_page_deactivate(m); else { - if (m->dirty == 0 && - m->object->ref_count != 0 && - pmap_is_modified(m)) - vm_cnt.v_postponed_launderings++; if (m->dirty == 0) { vm_page_deactivate(m); page_shortage -= From owner-svn-src-user@freebsd.org Mon Aug 22 03:48:40 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63372BC1C3E for ; Mon, 22 Aug 2016 03:48:40 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3488212A0; Mon, 22 Aug 2016 03:48:40 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7M3md9s025208; Mon, 22 Aug 2016 03:48:39 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7M3mdvB025206; Mon, 22 Aug 2016 03:48:39 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608220348.u7M3mdvB025206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 22 Aug 2016 03:48:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304585 - in user/alc/PQ_LAUNDRY/sys: dev/alc netinet X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 03:48:40 -0000 Author: markj Date: Mon Aug 22 03:48:39 2016 New Revision: 304585 URL: https://svnweb.freebsd.org/changeset/base/304585 Log: MFH r304584 Modified: user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) Modified: user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h Mon Aug 22 03:28:06 2016 (r304584) +++ user/alc/PQ_LAUNDRY/sys/dev/alc/if_alcvar.h Mon Aug 22 03:48:39 2016 (r304585) @@ -235,7 +235,8 @@ struct alc_softc { #define ALC_FLAG_APS 0x1000 #define ALC_FLAG_AR816X_FAMILY 0x2000 #define ALC_FLAG_LINK_WAR 0x4000 -#define ALC_FLAG_LINK 0x8000 +#define ALC_FLAG_E2X00 0x8000 +#define ALC_FLAG_LINK 0x10000 struct callout alc_tick_ch; struct alc_hw_stats alc_stats; Modified: user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c Mon Aug 22 03:28:06 2016 (r304584) +++ user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c Mon Aug 22 03:48:39 2016 (r304585) @@ -12639,7 +12639,10 @@ sctp_lower_sosend(struct socket *so, } SCTP_INP_RUNLOCK(inp); } else if (sinfo_assoc_id) { - stcb = sctp_findassociation_ep_asocid(inp, sinfo_assoc_id, 0); + stcb = sctp_findassociation_ep_asocid(inp, sinfo_assoc_id, 1); + if (stcb != NULL) { + hold_tcblock = 1; + } } else if (addr) { /*- * Since we did not use findep we must @@ -13404,6 +13407,10 @@ skip_preblock: } } SCTP_TCB_SEND_LOCK(stcb); + if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { + SCTP_TCB_SEND_UNLOCK(stcb); + goto out_unlocked; + } if (sp) { if (sp->msg_is_complete == 0) { strm->last_msg_incomplete = 1; From owner-svn-src-user@freebsd.org Wed Aug 24 22:38:07 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79A61BC5416 for ; Wed, 24 Aug 2016 22:38:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 30BAD1203; Wed, 24 Aug 2016 22:38:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7OMc6bt049834; Wed, 24 Aug 2016 22:38:06 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7OMc6Tj049832; Wed, 24 Aug 2016 22:38:06 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201608242238.u7OMc6Tj049832@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 24 Aug 2016 22:38:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304775 - in user/cperciva/freebsd-update-build/scripts/11.0-RC2: . amd64 i386 X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2016 22:38:07 -0000 Author: glebius Date: Wed Aug 24 22:38:06 2016 New Revision: 304775 URL: https://svnweb.freebsd.org/changeset/base/304775 Log: Add 11.0-RC2 config. Added: user/cperciva/freebsd-update-build/scripts/11.0-RC2/ - copied from r304774, user/cperciva/freebsd-update-build/scripts/11.0-RC1/ Modified: user/cperciva/freebsd-update-build/scripts/11.0-RC2/amd64/build.conf user/cperciva/freebsd-update-build/scripts/11.0-RC2/i386/build.conf Modified: user/cperciva/freebsd-update-build/scripts/11.0-RC2/amd64/build.conf ============================================================================== --- user/cperciva/freebsd-update-build/scripts/11.0-RC1/amd64/build.conf Wed Aug 24 22:27:06 2016 (r304774) +++ user/cperciva/freebsd-update-build/scripts/11.0-RC2/amd64/build.conf Wed Aug 24 22:38:06 2016 (r304775) @@ -1,5 +1,5 @@ -export RELH=3a01f637b46ea62eac9bbe94f367df4df2d9875c00385a078615bbe0fea13e56a1d3c8d0d8b9c4de10aec5b95eebfc6fd60e28f405eebe218ed3bf47c0e7f68f -export FTP=https://people.freebsd.org/~gjb/11.0-RC1/ +export RELH=df1787cf385aaae795c01c30c298e50cc131df07a0304defb0aa80f11ffdec265603ed8426848a2c67114d3a43c6f080c77bbab4e07855d1b3c07866ee6f31a6 +export FTP=https://people.freebsd.org/~gjb/11.0-RC2/ # Components of the world, source, and kernels export WORLDPARTS="base base-dbg doc lib32 lib32-dbg" @@ -7,4 +7,4 @@ export SOURCEPARTS="src" export KERNELPARTS="kernel kernel-dbg" # EOL date -export EOL=1472255999 +export EOL=1472860799 Modified: user/cperciva/freebsd-update-build/scripts/11.0-RC2/i386/build.conf ============================================================================== --- user/cperciva/freebsd-update-build/scripts/11.0-RC1/i386/build.conf Wed Aug 24 22:27:06 2016 (r304774) +++ user/cperciva/freebsd-update-build/scripts/11.0-RC2/i386/build.conf Wed Aug 24 22:38:06 2016 (r304775) @@ -1,5 +1,5 @@ -export RELH=80fdfbdd03915241bb83b6e460669fc1ee60f477beb25df2bb4d783609c81a99637cd831dcad73464a7dbb46fb29eaa1a27320d931133153b1d4c92ee02d29cb -export FTP=https://people.freebsd.org/~gjb/11.0-RC1/ +export RELH=6d59f8e290a86ba594e8042ea63597b5214ed3a6f62fe2243024d67174275a7e0d9a0c3f7c7ae4cce1a7913316c6195f294a4efb26b873f027d8c10b8b2afebe +export FTP=https://people.freebsd.org/~gjb/11.0-RC2/ # Components of the world, source, and kernels export WORLDPARTS="base base-dbg doc" @@ -7,4 +7,4 @@ export SOURCEPARTS="src" export KERNELPARTS="kernel kernel-dbg" # EOL date -export EOL=1472255999 +export EOL=1472860799 From owner-svn-src-user@freebsd.org Fri Aug 26 17:28:58 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E7B05B7591D for ; Fri, 26 Aug 2016 17:28:58 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C391166A; Fri, 26 Aug 2016 17:28:58 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7QHSwe5013777; Fri, 26 Aug 2016 17:28:58 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7QHSv2V013776; Fri, 26 Aug 2016 17:28:57 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608261728.u7QHSv2V013776@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 26 Aug 2016 17:28:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304851 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2016 17:28:59 -0000 Author: markj Date: Fri Aug 26 17:28:57 2016 New Revision: 304851 URL: https://svnweb.freebsd.org/changeset/base/304851 Log: Clean up the background laundering tunables a bit. Reviewed by: alc Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Fri Aug 26 14:58:57 2016 (r304850) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Fri Aug 26 17:28:57 2016 (r304851) @@ -177,6 +177,7 @@ static int vm_pageout_update_period; static int disable_swap_pageouts; static int lowmem_period = 10; static time_t lowmem_uptime; +static u_int vm_background_launder_target; #if defined(NO_SWAPPING) static int vm_swap_enabled = 0; @@ -231,15 +232,19 @@ SYSCTL_INT(_vm, OID_AUTO, act_scan_laund CTLFLAG_RW, &act_scan_laundry_weight, 0, "weight given to clean vs. dirty pages in active queue scans"); -static u_int bkgrd_launder_rate = 4096; -SYSCTL_UINT(_vm, OID_AUTO, bkgrd_launder_rate, - CTLFLAG_RW, &bkgrd_launder_rate, 0, +SYSCTL_UINT(_vm, OID_AUTO, background_launder_target, + CTLFLAG_RW, &vm_background_launder_target, 0, + "background laundering target, in pages"); + +static u_int vm_background_launder_rate = 4096; +SYSCTL_UINT(_vm, OID_AUTO, background_launder_rate, + CTLFLAG_RW, &vm_background_launder_rate, 0, "background laundering rate, in kilobytes per second"); -static u_int bkgrd_launder_max = 20 * 1024; -SYSCTL_UINT(_vm, OID_AUTO, bkgrd_launder_max, - CTLFLAG_RW, &bkgrd_launder_max, 0, - "background laundering cap in kilobytes"); +static u_int vm_background_launder_max = 20 * 1024; +SYSCTL_UINT(_vm, OID_AUTO, background_launder_max, + CTLFLAG_RW, &vm_background_launder_max, 0, + "background laundering cap, in kilobytes"); #define VM_PAGEOUT_PAGE_COUNT 16 int vm_pageout_page_count = VM_PAGEOUT_PAGE_COUNT; @@ -1181,8 +1186,7 @@ vm_pageout_laundry_worker(void *arg) if (target == 0 && wakeups != last_launder && ndirty * isqrt(wakeups - last_launder) >= nclean) { last_launder = wakeups; - target = starting_target = - (vm_cnt.v_free_target - vm_cnt.v_free_min) / 10; + target = starting_target = vm_background_launder_target; } /* * We have a non-zero background laundering target. If we've @@ -1193,17 +1197,16 @@ vm_pageout_laundry_worker(void *arg) * proceed at the background laundering rate. */ if (target > 0) { - if (last_launder == wakeups) { - if (starting_target - target >= - bkgrd_launder_max * PAGE_SIZE / 1024) - target = 0; - } else { + if (last_launder != wakeups) { last_launder = wakeups; starting_target = target; + } else if (starting_target - target >= + vm_background_launder_max * PAGE_SIZE / 1024) { + target = 0; } - launder = bkgrd_launder_rate * PAGE_SIZE / 1024 / - VM_LAUNDER_INTERVAL; + launder = vm_background_launder_rate * PAGE_SIZE / 1024; + launder /= VM_LAUNDER_INTERVAL; if (launder < target) launder = target; } @@ -1988,6 +1991,14 @@ vm_pageout_init(void) /* XXX does not really belong here */ if (vm_page_max_wired == 0) vm_page_max_wired = vm_cnt.v_free_count / 3; + + /* + * Target amount of memory to move out of the laundry queue during a + * background laundering. This is proportional to the amount of system + * memory. + */ + vm_background_launder_target = (vm_cnt.v_free_target - + vm_cnt.v_free_min) / 10; } /* From owner-svn-src-user@freebsd.org Fri Aug 26 17:31:23 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95706B75A77 for ; Fri, 26 Aug 2016 17:31:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4F2958DB; Fri, 26 Aug 2016 17:31:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7QHVMZx015199; Fri, 26 Aug 2016 17:31:22 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7QHVLCS015188; Fri, 26 Aug 2016 17:31:21 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608261731.u7QHVLCS015188@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 26 Aug 2016 17:31:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304852 - in user/alc/PQ_LAUNDRY: . bin/dd bin/ls/tests cddl/lib/libdtrace contrib/binutils/bfd contrib/sqlite3 contrib/sqlite3/tea crypto/heimdal/lib/hx509 crypto/openssl/crypto/bn/asm... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2016 17:31:23 -0000 Author: markj Date: Fri Aug 26 17:31:20 2016 New Revision: 304852 URL: https://svnweb.freebsd.org/changeset/base/304852 Log: MFH r289108 Added: user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.msc - copied unchanged from r304851, head/contrib/sqlite3/Makefile.msc user/alc/PQ_LAUNDRY/contrib/sqlite3/Replace.cs - copied unchanged from r304851, head/contrib/sqlite3/Replace.cs user/alc/PQ_LAUNDRY/contrib/sqlite3/compile - copied unchanged from r304851, head/contrib/sqlite3/compile user/alc/PQ_LAUNDRY/contrib/sqlite3/sqlite3.rc - copied unchanged from r304851, head/contrib/sqlite3/sqlite3.rc user/alc/PQ_LAUNDRY/contrib/sqlite3/tea/ - copied from r304851, head/contrib/sqlite3/tea/ user/alc/PQ_LAUNDRY/lib/libifc/ - copied from r304851, head/lib/libifc/ user/alc/PQ_LAUNDRY/secure/lib/libcrypto/arm/ - copied from r304851, head/secure/lib/libcrypto/arm/ user/alc/PQ_LAUNDRY/share/examples/libifc/ - copied from r304851, head/share/examples/libifc/ user/alc/PQ_LAUNDRY/sys/amd64/cloudabi32/ - copied from r304851, head/sys/amd64/cloudabi32/ user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_ts.c - copied unchanged from r304851, head/sys/arm/allwinner/aw_ts.c user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_i686.S - copied unchanged from r304851, head/sys/contrib/cloudabi/cloudabi_vdso_i686.S user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S - copied unchanged from r304851, head/sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/ndis.h - copied unchanged from r304851, head/sys/dev/hyperv/netvsc/ndis.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/vmbus_icreg.h - copied unchanged from r304851, head/sys/dev/hyperv/utilities/vmbus_icreg.h user/alc/PQ_LAUNDRY/sys/i386/cloudabi32/ - copied from r304851, head/sys/i386/cloudabi32/ user/alc/PQ_LAUNDRY/sys/modules/cloudabi32/ - copied from r304851, head/sys/modules/cloudabi32/ user/alc/PQ_LAUNDRY/sys/net/rndis.h - copied unchanged from r304851, head/sys/net/rndis.h Deleted: user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_types.h Modified: user/alc/PQ_LAUNDRY/Makefile.inc1 user/alc/PQ_LAUNDRY/Makefile.libcompat user/alc/PQ_LAUNDRY/UPDATING user/alc/PQ_LAUNDRY/bin/dd/dd.1 user/alc/PQ_LAUNDRY/bin/ls/tests/ls_tests.sh user/alc/PQ_LAUNDRY/cddl/lib/libdtrace/psinfo.d user/alc/PQ_LAUNDRY/contrib/binutils/bfd/config.bfd user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.am user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.in user/alc/PQ_LAUNDRY/contrib/sqlite3/configure user/alc/PQ_LAUNDRY/contrib/sqlite3/configure.ac user/alc/PQ_LAUNDRY/contrib/sqlite3/shell.c user/alc/PQ_LAUNDRY/contrib/sqlite3/sqlite3.c user/alc/PQ_LAUNDRY/contrib/sqlite3/sqlite3.h user/alc/PQ_LAUNDRY/contrib/sqlite3/sqlite3ext.h user/alc/PQ_LAUNDRY/crypto/heimdal/lib/hx509/version-script.map user/alc/PQ_LAUNDRY/crypto/openssl/crypto/bn/asm/armv4-gf2m.pl user/alc/PQ_LAUNDRY/crypto/openssl/crypto/sha/asm/sha256-armv4.pl user/alc/PQ_LAUNDRY/etc/newsyslog.conf user/alc/PQ_LAUNDRY/etc/ntp/leap-seconds (contents, props changed) user/alc/PQ_LAUNDRY/etc/rc.d/ntpd user/alc/PQ_LAUNDRY/include/xlocale/_locale.h user/alc/PQ_LAUNDRY/lib/Makefile user/alc/PQ_LAUNDRY/lib/libc/gen/__getosreldate.c user/alc/PQ_LAUNDRY/lib/libc/nls/msgcat.c user/alc/PQ_LAUNDRY/lib/libc/stdio/fgetln.c user/alc/PQ_LAUNDRY/lib/libc/stdio/fgetwc.c user/alc/PQ_LAUNDRY/lib/libc/stdio/fgetwln.c user/alc/PQ_LAUNDRY/lib/libc/stdio/fputwc.c user/alc/PQ_LAUNDRY/lib/libc/stdio/getdelim.c user/alc/PQ_LAUNDRY/lib/libc/stdio/vfprintf.c user/alc/PQ_LAUNDRY/lib/libc/stdio/vfwprintf.c user/alc/PQ_LAUNDRY/lib/libpam/modules/pam_ssh/pam_ssh.8 user/alc/PQ_LAUNDRY/lib/libpam/modules/pam_ssh/pam_ssh.c user/alc/PQ_LAUNDRY/lib/libstand/dosfs.c user/alc/PQ_LAUNDRY/libexec/rtld-elf/mips/reloc.c user/alc/PQ_LAUNDRY/sbin/camcontrol/camcontrol.c user/alc/PQ_LAUNDRY/sbin/ggate/ggatec/ggatec.8 user/alc/PQ_LAUNDRY/sbin/ggate/ggated/ggated.8 user/alc/PQ_LAUNDRY/sbin/resolvconf/Makefile user/alc/PQ_LAUNDRY/secure/lib/libcrypto/Makefile user/alc/PQ_LAUNDRY/secure/lib/libcrypto/Makefile.asm user/alc/PQ_LAUNDRY/secure/lib/libcrypto/Makefile.inc user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/aes-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/aesni-gcm-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/aesni-mb-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/aesni-sha1-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/aesni-sha256-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/aesni-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/bsaes-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/cmll-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/ecp_nistz256-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/ghash-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/md5-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/rc4-md5-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/rc4-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/rsaz-avx2.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/rsaz-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/sha1-mb-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/sha1-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/sha256-mb-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/sha256-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/sha512-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/vpaes-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/wp-x86_64.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/x86_64-gf2m.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/x86_64-mont.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/x86_64-mont5.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/amd64/x86_64cpuid.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/aes-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/aesni-x86.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/bf-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/bf-686.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/bn-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/cmll-x86.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/co-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/crypt586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/des-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/ghash-x86.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/md5-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/rc4-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/rc5-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/rmd-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/sha1-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/sha256-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/sha512-586.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/vpaes-x86.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/wp-mmx.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/x86-gf2m.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/x86-mont.S user/alc/PQ_LAUNDRY/secure/lib/libcrypto/i386/x86cpuid.S user/alc/PQ_LAUNDRY/share/i18n/esdb/Makefile.part user/alc/PQ_LAUNDRY/share/man/man4/cloudabi.4 user/alc/PQ_LAUNDRY/share/man/man4/man4.i386/ep.4 user/alc/PQ_LAUNDRY/share/man/man4/sn.4 user/alc/PQ_LAUNDRY/share/man/man5/src.conf.5 user/alc/PQ_LAUNDRY/share/mk/bsd.dep.mk user/alc/PQ_LAUNDRY/share/mk/bsd.libnames.mk user/alc/PQ_LAUNDRY/share/mk/bsd.obj.mk user/alc/PQ_LAUNDRY/share/mk/bsd.subdir.mk user/alc/PQ_LAUNDRY/share/mk/src.libnames.mk user/alc/PQ_LAUNDRY/share/mk/src.opts.mk user/alc/PQ_LAUNDRY/share/mk/src.sys.env.mk user/alc/PQ_LAUNDRY/sys/amd64/cloudabi64/cloudabi64_sysvec.c user/alc/PQ_LAUNDRY/sys/amd64/conf/NOTES user/alc/PQ_LAUNDRY/sys/amd64/include/intr_machdep.h user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_gpio.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_rtc.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/axp81x.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_gate.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_modclk.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_pll.c user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner user/alc/PQ_LAUNDRY/sys/arm/arm/elf_trampoline.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/busdma_bounce.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/gic_v3.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/pmap.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/trap.c user/alc/PQ_LAUNDRY/sys/arm64/cloudabi64/cloudabi64_sysvec.c user/alc/PQ_LAUNDRY/sys/arm64/conf/GENERIC user/alc/PQ_LAUNDRY/sys/arm64/include/pmap.h user/alc/PQ_LAUNDRY/sys/boot/common/dev_net.c user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/Makefile user/alc/PQ_LAUNDRY/sys/boot/efi/loader/Makefile user/alc/PQ_LAUNDRY/sys/boot/efi/loader/conf.c user/alc/PQ_LAUNDRY/sys/boot/efi/loader/devicename.c user/alc/PQ_LAUNDRY/sys/boot/userboot/userboot/main.c user/alc/PQ_LAUNDRY/sys/cam/ctl/ctl_frontend_iscsi.c user/alc/PQ_LAUNDRY/sys/cam/ctl/ctl_frontend_iscsi.h user/alc/PQ_LAUNDRY/sys/cam/ctl/ctl_ioctl.h user/alc/PQ_LAUNDRY/sys/cddl/boot/zfs/zfssubr.c user/alc/PQ_LAUNDRY/sys/compat/ia32/ia32_signal.h user/alc/PQ_LAUNDRY/sys/conf/files.amd64 user/alc/PQ_LAUNDRY/sys/conf/files.arm64 user/alc/PQ_LAUNDRY/sys/conf/files.i386 user/alc/PQ_LAUNDRY/sys/conf/kern.post.mk user/alc/PQ_LAUNDRY/sys/ddb/db_command.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/cxgbei/cxgbei.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/cxgbei/cxgbei.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/cxgbei/icl_cxgbei.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/include/vmbus.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_net_vsc.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_rndis_filter.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/if_hnvar.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/storvsc/hv_vstorage.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_heartbeat.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_shutdown.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_timesync.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_util.c user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/hv_util.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_brvar.h user/alc/PQ_LAUNDRY/sys/dev/hyperv/vmbus/vmbus_chan.c user/alc/PQ_LAUNDRY/sys/dev/intpm/intpm.c user/alc/PQ_LAUNDRY/sys/dev/ioat/ioat.c user/alc/PQ_LAUNDRY/sys/dev/iscsi/icl.c user/alc/PQ_LAUNDRY/sys/dev/iscsi/icl.h user/alc/PQ_LAUNDRY/sys/dev/iscsi/icl_soft.c user/alc/PQ_LAUNDRY/sys/dev/iscsi/iscsi.c user/alc/PQ_LAUNDRY/sys/dev/iscsi/iscsi.h user/alc/PQ_LAUNDRY/sys/dev/iscsi/iscsi_ioctl.h user/alc/PQ_LAUNDRY/sys/dev/iser/icl_iser.c user/alc/PQ_LAUNDRY/sys/dev/mlx5/mlx5_en/en.h user/alc/PQ_LAUNDRY/sys/dev/syscons/syscons.c user/alc/PQ_LAUNDRY/sys/dev/syscons/syscons.h user/alc/PQ_LAUNDRY/sys/dev/usb/controller/xhci.c user/alc/PQ_LAUNDRY/sys/dev/usb/input/uep.c user/alc/PQ_LAUNDRY/sys/dev/usb/input/ukbd.c user/alc/PQ_LAUNDRY/sys/dev/usb/net/if_urndis.c user/alc/PQ_LAUNDRY/sys/dev/usb/net/if_urndisreg.h user/alc/PQ_LAUNDRY/sys/i386/conf/NOTES user/alc/PQ_LAUNDRY/sys/i386/include/intr_machdep.h user/alc/PQ_LAUNDRY/sys/kern/kern_umtx.c user/alc/PQ_LAUNDRY/sys/kern/subr_witness.c user/alc/PQ_LAUNDRY/sys/modules/Makefile user/alc/PQ_LAUNDRY/sys/netinet/cc/cc.h user/alc/PQ_LAUNDRY/sys/netinet/cc/cc_newreno.c user/alc/PQ_LAUNDRY/sys/netinet/sctp_input.c user/alc/PQ_LAUNDRY/sys/netinet/sctputil.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_input.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_lro.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_var.h user/alc/PQ_LAUNDRY/sys/netinet/udp_usrreq.c user/alc/PQ_LAUNDRY/sys/netinet6/ip6_output.c user/alc/PQ_LAUNDRY/sys/netinet6/udp6_usrreq.c user/alc/PQ_LAUNDRY/sys/ofed/drivers/infiniband/core/iwcm.c user/alc/PQ_LAUNDRY/sys/powerpc/booke/booke_machdep.c user/alc/PQ_LAUNDRY/sys/powerpc/booke/pmap.c user/alc/PQ_LAUNDRY/sys/powerpc/include/pmap.h user/alc/PQ_LAUNDRY/sys/powerpc/powerpc/machdep.c user/alc/PQ_LAUNDRY/sys/powerpc/pseries/platform_chrp.c user/alc/PQ_LAUNDRY/sys/sys/mbuf.h user/alc/PQ_LAUNDRY/sys/sys/param.h user/alc/PQ_LAUNDRY/sys/x86/x86/msi.c user/alc/PQ_LAUNDRY/sys/x86/xen/hvm.c user/alc/PQ_LAUNDRY/tests/sys/kqueue/kqueue_test.sh user/alc/PQ_LAUNDRY/tests/sys/kqueue/vnode.c user/alc/PQ_LAUNDRY/tools/tools/nanobsd/defaults.sh user/alc/PQ_LAUNDRY/usr.bin/bsdiff/bspatch/bspatch.c user/alc/PQ_LAUNDRY/usr.bin/getconf/getconf.c user/alc/PQ_LAUNDRY/usr.bin/getconf/pathconf.gperf user/alc/PQ_LAUNDRY/usr.bin/indent/args.c user/alc/PQ_LAUNDRY/usr.bin/indent/indent.c user/alc/PQ_LAUNDRY/usr.bin/indent/io.c user/alc/PQ_LAUNDRY/usr.bin/indent/lexi.c user/alc/PQ_LAUNDRY/usr.bin/indent/parse.c user/alc/PQ_LAUNDRY/usr.bin/iscsictl/iscsictl.c user/alc/PQ_LAUNDRY/usr.sbin/cdcontrol/cdcontrol.1 user/alc/PQ_LAUNDRY/usr.sbin/cdcontrol/cdcontrol.c user/alc/PQ_LAUNDRY/usr.sbin/ctladm/ctladm.c user/alc/PQ_LAUNDRY/usr.sbin/ctld/chap.c user/alc/PQ_LAUNDRY/usr.sbin/ctld/ctld.c user/alc/PQ_LAUNDRY/usr.sbin/ctld/ctld.h user/alc/PQ_LAUNDRY/usr.sbin/ctld/kernel.c user/alc/PQ_LAUNDRY/usr.sbin/ctld/keys.c user/alc/PQ_LAUNDRY/usr.sbin/ctld/login.c user/alc/PQ_LAUNDRY/usr.sbin/ctld/pdu.c user/alc/PQ_LAUNDRY/usr.sbin/fifolog/lib/fifolog_int.c user/alc/PQ_LAUNDRY/usr.sbin/fifolog/lib/fifolog_reader.c user/alc/PQ_LAUNDRY/usr.sbin/iscsid/chap.c user/alc/PQ_LAUNDRY/usr.sbin/iscsid/iscsid.c user/alc/PQ_LAUNDRY/usr.sbin/iscsid/iscsid.h user/alc/PQ_LAUNDRY/usr.sbin/iscsid/keys.c user/alc/PQ_LAUNDRY/usr.sbin/iscsid/login.c user/alc/PQ_LAUNDRY/usr.sbin/iscsid/pdu.c user/alc/PQ_LAUNDRY/usr.sbin/kldxref/kldxref.c user/alc/PQ_LAUNDRY/usr.sbin/ntp/doc/sntp.8 user/alc/PQ_LAUNDRY/usr.sbin/pc-sysinstall/backend/functions-mountoptical.sh Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/cddl/ (props changed) user/alc/PQ_LAUNDRY/contrib/binutils/ (props changed) user/alc/PQ_LAUNDRY/contrib/sqlite3/ (props changed) user/alc/PQ_LAUNDRY/crypto/heimdal/ (props changed) user/alc/PQ_LAUNDRY/crypto/openssl/ (props changed) Modified: user/alc/PQ_LAUNDRY/Makefile.inc1 ============================================================================== --- user/alc/PQ_LAUNDRY/Makefile.inc1 Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/Makefile.inc1 Fri Aug 26 17:31:20 2016 (r304852) @@ -550,8 +550,18 @@ CROSSENV+= CC="${XCC} ${XCFLAGS}" CXX="$ BFLAGS+= -B${CROSS_BINUTILS_PREFIX} .endif -# External compiler needs sysroot and target flags. -.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no" + +# The internal bootstrap compiler has a default sysroot set by TOOLS_PREFIX +# and target set by TARGET/TARGET_ARCH. However, there are several needs to +# always pass an explicit --sysroot and -target. +# - External compiler needs sysroot and target flags. +# - External ld needs sysroot. +# - To be clear about the use of a sysroot when using the internal compiler. +# - Easier debugging. +# - Allowing WITH_SYSTEM_COMPILER+WITH_META_MODE to work together due to +# the flip-flopping build command when sometimes using external and +# sometimes using internal. +# - Allow using lld which has no support for default paths. .if !defined(CROSS_BINUTILS_PREFIX) || !exists(${CROSS_BINUTILS_PREFIX}) BFLAGS+= -B${WORLDTMP}/usr/bin .endif @@ -562,24 +572,28 @@ TARGET_ABI= gnueabihf TARGET_ABI= gnueabi .endif .endif -.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc +.if ${WANT_COMPILER_TYPE} == gcc || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) # GCC requires -isystem and -L when using a cross-compiler. --sysroot # won't set header path and -L is used to ensure the base library path # is added before the port PREFIX library path. XCFLAGS+= -isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib +# GCC requires -B to find /usr/lib/crti.o when using a cross-compiler +# combined with --sysroot. +XCFLAGS+= -B${WORLDTMP}/usr/lib # Force using libc++ for external GCC. # XXX: This should be checking MK_GNUCXX == no .if ${X_COMPILER_VERSION} >= 40800 XCXXFLAGS+= -isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \ -nostdinc++ -L${WORLDTMP}/../lib/libc++ .endif -.else +.elif ${WANT_COMPILER_TYPE} == clang || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == clang) TARGET_ABI?= unknown TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd12.0 XCFLAGS+= -target ${TARGET_TRIPLE} .endif XCFLAGS+= --sysroot=${WORLDTMP} -.endif # ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no" .if !empty(BFLAGS) XCFLAGS+= ${BFLAGS} Modified: user/alc/PQ_LAUNDRY/Makefile.libcompat ============================================================================== --- user/alc/PQ_LAUNDRY/Makefile.libcompat Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/Makefile.libcompat Fri Aug 26 17:31:20 2016 (r304852) @@ -73,7 +73,8 @@ LIBCOMPATCFLAGS+= ${LIBCOMPATCPUFLAGS} \ # Clang/GCC. LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat} -.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc +.if ${WANT_COMPILER_TYPE} == gcc || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) # GCC requires -isystem when using a cross-compiler and --sysroot. Note that # Makefile.inc1 only applies this with an external compiler but libcompat # always does since even in-tree GCC 4.2 needs this to override the built-in Modified: user/alc/PQ_LAUNDRY/UPDATING ============================================================================== --- user/alc/PQ_LAUNDRY/UPDATING Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/UPDATING Fri Aug 26 17:31:20 2016 (r304852) @@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160824: + r304787 changed some ioctl interfaces between the iSCSI userspace + programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be + rebuilt to work with new kernels. __FreeBSD_version has been bumped + to 1200005. + 20160818: The UDP receive code has been updated to only treat incoming UDP packets that were addressed to an L2 broadcast address as L3 Modified: user/alc/PQ_LAUNDRY/bin/dd/dd.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/dd/dd.1 Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/bin/dd/dd.1 Fri Aug 26 17:31:20 2016 (r304852) @@ -32,7 +32,7 @@ .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 .\" $FreeBSD$ .\" -.Dd February 28, 2016 +.Dd August 25, 2016 .Dt DD 1 .Os .Sh NAME @@ -414,7 +414,7 @@ Check for (even) parity errors on a file To create an image of a Mode-1 CD-ROM, which is a commonly used format for data CD-ROM disks, use a block size of 2048 bytes: .Pp -.Dl "dd if=/dev/acd0 of=filename.iso bs=2048" +.Dl "dd if=/dev/cd0 of=filename.iso bs=2048" .Pp Write a filesystem image to a memory stick, padding the end with zeros, if necessary, to a 1MiB boundary: Modified: user/alc/PQ_LAUNDRY/bin/ls/tests/ls_tests.sh ============================================================================== --- user/alc/PQ_LAUNDRY/bin/ls/tests/ls_tests.sh Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/bin/ls/tests/ls_tests.sh Fri Aug 26 17:31:20 2016 (r304852) @@ -84,6 +84,14 @@ create_test_inputs2() { create_test_dir + if ! getconf MIN_HOLE_SIZE "$(pwd)"; then + echo "getconf MIN_HOLE_SIZE $(pwd) failed; sparse files probably" \ + "not supported by file system" + mount + atf_skip "Test's work directory does not support sparse files;" \ + "try with a different TMPDIR?" + fi + for filesize in 1 512 $(( 2 * $KB )) $(( 10 * $KB )) $(( 512 * $KB )); \ do atf_check -e ignore -o empty -s exit:0 \ Modified: user/alc/PQ_LAUNDRY/cddl/lib/libdtrace/psinfo.d ============================================================================== --- user/alc/PQ_LAUNDRY/cddl/lib/libdtrace/psinfo.d Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/cddl/lib/libdtrace/psinfo.d Fri Aug 26 17:31:20 2016 (r304852) @@ -59,7 +59,7 @@ translator psinfo_t < struct proc *T > { pr_gid = T->p_ucred->cr_rgid; pr_egid = T->p_ucred->cr_groups[0]; pr_addr = 0; - pr_psargs = (T->p_args->ar_args == 0) ? "" : + pr_psargs = (T->p_args == 0) ? "" : memstr(T->p_args->ar_args, ' ', T->p_args->ar_length); pr_arglen = T->p_args->ar_length; pr_jailid = T->p_ucred->cr_prison->pr_id; Modified: user/alc/PQ_LAUNDRY/contrib/binutils/bfd/config.bfd ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/binutils/bfd/config.bfd Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/contrib/binutils/bfd/config.bfd Fri Aug 26 17:31:20 2016 (r304852) @@ -875,11 +875,11 @@ case "${targ}" in ;; mips*el-*-freebsd*) targ_defvec=bfd_elf32_tradlittlemips_vec - targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf32_ntradbigmisp_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" + targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" ;; mips*-*-freebsd*) targ_defvec=bfd_elf32_tradbigmips_vec - targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf32_ntradbigmisp_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" + targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" ;; mips*-dec-* | mips*el-*-ecoff*) targ_defvec=ecoff_little_vec Modified: user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.am ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.am Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.am Fri Aug 26 17:31:20 2016 (r304852) @@ -1,5 +1,5 @@ -AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c Modified: user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.in ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.in Fri Aug 26 17:28:57 2016 (r304851) +++ user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.in Fri Aug 26 17:31:20 2016 (r304852) @@ -305,6 +305,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ READLINE_LIBS = @READLINE_LIBS@ SED = @SED@ +SESSION_FLAGS = @SESSION_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -362,7 +363,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 Copied: user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.msc (from r304851, head/contrib/sqlite3/Makefile.msc) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.msc Fri Aug 26 17:31:20 2016 (r304852, copy of r304851, head/contrib/sqlite3/Makefile.msc) @@ -0,0 +1,971 @@ +#### DO NOT EDIT #### +# This makefile is automatically generated from the Makefile.msc at +# the root of the canonical SQLite source tree (not the +# amalgamation tarball) using the tool/mkmsvcmin.tcl +# script. +# + +# +# nmake Makefile for SQLite +# +############################################################################### +############################## START OF OPTIONS ############################### +############################################################################### + +# The toplevel directory of the source tree. This is the directory +# that contains this "Makefile.msc". +# +TOP = . + + +# Set this non-0 to enable full warnings (-W4, etc) when compiling. +# +!IFNDEF USE_FULLWARN +USE_FULLWARN = 0 +!ENDIF + +# Set this non-0 to enable full runtime error checks (-RTC1, etc). This +# has no effect if (any) optimizations are enabled. +# +!IFNDEF USE_RUNTIME_CHECKS +USE_RUNTIME_CHECKS = 0 +!ENDIF + +# Set this non-0 to use "stdcall" calling convention for the core library +# and shell executable. +# +!IFNDEF USE_STDCALL +USE_STDCALL = 0 +!ENDIF + +# Set this non-0 to have the shell executable link against the core dynamic +# link library. +# +!IFNDEF DYNAMIC_SHELL +DYNAMIC_SHELL = 0 +!ENDIF + +# Set this non-0 to enable extra code that attempts to detect misuse of the +# SQLite API. +# +!IFNDEF API_ARMOR +API_ARMOR = 0 +!ENDIF + +# If necessary, create a list of harmless compiler warnings to disable when +# compiling the various tools. For the SQLite source code itself, warnings, +# if any, will be disabled from within it. +# +!IFNDEF NO_WARN +!IF $(USE_FULLWARN)!=0 +NO_WARN = -wd4054 -wd4055 -wd4100 -wd4127 -wd4130 -wd4152 -wd4189 -wd4206 +NO_WARN = $(NO_WARN) -wd4210 -wd4232 -wd4305 -wd4306 -wd4702 -wd4706 +!ENDIF +!ENDIF + +# Set this non-0 to use the library paths and other options necessary for +# Windows Phone 8.1. +# +!IFNDEF USE_WP81_OPTS +USE_WP81_OPTS = 0 +!ENDIF + +# Set this non-0 to split the SQLite amalgamation file into chunks to +# be used for debugging with Visual Studio. +# +!IFNDEF SPLIT_AMALGAMATION +SPLIT_AMALGAMATION = 0 +!ENDIF + + +# Set this non-0 to dynamically link to the MSVC runtime library. +# +!IFNDEF USE_CRT_DLL +USE_CRT_DLL = 0 +!ENDIF + +# Set this non-0 to link to the RPCRT4 library. +# +!IFNDEF USE_RPCRT4_LIB +USE_RPCRT4_LIB = 0 +!ENDIF + +# Set this non-0 to generate assembly code listings for the source code +# files. +# +!IFNDEF USE_LISTINGS +USE_LISTINGS = 0 +!ENDIF + +# Set this non-0 to attempt setting the native compiler automatically +# for cross-compiling the command line tools needed during the compilation +# process. +# +!IFNDEF XCOMPILE +XCOMPILE = 0 +!ENDIF + +# Set this non-0 to use the native libraries paths for cross-compiling +# the command line tools needed during the compilation process. +# +!IFNDEF USE_NATIVE_LIBPATHS +USE_NATIVE_LIBPATHS = 0 +!ENDIF + +# Set this 0 to skip the compiling and embedding of version resources. +# +!IFNDEF USE_RC +USE_RC = 1 +!ENDIF + +# Set this non-0 to compile binaries suitable for the WinRT environment. +# This setting does not apply to any binaries that require Tcl to operate +# properly (i.e. the text fixture, etc). +# +!IFNDEF FOR_WINRT +FOR_WINRT = 0 +!ENDIF + +# Set this non-0 to compile binaries suitable for the UWP environment. +# This setting does not apply to any binaries that require Tcl to operate +# properly (i.e. the text fixture, etc). +# +!IFNDEF FOR_UWP +FOR_UWP = 0 +!ENDIF + +# Set this non-0 to compile binaries suitable for the Windows 10 platform. +# +!IFNDEF FOR_WIN10 +FOR_WIN10 = 0 +!ENDIF + + +# Set this to non-0 to create and use PDBs. +# +!IFNDEF SYMBOLS +SYMBOLS = 1 +!ENDIF + +# Set this to non-0 to use the SQLite debugging heap subsystem. +# +!IFNDEF MEMDEBUG +MEMDEBUG = 0 +!ENDIF + +# Set this to non-0 to use the Win32 native heap subsystem. +# +!IFNDEF WIN32HEAP +WIN32HEAP = 0 +!ENDIF + +# Set this to non-0 to enable OSTRACE() macros, which can be useful when +# debugging. +# +!IFNDEF OSTRACE +OSTRACE = 0 +!ENDIF + +# Set this to one of the following values to enable various debugging +# features. Each level includes the debugging options from the previous +# levels. Currently, the recognized values for DEBUG are: +# +# 0 == NDEBUG: Disables assert() and other runtime diagnostics. +# 1 == SQLITE_ENABLE_API_ARMOR: extra attempts to detect misuse of the API. +# 2 == Disables NDEBUG and all optimizations and then enables PDBs. +# 3 == SQLITE_DEBUG: Enables various diagnostics messages and code. +# 4 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call. +# 5 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros. +# 6 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros. +# +!IFNDEF DEBUG +DEBUG = 0 +!ENDIF + +# Enable use of available compiler optimizations? Normally, this should be +# non-zero. Setting this to zero, thus disabling all compiler optimizations, +# can be useful for testing. +# +!IFNDEF OPTIMIZATIONS +OPTIMIZATIONS = 2 +!ENDIF + +# Set this to non-0 to enable support for the session extension. +# +!IFNDEF SESSION +SESSION = 0 +!ENDIF + +# Set the source code file to be used by executables and libraries when +# they need the amalgamation. +# +!IFNDEF SQLITE3C +!IF $(SPLIT_AMALGAMATION)!=0 +SQLITE3C = sqlite3-all.c +!ELSE +SQLITE3C = sqlite3.c +!ENDIF +!ENDIF + +# Set the include code file to be used by executables and libraries when +# they need SQLite. +# +!IFNDEF SQLITE3H +SQLITE3H = sqlite3.h +!ENDIF + +# This is the name to use for the SQLite dynamic link library (DLL). +# +!IFNDEF SQLITE3DLL +!IF $(FOR_WIN10)!=0 +SQLITE3DLL = winsqlite3.dll +!ELSE +SQLITE3DLL = sqlite3.dll +!ENDIF +!ENDIF + +# This is the name to use for the SQLite import library (LIB). +# +!IFNDEF SQLITE3LIB +!IF $(FOR_WIN10)!=0 +SQLITE3LIB = winsqlite3.lib +!ELSE +SQLITE3LIB = sqlite3.lib +!ENDIF +!ENDIF + +# This is the name to use for the SQLite shell executable (EXE). +# +!IFNDEF SQLITE3EXE +!IF $(FOR_WIN10)!=0 +SQLITE3EXE = winsqlite3shell.exe +!ELSE +SQLITE3EXE = sqlite3.exe +!ENDIF +!ENDIF + +# This is the argument used to set the program database (PDB) file for the +# SQLite shell executable (EXE). +# +!IFNDEF SQLITE3EXEPDB +!IF $(FOR_WIN10)!=0 +SQLITE3EXEPDB = +!ELSE +SQLITE3EXEPDB = /pdb:sqlite3sh.pdb +!ENDIF +!ENDIF + +# These are the "standard" SQLite compilation options used when compiling for +# the Windows platform. +# +!IFNDEF OPT_FEATURE_FLAGS +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1 +!ENDIF + +# Should the session extension be enabled? If so, add compilation options +# to enable it. +# +!IF $(SESSION)!=0 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_SESSION=1 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_PREUPDATE_HOOK=1 +!ENDIF + +# These are the "extended" SQLite compilation options used when compiling for +# the Windows 10 platform. +# +!IFNDEF EXT_FEATURE_FLAGS +!IF $(FOR_WIN10)!=0 +EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS4=1 +EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_SYSTEM_MALLOC=1 +EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_OMIT_LOCALTIME=1 +!ELSE +EXT_FEATURE_FLAGS = +!ENDIF +!ENDIF + +############################################################################### +############################### END OF OPTIONS ################################ +############################################################################### + +# When compiling for the Windows 10 platform, the PLATFORM macro must be set +# to an appropriate value (e.g. x86, x64, arm, arm64, etc). +# +!IF $(FOR_WIN10)!=0 +!IFNDEF PLATFORM +!ERROR Using the FOR_WIN10 option requires a value for PLATFORM. +!ENDIF +!ENDIF + +# This assumes that MSVC is always installed in 32-bit Program Files directory +# and sets the variable for use in locating other 32-bit installs accordingly. +# +PROGRAMFILES_X86 = $(VCINSTALLDIR)\..\.. +PROGRAMFILES_X86 = $(PROGRAMFILES_X86:\\=\) + +# Check for the predefined command macro CC. This should point to the compiler +# binary for the target platform. If it is not defined, simply define it to +# the legacy default value 'cl.exe'. +# +!IFNDEF CC +CC = cl.exe +!ENDIF + +# Check for the predefined command macro CSC. This should point to a working +# C Sharp compiler binary. If it is not defined, simply define it to the +# legacy default value 'csc.exe'. +# +!IFNDEF CSC +CSC = csc.exe +!ENDIF + +# Check for the command macro LD. This should point to the linker binary for +# the target platform. If it is not defined, simply define it to the legacy +# default value 'link.exe'. +# +!IFNDEF LD +LD = link.exe +!ENDIF + +# Check for the predefined command macro RC. This should point to the resource +# compiler binary for the target platform. If it is not defined, simply define +# it to the legacy default value 'rc.exe'. +# +!IFNDEF RC +RC = rc.exe +!ENDIF + +# Check for the MSVC runtime library path macro. Otherwise, this value will +# default to the 'lib' directory underneath the MSVC installation directory. +# +!IFNDEF CRTLIBPATH +CRTLIBPATH = $(VCINSTALLDIR)\lib +!ENDIF + +CRTLIBPATH = $(CRTLIBPATH:\\=\) + +# Check for the command macro NCC. This should point to the compiler binary +# for the platform the compilation process is taking place on. If it is not +# defined, simply define it to have the same value as the CC macro. When +# cross-compiling, it is suggested that this macro be modified via the command +# line (since nmake itself does not provide a built-in method to guess it). +# For example, to use the x86 compiler when cross-compiling for x64, a command +# line similar to the following could be used (all on one line): +# +# nmake /f Makefile.msc sqlite3.dll +# XCOMPILE=1 USE_NATIVE_LIBPATHS=1 +# +# Alternatively, the full path and file name to the compiler binary for the +# platform the compilation process is taking place may be specified (all on +# one line): +# +# nmake /f Makefile.msc sqlite3.dll +# "NCC=""%VCINSTALLDIR%\bin\cl.exe""" +# USE_NATIVE_LIBPATHS=1 +# +!IFDEF NCC +NCC = $(NCC:\\=\) +!ELSEIF $(XCOMPILE)!=0 +NCC = "$(VCINSTALLDIR)\bin\$(CC)" +NCC = $(NCC:\\=\) +!ELSE +NCC = $(CC) +!ENDIF + +# Check for the MSVC native runtime library path macro. Otherwise, +# this value will default to the 'lib' directory underneath the MSVC +# installation directory. +# +!IFNDEF NCRTLIBPATH +NCRTLIBPATH = $(VCINSTALLDIR)\lib +!ENDIF + +NCRTLIBPATH = $(NCRTLIBPATH:\\=\) + +# Check for the Platform SDK library path macro. Otherwise, this +# value will default to the 'lib' directory underneath the Windows +# SDK installation directory (the environment variable used appears +# to be available when using Visual C++ 2008 or later via the +# command line). +# +!IFNDEF NSDKLIBPATH +NSDKLIBPATH = $(WINDOWSSDKDIR)\lib +!ENDIF + +NSDKLIBPATH = $(NSDKLIBPATH:\\=\) + +# Check for the UCRT library path macro. Otherwise, this value will +# default to the version-specific, platform-specific 'lib' directory +# underneath the Windows SDK installation directory. +# +!IFNDEF UCRTLIBPATH +UCRTLIBPATH = $(WINDOWSSDKDIR)\lib\$(WINDOWSSDKLIBVERSION)\ucrt\$(PLATFORM) +!ENDIF + +UCRTLIBPATH = $(UCRTLIBPATH:\\=\) + +# C compiler and options for use in building executables that +# will run on the platform that is doing the build. +# +!IF $(USE_FULLWARN)!=0 +BCC = $(NCC) -nologo -W4 $(CCOPTS) $(BCCOPTS) +!ELSE +BCC = $(NCC) -nologo -W3 $(CCOPTS) $(BCCOPTS) +!ENDIF + +# Check if assembly code listings should be generated for the source +# code files to be compiled. +# +!IF $(USE_LISTINGS)!=0 +BCC = $(BCC) -FAcs +!ENDIF + +# Check if the native library paths should be used when compiling +# the command line tools used during the compilation process. If +# so, set the necessary macro now. +# +!IF $(USE_NATIVE_LIBPATHS)!=0 +NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)" + +!IFDEF NUCRTLIBPATH +NUCRTLIBPATH = $(NUCRTLIBPATH:\\=\) +NLTLIBPATHS = $(NLTLIBPATHS) "/LIBPATH:$(NUCRTLIBPATH)" +!ENDIF +!ENDIF + +# C compiler and options for use in building executables that +# will run on the target platform. (BCC and TCC are usually the +# same unless your are cross-compiling.) +# +!IF $(USE_FULLWARN)!=0 +TCC = $(CC) -nologo -W4 -DINCLUDE_MSVC_H=1 $(CCOPTS) $(TCCOPTS) +!ELSE +TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS) +!ENDIF + +TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -fp:precise +RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) $(RCOPTS) $(RCCOPTS) + +# Check if we want to use the "stdcall" calling convention when compiling. +# This is not supported by the compilers for non-x86 platforms. It should +# also be noted here that building any target with these "stdcall" options +# will most likely fail if the Tcl library is also required. This is due +# to how the Tcl library functions are declared and exported (i.e. without +# an explicit calling convention, which results in "cdecl"). +# +!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0 +!IF "$(PLATFORM)"=="x86" +CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +!ELSE +!IFNDEF PLATFORM +CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +!ELSE +CORE_CCONV_OPTS = +SHELL_CCONV_OPTS = +!ENDIF +!ENDIF +!ELSE +CORE_CCONV_OPTS = +SHELL_CCONV_OPTS = +!ENDIF + +# These are additional compiler options used for the core library. +# +!IFNDEF CORE_COMPILE_OPTS +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport) +!ELSE +CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) +!ENDIF +!ENDIF + +# These are the additional targets that the core library should depend on +# when linking. +# +!IFNDEF CORE_LINK_DEP +!IF $(DYNAMIC_SHELL)!=0 +CORE_LINK_DEP = +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86" +CORE_LINK_DEP = sqlite3.def +!ELSE +CORE_LINK_DEP = +!ENDIF +!ENDIF + +# These are additional linker options used for the core library. +# +!IFNDEF CORE_LINK_OPTS +!IF $(DYNAMIC_SHELL)!=0 +CORE_LINK_OPTS = +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86" +CORE_LINK_OPTS = /DEF:sqlite3.def +!ELSE +CORE_LINK_OPTS = +!ENDIF +!ENDIF + +# These are additional compiler options used for the shell executable. +# +!IFNDEF SHELL_COMPILE_OPTS +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_COMPILE_OPTS = $(SHELL_CCONV_OPTS) -DSQLITE_API=__declspec(dllimport) +!ELSE +SHELL_COMPILE_OPTS = $(SHELL_CCONV_OPTS) +!ENDIF +!ENDIF + +# This is the source code that the shell executable should be compiled +# with. +# +!IFNDEF SHELL_CORE_SRC +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_CORE_SRC = +!ELSE +SHELL_CORE_SRC = $(SQLITE3C) +!ENDIF +!ENDIF + +# This is the core library that the shell executable should depend on. +# +!IFNDEF SHELL_CORE_DEP +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_CORE_DEP = $(SQLITE3DLL) +!ELSE +SHELL_CORE_DEP = +!ENDIF +!ENDIF + +# This is the core library that the shell executable should link with. +# +!IFNDEF SHELL_CORE_LIB +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_CORE_LIB = $(SQLITE3LIB) +!ELSE +SHELL_CORE_LIB = +!ENDIF +!ENDIF + +# These are additional linker options used for the shell executable. +# +!IFNDEF SHELL_LINK_OPTS +SHELL_LINK_OPTS = $(SHELL_CORE_LIB) +!ENDIF + +# Check if assembly code listings should be generated for the source +# code files to be compiled. +# +!IF $(USE_LISTINGS)!=0 +TCC = $(TCC) -FAcs +!ENDIF + +# When compiling the library for use in the WinRT environment, +# the following compile-time options must be used as well to +# disable use of Win32 APIs that are not available and to enable +# use of Win32 APIs that are specific to Windows 8 and/or WinRT. +# +!IF $(FOR_WINRT)!=0 +TCC = $(TCC) -DSQLITE_OS_WINRT=1 +RCC = $(RCC) -DSQLITE_OS_WINRT=1 +TCC = $(TCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP +RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP +!ENDIF + +# C compiler options for the Windows 10 platform (needs MSVC 2015). +# +!IF $(FOR_WIN10)!=0 +TCC = $(TCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE +BCC = $(BCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE +!ENDIF + +# Also, we need to dynamically link to the correct MSVC runtime +# when compiling for WinRT (e.g. debug or release) OR if the +# USE_CRT_DLL option is set to force dynamically linking to the +# MSVC runtime library. +# +!IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0 +!IF $(DEBUG)>1 +TCC = $(TCC) -MDd +BCC = $(BCC) -MDd +!ELSE +TCC = $(TCC) -MD +BCC = $(BCC) -MD +!ENDIF +!ELSE +!IF $(DEBUG)>1 +TCC = $(TCC) -MTd +BCC = $(BCC) -MTd +!ELSE +TCC = $(TCC) -MT +BCC = $(BCC) -MT +!ENDIF +!ENDIF + + +# Define -DNDEBUG to compile without debugging (i.e., for production usage) +# Omitting the define will cause extra debugging code to be inserted and +# includes extra comments when "EXPLAIN stmt" is used. +# +!IF $(DEBUG)==0 +TCC = $(TCC) -DNDEBUG +BCC = $(BCC) -DNDEBUG +RCC = $(RCC) -DNDEBUG +!ENDIF + +!IF $(DEBUG)>0 || $(API_ARMOR)!=0 || $(FOR_WIN10)!=0 +TCC = $(TCC) -DSQLITE_ENABLE_API_ARMOR=1 +RCC = $(RCC) -DSQLITE_ENABLE_API_ARMOR=1 +!ENDIF + +!IF $(DEBUG)>2 +TCC = $(TCC) -DSQLITE_DEBUG=1 +RCC = $(RCC) -DSQLITE_DEBUG=1 +!ENDIF + +!IF $(DEBUG)>4 || $(OSTRACE)!=0 +TCC = $(TCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1 +RCC = $(RCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1 +!ENDIF + +!IF $(DEBUG)>5 +TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE=1 +RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE=1 +!ENDIF + +# Prevent warnings about "insecure" MSVC runtime library functions +# being used. +# +TCC = $(TCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS +BCC = $(BCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS +RCC = $(RCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS + +# Prevent warnings about "deprecated" POSIX functions being used. +# +TCC = $(TCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS +BCC = $(BCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS +RCC = $(RCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS + +# Use the SQLite debugging heap subsystem? +# +!IF $(MEMDEBUG)!=0 +TCC = $(TCC) -DSQLITE_MEMDEBUG=1 +RCC = $(RCC) -DSQLITE_MEMDEBUG=1 + +# Use native Win32 heap subsystem instead of malloc/free? +# +!ELSEIF $(WIN32HEAP)!=0 +TCC = $(TCC) -DSQLITE_WIN32_MALLOC=1 +RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1 + +# Validate the heap on every call into the native Win32 heap subsystem? +# +!IF $(DEBUG)>3 +TCC = $(TCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 +RCC = $(RCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 +!ENDIF +!ENDIF + + +# Compiler options needed for programs that use the readline() library. +# +!IFNDEF READLINE_FLAGS +READLINE_FLAGS = -DHAVE_READLINE=0 +!ENDIF + +# The library that programs using readline() must link against. +# +!IFNDEF LIBREADLINE +LIBREADLINE = +!ENDIF + +# Should the database engine be compiled threadsafe +# +TCC = $(TCC) -DSQLITE_THREADSAFE=1 +RCC = $(RCC) -DSQLITE_THREADSAFE=1 + +# Do threads override each others locks by default (1), or do we test (-1) +# +TCC = $(TCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1 +RCC = $(RCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1 + +# Any target libraries which libsqlite must be linked against +# +!IFNDEF TLIBS +TLIBS = +!ENDIF + +# Flags controlling use of the in memory btree implementation +# +# SQLITE_TEMP_STORE is 0 to force temporary tables to be in a file, 1 to +# default to file, 2 to default to memory, and 3 to force temporary +# tables to always be in memory. +# +TCC = $(TCC) -DSQLITE_TEMP_STORE=1 +RCC = $(RCC) -DSQLITE_TEMP_STORE=1 + +# Enable/disable loadable extensions, and other optional features +# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*). +# The same set of OMIT and ENABLE flags should be passed to the +# LEMON parser generator and the mkkeywordhash tool as well. + +# These are the required SQLite compilation options used when compiling for +# the Windows platform. +# +REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100 + +# If we are linking to the RPCRT4 library, enable features that need it. +# +!IF $(USE_RPCRT4_LIB)!=0 +REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_WIN32_USE_UUID=1 +!ENDIF + +# Add the required and optional SQLite compilation options into the command +# lines used to invoke the MSVC code and resource compilers. +# +TCC = $(TCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) +RCC = $(RCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) + +# Add in any optional parameters specified on the commane line, e.g. +# nmake /f Makefile.msc all "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1" +# +TCC = $(TCC) $(OPTS) +RCC = $(RCC) $(OPTS) + +# If compiling for debugging, add some defines. +# +!IF $(DEBUG)>1 +TCC = $(TCC) -D_DEBUG +BCC = $(BCC) -D_DEBUG +RCC = $(RCC) -D_DEBUG +!ENDIF + +# If optimizations are enabled or disabled (either implicitly or +# explicitly), add the necessary flags. +# +!IF $(DEBUG)>1 || $(OPTIMIZATIONS)==0 +TCC = $(TCC) -Od +BCC = $(BCC) -Od +!IF $(USE_RUNTIME_CHECKS)!=0 +TCC = $(TCC) -RTC1 +BCC = $(BCC) -RTC1 +!ENDIF +!ELSEIF $(OPTIMIZATIONS)>=3 +TCC = $(TCC) -Ox +BCC = $(BCC) -Ox +!ELSEIF $(OPTIMIZATIONS)==2 +TCC = $(TCC) -O2 +BCC = $(BCC) -O2 +!ELSEIF $(OPTIMIZATIONS)==1 +TCC = $(TCC) -O1 +BCC = $(BCC) -O1 +!ENDIF + +# If symbols are enabled (or compiling for debugging), enable PDBs. +# +!IF $(DEBUG)>1 || $(SYMBOLS)!=0 +TCC = $(TCC) -Zi +BCC = $(BCC) -Zi +!ENDIF + + +# Command line prefixes for compiling code, compiling resources, +# linking, etc. +# +LTCOMPILE = $(TCC) -Fo$@ +LTRCOMPILE = $(RCC) -r +LTLIB = lib.exe +LTLINK = $(TCC) -Fe$@ + +# If requested, link to the RPCRT4 library. +# +!IF $(USE_RPCRT4_LIB)!=0 +LTLINK = $(LTLINK) rpcrt4.lib +!ENDIF + +# If a platform was set, force the linker to target that. +# Note that the vcvars*.bat family of batch files typically +# set this for you. Otherwise, the linker will attempt +# to deduce the binary type based on the object files. +!IFDEF PLATFORM +LTLINKOPTS = /NOLOGO /MACHINE:$(PLATFORM) +LTLIBOPTS = /NOLOGO /MACHINE:$(PLATFORM) +!ELSE +LTLINKOPTS = /NOLOGO +LTLIBOPTS = /NOLOGO +!ENDIF + +# When compiling for use in the WinRT environment, the following +# linker option must be used to mark the executable as runnable +# only in the context of an application container. +# +!IF $(FOR_WINRT)!=0 +LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER +!IF "$(VISUALSTUDIOVERSION)"=="12.0" || "$(VISUALSTUDIOVERSION)"=="14.0" +!IFNDEF STORELIBPATH +!IF "$(PLATFORM)"=="x86" +STORELIBPATH = $(CRTLIBPATH)\store +!ELSEIF "$(PLATFORM)"=="x64" +STORELIBPATH = $(CRTLIBPATH)\store\amd64 +!ELSEIF "$(PLATFORM)"=="ARM" +STORELIBPATH = $(CRTLIBPATH)\store\arm +!ELSE +STORELIBPATH = $(CRTLIBPATH)\store +!ENDIF +!ENDIF +STORELIBPATH = $(STORELIBPATH:\\=\) +LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(STORELIBPATH)" +!ENDIF +!ENDIF + +# When compiling for Windows Phone 8.1, an extra library path is +# required. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Fri Aug 26 17:32:54 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 517BDB75BB3 for ; Fri, 26 Aug 2016 17:32:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0E8ABB68; Fri, 26 Aug 2016 17:32:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7QHWrFe017309; Fri, 26 Aug 2016 17:32:53 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7QHWqUM017298; Fri, 26 Aug 2016 17:32:52 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608261732.u7QHWqUM017298@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 26 Aug 2016 17:32:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304853 - in user/alc/PG_CACHED: . bin/dd bin/ls/tests cddl/lib/libdtrace contrib/binutils/bfd contrib/sqlite3 contrib/sqlite3/tea crypto/heimdal/lib/hx509 crypto/openssl/crypto/bn/asm ... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2016 17:32:54 -0000 Author: markj Date: Fri Aug 26 17:32:51 2016 New Revision: 304853 URL: https://svnweb.freebsd.org/changeset/base/304853 Log: Merge from PQ_LAUNDRY at r304852 Added: user/alc/PG_CACHED/contrib/sqlite3/Makefile.msc - copied unchanged from r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.msc user/alc/PG_CACHED/contrib/sqlite3/Replace.cs - copied unchanged from r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/Replace.cs user/alc/PG_CACHED/contrib/sqlite3/compile - copied unchanged from r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/compile user/alc/PG_CACHED/contrib/sqlite3/sqlite3.rc - copied unchanged from r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/sqlite3.rc user/alc/PG_CACHED/contrib/sqlite3/tea/ - copied from r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/tea/ user/alc/PG_CACHED/lib/libifc/ - copied from r304852, user/alc/PQ_LAUNDRY/lib/libifc/ user/alc/PG_CACHED/secure/lib/libcrypto/arm/ - copied from r304852, user/alc/PQ_LAUNDRY/secure/lib/libcrypto/arm/ user/alc/PG_CACHED/share/examples/libifc/ - copied from r304852, user/alc/PQ_LAUNDRY/share/examples/libifc/ user/alc/PG_CACHED/sys/amd64/cloudabi32/ - copied from r304852, user/alc/PQ_LAUNDRY/sys/amd64/cloudabi32/ user/alc/PG_CACHED/sys/arm/allwinner/aw_ts.c - copied unchanged from r304852, user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_ts.c user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_vdso_i686.S - copied unchanged from r304852, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_i686.S user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S - copied unchanged from r304852, user/alc/PQ_LAUNDRY/sys/contrib/cloudabi/cloudabi_vdso_i686_on_64bit.S user/alc/PG_CACHED/sys/dev/hyperv/netvsc/ndis.h - copied unchanged from r304852, user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/ndis.h user/alc/PG_CACHED/sys/dev/hyperv/utilities/vmbus_icreg.h - copied unchanged from r304852, user/alc/PQ_LAUNDRY/sys/dev/hyperv/utilities/vmbus_icreg.h user/alc/PG_CACHED/sys/i386/cloudabi32/ - copied from r304852, user/alc/PQ_LAUNDRY/sys/i386/cloudabi32/ user/alc/PG_CACHED/sys/modules/cloudabi32/ - copied from r304852, user/alc/PQ_LAUNDRY/sys/modules/cloudabi32/ user/alc/PG_CACHED/sys/net/rndis.h - copied unchanged from r304852, user/alc/PQ_LAUNDRY/sys/net/rndis.h Deleted: user/alc/PG_CACHED/sys/contrib/cloudabi/cloudabi_types.h Modified: user/alc/PG_CACHED/Makefile.inc1 user/alc/PG_CACHED/Makefile.libcompat user/alc/PG_CACHED/UPDATING user/alc/PG_CACHED/bin/dd/dd.1 user/alc/PG_CACHED/bin/ls/tests/ls_tests.sh user/alc/PG_CACHED/cddl/lib/libdtrace/psinfo.d user/alc/PG_CACHED/contrib/binutils/bfd/config.bfd user/alc/PG_CACHED/contrib/sqlite3/Makefile.am user/alc/PG_CACHED/contrib/sqlite3/Makefile.in user/alc/PG_CACHED/contrib/sqlite3/configure user/alc/PG_CACHED/contrib/sqlite3/configure.ac user/alc/PG_CACHED/contrib/sqlite3/shell.c user/alc/PG_CACHED/contrib/sqlite3/sqlite3.c user/alc/PG_CACHED/contrib/sqlite3/sqlite3.h user/alc/PG_CACHED/contrib/sqlite3/sqlite3ext.h user/alc/PG_CACHED/crypto/heimdal/lib/hx509/version-script.map user/alc/PG_CACHED/crypto/openssl/crypto/bn/asm/armv4-gf2m.pl user/alc/PG_CACHED/crypto/openssl/crypto/sha/asm/sha256-armv4.pl user/alc/PG_CACHED/etc/newsyslog.conf user/alc/PG_CACHED/etc/ntp/leap-seconds (contents, props changed) user/alc/PG_CACHED/etc/rc.d/ntpd user/alc/PG_CACHED/include/xlocale/_locale.h user/alc/PG_CACHED/lib/Makefile user/alc/PG_CACHED/lib/libc/gen/__getosreldate.c user/alc/PG_CACHED/lib/libc/nls/msgcat.c user/alc/PG_CACHED/lib/libc/stdio/fgetln.c user/alc/PG_CACHED/lib/libc/stdio/fgetwc.c user/alc/PG_CACHED/lib/libc/stdio/fgetwln.c user/alc/PG_CACHED/lib/libc/stdio/fputwc.c user/alc/PG_CACHED/lib/libc/stdio/getdelim.c user/alc/PG_CACHED/lib/libc/stdio/vfprintf.c user/alc/PG_CACHED/lib/libc/stdio/vfwprintf.c user/alc/PG_CACHED/lib/libpam/modules/pam_ssh/pam_ssh.8 user/alc/PG_CACHED/lib/libpam/modules/pam_ssh/pam_ssh.c user/alc/PG_CACHED/lib/libstand/dosfs.c user/alc/PG_CACHED/libexec/rtld-elf/mips/reloc.c user/alc/PG_CACHED/sbin/camcontrol/camcontrol.c user/alc/PG_CACHED/sbin/ggate/ggatec/ggatec.8 user/alc/PG_CACHED/sbin/ggate/ggated/ggated.8 user/alc/PG_CACHED/sbin/resolvconf/Makefile user/alc/PG_CACHED/secure/lib/libcrypto/Makefile user/alc/PG_CACHED/secure/lib/libcrypto/Makefile.asm user/alc/PG_CACHED/secure/lib/libcrypto/Makefile.inc user/alc/PG_CACHED/secure/lib/libcrypto/amd64/aes-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/aesni-gcm-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/aesni-mb-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/aesni-sha1-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/aesni-sha256-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/aesni-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/bsaes-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/cmll-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/ecp_nistz256-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/ghash-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/md5-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/rc4-md5-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/rc4-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/rsaz-avx2.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/rsaz-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/sha1-mb-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/sha1-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/sha256-mb-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/sha256-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/sha512-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/vpaes-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/wp-x86_64.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/x86_64-gf2m.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/x86_64-mont.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/x86_64-mont5.S user/alc/PG_CACHED/secure/lib/libcrypto/amd64/x86_64cpuid.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/aes-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/aesni-x86.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/bf-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/bf-686.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/bn-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/cmll-x86.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/co-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/crypt586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/des-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/ghash-x86.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/md5-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/rc4-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/rc5-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/rmd-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/sha1-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/sha256-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/sha512-586.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/vpaes-x86.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/wp-mmx.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/x86-gf2m.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/x86-mont.S user/alc/PG_CACHED/secure/lib/libcrypto/i386/x86cpuid.S user/alc/PG_CACHED/share/i18n/esdb/Makefile.part user/alc/PG_CACHED/share/man/man4/cloudabi.4 user/alc/PG_CACHED/share/man/man4/man4.i386/ep.4 user/alc/PG_CACHED/share/man/man4/sn.4 user/alc/PG_CACHED/share/man/man5/src.conf.5 user/alc/PG_CACHED/share/mk/bsd.dep.mk user/alc/PG_CACHED/share/mk/bsd.libnames.mk user/alc/PG_CACHED/share/mk/bsd.obj.mk user/alc/PG_CACHED/share/mk/bsd.subdir.mk user/alc/PG_CACHED/share/mk/src.libnames.mk user/alc/PG_CACHED/share/mk/src.opts.mk user/alc/PG_CACHED/share/mk/src.sys.env.mk user/alc/PG_CACHED/sys/amd64/cloudabi64/cloudabi64_sysvec.c user/alc/PG_CACHED/sys/amd64/conf/NOTES user/alc/PG_CACHED/sys/amd64/include/intr_machdep.h user/alc/PG_CACHED/sys/arm/allwinner/a10_gpio.c user/alc/PG_CACHED/sys/arm/allwinner/aw_rtc.c user/alc/PG_CACHED/sys/arm/allwinner/axp81x.c user/alc/PG_CACHED/sys/arm/allwinner/clk/aw_gate.c user/alc/PG_CACHED/sys/arm/allwinner/clk/aw_modclk.c user/alc/PG_CACHED/sys/arm/allwinner/clk/aw_pll.c user/alc/PG_CACHED/sys/arm/allwinner/files.allwinner user/alc/PG_CACHED/sys/arm/arm/elf_trampoline.c user/alc/PG_CACHED/sys/arm64/arm64/busdma_bounce.c user/alc/PG_CACHED/sys/arm64/arm64/gic_v3.c user/alc/PG_CACHED/sys/arm64/arm64/pmap.c user/alc/PG_CACHED/sys/arm64/arm64/trap.c user/alc/PG_CACHED/sys/arm64/cloudabi64/cloudabi64_sysvec.c user/alc/PG_CACHED/sys/arm64/conf/GENERIC user/alc/PG_CACHED/sys/arm64/include/pmap.h user/alc/PG_CACHED/sys/boot/common/dev_net.c user/alc/PG_CACHED/sys/boot/efi/libefi/Makefile user/alc/PG_CACHED/sys/boot/efi/loader/Makefile user/alc/PG_CACHED/sys/boot/efi/loader/conf.c user/alc/PG_CACHED/sys/boot/efi/loader/devicename.c user/alc/PG_CACHED/sys/boot/userboot/userboot/main.c user/alc/PG_CACHED/sys/cam/ctl/ctl_frontend_iscsi.c user/alc/PG_CACHED/sys/cam/ctl/ctl_frontend_iscsi.h user/alc/PG_CACHED/sys/cam/ctl/ctl_ioctl.h user/alc/PG_CACHED/sys/cddl/boot/zfs/zfssubr.c user/alc/PG_CACHED/sys/compat/ia32/ia32_signal.h user/alc/PG_CACHED/sys/conf/files.amd64 user/alc/PG_CACHED/sys/conf/files.arm64 user/alc/PG_CACHED/sys/conf/files.i386 user/alc/PG_CACHED/sys/conf/kern.post.mk user/alc/PG_CACHED/sys/ddb/db_command.c user/alc/PG_CACHED/sys/dev/alc/if_alcvar.h user/alc/PG_CACHED/sys/dev/bhnd/bhndb/bhndb.c user/alc/PG_CACHED/sys/dev/cxgbe/cxgbei/cxgbei.c user/alc/PG_CACHED/sys/dev/cxgbe/cxgbei/cxgbei.h user/alc/PG_CACHED/sys/dev/cxgbe/cxgbei/icl_cxgbei.c user/alc/PG_CACHED/sys/dev/hyperv/include/vmbus.h user/alc/PG_CACHED/sys/dev/hyperv/netvsc/hv_net_vsc.c user/alc/PG_CACHED/sys/dev/hyperv/netvsc/hv_net_vsc.h user/alc/PG_CACHED/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c user/alc/PG_CACHED/sys/dev/hyperv/netvsc/hv_rndis.h user/alc/PG_CACHED/sys/dev/hyperv/netvsc/hv_rndis_filter.c user/alc/PG_CACHED/sys/dev/hyperv/netvsc/hv_rndis_filter.h user/alc/PG_CACHED/sys/dev/hyperv/netvsc/if_hnvar.h user/alc/PG_CACHED/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c user/alc/PG_CACHED/sys/dev/hyperv/storvsc/hv_vstorage.h user/alc/PG_CACHED/sys/dev/hyperv/utilities/hv_heartbeat.c user/alc/PG_CACHED/sys/dev/hyperv/utilities/hv_shutdown.c user/alc/PG_CACHED/sys/dev/hyperv/utilities/hv_timesync.c user/alc/PG_CACHED/sys/dev/hyperv/utilities/hv_util.c user/alc/PG_CACHED/sys/dev/hyperv/utilities/hv_util.h user/alc/PG_CACHED/sys/dev/hyperv/vmbus/vmbus_brvar.h user/alc/PG_CACHED/sys/dev/hyperv/vmbus/vmbus_chan.c user/alc/PG_CACHED/sys/dev/intpm/intpm.c user/alc/PG_CACHED/sys/dev/ioat/ioat.c user/alc/PG_CACHED/sys/dev/iscsi/icl.c user/alc/PG_CACHED/sys/dev/iscsi/icl.h user/alc/PG_CACHED/sys/dev/iscsi/icl_soft.c user/alc/PG_CACHED/sys/dev/iscsi/iscsi.c user/alc/PG_CACHED/sys/dev/iscsi/iscsi.h user/alc/PG_CACHED/sys/dev/iscsi/iscsi_ioctl.h user/alc/PG_CACHED/sys/dev/iser/icl_iser.c user/alc/PG_CACHED/sys/dev/mlx5/mlx5_en/en.h user/alc/PG_CACHED/sys/dev/syscons/syscons.c user/alc/PG_CACHED/sys/dev/syscons/syscons.h user/alc/PG_CACHED/sys/dev/usb/controller/xhci.c user/alc/PG_CACHED/sys/dev/usb/input/uep.c user/alc/PG_CACHED/sys/dev/usb/input/ukbd.c user/alc/PG_CACHED/sys/dev/usb/net/if_urndis.c user/alc/PG_CACHED/sys/dev/usb/net/if_urndisreg.h user/alc/PG_CACHED/sys/i386/conf/NOTES user/alc/PG_CACHED/sys/i386/include/intr_machdep.h user/alc/PG_CACHED/sys/kern/kern_umtx.c user/alc/PG_CACHED/sys/kern/subr_witness.c user/alc/PG_CACHED/sys/modules/Makefile user/alc/PG_CACHED/sys/netinet/cc/cc.h user/alc/PG_CACHED/sys/netinet/cc/cc_newreno.c user/alc/PG_CACHED/sys/netinet/sctp_input.c user/alc/PG_CACHED/sys/netinet/sctp_output.c user/alc/PG_CACHED/sys/netinet/sctputil.c user/alc/PG_CACHED/sys/netinet/tcp_input.c user/alc/PG_CACHED/sys/netinet/tcp_lro.c user/alc/PG_CACHED/sys/netinet/tcp_var.h user/alc/PG_CACHED/sys/netinet/udp_usrreq.c user/alc/PG_CACHED/sys/netinet6/ip6_output.c user/alc/PG_CACHED/sys/netinet6/udp6_usrreq.c user/alc/PG_CACHED/sys/ofed/drivers/infiniband/core/iwcm.c user/alc/PG_CACHED/sys/powerpc/booke/booke_machdep.c user/alc/PG_CACHED/sys/powerpc/booke/pmap.c user/alc/PG_CACHED/sys/powerpc/include/pmap.h user/alc/PG_CACHED/sys/powerpc/powerpc/machdep.c user/alc/PG_CACHED/sys/powerpc/pseries/platform_chrp.c user/alc/PG_CACHED/sys/sys/mbuf.h user/alc/PG_CACHED/sys/sys/param.h user/alc/PG_CACHED/sys/vm/vm_pageout.c user/alc/PG_CACHED/sys/x86/x86/msi.c user/alc/PG_CACHED/sys/x86/xen/hvm.c user/alc/PG_CACHED/tests/sys/kqueue/kqueue_test.sh user/alc/PG_CACHED/tests/sys/kqueue/vnode.c user/alc/PG_CACHED/tools/tools/nanobsd/defaults.sh user/alc/PG_CACHED/usr.bin/bsdiff/bspatch/bspatch.c user/alc/PG_CACHED/usr.bin/getconf/getconf.c user/alc/PG_CACHED/usr.bin/getconf/pathconf.gperf user/alc/PG_CACHED/usr.bin/indent/args.c user/alc/PG_CACHED/usr.bin/indent/indent.c user/alc/PG_CACHED/usr.bin/indent/io.c user/alc/PG_CACHED/usr.bin/indent/lexi.c user/alc/PG_CACHED/usr.bin/indent/parse.c user/alc/PG_CACHED/usr.bin/iscsictl/iscsictl.c user/alc/PG_CACHED/usr.sbin/cdcontrol/cdcontrol.1 user/alc/PG_CACHED/usr.sbin/cdcontrol/cdcontrol.c user/alc/PG_CACHED/usr.sbin/ctladm/ctladm.c user/alc/PG_CACHED/usr.sbin/ctld/chap.c user/alc/PG_CACHED/usr.sbin/ctld/ctld.c user/alc/PG_CACHED/usr.sbin/ctld/ctld.h user/alc/PG_CACHED/usr.sbin/ctld/kernel.c user/alc/PG_CACHED/usr.sbin/ctld/keys.c user/alc/PG_CACHED/usr.sbin/ctld/login.c user/alc/PG_CACHED/usr.sbin/ctld/pdu.c user/alc/PG_CACHED/usr.sbin/fifolog/lib/fifolog_int.c user/alc/PG_CACHED/usr.sbin/fifolog/lib/fifolog_reader.c user/alc/PG_CACHED/usr.sbin/iscsid/chap.c user/alc/PG_CACHED/usr.sbin/iscsid/iscsid.c user/alc/PG_CACHED/usr.sbin/iscsid/iscsid.h user/alc/PG_CACHED/usr.sbin/iscsid/keys.c user/alc/PG_CACHED/usr.sbin/iscsid/login.c user/alc/PG_CACHED/usr.sbin/iscsid/pdu.c user/alc/PG_CACHED/usr.sbin/kldxref/kldxref.c user/alc/PG_CACHED/usr.sbin/ntp/doc/sntp.8 user/alc/PG_CACHED/usr.sbin/pc-sysinstall/backend/functions-mountoptical.sh Directory Properties: user/alc/PG_CACHED/ (props changed) user/alc/PG_CACHED/cddl/ (props changed) user/alc/PG_CACHED/contrib/binutils/ (props changed) user/alc/PG_CACHED/contrib/sqlite3/ (props changed) user/alc/PG_CACHED/crypto/heimdal/ (props changed) user/alc/PG_CACHED/crypto/openssl/ (props changed) Modified: user/alc/PG_CACHED/Makefile.inc1 ============================================================================== --- user/alc/PG_CACHED/Makefile.inc1 Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/Makefile.inc1 Fri Aug 26 17:32:51 2016 (r304853) @@ -550,8 +550,18 @@ CROSSENV+= CC="${XCC} ${XCFLAGS}" CXX="$ BFLAGS+= -B${CROSS_BINUTILS_PREFIX} .endif -# External compiler needs sysroot and target flags. -.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no" + +# The internal bootstrap compiler has a default sysroot set by TOOLS_PREFIX +# and target set by TARGET/TARGET_ARCH. However, there are several needs to +# always pass an explicit --sysroot and -target. +# - External compiler needs sysroot and target flags. +# - External ld needs sysroot. +# - To be clear about the use of a sysroot when using the internal compiler. +# - Easier debugging. +# - Allowing WITH_SYSTEM_COMPILER+WITH_META_MODE to work together due to +# the flip-flopping build command when sometimes using external and +# sometimes using internal. +# - Allow using lld which has no support for default paths. .if !defined(CROSS_BINUTILS_PREFIX) || !exists(${CROSS_BINUTILS_PREFIX}) BFLAGS+= -B${WORLDTMP}/usr/bin .endif @@ -562,24 +572,28 @@ TARGET_ABI= gnueabihf TARGET_ABI= gnueabi .endif .endif -.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc +.if ${WANT_COMPILER_TYPE} == gcc || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) # GCC requires -isystem and -L when using a cross-compiler. --sysroot # won't set header path and -L is used to ensure the base library path # is added before the port PREFIX library path. XCFLAGS+= -isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib +# GCC requires -B to find /usr/lib/crti.o when using a cross-compiler +# combined with --sysroot. +XCFLAGS+= -B${WORLDTMP}/usr/lib # Force using libc++ for external GCC. # XXX: This should be checking MK_GNUCXX == no .if ${X_COMPILER_VERSION} >= 40800 XCXXFLAGS+= -isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \ -nostdinc++ -L${WORLDTMP}/../lib/libc++ .endif -.else +.elif ${WANT_COMPILER_TYPE} == clang || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == clang) TARGET_ABI?= unknown TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd12.0 XCFLAGS+= -target ${TARGET_TRIPLE} .endif XCFLAGS+= --sysroot=${WORLDTMP} -.endif # ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no" .if !empty(BFLAGS) XCFLAGS+= ${BFLAGS} Modified: user/alc/PG_CACHED/Makefile.libcompat ============================================================================== --- user/alc/PG_CACHED/Makefile.libcompat Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/Makefile.libcompat Fri Aug 26 17:32:51 2016 (r304853) @@ -73,7 +73,8 @@ LIBCOMPATCFLAGS+= ${LIBCOMPATCPUFLAGS} \ # Clang/GCC. LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat} -.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc +.if ${WANT_COMPILER_TYPE} == gcc || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) # GCC requires -isystem when using a cross-compiler and --sysroot. Note that # Makefile.inc1 only applies this with an external compiler but libcompat # always does since even in-tree GCC 4.2 needs this to override the built-in Modified: user/alc/PG_CACHED/UPDATING ============================================================================== --- user/alc/PG_CACHED/UPDATING Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/UPDATING Fri Aug 26 17:32:51 2016 (r304853) @@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160824: + r304787 changed some ioctl interfaces between the iSCSI userspace + programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be + rebuilt to work with new kernels. __FreeBSD_version has been bumped + to 1200005. + 20160818: The UDP receive code has been updated to only treat incoming UDP packets that were addressed to an L2 broadcast address as L3 Modified: user/alc/PG_CACHED/bin/dd/dd.1 ============================================================================== --- user/alc/PG_CACHED/bin/dd/dd.1 Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/bin/dd/dd.1 Fri Aug 26 17:32:51 2016 (r304853) @@ -32,7 +32,7 @@ .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 .\" $FreeBSD$ .\" -.Dd February 28, 2016 +.Dd August 25, 2016 .Dt DD 1 .Os .Sh NAME @@ -414,7 +414,7 @@ Check for (even) parity errors on a file To create an image of a Mode-1 CD-ROM, which is a commonly used format for data CD-ROM disks, use a block size of 2048 bytes: .Pp -.Dl "dd if=/dev/acd0 of=filename.iso bs=2048" +.Dl "dd if=/dev/cd0 of=filename.iso bs=2048" .Pp Write a filesystem image to a memory stick, padding the end with zeros, if necessary, to a 1MiB boundary: Modified: user/alc/PG_CACHED/bin/ls/tests/ls_tests.sh ============================================================================== --- user/alc/PG_CACHED/bin/ls/tests/ls_tests.sh Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/bin/ls/tests/ls_tests.sh Fri Aug 26 17:32:51 2016 (r304853) @@ -84,6 +84,14 @@ create_test_inputs2() { create_test_dir + if ! getconf MIN_HOLE_SIZE "$(pwd)"; then + echo "getconf MIN_HOLE_SIZE $(pwd) failed; sparse files probably" \ + "not supported by file system" + mount + atf_skip "Test's work directory does not support sparse files;" \ + "try with a different TMPDIR?" + fi + for filesize in 1 512 $(( 2 * $KB )) $(( 10 * $KB )) $(( 512 * $KB )); \ do atf_check -e ignore -o empty -s exit:0 \ Modified: user/alc/PG_CACHED/cddl/lib/libdtrace/psinfo.d ============================================================================== --- user/alc/PG_CACHED/cddl/lib/libdtrace/psinfo.d Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/cddl/lib/libdtrace/psinfo.d Fri Aug 26 17:32:51 2016 (r304853) @@ -59,7 +59,7 @@ translator psinfo_t < struct proc *T > { pr_gid = T->p_ucred->cr_rgid; pr_egid = T->p_ucred->cr_groups[0]; pr_addr = 0; - pr_psargs = (T->p_args->ar_args == 0) ? "" : + pr_psargs = (T->p_args == 0) ? "" : memstr(T->p_args->ar_args, ' ', T->p_args->ar_length); pr_arglen = T->p_args->ar_length; pr_jailid = T->p_ucred->cr_prison->pr_id; Modified: user/alc/PG_CACHED/contrib/binutils/bfd/config.bfd ============================================================================== --- user/alc/PG_CACHED/contrib/binutils/bfd/config.bfd Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/contrib/binutils/bfd/config.bfd Fri Aug 26 17:32:51 2016 (r304853) @@ -875,11 +875,11 @@ case "${targ}" in ;; mips*el-*-freebsd*) targ_defvec=bfd_elf32_tradlittlemips_vec - targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf32_ntradbigmisp_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" + targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" ;; mips*-*-freebsd*) targ_defvec=bfd_elf32_tradbigmips_vec - targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf32_ntradbigmisp_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" + targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" ;; mips*-dec-* | mips*el-*-ecoff*) targ_defvec=ecoff_little_vec Modified: user/alc/PG_CACHED/contrib/sqlite3/Makefile.am ============================================================================== --- user/alc/PG_CACHED/contrib/sqlite3/Makefile.am Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/contrib/sqlite3/Makefile.am Fri Aug 26 17:32:51 2016 (r304853) @@ -1,5 +1,5 @@ -AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c Modified: user/alc/PG_CACHED/contrib/sqlite3/Makefile.in ============================================================================== --- user/alc/PG_CACHED/contrib/sqlite3/Makefile.in Fri Aug 26 17:31:20 2016 (r304852) +++ user/alc/PG_CACHED/contrib/sqlite3/Makefile.in Fri Aug 26 17:32:51 2016 (r304853) @@ -305,6 +305,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ READLINE_LIBS = @READLINE_LIBS@ SED = @SED@ +SESSION_FLAGS = @SESSION_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -362,7 +363,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE +AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ @SESSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE lib_LTLIBRARIES = libsqlite3.la libsqlite3_la_SOURCES = sqlite3.c libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 Copied: user/alc/PG_CACHED/contrib/sqlite3/Makefile.msc (from r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.msc) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PG_CACHED/contrib/sqlite3/Makefile.msc Fri Aug 26 17:32:51 2016 (r304853, copy of r304852, user/alc/PQ_LAUNDRY/contrib/sqlite3/Makefile.msc) @@ -0,0 +1,971 @@ +#### DO NOT EDIT #### +# This makefile is automatically generated from the Makefile.msc at +# the root of the canonical SQLite source tree (not the +# amalgamation tarball) using the tool/mkmsvcmin.tcl +# script. +# + +# +# nmake Makefile for SQLite +# +############################################################################### +############################## START OF OPTIONS ############################### +############################################################################### + +# The toplevel directory of the source tree. This is the directory +# that contains this "Makefile.msc". +# +TOP = . + + +# Set this non-0 to enable full warnings (-W4, etc) when compiling. +# +!IFNDEF USE_FULLWARN +USE_FULLWARN = 0 +!ENDIF + +# Set this non-0 to enable full runtime error checks (-RTC1, etc). This +# has no effect if (any) optimizations are enabled. +# +!IFNDEF USE_RUNTIME_CHECKS +USE_RUNTIME_CHECKS = 0 +!ENDIF + +# Set this non-0 to use "stdcall" calling convention for the core library +# and shell executable. +# +!IFNDEF USE_STDCALL +USE_STDCALL = 0 +!ENDIF + +# Set this non-0 to have the shell executable link against the core dynamic +# link library. +# +!IFNDEF DYNAMIC_SHELL +DYNAMIC_SHELL = 0 +!ENDIF + +# Set this non-0 to enable extra code that attempts to detect misuse of the +# SQLite API. +# +!IFNDEF API_ARMOR +API_ARMOR = 0 +!ENDIF + +# If necessary, create a list of harmless compiler warnings to disable when +# compiling the various tools. For the SQLite source code itself, warnings, +# if any, will be disabled from within it. +# +!IFNDEF NO_WARN +!IF $(USE_FULLWARN)!=0 +NO_WARN = -wd4054 -wd4055 -wd4100 -wd4127 -wd4130 -wd4152 -wd4189 -wd4206 +NO_WARN = $(NO_WARN) -wd4210 -wd4232 -wd4305 -wd4306 -wd4702 -wd4706 +!ENDIF +!ENDIF + +# Set this non-0 to use the library paths and other options necessary for +# Windows Phone 8.1. +# +!IFNDEF USE_WP81_OPTS +USE_WP81_OPTS = 0 +!ENDIF + +# Set this non-0 to split the SQLite amalgamation file into chunks to +# be used for debugging with Visual Studio. +# +!IFNDEF SPLIT_AMALGAMATION +SPLIT_AMALGAMATION = 0 +!ENDIF + + +# Set this non-0 to dynamically link to the MSVC runtime library. +# +!IFNDEF USE_CRT_DLL +USE_CRT_DLL = 0 +!ENDIF + +# Set this non-0 to link to the RPCRT4 library. +# +!IFNDEF USE_RPCRT4_LIB +USE_RPCRT4_LIB = 0 +!ENDIF + +# Set this non-0 to generate assembly code listings for the source code +# files. +# +!IFNDEF USE_LISTINGS +USE_LISTINGS = 0 +!ENDIF + +# Set this non-0 to attempt setting the native compiler automatically +# for cross-compiling the command line tools needed during the compilation +# process. +# +!IFNDEF XCOMPILE +XCOMPILE = 0 +!ENDIF + +# Set this non-0 to use the native libraries paths for cross-compiling +# the command line tools needed during the compilation process. +# +!IFNDEF USE_NATIVE_LIBPATHS +USE_NATIVE_LIBPATHS = 0 +!ENDIF + +# Set this 0 to skip the compiling and embedding of version resources. +# +!IFNDEF USE_RC +USE_RC = 1 +!ENDIF + +# Set this non-0 to compile binaries suitable for the WinRT environment. +# This setting does not apply to any binaries that require Tcl to operate +# properly (i.e. the text fixture, etc). +# +!IFNDEF FOR_WINRT +FOR_WINRT = 0 +!ENDIF + +# Set this non-0 to compile binaries suitable for the UWP environment. +# This setting does not apply to any binaries that require Tcl to operate +# properly (i.e. the text fixture, etc). +# +!IFNDEF FOR_UWP +FOR_UWP = 0 +!ENDIF + +# Set this non-0 to compile binaries suitable for the Windows 10 platform. +# +!IFNDEF FOR_WIN10 +FOR_WIN10 = 0 +!ENDIF + + +# Set this to non-0 to create and use PDBs. +# +!IFNDEF SYMBOLS +SYMBOLS = 1 +!ENDIF + +# Set this to non-0 to use the SQLite debugging heap subsystem. +# +!IFNDEF MEMDEBUG +MEMDEBUG = 0 +!ENDIF + +# Set this to non-0 to use the Win32 native heap subsystem. +# +!IFNDEF WIN32HEAP +WIN32HEAP = 0 +!ENDIF + +# Set this to non-0 to enable OSTRACE() macros, which can be useful when +# debugging. +# +!IFNDEF OSTRACE +OSTRACE = 0 +!ENDIF + +# Set this to one of the following values to enable various debugging +# features. Each level includes the debugging options from the previous +# levels. Currently, the recognized values for DEBUG are: +# +# 0 == NDEBUG: Disables assert() and other runtime diagnostics. +# 1 == SQLITE_ENABLE_API_ARMOR: extra attempts to detect misuse of the API. +# 2 == Disables NDEBUG and all optimizations and then enables PDBs. +# 3 == SQLITE_DEBUG: Enables various diagnostics messages and code. +# 4 == SQLITE_WIN32_MALLOC_VALIDATE: Validate the Win32 native heap per call. +# 5 == SQLITE_DEBUG_OS_TRACE: Enables output from the OSTRACE() macros. +# 6 == SQLITE_ENABLE_IOTRACE: Enables output from the IOTRACE() macros. +# +!IFNDEF DEBUG +DEBUG = 0 +!ENDIF + +# Enable use of available compiler optimizations? Normally, this should be +# non-zero. Setting this to zero, thus disabling all compiler optimizations, +# can be useful for testing. +# +!IFNDEF OPTIMIZATIONS +OPTIMIZATIONS = 2 +!ENDIF + +# Set this to non-0 to enable support for the session extension. +# +!IFNDEF SESSION +SESSION = 0 +!ENDIF + +# Set the source code file to be used by executables and libraries when +# they need the amalgamation. +# +!IFNDEF SQLITE3C +!IF $(SPLIT_AMALGAMATION)!=0 +SQLITE3C = sqlite3-all.c +!ELSE +SQLITE3C = sqlite3.c +!ENDIF +!ENDIF + +# Set the include code file to be used by executables and libraries when +# they need SQLite. +# +!IFNDEF SQLITE3H +SQLITE3H = sqlite3.h +!ENDIF + +# This is the name to use for the SQLite dynamic link library (DLL). +# +!IFNDEF SQLITE3DLL +!IF $(FOR_WIN10)!=0 +SQLITE3DLL = winsqlite3.dll +!ELSE +SQLITE3DLL = sqlite3.dll +!ENDIF +!ENDIF + +# This is the name to use for the SQLite import library (LIB). +# +!IFNDEF SQLITE3LIB +!IF $(FOR_WIN10)!=0 +SQLITE3LIB = winsqlite3.lib +!ELSE +SQLITE3LIB = sqlite3.lib +!ENDIF +!ENDIF + +# This is the name to use for the SQLite shell executable (EXE). +# +!IFNDEF SQLITE3EXE +!IF $(FOR_WIN10)!=0 +SQLITE3EXE = winsqlite3shell.exe +!ELSE +SQLITE3EXE = sqlite3.exe +!ENDIF +!ENDIF + +# This is the argument used to set the program database (PDB) file for the +# SQLite shell executable (EXE). +# +!IFNDEF SQLITE3EXEPDB +!IF $(FOR_WIN10)!=0 +SQLITE3EXEPDB = +!ELSE +SQLITE3EXEPDB = /pdb:sqlite3sh.pdb +!ENDIF +!ENDIF + +# These are the "standard" SQLite compilation options used when compiling for +# the Windows platform. +# +!IFNDEF OPT_FEATURE_FLAGS +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1 +!ENDIF + +# Should the session extension be enabled? If so, add compilation options +# to enable it. +# +!IF $(SESSION)!=0 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_SESSION=1 +OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_PREUPDATE_HOOK=1 +!ENDIF + +# These are the "extended" SQLite compilation options used when compiling for +# the Windows 10 platform. +# +!IFNDEF EXT_FEATURE_FLAGS +!IF $(FOR_WIN10)!=0 +EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS4=1 +EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_SYSTEM_MALLOC=1 +EXT_FEATURE_FLAGS = $(EXT_FEATURE_FLAGS) -DSQLITE_OMIT_LOCALTIME=1 +!ELSE +EXT_FEATURE_FLAGS = +!ENDIF +!ENDIF + +############################################################################### +############################### END OF OPTIONS ################################ +############################################################################### + +# When compiling for the Windows 10 platform, the PLATFORM macro must be set +# to an appropriate value (e.g. x86, x64, arm, arm64, etc). +# +!IF $(FOR_WIN10)!=0 +!IFNDEF PLATFORM +!ERROR Using the FOR_WIN10 option requires a value for PLATFORM. +!ENDIF +!ENDIF + +# This assumes that MSVC is always installed in 32-bit Program Files directory +# and sets the variable for use in locating other 32-bit installs accordingly. +# +PROGRAMFILES_X86 = $(VCINSTALLDIR)\..\.. +PROGRAMFILES_X86 = $(PROGRAMFILES_X86:\\=\) + +# Check for the predefined command macro CC. This should point to the compiler +# binary for the target platform. If it is not defined, simply define it to +# the legacy default value 'cl.exe'. +# +!IFNDEF CC +CC = cl.exe +!ENDIF + +# Check for the predefined command macro CSC. This should point to a working +# C Sharp compiler binary. If it is not defined, simply define it to the +# legacy default value 'csc.exe'. +# +!IFNDEF CSC +CSC = csc.exe +!ENDIF + +# Check for the command macro LD. This should point to the linker binary for +# the target platform. If it is not defined, simply define it to the legacy +# default value 'link.exe'. +# +!IFNDEF LD +LD = link.exe +!ENDIF + +# Check for the predefined command macro RC. This should point to the resource +# compiler binary for the target platform. If it is not defined, simply define +# it to the legacy default value 'rc.exe'. +# +!IFNDEF RC +RC = rc.exe +!ENDIF + +# Check for the MSVC runtime library path macro. Otherwise, this value will +# default to the 'lib' directory underneath the MSVC installation directory. +# +!IFNDEF CRTLIBPATH +CRTLIBPATH = $(VCINSTALLDIR)\lib +!ENDIF + +CRTLIBPATH = $(CRTLIBPATH:\\=\) + +# Check for the command macro NCC. This should point to the compiler binary +# for the platform the compilation process is taking place on. If it is not +# defined, simply define it to have the same value as the CC macro. When +# cross-compiling, it is suggested that this macro be modified via the command +# line (since nmake itself does not provide a built-in method to guess it). +# For example, to use the x86 compiler when cross-compiling for x64, a command +# line similar to the following could be used (all on one line): +# +# nmake /f Makefile.msc sqlite3.dll +# XCOMPILE=1 USE_NATIVE_LIBPATHS=1 +# +# Alternatively, the full path and file name to the compiler binary for the +# platform the compilation process is taking place may be specified (all on +# one line): +# +# nmake /f Makefile.msc sqlite3.dll +# "NCC=""%VCINSTALLDIR%\bin\cl.exe""" +# USE_NATIVE_LIBPATHS=1 +# +!IFDEF NCC +NCC = $(NCC:\\=\) +!ELSEIF $(XCOMPILE)!=0 +NCC = "$(VCINSTALLDIR)\bin\$(CC)" +NCC = $(NCC:\\=\) +!ELSE +NCC = $(CC) +!ENDIF + +# Check for the MSVC native runtime library path macro. Otherwise, +# this value will default to the 'lib' directory underneath the MSVC +# installation directory. +# +!IFNDEF NCRTLIBPATH +NCRTLIBPATH = $(VCINSTALLDIR)\lib +!ENDIF + +NCRTLIBPATH = $(NCRTLIBPATH:\\=\) + +# Check for the Platform SDK library path macro. Otherwise, this +# value will default to the 'lib' directory underneath the Windows +# SDK installation directory (the environment variable used appears +# to be available when using Visual C++ 2008 or later via the +# command line). +# +!IFNDEF NSDKLIBPATH +NSDKLIBPATH = $(WINDOWSSDKDIR)\lib +!ENDIF + +NSDKLIBPATH = $(NSDKLIBPATH:\\=\) + +# Check for the UCRT library path macro. Otherwise, this value will +# default to the version-specific, platform-specific 'lib' directory +# underneath the Windows SDK installation directory. +# +!IFNDEF UCRTLIBPATH +UCRTLIBPATH = $(WINDOWSSDKDIR)\lib\$(WINDOWSSDKLIBVERSION)\ucrt\$(PLATFORM) +!ENDIF + +UCRTLIBPATH = $(UCRTLIBPATH:\\=\) + +# C compiler and options for use in building executables that +# will run on the platform that is doing the build. +# +!IF $(USE_FULLWARN)!=0 +BCC = $(NCC) -nologo -W4 $(CCOPTS) $(BCCOPTS) +!ELSE +BCC = $(NCC) -nologo -W3 $(CCOPTS) $(BCCOPTS) +!ENDIF + +# Check if assembly code listings should be generated for the source +# code files to be compiled. +# +!IF $(USE_LISTINGS)!=0 +BCC = $(BCC) -FAcs +!ENDIF + +# Check if the native library paths should be used when compiling +# the command line tools used during the compilation process. If +# so, set the necessary macro now. +# +!IF $(USE_NATIVE_LIBPATHS)!=0 +NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)" + +!IFDEF NUCRTLIBPATH +NUCRTLIBPATH = $(NUCRTLIBPATH:\\=\) +NLTLIBPATHS = $(NLTLIBPATHS) "/LIBPATH:$(NUCRTLIBPATH)" +!ENDIF +!ENDIF + +# C compiler and options for use in building executables that +# will run on the target platform. (BCC and TCC are usually the +# same unless your are cross-compiling.) +# +!IF $(USE_FULLWARN)!=0 +TCC = $(CC) -nologo -W4 -DINCLUDE_MSVC_H=1 $(CCOPTS) $(TCCOPTS) +!ELSE +TCC = $(CC) -nologo -W3 $(CCOPTS) $(TCCOPTS) +!ENDIF + +TCC = $(TCC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) -fp:precise +RCC = $(RC) -DSQLITE_OS_WIN=1 -I. -I$(TOP) $(RCOPTS) $(RCCOPTS) + +# Check if we want to use the "stdcall" calling convention when compiling. +# This is not supported by the compilers for non-x86 platforms. It should +# also be noted here that building any target with these "stdcall" options +# will most likely fail if the Tcl library is also required. This is due +# to how the Tcl library functions are declared and exported (i.e. without +# an explicit calling convention, which results in "cdecl"). +# +!IF $(USE_STDCALL)!=0 || $(FOR_WIN10)!=0 +!IF "$(PLATFORM)"=="x86" +CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +!ELSE +!IFNDEF PLATFORM +CORE_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +SHELL_CCONV_OPTS = -Gz -DSQLITE_CDECL=__cdecl -DSQLITE_APICALL=__stdcall -DSQLITE_CALLBACK=__stdcall -DSQLITE_SYSAPI=__stdcall +!ELSE +CORE_CCONV_OPTS = +SHELL_CCONV_OPTS = +!ENDIF +!ENDIF +!ELSE +CORE_CCONV_OPTS = +SHELL_CCONV_OPTS = +!ENDIF + +# These are additional compiler options used for the core library. +# +!IFNDEF CORE_COMPILE_OPTS +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport) +!ELSE +CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) +!ENDIF +!ENDIF + +# These are the additional targets that the core library should depend on +# when linking. +# +!IFNDEF CORE_LINK_DEP +!IF $(DYNAMIC_SHELL)!=0 +CORE_LINK_DEP = +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86" +CORE_LINK_DEP = sqlite3.def +!ELSE +CORE_LINK_DEP = +!ENDIF +!ENDIF + +# These are additional linker options used for the core library. +# +!IFNDEF CORE_LINK_OPTS +!IF $(DYNAMIC_SHELL)!=0 +CORE_LINK_OPTS = +!ELSEIF $(FOR_WIN10)==0 || "$(PLATFORM)"=="x86" +CORE_LINK_OPTS = /DEF:sqlite3.def +!ELSE +CORE_LINK_OPTS = +!ENDIF +!ENDIF + +# These are additional compiler options used for the shell executable. +# +!IFNDEF SHELL_COMPILE_OPTS +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_COMPILE_OPTS = $(SHELL_CCONV_OPTS) -DSQLITE_API=__declspec(dllimport) +!ELSE +SHELL_COMPILE_OPTS = $(SHELL_CCONV_OPTS) +!ENDIF +!ENDIF + +# This is the source code that the shell executable should be compiled +# with. +# +!IFNDEF SHELL_CORE_SRC +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_CORE_SRC = +!ELSE +SHELL_CORE_SRC = $(SQLITE3C) +!ENDIF +!ENDIF + +# This is the core library that the shell executable should depend on. +# +!IFNDEF SHELL_CORE_DEP +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_CORE_DEP = $(SQLITE3DLL) +!ELSE +SHELL_CORE_DEP = +!ENDIF +!ENDIF + +# This is the core library that the shell executable should link with. +# +!IFNDEF SHELL_CORE_LIB +!IF $(DYNAMIC_SHELL)!=0 || $(FOR_WIN10)!=0 +SHELL_CORE_LIB = $(SQLITE3LIB) +!ELSE +SHELL_CORE_LIB = +!ENDIF +!ENDIF + +# These are additional linker options used for the shell executable. +# +!IFNDEF SHELL_LINK_OPTS +SHELL_LINK_OPTS = $(SHELL_CORE_LIB) +!ENDIF + +# Check if assembly code listings should be generated for the source +# code files to be compiled. +# +!IF $(USE_LISTINGS)!=0 +TCC = $(TCC) -FAcs +!ENDIF + +# When compiling the library for use in the WinRT environment, +# the following compile-time options must be used as well to +# disable use of Win32 APIs that are not available and to enable +# use of Win32 APIs that are specific to Windows 8 and/or WinRT. +# +!IF $(FOR_WINRT)!=0 +TCC = $(TCC) -DSQLITE_OS_WINRT=1 +RCC = $(RCC) -DSQLITE_OS_WINRT=1 +TCC = $(TCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP +RCC = $(RCC) -DWINAPI_FAMILY=WINAPI_FAMILY_APP +!ENDIF + +# C compiler options for the Windows 10 platform (needs MSVC 2015). +# +!IF $(FOR_WIN10)!=0 +TCC = $(TCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE +BCC = $(BCC) /d2guard4 -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE +!ENDIF + +# Also, we need to dynamically link to the correct MSVC runtime +# when compiling for WinRT (e.g. debug or release) OR if the +# USE_CRT_DLL option is set to force dynamically linking to the +# MSVC runtime library. +# +!IF $(FOR_WINRT)!=0 || $(USE_CRT_DLL)!=0 +!IF $(DEBUG)>1 +TCC = $(TCC) -MDd +BCC = $(BCC) -MDd +!ELSE +TCC = $(TCC) -MD +BCC = $(BCC) -MD +!ENDIF +!ELSE +!IF $(DEBUG)>1 +TCC = $(TCC) -MTd +BCC = $(BCC) -MTd +!ELSE +TCC = $(TCC) -MT +BCC = $(BCC) -MT +!ENDIF +!ENDIF + + +# Define -DNDEBUG to compile without debugging (i.e., for production usage) +# Omitting the define will cause extra debugging code to be inserted and +# includes extra comments when "EXPLAIN stmt" is used. +# +!IF $(DEBUG)==0 +TCC = $(TCC) -DNDEBUG +BCC = $(BCC) -DNDEBUG +RCC = $(RCC) -DNDEBUG +!ENDIF + +!IF $(DEBUG)>0 || $(API_ARMOR)!=0 || $(FOR_WIN10)!=0 +TCC = $(TCC) -DSQLITE_ENABLE_API_ARMOR=1 +RCC = $(RCC) -DSQLITE_ENABLE_API_ARMOR=1 +!ENDIF + +!IF $(DEBUG)>2 +TCC = $(TCC) -DSQLITE_DEBUG=1 +RCC = $(RCC) -DSQLITE_DEBUG=1 +!ENDIF + +!IF $(DEBUG)>4 || $(OSTRACE)!=0 +TCC = $(TCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1 +RCC = $(RCC) -DSQLITE_FORCE_OS_TRACE=1 -DSQLITE_DEBUG_OS_TRACE=1 +!ENDIF + +!IF $(DEBUG)>5 +TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE=1 +RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE=1 +!ENDIF + +# Prevent warnings about "insecure" MSVC runtime library functions +# being used. +# +TCC = $(TCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS +BCC = $(BCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS +RCC = $(RCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS + +# Prevent warnings about "deprecated" POSIX functions being used. +# +TCC = $(TCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS +BCC = $(BCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS +RCC = $(RCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS + +# Use the SQLite debugging heap subsystem? +# +!IF $(MEMDEBUG)!=0 +TCC = $(TCC) -DSQLITE_MEMDEBUG=1 +RCC = $(RCC) -DSQLITE_MEMDEBUG=1 + +# Use native Win32 heap subsystem instead of malloc/free? +# +!ELSEIF $(WIN32HEAP)!=0 +TCC = $(TCC) -DSQLITE_WIN32_MALLOC=1 +RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1 + +# Validate the heap on every call into the native Win32 heap subsystem? +# +!IF $(DEBUG)>3 +TCC = $(TCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 +RCC = $(RCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 +!ENDIF +!ENDIF + + +# Compiler options needed for programs that use the readline() library. +# +!IFNDEF READLINE_FLAGS +READLINE_FLAGS = -DHAVE_READLINE=0 +!ENDIF + +# The library that programs using readline() must link against. +# +!IFNDEF LIBREADLINE +LIBREADLINE = +!ENDIF + +# Should the database engine be compiled threadsafe +# +TCC = $(TCC) -DSQLITE_THREADSAFE=1 +RCC = $(RCC) -DSQLITE_THREADSAFE=1 + +# Do threads override each others locks by default (1), or do we test (-1) +# +TCC = $(TCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1 +RCC = $(RCC) -DSQLITE_THREAD_OVERRIDE_LOCK=-1 + +# Any target libraries which libsqlite must be linked against +# +!IFNDEF TLIBS +TLIBS = +!ENDIF + +# Flags controlling use of the in memory btree implementation +# +# SQLITE_TEMP_STORE is 0 to force temporary tables to be in a file, 1 to +# default to file, 2 to default to memory, and 3 to force temporary +# tables to always be in memory. +# +TCC = $(TCC) -DSQLITE_TEMP_STORE=1 +RCC = $(RCC) -DSQLITE_TEMP_STORE=1 + +# Enable/disable loadable extensions, and other optional features +# based on configuration. (-DSQLITE_OMIT*, -DSQLITE_ENABLE*). +# The same set of OMIT and ENABLE flags should be passed to the +# LEMON parser generator and the mkkeywordhash tool as well. + +# These are the required SQLite compilation options used when compiling for +# the Windows platform. +# +REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100 + +# If we are linking to the RPCRT4 library, enable features that need it. +# +!IF $(USE_RPCRT4_LIB)!=0 +REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_WIN32_USE_UUID=1 +!ENDIF + +# Add the required and optional SQLite compilation options into the command +# lines used to invoke the MSVC code and resource compilers. +# +TCC = $(TCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) +RCC = $(RCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) + +# Add in any optional parameters specified on the commane line, e.g. +# nmake /f Makefile.msc all "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1" +# +TCC = $(TCC) $(OPTS) +RCC = $(RCC) $(OPTS) + +# If compiling for debugging, add some defines. +# +!IF $(DEBUG)>1 +TCC = $(TCC) -D_DEBUG +BCC = $(BCC) -D_DEBUG +RCC = $(RCC) -D_DEBUG +!ENDIF + +# If optimizations are enabled or disabled (either implicitly or +# explicitly), add the necessary flags. +# +!IF $(DEBUG)>1 || $(OPTIMIZATIONS)==0 +TCC = $(TCC) -Od +BCC = $(BCC) -Od +!IF $(USE_RUNTIME_CHECKS)!=0 +TCC = $(TCC) -RTC1 +BCC = $(BCC) -RTC1 +!ENDIF +!ELSEIF $(OPTIMIZATIONS)>=3 +TCC = $(TCC) -Ox +BCC = $(BCC) -Ox +!ELSEIF $(OPTIMIZATIONS)==2 +TCC = $(TCC) -O2 +BCC = $(BCC) -O2 +!ELSEIF $(OPTIMIZATIONS)==1 +TCC = $(TCC) -O1 +BCC = $(BCC) -O1 +!ENDIF + +# If symbols are enabled (or compiling for debugging), enable PDBs. +# +!IF $(DEBUG)>1 || $(SYMBOLS)!=0 +TCC = $(TCC) -Zi +BCC = $(BCC) -Zi +!ENDIF + + +# Command line prefixes for compiling code, compiling resources, +# linking, etc. +# +LTCOMPILE = $(TCC) -Fo$@ +LTRCOMPILE = $(RCC) -r +LTLIB = lib.exe +LTLINK = $(TCC) -Fe$@ + +# If requested, link to the RPCRT4 library. +# +!IF $(USE_RPCRT4_LIB)!=0 +LTLINK = $(LTLINK) rpcrt4.lib +!ENDIF + +# If a platform was set, force the linker to target that. +# Note that the vcvars*.bat family of batch files typically +# set this for you. Otherwise, the linker will attempt +# to deduce the binary type based on the object files. +!IFDEF PLATFORM +LTLINKOPTS = /NOLOGO /MACHINE:$(PLATFORM) +LTLIBOPTS = /NOLOGO /MACHINE:$(PLATFORM) +!ELSE +LTLINKOPTS = /NOLOGO +LTLIBOPTS = /NOLOGO +!ENDIF + +# When compiling for use in the WinRT environment, the following +# linker option must be used to mark the executable as runnable +# only in the context of an application container. +# +!IF $(FOR_WINRT)!=0 +LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER +!IF "$(VISUALSTUDIOVERSION)"=="12.0" || "$(VISUALSTUDIOVERSION)"=="14.0" +!IFNDEF STORELIBPATH +!IF "$(PLATFORM)"=="x86" +STORELIBPATH = $(CRTLIBPATH)\store +!ELSEIF "$(PLATFORM)"=="x64" +STORELIBPATH = $(CRTLIBPATH)\store\amd64 +!ELSEIF "$(PLATFORM)"=="ARM" +STORELIBPATH = $(CRTLIBPATH)\store\arm +!ELSE +STORELIBPATH = $(CRTLIBPATH)\store +!ENDIF +!ENDIF +STORELIBPATH = $(STORELIBPATH:\\=\) +LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(STORELIBPATH)" +!ENDIF +!ENDIF + +# When compiling for Windows Phone 8.1, an extra library path is +# required. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Sat Aug 27 18:51:05 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91E5CB77A14 for ; Sat, 27 Aug 2016 18:51:05 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 55FB581; Sat, 27 Aug 2016 18:51:05 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7RIp4Xa082304; Sat, 27 Aug 2016 18:51:04 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7RIp4pe082303; Sat, 27 Aug 2016 18:51:04 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201608271851.u7RIp4pe082303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sat, 27 Aug 2016 18:51:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304917 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2016 18:51:05 -0000 Author: alc Date: Sat Aug 27 18:51:04 2016 New Revision: 304917 URL: https://svnweb.freebsd.org/changeset/base/304917 Log: Changes to vm_pageout_laundry_worker(): Reset "last_launder" on each cycle of a shortfall laundering run, just like we do for background laundering. Update a comment about background laundering that has become stale. Apply a couple style changes for consistency with the rest of the function. Add a comment explaining why min() is applied to the return value from vm_pageout_launder(). Sponsored by: EMC / Isilon Storage Division Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Aug 27 18:12:42 2016 (r304916) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Aug 27 18:51:04 2016 (r304917) @@ -1158,8 +1158,8 @@ vm_pageout_laundry_worker(void *arg) */ if (vm_laundry_target() <= 0 || cycle == 0) { prev_shortfall = target = 0; - last_launder = wakeups; } else { + last_launder = wakeups; launder = target / cycle--; goto dolaundry; } @@ -1171,7 +1171,8 @@ vm_pageout_laundry_worker(void *arg) * * 1. The ratio of dirty to clean inactive pages exceeds the * background laundering threshold and the pagedaemon has - * recently been woken up, or + * been woken up to reclaim pages since our last + * laundering, or * 2. we haven't yet reached the target of the current * background laundering run. * @@ -1188,6 +1189,7 @@ vm_pageout_laundry_worker(void *arg) last_launder = wakeups; target = starting_target = vm_background_launder_target; } + /* * We have a non-zero background laundering target. If we've * laundered up to our maximum without observing a page daemon @@ -1197,14 +1199,13 @@ vm_pageout_laundry_worker(void *arg) * proceed at the background laundering rate. */ if (target > 0) { - if (last_launder != wakeups) { + if (wakeups != last_launder) { last_launder = wakeups; starting_target = target; } else if (starting_target - target >= vm_background_launder_max * PAGE_SIZE / 1024) { target = 0; } - launder = vm_background_launder_rate * PAGE_SIZE / 1024; launder /= VM_LAUNDER_INTERVAL; if (launder < target) @@ -1212,10 +1213,15 @@ vm_pageout_laundry_worker(void *arg) } dolaundry: - if (launder > 0) + if (launder > 0) { + /* + * Because of I/O clustering, the number of laundered + * pages could exceed "target" by the maximum size of + * a cluster minus one. + */ target -= min(vm_pageout_launder(domain, launder, prev_shortfall > 0), target); - + } tsleep(&vm_cnt.v_laundry_count, PVM, "laundr", hz / VM_LAUNDER_INTERVAL); } From owner-svn-src-user@freebsd.org Sat Aug 27 21:52:59 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 162C8B77F19 for ; Sat, 27 Aug 2016 21:52:59 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D04ACB43; Sat, 27 Aug 2016 21:52:58 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7RLqwLq052551; Sat, 27 Aug 2016 21:52:58 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7RLqwPF052550; Sat, 27 Aug 2016 21:52:58 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201608272152.u7RLqwPF052550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sat, 27 Aug 2016 21:52:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304924 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2016 21:52:59 -0000 Author: alc Date: Sat Aug 27 21:52:57 2016 New Revision: 304924 URL: https://svnweb.freebsd.org/changeset/base/304924 Log: Eliminate redundant assignments to "last_launder" and "starting_target". Correct an inverted comparison. Reviewed by: markj Sponsored by: EMC / Isilon Storage Division Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Aug 27 21:32:56 2016 (r304923) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Aug 27 21:52:57 2016 (r304924) @@ -1186,8 +1186,7 @@ vm_pageout_laundry_worker(void *arg) ndirty = vm_cnt.v_laundry_count; if (target == 0 && wakeups != last_launder && ndirty * isqrt(wakeups - last_launder) >= nclean) { - last_launder = wakeups; - target = starting_target = vm_background_launder_target; + target = vm_background_launder_target; } /* @@ -1208,7 +1207,7 @@ vm_pageout_laundry_worker(void *arg) } launder = vm_background_launder_rate * PAGE_SIZE / 1024; launder /= VM_LAUNDER_INTERVAL; - if (launder < target) + if (launder > target) launder = target; } From owner-svn-src-user@freebsd.org Sat Aug 27 22:18:13 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1C7AB77450 for ; Sat, 27 Aug 2016 22:18:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C25585F4; Sat, 27 Aug 2016 22:18:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7RMICwf059929; Sat, 27 Aug 2016 22:18:12 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7RMICCX059928; Sat, 27 Aug 2016 22:18:12 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608272218.u7RMICCX059928@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 27 Aug 2016 22:18:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304925 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2016 22:18:14 -0000 Author: markj Date: Sat Aug 27 22:18:12 2016 New Revision: 304925 URL: https://svnweb.freebsd.org/changeset/base/304925 Log: Rename "starting_target" to "last_target". Discussed with: alc Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Aug 27 21:52:57 2016 (r304924) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Aug 27 22:18:12 2016 (r304925) @@ -1107,8 +1107,8 @@ vm_pageout_laundry_worker(void *arg) struct vm_domain *domain; uint64_t nclean, ndirty; u_int last_launder, wakeups; - int cycle, domidx, launder, prev_shortfall, shortfall; - int starting_target, target; + int cycle, domidx, launder, last_target, prev_shortfall, shortfall; + int target; domidx = (uintptr_t)arg; domain = &vm_dom[domidx]; @@ -1200,8 +1200,8 @@ vm_pageout_laundry_worker(void *arg) if (target > 0) { if (wakeups != last_launder) { last_launder = wakeups; - starting_target = target; - } else if (starting_target - target >= + last_target = target; + } else if (last_target - target >= vm_background_launder_max * PAGE_SIZE / 1024) { target = 0; } From owner-svn-src-user@freebsd.org Sat Aug 27 22:23:12 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40690B775C7 for ; Sat, 27 Aug 2016 22:23:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CBA71982; Sat, 27 Aug 2016 22:23:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u7RMNBJF063786; Sat, 27 Aug 2016 22:23:11 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u7RMNBFO063784; Sat, 27 Aug 2016 22:23:11 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201608272223.u7RMNBFO063784@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 27 Aug 2016 22:23:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r304926 - in user/alc/PQ_LAUNDRY: contrib/libarchive/libarchive contrib/libarchive/tar contrib/ncurses/ncurses/tinfo contrib/ofed/libcxgb4/src include lib/libarchive/tests lib/libc/gen ... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Aug 2016 22:23:12 -0000 Author: markj Date: Sat Aug 27 22:23:10 2016 New Revision: 304926 URL: https://svnweb.freebsd.org/changeset/base/304926 Log: MFH r304925 Added: user/alc/PQ_LAUNDRY/lib/libnv/tests/cnv_tests.cc - copied unchanged from r304925, head/lib/libnv/tests/cnv_tests.cc user/alc/PQ_LAUNDRY/share/man/man9/cnv.9 - copied unchanged from r304925, head/share/man/man9/cnv.9 user/alc/PQ_LAUNDRY/sys/contrib/libnv/cnvlist.c - copied unchanged from r304925, head/sys/contrib/libnv/cnvlist.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/bhnd_pmu_chipc.c - copied unchanged from r304925, head/sys/dev/bhnd/cores/chipc/bhnd_pmu_chipc.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/pwrctl/ - copied from r304925, head/sys/dev/bhnd/cores/chipc/pwrctl/ user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/pmu/ - copied from r304925, head/sys/dev/bhnd/cores/pmu/ user/alc/PQ_LAUNDRY/sys/dev/bhnd/pmu/ - copied from r304925, head/sys/dev/bhnd/pmu/ user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_bcma.c - copied unchanged from r304925, head/sys/mips/broadcom/bcm_bcma.c user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_machdep.h - copied unchanged from r304925, head/sys/mips/broadcom/bcm_machdep.h user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_mips_exts.h - copied unchanged from r304925, head/sys/mips/broadcom/bcm_mips_exts.h user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_pmu.c - copied unchanged from r304925, head/sys/mips/broadcom/bcm_pmu.c user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_siba.c - copied unchanged from r304925, head/sys/mips/broadcom/bcm_siba.c user/alc/PQ_LAUNDRY/sys/sys/cnv.h - copied unchanged from r304925, head/sys/sys/cnv.h Deleted: user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_socinfo.c user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_socinfo.h user/alc/PQ_LAUNDRY/sys/modules/bhnd/cores/bhnd_chipc/ Modified: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_entry.h user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_support_format_tar.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_support_format_zip.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_write_disk_acl.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_write_disk_posix.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_write_set_format_pax.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/util.c user/alc/PQ_LAUNDRY/contrib/ncurses/ncurses/tinfo/lib_baudrate.c user/alc/PQ_LAUNDRY/contrib/ofed/libcxgb4/src/qp.c user/alc/PQ_LAUNDRY/include/libgen.h user/alc/PQ_LAUNDRY/lib/libarchive/tests/Makefile user/alc/PQ_LAUNDRY/lib/libc/gen/dirname.c user/alc/PQ_LAUNDRY/lib/libc/net/getaddrinfo.c user/alc/PQ_LAUNDRY/lib/libnv/Makefile user/alc/PQ_LAUNDRY/lib/libnv/tests/Makefile user/alc/PQ_LAUNDRY/share/man/man9/Makefile user/alc/PQ_LAUNDRY/share/mk/bsd.sys.mk user/alc/PQ_LAUNDRY/sys/amd64/vmm/io/iommu.c user/alc/PQ_LAUNDRY/sys/amd64/vmm/io/iommu.h user/alc/PQ_LAUNDRY/sys/amd64/vmm/vmm.c user/alc/PQ_LAUNDRY/sys/arm64/arm64/machdep.c user/alc/PQ_LAUNDRY/sys/cam/ata/ata_all.c user/alc/PQ_LAUNDRY/sys/conf/files user/alc/PQ_LAUNDRY/sys/contrib/libnv/nvlist.c user/alc/PQ_LAUNDRY/sys/contrib/libnv/nvlist_impl.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_bhndb.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_dmp.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_erom.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_eromvar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bcma/bcma_nexus.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_bus_if.m user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_core.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_ids.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_subr.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhnd_types.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhnd_bhndb.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndb/bhndb_pci.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/bhndvar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/bhnd_chipc_if.m user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/bhnd_sprom_chipc.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipc.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipc.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipc_subr.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipcreg.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/cores/chipc/chipcvar.h user/alc/PQ_LAUNDRY/sys/dev/bhnd/nvram/nvram_map user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_bhndb.c user/alc/PQ_LAUNDRY/sys/dev/bhnd/siba/siba_nexus.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/adapter.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/common.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/common/t4_hw.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/firmware/t4fw_interface.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/iw_cxgbe/cm.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/iw_cxgbe/qp.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/iw_cxgbe/t4.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c user/alc/PQ_LAUNDRY/sys/dev/iwm/if_iwm.c user/alc/PQ_LAUNDRY/sys/dev/iwm/if_iwmreg.h user/alc/PQ_LAUNDRY/sys/kern/vnode_if.src user/alc/PQ_LAUNDRY/sys/mips/broadcom/bcm_machdep.c user/alc/PQ_LAUNDRY/sys/mips/broadcom/files.broadcom user/alc/PQ_LAUNDRY/sys/mips/broadcom/uart_bus_chipc.c user/alc/PQ_LAUNDRY/sys/mips/broadcom/uart_cpu_chipc.c user/alc/PQ_LAUNDRY/sys/modules/Makefile user/alc/PQ_LAUNDRY/sys/modules/bhnd/Makefile user/alc/PQ_LAUNDRY/sys/modules/bhnd/cores/Makefile user/alc/PQ_LAUNDRY/sys/modules/cloudabi32/Makefile user/alc/PQ_LAUNDRY/sys/modules/cloudabi64/Makefile user/alc/PQ_LAUNDRY/sys/netinet/tcp_fsm.h user/alc/PQ_LAUNDRY/sys/netinet/tcp_stacks/fastpath.c user/alc/PQ_LAUNDRY/usr.bin/gzip/gzip.c user/alc/PQ_LAUNDRY/usr.bin/netstat/route.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/contrib/libarchive/ (props changed) user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/ (props changed) user/alc/PQ_LAUNDRY/contrib/libarchive/tar/ (props changed) user/alc/PQ_LAUNDRY/contrib/ncurses/ (props changed) Modified: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c Sat Aug 27 22:18:12 2016 (r304925) +++ user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_acl.c Sat Aug 27 22:23:10 2016 (r304926) @@ -57,21 +57,27 @@ static int archive_acl_add_entry_len_l(s size_t len, struct archive_string_conv *sc); static int isint_w(const wchar_t *start, const wchar_t *end, int *result); static int ismode_w(const wchar_t *start, const wchar_t *end, int *result); +static int parse_nfs4_flags_w(const wchar_t *start, const wchar_t *end, + int *result); +static int parse_nfs4_perms_w(const wchar_t *start, const wchar_t *end, + int *result); static void next_field_w(const wchar_t **wp, const wchar_t **start, const wchar_t **end, wchar_t *sep); static int prefix_w(const wchar_t *start, const wchar_t *end, const wchar_t *test); -static void append_entry_w(wchar_t **wp, const wchar_t *prefix, int tag, - const wchar_t *wname, int perm, int id); +static void append_entry_w(wchar_t **wp, const wchar_t *prefix, int type, + int tag, const wchar_t *wname, int perm, int id); static void append_id_w(wchar_t **wp, int id); static int isint(const char *start, const char *end, int *result); static int ismode(const char *start, const char *end, int *result); +static int parse_nfs4_flags(const char *start, const char *end, int *result); +static int parse_nfs4_perms(const char *start, const char *end, int *result); static void next_field(const char **p, const char **start, const char **end, char *sep); static int prefix_c(const char *start, const char *end, const char *test); -static void append_entry(char **p, const char *prefix, int tag, - const char *name, int perm, int id); +static void append_entry(char **p, const char *prefix, int type, + int tag, const char *name, int perm, int id); static void append_id(char **p, int id); void @@ -447,6 +453,16 @@ archive_acl_text_w(struct archive *a, st int id, r; wchar_t *wp; + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) && + (flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT))) { + /* cannot convert NFSv4 ACLs and POSIX1e ACLs at the same time */ + return (NULL); + } + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) && (flags & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) { + /* cannot have access and default at the same time */ + return (NULL); + } + if (acl->acl_text_w != NULL) { free (acl->acl_text_w); acl->acl_text_w = NULL; @@ -462,17 +478,57 @@ archive_acl_text_w(struct archive *a, st if ((flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) && (ap->type & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) length += 8; /* "default:" */ - length += 5; /* tag name */ + switch (ap->tag) { + case ARCHIVE_ENTRY_ACL_USER_OBJ: + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { + length += 6; /* "owner@" */ + break; + } + /* FALLTHROUGH */ + case ARCHIVE_ENTRY_ACL_USER: + length += 4; /* "user" */ + break; + case ARCHIVE_ENTRY_ACL_GROUP_OBJ: + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { + length += 6; /* "group@" */ + break; + } + /* FALLTHROUGH */ + case ARCHIVE_ENTRY_ACL_GROUP: + case ARCHIVE_ENTRY_ACL_OTHER: + length += 5; /* "group", "other" */ + break; + case ARCHIVE_ENTRY_ACL_EVERYONE: + length += 9; /* "everyone@" */ + break; + } length += 1; /* colon */ - r = archive_mstring_get_wcs(a, &ap->name, &wname); - if (r == 0 && wname != NULL) - length += wcslen(wname); - else if (r < 0 && errno == ENOMEM) - return (NULL); + if (((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) || + ap->tag == ARCHIVE_ENTRY_ACL_USER || + ap->tag == ARCHIVE_ENTRY_ACL_GROUP) { + r = archive_mstring_get_wcs(a, &ap->name, &wname); + if (r == 0 && wname != NULL) + length += wcslen(wname); + else if (r < 0 && errno == ENOMEM) + return (NULL); + else + length += sizeof(uid_t) * 3 + 1; + length += 1; /* colon */ + } + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) + length += 14; /* rwxpdDaARWcCos */ else - length += sizeof(uid_t) * 3 + 1; - length ++; /* colon */ - length += 3; /* rwx */ + length += 3; /* rwx */ + length += 1; /* colon */ + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { + length += 7; /* fdinSFI */ + length += 1; /* colon */ + if ((ap->type & ARCHIVE_ENTRY_ACL_TYPE_DENY) != 0) + length += 4; /* deny */ + else + length += 5; /* allow, alarm, audit */ + length += 1; /* colon */ + } length += 1; /* colon */ length += max(sizeof(uid_t), sizeof(gid_t)) * 3 + 1; length ++; /* newline */ @@ -480,34 +536,39 @@ archive_acl_text_w(struct archive *a, st ap = ap->next; } - if (count > 0 && ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0)) { + if (count == 0) + return (NULL); + + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { length += 10; /* "user::rwx\n" */ length += 11; /* "group::rwx\n" */ length += 11; /* "other::rwx\n" */ } - if (count == 0) - return (NULL); - /* Now, allocate the string and actually populate it. */ wp = acl->acl_text_w = (wchar_t *)malloc(length * sizeof(wchar_t)); if (wp == NULL) return (NULL); count = 0; + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { - append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, - acl->mode & 0700, -1); + append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, acl->mode & 0700, -1); *wp++ = ','; - append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, - acl->mode & 0070, -1); + append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, acl->mode & 0070, -1); *wp++ = ','; - append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_OTHER, NULL, - acl->mode & 0007, -1); + append_entry_w(&wp, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + ARCHIVE_ENTRY_ACL_OTHER, NULL, acl->mode & 0007, -1); count += 3; + } + if ((flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | + ARCHIVE_ENTRY_ACL_TYPE_NFS4)) != 0) { ap = acl->acl_head; while (ap != NULL) { - if ((ap->type & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { + if ((ap->type & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | + ARCHIVE_ENTRY_ACL_TYPE_NFS4)) != 0) { r = archive_mstring_get_wcs(a, &ap->name, &wname); if (r == 0) { *wp++ = separator; @@ -515,8 +576,8 @@ archive_acl_text_w(struct archive *a, st id = ap->id; else id = -1; - append_entry_w(&wp, NULL, ap->tag, wname, - ap->permset, id); + append_entry_w(&wp, NULL, ap->type, ap->tag, + wname, ap->permset, id); count++; } else if (r < 0 && errno == ENOMEM) return (NULL); @@ -525,7 +586,6 @@ archive_acl_text_w(struct archive *a, st } } - if ((flags & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) != 0) { if (flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) prefix = L"default:"; @@ -543,8 +603,8 @@ archive_acl_text_w(struct archive *a, st id = ap->id; else id = -1; - append_entry_w(&wp, prefix, ap->tag, - wname, ap->permset, id); + append_entry_w(&wp, prefix, ap->type, + ap->tag, wname, ap->permset, id); count ++; } else if (r < 0 && errno == ENOMEM) return (NULL); @@ -568,8 +628,8 @@ append_id_w(wchar_t **wp, int id) } static void -append_entry_w(wchar_t **wp, const wchar_t *prefix, int tag, - const wchar_t *wname, int perm, int id) +append_entry_w(wchar_t **wp, const wchar_t *prefix, int type, + int tag, const wchar_t *wname, int perm, int id) { if (prefix != NULL) { wcscpy(*wp, prefix); @@ -579,6 +639,11 @@ append_entry_w(wchar_t **wp, const wchar case ARCHIVE_ENTRY_ACL_USER_OBJ: wname = NULL; id = -1; + if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + wcscpy(*wp, L"owner@"); + break; + } + /* FALLTHROUGH */ /* FALLTHROUGH */ case ARCHIVE_ENTRY_ACL_USER: wcscpy(*wp, L"user"); @@ -603,18 +668,57 @@ append_entry_w(wchar_t **wp, const wchar } *wp += wcslen(*wp); *(*wp)++ = L':'; - if (wname != NULL) { - wcscpy(*wp, wname); + if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0 || + tag == ARCHIVE_ENTRY_ACL_USER || + tag == ARCHIVE_ENTRY_ACL_GROUP) { + if (wname != NULL) { + wcscpy(*wp, wname); + *wp += wcslen(*wp); + } else if (tag == ARCHIVE_ENTRY_ACL_USER + || tag == ARCHIVE_ENTRY_ACL_GROUP) { + append_id_w(wp, id); + id = -1; + } + *(*wp)++ = L':'; + } + *(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_READ | + ARCHIVE_ENTRY_ACL_READ_DATA | + ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? L'r' : L'-'; + *(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE | + ARCHIVE_ENTRY_ACL_WRITE_DATA | + ARCHIVE_ENTRY_ACL_ADD_FILE)) ? L'w' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_EXECUTE) ? L'x' : L'-'; + if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + *(*wp)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? L'p' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? L'd' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? L'D' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? L'a' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? L'A' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? L'R' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? L'W' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ACL) ? L'c' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ACL) ? L'C' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? L'o' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? L's' : L'-'; + *(*wp)++ = L':'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? L'f' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? L'd' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? L'i' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? L'n' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? L'S' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? L'F' : L'-'; + *(*wp)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? L'I' : L'-'; + *(*wp)++ = L':'; + if (type & ARCHIVE_ENTRY_ACL_TYPE_ALLOW) + wcscpy(*wp, L"allow"); + else if (type & ARCHIVE_ENTRY_ACL_TYPE_DENY) + wcscpy(*wp, L"deny"); + else if (type & ARCHIVE_ENTRY_ACL_TYPE_AUDIT) + wcscpy(*wp, L"audit"); + else if (type & ARCHIVE_ENTRY_ACL_TYPE_ALARM) + wcscpy(*wp, L"alarm"); *wp += wcslen(*wp); - } else if (tag == ARCHIVE_ENTRY_ACL_USER - || tag == ARCHIVE_ENTRY_ACL_GROUP) { - append_id_w(wp, id); - id = -1; } - *(*wp)++ = L':'; - *(*wp)++ = (perm & 0444) ? L'r' : L'-'; - *(*wp)++ = (perm & 0222) ? L'w' : L'-'; - *(*wp)++ = (perm & 0111) ? L'x' : L'-'; if (id != -1) { *(*wp)++ = L':'; append_id_w(wp, id); @@ -637,6 +741,16 @@ archive_acl_text_l(struct archive_acl *a int id, r; char *p; + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) && + (flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT))) { + /* cannot convert NFSv4 ACLs and POSIX1e ACLs at the same time */ + return (-1); + } + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) && (flags & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) { + /* cannot have access and default at the same time */ + return (-1); + } + if (acl->acl_text != NULL) { free (acl->acl_text); acl->acl_text = NULL; @@ -655,63 +769,109 @@ archive_acl_text_l(struct archive_acl *a if ((flags & ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT) && (ap->type & ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)) length += 8; /* "default:" */ - length += 5; /* tag name */ + switch (ap->tag) { + case ARCHIVE_ENTRY_ACL_USER_OBJ: + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { + length += 6; /* "owner@" */ + break; + } + /* FALLTHROUGH */ + case ARCHIVE_ENTRY_ACL_USER: + length += 4; /* "user" */ + break; + case ARCHIVE_ENTRY_ACL_GROUP_OBJ: + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { + length += 6; /* "group@" */ + break; + } + /* FALLTHROUGH */ + case ARCHIVE_ENTRY_ACL_GROUP: + case ARCHIVE_ENTRY_ACL_OTHER: + length += 5; /* "group", "other" */ + break; + case ARCHIVE_ENTRY_ACL_EVERYONE: + length += 9; /* "everyone@" */ + break; + } + length += 1; /* colon */ - r = archive_mstring_get_mbs_l( - &ap->name, &name, &len, sc); - if (r != 0) - return (-1); - if (len > 0 && name != NULL) - length += len; + if (((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) || + ap->tag == ARCHIVE_ENTRY_ACL_USER || + ap->tag == ARCHIVE_ENTRY_ACL_GROUP) { + r = archive_mstring_get_mbs_l( + &ap->name, &name, &len, sc); + if (r != 0) + return (-1); + if (len > 0 && name != NULL) + length += len; + else + length += sizeof(uid_t) * 3 + 1; + length += 1; /* colon */ + } + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) + length += 14; /* rwxpdDaARWcCos */ else - length += sizeof(uid_t) * 3 + 1; - length ++; /* colon */ - length += 3; /* rwx */ + length += 3; /* rwx */ length += 1; /* colon */ + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) { + length += 7; /* fdinSFI */ + length += 1; /* colon */ + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_DENY) != 0) + length += 4; /* deny */ + else + length += 5; /* allow, alarm, audit */ + length += 1; /* colon */ + } + length += max(sizeof(uid_t), sizeof(gid_t)) * 3 + 1; length ++; /* newline */ } ap = ap->next; } - if (count > 0 && ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0)) { + if (count == 0) + return (0); + + if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { length += 10; /* "user::rwx\n" */ length += 11; /* "group::rwx\n" */ length += 11; /* "other::rwx\n" */ } - if (count == 0) - return (0); - /* Now, allocate the string and actually populate it. */ p = acl->acl_text = (char *)malloc(length); if (p == NULL) return (-1); count = 0; if ((flags & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) { - append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, - acl->mode & 0700, -1); + append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + ARCHIVE_ENTRY_ACL_USER_OBJ, NULL, acl->mode & 0700, -1); *p++ = ','; - append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, - acl->mode & 0070, -1); + append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + ARCHIVE_ENTRY_ACL_GROUP_OBJ, NULL, acl->mode & 0070, -1); *p++ = ','; - append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_OTHER, NULL, - acl->mode & 0007, -1); + append_entry(&p, NULL, ARCHIVE_ENTRY_ACL_TYPE_ACCESS, + ARCHIVE_ENTRY_ACL_OTHER, NULL, acl->mode & 0007, -1); count += 3; + } + if ((flags & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | + ARCHIVE_ENTRY_ACL_TYPE_NFS4)) != 0) { for (ap = acl->acl_head; ap != NULL; ap = ap->next) { - if ((ap->type & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) == 0) + if ((ap->type & (ARCHIVE_ENTRY_ACL_TYPE_ACCESS | + ARCHIVE_ENTRY_ACL_TYPE_NFS4)) == 0) continue; r = archive_mstring_get_mbs_l( &ap->name, &name, &len, sc); if (r != 0) return (-1); - *p++ = separator; + if (count > 0) + *p++ = separator; if (flags & ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID) id = ap->id; else id = -1; - append_entry(&p, NULL, ap->tag, name, + append_entry(&p, NULL, ap->type, ap->tag, name, ap->permset, id); count++; } @@ -737,7 +897,7 @@ archive_acl_text_l(struct archive_acl *a id = ap->id; else id = -1; - append_entry(&p, prefix, ap->tag, + append_entry(&p, prefix, ap->type, ap->tag, name, ap->permset, id); count ++; } @@ -760,8 +920,8 @@ append_id(char **p, int id) } static void -append_entry(char **p, const char *prefix, int tag, - const char *name, int perm, int id) +append_entry(char **p, const char *prefix, int type, + int tag, const char *name, int perm, int id) { if (prefix != NULL) { strcpy(*p, prefix); @@ -771,6 +931,10 @@ append_entry(char **p, const char *prefi case ARCHIVE_ENTRY_ACL_USER_OBJ: name = NULL; id = -1; + if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + strcpy(*p, "owner@"); + break; + } /* FALLTHROUGH */ case ARCHIVE_ENTRY_ACL_USER: strcpy(*p, "user"); @@ -778,6 +942,10 @@ append_entry(char **p, const char *prefi case ARCHIVE_ENTRY_ACL_GROUP_OBJ: name = NULL; id = -1; + if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + strcpy(*p, "group@"); + break; + } /* FALLTHROUGH */ case ARCHIVE_ENTRY_ACL_GROUP: strcpy(*p, "group"); @@ -792,21 +960,65 @@ append_entry(char **p, const char *prefi name = NULL; id = -1; break; + case ARCHIVE_ENTRY_ACL_EVERYONE: + strcpy(*p, "everyone@"); + name = NULL; + id = -1; + break; } *p += strlen(*p); *(*p)++ = ':'; - if (name != NULL) { - strcpy(*p, name); + if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0 || + tag == ARCHIVE_ENTRY_ACL_USER || + tag == ARCHIVE_ENTRY_ACL_GROUP) { + if (name != NULL) { + strcpy(*p, name); + *p += strlen(*p); + } else if (tag == ARCHIVE_ENTRY_ACL_USER + || tag == ARCHIVE_ENTRY_ACL_GROUP) { + append_id(p, id); + id = -1; + } + *(*p)++ = ':'; + } + *(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_READ | + ARCHIVE_ENTRY_ACL_READ_DATA | + ARCHIVE_ENTRY_ACL_LIST_DIRECTORY)) ? 'r' : '-'; + *(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_WRITE | + ARCHIVE_ENTRY_ACL_WRITE_DATA | + ARCHIVE_ENTRY_ACL_ADD_FILE)) ? 'w' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_EXECUTE) ? 'x' : '-'; + if (type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + *(*p)++ = (perm & (ARCHIVE_ENTRY_ACL_APPEND_DATA | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY)) ? 'p' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE) ? 'd' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_DELETE_CHILD) ? 'D' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES) ? 'a' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES) ? 'A' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS) ? 'R' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS) ? 'W' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_READ_ACL) ? 'c' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_ACL) ? 'C' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_WRITE_OWNER) ? 'o' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_SYNCHRONIZE) ? 's' : '-'; + *(*p)++ = ':'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT) ? 'f' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT) ? 'd' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY) ? 'i' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT) ? 'n' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS) ? 'S' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS) ? 'F' : '-'; + *(*p)++ = (perm & ARCHIVE_ENTRY_ACL_ENTRY_INHERITED) ? 'I' : '-'; + *(*p)++ = ':'; + if (type & ARCHIVE_ENTRY_ACL_TYPE_ALLOW) + strcpy(*p, "allow"); + else if (type & ARCHIVE_ENTRY_ACL_TYPE_DENY) + strcpy(*p, "deny"); + else if (type & ARCHIVE_ENTRY_ACL_TYPE_AUDIT) + strcpy(*p, "audit"); + else if (type & ARCHIVE_ENTRY_ACL_TYPE_ALARM) + strcpy(*p, "alarm"); *p += strlen(*p); - } else if (tag == ARCHIVE_ENTRY_ACL_USER - || tag == ARCHIVE_ENTRY_ACL_GROUP) { - append_id(p, id); - id = -1; } - *(*p)++ = ':'; - *(*p)++ = (perm & 0444) ? 'r' : '-'; - *(*p)++ = (perm & 0222) ? 'w' : '-'; - *(*p)++ = (perm & 0111) ? 'x' : '-'; if (id != -1) { *(*p)++ = ':'; append_id(p, id); @@ -827,12 +1039,19 @@ archive_acl_parse_w(struct archive_acl * struct { const wchar_t *start; const wchar_t *end; - } field[4], name; + } field[6], name; - int fields, n; + int numfields, fields, n; int type, tag, permset, id; + int offset; wchar_t sep; + if (default_type == ARCHIVE_ENTRY_ACL_TYPE_NFS4) + numfields = 6; + else + numfields = 4; + + while (text != NULL && *text != L'\0') { /* * Parse the fields out of the next entry, @@ -842,7 +1061,7 @@ archive_acl_parse_w(struct archive_acl * do { const wchar_t *start, *end; next_field_w(&text, &start, &end, &sep); - if (fields < 4) { + if (fields < numfields) { field[fields].start = start; field[fields].end = end; } @@ -850,72 +1069,148 @@ archive_acl_parse_w(struct archive_acl * } while (sep == L':'); /* Set remaining fields to blank. */ - for (n = fields; n < 4; ++n) + for (n = fields; n < numfields; ++n) field[n].start = field[n].end = NULL; - /* Check for a numeric ID in field 1 or 3. */ - id = -1; - isint_w(field[1].start, field[1].end, &id); - /* Field 3 is optional. */ - if (id == -1 && fields > 3) - isint_w(field[3].start, field[3].end, &id); + if (default_type != ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + /* POSIX.1e ACLs */ + /* Check for a numeric ID in field 1 or 3. */ + id = -1; + isint_w(field[1].start, field[1].end, &id); + /* Field 3 is optional. */ + if (id == -1 && fields > 3) + isint_w(field[3].start, field[3].end, &id); + + /* + * Solaris extension: "defaultuser::rwx" is the + * default ACL corresponding to "user::rwx", etc. + */ + if (field[0].end - field[0].start > 7 + && wmemcmp(field[0].start, L"default", 7) == 0) { + type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; + field[0].start += 7; + } else + type = default_type; - /* - * Solaris extension: "defaultuser::rwx" is the - * default ACL corresponding to "user::rwx", etc. - */ - if (field[0].end - field[0].start > 7 - && wmemcmp(field[0].start, L"default", 7) == 0) { - type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; - field[0].start += 7; - } else - type = default_type; - - name.start = name.end = NULL; - if (prefix_w(field[0].start, field[0].end, L"user")) { - if (!ismode_w(field[2].start, field[2].end, &permset)) + name.start = name.end = NULL; + if (prefix_w(field[0].start, field[0].end, L"user")) { + if (!ismode_w(field[2].start, field[2].end, + &permset)) return (ARCHIVE_WARN); - if (id != -1 || field[1].start < field[1].end) { - tag = ARCHIVE_ENTRY_ACL_USER; - name = field[1]; + if (id != -1 || field[1].start < field[1].end) { + tag = ARCHIVE_ENTRY_ACL_USER; + name = field[1]; + } else + tag = ARCHIVE_ENTRY_ACL_USER_OBJ; + } else if (prefix_w(field[0].start, field[0].end, + L"group")) { + if (!ismode_w(field[2].start, field[2].end, + &permset)) + return (ARCHIVE_WARN); + if (id != -1 || field[1].start < field[1].end) { + tag = ARCHIVE_ENTRY_ACL_GROUP; + name = field[1]; + } else + tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; + } else if (prefix_w(field[0].start, field[0].end, + L"other")) { + if (fields == 2 + && field[1].start < field[1].end + && ismode_w(field[1].start, field[1].end, + &permset)) { + /* This is Solaris-style "other:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode_w(field[2].start, field[2].end, + &permset)) { + /* This is FreeBSD-style "other::rwx" */ + } else + return (ARCHIVE_WARN); + tag = ARCHIVE_ENTRY_ACL_OTHER; + } else if (prefix_w(field[0].start, field[0].end, + L"mask")) { + if (fields == 2 + && field[1].start < field[1].end + && ismode_w(field[1].start, field[1].end, + &permset)) { + /* This is Solaris-style "mask:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode_w(field[2].start, field[2].end, + &permset)) { + /* This is FreeBSD-style "mask::rwx" */ + } else + return (ARCHIVE_WARN); + tag = ARCHIVE_ENTRY_ACL_MASK; } else - tag = ARCHIVE_ENTRY_ACL_USER_OBJ; - } else if (prefix_w(field[0].start, field[0].end, L"group")) { - if (!ismode_w(field[2].start, field[2].end, &permset)) return (ARCHIVE_WARN); - if (id != -1 || field[1].start < field[1].end) { + } else { + /* NFSv4 ACLs */ + if (wcsncmp(field[0].start, L"user", + field[0].end - field[0].start) == 0) + tag = ARCHIVE_ENTRY_ACL_USER; + else if (wcsncmp(field[0].start, L"group", + field[0].end - field[0].start) == 0) tag = ARCHIVE_ENTRY_ACL_GROUP; - name = field[1]; - } else + else if (wcsncmp(field[0].start, L"owner@", + field[0].end - field[0].start) == 0) + tag = ARCHIVE_ENTRY_ACL_USER_OBJ; + else if (wcsncmp(field[0].start, L"group@", + field[0].end - field[0].start) == 0) tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; - } else if (prefix_w(field[0].start, field[0].end, L"other")) { - if (fields == 2 - && field[1].start < field[1].end - && ismode_w(field[1].start, field[1].end, &permset)) { - /* This is Solaris-style "other:rwx" */ - } else if (fields == 3 - && field[1].start == field[1].end - && field[2].start < field[2].end - && ismode_w(field[2].start, field[2].end, &permset)) { - /* This is FreeBSD-style "other::rwx" */ - } else + else if (wcsncmp(field[0].start, L"everyone@", + field[0].end - field[0].start) == 0) + tag = ARCHIVE_ENTRY_ACL_EVERYONE; + else { + /* Unknown entry */ return (ARCHIVE_WARN); - tag = ARCHIVE_ENTRY_ACL_OTHER; - } else if (prefix_w(field[0].start, field[0].end, L"mask")) { - if (fields == 2 - && field[1].start < field[1].end - && ismode_w(field[1].start, field[1].end, &permset)) { - /* This is Solaris-style "mask:rwx" */ - } else if (fields == 3 - && field[1].start == field[1].end - && field[2].start < field[2].end - && ismode_w(field[2].start, field[2].end, &permset)) { - /* This is FreeBSD-style "mask::rwx" */ + } + + permset = 0; + name.start = name.end = NULL; + + if (tag == ARCHIVE_ENTRY_ACL_USER || + tag == ARCHIVE_ENTRY_ACL_GROUP) { + offset = 1; + name = field[1]; } else + offset = 0; + + if (parse_nfs4_perms_w(field[1 + offset].start, + field[1 + offset].end, &permset) != 0) { + /* NFS4 perms are invalid */ + return (ARCHIVE_WARN); + } + if (parse_nfs4_flags_w(field[2 + offset].start, + field[2 + offset].end, &permset) != 0) { + /* NFS4 flags are invalid */ + return (ARCHIVE_WARN); + } + if (wcsncmp(field[3 + offset].start, L"allow", + field[3 + offset].end - field[3 + offset].start) + == 0) + type = ARCHIVE_ENTRY_ACL_TYPE_ALLOW; + else if (wcsncmp(field[3 + offset].start, L"deny", + field[3 + offset].end - field[3 + offset].start) + == 0) + type = ARCHIVE_ENTRY_ACL_TYPE_DENY; + else if (wcsncmp(field[3 + offset].start, L"audit", + field[3 + offset].end - field[3 + offset].start) + == 0) + type = ARCHIVE_ENTRY_ACL_TYPE_AUDIT; + else if (wcsncmp(field[3 + offset].start, L"alarm", + field[3 + offset].end - field[3 + offset].start) + == 0) + type = ARCHIVE_ENTRY_ACL_TYPE_ALARM; + else { + /* Unknown type */ return (ARCHIVE_WARN); - tag = ARCHIVE_ENTRY_ACL_MASK; - } else - return (ARCHIVE_WARN); + } + isint_w(field[4 + offset].start, field[4 + offset].end, + &id); + } /* Add entry to the internal list. */ archive_acl_add_entry_w_len(acl, type, permset, @@ -985,6 +1280,78 @@ ismode_w(const wchar_t *start, const wch return (1); } +/* Parse a wstring as a strict NFSv4 ACL permission field. */ +static int +parse_nfs4_perms_w(const wchar_t *start, const wchar_t *end, int *permset) +{ + const wchar_t *p; + int pos; + const wchar_t *letter = L"rwxpdDaARWcCos"; + const int perms[14] = { + ARCHIVE_ENTRY_ACL_READ_DATA, + ARCHIVE_ENTRY_ACL_WRITE_DATA, + ARCHIVE_ENTRY_ACL_EXECUTE, + ARCHIVE_ENTRY_ACL_APPEND_DATA, + ARCHIVE_ENTRY_ACL_DELETE, + ARCHIVE_ENTRY_ACL_DELETE_CHILD, + ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES, + ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES, + ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS, + ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS, + ARCHIVE_ENTRY_ACL_READ_ACL, + ARCHIVE_ENTRY_ACL_WRITE_ACL, + ARCHIVE_ENTRY_ACL_WRITE_OWNER, + ARCHIVE_ENTRY_ACL_SYNCHRONIZE + }; + + if (start >= end) + return (0); + p = start; + pos = 0; + while (p < end && pos < 14) { + if (*p == letter[pos]) + *permset |= perms[pos]; + else if (*p != '-') + return (-1); + p = p + sizeof(wchar_t); + pos++; + } + return (0); +} + +/* Parse a string as a strict NFSv4 ACL flags field. */ +static int +parse_nfs4_flags_w(const wchar_t *start, const wchar_t *end, int *permset) +{ + const wchar_t *p; + int pos; + const wchar_t *letter = L"fdinSFI"; + const int perms[7] = { + ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, + ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, + ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, + ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, + ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, + ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, + ARCHIVE_ENTRY_ACL_ENTRY_INHERITED + }; + + if (start >= end) + return (0); + p = start; + pos = 0; + while (p < end && pos < 7) { + if (*p == letter[pos]) + *permset |= perms[pos]; + else if (*p != '-') + return (-1); + p = p + sizeof(wchar_t); + pos++; + } + return (0); +} + + /* * Match "[:whitespace:]*(.*)[:whitespace:]*[:,\n]". *wp is updated * to point to just after the separator. *start points to the first @@ -1057,12 +1424,18 @@ archive_acl_parse_l(struct archive_acl * struct { const char *start; const char *end; - } field[4], name; + } field[6], name; - int fields, n, r, ret = ARCHIVE_OK; + int numfields, fields, n, r, ret = ARCHIVE_OK; int type, tag, permset, id; + int offset; char sep; + if (default_type == ARCHIVE_ENTRY_ACL_TYPE_NFS4) + numfields = 6; + else + numfields = 4; + while (text != NULL && *text != '\0') { /* * Parse the fields out of the next entry, @@ -1072,7 +1445,7 @@ archive_acl_parse_l(struct archive_acl * do { const char *start, *end; next_field(&text, &start, &end, &sep); - if (fields < 4) { + if (fields < numfields) { field[fields].start = start; field[fields].end = end; } @@ -1080,72 +1453,148 @@ archive_acl_parse_l(struct archive_acl * } while (sep == ':'); /* Set remaining fields to blank. */ - for (n = fields; n < 4; ++n) + for (n = fields; n < numfields; ++n) field[n].start = field[n].end = NULL; - /* Check for a numeric ID in field 1 or 3. */ - id = -1; - isint(field[1].start, field[1].end, &id); - /* Field 3 is optional. */ - if (id == -1 && fields > 3) - isint(field[3].start, field[3].end, &id); + if (default_type != ARCHIVE_ENTRY_ACL_TYPE_NFS4) { + /* POSIX.1e ACLs */ + /* Check for a numeric ID in field 1 or 3. */ + id = -1; + isint(field[1].start, field[1].end, &id); + /* Field 3 is optional. */ + if (id == -1 && fields > 3) + isint(field[3].start, field[3].end, &id); + + /* + * Solaris extension: "defaultuser::rwx" is the + * default ACL corresponding to "user::rwx", etc. + */ + if (field[0].end - field[0].start > 7 + && memcmp(field[0].start, "default", 7) == 0) { + type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; + field[0].start += 7; + } else + type = default_type; - /* - * Solaris extension: "defaultuser::rwx" is the - * default ACL corresponding to "user::rwx", etc. - */ - if (field[0].end - field[0].start > 7 - && memcmp(field[0].start, "default", 7) == 0) { - type = ARCHIVE_ENTRY_ACL_TYPE_DEFAULT; - field[0].start += 7; - } else - type = default_type; - - name.start = name.end = NULL; - if (prefix_c(field[0].start, field[0].end, "user")) { - if (!ismode(field[2].start, field[2].end, &permset)) + name.start = name.end = NULL; + if (prefix_c(field[0].start, field[0].end, "user")) { + if (!ismode(field[2].start, field[2].end, + &permset)) + return (ARCHIVE_WARN); + if (id != -1 || field[1].start < field[1].end) { + tag = ARCHIVE_ENTRY_ACL_USER; + name = field[1]; + } else + tag = ARCHIVE_ENTRY_ACL_USER_OBJ; + } else if (prefix_c(field[0].start, field[0].end, + "group")) { + if (!ismode(field[2].start, field[2].end, + &permset)) + return (ARCHIVE_WARN); + if (id != -1 || field[1].start < field[1].end) { + tag = ARCHIVE_ENTRY_ACL_GROUP; + name = field[1]; + } else + tag = ARCHIVE_ENTRY_ACL_GROUP_OBJ; + } else if (prefix_c(field[0].start, field[0].end, + "other")) { + if (fields == 2 + && field[1].start < field[1].end + && ismode(field[1].start, field[1].end, + &permset)) { + /* This is Solaris-style "other:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode(field[2].start, field[2].end, + &permset)) { + /* This is FreeBSD-style "other::rwx" */ + } else + return (ARCHIVE_WARN); + tag = ARCHIVE_ENTRY_ACL_OTHER; + } else if (prefix_c(field[0].start, field[0].end, + "mask")) { + if (fields == 2 + && field[1].start < field[1].end + && ismode(field[1].start, field[1].end, + &permset)) { + /* This is Solaris-style "mask:rwx" */ + } else if (fields == 3 + && field[1].start == field[1].end + && field[2].start < field[2].end + && ismode(field[2].start, field[2].end, + &permset)) { + /* This is FreeBSD-style "mask::rwx" */ + } else *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***