From owner-svn-src-projects@freebsd.org Sun Jan 8 14:36:22 2017 Return-Path: Delivered-To: svn-src-projects@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 9D583CA5505 for ; Sun, 8 Jan 2017 14:36:22 +0000 (UTC) (envelope-from dim@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 1F61B1F55; Sun, 8 Jan 2017 14:36:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08EaLTM020385; Sun, 8 Jan 2017 14:36:21 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08EaIPr020357; Sun, 8 Jan 2017 14:36:18 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081436.v08EaIPr020357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 14:36:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311684 - in projects/clang400-import: . bin/chmod contrib/llvm/projects/libunwind/src contrib/ngatm/snmp_atm contrib/tcp_wrappers contrib/tcpdump crypto/openssh etc gnu/lib/libgcc gnu/... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 14:36:22 -0000 Author: dim Date: Sun Jan 8 14:36:18 2017 New Revision: 311684 URL: https://svnweb.freebsd.org/changeset/base/311684 Log: Merge ^/head r311546 through r311683. Added: projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit_impl.c - copied unchanged from r311683, head/lib/libc/stdlib/cxa_thread_atexit_impl.c projects/clang400-import/sys/net80211/ieee80211_vht.c - copied unchanged from r311683, head/sys/net80211/ieee80211_vht.c projects/clang400-import/sys/net80211/ieee80211_vht.h - copied unchanged from r311683, head/sys/net80211/ieee80211_vht.h projects/clang400-import/usr.bin/cmp/tests/cmp_test2.sh - copied unchanged from r311683, head/usr.bin/cmp/tests/cmp_test2.sh Modified: projects/clang400-import/Makefile.inc1 projects/clang400-import/Makefile.libcompat projects/clang400-import/bin/chmod/chmod.1 projects/clang400-import/bin/chmod/chmod.c projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S projects/clang400-import/contrib/ngatm/snmp_atm/snmp_atm.c projects/clang400-import/contrib/tcp_wrappers/tcpd.h projects/clang400-import/contrib/tcpdump/print-tcp.c projects/clang400-import/crypto/openssh/config.h projects/clang400-import/etc/snmpd.config projects/clang400-import/gnu/lib/libgcc/Makefile projects/clang400-import/gnu/usr.bin/binutils/ld/Makefile.mips projects/clang400-import/lib/lib80211/lib80211_regdomain.c projects/clang400-import/lib/lib80211/lib80211_regdomain.h projects/clang400-import/lib/libc/include/libc_private.h projects/clang400-import/lib/libc/stdlib/Makefile.inc projects/clang400-import/lib/libc/stdlib/Symbol.map projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit.c projects/clang400-import/lib/libcam/scsi_cmdparse.c projects/clang400-import/lib/libprocstat/cd9660.c projects/clang400-import/lib/libstand/bootp.c projects/clang400-import/lib/libsysdecode/mktables projects/clang400-import/sbin/camcontrol/camcontrol.8 projects/clang400-import/sbin/camcontrol/camcontrol.c projects/clang400-import/sbin/camcontrol/camcontrol.h projects/clang400-import/sbin/camcontrol/modeedit.c projects/clang400-import/sbin/ifconfig/ifieee80211.c projects/clang400-import/sbin/md5/md5.1 projects/clang400-import/secure/usr.sbin/sshd/Makefile projects/clang400-import/share/man/man5/src.conf.5 projects/clang400-import/share/misc/scsi_modes projects/clang400-import/sys/cam/ctl/ctl.c projects/clang400-import/sys/cam/scsi/scsi_all.c projects/clang400-import/sys/cam/scsi/scsi_all.h projects/clang400-import/sys/cam/scsi/scsi_ch.c projects/clang400-import/sys/conf/files projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbxface.c projects/clang400-import/sys/contrib/dev/acpica/include/acpixf.h projects/clang400-import/sys/crypto/skein/amd64/skein_block_asm.s projects/clang400-import/sys/dev/cxgbe/tom/t4_connect.c projects/clang400-import/sys/dev/cxgbe/tom/t4_listen.c projects/clang400-import/sys/dev/cxgbe/tom/t4_tom.c projects/clang400-import/sys/dev/cxgbe/tom/t4_tom.h projects/clang400-import/sys/dev/gpio/ofw_gpiobus.c projects/clang400-import/sys/dev/kbd/kbd.c projects/clang400-import/sys/dev/mmc/mmcreg.h projects/clang400-import/sys/dev/sdhci/sdhci.c projects/clang400-import/sys/dev/sdhci/sdhci.h projects/clang400-import/sys/dev/sdhci/sdhci_if.m projects/clang400-import/sys/dev/sfxge/common/ef10_tx.c projects/clang400-import/sys/dev/sfxge/common/efx.h projects/clang400-import/sys/dev/sfxge/common/efx_tx.c projects/clang400-import/sys/dev/sfxge/common/hunt_nic.c projects/clang400-import/sys/dev/sfxge/common/medford_nic.c projects/clang400-import/sys/dev/sfxge/common/siena_nic.c projects/clang400-import/sys/dev/sfxge/sfxge.h projects/clang400-import/sys/dev/sfxge/sfxge_port.c projects/clang400-import/sys/dev/sfxge/sfxge_tx.c projects/clang400-import/sys/fs/cd9660/cd9660_lookup.c projects/clang400-import/sys/fs/cd9660/cd9660_node.c projects/clang400-import/sys/fs/cd9660/cd9660_node.h projects/clang400-import/sys/fs/cd9660/cd9660_rrip.c projects/clang400-import/sys/fs/cd9660/cd9660_vfsops.c projects/clang400-import/sys/fs/cd9660/cd9660_vnops.c projects/clang400-import/sys/fs/cd9660/iso.h projects/clang400-import/sys/fs/cd9660/iso_rrip.h projects/clang400-import/sys/kern/sys_socket.c projects/clang400-import/sys/kern/uipc_socket.c projects/clang400-import/sys/mips/conf/MALTA64 projects/clang400-import/sys/modules/wlan/Makefile projects/clang400-import/sys/net80211/ieee80211.c projects/clang400-import/sys/net80211/ieee80211.h projects/clang400-import/sys/net80211/ieee80211_ioctl.c projects/clang400-import/sys/net80211/ieee80211_ioctl.h projects/clang400-import/sys/net80211/ieee80211_node.h projects/clang400-import/sys/net80211/ieee80211_proto.h projects/clang400-import/sys/net80211/ieee80211_scan.c projects/clang400-import/sys/net80211/ieee80211_scan.h projects/clang400-import/sys/net80211/ieee80211_var.h projects/clang400-import/sys/netipsec/ipsec.c projects/clang400-import/sys/sys/socket.h projects/clang400-import/sys/sys/unistd.h projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang400-import/tools/build/options/WITHOUT_USB_GADGET_EXAMPLES projects/clang400-import/usr.bin/clang/llvm-ar/Makefile projects/clang400-import/usr.bin/cmp/special.c projects/clang400-import/usr.bin/cmp/tests/Makefile projects/clang400-import/usr.bin/users/users.cc projects/clang400-import/usr.sbin/chown/chgrp.1 projects/clang400-import/usr.sbin/chown/chown.8 projects/clang400-import/usr.sbin/chown/chown.c Directory Properties: projects/clang400-import/ (props changed) projects/clang400-import/contrib/llvm/ (props changed) projects/clang400-import/contrib/llvm/projects/libunwind/ (props changed) projects/clang400-import/contrib/tcpdump/ (props changed) projects/clang400-import/crypto/openssh/ (props changed) projects/clang400-import/gnu/lib/ (props changed) projects/clang400-import/gnu/usr.bin/binutils/ (props changed) projects/clang400-import/sys/contrib/dev/acpica/ (props changed) Modified: projects/clang400-import/Makefile.inc1 ============================================================================== --- projects/clang400-import/Makefile.inc1 Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/Makefile.inc1 Sun Jan 8 14:36:18 2017 (r311684) @@ -606,7 +606,7 @@ XCFLAGS+= ${BFLAGS} .endif .if ${MK_LIB32} != "no" && (${TARGET_ARCH} == "amd64" || \ - ${TARGET_ARCH} == "powerpc64") + ${TARGET_ARCH} == "powerpc64") || ${TARGET_ARCH:Mmips64*} != "" LIBCOMPAT= 32 .include "Makefile.libcompat" .elif ${MK_LIBSOFT} != "no" && ${TARGET_ARCH} == "armv6" Modified: projects/clang400-import/Makefile.libcompat ============================================================================== --- projects/clang400-import/Makefile.libcompat Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/Makefile.libcompat Sun Jan 8 14:36:18 2017 (r311684) @@ -4,8 +4,7 @@ __<${_this:T}>__: # Makefile for the compatibility libraries. -# - 32-bit compat libraries on PowerPC and AMD64. -# could also be for mips, but that doesn't work today. +# - 32-bit compat libraries on MIPS, PowerPC, and AMD64. # ------------------------------------------------------------------- # 32 bit world @@ -15,6 +14,7 @@ LIB32CPUFLAGS= -march=i686 -mmmx -msse - .else LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} .endif +LIB32CPUFLAGS+= -m32 LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \ MACHINE_CPU="i686 mmx sse sse2" LIB32WMAKEFLAGS= \ @@ -28,14 +28,30 @@ LIB32CPUFLAGS= -mcpu=powerpc .else LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE} .endif +LIB32CPUFLAGS+= -m32 LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc LIB32WMAKEFLAGS= \ LD="${XLD} -m elf32ppc_fbsd" \ OBJCOPY="${XOBJCOPY}" + +.elif ${TARGET_ARCH:Mmips64*} != "" +.if empty(TARGET_CPUTYPE) +LIB32CPUFLAGS= -march=mips3 +.else +LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} +.endif +LIB32CPUFLAGS+= -mabi=32 +LIB32WMAKEENV= MACHINE=mips MACHINE_ARCH=mips +.if ${TARGET_ARCH:Mmips64el*} != "" +LIB32WMAKEFLAGS= LD="${XLD} -m elf32ltsmip_fbsd" +.else +LIB32WMAKEFLAGS= LD="${XLD} -m elf32btsmip_fbsd" +.endif +LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}" .endif -LIB32CFLAGS= -m32 -DCOMPAT_32BIT +LIB32CFLAGS= -DCOMPAT_32BIT LIB32DTRACE= ${DTRACE} -32 LIB32WMAKEFLAGS+= -DCOMPAT_32BIT Modified: projects/clang400-import/bin/chmod/chmod.1 ============================================================================== --- projects/clang400-import/bin/chmod/chmod.1 Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/bin/chmod/chmod.1 Sun Jan 8 14:36:18 2017 (r311684) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd April 20, 2015 +.Dd January 7, 2017 .Dt CHMOD 1 .Os .Sh NAME @@ -106,6 +106,16 @@ option is specified. In addition, these options override each other and the command's actions are determined by the last one specified. .Pp +If +.Nm +receives a +.Dv SIGINFO +signal (see the +.Cm status +argument for +.Xr stty 1 ) , +then the current filename as well as the old and new modes are displayed. +.Pp Only the owner of a file or the super-user is permitted to change the mode of a file. .Sh EXIT STATUS Modified: projects/clang400-import/bin/chmod/chmod.c ============================================================================== --- projects/clang400-import/bin/chmod/chmod.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/bin/chmod/chmod.c Sun Jan 8 14:36:18 2017 (r311684) @@ -49,14 +49,24 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include +static volatile sig_atomic_t siginfo; + static void usage(void); static int may_have_nfs4acl(const FTSENT *ent, int hflag); +static void +siginfo_handler(int sig __unused) +{ + + siginfo = 1; +} + int main(int argc, char *argv[]) { @@ -125,6 +135,8 @@ done: argv += optind; if (argc < 2) usage(); + (void)signal(SIGINFO, siginfo_handler); + if (Rflag) { if (hflag) errx(1, "the -R and -h options may not be " @@ -192,10 +204,10 @@ done: argv += optind; && !fflag) { warn("%s", p->fts_path); rval = 1; - } else if (vflag) { + } else if (vflag || siginfo) { (void)printf("%s", p->fts_path); - if (vflag > 1) { + if (vflag > 1 || siginfo) { char m1[12], m2[12]; strmode(p->fts_statp->st_mode, m1); @@ -207,6 +219,7 @@ done: argv += optind; newmode, m2); } (void)printf("\n"); + siginfo = 0; } } if (errno) Modified: projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S ============================================================================== --- projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S Sun Jan 8 14:36:18 2017 (r311684) @@ -527,3 +527,5 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li ret // jump to ra #endif + + .section .note.GNU-stack,"",@progbits Modified: projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S ============================================================================== --- projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S Sun Jan 8 14:36:18 2017 (r311684) @@ -469,3 +469,5 @@ DEFINE_LIBUNWIND_FUNCTION(unw_getcontext /* RISCVTODO */ #endif + + .section .note.GNU-stack,"",@progbits Modified: projects/clang400-import/contrib/ngatm/snmp_atm/snmp_atm.c ============================================================================== --- projects/clang400-import/contrib/ngatm/snmp_atm/snmp_atm.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/contrib/ngatm/snmp_atm/snmp_atm.c Sun Jan 8 14:36:18 2017 (r311684) @@ -170,7 +170,7 @@ atmif_check_carrier(struct atmif_priv *a aif->pub.carrier = ATMIF_CARRIER_UNKNOWN; return; } - if (!ifmr.ifm_status & IFM_AVALID) { + if (!(ifmr.ifm_status & IFM_AVALID)) { aif->pub.carrier = ATMIF_CARRIER_UNKNOWN; return; } Modified: projects/clang400-import/contrib/tcp_wrappers/tcpd.h ============================================================================== --- projects/clang400-import/contrib/tcp_wrappers/tcpd.h Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/contrib/tcp_wrappers/tcpd.h Sun Jan 8 14:36:18 2017 (r311684) @@ -12,6 +12,11 @@ #define TCPD_SOCKADDR struct sockaddr_in #endif +#ifndef _STDFILE_DECLARED +#define _STDFILE_DECLARED +typedef struct __sFILE FILE; +#endif + /* Structure to describe one communications endpoint. */ #define STRING_LENGTH 128 /* hosts, users, processes */ Modified: projects/clang400-import/contrib/tcpdump/print-tcp.c ============================================================================== --- projects/clang400-import/contrib/tcpdump/print-tcp.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/contrib/tcpdump/print-tcp.c Sun Jan 8 14:36:18 2017 (r311684) @@ -253,7 +253,7 @@ tcp_print(netdissect_options *ndo, if (ip6) { register struct tcp_seq_hash6 *th; struct tcp_seq_hash6 *tcp_seq_hash; - const struct in6_addr *src, *dst; + const void *src, *dst; struct tha6 tha; tcp_seq_hash = tcp_seq_hash6; @@ -309,7 +309,7 @@ tcp_print(netdissect_options *ndo, #endif /*INET6*/ register struct tcp_seq_hash *th; struct tcp_seq_hash *tcp_seq_hash; - const struct in_addr *src, *dst; + const void *src, *dst; struct tha tha; tcp_seq_hash = tcp_seq_hash4; Modified: projects/clang400-import/crypto/openssh/config.h ============================================================================== --- projects/clang400-import/crypto/openssh/config.h Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/crypto/openssh/config.h Sun Jan 8 14:36:18 2017 (r311684) @@ -1408,7 +1408,7 @@ /* #undef LASTLOG_WRITE_PUTUTXLINE */ /* Define if you want TCP Wrappers support */ -#define LIBWRAP 1 +/* #undef LIBWRAP */ /* Define to whatever link() returns for "not supported" if it doesn't return EOPNOTSUPP. */ Modified: projects/clang400-import/etc/snmpd.config ============================================================================== --- projects/clang400-import/etc/snmpd.config Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/etc/snmpd.config Sun Jan 8 14:36:18 2017 (r311684) @@ -122,6 +122,14 @@ snmpEnableAuthenTraps = 2 # order to use the enclosed variables, e.g. `usmUserStatus.$(engine).$(user1)` # can only be used if %usm is uncommented. # +# Modules are loaded in the order listed, so they must be before any +# dependent modules, e.g. "mibII" vs "bridge". +# + +# +# MIB-2 module +# +begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so" # # Bridge module @@ -141,11 +149,6 @@ snmpEnableAuthenTraps = 2 #begemotSnmpdModulePath."lm75" = "/usr/lib/snmp_lm75.so" # -# MIB-2 module -# -begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so" - -# # Netgraph module # #begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so" Modified: projects/clang400-import/gnu/lib/libgcc/Makefile ============================================================================== --- projects/clang400-import/gnu/lib/libgcc/Makefile Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/gnu/lib/libgcc/Makefile Sun Jan 8 14:36:18 2017 (r311684) @@ -133,7 +133,8 @@ LIBADD+= compiler_rt .if ${TARGET_CPUARCH} == mips LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c # ABIs other than o32 need this -.if ${TARGET_ARCH:Mmips64*} != "" || ${TARGET_ARCH:Mmipsn32*} != "" +.if (${TARGET_ARCH:Mmips64*} != "" || ${TARGET_ARCH:Mmipsn32*} != "") && \ + !defined(COMPAT_32BIT) LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c LIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c LIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c Modified: projects/clang400-import/gnu/usr.bin/binutils/ld/Makefile.mips ============================================================================== --- projects/clang400-import/gnu/usr.bin/binutils/ld/Makefile.mips Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/gnu/usr.bin/binutils/ld/Makefile.mips Sun Jan 8 14:36:18 2017 (r311684) @@ -8,6 +8,7 @@ _EMULATION_ENDIAN=b .if ${TARGET_ARCH:Mmips64*} != "" NATIVE_EMULATION=elf64${_EMULATION_ENDIAN}tsmip_fbsd +LIBSEARCHPATH.elf32${_EMULATION_ENDIAN}tsmip_fbsd=\"=/usr/lib32\" .elif ${TARGET_ARCH:Mmipsn32*} != "" NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd .else Modified: projects/clang400-import/lib/lib80211/lib80211_regdomain.c ============================================================================== --- projects/clang400-import/lib/lib80211/lib80211_regdomain.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/lib80211/lib80211_regdomain.c Sun Jan 8 14:36:18 2017 (r311684) @@ -123,6 +123,10 @@ start_element(void *data, const char *na mt->curband = &mt->rd->bands_11ng; else if (iseq(mode, "11na")) mt->curband = &mt->rd->bands_11na; + else if (iseq(mode, "11ac")) + mt->curband = &mt->rd->bands_11ac; + else if (iseq(mode, "11acg")) + mt->curband = &mt->rd->bands_11acg; else warnx("unknown mode \"%s\" at line %ld", __DECONST(char *, mode), @@ -184,6 +188,14 @@ decode_flag(struct mystate *mt, const ch FLAG(IEEE80211_CHAN_G), FLAG(IEEE80211_CHAN_HT20), FLAG(IEEE80211_CHAN_HT40), + FLAG(IEEE80211_CHAN_VHT20), + FLAG(IEEE80211_CHAN_VHT40), + FLAG(IEEE80211_CHAN_VHT80), + /* + * XXX VHT80_80? This likely should be done by + * 80MHz chan logic in net80211 / ifconfig. + */ + FLAG(IEEE80211_CHAN_VHT160), FLAG(IEEE80211_CHAN_ST), FLAG(IEEE80211_CHAN_TURBO), FLAG(IEEE80211_CHAN_PASSIVE), @@ -515,6 +527,24 @@ lib80211_regdomain_readconfig(struct reg } nb->band = id; } + LIST_FOREACH(nb, &dp->bands_11ac, next) { + id = findid(rdp, nb->band, FREQBAND); + if (id == NULL) { + warnx("undefined 11ac band \"%s\"", + __DECONST(char *, nb->band)); + errors++; + } + nb->band = id; + } + LIST_FOREACH(nb, &dp->bands_11acg, next) { + id = findid(rdp, nb->band, FREQBAND); + if (id == NULL) { + warnx("undefined 11acg band \"%s\"", + __DECONST(char *, nb->band)); + errors++; + } + nb->band = id; + } } LIST_FOREACH(cp, &rdp->countries, next) { id = cp->rd; @@ -562,6 +592,8 @@ lib80211_regdomain_cleanup(struct regdat cleanup_bands(&dp->bands_11a); cleanup_bands(&dp->bands_11ng); cleanup_bands(&dp->bands_11na); + cleanup_bands(&dp->bands_11ac); + cleanup_bands(&dp->bands_11acg); if (dp->name != NULL) free(__DECONST(char *, dp->name)); } Modified: projects/clang400-import/lib/lib80211/lib80211_regdomain.h ============================================================================== --- projects/clang400-import/lib/lib80211/lib80211_regdomain.h Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/lib80211/lib80211_regdomain.h Sun Jan 8 14:36:18 2017 (r311684) @@ -75,6 +75,8 @@ struct regdomain { netband_head bands_11a; /* 11a operation */ netband_head bands_11ng;/* 11ng operation */ netband_head bands_11na;/* 11na operation */ + netband_head bands_11ac;/* 11ac 5GHz operation */ + netband_head bands_11acg;/* 11ac 2GHz operation */ LIST_ENTRY(regdomain) next; }; Modified: projects/clang400-import/lib/libc/include/libc_private.h ============================================================================== --- projects/clang400-import/lib/libc/include/libc_private.h Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libc/include/libc_private.h Sun Jan 8 14:36:18 2017 (r311684) @@ -272,6 +272,8 @@ void _malloc_thread_cleanup(void); * thread is exiting, so its thread-local dtors should be called. */ void __cxa_thread_call_dtors(void); +int __cxa_thread_atexit_hidden(void (*dtor_func)(void *), void *obj, + void *dso_symbol) __hidden; /* * These functions are used by the threading libraries in order to protect Modified: projects/clang400-import/lib/libc/stdlib/Makefile.inc ============================================================================== --- projects/clang400-import/lib/libc/stdlib/Makefile.inc Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libc/stdlib/Makefile.inc Sun Jan 8 14:36:18 2017 (r311684) @@ -5,7 +5,9 @@ .PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/stdlib ${LIBC_SRCTOP}/stdlib MISRCS+=C99_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \ - bsearch.c cxa_thread_atexit.c div.c exit.c getenv.c getopt.c getopt_long.c \ + bsearch.c \ + cxa_thread_atexit.c cxa_thread_atexit_impl.c \ + div.c exit.c getenv.c getopt.c getopt_long.c \ getsubopt.c hcreate.c hcreate_r.c hdestroy_r.c heapsort.c heapsort_b.c \ hsearch_r.c imaxabs.c imaxdiv.c \ insque.c l64a.c labs.c ldiv.c llabs.c lldiv.c lsearch.c \ Modified: projects/clang400-import/lib/libc/stdlib/Symbol.map ============================================================================== --- projects/clang400-import/lib/libc/stdlib/Symbol.map Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libc/stdlib/Symbol.map Sun Jan 8 14:36:18 2017 (r311684) @@ -118,6 +118,7 @@ FBSD_1.4 { FBSD_1.5 { __cxa_thread_atexit; + __cxa_thread_atexit_impl; }; FBSDprivate_1.0 { Modified: projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit.c ============================================================================== --- projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit.c Sun Jan 8 14:36:18 2017 (r311684) @@ -1,7 +1,10 @@ /*- - * Copyright (c) 2016 Mahdi Mokhtari + * Copyright (c) 2017 The FreeBSD Foundation * All rights reserved. * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -27,114 +30,11 @@ #include __FBSDID("$FreeBSD$"); -#include -#include "namespace.h" -#include -#include -#include -#include -#include -#include -#include "un-namespace.h" #include "libc_private.h" -/* - * C++11 introduces the thread_local scope (like __thread with some - * additions). As a key-feature it should support non-trivial - * destructors, registered with __cxa_thread_atexit() to be executed - * at the thread termination. - * - * The implemention keeps a _Thread_local list of destructors per each - * thread, and calls __cxa_thread_call_dtors() on each thread's exit - * to do cleanup. For a thread calling exit(3), in particular, for - * the initial thread returning from main(), we call - * __cxa_thread_call_dtors() inside exit(). - * - * It could be possible that a dynamically loaded library, use - * thread_local variable but is dlclose()'d before thread exit. The - * destructor of this variable will then try to access the address, - * for calling it but it's unloaded, so it'll crash. We're using - * __elf_phdr_match_addr() to detect and prevent such cases and so - * prevent the crash. - */ - -#define CXA_DTORS_ITERATIONS 4 - -struct cxa_thread_dtor { - void *obj; - void (*func)(void *); - void *dso; - LIST_ENTRY(cxa_thread_dtor) entry; -}; -static _Thread_local LIST_HEAD(dtor_list, cxa_thread_dtor) dtors = - LIST_HEAD_INITIALIZER(dtors); - int __cxa_thread_atexit(void (*dtor_func)(void *), void *obj, void *dso_symbol) { - struct cxa_thread_dtor *new_dtor; - - new_dtor = malloc(sizeof(*new_dtor)); - if (new_dtor == NULL) { - errno = ENOMEM; /* forcibly override malloc(3) error */ - return (-1); - } - - new_dtor->obj = obj; - new_dtor->func = dtor_func; - new_dtor->dso = dso_symbol; - LIST_INSERT_HEAD(&dtors, new_dtor, entry); - return (0); -} - -static void -walk_cb_call(struct cxa_thread_dtor *dtor) -{ - struct dl_phdr_info phdr_info; - - if (_rtld_addr_phdr(dtor->dso, &phdr_info) && - __elf_phdr_match_addr(&phdr_info, dtor->func)) - dtor->func(dtor->obj); - else - fprintf(stderr, "__cxa_thread_call_dtors: dtr %p from " - "unloaded dso, skipping\n", (void *)(dtor->func)); -} - -static void -walk_cb_nocall(struct cxa_thread_dtor *dtor __unused) -{ -} - -static void -cxa_thread_walk(void (*cb)(struct cxa_thread_dtor *)) -{ - struct cxa_thread_dtor *dtor, *tdtor; - - LIST_FOREACH_SAFE(dtor, &dtors, entry, tdtor) { - LIST_REMOVE(dtor, entry); - cb(dtor); - free(dtor); - } -} - -/* - * This is the callback function we use to call destructors, once for - * each thread. It is called in exit(3) in libc/stdlib/exit.c and - * before exit_thread() in libthr/thread/thr_exit.c. - */ -void -__cxa_thread_call_dtors(void) -{ - int i; - - for (i = 0; i < CXA_DTORS_ITERATIONS && !LIST_EMPTY(&dtors); i++) - cxa_thread_walk(walk_cb_call); - if (!LIST_EMPTY(&dtors)) { - fprintf(stderr, "Thread %p is exiting with more " - "thread-specific dtors created after %d iterations " - "of destructor calls\n", - _pthread_self(), i); - cxa_thread_walk(walk_cb_nocall); - } + return (__cxa_thread_atexit_hidden(dtor_func, obj, dso_symbol)); } Copied: projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit_impl.c (from r311683, head/lib/libc/stdlib/cxa_thread_atexit_impl.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/lib/libc/stdlib/cxa_thread_atexit_impl.c Sun Jan 8 14:36:18 2017 (r311684, copy of r311683, head/lib/libc/stdlib/cxa_thread_atexit_impl.c) @@ -0,0 +1,153 @@ +/*- + * Copyright (c) 2016 Mahdi Mokhtari + * Copyright (c) 2016, 2017 The FreeBSD Foundation + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include "namespace.h" +#include +#include +#include +#include +#include +#include +#include "un-namespace.h" +#include "libc_private.h" + +/* + * C++11 introduces the thread_local scope (like __thread with some + * additions). As a key-feature it should support non-trivial + * destructors, registered with __cxa_thread_atexit() to be executed + * at the thread termination. + * + * The implemention keeps a _Thread_local list of destructors per each + * thread, and calls __cxa_thread_call_dtors() on each thread's exit + * to do cleanup. For a thread calling exit(3), in particular, for + * the initial thread returning from main(), we call + * __cxa_thread_call_dtors() inside exit(). + * + * It could be possible that a dynamically loaded library, use + * thread_local variable but is dlclose()'d before thread exit. The + * destructor of this variable will then try to access the address, + * for calling it but it's unloaded, so it'll crash. We're using + * __elf_phdr_match_addr() to detect and prevent such cases and so + * prevent the crash. + */ + +#define CXA_DTORS_ITERATIONS 4 + +struct cxa_thread_dtor { + void *obj; + void (*func)(void *); + void *dso; + LIST_ENTRY(cxa_thread_dtor) entry; +}; +static _Thread_local LIST_HEAD(dtor_list, cxa_thread_dtor) dtors = + LIST_HEAD_INITIALIZER(dtors); + +int +__cxa_thread_atexit_impl(void (*dtor_func)(void *), void *obj, + void *dso_symbol) +{ + + return (__cxa_thread_atexit_hidden(dtor_func, obj, dso_symbol)); +} + +int +__cxa_thread_atexit_hidden(void (*dtor_func)(void *), void *obj, + void *dso_symbol) +{ + struct cxa_thread_dtor *new_dtor; + + new_dtor = malloc(sizeof(*new_dtor)); + if (new_dtor == NULL) { + errno = ENOMEM; /* forcibly override malloc(3) error */ + return (-1); + } + + new_dtor->obj = obj; + new_dtor->func = dtor_func; + new_dtor->dso = dso_symbol; + LIST_INSERT_HEAD(&dtors, new_dtor, entry); + return (0); +} + +static void +walk_cb_call(struct cxa_thread_dtor *dtor) +{ + struct dl_phdr_info phdr_info; + + if (_rtld_addr_phdr(dtor->dso, &phdr_info) && + __elf_phdr_match_addr(&phdr_info, dtor->func)) + dtor->func(dtor->obj); + else + fprintf(stderr, "__cxa_thread_call_dtors: dtr %p from " + "unloaded dso, skipping\n", (void *)(dtor->func)); +} + +static void +walk_cb_nocall(struct cxa_thread_dtor *dtor __unused) +{ +} + +static void +cxa_thread_walk(void (*cb)(struct cxa_thread_dtor *)) +{ + struct cxa_thread_dtor *dtor, *tdtor; + + LIST_FOREACH_SAFE(dtor, &dtors, entry, tdtor) { + LIST_REMOVE(dtor, entry); + cb(dtor); + free(dtor); + } +} + +/* + * This is the callback function we use to call destructors, once for + * each thread. It is called in exit(3) in libc/stdlib/exit.c and + * before exit_thread() in libthr/thread/thr_exit.c. + */ +void +__cxa_thread_call_dtors(void) +{ + int i; + + for (i = 0; i < CXA_DTORS_ITERATIONS && !LIST_EMPTY(&dtors); i++) + cxa_thread_walk(walk_cb_call); + + if (!LIST_EMPTY(&dtors)) { + fprintf(stderr, "Thread %p is exiting with more " + "thread-specific dtors created after %d iterations " + "of destructor calls\n", + _pthread_self(), i); + cxa_thread_walk(walk_cb_nocall); + } +} Modified: projects/clang400-import/lib/libcam/scsi_cmdparse.c ============================================================================== --- projects/clang400-import/lib/libcam/scsi_cmdparse.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libcam/scsi_cmdparse.c Sun Jan 8 14:36:18 2017 (r311684) @@ -100,10 +100,11 @@ __FBSDID("$FreeBSD$"); */ static int -do_buff_decode(u_int8_t *databuf, size_t len, +do_buff_decode(u_int8_t *buff, size_t len, void (*arg_put)(void *, int , void *, int, char *), void *puthook, const char *fmt, va_list *ap) { + int ind = 0; int assigned = 0; int width; int suppress; @@ -112,21 +113,17 @@ do_buff_decode(u_int8_t *databuf, size_t static u_char mask[] = {0, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff}; int value; - u_char *base = databuf; char *intendp; char letter; char field_name[80]; -# define ARG_PUT(ARG) \ - do \ - { \ - if (!suppress) \ - { \ +#define ARG_PUT(ARG) \ + do { \ + if (!suppress) { \ if (arg_put) \ - (*arg_put)(puthook, (letter == 't' ? \ - 'b' : letter), \ - (void *)((long)(ARG)), width, \ - field_name); \ + (*arg_put)(puthook, (letter == 't' ? 'b' : \ + letter), (void *)((long)(ARG)), width, \ + field_name); \ else \ *(va_arg(*ap, int *)) = (ARG); \ assigned++; \ @@ -187,7 +184,11 @@ do_buff_decode(u_int8_t *databuf, size_t done = 1; else { if (shift <= 0) { - bits = *databuf++; + if (ind >= len) { + done = 1; + break; + } + bits = buff[ind++]; shift = 8; } value = (bits >> (shift - width)) & @@ -209,29 +210,31 @@ do_buff_decode(u_int8_t *databuf, size_t fmt++; width = strtol(fmt, &intendp, 10); fmt = intendp; + if (ind + width > len) { + done = 1; + break; + } switch(width) { case 1: - ARG_PUT(*databuf); - databuf++; + ARG_PUT(buff[ind]); + ind++; break; case 2: - ARG_PUT((*databuf) << 8 | *(databuf + 1)); - databuf += 2; + ARG_PUT(buff[ind] << 8 | buff[ind + 1]); + ind += 2; break; case 3: - ARG_PUT((*databuf) << 16 | - (*(databuf + 1)) << 8 | *(databuf + 2)); - databuf += 3; + ARG_PUT(buff[ind] << 16 | + buff[ind + 1] << 8 | buff[ind + 2]); + ind += 3; break; case 4: - ARG_PUT((*databuf) << 24 | - (*(databuf + 1)) << 16 | - (*(databuf + 2)) << 8 | - *(databuf + 3)); - databuf += 4; + ARG_PUT(buff[ind] << 24 | buff[ind + 1] << 16 | + buff[ind + 2] << 8 | buff[ind + 3]); + ind += 4; break; default: @@ -242,32 +245,35 @@ do_buff_decode(u_int8_t *databuf, size_t break; case 'c': /* Characters (i.e., not swapped) */ - case 'z': /* Characters with zeroed trailing - spaces */ + case 'z': /* Characters with zeroed trailing spaces */ shift = 0; fmt++; width = strtol(fmt, &intendp, 10); fmt = intendp; + if (ind + width > len) { + done = 1; + break; + } if (!suppress) { if (arg_put) (*arg_put)(puthook, - (letter == 't' ? 'b' : letter), - databuf, width, field_name); + (letter == 't' ? 'b' : letter), + &buff[ind], width, field_name); else { char *dest; dest = va_arg(*ap, char *); - bcopy(databuf, dest, width); + bcopy(&buff[ind], dest, width); if (letter == 'z') { char *p; for (p = dest + width - 1; - (p >= (char *)dest) - && (*p == ' '); p--) + p >= dest && *p == ' '; + p--) *p = 0; } } assigned++; } - databuf += width; + ind += width; field_name[0] = 0; suppress = 0; break; @@ -295,9 +301,9 @@ do_buff_decode(u_int8_t *databuf, size_t } if (plus) - databuf += width; /* Relative seek */ + ind += width; /* Relative seek */ else - databuf = base + width; /* Absolute seek */ + ind = width; /* Absolute seek */ break; Modified: projects/clang400-import/lib/libprocstat/cd9660.c ============================================================================== --- projects/clang400-import/lib/libprocstat/cd9660.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libprocstat/cd9660.c Sun Jan 8 14:36:18 2017 (r311684) @@ -53,10 +53,10 @@ __FBSDID("$FreeBSD$"); #include -#include #define _KERNEL #include #undef _KERNEL +#include #include #include Modified: projects/clang400-import/lib/libstand/bootp.c ============================================================================== --- projects/clang400-import/lib/libstand/bootp.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libstand/bootp.c Sun Jan 8 14:36:18 2017 (r311684) @@ -62,8 +62,6 @@ __FBSDID("$FreeBSD$"); struct in_addr servip; -static n_long nmask, smask; - static time_t bot; static char vm_rfc1048[4] = VM_RFC1048; @@ -223,30 +221,19 @@ bootp(sock, flag) bcopy(rbuf.rbootp.bp_file, bootfile, sizeof(bootfile)); bootfile[sizeof(bootfile) - 1] = '\0'; - if (IN_CLASSA(ntohl(myip.s_addr))) - nmask = htonl(IN_CLASSA_NET); - else if (IN_CLASSB(ntohl(myip.s_addr))) - nmask = htonl(IN_CLASSB_NET); - else - nmask = htonl(IN_CLASSC_NET); -#ifdef BOOTP_DEBUG - if (debug) - printf("'native netmask' is %s\n", intoa(nmask)); -#endif - - /* Check subnet mask against net mask; toss if bogus */ - if ((nmask & smask) != nmask) { + if (!netmask) { + if (IN_CLASSA(ntohl(myip.s_addr))) + netmask = htonl(IN_CLASSA_NET); + else if (IN_CLASSB(ntohl(myip.s_addr))) + netmask = htonl(IN_CLASSB_NET); + else + netmask = htonl(IN_CLASSC_NET); #ifdef BOOTP_DEBUG if (debug) - printf("subnet mask (%s) bad\n", intoa(smask)); + printf("'native netmask' is %s\n", intoa(netmask)); #endif - smask = 0; } - /* Get subnet (or natural net) mask */ - netmask = nmask; - if (smask) - netmask = smask; #ifdef BOOTP_DEBUG if (debug) printf("mask: %s\n", intoa(netmask)); @@ -385,7 +372,7 @@ vend_rfc1048(cp, len) break; if (tag == TAG_SUBNET_MASK) { - bcopy(cp, &smask, sizeof(smask)); + bcopy(cp, &netmask, sizeof(netmask)); } if (tag == TAG_GATEWAY) { bcopy(cp, &gateip.s_addr, sizeof(gateip.s_addr)); @@ -445,7 +432,7 @@ vend_cmu(cp) vp = (struct cmu_vend *)cp; if (vp->v_smask.s_addr != 0) { - smask = vp->v_smask.s_addr; + netmask = vp->v_smask.s_addr; } if (vp->v_dgate.s_addr != 0) { gateip = vp->v_dgate; Modified: projects/clang400-import/lib/libsysdecode/mktables ============================================================================== --- projects/clang400-import/lib/libsysdecode/mktables Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/lib/libsysdecode/mktables Sun Jan 8 14:36:18 2017 (r311684) @@ -142,7 +142,7 @@ gen_table "seekwhence" "SEEK_[A-Z]+ gen_table "fcntlcmd" "F_[A-Z0-9_]+[[:space:]]+[0-9]+[[:space:]]+" "sys/fcntl.h" "F_CANCEL|F_..LCK" gen_table "mmapflags" "MAP_[A-Z_]+[[:space:]]+0x[0-9A-Fa-f]+" "sys/mman.h" gen_table "rtpriofuncs" "RTP_[A-Z]+[[:space:]]+[0-9]+" "sys/rtprio.h" -gen_table "msgflags" "MSG_[A-Z]+[[:space:]]+0x[0-9]+" "sys/socket.h" "MSG_SOCALLBCK" +gen_table "msgflags" "MSG_[A-Z]+[[:space:]]+0x[0-9]+" "sys/socket.h" "MSG_SOCALLBCK|MSG_MORETOCOME" gen_table "sigcode" "SI_[A-Z]+[[:space:]]+0(x[0-9abcdef]+)?" "sys/signal.h" gen_table "umtxcvwaitflags" "CVWAIT_[A-Z_]+[[:space:]]+0x[0-9]+" "sys/umtx.h" gen_table "umtxrwlockflags" "URWLOCK_PREFER_READER[[:space:]]+0x[0-9]+" "sys/umtx.h" Modified: projects/clang400-import/sbin/camcontrol/camcontrol.8 ============================================================================== --- projects/clang400-import/sbin/camcontrol/camcontrol.8 Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/sbin/camcontrol/camcontrol.8 Sun Jan 8 14:36:18 2017 (r311684) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 30, 2016 +.Dd January 6, 2017 .Dt CAMCONTROL 8 .Os .Sh NAME @@ -121,7 +121,7 @@ .Ic modepage .Op device id .Op generic args -.Aq Fl m Ar page | Fl l +.Aq Fl m Ar page[,subpage] | Fl l .Op Fl P Ar pgctl .Op Fl b | Fl e .Op Fl d @@ -702,9 +702,10 @@ The editor will be invoked if detects that standard input is terminal. .It Fl l Lists all available mode pages. -.It Fl m Ar mode_page -This specifies the number of the mode page the user would like to view -and/or edit. +If specified more then once, also lists subpages. +.It Fl m Ar page[,subpage] +This specifies the number of the mode page and optionally subpage the user +would like to view and/or edit. This argument is mandatory unless .Fl l is specified. Modified: projects/clang400-import/sbin/camcontrol/camcontrol.c ============================================================================== --- projects/clang400-import/sbin/camcontrol/camcontrol.c Sun Jan 8 13:38:17 2017 (r311683) +++ projects/clang400-import/sbin/camcontrol/camcontrol.c Sun Jan 8 14:36:18 2017 (r311684) @@ -125,12 +125,9 @@ typedef enum { CAM_ARG_GET_STDINQ = 0x00002000, CAM_ARG_GET_XFERRATE = 0x00004000, CAM_ARG_INQ_MASK = 0x00007000, - CAM_ARG_MODE_EDIT = 0x00008000, - CAM_ARG_PAGE_CNTL = 0x00010000, CAM_ARG_TIMEOUT = 0x00020000, CAM_ARG_CMD_IN = 0x00040000, CAM_ARG_CMD_OUT = 0x00080000, - CAM_ARG_DBD = 0x00100000, CAM_ARG_ERR_RECOVER = 0x00200000, CAM_ARG_RETRIES = 0x00400000, CAM_ARG_START_UNIT = 0x00800000, @@ -3987,8 +3984,8 @@ reassignblocks(struct cam_device *device #ifndef MINIMALISTIC void -mode_sense(struct cam_device *device, int mode_page, int page_control, - int dbd, int retry_count, int timeout, u_int8_t *data, int datalen) +mode_sense(struct cam_device *device, int dbd, int pc, int page, int subpage, + int retry_count, int timeout, u_int8_t *data, int datalen) { union ccb *ccb; int retval; @@ -4000,15 +3997,17 @@ mode_sense(struct cam_device *device, in CCB_CLEAR_ALL_EXCEPT_HDR(&ccb->csio); - scsi_mode_sense(&ccb->csio, + scsi_mode_sense_subpage(&ccb->csio, /* retries */ retry_count, /* cbfcnp */ NULL, /* tag_action */ MSG_SIMPLE_Q_TAG, /* dbd */ dbd, - /* page_code */ page_control << 6, - /* page */ mode_page, + /* pc */ pc << 6, + /* page */ page, + /* subpage */ subpage, /* param_buf */ data, /* param_len */ datalen, + /* minimum_cmd_size */ 0, /* sense_len */ SSD_FULL_SIZE, /* timeout */ timeout ? timeout : 5000); @@ -4089,8 +4088,9 @@ void modepage(struct cam_device *device, int argc, char **argv, char *combinedopt, int retry_count, int timeout) { - int c, mode_page = -1, page_control = 0; - int binary = 0, list = 0; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Jan 8 14:49:51 2017 Return-Path: Delivered-To: svn-src-projects@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 50C5DCA5B7F for ; Sun, 8 Jan 2017 14:49:51 +0000 (UTC) (envelope-from dim@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 166641AC8; Sun, 8 Jan 2017 14:49:51 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08EnoCh025434; Sun, 8 Jan 2017 14:49:50 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08EnoO5025433; Sun, 8 Jan 2017 14:49:50 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081449.v08EnoO5025433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 14:49:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311685 - projects/clang400-import/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 14:49:51 -0000 Author: dim Date: Sun Jan 8 14:49:50 2017 New Revision: 311685 URL: https://svnweb.freebsd.org/changeset/base/311685 Log: Disable -Waddress-of-packed-member for WARNS <= 3. Modified: projects/clang400-import/share/mk/bsd.sys.mk Modified: projects/clang400-import/share/mk/bsd.sys.mk ============================================================================== --- projects/clang400-import/share/mk/bsd.sys.mk Sun Jan 8 14:36:18 2017 (r311684) +++ projects/clang400-import/share/mk/bsd.sys.mk Sun Jan 8 14:49:50 2017 (r311685) @@ -78,15 +78,15 @@ CWARNFLAGS.clang+= -Wno-tautological-com .if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30600 CWARNFLAGS.clang+= -Wno-unused-local-typedef .endif +.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 40000 +CWARNFLAGS.clang+= -Wno-address-of-packed-member +.endif .endif # WARNS <= 3 .if ${WARNS} <= 2 CWARNFLAGS.clang+= -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter .endif # WARNS <= 2 .if ${WARNS} <= 1 CWARNFLAGS.clang+= -Wno-parentheses -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 40000 -CWARNFLAGS.clang+= -Wno-address-of-packed-member -.endif .endif # WARNS <= 1 .if defined(NO_WARRAY_BOUNDS) CWARNFLAGS.clang+= -Wno-array-bounds From owner-svn-src-projects@freebsd.org Sun Jan 8 18:14:29 2017 Return-Path: Delivered-To: svn-src-projects@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 70BB9CA5060 for ; Sun, 8 Jan 2017 18:14:29 +0000 (UTC) (envelope-from dim@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 3FF2E1052; Sun, 8 Jan 2017 18:14:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08IESeQ010520; Sun, 8 Jan 2017 18:14:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08IES1B010519; Sun, 8 Jan 2017 18:14:28 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081814.v08IES1B010519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 18:14:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311691 - projects/clang400-import/sys/conf X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 18:14:29 -0000 Author: dim Date: Sun Jan 8 18:14:28 2017 New Revision: 311691 URL: https://svnweb.freebsd.org/changeset/base/311691 Log: For kernel builds, make the -Waddress-of-packed-member warning non-fatal. The warning is informative, but often there is no real alignment problem. Modified: projects/clang400-import/sys/conf/kern.mk Modified: projects/clang400-import/sys/conf/kern.mk ============================================================================== --- projects/clang400-import/sys/conf/kern.mk Sun Jan 8 18:14:22 2017 (r311690) +++ projects/clang400-import/sys/conf/kern.mk Sun Jan 8 18:14:28 2017 (r311691) @@ -33,6 +33,9 @@ CWARNEXTRA?= -Wno-error-tautological-com .if ${COMPILER_VERSION} >= 30700 CWARNEXTRA+= -Wno-error-shift-negative-value .endif +.if ${COMPILER_VERSION} >= 40000 +CWARNEXTRA+= -Wno-error-address-of-packed-member +.endif CLANG_NO_IAS= -no-integrated-as .if ${COMPILER_VERSION} < 30500 From owner-svn-src-projects@freebsd.org Sun Jan 8 18:17:36 2017 Return-Path: Delivered-To: svn-src-projects@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 3EEEDCA5125 for ; Sun, 8 Jan 2017 18:17:36 +0000 (UTC) (envelope-from dim@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 11514160F; Sun, 8 Jan 2017 18:17:36 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08IHZFf010733; Sun, 8 Jan 2017 18:17:35 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08IHZ3n010732; Sun, 8 Jan 2017 18:17:35 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081817.v08IHZ3n010732@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 18:17:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311692 - projects/clang400-import/sys/geom/vinum X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 18:17:36 -0000 Author: dim Date: Sun Jan 8 18:17:35 2017 New Revision: 311692 URL: https://svnweb.freebsd.org/changeset/base/311692 Log: Merge ^/head r311684 through r311691. Modified: projects/clang400-import/sys/geom/vinum/geom_vinum_state.c Directory Properties: projects/clang400-import/ (props changed) Modified: projects/clang400-import/sys/geom/vinum/geom_vinum_state.c ============================================================================== --- projects/clang400-import/sys/geom/vinum/geom_vinum_state.c Sun Jan 8 18:14:28 2017 (r311691) +++ projects/clang400-import/sys/geom/vinum/geom_vinum_state.c Sun Jan 8 18:17:35 2017 (r311692) @@ -183,7 +183,7 @@ gv_set_sd_state(struct gv_sd *s, int new * Only do this if we're forced, since it usually is done * internally, and then we do use the force flag. */ - if (!flags & GV_SETSTATE_FORCE) + if (!(flags & GV_SETSTATE_FORCE)) return (GV_ERR_SETSTATE); break; From owner-svn-src-projects@freebsd.org Sun Jan 8 19:39:04 2017 Return-Path: Delivered-To: svn-src-projects@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 C9EBCCA59D8 for ; Sun, 8 Jan 2017 19:39:04 +0000 (UTC) (envelope-from dim@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 7F81719E7; Sun, 8 Jan 2017 19:39:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08Jd3mX043029; Sun, 8 Jan 2017 19:39:03 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08Jd3k9043022; Sun, 8 Jan 2017 19:39:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081939.v08Jd3k9043022@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 19:39:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311696 - in projects/clang400-import: contrib/libc++ contrib/libc++/include contrib/libc++/include/experimental contrib/libc++/include/ext contrib/libc++/src contrib/libc++/src/experim... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 19:39:04 -0000 Author: dim Date: Sun Jan 8 19:39:03 2017 New Revision: 311696 URL: https://svnweb.freebsd.org/changeset/base/311696 Log: Merge libc++ r291274, and update the library Makefile. Added: projects/clang400-import/contrib/libc++/include/__libcpp_version - copied unchanged from r311695, vendor/libc++/dist/include/__libcpp_version projects/clang400-import/contrib/libc++/include/__string - copied unchanged from r311695, vendor/libc++/dist/include/__string projects/clang400-import/contrib/libc++/include/any - copied unchanged from r311695, vendor/libc++/dist/include/any projects/clang400-import/contrib/libc++/include/experimental/numeric - copied unchanged from r311695, vendor/libc++/dist/include/experimental/numeric projects/clang400-import/contrib/libc++/include/limits.h - copied unchanged from r311695, vendor/libc++/dist/include/limits.h projects/clang400-import/contrib/libc++/include/locale.h - copied unchanged from r311695, vendor/libc++/dist/include/locale.h projects/clang400-import/contrib/libc++/include/optional - copied unchanged from r311695, vendor/libc++/dist/include/optional projects/clang400-import/contrib/libc++/include/stdint.h - copied unchanged from r311695, vendor/libc++/dist/include/stdint.h projects/clang400-import/contrib/libc++/include/string_view - copied unchanged from r311695, vendor/libc++/dist/include/string_view projects/clang400-import/contrib/libc++/include/variant - copied unchanged from r311695, vendor/libc++/dist/include/variant projects/clang400-import/contrib/libc++/src/variant.cpp - copied unchanged from r311695, vendor/libc++/dist/src/variant.cpp Modified: projects/clang400-import/contrib/libc++/LICENSE.TXT projects/clang400-import/contrib/libc++/include/__bit_reference projects/clang400-import/contrib/libc++/include/__config projects/clang400-import/contrib/libc++/include/__debug projects/clang400-import/contrib/libc++/include/__functional_03 projects/clang400-import/contrib/libc++/include/__functional_base projects/clang400-import/contrib/libc++/include/__hash_table projects/clang400-import/contrib/libc++/include/__locale projects/clang400-import/contrib/libc++/include/__mutex_base projects/clang400-import/contrib/libc++/include/__nullptr projects/clang400-import/contrib/libc++/include/__refstring projects/clang400-import/contrib/libc++/include/__std_stream projects/clang400-import/contrib/libc++/include/__threading_support projects/clang400-import/contrib/libc++/include/__tree projects/clang400-import/contrib/libc++/include/__tuple projects/clang400-import/contrib/libc++/include/algorithm projects/clang400-import/contrib/libc++/include/array projects/clang400-import/contrib/libc++/include/atomic projects/clang400-import/contrib/libc++/include/bitset projects/clang400-import/contrib/libc++/include/chrono projects/clang400-import/contrib/libc++/include/cmath projects/clang400-import/contrib/libc++/include/codecvt projects/clang400-import/contrib/libc++/include/complex projects/clang400-import/contrib/libc++/include/cstdio projects/clang400-import/contrib/libc++/include/cstdlib projects/clang400-import/contrib/libc++/include/cwchar projects/clang400-import/contrib/libc++/include/deque projects/clang400-import/contrib/libc++/include/exception projects/clang400-import/contrib/libc++/include/experimental/algorithm projects/clang400-import/contrib/libc++/include/experimental/any projects/clang400-import/contrib/libc++/include/experimental/dynarray projects/clang400-import/contrib/libc++/include/experimental/filesystem projects/clang400-import/contrib/libc++/include/experimental/memory_resource projects/clang400-import/contrib/libc++/include/experimental/optional projects/clang400-import/contrib/libc++/include/experimental/propagate_const projects/clang400-import/contrib/libc++/include/experimental/string_view projects/clang400-import/contrib/libc++/include/experimental/type_traits projects/clang400-import/contrib/libc++/include/experimental/utility projects/clang400-import/contrib/libc++/include/ext/__hash projects/clang400-import/contrib/libc++/include/ext/hash_map projects/clang400-import/contrib/libc++/include/ext/hash_set projects/clang400-import/contrib/libc++/include/forward_list projects/clang400-import/contrib/libc++/include/fstream projects/clang400-import/contrib/libc++/include/functional projects/clang400-import/contrib/libc++/include/future projects/clang400-import/contrib/libc++/include/initializer_list projects/clang400-import/contrib/libc++/include/inttypes.h projects/clang400-import/contrib/libc++/include/iomanip projects/clang400-import/contrib/libc++/include/ios projects/clang400-import/contrib/libc++/include/iosfwd projects/clang400-import/contrib/libc++/include/istream projects/clang400-import/contrib/libc++/include/iterator projects/clang400-import/contrib/libc++/include/limits projects/clang400-import/contrib/libc++/include/list projects/clang400-import/contrib/libc++/include/locale projects/clang400-import/contrib/libc++/include/map projects/clang400-import/contrib/libc++/include/math.h projects/clang400-import/contrib/libc++/include/memory projects/clang400-import/contrib/libc++/include/module.modulemap projects/clang400-import/contrib/libc++/include/mutex projects/clang400-import/contrib/libc++/include/new projects/clang400-import/contrib/libc++/include/numeric projects/clang400-import/contrib/libc++/include/ostream projects/clang400-import/contrib/libc++/include/queue projects/clang400-import/contrib/libc++/include/random projects/clang400-import/contrib/libc++/include/ratio projects/clang400-import/contrib/libc++/include/regex projects/clang400-import/contrib/libc++/include/scoped_allocator projects/clang400-import/contrib/libc++/include/set projects/clang400-import/contrib/libc++/include/sstream projects/clang400-import/contrib/libc++/include/stack projects/clang400-import/contrib/libc++/include/stdexcept projects/clang400-import/contrib/libc++/include/streambuf projects/clang400-import/contrib/libc++/include/string projects/clang400-import/contrib/libc++/include/system_error projects/clang400-import/contrib/libc++/include/thread projects/clang400-import/contrib/libc++/include/tuple projects/clang400-import/contrib/libc++/include/type_traits projects/clang400-import/contrib/libc++/include/typeindex projects/clang400-import/contrib/libc++/include/typeinfo projects/clang400-import/contrib/libc++/include/unordered_map projects/clang400-import/contrib/libc++/include/unordered_set projects/clang400-import/contrib/libc++/include/utility projects/clang400-import/contrib/libc++/include/valarray projects/clang400-import/contrib/libc++/include/vector projects/clang400-import/contrib/libc++/src/algorithm.cpp projects/clang400-import/contrib/libc++/src/any.cpp projects/clang400-import/contrib/libc++/src/chrono.cpp projects/clang400-import/contrib/libc++/src/condition_variable.cpp projects/clang400-import/contrib/libc++/src/debug.cpp projects/clang400-import/contrib/libc++/src/exception.cpp projects/clang400-import/contrib/libc++/src/experimental/filesystem/directory_iterator.cpp projects/clang400-import/contrib/libc++/src/experimental/filesystem/operations.cpp projects/clang400-import/contrib/libc++/src/experimental/filesystem/path.cpp projects/clang400-import/contrib/libc++/src/experimental/memory_resource.cpp projects/clang400-import/contrib/libc++/src/include/atomic_support.h projects/clang400-import/contrib/libc++/src/include/config_elast.h projects/clang400-import/contrib/libc++/src/ios.cpp projects/clang400-import/contrib/libc++/src/locale.cpp projects/clang400-import/contrib/libc++/src/memory.cpp projects/clang400-import/contrib/libc++/src/mutex.cpp projects/clang400-import/contrib/libc++/src/new.cpp projects/clang400-import/contrib/libc++/src/optional.cpp projects/clang400-import/contrib/libc++/src/random.cpp projects/clang400-import/contrib/libc++/src/stdexcept.cpp projects/clang400-import/contrib/libc++/src/string.cpp projects/clang400-import/contrib/libc++/src/strstream.cpp projects/clang400-import/contrib/libc++/src/system_error.cpp projects/clang400-import/contrib/libc++/src/thread.cpp projects/clang400-import/contrib/libc++/src/typeinfo.cpp projects/clang400-import/lib/libc++/Makefile Directory Properties: projects/clang400-import/contrib/libc++/ (props changed) Modified: projects/clang400-import/contrib/libc++/LICENSE.TXT ============================================================================== --- projects/clang400-import/contrib/libc++/LICENSE.TXT Sun Jan 8 18:46:00 2017 (r311695) +++ projects/clang400-import/contrib/libc++/LICENSE.TXT Sun Jan 8 19:39:03 2017 (r311696) @@ -14,7 +14,7 @@ Full text of the relevant licenses is in University of Illinois/NCSA Open Source License -Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2017 by the contributors listed in CREDITS.TXT All rights reserved. Modified: projects/clang400-import/contrib/libc++/include/__bit_reference ============================================================================== --- projects/clang400-import/contrib/libc++/include/__bit_reference Sun Jan 8 18:46:00 2017 (r311695) +++ projects/clang400-import/contrib/libc++/include/__bit_reference Sun Jan 8 19:39:03 2017 (r311696) @@ -163,7 +163,7 @@ __find_bool_true(__bit_iterator<_Cp, _Is { typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + static const int __bits_per_word = _It::__bits_per_word; // do first partial word if (__first.__ctz_ != 0) { @@ -199,7 +199,7 @@ __find_bool_false(__bit_iterator<_Cp, _I { typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + const int __bits_per_word = _It::__bits_per_word; // do first partial word if (__first.__ctz_ != 0) { @@ -251,7 +251,7 @@ __count_bool_true(__bit_iterator<_Cp, _I typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; typedef typename _It::difference_type difference_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + const int __bits_per_word = _It::__bits_per_word; difference_type __r = 0; // do first partial word if (__first.__ctz_ != 0) @@ -282,7 +282,7 @@ __count_bool_false(__bit_iterator<_Cp, _ typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; typedef typename _It::difference_type difference_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + const int __bits_per_word = _It::__bits_per_word; difference_type __r = 0; // do first partial word if (__first.__ctz_ != 0) @@ -324,7 +324,7 @@ __fill_n_false(__bit_iterator<_Cp, false { typedef __bit_iterator<_Cp, false> _It; typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + const int __bits_per_word = _It::__bits_per_word; // do first partial word if (__first.__ctz_ != 0) { @@ -354,7 +354,7 @@ __fill_n_true(__bit_iterator<_Cp, false> { typedef __bit_iterator<_Cp, false> _It; typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + const int __bits_per_word = _It::__bits_per_word; // do first partial word if (__first.__ctz_ != 0) { @@ -412,7 +412,7 @@ __copy_aligned(__bit_iterator<_Cp, _IsCo typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; + const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { @@ -461,7 +461,7 @@ __copy_unaligned(__bit_iterator<_Cp, _Is typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; + static const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { @@ -551,7 +551,7 @@ __copy_backward_aligned(__bit_iterator<_ typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; + const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { @@ -600,7 +600,7 @@ __copy_backward_unaligned(__bit_iterator typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; - static const unsigned __bits_per_word = _In::__bits_per_word; + const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { @@ -718,7 +718,7 @@ __swap_ranges_aligned(__bit_iterator<__C typedef __bit_iterator<__C1, false> _I1; typedef typename _I1::difference_type difference_type; typedef typename _I1::__storage_type __storage_type; - static const unsigned __bits_per_word = _I1::__bits_per_word; + const int __bits_per_word = _I1::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { @@ -768,7 +768,7 @@ __swap_ranges_unaligned(__bit_iterator<_ typedef __bit_iterator<__C1, false> _I1; typedef typename _I1::difference_type difference_type; typedef typename _I1::__storage_type __storage_type; - static const unsigned __bits_per_word = _I1::__bits_per_word; + const int __bits_per_word = _I1::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { @@ -959,7 +959,7 @@ __equal_unaligned(__bit_iterator<_Cp, _I typedef __bit_iterator<_Cp, _IC1> _It; typedef typename _It::difference_type difference_type; typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + static const int __bits_per_word = _It::__bits_per_word; difference_type __n = __last1 - __first1; if (__n > 0) { @@ -1041,7 +1041,7 @@ __equal_aligned(__bit_iterator<_Cp, _IC1 typedef __bit_iterator<_Cp, _IC1> _It; typedef typename _It::difference_type difference_type; typedef typename _It::__storage_type __storage_type; - static const unsigned __bits_per_word = _It::__bits_per_word; + static const int __bits_per_word = _It::__bits_per_word; difference_type __n = __last1 - __first1; if (__n > 0) { Modified: projects/clang400-import/contrib/libc++/include/__config ============================================================================== --- projects/clang400-import/contrib/libc++/include/__config Sun Jan 8 18:46:00 2017 (r311695) +++ projects/clang400-import/contrib/libc++/include/__config Sun Jan 8 19:39:03 2017 (r311696) @@ -27,14 +27,14 @@ #define _GNUC_VER 0 #endif -#define _LIBCPP_VERSION 3900 +#define _LIBCPP_VERSION 4000 #ifndef _LIBCPP_ABI_VERSION #define _LIBCPP_ABI_VERSION 1 #endif #if defined(_LIBCPP_ABI_UNSTABLE) || _LIBCPP_ABI_VERSION >= 2 -// Change short string represention so that string data starts at offset 0, +// Change short string representation so that string data starts at offset 0, // improving its alignment in some cases. #define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT // Fix deque iterator type in order to support incomplete types. @@ -43,10 +43,25 @@ #define _LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB // Fix undefined behavior in how __tree stores its end and parent nodes. #define _LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB +// Fix undefined behavior in how __hash_table stores it's pointer types +#define _LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB #define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB #define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE #define _LIBCPP_ABI_VARIADIC_LOCK_GUARD +// Don't use a nullptr_t simulation type in C++03 instead using C++11 nullptr +// provided under the alternate keyword __nullptr, which changes the mangling +// of nullptr_t. This option is ABI incompatible with GCC in C++03 mode. +#define _LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR +// Define the `pointer_safety` enum as a C++11 strongly typed enumeration +// instead of as a class simulating an enum. If this option is enabled +// `pointer_safety` and `get_pointer_safety()` will no longer be available +// in C++03. +#define _LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE #elif _LIBCPP_ABI_VERSION == 1 +#if !defined(_WIN32) +// Enable compiling a definition of error_category() into the libc++ dylib. +#define _LIBCPP_DEPRECATED_ABI_EXTERNAL_ERROR_CATEGORY_CONSTRUCTOR +#endif // Feature macros for disabling pre ABI v1 features. All of these options // are deprecated. #if defined(__FreeBSD__) @@ -64,6 +79,9 @@ #define _LIBCPP_NAMESPACE _LIBCPP_CONCAT(__,_LIBCPP_ABI_VERSION) +#if __cplusplus < 201103L +#define _LIBCPP_CXX03_LANG +#endif #ifndef __has_attribute #define __has_attribute(__x) 0 @@ -83,6 +101,13 @@ #define __is_identifier(__x) 1 #endif +// Need to detect which libc we're using if we're on Linux. +#if defined(__linux__) +#include +#if !defined(__GLIBC_PREREQ) +#define __GLIBC_PREREQ(a, b) 0 +#endif // !defined(__GLIBC_PREREQ) +#endif // defined(__linux__) #ifdef __LITTLE_ENDIAN__ #if __LITTLE_ENDIAN__ @@ -134,11 +159,13 @@ # define _LIBCPP_HAS_QUICK_EXIT #endif // __NetBSD__ -#ifdef _WIN32 +#if defined(_WIN32) +# define _LIBCPP_WIN32API 1 # define _LIBCPP_LITTLE_ENDIAN 1 # define _LIBCPP_BIG_ENDIAN 0 +# define _LIBCPP_SHORT_WCHAR 1 // Compiler intrinsics (MSVC) -#if defined(_MSC_VER) && _MSC_VER >= 1400 +# if defined(_MSC_VER) && _MSC_VER >= 1400 # define _LIBCPP_HAS_IS_BASE_OF # endif # if defined(_MSC_VER) && !defined(__clang__) @@ -147,11 +174,14 @@ # define _LIBCPP_TOSTRING(x) _LIBCPP_TOSTRING2(x) # define _LIBCPP_WARNING(x) __pragma(message(__FILE__ "(" _LIBCPP_TOSTRING(__LINE__) ") : warning note: " x)) # endif -# // If mingw not explicitly detected, assume using MS C runtime only. +// If mingw not explicitly detected, assume using MS C runtime only. # ifndef __MINGW32__ # define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library # endif -#endif // _WIN32 +# if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || defined(__arm__)) +# define _LIBCPP_HAS_BITSCAN64 +# endif +#endif // defined(_WIN32) #ifdef __sun__ # include @@ -175,7 +205,7 @@ // including accesses to the special files under /dev. C++11's // std::random_device is instead exposed through a NaCl syscall. # define _LIBCPP_USING_NACL_RANDOM -#elif defined(_WIN32) +#elif defined(_LIBCPP_WIN32API) # define _LIBCPP_USING_WIN32_RANDOM #else # define _LIBCPP_USING_DEV_RANDOM @@ -200,90 +230,6 @@ #define _LIBCPP_NO_CFI #endif -#ifdef _WIN32 - -// only really useful for a DLL -#ifdef _LIBCPP_DLL // this should be a compiler builtin define ideally... -# ifdef cxx_EXPORTS -# define _LIBCPP_HIDDEN -# define _LIBCPP_FUNC_VIS __declspec(dllexport) -# define _LIBCPP_TYPE_VIS __declspec(dllexport) -# else -# define _LIBCPP_HIDDEN -# define _LIBCPP_FUNC_VIS __declspec(dllimport) -# define _LIBCPP_TYPE_VIS __declspec(dllimport) -# endif -#else -# define _LIBCPP_HIDDEN -# define _LIBCPP_FUNC_VIS -# define _LIBCPP_TYPE_VIS -#endif - -#define _LIBCPP_TYPE_VIS_ONLY -#define _LIBCPP_FUNC_VIS_ONLY - -#ifndef _LIBCPP_INLINE_VISIBILITY -# ifdef _LIBCPP_MSVC -# define _LIBCPP_INLINE_VISIBILITY __forceinline -# else // MinGW GCC and Clang -# define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__always_inline__)) -# endif -#endif - -#ifndef _LIBCPP_EXCEPTION_ABI -#define _LIBCPP_EXCEPTION_ABI _LIBCPP_TYPE_VIS -#endif - -#ifndef _LIBCPP_ALWAYS_INLINE -# ifdef _LIBCPP_MSVC -# define _LIBCPP_ALWAYS_INLINE __forceinline -# endif -#endif - -#endif // _WIN32 - -#ifndef _LIBCPP_HIDDEN -#define _LIBCPP_HIDDEN __attribute__ ((__visibility__("hidden"))) -#endif - -#ifndef _LIBCPP_FUNC_VIS -#define _LIBCPP_FUNC_VIS __attribute__ ((__visibility__("default"))) -#endif - -#ifndef _LIBCPP_TYPE_VIS -# if __has_attribute(__type_visibility__) -# define _LIBCPP_TYPE_VIS __attribute__ ((__type_visibility__("default"))) -# else -# define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__("default"))) -# endif -#endif - -#ifndef _LIBCPP_PREFERRED_OVERLOAD -# if __has_attribute(__enable_if__) -# define _LIBCPP_PREFERRED_OVERLOAD __attribute__ ((__enable_if__(true, ""))) -# endif -#endif - -#ifndef _LIBCPP_TYPE_VIS_ONLY -# define _LIBCPP_TYPE_VIS_ONLY _LIBCPP_TYPE_VIS -#endif - -#ifndef _LIBCPP_FUNC_VIS_ONLY -# define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS -#endif - -#ifndef _LIBCPP_INLINE_VISIBILITY -#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__)) -#endif - -#ifndef _LIBCPP_EXCEPTION_ABI -#define _LIBCPP_EXCEPTION_ABI __attribute__ ((__visibility__("default"))) -#endif - -#ifndef _LIBCPP_ALWAYS_INLINE -#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__)) -#endif - #if defined(__clang__) // _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for @@ -302,10 +248,6 @@ # define _ALIGNAS(x) __attribute__((__aligned__(x))) #endif -#if !__has_feature(cxx_alias_templates) -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES -#endif - #if __cplusplus < 201103L typedef __char16_t char16_t; typedef __char32_t char32_t; @@ -333,14 +275,6 @@ typedef __char32_t char32_t; # define _LIBCPP_NORETURN __attribute__ ((noreturn)) #endif -#if !(__has_feature(cxx_default_function_template_args)) -#define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS -#endif - -#if !(__has_feature(cxx_defaulted_functions)) -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS -#endif // !(__has_feature(cxx_defaulted_functions)) - #if !(__has_feature(cxx_deleted_functions)) #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #endif // !(__has_feature(cxx_deleted_functions)) @@ -350,33 +284,25 @@ typedef __char32_t char32_t; #endif #if !(__has_feature(cxx_nullptr)) -#define _LIBCPP_HAS_NO_NULLPTR +# if __has_extension(cxx_nullptr) && defined(_LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR) +# define nullptr __nullptr +# else +# define _LIBCPP_HAS_NO_NULLPTR +# endif #endif #if !(__has_feature(cxx_rvalue_references)) #define _LIBCPP_HAS_NO_RVALUE_REFERENCES #endif -#if !(__has_feature(cxx_static_assert)) -#define _LIBCPP_HAS_NO_STATIC_ASSERT -#endif - #if !(__has_feature(cxx_auto_type)) #define _LIBCPP_HAS_NO_AUTO_TYPE #endif -#if !(__has_feature(cxx_access_control_sfinae)) || !__has_feature(cxx_trailing_return) -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE -#endif - #if !(__has_feature(cxx_variadic_templates)) #define _LIBCPP_HAS_NO_VARIADICS #endif -#if !(__has_feature(cxx_trailing_return)) -#define _LIBCPP_HAS_NO_TRAILING_RETURN -#endif - #if !(__has_feature(cxx_generalized_initializers)) #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS #endif @@ -415,12 +341,12 @@ typedef __char32_t char32_t; #if defined(__FreeBSD__) #define _LIBCPP_HAS_QUICK_EXIT #define _LIBCPP_HAS_C11_FEATURES -#elif defined(__ANDROID__) +#elif defined(__Fuchsia__) #define _LIBCPP_HAS_QUICK_EXIT +#define _LIBCPP_HAS_C11_FEATURES #elif defined(__linux__) #if !defined(_LIBCPP_HAS_MUSL_LIBC) -# include -#if __GLIBC_PREREQ(2, 15) +#if __GLIBC_PREREQ(2, 15) || defined(__BIONIC__) #define _LIBCPP_HAS_QUICK_EXIT #endif #if __GLIBC_PREREQ(2, 17) @@ -504,34 +430,25 @@ namespace std { #endif #ifndef __GXX_EXPERIMENTAL_CXX0X__ - -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE #define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #define _LIBCPP_HAS_NO_NULLPTR -#define _LIBCPP_HAS_NO_STATIC_ASSERT #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_NO_VARIADICS #define _LIBCPP_HAS_NO_RVALUE_REFERENCES #define _LIBCPP_HAS_NO_STRONG_ENUMS -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES #define _LIBCPP_HAS_NO_NOEXCEPT #else // __GXX_EXPERIMENTAL_CXX0X__ #if _GNUC_VER < 403 -#define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS #define _LIBCPP_HAS_NO_RVALUE_REFERENCES -#define _LIBCPP_HAS_NO_STATIC_ASSERT #endif #if _GNUC_VER < 404 #define _LIBCPP_HAS_NO_DECLTYPE #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#define _LIBCPP_HAS_NO_TRAILING_RETURN #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_NO_VARIADICS #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS @@ -540,12 +457,6 @@ namespace std { #if _GNUC_VER < 406 #define _LIBCPP_HAS_NO_NOEXCEPT #define _LIBCPP_HAS_NO_NULLPTR -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES -#endif - -#if _GNUC_VER < 407 -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS #endif #endif // __GXX_EXPERIMENTAL_CXX0X__ @@ -566,21 +477,19 @@ using namespace _LIBCPP_NAMESPACE __attr #elif defined(_LIBCPP_MSVC) -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES #define _LIBCPP_HAS_NO_CONSTEXPR #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES +#if _MSC_VER <= 1800 #define _LIBCPP_HAS_NO_UNICODE_CHARS +#endif #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS #define _LIBCPP_HAS_NO_NOEXCEPT #define __alignof__ __alignof #define _LIBCPP_NORETURN __declspec(noreturn) #define _ALIGNAS(x) __declspec(align(x)) #define _LIBCPP_HAS_NO_VARIADICS - - #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { #define _LIBCPP_END_NAMESPACE_STD } #define _VSTD std @@ -598,9 +507,6 @@ namespace std { #define _ATTRIBUTE(x) __attribute__((x)) #define _LIBCPP_NORETURN __attribute__((noreturn)) -#define _LIBCPP_HAS_NO_DEFAULT_FUNCTION_TEMPLATE_ARGS -#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES -#define _LIBCPP_HAS_NO_ADVANCED_SFINAE #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS #define _LIBCPP_HAS_NO_NOEXCEPT #define _LIBCPP_HAS_NO_NULLPTR @@ -626,6 +532,149 @@ namespace std { #endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__ +#if defined(__ELF__) +#define _LIBCPP_OBJECT_FORMAT_ELF 1 +#elif defined(__MACH__) +#define _LIBCPP_OBJECT_FORMAT_MACHO 1 +#else +#define _LIBCPP_OBJECT_FORMAT_COFF 1 +#endif + +#if defined(_LIBCPP_OBJECT_FORMAT_COFF) +#if defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCPP_DLL_VIS +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS +# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS +# define _LIBCPP_OVERRIDABLE_FUNC_VIS +#elif defined(_LIBCPP_BUILDING_LIBRARY) +# define _LIBCPP_DLL_VIS __declspec(dllexport) +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS +# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS +# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_DLL_VIS +#else +# define _LIBCPP_DLL_VIS __declspec(dllimport) +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_DLL_VIS +# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS +# define _LIBCPP_OVERRIDABLE_FUNC_VIS +#endif + +#define _LIBCPP_TYPE_VIS _LIBCPP_DLL_VIS +#define _LIBCPP_FUNC_VIS _LIBCPP_DLL_VIS +#define _LIBCPP_EXCEPTION_ABI _LIBCPP_DLL_VIS +#define _LIBCPP_HIDDEN +#define _LIBCPP_TEMPLATE_VIS +#define _LIBCPP_FUNC_VIS_ONLY +#define _LIBCPP_ENUM_VIS + +#if defined(_LIBCPP_MSVC) +# define _LIBCPP_INLINE_VISIBILITY __forceinline +# define _LIBCPP_ALWAYS_INLINE __forceinline +# define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __forceinline +#else +# define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__always_inline__)) +# define _LIBCPP_ALWAYS_INLINE __attribute__ ((__always_inline__)) +# define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __attribute__ ((__always_inline__)) +#endif +#endif // defined(_LIBCPP_OBJECT_FORMAT_COFF) + +#ifndef _LIBCPP_HIDDEN +#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +#define _LIBCPP_HIDDEN __attribute__ ((__visibility__("hidden"))) +#else +#define _LIBCPP_HIDDEN +#endif +#endif + +#ifndef _LIBCPP_FUNC_VIS +#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +#define _LIBCPP_FUNC_VIS __attribute__ ((__visibility__("default"))) +#else +#define _LIBCPP_FUNC_VIS +#endif +#endif + +#ifndef _LIBCPP_TYPE_VIS +# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +# if __has_attribute(__type_visibility__) +# define _LIBCPP_TYPE_VIS __attribute__ ((__type_visibility__("default"))) +# else +# define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__("default"))) +# endif +# else +# define _LIBCPP_TYPE_VIS +# endif +#endif + +#ifndef _LIBCPP_TEMPLATE_VIS +# define _LIBCPP_TEMPLATE_VIS _LIBCPP_TYPE_VIS +#endif + +#ifndef _LIBCPP_FUNC_VIS_ONLY +# define _LIBCPP_FUNC_VIS_ONLY _LIBCPP_FUNC_VIS +#endif + +#ifndef _LIBCPP_OVERRIDABLE_FUNC_VIS +# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_FUNC_VIS +#endif + +#ifndef _LIBCPP_EXCEPTION_ABI +#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +#define _LIBCPP_EXCEPTION_ABI __attribute__ ((__visibility__("default"))) +#else +#define _LIBCPP_EXCEPTION_ABI +#endif +#endif + +#ifndef _LIBCPP_ENUM_VIS +# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__) +# define _LIBCPP_ENUM_VIS __attribute__ ((__type_visibility__("default"))) +# else +# define _LIBCPP_ENUM_VIS +# endif +#endif + +#ifndef _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS +# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__) +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __attribute__ ((__type_visibility__("default"))) +# else +# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS +# endif +#endif + +#ifndef _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS +# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS +#endif + +#ifndef _LIBCPP_INLINE_VISIBILITY +#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__)) +#else +#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__always_inline__)) +#endif +#endif + +#ifndef _LIBCPP_ALWAYS_INLINE +#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__)) +#else +#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__always_inline__)) +#endif +#endif + +#ifndef _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY +# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __attribute__((__visibility__("default"), __always_inline__)) +# else +# define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __attribute__((__always_inline__)) +# endif +#endif + +#ifndef _LIBCPP_PREFERRED_OVERLOAD +# if __has_attribute(__enable_if__) +# define _LIBCPP_PREFERRED_OVERLOAD __attribute__ ((__enable_if__(true, ""))) +# endif +#endif + #ifndef _LIBCPP_HAS_NO_NOEXCEPT # define _NOEXCEPT noexcept # define _NOEXCEPT_(x) noexcept(x) @@ -634,6 +683,17 @@ namespace std { # define _NOEXCEPT_(x) #endif +#if defined(_LIBCPP_DEBUG_USE_EXCEPTIONS) +# if !defined(_LIBCPP_DEBUG) +# error cannot use _LIBCPP_DEBUG_USE_EXCEPTIONS unless _LIBCPP_DEBUG is defined +# endif +# define _NOEXCEPT_DEBUG noexcept(false) +# define _NOEXCEPT_DEBUG_(x) noexcept(false) +#else +# define _NOEXCEPT_DEBUG _NOEXCEPT +# define _NOEXCEPT_DEBUG_(x) _NOEXCEPT_(x) +#endif + #ifdef _LIBCPP_HAS_NO_UNICODE_CHARS typedef unsigned short char16_t; typedef unsigned int char32_t; @@ -643,8 +703,10 @@ typedef unsigned int char32_t; #define _LIBCPP_HAS_NO_INT128 #endif -#ifdef _LIBCPP_HAS_NO_STATIC_ASSERT - +#ifdef _LIBCPP_CXX03_LANG +# if __has_extension(c_static_assert) +# define static_assert(__b, __m) _Static_assert(__b, __m) +# else extern "C++" { template struct __static_assert_test; template <> struct __static_assert_test {}; @@ -653,8 +715,8 @@ template struct __static_asse #define static_assert(__b, __m) \ typedef __static_assert_check)> \ _LIBCPP_CONCAT(__t, __LINE__) - -#endif // _LIBCPP_HAS_NO_STATIC_ASSERT +# endif // __has_extension(c_static_assert) +#endif // _LIBCPP_CXX03_LANG #ifdef _LIBCPP_HAS_NO_DECLTYPE // GCC 4.6 provides __decltype in all standard modes. @@ -671,7 +733,7 @@ template struct __static_asse #define _LIBCPP_CONSTEXPR constexpr #endif -#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS +#ifdef _LIBCPP_CXX03_LANG #define _LIBCPP_DEFAULT {} #else #define _LIBCPP_DEFAULT = default; @@ -689,7 +751,8 @@ template struct __static_asse #define _NOALIAS #endif -#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) +#if __has_extension(cxx_explicit_conversions) || defined(__IBMCPP__) || \ + (!defined(_LIBCPP_CXX03_LANG) && defined(__GNUC__)) // All supported GCC versions # define _LIBCPP_EXPLICIT explicit #else # define _LIBCPP_EXPLICIT @@ -708,7 +771,7 @@ template struct __static_asse _LIBCPP_ALWAYS_INLINE operator int() const {return __v_;} \ }; #else // _LIBCPP_HAS_NO_STRONG_ENUMS -#define _LIBCPP_DECLARE_STRONG_ENUM(x) enum class _LIBCPP_TYPE_VIS x +#define _LIBCPP_DECLARE_STRONG_ENUM(x) enum class _LIBCPP_ENUM_VIS x #define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) #endif // _LIBCPP_HAS_NO_STRONG_ENUMS @@ -735,14 +798,14 @@ template struct __static_asse #define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63) #endif -#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || \ +#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCPP_MSVCRT) || \ defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__) #define _LIBCPP_LOCALE__L_EXTENSIONS 1 #endif #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) // Most unix variants have catopen. These are the specific ones that don't. -#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(_NEWLIB_VERSION) +#if !defined(__BIONIC__) && !defined(_NEWLIB_VERSION) #define _LIBCPP_HAS_CATOPEN 1 #endif #endif @@ -795,6 +858,11 @@ template struct __static_asse #define _LIBCPP_CONSTEXPR_AFTER_CXX14 #endif +// FIXME: Remove all usages of this macro once compilers catch up. +#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606L) +# define _LIBCPP_HAS_NO_INLINE_VARIABLES +#endif + #ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES # define _LIBCPP_EXPLICIT_MOVE(x) _VSTD::move(x) #else @@ -802,7 +870,7 @@ template struct __static_asse #endif #ifndef _LIBCPP_HAS_NO_ASAN -extern "C" void __sanitizer_annotate_contiguous_container( +_LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_contiguous_container( const void *, const void *, const void *, const void *); #endif @@ -823,8 +891,11 @@ extern "C" void __sanitizer_annotate_con #endif // Thread API -#if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) +#if !defined(_LIBCPP_HAS_NO_THREADS) && \ + !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && \ + !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) # if defined(__FreeBSD__) || \ + defined(__Fuchsia__) || \ defined(__NetBSD__) || \ defined(__linux__) || \ defined(__APPLE__) || \ @@ -841,6 +912,11 @@ extern "C" void __sanitizer_annotate_con _LIBCPP_HAS_NO_THREADS is not defined. #endif +#if defined(_LIBCPP_HAS_NO_THREADS) && defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) +# error _LIBCPP_HAS_EXTERNAL_THREAD_API may not be defined when \ + _LIBCPP_HAS_NO_THREADS is defined. +#endif + #if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK) && !defined(_LIBCPP_HAS_NO_THREADS) # error _LIBCPP_HAS_NO_MONOTONIC_CLOCK may only be defined when \ _LIBCPP_HAS_NO_THREADS is defined. @@ -861,11 +937,12 @@ extern "C" void __sanitizer_annotate_con #define _LIBCPP_HAS_NO_STDOUT #endif -#if defined(__ANDROID__) || defined(__CloudABI__) || defined(_LIBCPP_HAS_MUSL_LIBC) +#if defined(__BIONIC__) || defined(__CloudABI__) || \ + defined(_LIBCPP_HAS_MUSL_LIBC) #define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE #endif -// Thread-unsafe functions such as strtok(), mbtowc() and localtime() +// Thread-unsafe functions such as strtok() and localtime() // are not available. #ifdef __CloudABI__ #define _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS @@ -886,17 +963,25 @@ extern "C" void __sanitizer_annotate_con #define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK #endif -#if __cplusplus < 201103L -#define _LIBCPP_CXX03_LANG +#if (defined(_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS) && defined(__clang__) \ + && __has_attribute(acquire_capability)) +#define _LIBCPP_HAS_THREAD_SAFETY_ANNOTATIONS +#endif + +#if __has_attribute(require_constant_initialization) +#define _LIBCPP_SAFE_STATIC __attribute__((__require_constant_initialization__)) #else -#if defined(_LIBCPP_HAS_NO_VARIADIC_TEMPLATES) || defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) -#error Libc++ requires a feature complete C++11 compiler in C++11 or greater. +#define _LIBCPP_SAFE_STATIC #endif + +#if !__has_builtin(__builtin_addressof) && _GNUC_VER < 700 +#define _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF #endif -#if (defined(_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS) && defined(__clang__) \ - && __has_attribute(acquire_capability)) -#define _LIBCPP_HAS_THREAD_SAFETY_ANNOTATIONS +#if !defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS) +#if defined(_LIBCPP_MSVCRT) || defined(_NEWLIB_VERSION) +#define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS +#endif #endif #endif // __cplusplus Modified: projects/clang400-import/contrib/libc++/include/__debug ============================================================================== --- projects/clang400-import/contrib/libc++/include/__debug Sun Jan 8 18:46:00 2017 (r311695) +++ projects/clang400-import/contrib/libc++/include/__debug Sun Jan 8 19:39:03 2017 (r311696) @@ -17,23 +17,103 @@ #pragma GCC system_header #endif -#if _LIBCPP_DEBUG_LEVEL >= 1 +#if defined(_LIBCPP_HAS_NO_NULLPTR) +# include +#endif + +#if _LIBCPP_DEBUG_LEVEL >= 1 || defined(_LIBCPP_BUILDING_LIBRARY) # include # include # include -# ifndef _LIBCPP_ASSERT -# define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : (_VSTD::fprintf(stderr, "%s\n", m), _VSTD::abort())) -# endif +# include +#endif + +#if _LIBCPP_DEBUG_LEVEL >= 1 && !defined(_LIBCPP_ASSERT) +# define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : \ + _VSTD::__libcpp_debug_function(_VSTD::__libcpp_debug_info(__FILE__, __LINE__, #x, m))) +#endif + +#if _LIBCPP_DEBUG_LEVEL >= 2 +#ifndef _LIBCPP_DEBUG_ASSERT +#define _LIBCPP_DEBUG_ASSERT(x, m) _LIBCPP_ASSERT(x, m) +#endif +#define _LIBCPP_DEBUG_MODE(...) __VA_ARGS__ #endif #ifndef _LIBCPP_ASSERT # define _LIBCPP_ASSERT(x, m) ((void)0) #endif +#ifndef _LIBCPP_DEBUG_ASSERT +# define _LIBCPP_DEBUG_ASSERT(x, m) ((void)0) +#endif +#ifndef _LIBCPP_DEBUG_MODE +#define _LIBCPP_DEBUG_MODE(...) ((void)0) +#endif -#if _LIBCPP_DEBUG_LEVEL >= 2 +#if _LIBCPP_DEBUG_LEVEL < 1 +class _LIBCPP_EXCEPTION_ABI __libcpp_debug_exception; +#endif _LIBCPP_BEGIN_NAMESPACE_STD +struct _LIBCPP_TEMPLATE_VIS __libcpp_debug_info { + _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR + __libcpp_debug_info() + : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {} + _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR + __libcpp_debug_info(const char* __f, int __l, const char* __p, const char* __m) + : __file_(__f), __line_(__l), __pred_(__p), __msg_(__m) {} + const char* __file_; + int __line_; + const char* __pred_; + const char* __msg_; +}; + +/// __libcpp_debug_function_type - The type of the assertion failure handler. +typedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&); + +/// __libcpp_debug_function - The handler function called when a _LIBCPP_ASSERT +/// fails. +extern __libcpp_debug_function_type __libcpp_debug_function; + +/// __libcpp_abort_debug_function - A debug handler that aborts when called. +_LIBCPP_NORETURN _LIBCPP_FUNC_VIS +void __libcpp_abort_debug_function(__libcpp_debug_info const&); + +/// __libcpp_throw_debug_function - A debug handler that throws +/// an instance of __libcpp_debug_exception when called. + _LIBCPP_NORETURN _LIBCPP_FUNC_VIS +void __libcpp_throw_debug_function(__libcpp_debug_info const&); + +/// __libcpp_set_debug_function - Set the debug handler to the specified +/// function. +_LIBCPP_FUNC_VIS +bool __libcpp_set_debug_function(__libcpp_debug_function_type __func); + +// Setup the throwing debug handler during dynamic initialization. +#if _LIBCPP_DEBUG_LEVEL >= 1 && defined(_LIBCPP_DEBUG_USE_EXCEPTIONS) +# if defined(_LIBCPP_NO_EXCEPTIONS) +# error _LIBCPP_DEBUG_USE_EXCEPTIONS cannot be used when exceptions are disabled. +# endif +static bool __init_dummy = __libcpp_set_debug_function(__libcpp_throw_debug_function); +#endif + +#if _LIBCPP_DEBUG_LEVEL >= 1 || defined(_LIBCPP_BUILDING_LIBRARY) +class _LIBCPP_EXCEPTION_ABI __libcpp_debug_exception : public exception { +public: + __libcpp_debug_exception() _NOEXCEPT; + explicit __libcpp_debug_exception(__libcpp_debug_info const& __i); + __libcpp_debug_exception(__libcpp_debug_exception const&); + ~__libcpp_debug_exception() _NOEXCEPT; + const char* what() const _NOEXCEPT; +private: + struct __libcpp_debug_exception_imp; + __libcpp_debug_exception_imp *__imp_; +}; +#endif + +#if _LIBCPP_DEBUG_LEVEL >= 2 || defined(_LIBCPP_BUILDING_LIBRARY) + struct _LIBCPP_TYPE_VIS __c_node; struct _LIBCPP_TYPE_VIS __i_node @@ -102,7 +182,7 @@ struct _C_node }; template -bool +inline bool _C_node<_Cont>::__dereferenceable(const void* __i) const { typedef typename _Cont::const_iterator iterator; @@ -112,7 +192,7 @@ _C_node<_Cont>::__dereferenceable(const } template -bool +inline bool _C_node<_Cont>::__decrementable(const void* __i) const { typedef typename _Cont::const_iterator iterator; @@ -122,7 +202,7 @@ _C_node<_Cont>::__decrementable(const vo } template -bool +inline bool _C_node<_Cont>::__addable(const void* __i, ptrdiff_t __n) const { typedef typename _Cont::const_iterator iterator; @@ -132,7 +212,7 @@ _C_node<_Cont>::__addable(const void* __ } template -bool +inline bool _C_node<_Cont>::__subscriptable(const void* __i, ptrdiff_t __n) const { typedef typename _Cont::const_iterator iterator; @@ -214,9 +294,9 @@ _LIBCPP_FUNC_VIS __libcpp_db* __get_db() _LIBCPP_FUNC_VIS const __libcpp_db* __get_const_db(); -_LIBCPP_END_NAMESPACE_STD +#endif // _LIBCPP_DEBUG_LEVEL >= 2 || defined(_LIBCPP_BUILDING_LIBRARY) -#endif +_LIBCPP_END_NAMESPACE_STD #endif // _LIBCPP_DEBUG_H Modified: projects/clang400-import/contrib/libc++/include/__functional_03 ============================================================================== --- projects/clang400-import/contrib/libc++/include/__functional_03 Sun Jan 8 18:46:00 2017 (r311695) +++ projects/clang400-import/contrib/libc++/include/__functional_03 Sun Jan 8 19:39:03 2017 (r311696) @@ -445,7 +445,7 @@ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>: } // __function template *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Jan 8 19:47:19 2017 Return-Path: Delivered-To: svn-src-projects@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 9CC1BCA5BBC for ; Sun, 8 Jan 2017 19:47:19 +0000 (UTC) (envelope-from dim@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 2B8301E78; Sun, 8 Jan 2017 19:47:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08JlIq7046894; Sun, 8 Jan 2017 19:47:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08JlH08046885; Sun, 8 Jan 2017 19:47:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081947.v08JlH08046885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 19:47:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311697 - in projects/clang400-import/contrib/compiler-rt: include/sanitizer include/xray lib/asan lib/builtins lib/builtins/arm lib/cfi lib/dfsan lib/esan lib/interception lib/lsan lib... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 19:47:19 -0000 Author: dim Date: Sun Jan 8 19:47:17 2017 New Revision: 311697 URL: https://svnweb.freebsd.org/changeset/base/311697 Log: Merge compiler-rt r291274. Added: projects/clang400-import/contrib/compiler-rt/include/xray/ - copied from r311696, vendor/compiler-rt/dist/include/xray/ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_descriptions.cc - copied unchanged from r311696, vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_descriptions.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/asan/asan_descriptions.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_errors.cc - copied unchanged from r311696, vendor/compiler-rt/dist/lib/asan/asan_errors.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_errors.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/asan/asan_errors.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_globals_win.cc - copied unchanged from r311696, vendor/compiler-rt/dist/lib/asan/asan_globals_win.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_globals_win.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/asan/asan_globals_win.h projects/clang400-import/contrib/compiler-rt/lib/builtins/floattitf.c - copied unchanged from r311696, vendor/compiler-rt/dist/lib/builtins/floattitf.c projects/clang400-import/contrib/compiler-rt/lib/builtins/floatuntitf.c - copied unchanged from r311696, vendor/compiler-rt/dist/lib/builtins/floatuntitf.c projects/clang400-import/contrib/compiler-rt/lib/builtins/mingw_fixfloat.c - copied unchanged from r311696, vendor/compiler-rt/dist/lib/builtins/mingw_fixfloat.c projects/clang400-import/contrib/compiler-rt/lib/esan/esan_hashtable.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/esan/esan_hashtable.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.cc - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.inc - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_flags.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_bytemap.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_combined.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_local_cache.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_primary32.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_primary64.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_secondary.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_size_class_map.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_stats.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_dbghelp.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_dbghelp.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_mips64.S - copied unchanged from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_mips64.S projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/symbolizer/ - copied from r311696, vendor/compiler-rt/dist/lib/sanitizer_common/symbolizer/ projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h - copied unchanged from r311696, vendor/compiler-rt/dist/lib/scudo/scudo_allocator_secondary.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mips64.S - copied unchanged from r311696, vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_mips64.S projects/clang400-import/contrib/compiler-rt/lib/xray/ - copied from r311696, vendor/compiler-rt/dist/lib/xray/ Modified: projects/clang400-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h projects/clang400-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_debugging.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_fake_stack.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_fake_stack.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_flags.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_flags.inc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_globals.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_interface_internal.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_internal.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_mac.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_malloc_win.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_mapping.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_memory_profile.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_poisoning.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_poisoning.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_posix.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_report.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_report.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_rtl.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_scariness_score.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_thread.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_thread.h projects/clang400-import/contrib/compiler-rt/lib/asan/asan_win.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divsi3.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/udivsi3.S projects/clang400-import/contrib/compiler-rt/lib/builtins/assembly.h projects/clang400-import/contrib/compiler-rt/lib/builtins/atomic.c projects/clang400-import/contrib/compiler-rt/lib/builtins/clear_cache.c projects/clang400-import/contrib/compiler-rt/lib/builtins/int_lib.h projects/clang400-import/contrib/compiler-rt/lib/cfi/cfi.cc projects/clang400-import/contrib/compiler-rt/lib/dfsan/dfsan.cc projects/clang400-import/contrib/compiler-rt/lib/dfsan/dfsan.h projects/clang400-import/contrib/compiler-rt/lib/dfsan/dfsan_interceptors.cc projects/clang400-import/contrib/compiler-rt/lib/dfsan/dfsan_platform.h projects/clang400-import/contrib/compiler-rt/lib/dfsan/done_abilist.txt projects/clang400-import/contrib/compiler-rt/lib/esan/cache_frag.cpp projects/clang400-import/contrib/compiler-rt/lib/esan/esan.cpp projects/clang400-import/contrib/compiler-rt/lib/esan/esan.h projects/clang400-import/contrib/compiler-rt/lib/esan/esan_flags.cpp projects/clang400-import/contrib/compiler-rt/lib/esan/esan_interceptors.cpp projects/clang400-import/contrib/compiler-rt/lib/esan/esan_interface_internal.h projects/clang400-import/contrib/compiler-rt/lib/esan/esan_linux.cpp projects/clang400-import/contrib/compiler-rt/lib/esan/esan_shadow.h projects/clang400-import/contrib/compiler-rt/lib/interception/interception.h projects/clang400-import/contrib/compiler-rt/lib/interception/interception_win.cc projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_common.cc projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_thread.cc projects/clang400-import/contrib/compiler-rt/lib/msan/msan.h projects/clang400-import/contrib/compiler-rt/lib/msan/msan_allocator.cc projects/clang400-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc projects/clang400-import/contrib/compiler-rt/lib/msan/msan_interface_internal.h projects/clang400-import/contrib/compiler-rt/lib/msan/msan_linux.cc projects/clang400-import/contrib/compiler-rt/lib/profile/GCDAProfiling.c projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfData.inc projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfiling.c projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfiling.h projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingPort.h projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingRuntime.cc projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h projects/clang400-import/contrib/compiler-rt/lib/profile/InstrProfilingValue.c projects/clang400-import/contrib/compiler-rt/lib/profile/WindowsMMap.c projects/clang400-import/contrib/compiler-rt/lib/safestack/safestack.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_freebsd.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator.h projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_flags.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_flags.h projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_interceptors.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_termination.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_utils.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_utils.h projects/clang400-import/contrib/compiler-rt/lib/stats/stats_client.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/go/tsan_go.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_trace.h projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_init.cc projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc Directory Properties: projects/clang400-import/contrib/compiler-rt/ (props changed) Modified: projects/clang400-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sun Jan 8 19:47:17 2017 (r311697) @@ -117,6 +117,16 @@ extern "C" { // Print the stack trace leading to this call. Useful for debugging user code. void __sanitizer_print_stack_trace(); + // Symbolizes the supplied 'pc' using the format string 'fmt'. + // Outputs at most 'out_buf_size' bytes into 'out_buf'. + // The format syntax is described in + // lib/sanitizer_common/sanitizer_stacktrace_printer.h. + void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf, + size_t out_buf_size); + // Same as __sanitizer_symbolize_pc, but for data section (i.e. globals). + void __sanitizer_symbolize_global(void *data_ptr, const char *fmt, + char *out_buf, size_t out_buf_size); + // Sets the callback to be called right before death on error. // Passing 0 will unset the callback. void __sanitizer_set_death_callback(void (*callback)(void)); @@ -169,7 +179,16 @@ extern "C" { // use-after-return detection. void __sanitizer_start_switch_fiber(void **fake_stack_save, const void *bottom, size_t size); - void __sanitizer_finish_switch_fiber(void *fake_stack_save); + void __sanitizer_finish_switch_fiber(void *fake_stack_save, + const void **bottom_old, + size_t *size_old); + + // Get full module name and calculate pc offset within it. + // Returns 1 if pc belongs to some module, 0 if module was not found. + int __sanitizer_get_module_and_offset_for_pc(void *pc, char *module_path, + size_t module_path_len, + void **pc_offset); + #ifdef __cplusplus } // extern "C" #endif Modified: projects/clang400-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h Sun Jan 8 19:47:17 2017 (r311697) @@ -23,6 +23,11 @@ extern "C" { void __sanitizer_cov_init(); // Record and dump coverage info. void __sanitizer_cov_dump(); + + // Dump collected coverage info. Sorts pcs by module into individual + // .sancov files. + void __sanitizer_dump_coverage(const uintptr_t *pcs, uintptr_t len); + // Open .sancov.packed in the coverage directory and return the file // descriptor. Returns -1 on failure, or if coverage dumping is disabled. // This is intended for use by sandboxing code. @@ -41,13 +46,6 @@ extern "C" { // Some of the entries in *data will be zero. uintptr_t __sanitizer_get_coverage_guards(uintptr_t **data); - // Set *data to the growing buffer with covered PCs and return the size - // of the buffer. The entries are never zero. - // When only unique pcs are collected, the size is equal to - // __sanitizer_get_total_unique_coverage. - // WARNING: EXPERIMENTAL API. - uintptr_t __sanitizer_get_coverage_pc_buffer(uintptr_t **data); - // The coverage instrumentation may optionally provide imprecise counters. // Rather than exposing the counter values to the user we instead map // the counters to a bitset. @@ -65,6 +63,7 @@ extern "C" { // __sanitizer_get_number_of_counters bytes long and 8-aligned. uintptr_t __sanitizer_update_counter_bitset_and_clear_counters(uint8_t *bitset); + #ifdef __cplusplus } // extern "C" #endif Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc Sun Jan 8 19:47:17 2017 (r311697) @@ -79,11 +79,13 @@ static struct AsanDeactivatedFlags { Report( "quarantine_size_mb %d, max_redzone %d, poison_heap %d, " "malloc_context_size %d, alloc_dealloc_mismatch %d, " - "allocator_may_return_null %d, coverage %d, coverage_dir %s\n", + "allocator_may_return_null %d, coverage %d, coverage_dir %s, " + "allocator_release_to_os_interval_ms %d\n", allocator_options.quarantine_size_mb, allocator_options.max_redzone, poison_heap, malloc_context_size, allocator_options.alloc_dealloc_mismatch, - allocator_options.may_return_null, coverage, coverage_dir); + allocator_options.may_return_null, coverage, coverage_dir, + allocator_options.release_to_os_interval_ms); } } asan_deactivated_flags; Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc Sun Jan 8 19:47:17 2017 (r311697) @@ -33,3 +33,4 @@ COMMON_ACTIVATION_FLAG(bool, coverage) COMMON_ACTIVATION_FLAG(const char *, coverage_dir) COMMON_ACTIVATION_FLAG(int, verbosity) COMMON_ACTIVATION_FLAG(bool, help) +COMMON_ACTIVATION_FLAG(s32, allocator_release_to_os_interval_ms) Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sun Jan 8 19:47:17 2017 (r311697) @@ -207,25 +207,27 @@ QuarantineCache *GetQuarantineCache(Asan void AllocatorOptions::SetFrom(const Flags *f, const CommonFlags *cf) { quarantine_size_mb = f->quarantine_size_mb; + thread_local_quarantine_size_kb = f->thread_local_quarantine_size_kb; min_redzone = f->redzone; max_redzone = f->max_redzone; may_return_null = cf->allocator_may_return_null; alloc_dealloc_mismatch = f->alloc_dealloc_mismatch; + release_to_os_interval_ms = cf->allocator_release_to_os_interval_ms; } void AllocatorOptions::CopyTo(Flags *f, CommonFlags *cf) { f->quarantine_size_mb = quarantine_size_mb; + f->thread_local_quarantine_size_kb = thread_local_quarantine_size_kb; f->redzone = min_redzone; f->max_redzone = max_redzone; cf->allocator_may_return_null = may_return_null; f->alloc_dealloc_mismatch = alloc_dealloc_mismatch; + cf->allocator_release_to_os_interval_ms = release_to_os_interval_ms; } struct Allocator { static const uptr kMaxAllowedMallocSize = FIRST_32_SECOND_64(3UL << 30, 1ULL << 40); - static const uptr kMaxThreadLocalQuarantine = - FIRST_32_SECOND_64(1 << 18, 1 << 20); AsanAllocator allocator; AsanQuarantine quarantine; @@ -254,7 +256,7 @@ struct Allocator { void SharedInitCode(const AllocatorOptions &options) { CheckOptions(options); quarantine.Init((uptr)options.quarantine_size_mb << 20, - kMaxThreadLocalQuarantine); + (uptr)options.thread_local_quarantine_size_kb << 10); atomic_store(&alloc_dealloc_mismatch, options.alloc_dealloc_mismatch, memory_order_release); atomic_store(&min_redzone, options.min_redzone, memory_order_release); @@ -262,22 +264,59 @@ struct Allocator { } void Initialize(const AllocatorOptions &options) { - allocator.Init(options.may_return_null); + allocator.Init(options.may_return_null, options.release_to_os_interval_ms); SharedInitCode(options); } + void RePoisonChunk(uptr chunk) { + // This could a user-facing chunk (with redzones), or some internal + // housekeeping chunk, like TransferBatch. Start by assuming the former. + AsanChunk *ac = GetAsanChunk((void *)chunk); + uptr allocated_size = allocator.GetActuallyAllocatedSize((void *)ac); + uptr beg = ac->Beg(); + uptr end = ac->Beg() + ac->UsedSize(true); + uptr chunk_end = chunk + allocated_size; + if (chunk < beg && beg < end && end <= chunk_end) { + // Looks like a valid AsanChunk. Or maybe not. Be conservative and only + // poison the redzones. + PoisonShadow(chunk, beg - chunk, kAsanHeapLeftRedzoneMagic); + uptr end_aligned_down = RoundDownTo(end, SHADOW_GRANULARITY); + FastPoisonShadowPartialRightRedzone( + end_aligned_down, end - end_aligned_down, + chunk_end - end_aligned_down, kAsanHeapLeftRedzoneMagic); + } else { + // This can not be an AsanChunk. Poison everything. It may be reused as + // AsanChunk later. + PoisonShadow(chunk, allocated_size, kAsanHeapLeftRedzoneMagic); + } + } + void ReInitialize(const AllocatorOptions &options) { allocator.SetMayReturnNull(options.may_return_null); + allocator.SetReleaseToOSIntervalMs(options.release_to_os_interval_ms); SharedInitCode(options); + + // Poison all existing allocation's redzones. + if (CanPoisonMemory()) { + allocator.ForceLock(); + allocator.ForEachChunk( + [](uptr chunk, void *alloc) { + ((Allocator *)alloc)->RePoisonChunk(chunk); + }, + this); + allocator.ForceUnlock(); + } } void GetOptions(AllocatorOptions *options) const { options->quarantine_size_mb = quarantine.GetSize() >> 20; + options->thread_local_quarantine_size_kb = quarantine.GetCacheSize() >> 10; options->min_redzone = atomic_load(&min_redzone, memory_order_acquire); options->max_redzone = atomic_load(&max_redzone, memory_order_acquire); options->may_return_null = allocator.MayReturnNull(); options->alloc_dealloc_mismatch = atomic_load(&alloc_dealloc_mismatch, memory_order_acquire); + options->release_to_os_interval_ms = allocator.ReleaseToOSIntervalMs(); } // -------------------- Helper methods. ------------------------- @@ -356,7 +395,7 @@ struct Allocator { if (size > kMaxAllowedMallocSize || needed_size > kMaxAllowedMallocSize) { Report("WARNING: AddressSanitizer failed to allocate 0x%zx bytes\n", (void*)size); - return allocator.ReturnNullOrDie(); + return allocator.ReturnNullOrDieOnBadRequest(); } AsanThread *t = GetCurrentThread(); @@ -373,8 +412,7 @@ struct Allocator { allocator.Allocate(cache, needed_size, 8, false, check_rss_limit); } - if (!allocated) - return allocator.ReturnNullOrDie(); + if (!allocated) return allocator.ReturnNullOrDieOnOOM(); if (*(u8 *)MEM_TO_SHADOW((uptr)allocated) == 0 && CanPoisonMemory()) { // Heap poisoning is enabled, but the allocator provides an unpoisoned @@ -530,7 +568,7 @@ struct Allocator { if (delete_size && flags()->new_delete_type_mismatch && delete_size != m->UsedSize()) { - ReportNewDeleteSizeMismatch(p, m->UsedSize(), delete_size, stack); + ReportNewDeleteSizeMismatch(p, delete_size, stack); } QuarantineChunk(m, ptr, stack, alloc_type); @@ -563,7 +601,7 @@ struct Allocator { void *Calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) { if (CallocShouldReturnNullDueToOverflow(size, nmemb)) - return allocator.ReturnNullOrDie(); + return allocator.ReturnNullOrDieOnBadRequest(); void *ptr = Allocate(nmemb * size, 8, stack, FROM_MALLOC, false); // If the memory comes from the secondary allocator no need to clear it // as it comes directly from mmap. @@ -643,6 +681,7 @@ struct Allocator { void PrintStats() { allocator.PrintStats(); + quarantine.PrintStats(); } void ForceLock() { @@ -662,17 +701,23 @@ static AsanAllocator &get_allocator() { return instance.allocator; } -bool AsanChunkView::IsValid() { +bool AsanChunkView::IsValid() const { return chunk_ && chunk_->chunk_state != CHUNK_AVAILABLE; } -bool AsanChunkView::IsAllocated() { +bool AsanChunkView::IsAllocated() const { return chunk_ && chunk_->chunk_state == CHUNK_ALLOCATED; } -uptr AsanChunkView::Beg() { return chunk_->Beg(); } -uptr AsanChunkView::End() { return Beg() + UsedSize(); } -uptr AsanChunkView::UsedSize() { return chunk_->UsedSize(); } -uptr AsanChunkView::AllocTid() { return chunk_->alloc_tid; } -uptr AsanChunkView::FreeTid() { return chunk_->free_tid; } +bool AsanChunkView::IsQuarantined() const { + return chunk_ && chunk_->chunk_state == CHUNK_QUARANTINE; +} +uptr AsanChunkView::Beg() const { return chunk_->Beg(); } +uptr AsanChunkView::End() const { return Beg() + UsedSize(); } +uptr AsanChunkView::UsedSize() const { return chunk_->UsedSize(); } +uptr AsanChunkView::AllocTid() const { return chunk_->alloc_tid; } +uptr AsanChunkView::FreeTid() const { return chunk_->free_tid; } +AllocType AsanChunkView::GetAllocType() const { + return (AllocType)chunk_->alloc_type; +} static StackTrace GetStackTraceFromId(u32 id) { CHECK(id); @@ -681,14 +726,14 @@ static StackTrace GetStackTraceFromId(u3 return res; } -u32 AsanChunkView::GetAllocStackId() { return chunk_->alloc_context_id; } -u32 AsanChunkView::GetFreeStackId() { return chunk_->free_context_id; } +u32 AsanChunkView::GetAllocStackId() const { return chunk_->alloc_context_id; } +u32 AsanChunkView::GetFreeStackId() const { return chunk_->free_context_id; } -StackTrace AsanChunkView::GetAllocStack() { +StackTrace AsanChunkView::GetAllocStack() const { return GetStackTraceFromId(GetAllocStackId()); } -StackTrace AsanChunkView::GetFreeStack() { +StackTrace AsanChunkView::GetFreeStack() const { return GetStackTraceFromId(GetFreeStackId()); } @@ -707,6 +752,9 @@ void GetAllocatorOptions(AllocatorOption AsanChunkView FindHeapChunkByAddress(uptr addr) { return instance.FindHeapChunkByAddress(addr); } +AsanChunkView FindHeapChunkByAllocBeg(uptr addr) { + return AsanChunkView(instance.GetAsanChunk(reinterpret_cast(addr))); +} void AsanThreadLocalMallocStorage::CommitBack() { instance.CommitBack(this); Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.h Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.h Sun Jan 8 19:47:17 2017 (r311697) @@ -33,10 +33,12 @@ struct AsanChunk; struct AllocatorOptions { u32 quarantine_size_mb; + u32 thread_local_quarantine_size_kb; u16 min_redzone; u16 max_redzone; u8 may_return_null; u8 alloc_dealloc_mismatch; + s32 release_to_os_interval_ms; void SetFrom(const Flags *f, const CommonFlags *cf); void CopyTo(Flags *f, CommonFlags *cf); @@ -49,27 +51,29 @@ void GetAllocatorOptions(AllocatorOption class AsanChunkView { public: explicit AsanChunkView(AsanChunk *chunk) : chunk_(chunk) {} - bool IsValid(); // Checks if AsanChunkView points to a valid allocated - // or quarantined chunk. - bool IsAllocated(); // Checks if the memory is currently allocated. - uptr Beg(); // First byte of user memory. - uptr End(); // Last byte of user memory. - uptr UsedSize(); // Size requested by the user. - uptr AllocTid(); - uptr FreeTid(); + bool IsValid() const; // Checks if AsanChunkView points to a valid + // allocated or quarantined chunk. + bool IsAllocated() const; // Checks if the memory is currently allocated. + bool IsQuarantined() const; // Checks if the memory is currently quarantined. + uptr Beg() const; // First byte of user memory. + uptr End() const; // Last byte of user memory. + uptr UsedSize() const; // Size requested by the user. + uptr AllocTid() const; + uptr FreeTid() const; bool Eq(const AsanChunkView &c) const { return chunk_ == c.chunk_; } - u32 GetAllocStackId(); - u32 GetFreeStackId(); - StackTrace GetAllocStack(); - StackTrace GetFreeStack(); - bool AddrIsInside(uptr addr, uptr access_size, sptr *offset) { + u32 GetAllocStackId() const; + u32 GetFreeStackId() const; + StackTrace GetAllocStack() const; + StackTrace GetFreeStack() const; + AllocType GetAllocType() const; + bool AddrIsInside(uptr addr, uptr access_size, sptr *offset) const { if (addr >= Beg() && (addr + access_size) <= End()) { *offset = addr - Beg(); return true; } return false; } - bool AddrIsAtLeft(uptr addr, uptr access_size, sptr *offset) { + bool AddrIsAtLeft(uptr addr, uptr access_size, sptr *offset) const { (void)access_size; if (addr < Beg()) { *offset = Beg() - addr; @@ -77,7 +81,7 @@ class AsanChunkView { } return false; } - bool AddrIsAtRight(uptr addr, uptr access_size, sptr *offset) { + bool AddrIsAtRight(uptr addr, uptr access_size, sptr *offset) const { if (addr + access_size > End()) { *offset = addr - End(); return true; @@ -90,6 +94,7 @@ class AsanChunkView { }; AsanChunkView FindHeapChunkByAddress(uptr address); +AsanChunkView FindHeapChunkByAllocBeg(uptr address); // List of AsanChunks with total size. class AsanChunkFifoList: public IntrusiveList { @@ -117,18 +122,36 @@ struct AsanMapUnmapCallback { # if defined(__powerpc64__) const uptr kAllocatorSpace = 0xa0000000000ULL; const uptr kAllocatorSize = 0x20000000000ULL; // 2T. +typedef DefaultSizeClassMap SizeClassMap; +# elif defined(__aarch64__) && SANITIZER_ANDROID +const uptr kAllocatorSpace = 0x3000000000ULL; +const uptr kAllocatorSize = 0x2000000000ULL; // 128G. +typedef VeryCompactSizeClassMap SizeClassMap; # elif defined(__aarch64__) -// AArch64/SANITIZIER_CAN_USER_ALLOCATOR64 is only for 42-bit VMA +// AArch64/SANITIZER_CAN_USER_ALLOCATOR64 is only for 42-bit VMA // so no need to different values for different VMA. const uptr kAllocatorSpace = 0x10000000000ULL; const uptr kAllocatorSize = 0x10000000000ULL; // 3T. +typedef DefaultSizeClassMap SizeClassMap; +# elif SANITIZER_WINDOWS +const uptr kAllocatorSpace = ~(uptr)0; +const uptr kAllocatorSize = 0x8000000000ULL; // 500G +typedef DefaultSizeClassMap SizeClassMap; # else const uptr kAllocatorSpace = 0x600000000000ULL; const uptr kAllocatorSize = 0x40000000000ULL; // 4T. -# endif typedef DefaultSizeClassMap SizeClassMap; -typedef SizeClassAllocator64 PrimaryAllocator; +# endif +struct AP64 { // Allocator64 parameters. Deliberately using a short name. + static const uptr kSpaceBeg = kAllocatorSpace; + static const uptr kSpaceSize = kAllocatorSize; + static const uptr kMetadataSize = 0; + typedef __asan::SizeClassMap SizeClassMap; + typedef AsanMapUnmapCallback MapUnmapCallback; + static const uptr kFlags = 0; +}; + +typedef SizeClassAllocator64 PrimaryAllocator; #else // Fallback to SizeClassAllocator32. static const uptr kRegionSizeLog = 20; static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog; Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_debugging.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_debugging.cc Sun Jan 8 19:39:03 2017 (r311696) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_debugging.cc Sun Jan 8 19:47:17 2017 (r311697) @@ -14,74 +14,39 @@ //===----------------------------------------------------------------------===// #include "asan_allocator.h" +#include "asan_descriptions.h" #include "asan_flags.h" #include "asan_internal.h" #include "asan_mapping.h" #include "asan_report.h" #include "asan_thread.h" -namespace __asan { - -void GetInfoForStackVar(uptr addr, AddressDescription *descr, AsanThread *t) { - descr->name[0] = 0; - descr->region_address = 0; - descr->region_size = 0; - descr->region_kind = "stack"; +namespace { +using namespace __asan; - AsanThread::StackFrameAccess access; - if (!t->GetStackFrameAccessByAddr(addr, &access)) - return; +static void FindInfoForStackVar(uptr addr, const char *frame_descr, uptr offset, + char *name, uptr name_size, + uptr ®ion_address, uptr ®ion_size) { InternalMmapVector vars(16); - if (!ParseFrameDescription(access.frame_descr, &vars)) { + if (!ParseFrameDescription(frame_descr, &vars)) { return; } for (uptr i = 0; i < vars.size(); i++) { - if (access.offset <= vars[i].beg + vars[i].size) { - internal_strncat(descr->name, vars[i].name_pos, - Min(descr->name_size, vars[i].name_len)); - descr->region_address = addr - (access.offset - vars[i].beg); - descr->region_size = vars[i].size; + if (offset <= vars[i].beg + vars[i].size) { + // We use name_len + 1 because strlcpy will guarantee a \0 at the end, so + // if we're limiting the copy due to name_len, we add 1 to ensure we copy + // the whole name and then terminate with '\0'. + internal_strlcpy(name, vars[i].name_pos, + Min(name_size, vars[i].name_len + 1)); + region_address = addr - (offset - vars[i].beg); + region_size = vars[i].size; return; } } } -void GetInfoForHeapAddress(uptr addr, AddressDescription *descr) { - AsanChunkView chunk = FindHeapChunkByAddress(addr); - - descr->name[0] = 0; - descr->region_address = 0; - descr->region_size = 0; - - if (!chunk.IsValid()) { - descr->region_kind = "heap-invalid"; - return; - } - - descr->region_address = chunk.Beg(); - descr->region_size = chunk.UsedSize(); - descr->region_kind = "heap"; -} - -void AsanLocateAddress(uptr addr, AddressDescription *descr) { - if (DescribeAddressIfShadow(addr, descr, /* print */ false)) { - return; - } - if (GetInfoForAddressIfGlobal(addr, descr)) { - return; - } - asanThreadRegistry().Lock(); - AsanThread *thread = FindThreadByStackAddress(addr); - asanThreadRegistry().Unlock(); - if (thread) { - GetInfoForStackVar(addr, descr, thread); - return; - } - GetInfoForHeapAddress(addr, descr); -} - -static uptr AsanGetStack(uptr addr, uptr *trace, u32 size, u32 *thread_id, +uptr AsanGetStack(uptr addr, uptr *trace, u32 size, u32 *thread_id, bool alloc_stack) { AsanChunkView chunk = FindHeapChunkByAddress(addr); if (!chunk.IsValid()) return 0; @@ -108,18 +73,58 @@ static uptr AsanGetStack(uptr addr, uptr return 0; } -} // namespace __asan - -using namespace __asan; +} // namespace SANITIZER_INTERFACE_ATTRIBUTE const char *__asan_locate_address(uptr addr, char *name, uptr name_size, - uptr *region_address, uptr *region_size) { - AddressDescription descr = { name, name_size, 0, 0, nullptr }; - AsanLocateAddress(addr, &descr); - if (region_address) *region_address = descr.region_address; - if (region_size) *region_size = descr.region_size; - return descr.region_kind; + uptr *region_address_ptr, + uptr *region_size_ptr) { + AddressDescription descr(addr); + uptr region_address = 0; + uptr region_size = 0; + const char *region_kind = nullptr; + if (name && name_size > 0) name[0] = 0; + + if (auto shadow = descr.AsShadow()) { + // region_{address,size} are already 0 + switch (shadow->kind) { + case kShadowKindLow: + region_kind = "low shadow"; + break; + case kShadowKindGap: + region_kind = "shadow gap"; + break; + case kShadowKindHigh: + region_kind = "high shadow"; + break; + } + } else if (auto heap = descr.AsHeap()) { + region_kind = "heap"; + region_address = heap->chunk_access.chunk_begin; + region_size = heap->chunk_access.chunk_size; + } else if (auto stack = descr.AsStack()) { + region_kind = "stack"; + if (!stack->frame_descr) { + // region_{address,size} are already 0 + } else { + FindInfoForStackVar(addr, stack->frame_descr, stack->offset, name, + name_size, region_address, region_size); + } + } else if (auto global = descr.AsGlobal()) { + region_kind = "global"; + auto &g = global->globals[0]; + internal_strlcpy(name, g.name, name_size); + region_address = g.beg; + region_size = g.size; + } else { + // region_{address,size} are already 0 + region_kind = "heap-invalid"; + } + + CHECK(region_kind); + if (region_address_ptr) *region_address_ptr = region_address; + if (region_size_ptr) *region_size_ptr = region_size; + return region_kind; } SANITIZER_INTERFACE_ATTRIBUTE Copied: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_descriptions.cc (from r311696, vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_descriptions.cc Sun Jan 8 19:47:17 2017 (r311697, copy of r311696, vendor/compiler-rt/dist/lib/asan/asan_descriptions.cc) @@ -0,0 +1,486 @@ +//===-- asan_descriptions.cc ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of AddressSanitizer, an address sanity checker. +// +// ASan functions for getting information about an address and/or printing it. +//===----------------------------------------------------------------------===// + +#include "asan_descriptions.h" +#include "asan_mapping.h" +#include "asan_report.h" +#include "asan_stack.h" +#include "sanitizer_common/sanitizer_stackdepot.h" + +namespace __asan { + +// Return " (thread_name) " or an empty string if the name is empty. +const char *ThreadNameWithParenthesis(AsanThreadContext *t, char buff[], + uptr buff_len) { + const char *name = t->name; + if (name[0] == '\0') return ""; + buff[0] = 0; + internal_strncat(buff, " (", 3); + internal_strncat(buff, name, buff_len - 4); + internal_strncat(buff, ")", 2); + return buff; +} + +const char *ThreadNameWithParenthesis(u32 tid, char buff[], uptr buff_len) { + if (tid == kInvalidTid) return ""; + asanThreadRegistry().CheckLocked(); + AsanThreadContext *t = GetThreadContextByTidLocked(tid); + return ThreadNameWithParenthesis(t, buff, buff_len); +} + +void DescribeThread(AsanThreadContext *context) { + CHECK(context); + asanThreadRegistry().CheckLocked(); + // No need to announce the main thread. + if (context->tid == 0 || context->announced) { + return; + } + context->announced = true; + char tname[128]; + InternalScopedString str(1024); + str.append("Thread T%d%s", context->tid, + ThreadNameWithParenthesis(context->tid, tname, sizeof(tname))); + if (context->parent_tid == kInvalidTid) { + str.append(" created by unknown thread\n"); + Printf("%s", str.data()); + return; + } + str.append( + " created by T%d%s here:\n", context->parent_tid, + ThreadNameWithParenthesis(context->parent_tid, tname, sizeof(tname))); + Printf("%s", str.data()); + StackDepotGet(context->stack_id).Print(); + // Recursively described parent thread if needed. + if (flags()->print_full_thread_history) { + AsanThreadContext *parent_context = + GetThreadContextByTidLocked(context->parent_tid); + DescribeThread(parent_context); + } +} + +// Shadow descriptions +static bool GetShadowKind(uptr addr, ShadowKind *shadow_kind) { + CHECK(!AddrIsInMem(addr)); + if (AddrIsInShadowGap(addr)) { + *shadow_kind = kShadowKindGap; + } else if (AddrIsInHighShadow(addr)) { + *shadow_kind = kShadowKindHigh; + } else if (AddrIsInLowShadow(addr)) { + *shadow_kind = kShadowKindLow; + } else { + CHECK(0 && "Address is not in memory and not in shadow?"); + return false; + } + return true; +} + +bool DescribeAddressIfShadow(uptr addr) { + ShadowAddressDescription descr; + if (!GetShadowAddressInformation(addr, &descr)) return false; + descr.Print(); + return true; +} + +bool GetShadowAddressInformation(uptr addr, ShadowAddressDescription *descr) { + if (AddrIsInMem(addr)) return false; + ShadowKind shadow_kind; + if (!GetShadowKind(addr, &shadow_kind)) return false; + if (shadow_kind != kShadowKindGap) descr->shadow_byte = *(u8 *)addr; + descr->addr = addr; + descr->kind = shadow_kind; + return true; +} + +// Heap descriptions +static void GetAccessToHeapChunkInformation(ChunkAccess *descr, + AsanChunkView chunk, uptr addr, + uptr access_size) { + descr->bad_addr = addr; + if (chunk.AddrIsAtLeft(addr, access_size, &descr->offset)) { + descr->access_type = kAccessTypeLeft; + } else if (chunk.AddrIsAtRight(addr, access_size, &descr->offset)) { + descr->access_type = kAccessTypeRight; + if (descr->offset < 0) { + descr->bad_addr -= descr->offset; + descr->offset = 0; + } + } else if (chunk.AddrIsInside(addr, access_size, &descr->offset)) { + descr->access_type = kAccessTypeInside; + } else { + descr->access_type = kAccessTypeUnknown; + } + descr->chunk_begin = chunk.Beg(); + descr->chunk_size = chunk.UsedSize(); + descr->alloc_type = chunk.GetAllocType(); +} + +static void PrintHeapChunkAccess(uptr addr, const ChunkAccess &descr) { + Decorator d; + InternalScopedString str(4096); + str.append("%s", d.Location()); + switch (descr.access_type) { + case kAccessTypeLeft: + str.append("%p is located %zd bytes to the left of", + (void *)descr.bad_addr, descr.offset); + break; + case kAccessTypeRight: + str.append("%p is located %zd bytes to the right of", + (void *)descr.bad_addr, descr.offset); + break; + case kAccessTypeInside: + str.append("%p is located %zd bytes inside of", (void *)descr.bad_addr, + descr.offset); + break; + case kAccessTypeUnknown: + str.append( + "%p is located somewhere around (this is AddressSanitizer bug!)", + (void *)descr.bad_addr); + } + str.append(" %zu-byte region [%p,%p)\n", descr.chunk_size, + (void *)descr.chunk_begin, + (void *)(descr.chunk_begin + descr.chunk_size)); + str.append("%s", d.EndLocation()); + Printf("%s", str.data()); +} + +bool GetHeapAddressInformation(uptr addr, uptr access_size, + HeapAddressDescription *descr) { + AsanChunkView chunk = FindHeapChunkByAddress(addr); + if (!chunk.IsValid()) { + return false; + } + descr->addr = addr; + GetAccessToHeapChunkInformation(&descr->chunk_access, chunk, addr, + access_size); + CHECK_NE(chunk.AllocTid(), kInvalidTid); + descr->alloc_tid = chunk.AllocTid(); + descr->alloc_stack_id = chunk.GetAllocStackId(); + descr->free_tid = chunk.FreeTid(); + if (descr->free_tid != kInvalidTid) + descr->free_stack_id = chunk.GetFreeStackId(); + return true; +} + +static StackTrace GetStackTraceFromId(u32 id) { + CHECK(id); + StackTrace res = StackDepotGet(id); + CHECK(res.trace); + return res; +} + +bool DescribeAddressIfHeap(uptr addr, uptr access_size) { + HeapAddressDescription descr; + if (!GetHeapAddressInformation(addr, access_size, &descr)) { + Printf( + "AddressSanitizer can not describe address in more detail " + "(wild memory access suspected).\n"); + return false; + } + descr.Print(); + return true; +} + +// Stack descriptions +bool GetStackAddressInformation(uptr addr, uptr access_size, + StackAddressDescription *descr) { + AsanThread *t = FindThreadByStackAddress(addr); + if (!t) return false; + + descr->addr = addr; + descr->tid = t->tid(); + // Try to fetch precise stack frame for this access. + AsanThread::StackFrameAccess access; + if (!t->GetStackFrameAccessByAddr(addr, &access)) { + descr->frame_descr = nullptr; + return true; + } + + descr->offset = access.offset; + descr->access_size = access_size; + descr->frame_pc = access.frame_pc; + descr->frame_descr = access.frame_descr; + +#if SANITIZER_PPC64V1 + // On PowerPC64 ELFv1, the address of a function actually points to a + // three-doubleword data structure with the first field containing + // the address of the function's code. + descr->frame_pc = *reinterpret_cast(descr->frame_pc); +#endif + descr->frame_pc += 16; + + return true; +} + +static void PrintAccessAndVarIntersection(const StackVarDescr &var, uptr addr, + uptr access_size, uptr prev_var_end, + uptr next_var_beg) { + uptr var_end = var.beg + var.size; + uptr addr_end = addr + access_size; + const char *pos_descr = nullptr; + // If the variable [var.beg, var_end) is the nearest variable to the + // current memory access, indicate it in the log. + if (addr >= var.beg) { + if (addr_end <= var_end) + pos_descr = "is inside"; // May happen if this is a use-after-return. + else if (addr < var_end) + pos_descr = "partially overflows"; + else if (addr_end <= next_var_beg && + next_var_beg - addr_end >= addr - var_end) + pos_descr = "overflows"; + } else { + if (addr_end > var.beg) + pos_descr = "partially underflows"; + else if (addr >= prev_var_end && addr - prev_var_end >= var.beg - addr_end) + pos_descr = "underflows"; + } + InternalScopedString str(1024); + str.append(" [%zd, %zd)", var.beg, var_end); + // Render variable name. + str.append(" '"); + for (uptr i = 0; i < var.name_len; ++i) { + str.append("%c", var.name_pos[i]); + } + str.append("'"); + if (pos_descr) { + Decorator d; + // FIXME: we may want to also print the size of the access here, + // but in case of accesses generated by memset it may be confusing. + str.append("%s <== Memory access at offset %zd %s this variable%s\n", + d.Location(), addr, pos_descr, d.EndLocation()); + } else { + str.append("\n"); + } + Printf("%s", str.data()); +} + +bool DescribeAddressIfStack(uptr addr, uptr access_size) { + StackAddressDescription descr; + if (!GetStackAddressInformation(addr, access_size, &descr)) return false; + descr.Print(); + return true; +} + +// Global descriptions +static void DescribeAddressRelativeToGlobal(uptr addr, uptr access_size, + const __asan_global &g) { + InternalScopedString str(4096); + Decorator d; + str.append("%s", d.Location()); + if (addr < g.beg) { + str.append("%p is located %zd bytes to the left", (void *)addr, + g.beg - addr); + } else if (addr + access_size > g.beg + g.size) { + if (addr < g.beg + g.size) addr = g.beg + g.size; + str.append("%p is located %zd bytes to the right", (void *)addr, + addr - (g.beg + g.size)); + } else { + // Can it happen? + str.append("%p is located %zd bytes inside", (void *)addr, addr - g.beg); + } + str.append(" of global variable '%s' defined in '", + MaybeDemangleGlobalName(g.name)); + PrintGlobalLocation(&str, g); + str.append("' (0x%zx) of size %zu\n", g.beg, g.size); + str.append("%s", d.EndLocation()); + PrintGlobalNameIfASCII(&str, g); + Printf("%s", str.data()); +} + +bool GetGlobalAddressInformation(uptr addr, uptr access_size, + GlobalAddressDescription *descr) { + descr->addr = addr; + int globals_num = GetGlobalsForAddress(addr, descr->globals, descr->reg_sites, + ARRAY_SIZE(descr->globals)); + descr->size = globals_num; + descr->access_size = access_size; + return globals_num != 0; +} + +bool DescribeAddressIfGlobal(uptr addr, uptr access_size, + const char *bug_type) { + GlobalAddressDescription descr; + if (!GetGlobalAddressInformation(addr, access_size, &descr)) return false; + + descr.Print(bug_type); + return true; +} + +void ShadowAddressDescription::Print() const { + Printf("Address %p is located in the %s area.\n", addr, ShadowNames[kind]); +} + +void GlobalAddressDescription::Print(const char *bug_type) const { + for (int i = 0; i < size; i++) { + DescribeAddressRelativeToGlobal(addr, access_size, globals[i]); + if (bug_type && + 0 == internal_strcmp(bug_type, "initialization-order-fiasco") && + reg_sites[i]) { + Printf(" registered at:\n"); + StackDepotGet(reg_sites[i]).Print(); + } + } +} + +void StackAddressDescription::Print() const { + Decorator d; + char tname[128]; + Printf("%s", d.Location()); + Printf("Address %p is located in stack of thread T%d%s", addr, tid, + ThreadNameWithParenthesis(tid, tname, sizeof(tname))); + + if (!frame_descr) { + Printf("%s\n", d.EndLocation()); + return; + } + Printf(" at offset %zu in frame%s\n", offset, d.EndLocation()); + + // Now we print the frame where the alloca has happened. + // We print this frame as a stack trace with one element. + // The symbolizer may print more than one frame if inlining was involved. + // The frame numbers may be different than those in the stack trace printed + // previously. That's unfortunate, but I have no better solution, + // especially given that the alloca may be from entirely different place + // (e.g. use-after-scope, or different thread's stack). + Printf("%s", d.EndLocation()); + StackTrace alloca_stack(&frame_pc, 1); + alloca_stack.Print(); + + InternalMmapVector vars(16); + if (!ParseFrameDescription(frame_descr, &vars)) { + Printf( + "AddressSanitizer can't parse the stack frame " + "descriptor: |%s|\n", + frame_descr); + // 'addr' is a stack address, so return true even if we can't parse frame + return; + } + uptr n_objects = vars.size(); + // Report the number of stack objects. + Printf(" This frame has %zu object(s):\n", n_objects); + + // Report all objects in this frame. + for (uptr i = 0; i < n_objects; i++) { + uptr prev_var_end = i ? vars[i - 1].beg + vars[i - 1].size : 0; + uptr next_var_beg = i + 1 < n_objects ? vars[i + 1].beg : ~(0UL); + PrintAccessAndVarIntersection(vars[i], offset, access_size, prev_var_end, + next_var_beg); + } + Printf( + "HINT: this may be a false positive if your program uses " + "some custom stack unwind mechanism or swapcontext\n"); + if (SANITIZER_WINDOWS) + Printf(" (longjmp, SEH and C++ exceptions *are* supported)\n"); + else + Printf(" (longjmp and C++ exceptions *are* supported)\n"); + + DescribeThread(GetThreadContextByTidLocked(tid)); +} + +void HeapAddressDescription::Print() const { + PrintHeapChunkAccess(addr, chunk_access); + + asanThreadRegistry().CheckLocked(); + AsanThreadContext *alloc_thread = GetThreadContextByTidLocked(alloc_tid); + StackTrace alloc_stack = GetStackTraceFromId(alloc_stack_id); + + char tname[128]; + Decorator d; + AsanThreadContext *free_thread = nullptr; + if (free_tid != kInvalidTid) { + free_thread = GetThreadContextByTidLocked(free_tid); + Printf("%sfreed by thread T%d%s here:%s\n", d.Allocation(), + free_thread->tid, + ThreadNameWithParenthesis(free_thread, tname, sizeof(tname)), + d.EndAllocation()); + StackTrace free_stack = GetStackTraceFromId(free_stack_id); + free_stack.Print(); + Printf("%spreviously allocated by thread T%d%s here:%s\n", d.Allocation(), + alloc_thread->tid, + ThreadNameWithParenthesis(alloc_thread, tname, sizeof(tname)), + d.EndAllocation()); + } else { + Printf("%sallocated by thread T%d%s here:%s\n", d.Allocation(), + alloc_thread->tid, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Jan 8 19:48:15 2017 Return-Path: Delivered-To: svn-src-projects@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 15F89CA5BE5 for ; Sun, 8 Jan 2017 19:48:15 +0000 (UTC) (envelope-from dim@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 BFEF91F9E; Sun, 8 Jan 2017 19:48:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08JmDwP046965; Sun, 8 Jan 2017 19:48:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08JmDfD046964; Sun, 8 Jan 2017 19:48:13 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701081948.v08JmDfD046964@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 8 Jan 2017 19:48:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311698 - in projects/clang400-import/contrib/compiler-rt/lib/xray: . tests X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 19:48:15 -0000 Author: dim Date: Sun Jan 8 19:48:13 2017 New Revision: 311698 URL: https://svnweb.freebsd.org/changeset/base/311698 Log: Clean out stuff we don't use. Deleted: projects/clang400-import/contrib/compiler-rt/lib/xray/CMakeLists.txt projects/clang400-import/contrib/compiler-rt/lib/xray/tests/ From owner-svn-src-projects@freebsd.org Sun Jan 8 21:30:06 2017 Return-Path: Delivered-To: svn-src-projects@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 068F3CA5FC7 for ; Sun, 8 Jan 2017 21:30:06 +0000 (UTC) (envelope-from ae@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 CD1BB1945; Sun, 8 Jan 2017 21:30:05 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08LU5VB089738; Sun, 8 Jan 2017 21:30:05 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08LU57Y089737; Sun, 8 Jan 2017 21:30:05 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701082130.v08LU57Y089737@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sun, 8 Jan 2017 21:30:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311704 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 21:30:06 -0000 Author: ae Date: Sun Jan 8 21:30:04 2017 New Revision: 311704 URL: https://svnweb.freebsd.org/changeset/base/311704 Log: Take INP_WLOCK() in ipsec_set_pcbpolicy() to modify INPCB policy. Modified: projects/ipsec/sys/netipsec/ipsec_pcb.c Modified: projects/ipsec/sys/netipsec/ipsec_pcb.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec_pcb.c Sun Jan 8 21:12:46 2017 (r311703) +++ projects/ipsec/sys/netipsec/ipsec_pcb.c Sun Jan 8 21:30:04 2017 (r311704) @@ -276,12 +276,7 @@ ipsec_set_pcbpolicy(struct inpcb *inp, s /* Select direction. */ switch (xpl->sadb_x_policy_dir) { case IPSEC_DIR_INBOUND: - spp = &inp->inp_sp->sp_in; - flags = INP_INBOUND_POLICY; - break; case IPSEC_DIR_OUTBOUND: - spp = &inp->inp_sp->sp_out; - flags = INP_OUTBOUND_POLICY; break; default: ipseclog((LOG_ERR, "%s: invalid direction=%u\n", __func__, @@ -333,6 +328,14 @@ ipsec_set_pcbpolicy(struct inpcb *inp, s return (EINVAL); } + INP_WLOCK(inp); + if (xpl->sadb_x_policy_dir == IPSEC_DIR_INBOUND) { + spp = &inp->inp_sp->sp_in; + flags = INP_INBOUND_POLICY; + } else { + spp = &inp->inp_sp->sp_out; + flags = INP_OUTBOUND_POLICY; + } /* Clear old SP and set new SP. */ if (*spp != NULL) key_freesp(spp); @@ -345,6 +348,7 @@ ipsec_set_pcbpolicy(struct inpcb *inp, s inp->inp_sp->flags |= flags; KEYDBG(IPSEC_DUMP, kdebug_secpolicy(newsp)); } + INP_WUNLOCK(inp); return (0); } From owner-svn-src-projects@freebsd.org Sun Jan 8 21:42:20 2017 Return-Path: Delivered-To: svn-src-projects@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 F23B1CA6A8B for ; Sun, 8 Jan 2017 21:42:20 +0000 (UTC) (envelope-from ae@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 BF44A108D; Sun, 8 Jan 2017 21:42:20 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v08LgJpl097334; Sun, 8 Jan 2017 21:42:19 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v08LgJXd097333; Sun, 8 Jan 2017 21:42:19 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701082142.v08LgJXd097333@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sun, 8 Jan 2017 21:42:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311705 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2017 21:42:21 -0000 Author: ae Date: Sun Jan 8 21:42:19 2017 New Revision: 311705 URL: https://svnweb.freebsd.org/changeset/base/311705 Log: Hold INP_RLOCK in ipsec_get_pcbpolicy() while retrieving INPCB policy. Modified: projects/ipsec/sys/netipsec/ipsec_pcb.c Modified: projects/ipsec/sys/netipsec/ipsec_pcb.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec_pcb.c Sun Jan 8 21:30:04 2017 (r311704) +++ projects/ipsec/sys/netipsec/ipsec_pcb.c Sun Jan 8 21:42:19 2017 (r311705) @@ -360,6 +360,8 @@ ipsec_get_pcbpolicy(struct inpcb *inp, v int error, flags; xpl = (struct sadb_x_policy *)request; + + INP_RLOCK(inp); flags = inp->inp_sp->flags; /* Select direction. */ switch (xpl->sadb_x_policy_dir) { @@ -372,6 +374,7 @@ ipsec_get_pcbpolicy(struct inpcb *inp, v flags &= INP_OUTBOUND_POLICY; break; default: + INP_RUNLOCK(inp); ipseclog((LOG_ERR, "%s: invalid direction=%u\n", __func__, xpl->sadb_x_policy_dir)); return (EINVAL); @@ -379,6 +382,7 @@ ipsec_get_pcbpolicy(struct inpcb *inp, v if (flags == 0) { /* Return ENTRUST policy */ + INP_RUNLOCK(inp); xpl->sadb_x_policy_exttype = SADB_X_EXT_POLICY; xpl->sadb_x_policy_type = IPSEC_POLICY_ENTRUST; xpl->sadb_x_policy_id = 0; @@ -392,6 +396,7 @@ ipsec_get_pcbpolicy(struct inpcb *inp, v ("sp is NULL, but flags is 0x%04x", inp->inp_sp->flags)); key_addref(sp); + INP_RUNLOCK(inp); error = key_sp2msg(sp, request, len); key_freesp(&sp); if (error == EINVAL) From owner-svn-src-projects@freebsd.org Mon Jan 9 01:00:23 2017 Return-Path: Delivered-To: svn-src-projects@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 E026ACA2FAD for ; Mon, 9 Jan 2017 01:00:23 +0000 (UTC) (envelope-from ngie@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 A48041B8D; Mon, 9 Jan 2017 01:00:23 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0910M78081247; Mon, 9 Jan 2017 01:00:22 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0910KSs081225; Mon, 9 Jan 2017 01:00:20 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701090100.v0910KSs081225@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 9 Jan 2017 01:00:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311716 - in projects/bsnmp-ipv6-mib: bin/chmod contrib/llvm/projects/libunwind/src contrib/ngatm/snmp_atm lib/libc/include lib/libc/stdlib lib/libprocstat lib/libstand lib/libutil sbin... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 01:00:24 -0000 Author: ngie Date: Mon Jan 9 01:00:20 2017 New Revision: 311716 URL: https://svnweb.freebsd.org/changeset/base/311716 Log: MFhead@r311715 Added: projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit_impl.c - copied unchanged from r311715, head/lib/libc/stdlib/cxa_thread_atexit_impl.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_vht.c - copied unchanged from r311715, head/sys/net80211/ieee80211_vht.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_vht.h - copied unchanged from r311715, head/sys/net80211/ieee80211_vht.h Modified: projects/bsnmp-ipv6-mib/bin/chmod/chmod.1 projects/bsnmp-ipv6-mib/bin/chmod/chmod.c projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S projects/bsnmp-ipv6-mib/contrib/ngatm/snmp_atm/snmp_atm.c projects/bsnmp-ipv6-mib/lib/libc/include/libc_private.h projects/bsnmp-ipv6-mib/lib/libc/stdlib/Makefile.inc projects/bsnmp-ipv6-mib/lib/libc/stdlib/Symbol.map projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit.c projects/bsnmp-ipv6-mib/lib/libprocstat/cd9660.c projects/bsnmp-ipv6-mib/lib/libprocstat/libprocstat.c projects/bsnmp-ipv6-mib/lib/libstand/bootp.c projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getallproc.c projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getfile.c projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getproc.c projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getvmmap.c projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.8 projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.c projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.h projects/bsnmp-ipv6-mib/sbin/camcontrol/modeedit.c projects/bsnmp-ipv6-mib/sbin/md5/md5.1 projects/bsnmp-ipv6-mib/share/misc/pci_vendors projects/bsnmp-ipv6-mib/share/misc/scsi_modes projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl.c projects/bsnmp-ipv6-mib/sys/cam/scsi/scsi_all.c projects/bsnmp-ipv6-mib/sys/cam/scsi/scsi_all.h projects/bsnmp-ipv6-mib/sys/cam/scsi/scsi_ch.c projects/bsnmp-ipv6-mib/sys/conf/files projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/components/tables/tbxface.c projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/include/acpixf.h projects/bsnmp-ipv6-mib/sys/crypto/skein/amd64/skein_block_asm.s projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_connect.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_listen.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_tom.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_tom.h projects/bsnmp-ipv6-mib/sys/dev/etherswitch/etherswitch.c projects/bsnmp-ipv6-mib/sys/dev/gpio/gpioc.c projects/bsnmp-ipv6-mib/sys/dev/gpio/ofw_gpiobus.c projects/bsnmp-ipv6-mib/sys/dev/kbd/kbd.c projects/bsnmp-ipv6-mib/sys/dev/mmc/mmcreg.h projects/bsnmp-ipv6-mib/sys/dev/rtwn/if_rtwnvar.h projects/bsnmp-ipv6-mib/sys/dev/rtwn/usb/rtwn_usb_attach.c projects/bsnmp-ipv6-mib/sys/dev/rtwn/usb/rtwn_usb_ep.c projects/bsnmp-ipv6-mib/sys/dev/rtwn/usb/rtwn_usb_rx.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci.h projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci_if.m projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/ef10_tx.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/efx.h projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/efx_tx.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/hunt_nic.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/medford_nic.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/siena_nic.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/sfxge.h projects/bsnmp-ipv6-mib/sys/dev/sfxge/sfxge_port.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/sfxge_tx.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_lookup.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_node.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_node.h projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_rrip.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_vfsops.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_vnops.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/iso.h projects/bsnmp-ipv6-mib/sys/fs/cd9660/iso_rrip.h projects/bsnmp-ipv6-mib/sys/geom/vinum/geom_vinum_state.c projects/bsnmp-ipv6-mib/sys/modules/wlan/Makefile projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_scan.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_var.h projects/bsnmp-ipv6-mib/sys/netinet6/nd6.c projects/bsnmp-ipv6-mib/sys/netipsec/ipsec.c projects/bsnmp-ipv6-mib/sys/powerpc/include/vmparam.h projects/bsnmp-ipv6-mib/sys/sys/unistd.h projects/bsnmp-ipv6-mib/usr.bin/top/machine.c projects/bsnmp-ipv6-mib/usr.bin/users/users.cc projects/bsnmp-ipv6-mib/usr.sbin/bhyve/ps2mouse.c (contents, props changed) projects/bsnmp-ipv6-mib/usr.sbin/bhyve/virtio.h projects/bsnmp-ipv6-mib/usr.sbin/chown/chgrp.1 projects/bsnmp-ipv6-mib/usr.sbin/chown/chown.8 projects/bsnmp-ipv6-mib/usr.sbin/chown/chown.c projects/bsnmp-ipv6-mib/usr.sbin/route6d/route6d.c projects/bsnmp-ipv6-mib/usr.sbin/rwhod/rwhod.c Directory Properties: projects/bsnmp-ipv6-mib/ (props changed) projects/bsnmp-ipv6-mib/contrib/llvm/ (props changed) projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/ (props changed) projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/ (props changed) Modified: projects/bsnmp-ipv6-mib/bin/chmod/chmod.1 ============================================================================== --- projects/bsnmp-ipv6-mib/bin/chmod/chmod.1 Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/bin/chmod/chmod.1 Mon Jan 9 01:00:20 2017 (r311716) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd April 20, 2015 +.Dd January 7, 2017 .Dt CHMOD 1 .Os .Sh NAME @@ -106,6 +106,16 @@ option is specified. In addition, these options override each other and the command's actions are determined by the last one specified. .Pp +If +.Nm +receives a +.Dv SIGINFO +signal (see the +.Cm status +argument for +.Xr stty 1 ) , +then the current filename as well as the old and new modes are displayed. +.Pp Only the owner of a file or the super-user is permitted to change the mode of a file. .Sh EXIT STATUS Modified: projects/bsnmp-ipv6-mib/bin/chmod/chmod.c ============================================================================== --- projects/bsnmp-ipv6-mib/bin/chmod/chmod.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/bin/chmod/chmod.c Mon Jan 9 01:00:20 2017 (r311716) @@ -49,14 +49,24 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include +static volatile sig_atomic_t siginfo; + static void usage(void); static int may_have_nfs4acl(const FTSENT *ent, int hflag); +static void +siginfo_handler(int sig __unused) +{ + + siginfo = 1; +} + int main(int argc, char *argv[]) { @@ -125,6 +135,8 @@ done: argv += optind; if (argc < 2) usage(); + (void)signal(SIGINFO, siginfo_handler); + if (Rflag) { if (hflag) errx(1, "the -R and -h options may not be " @@ -192,10 +204,10 @@ done: argv += optind; && !fflag) { warn("%s", p->fts_path); rval = 1; - } else if (vflag) { + } else if (vflag || siginfo) { (void)printf("%s", p->fts_path); - if (vflag > 1) { + if (vflag > 1 || siginfo) { char m1[12], m2[12]; strmode(p->fts_statp->st_mode, m1); @@ -207,6 +219,7 @@ done: argv += optind; newmode, m2); } (void)printf("\n"); + siginfo = 0; } } if (errno) Modified: projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S Mon Jan 9 01:00:20 2017 (r311716) @@ -527,3 +527,5 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li ret // jump to ra #endif + + .section .note.GNU-stack,"",@progbits Modified: projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S Mon Jan 9 01:00:20 2017 (r311716) @@ -469,3 +469,5 @@ DEFINE_LIBUNWIND_FUNCTION(unw_getcontext /* RISCVTODO */ #endif + + .section .note.GNU-stack,"",@progbits Modified: projects/bsnmp-ipv6-mib/contrib/ngatm/snmp_atm/snmp_atm.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/ngatm/snmp_atm/snmp_atm.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/contrib/ngatm/snmp_atm/snmp_atm.c Mon Jan 9 01:00:20 2017 (r311716) @@ -170,7 +170,7 @@ atmif_check_carrier(struct atmif_priv *a aif->pub.carrier = ATMIF_CARRIER_UNKNOWN; return; } - if (!ifmr.ifm_status & IFM_AVALID) { + if (!(ifmr.ifm_status & IFM_AVALID)) { aif->pub.carrier = ATMIF_CARRIER_UNKNOWN; return; } Modified: projects/bsnmp-ipv6-mib/lib/libc/include/libc_private.h ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libc/include/libc_private.h Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libc/include/libc_private.h Mon Jan 9 01:00:20 2017 (r311716) @@ -272,6 +272,8 @@ void _malloc_thread_cleanup(void); * thread is exiting, so its thread-local dtors should be called. */ void __cxa_thread_call_dtors(void); +int __cxa_thread_atexit_hidden(void (*dtor_func)(void *), void *obj, + void *dso_symbol) __hidden; /* * These functions are used by the threading libraries in order to protect Modified: projects/bsnmp-ipv6-mib/lib/libc/stdlib/Makefile.inc ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libc/stdlib/Makefile.inc Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libc/stdlib/Makefile.inc Mon Jan 9 01:00:20 2017 (r311716) @@ -5,7 +5,9 @@ .PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/stdlib ${LIBC_SRCTOP}/stdlib MISRCS+=C99_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \ - bsearch.c cxa_thread_atexit.c div.c exit.c getenv.c getopt.c getopt_long.c \ + bsearch.c \ + cxa_thread_atexit.c cxa_thread_atexit_impl.c \ + div.c exit.c getenv.c getopt.c getopt_long.c \ getsubopt.c hcreate.c hcreate_r.c hdestroy_r.c heapsort.c heapsort_b.c \ hsearch_r.c imaxabs.c imaxdiv.c \ insque.c l64a.c labs.c ldiv.c llabs.c lldiv.c lsearch.c \ Modified: projects/bsnmp-ipv6-mib/lib/libc/stdlib/Symbol.map ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libc/stdlib/Symbol.map Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libc/stdlib/Symbol.map Mon Jan 9 01:00:20 2017 (r311716) @@ -118,6 +118,7 @@ FBSD_1.4 { FBSD_1.5 { __cxa_thread_atexit; + __cxa_thread_atexit_impl; }; FBSDprivate_1.0 { Modified: projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit.c Mon Jan 9 01:00:20 2017 (r311716) @@ -1,7 +1,10 @@ /*- - * Copyright (c) 2016 Mahdi Mokhtari + * Copyright (c) 2017 The FreeBSD Foundation * All rights reserved. * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -27,114 +30,11 @@ #include __FBSDID("$FreeBSD$"); -#include -#include "namespace.h" -#include -#include -#include -#include -#include -#include -#include "un-namespace.h" #include "libc_private.h" -/* - * C++11 introduces the thread_local scope (like __thread with some - * additions). As a key-feature it should support non-trivial - * destructors, registered with __cxa_thread_atexit() to be executed - * at the thread termination. - * - * The implemention keeps a _Thread_local list of destructors per each - * thread, and calls __cxa_thread_call_dtors() on each thread's exit - * to do cleanup. For a thread calling exit(3), in particular, for - * the initial thread returning from main(), we call - * __cxa_thread_call_dtors() inside exit(). - * - * It could be possible that a dynamically loaded library, use - * thread_local variable but is dlclose()'d before thread exit. The - * destructor of this variable will then try to access the address, - * for calling it but it's unloaded, so it'll crash. We're using - * __elf_phdr_match_addr() to detect and prevent such cases and so - * prevent the crash. - */ - -#define CXA_DTORS_ITERATIONS 4 - -struct cxa_thread_dtor { - void *obj; - void (*func)(void *); - void *dso; - LIST_ENTRY(cxa_thread_dtor) entry; -}; -static _Thread_local LIST_HEAD(dtor_list, cxa_thread_dtor) dtors = - LIST_HEAD_INITIALIZER(dtors); - int __cxa_thread_atexit(void (*dtor_func)(void *), void *obj, void *dso_symbol) { - struct cxa_thread_dtor *new_dtor; - - new_dtor = malloc(sizeof(*new_dtor)); - if (new_dtor == NULL) { - errno = ENOMEM; /* forcibly override malloc(3) error */ - return (-1); - } - - new_dtor->obj = obj; - new_dtor->func = dtor_func; - new_dtor->dso = dso_symbol; - LIST_INSERT_HEAD(&dtors, new_dtor, entry); - return (0); -} - -static void -walk_cb_call(struct cxa_thread_dtor *dtor) -{ - struct dl_phdr_info phdr_info; - - if (_rtld_addr_phdr(dtor->dso, &phdr_info) && - __elf_phdr_match_addr(&phdr_info, dtor->func)) - dtor->func(dtor->obj); - else - fprintf(stderr, "__cxa_thread_call_dtors: dtr %p from " - "unloaded dso, skipping\n", (void *)(dtor->func)); -} - -static void -walk_cb_nocall(struct cxa_thread_dtor *dtor __unused) -{ -} - -static void -cxa_thread_walk(void (*cb)(struct cxa_thread_dtor *)) -{ - struct cxa_thread_dtor *dtor, *tdtor; - - LIST_FOREACH_SAFE(dtor, &dtors, entry, tdtor) { - LIST_REMOVE(dtor, entry); - cb(dtor); - free(dtor); - } -} - -/* - * This is the callback function we use to call destructors, once for - * each thread. It is called in exit(3) in libc/stdlib/exit.c and - * before exit_thread() in libthr/thread/thr_exit.c. - */ -void -__cxa_thread_call_dtors(void) -{ - int i; - - for (i = 0; i < CXA_DTORS_ITERATIONS && !LIST_EMPTY(&dtors); i++) - cxa_thread_walk(walk_cb_call); - if (!LIST_EMPTY(&dtors)) { - fprintf(stderr, "Thread %p is exiting with more " - "thread-specific dtors created after %d iterations " - "of destructor calls\n", - _pthread_self(), i); - cxa_thread_walk(walk_cb_nocall); - } + return (__cxa_thread_atexit_hidden(dtor_func, obj, dso_symbol)); } Copied: projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit_impl.c (from r311715, head/lib/libc/stdlib/cxa_thread_atexit_impl.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/bsnmp-ipv6-mib/lib/libc/stdlib/cxa_thread_atexit_impl.c Mon Jan 9 01:00:20 2017 (r311716, copy of r311715, head/lib/libc/stdlib/cxa_thread_atexit_impl.c) @@ -0,0 +1,153 @@ +/*- + * Copyright (c) 2016 Mahdi Mokhtari + * Copyright (c) 2016, 2017 The FreeBSD Foundation + * All rights reserved. + * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include "namespace.h" +#include +#include +#include +#include +#include +#include +#include "un-namespace.h" +#include "libc_private.h" + +/* + * C++11 introduces the thread_local scope (like __thread with some + * additions). As a key-feature it should support non-trivial + * destructors, registered with __cxa_thread_atexit() to be executed + * at the thread termination. + * + * The implemention keeps a _Thread_local list of destructors per each + * thread, and calls __cxa_thread_call_dtors() on each thread's exit + * to do cleanup. For a thread calling exit(3), in particular, for + * the initial thread returning from main(), we call + * __cxa_thread_call_dtors() inside exit(). + * + * It could be possible that a dynamically loaded library, use + * thread_local variable but is dlclose()'d before thread exit. The + * destructor of this variable will then try to access the address, + * for calling it but it's unloaded, so it'll crash. We're using + * __elf_phdr_match_addr() to detect and prevent such cases and so + * prevent the crash. + */ + +#define CXA_DTORS_ITERATIONS 4 + +struct cxa_thread_dtor { + void *obj; + void (*func)(void *); + void *dso; + LIST_ENTRY(cxa_thread_dtor) entry; +}; +static _Thread_local LIST_HEAD(dtor_list, cxa_thread_dtor) dtors = + LIST_HEAD_INITIALIZER(dtors); + +int +__cxa_thread_atexit_impl(void (*dtor_func)(void *), void *obj, + void *dso_symbol) +{ + + return (__cxa_thread_atexit_hidden(dtor_func, obj, dso_symbol)); +} + +int +__cxa_thread_atexit_hidden(void (*dtor_func)(void *), void *obj, + void *dso_symbol) +{ + struct cxa_thread_dtor *new_dtor; + + new_dtor = malloc(sizeof(*new_dtor)); + if (new_dtor == NULL) { + errno = ENOMEM; /* forcibly override malloc(3) error */ + return (-1); + } + + new_dtor->obj = obj; + new_dtor->func = dtor_func; + new_dtor->dso = dso_symbol; + LIST_INSERT_HEAD(&dtors, new_dtor, entry); + return (0); +} + +static void +walk_cb_call(struct cxa_thread_dtor *dtor) +{ + struct dl_phdr_info phdr_info; + + if (_rtld_addr_phdr(dtor->dso, &phdr_info) && + __elf_phdr_match_addr(&phdr_info, dtor->func)) + dtor->func(dtor->obj); + else + fprintf(stderr, "__cxa_thread_call_dtors: dtr %p from " + "unloaded dso, skipping\n", (void *)(dtor->func)); +} + +static void +walk_cb_nocall(struct cxa_thread_dtor *dtor __unused) +{ +} + +static void +cxa_thread_walk(void (*cb)(struct cxa_thread_dtor *)) +{ + struct cxa_thread_dtor *dtor, *tdtor; + + LIST_FOREACH_SAFE(dtor, &dtors, entry, tdtor) { + LIST_REMOVE(dtor, entry); + cb(dtor); + free(dtor); + } +} + +/* + * This is the callback function we use to call destructors, once for + * each thread. It is called in exit(3) in libc/stdlib/exit.c and + * before exit_thread() in libthr/thread/thr_exit.c. + */ +void +__cxa_thread_call_dtors(void) +{ + int i; + + for (i = 0; i < CXA_DTORS_ITERATIONS && !LIST_EMPTY(&dtors); i++) + cxa_thread_walk(walk_cb_call); + + if (!LIST_EMPTY(&dtors)) { + fprintf(stderr, "Thread %p is exiting with more " + "thread-specific dtors created after %d iterations " + "of destructor calls\n", + _pthread_self(), i); + cxa_thread_walk(walk_cb_nocall); + } +} Modified: projects/bsnmp-ipv6-mib/lib/libprocstat/cd9660.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libprocstat/cd9660.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libprocstat/cd9660.c Mon Jan 9 01:00:20 2017 (r311716) @@ -53,10 +53,10 @@ __FBSDID("$FreeBSD$"); #include -#include #define _KERNEL #include #undef _KERNEL +#include #include #include Modified: projects/bsnmp-ipv6-mib/lib/libprocstat/libprocstat.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libprocstat/libprocstat.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libprocstat/libprocstat.c Mon Jan 9 01:00:20 2017 (r311716) @@ -282,7 +282,7 @@ procstat_getprocs(struct procstat *procs name[1] = KERN_PROC; name[2] = what; name[3] = arg; - error = sysctl(name, 4, NULL, &len, NULL, 0); + error = sysctl(name, nitems(name), NULL, &len, NULL, 0); if (error < 0 && errno != EPERM) { warn("sysctl(kern.proc)"); goto fail; @@ -299,7 +299,7 @@ procstat_getprocs(struct procstat *procs goto fail; } olen = len; - error = sysctl(name, 4, p, &len, NULL, 0); + error = sysctl(name, nitems(name), p, &len, NULL, 0); } while (error < 0 && errno == ENOMEM && olen == len); if (error < 0 && errno != EPERM) { warn("sysctl(kern.proc)"); @@ -1760,7 +1760,7 @@ getargv(struct procstat *procstat, struc name[2] = env ? KERN_PROC_ENV : KERN_PROC_ARGS; name[3] = kp->ki_pid; len = nchr; - error = sysctl(name, 4, av->buf, &len, NULL, 0); + error = sysctl(name, nitems(name), av->buf, &len, NULL, 0); if (error != 0 && errno != ESRCH && errno != EPERM) warn("sysctl(kern.proc.%s)", env ? "env" : "args"); if (error != 0 || len == 0) @@ -1983,7 +1983,7 @@ procstat_getgroups_sysctl(pid_t pid, uns warn("malloc(%zu)", len); return (NULL); } - if (sysctl(mib, 4, groups, &len, NULL, 0) == -1) { + if (sysctl(mib, nitems(mib), groups, &len, NULL, 0) == -1) { warn("sysctl: kern.proc.groups: %d", pid); free(groups); return (NULL); @@ -2059,7 +2059,7 @@ procstat_getumask_sysctl(pid_t pid, unsi mib[2] = KERN_PROC_UMASK; mib[3] = pid; len = sizeof(*maskp); - error = sysctl(mib, 4, maskp, &len, NULL, 0); + error = sysctl(mib, nitems(mib), maskp, &len, NULL, 0); if (error != 0 && errno != ESRCH && errno != EPERM) warn("sysctl: kern.proc.umask: %d", pid); return (error); @@ -2139,7 +2139,7 @@ procstat_getrlimit_sysctl(pid_t pid, int name[3] = pid; name[4] = which; len = sizeof(struct rlimit); - error = sysctl(name, 5, rlimit, &len, NULL, 0); + error = sysctl(name, nitems(name), rlimit, &len, NULL, 0); if (error < 0 && errno != ESRCH) { warn("sysctl: kern.proc.rlimit: %d", pid); return (-1); @@ -2201,7 +2201,7 @@ procstat_getpathname_sysctl(pid_t pid, c name[2] = KERN_PROC_PATHNAME; name[3] = pid; len = maxlen; - error = sysctl(name, 4, pathname, &len, NULL, 0); + error = sysctl(name, nitems(name), pathname, &len, NULL, 0); if (error != 0 && errno != ESRCH) warn("sysctl: kern.proc.pathname: %d", pid); if (len == 0) @@ -2281,7 +2281,7 @@ procstat_getosrel_sysctl(pid_t pid, int name[2] = KERN_PROC_OSREL; name[3] = pid; len = sizeof(*osrelp); - error = sysctl(name, 4, osrelp, &len, NULL, 0); + error = sysctl(name, nitems(name), osrelp, &len, NULL, 0); if (error != 0 && errno != ESRCH) warn("sysctl: kern.proc.osrel: %d", pid); return (error); @@ -2341,7 +2341,7 @@ is_elf32_sysctl(pid_t pid) name[2] = KERN_PROC_SV_NAME; name[3] = pid; len = sizeof(sv_name); - error = sysctl(name, 4, sv_name, &len, NULL, 0); + error = sysctl(name, nitems(name), sv_name, &len, NULL, 0); if (error != 0 || len == 0) return (0); for (i = 0; i < sizeof(elf32_sv_names) / sizeof(*elf32_sv_names); i++) { @@ -2372,7 +2372,7 @@ procstat_getauxv32_sysctl(pid_t pid, uns warn("malloc(%zu)", len); goto out; } - if (sysctl(name, 4, auxv32, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), auxv32, &len, NULL, 0) == -1) { if (errno != ESRCH && errno != EPERM) warn("sysctl: kern.proc.auxv: %d: %d", pid, errno); goto out; @@ -2421,7 +2421,7 @@ procstat_getauxv_sysctl(pid_t pid, unsig warn("malloc(%zu)", len); return (NULL); } - if (sysctl(name, 4, auxv, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), auxv, &len, NULL, 0) == -1) { if (errno != ESRCH && errno != EPERM) warn("sysctl: kern.proc.auxv: %d: %d", pid, errno); free(auxv); @@ -2482,7 +2482,7 @@ procstat_getkstack_sysctl(pid_t pid, int name[3] = pid; len = 0; - error = sysctl(name, 4, NULL, &len, NULL, 0); + error = sysctl(name, nitems(name), NULL, &len, NULL, 0); if (error < 0 && errno != ESRCH && errno != EPERM && errno != ENOENT) { warn("sysctl: kern.proc.kstack: %d", pid); return (NULL); @@ -2499,7 +2499,7 @@ procstat_getkstack_sysctl(pid_t pid, int warn("malloc(%zu)", len); return (NULL); } - if (sysctl(name, 4, kkstp, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), kkstp, &len, NULL, 0) == -1) { warn("sysctl: kern.proc.pid: %d", pid); free(kkstp); return (NULL); Modified: projects/bsnmp-ipv6-mib/lib/libstand/bootp.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libstand/bootp.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libstand/bootp.c Mon Jan 9 01:00:20 2017 (r311716) @@ -62,8 +62,6 @@ __FBSDID("$FreeBSD$"); struct in_addr servip; -static n_long nmask, smask; - static time_t bot; static char vm_rfc1048[4] = VM_RFC1048; @@ -223,30 +221,19 @@ bootp(sock, flag) bcopy(rbuf.rbootp.bp_file, bootfile, sizeof(bootfile)); bootfile[sizeof(bootfile) - 1] = '\0'; - if (IN_CLASSA(ntohl(myip.s_addr))) - nmask = htonl(IN_CLASSA_NET); - else if (IN_CLASSB(ntohl(myip.s_addr))) - nmask = htonl(IN_CLASSB_NET); - else - nmask = htonl(IN_CLASSC_NET); -#ifdef BOOTP_DEBUG - if (debug) - printf("'native netmask' is %s\n", intoa(nmask)); -#endif - - /* Check subnet mask against net mask; toss if bogus */ - if ((nmask & smask) != nmask) { + if (!netmask) { + if (IN_CLASSA(ntohl(myip.s_addr))) + netmask = htonl(IN_CLASSA_NET); + else if (IN_CLASSB(ntohl(myip.s_addr))) + netmask = htonl(IN_CLASSB_NET); + else + netmask = htonl(IN_CLASSC_NET); #ifdef BOOTP_DEBUG if (debug) - printf("subnet mask (%s) bad\n", intoa(smask)); + printf("'native netmask' is %s\n", intoa(netmask)); #endif - smask = 0; } - /* Get subnet (or natural net) mask */ - netmask = nmask; - if (smask) - netmask = smask; #ifdef BOOTP_DEBUG if (debug) printf("mask: %s\n", intoa(netmask)); @@ -385,7 +372,7 @@ vend_rfc1048(cp, len) break; if (tag == TAG_SUBNET_MASK) { - bcopy(cp, &smask, sizeof(smask)); + bcopy(cp, &netmask, sizeof(netmask)); } if (tag == TAG_GATEWAY) { bcopy(cp, &gateip.s_addr, sizeof(gateip.s_addr)); @@ -445,7 +432,7 @@ vend_cmu(cp) vp = (struct cmu_vend *)cp; if (vp->v_smask.s_addr != 0) { - smask = vp->v_smask.s_addr; + netmask = vp->v_smask.s_addr; } if (vp->v_dgate.s_addr != 0) { gateip = vp->v_dgate; Modified: projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getallproc.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getallproc.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getallproc.c Mon Jan 9 01:00:20 2017 (r311716) @@ -31,8 +31,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -75,14 +75,14 @@ kinfo_getallproc(int *cntp) mib[2] = KERN_PROC_PROC; len = 0; - if (sysctl(mib, 3, NULL, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) < 0) return (NULL); kipp = malloc(len); if (kipp == NULL) return (NULL); - if (sysctl(mib, 3, kipp, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), kipp, &len, NULL, 0) < 0) goto bad; if (len % sizeof(*kipp) != 0) goto bad; Modified: projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getfile.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getfile.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getfile.c Mon Jan 9 01:00:20 2017 (r311716) @@ -2,8 +2,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -26,14 +26,14 @@ kinfo_getfile(pid_t pid, int *cntp) mib[2] = KERN_PROC_FILEDESC; mib[3] = pid; - error = sysctl(mib, 4, NULL, &len, NULL, 0); + error = sysctl(mib, nitems(mib), NULL, &len, NULL, 0); if (error) return (NULL); len = len * 4 / 3; buf = malloc(len); if (buf == NULL) return (NULL); - error = sysctl(mib, 4, buf, &len, NULL, 0); + error = sysctl(mib, nitems(mib), buf, &len, NULL, 0); if (error) { free(buf); return (NULL); Modified: projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getproc.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getproc.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getproc.c Mon Jan 9 01:00:20 2017 (r311716) @@ -30,8 +30,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -49,14 +49,14 @@ kinfo_getproc(pid_t pid) mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = pid; - if (sysctl(mib, 4, NULL, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) < 0) return (NULL); kipp = malloc(len); if (kipp == NULL) return (NULL); - if (sysctl(mib, 4, kipp, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), kipp, &len, NULL, 0) < 0) goto bad; if (len != sizeof(*kipp)) goto bad; Modified: projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getvmmap.c ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getvmmap.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/lib/libutil/kinfo_getvmmap.c Mon Jan 9 01:00:20 2017 (r311716) @@ -2,8 +2,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -26,14 +26,14 @@ kinfo_getvmmap(pid_t pid, int *cntp) mib[2] = KERN_PROC_VMMAP; mib[3] = pid; - error = sysctl(mib, 4, NULL, &len, NULL, 0); + error = sysctl(mib, nitems(mib), NULL, &len, NULL, 0); if (error) return (NULL); len = len * 4 / 3; buf = malloc(len); if (buf == NULL) return (NULL); - error = sysctl(mib, 4, buf, &len, NULL, 0); + error = sysctl(mib, nitems(mib), buf, &len, NULL, 0); if (error) { free(buf); return (NULL); Modified: projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.8 ============================================================================== --- projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.8 Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.8 Mon Jan 9 01:00:20 2017 (r311716) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 30, 2016 +.Dd January 6, 2017 .Dt CAMCONTROL 8 .Os .Sh NAME @@ -121,7 +121,7 @@ .Ic modepage .Op device id .Op generic args -.Aq Fl m Ar page | Fl l +.Aq Fl m Ar page[,subpage] | Fl l .Op Fl P Ar pgctl .Op Fl b | Fl e .Op Fl d @@ -702,9 +702,10 @@ The editor will be invoked if detects that standard input is terminal. .It Fl l Lists all available mode pages. -.It Fl m Ar mode_page -This specifies the number of the mode page the user would like to view -and/or edit. +If specified more then once, also lists subpages. +.It Fl m Ar page[,subpage] +This specifies the number of the mode page and optionally subpage the user +would like to view and/or edit. This argument is mandatory unless .Fl l is specified. Modified: projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.c ============================================================================== --- projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.c Mon Jan 9 01:00:20 2017 (r311716) @@ -125,12 +125,9 @@ typedef enum { CAM_ARG_GET_STDINQ = 0x00002000, CAM_ARG_GET_XFERRATE = 0x00004000, CAM_ARG_INQ_MASK = 0x00007000, - CAM_ARG_MODE_EDIT = 0x00008000, - CAM_ARG_PAGE_CNTL = 0x00010000, CAM_ARG_TIMEOUT = 0x00020000, CAM_ARG_CMD_IN = 0x00040000, CAM_ARG_CMD_OUT = 0x00080000, - CAM_ARG_DBD = 0x00100000, CAM_ARG_ERR_RECOVER = 0x00200000, CAM_ARG_RETRIES = 0x00400000, CAM_ARG_START_UNIT = 0x00800000, @@ -3987,8 +3984,8 @@ reassignblocks(struct cam_device *device #ifndef MINIMALISTIC void -mode_sense(struct cam_device *device, int mode_page, int page_control, - int dbd, int retry_count, int timeout, u_int8_t *data, int datalen) +mode_sense(struct cam_device *device, int dbd, int pc, int page, int subpage, + int retry_count, int timeout, u_int8_t *data, int datalen) { union ccb *ccb; int retval; @@ -4000,15 +3997,17 @@ mode_sense(struct cam_device *device, in CCB_CLEAR_ALL_EXCEPT_HDR(&ccb->csio); - scsi_mode_sense(&ccb->csio, + scsi_mode_sense_subpage(&ccb->csio, /* retries */ retry_count, /* cbfcnp */ NULL, /* tag_action */ MSG_SIMPLE_Q_TAG, /* dbd */ dbd, - /* page_code */ page_control << 6, - /* page */ mode_page, + /* pc */ pc << 6, + /* page */ page, + /* subpage */ subpage, /* param_buf */ data, /* param_len */ datalen, + /* minimum_cmd_size */ 0, /* sense_len */ SSD_FULL_SIZE, /* timeout */ timeout ? timeout : 5000); @@ -4089,8 +4088,9 @@ void modepage(struct cam_device *device, int argc, char **argv, char *combinedopt, int retry_count, int timeout) { - int c, mode_page = -1, page_control = 0; - int binary = 0, list = 0; + char *str_subpage; + int c, page = -1, subpage = -1, pc = 0; + int binary = 0, dbd = 0, edit = 0, list = 0; while ((c = getopt(argc, argv, combinedopt)) != -1) { switch(c) { @@ -4098,40 +4098,44 @@ modepage(struct cam_device *device, int binary = 1; break; case 'd': - arglist |= CAM_ARG_DBD; + dbd = 1; break; case 'e': - arglist |= CAM_ARG_MODE_EDIT; + edit = 1; break; case 'l': - list = 1; + list++; break; case 'm': - mode_page = strtol(optarg, NULL, 0); - if (mode_page < 0) - errx(1, "invalid mode page %d", mode_page); + str_subpage = optarg; + strsep(&str_subpage, ","); + page = strtol(optarg, NULL, 0); + if (str_subpage) + subpage = strtol(str_subpage, NULL, 0); + else + subpage = 0; + if (page < 0) + errx(1, "invalid mode page %d", page); + if (subpage < 0) + errx(1, "invalid mode subpage %d", subpage); break; case 'P': - page_control = strtol(optarg, NULL, 0); - if ((page_control < 0) || (page_control > 3)) - errx(1, "invalid page control field %d", - page_control); - arglist |= CAM_ARG_PAGE_CNTL; + pc = strtol(optarg, NULL, 0); + if ((pc < 0) || (pc > 3)) + errx(1, "invalid page control field %d", pc); break; default: break; } } - if (mode_page == -1 && list == 0) + if (page == -1 && list == 0) errx(1, "you must specify a mode page!"); - if (list) { - mode_list(device, page_control, arglist & CAM_ARG_DBD, - retry_count, timeout); + if (list != 0) { + mode_list(device, dbd, pc, list > 1, retry_count, timeout); } else { - mode_edit(device, mode_page, page_control, - arglist & CAM_ARG_DBD, arglist & CAM_ARG_MODE_EDIT, binary, + mode_edit(device, dbd, pc, page, subpage, edit, binary, retry_count, timeout); } } Modified: projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.h ============================================================================== --- projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.h Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/sbin/camcontrol/camcontrol.h Mon Jan 9 01:00:20 2017 (r311716) @@ -84,14 +84,14 @@ int epc(struct cam_device *device, int a int timestamp(struct cam_device *device, int argc, char **argv, char *combinedopt, int retry_count, int timeout, int verbosemode); -void mode_sense(struct cam_device *device, int mode_page, int page_control, - int dbd, int retry_count, int timeout, u_int8_t *data, +void mode_sense(struct cam_device *device, int dbd, int pc, int page, + int subpage, int retry_count, int timeout, uint8_t *data, int datalen); void mode_select(struct cam_device *device, int save_pages, int retry_count, int timeout, u_int8_t *data, int datalen); -void mode_edit(struct cam_device *device, int page, int page_control, int dbd, +void mode_edit(struct cam_device *device, int dbd, int pc, int page, int subpage, int edit, int binary, int retry_count, int timeout); -void mode_list(struct cam_device *device, int page_control, int dbd, +void mode_list(struct cam_device *device, int dbd, int pc, int subpages, int retry_count, int timeout); int scsidoinquiry(struct cam_device *device, int argc, char **argv, char *combinedopt, int retry_count, int timeout); Modified: projects/bsnmp-ipv6-mib/sbin/camcontrol/modeedit.c ============================================================================== --- projects/bsnmp-ipv6-mib/sbin/camcontrol/modeedit.c Mon Jan 9 00:54:18 2017 (r311715) +++ projects/bsnmp-ipv6-mib/sbin/camcontrol/modeedit.c Mon Jan 9 01:00:20 2017 (r311716) @@ -66,9 +66,6 @@ __FBSDID("$FreeBSD$"); #define MODE_PAGE_HEADER(mh) \ (struct scsi_mode_page_header *)find_mode_page_6(mh) -#define MODE_PAGE_DATA(mph) \ - (u_int8_t *)(mph) + sizeof(struct scsi_mode_page_header) - struct editentry { STAILQ_ENTRY(editentry) link; @@ -86,7 +83,8 @@ static int editlist_changed = 0; /* Whet struct pagename { SLIST_ENTRY(pagename) link; - int pagenum; + int page; + int subpage; char *name; }; static SLIST_HEAD(, pagename) namelist; /* Page number to name mappings. */ @@ -106,21 +104,22 @@ static int editentry_save(void *hook, static struct editentry *editentry_lookup(char *name); static int editentry_set(char *name, char *newvalue, int editonly); -static void editlist_populate(struct cam_device *device, - int modepage, int page_control, - int dbd, int retries, int timeout); -static void editlist_save(struct cam_device *device, int modepage, - int page_control, int dbd, int retries, - int timeout); -static void nameentry_create(int pagenum, char *name); -static struct pagename *nameentry_lookup(int pagenum); -static int load_format(const char *pagedb_path, int page); +static void editlist_populate(struct cam_device *device, int dbd, + int pc, int page, int subpage, + int retries, int timeout); +static void editlist_save(struct cam_device *device, int dbd, + int pc, int page, int subpage, + int retries, int timeout); +static void nameentry_create(int page, int subpage, char *name); +static struct pagename *nameentry_lookup(int page, int subpage); +static int load_format(const char *pagedb_path, int lpage, + int lsubpage); static int modepage_write(FILE *file, int editonly); static int modepage_read(FILE *file); static void modepage_edit(void); -static void modepage_dump(struct cam_device *device, int page, - int page_control, int dbd, int retries, - int timeout); +static void modepage_dump(struct cam_device *device, int dbd, + int pc, int page, int subpage, int retries, + int timeout); static void cleanup_editfile(void); @@ -325,10 +324,10 @@ editentry_set(char *name, char *newvalue } static void -nameentry_create(int pagenum, char *name) { +nameentry_create(int page, int subpage, char *name) { struct pagename *newentry; - if (pagenum < 0 || name == NULL || name[0] == '\0') + if (page < 0 || subpage < 0 || name == NULL || name[0] == '\0') return; /* Allocate memory for the new entry and a copy of the entry name. */ @@ -339,16 +338,17 @@ nameentry_create(int pagenum, char *name /* Trim any trailing whitespace for the page name. */ RTRIM(newentry->name); - newentry->pagenum = pagenum; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Jan 9 01:35:34 2017 Return-Path: Delivered-To: svn-src-projects@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 61642CA5272 for ; Mon, 9 Jan 2017 01:35:34 +0000 (UTC) (envelope-from ngie@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 3130C1029; Mon, 9 Jan 2017 01:35:34 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v091ZXLr098048; Mon, 9 Jan 2017 01:35:33 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v091ZXsQ098047; Mon, 9 Jan 2017 01:35:33 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701090135.v091ZXsQ098047@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 9 Jan 2017 01:35:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311732 - projects/bsnmp-ipv6-mib/etc X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 01:35:34 -0000 Author: ngie Date: Mon Jan 9 01:35:33 2017 New Revision: 311732 URL: https://svnweb.freebsd.org/changeset/base/311732 Log: The ipv6 module will require the mibII module Modified: projects/bsnmp-ipv6-mib/etc/snmpd.config Modified: projects/bsnmp-ipv6-mib/etc/snmpd.config ============================================================================== --- projects/bsnmp-ipv6-mib/etc/snmpd.config Mon Jan 9 01:31:16 2017 (r311731) +++ projects/bsnmp-ipv6-mib/etc/snmpd.config Mon Jan 9 01:35:33 2017 (r311732) @@ -145,6 +145,7 @@ begemotSnmpdModulePath."mibII" = "/usr/l # # IPv6 module +# This requires the mibII module. # #begemotSnmpdModulePath."ipv6MIB" = "/usr/lib/snmp_ipv6MIB.so" From owner-svn-src-projects@freebsd.org Mon Jan 9 02:34:28 2017 Return-Path: Delivered-To: svn-src-projects@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 079E1CA092D for ; Mon, 9 Jan 2017 02:34:28 +0000 (UTC) (envelope-from ngie@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 BAF9F1307; Mon, 9 Jan 2017 02:34:27 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v092YQNZ022290; Mon, 9 Jan 2017 02:34:26 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v092YQ3w022289; Mon, 9 Jan 2017 02:34:26 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701090234.v092YQ3w022289@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 9 Jan 2017 02:34:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311737 - projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 02:34:28 -0000 Author: ngie Date: Mon Jan 9 02:34:26 2017 New Revision: 311737 URL: https://svnweb.freebsd.org/changeset/base/311737 Log: Start filling in the blanks from contrib/bsnmp/snmp_mibII/mibII_interfaces.c Add XXX comments for WIP items. Table isn't iterable, but at least it no longer blows up an snmpwalk (here at least) Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c Mon Jan 9 02:04:54 2017 (r311736) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c Mon Jan 9 02:34:26 2017 (r311737) @@ -43,25 +43,25 @@ int op_ipv6IfTable(struct snmp_context *ctx __unused, struct snmp_value *value, u_int sub, u_int iidx __unused, enum snmp_op op) { + struct mibif *ifp = NULL; asn_subid_t which; + int ret; switch (op) { - case SNMP_OP_GETNEXT: #if 0 - ip = NEXT_OBJECT_INT(&ipv6_interfaces, &value->var, sub); - if (ip == NULL) - return SNMP_ERR_NOSUCHNAME; + case SNMP_OP_GETNEXT: + if ((ifp = NEXT_OBJECT_INT(&mibif_list, &value->var, sub)) == NULL) + return (SNMP_ERR_NOSUCHNAME); value->var.len = sub + 1; - value->var.subs[sub] = ip->index; -#endif + value->var.subs[sub] = ifp->index; break; case SNMP_OP_GET: -#if 0 - ip = FIND_OBJECT_INT(&ipv6_interfaces, &value->var, sub); - if (ip == NULL) + if (value->var.len - sub != 1) + return (SNMP_ERR_NOSUCHNAME); + if ((ifp = mib_find_if(value->var.subs[sub])) == NULL) return (SNMP_ERR_NOSUCHNAME); -#endif break; +#endif case SNMP_OP_SET: case SNMP_OP_COMMIT: case SNMP_OP_ROLLBACK: @@ -72,16 +72,20 @@ op_ipv6IfTable(struct snmp_context *ctx which = value->var.subs[sub - 1]; - switch (which) { - case LEAF_ipv6IfDescr: #if 0 - string_get(value, ip->name, strlen(ip->name)); + /* XXX (ngie): expose mib_fetch_ifmib */ + if (ifp->mibtick < this_tick) + (void)mib_fetch_ifmib(ifp); #endif + + switch (which) { + case LEAF_ipv6IfDescr: + ret = string_get(value, ifp->descr, -1); break; case LEAF_ipv6IfLowerLayer: /* - * TODO: return nullOID until the proper way is figured out. - * For now, use `oid_zeroDotZero`. + * XXX (thor): return nullOID until the proper way is figured + * out. For now, use `oid_zeroDotZero`. */ oid_get(value, &oid_zeroDotZero); break; @@ -89,26 +93,10 @@ op_ipv6IfTable(struct snmp_context *ctx value->v.uint32 = IPV6_MAXPACKET; break; case LEAF_ipv6IfEffectiveMtu: - { -#if 0 - struct ifreq ifr; - int s; - - memset(&ifr, 0, sizeof(ifr)); - ifr.ifr_addr.sa_family = AF_INET6; - strncpy(ifr.ifr_name, ip->name, sizeof(ifr.ifr_name)); - - if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0) - return (SNMP_ERR_RES_UNAVAIL); - - if (ioctl(s, SIOCGIFMTU, (caddr_t) &ifr) != -1) - value->v.uint32 = ifr.ifr_mtu; - - close(s); -#endif + value->v.integer = ifp->mib.ifmd_data.ifi_mtu; break; - } case LEAF_ipv6IfIdentifier: + /* XXX (ngie): implement this */ string_get(value, "", 0); break; case LEAF_ipv6IfIdentifierLength: @@ -116,87 +104,29 @@ op_ipv6IfTable(struct snmp_context *ctx value->v.integer = 0; break; case LEAF_ipv6IfPhysicalAddress: - { -#if 0 - get_physaddr(); - if (tmp == NULL) - string_get(value, "", 0); - else - string_get(value, tmp, strlen(tmp)); -#endif + ret = string_get(value, ifp->physaddr, + ifp->physaddrlen); break; - } case LEAF_ipv6IfAdminStatus: - { -#if 0 - struct ifaddrs *ifap, *ifa; - - if (getifaddrs(&ifap) == -1) { - value->v.integer = 4; /* Unknown */ - break; - } - - value->v.integer = 2; - for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { - if (strcmp(ifa->ifa_name, ip->name) != 0) - continue; - if (ifa->ifa_addr->sa_family != AF_INET6) - continue; - value->v.integer = - (ifa->ifa_flags & IFF_RUNNING) ? 1 : 2; - break; - } - freeifaddrs(ifap); -#endif + value->v.integer = + (ifp->mib.ifmd_flags & IFF_UP) ? 1 : 2; break; - } case LEAF_ipv6IfOperStatus: - { -#if 0 - struct ifaddrs *ifap, *ifa; - if (getifaddrs(&ifap) == -1) { - value->v.integer = 4; /* Unknown */ - break; - } - - value->v.integer = 2; - - for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { - if (strcmp(ifa->ifa_name, ip->name) != 0) - continue; - if (ifa->ifa_addr->sa_family != AF_INET6) - continue; - value->v.integer = (ifa->ifa_flags & IFF_UP) ? 1 : 2; - break; - } - freeifaddrs(ifap); -#endif + if ((ifp->mib.ifmd_flags & IFF_RUNNING) != 0) { + if (ifp->mib.ifmd_data.ifi_link_state != LINK_STATE_UP) + value->v.integer = 5; /* state dormant */ + else + value->v.integer = 1; /* state up */ + } else + value->v.integer = 2; /* state down */ break; - } - case LEAF_ipv6IfLastChange: - { #if 0 - /* - * XXX (ngie): not checking for error code from - * gettimeofday(2). - */ - struct timeval lastchange, now; - struct ifmibdata ifmd; - - if (if_getifmibdata(ip->index, &ifmd) != 0) { - value->v.uint32 = 0; - break; - } - lastchange = ifmd.ifmd_data.ifi_lastchange; - - gettimeofday(&now, (struct timezone*)NULL); + /* XXX (ngie): export from mib-II to somewhere more sensible. */ + case LEAF_ipv6IfLastChange: value->v.uint32 = - (uint32_t)((now.tv_sec - lastchange.tv_sec) * 100); - value->v.uint32 += - (uint32_t)((now.tv_usec - lastchange.tv_usec) / 10000); -#endif + ticks_get_timeval(&ifp->mib.ifmd_data.ifi_lastchange); break; - } +#endif default: return (SNMP_ERR_RES_UNAVAIL); } From owner-svn-src-projects@freebsd.org Mon Jan 9 02:48:10 2017 Return-Path: Delivered-To: svn-src-projects@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 35468CA0BD1 for ; Mon, 9 Jan 2017 02:48:10 +0000 (UTC) (envelope-from ngie@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 E4666178D; Mon, 9 Jan 2017 02:48:09 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v092m9sM026476; Mon, 9 Jan 2017 02:48:09 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v092m9NE026475; Mon, 9 Jan 2017 02:48:09 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701090248.v092m9NE026475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 9 Jan 2017 02:48:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311738 - projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 02:48:10 -0000 Author: ngie Date: Mon Jan 9 02:48:08 2017 New Revision: 311738 URL: https://svnweb.freebsd.org/changeset/base/311738 Log: Allow SHLIB_MAJOR to be overridden Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/Makefile.inc Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/Makefile.inc ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/Makefile.inc Mon Jan 9 02:34:26 2017 (r311737) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/Makefile.inc Mon Jan 9 02:48:08 2017 (r311738) @@ -1,6 +1,6 @@ # $FreeBSD$ -SHLIB_MAJOR= 6 +SHLIB_MAJOR?= 6 PACKAGE= bsnmp MANFILTER= sed -e 's%@MODPATH@%${LIBDIR}/%g' \ From owner-svn-src-projects@freebsd.org Mon Jan 9 05:26:02 2017 Return-Path: Delivered-To: svn-src-projects@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 3F3AECA6ED8 for ; Mon, 9 Jan 2017 05:26:02 +0000 (UTC) (envelope-from ngie@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 E6A86110B; Mon, 9 Jan 2017 05:26:01 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v095Q1fK091517; Mon, 9 Jan 2017 05:26:01 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v095Q1tP091516; Mon, 9 Jan 2017 05:26:01 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701090526.v095Q1tP091516@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 9 Jan 2017 05:26:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311745 - projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 05:26:02 -0000 Author: ngie Date: Mon Jan 9 05:26:00 2017 New Revision: 311745 URL: https://svnweb.freebsd.org/changeset/base/311745 Log: Stash more minor work-in-progress bits (deleting braces, added `which` for consistency with other modules, adding XXX comments, etc). Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c Mon Jan 9 04:35:55 2017 (r311744) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c Mon Jan 9 05:26:00 2017 (r311745) @@ -52,8 +52,12 @@ op_ipv6MIBObjects(struct snmp_context *c { const char *namestr = NULL; int name[] = { CTL_NET, PF_INET6, IPPROTO_IPV6, 0 }; - int result = 0; - size_t resultsiz = sizeof(result); + asn_subid_t which; + size_t resultsz; + int result; + + result = 0; + resultsz = sizeof(result); switch (op) { case SNMP_OP_GETNEXT: @@ -66,11 +70,13 @@ op_ipv6MIBObjects(struct snmp_context *c return (SNMP_ERR_NOERROR); } - switch (value->var.subs[sub - 1]) { + which = value->var.subs[sub - 1]; + + switch (which) { case LEAF_ipv6Forwarding: name[3] = IPV6CTL_FORWARDING; namestr = "IPV6CTL_FORWARDING"; - if (sysctl(name, nitems(name), &result, &resultsiz, NULL, + if (sysctl(name, nitems(name), &result, &resultsz, NULL, 0) < 0) return (SNMP_ERR_GENERR); if (result == 0) @@ -81,13 +87,12 @@ op_ipv6MIBObjects(struct snmp_context *c case LEAF_ipv6DefaultHopLimit: name[3] = IPV6CTL_DEFHLIM; namestr = "IPV6CTL_DEFHLIM"; - if (sysctl(name, nitems(name), &result, &resultsiz, NULL, + if (sysctl(name, nitems(name), &result, &resultsz, NULL, 0) < 0) return (SNMP_ERR_GENERR); value->v.integer = result; break; case LEAF_ipv6IfTableLastChange: - { mib_ipv6_refresh_interfaces(); if (mib_ipv6_ipv6IfTableLastChange > start_tick) value->v.uint32 = @@ -95,7 +100,6 @@ op_ipv6MIBObjects(struct snmp_context *c else value->v.uint32 = 0; break; - } case LEAF_ipv6Interfaces: mib_ipv6_refresh_interfaces(); value->v.integer = mib_ipv6_ipv6Interfaces; @@ -103,6 +107,7 @@ op_ipv6MIBObjects(struct snmp_context *c default: return (SNMP_ERR_NOSUCHNAME); } + return (SNMP_ERR_NOERROR); } From owner-svn-src-projects@freebsd.org Mon Jan 9 11:31:05 2017 Return-Path: Delivered-To: svn-src-projects@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 4A631CA67CF for ; Mon, 9 Jan 2017 11:31:05 +0000 (UTC) (envelope-from ae@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 1F2DE1E83; Mon, 9 Jan 2017 11:31:05 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09BV43v040987; Mon, 9 Jan 2017 11:31:04 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09BV43g040986; Mon, 9 Jan 2017 11:31:04 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701091131.v09BV43g040986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 9 Jan 2017 11:31:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311782 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 11:31:05 -0000 Author: ae Date: Mon Jan 9 11:31:04 2017 New Revision: 311782 URL: https://svnweb.freebsd.org/changeset/base/311782 Log: Rework PCB SP cache to avoid races. Add ipsec_cachepolicy() and ipsec_invalidate_cache() functions that implement the cache logic. Use INPCB lock to protect access to the cache. Also, now SP are kept in the cache referenced. This protects from access to already freed policies. Modified: projects/ipsec/sys/netipsec/ipsec.c Modified: projects/ipsec/sys/netipsec/ipsec.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:11:52 2017 (r311781) +++ projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:31:04 2017 (r311782) @@ -285,29 +285,113 @@ key_allocsp_default(void) return (sp); } -static struct secpolicy * -ipsec_checkpolicy(struct secpolicy *sp, struct inpcb *inp, int *error) +static void +ipsec_invalidate_cache(struct inpcb *inp, u_int dir) +{ + struct secpolicy *sp; + + INP_WLOCK_ASSERT(inp); + if (dir == IPSEC_DIR_OUTBOUND) { + if (inp->inp_sp->flags & INP_INBOUND_POLICY) + return; + sp = inp->inp_sp->sp_in; + inp->inp_sp->sp_in = NULL; + } else { + if (inp->inp_sp->flags & INP_OUTBOUND_POLICY) + return; + sp = inp->inp_sp->sp_out; + inp->inp_sp->sp_out = NULL; + } + if (sp != NULL) + key_freesp(&sp); /* release extra reference */ +} + +static void +ipsec_cachepolicy(struct inpcb *inp, struct secpolicy *sp, u_int dir) { uint32_t genid; + int downgrade; + + INP_LOCK_ASSERT(inp); - if (inp != NULL && inp->inp_sp != NULL && - (inp->inp_sp->flags & INP_OUTBOUND_POLICY) == 0 && - inp->inp_sp->sp_out == NULL) { + if (dir == IPSEC_DIR_OUTBOUND) { + /* Do we have configured PCB policy? */ + if (inp->inp_sp->flags & INP_OUTBOUND_POLICY) + return; + /* Another thread has already set cached policy */ + if (inp->inp_sp->sp_out != NULL) + return; /* - * Save found OUTBOUND policy into PCB SP cache. + * Do not cache OUTBOUND policy if PCB isn't connected, + * i.e. foreign address is INADDR_ANY/UNSPECIFIED. */ - genid = key_getspgen(); - inp->inp_sp->sp_out = sp; - if (genid != inp->inp_sp->genid) { - /* Reset INBOUND cached policy if genid is changed */ - if ((inp->inp_sp->flags & INP_INBOUND_POLICY) == 0) - inp->inp_sp->sp_in = NULL; - inp->inp_sp->genid = genid; - } - KEYDBG(IPSEC_STAMP, - printf("%s: PCB(%p): cached SP(%p)\n", - __func__, inp, sp)); +#ifdef INET + if ((inp->inp_vflag & INP_IPV4) != 0 && + inp->inp_faddr.s_addr == INADDR_ANY) + return; +#endif +#ifdef INET6 + if ((inp->inp_vflag & INP_IPV6) != 0 && + IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_faddr)) + return; +#endif + } else { + /* Do we have configured PCB policy? */ + if (inp->inp_sp->flags & INP_INBOUND_POLICY) + return; + /* Another thread has already set cached policy */ + if (inp->inp_sp->sp_in != NULL) + return; + /* + * Do not cache INBOUND policy for listen socket, + * that is bound to INADDR_ANY/UNSPECIFIED address. + */ +#ifdef INET + if ((inp->inp_vflag & INP_IPV4) != 0 && + inp->inp_faddr.s_addr == INADDR_ANY) + return; +#endif +#ifdef INET6 + if ((inp->inp_vflag & INP_IPV6) != 0 && + IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_faddr)) + return; +#endif + } + downgrade = 0; + if (!INP_WLOCKED(inp)) { + if ((downgrade = INP_TRY_UPGRADE(inp)) == 0) + return; } + if (dir == IPSEC_DIR_OUTBOUND) + inp->inp_sp->sp_out = sp; + else + inp->inp_sp->sp_in = sp; + /* + * SP is already referenced by the lookup code. + * We take extra reference here to avoid race in the + * ipsec_getpcbpolicy() function - SP will not be freed in the + * time between we take SP pointer from the cache and key_addref() + * call. + */ + key_addref(sp); + genid = key_getspgen(); + if (genid != inp->inp_sp->genid) + ipsec_invalidate_cache(inp, dir); + KEYDBG(IPSEC_STAMP, + printf("%s: PCB(%p): cached SP(%p)\n", + __func__, inp, sp)); + if (downgrade != 0) + INP_DOWNGRADE(inp); +} + +static struct secpolicy * +ipsec_checkpolicy(struct secpolicy *sp, struct inpcb *inp, int *error) +{ + + /* Save found OUTBOUND policy into PCB SP cache. */ + if (inp != NULL && inp->inp_sp != NULL && inp->inp_sp->sp_out == NULL) + ipsec_cachepolicy(inp, sp, IPSEC_DIR_OUTBOUND); + switch (sp->policy) { default: printf("%s: invalid policy %u\n", __func__, sp->policy); @@ -333,11 +417,13 @@ static struct secpolicy * ipsec_getpcbpolicy(struct inpcb *inp, u_int dir) { struct secpolicy *sp; - int flags; + int flags, downgrade; if (inp == NULL || inp->inp_sp == NULL) return (NULL); + INP_LOCK_ASSERT(inp); + flags = inp->inp_sp->flags; if (dir == IPSEC_DIR_OUTBOUND) { sp = inp->inp_sp->sp_out; @@ -354,14 +440,16 @@ ipsec_getpcbpolicy(struct inpcb *inp, u_ if (sp == NULL) return (NULL); if (inp->inp_sp->genid != key_getspgen()) { - /* - * Invalidate the cache. - * Do not touch policy if it was set by PCB. - */ - if ((inp->inp_sp->flags & INP_INBOUND_POLICY) == 0) - inp->inp_sp->sp_in = NULL; - if ((inp->inp_sp->flags & INP_OUTBOUND_POLICY) == 0) - inp->inp_sp->sp_out = NULL; + /* Invalidate the cache. */ + downgrade = 0; + if (!INP_WLOCKED(inp)) { + if ((downgrade = INP_TRY_UPGRADE(inp)) == 0) + return (NULL); + } + ipsec_invalidate_cache(inp, IPSEC_DIR_OUTBOUND); + ipsec_invalidate_cache(inp, IPSEC_DIR_INBOUND); + if (downgrade != 0) + INP_DOWNGRADE(inp); return (NULL); } KEYDBG(IPSEC_STAMP, @@ -369,7 +457,6 @@ ipsec_getpcbpolicy(struct inpcb *inp, u_ __func__, inp, sp)); /* Return referenced cached policy */ } - IPSEC_ASSERT(sp != NULL, ("null SP, but flags is 0x%04x", flags)); key_addref(sp); return (sp); } @@ -909,37 +996,15 @@ ipsec_check_history(const struct mbuf *m static int ipsec_in_reject(struct secpolicy *sp, struct inpcb *inp, const struct mbuf *m) { - uint32_t genid; int i; KEYDBG(IPSEC_STAMP, printf("%s: PCB(%p): using SP(%p)\n", __func__, inp, sp)); KEYDBG(IPSEC_DATA, kdebug_secpolicy(sp)); - if (inp != NULL && - (inp->inp_sp->flags & INP_INBOUND_POLICY) == 0 && - inp->inp_sp->sp_in == NULL && - inp->inp_laddr.s_addr != INADDR_ANY) { - /* - * Save found INBOUND policy into PCB SP cache. - * NOTE: We do this only if local address isn't INADDR_ANY, - * because a cached policy for listen socket, that bound to - * ANY address, may prevent to establish another connection. - * We don't check address family, since both INADDR_ANY and - * UNSPECIFIED IPv6 address contains all zeroes. - */ - genid = key_getspgen(); - inp->inp_sp->sp_in = sp; - if (genid != inp->inp_sp->genid) { - /* Reset OUTBOUND cached policy if genid is changed */ - if ((inp->inp_sp->flags & INP_OUTBOUND_POLICY) == 0) - inp->inp_sp->sp_out = NULL; - inp->inp_sp->genid = genid; - } - KEYDBG(IPSEC_STAMP, - printf("%s: PCB(%p): cached SP(%p)\n", - __func__, inp, sp)); - } + if (inp != NULL && inp->inp_sp != NULL && inp->inp_sp->sp_in == NULL) + ipsec_cachepolicy(inp, sp, IPSEC_DIR_INBOUND); + /* Check policy. */ switch (sp->policy) { case IPSEC_POLICY_DISCARD: From owner-svn-src-projects@freebsd.org Mon Jan 9 11:34:34 2017 Return-Path: Delivered-To: svn-src-projects@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 48C29CA67F9 for ; Mon, 9 Jan 2017 11:34:34 +0000 (UTC) (envelope-from ae@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 15DE51232; Mon, 9 Jan 2017 11:34:34 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09BYX3E044850; Mon, 9 Jan 2017 11:34:33 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09BYXDC044849; Mon, 9 Jan 2017 11:34:33 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701091134.v09BYXDC044849@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 9 Jan 2017 11:34:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311783 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 11:34:34 -0000 Author: ae Date: Mon Jan 9 11:34:33 2017 New Revision: 311783 URL: https://svnweb.freebsd.org/changeset/base/311783 Log: Save SP generation id when cache is updated. Modified: projects/ipsec/sys/netipsec/ipsec.c Modified: projects/ipsec/sys/netipsec/ipsec.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:31:04 2017 (r311782) +++ projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:34:33 2017 (r311783) @@ -375,8 +375,10 @@ ipsec_cachepolicy(struct inpcb *inp, str */ key_addref(sp); genid = key_getspgen(); - if (genid != inp->inp_sp->genid) + if (genid != inp->inp_sp->genid) { ipsec_invalidate_cache(inp, dir); + inp->inp_sp->genid = genid; + } KEYDBG(IPSEC_STAMP, printf("%s: PCB(%p): cached SP(%p)\n", __func__, inp, sp)); From owner-svn-src-projects@freebsd.org Mon Jan 9 11:37:27 2017 Return-Path: Delivered-To: svn-src-projects@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 0EC09CA6A16 for ; Mon, 9 Jan 2017 11:37:27 +0000 (UTC) (envelope-from ae@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 D2EC01620; Mon, 9 Jan 2017 11:37:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09BbQcn044995; Mon, 9 Jan 2017 11:37:26 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09BbQe1044994; Mon, 9 Jan 2017 11:37:26 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701091137.v09BbQe1044994@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 9 Jan 2017 11:37:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311784 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 11:37:27 -0000 Author: ae Date: Mon Jan 9 11:37:25 2017 New Revision: 311784 URL: https://svnweb.freebsd.org/changeset/base/311784 Log: Print SP direction in debug message. Modified: projects/ipsec/sys/netipsec/ipsec.c Modified: projects/ipsec/sys/netipsec/ipsec.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:34:33 2017 (r311783) +++ projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:37:25 2017 (r311784) @@ -380,8 +380,9 @@ ipsec_cachepolicy(struct inpcb *inp, str inp->inp_sp->genid = genid; } KEYDBG(IPSEC_STAMP, - printf("%s: PCB(%p): cached SP(%p)\n", - __func__, inp, sp)); + printf("%s: PCB(%p): cached %s SP(%p)\n", + __func__, inp, dir == IPSEC_DIR_OUTBOUND ? "OUTBOUND": + "INBOUND", sp)); if (downgrade != 0) INP_DOWNGRADE(inp); } From owner-svn-src-projects@freebsd.org Mon Jan 9 13:12:10 2017 Return-Path: Delivered-To: svn-src-projects@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 EAB3CCA61EC for ; Mon, 9 Jan 2017 13:12:10 +0000 (UTC) (envelope-from ae@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 AA8AE124E; Mon, 9 Jan 2017 13:12:10 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09DC90h084257; Mon, 9 Jan 2017 13:12:09 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09DC9BT084254; Mon, 9 Jan 2017 13:12:09 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701091312.v09DC9BT084254@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 9 Jan 2017 13:12:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311785 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 13:12:11 -0000 Author: ae Date: Mon Jan 9 13:12:09 2017 New Revision: 311785 URL: https://svnweb.freebsd.org/changeset/base/311785 Log: Change IPsec default policy to be allocated on module initialization, instead of using static variable. Since each security policy can be cached in PCB, static variable becomes invalid after module unload. When module is loaded again, the cache will be invalidated, and this leads to access to invalid memory. Now default security policy is allocated on module initialization like all another policies. And such policies will be kept until last reference isn't released on next cache invalidation. Also modify corresponding sysctl variables to be SYSCTL_PROC. Modified: projects/ipsec/sys/netipsec/ipsec.c projects/ipsec/sys/netipsec/ipsec.h projects/ipsec/sys/netipsec/ipsec_mod.c Modified: projects/ipsec/sys/netipsec/ipsec.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 11:37:25 2017 (r311784) +++ projects/ipsec/sys/netipsec/ipsec.c Mon Jan 9 13:12:09 2017 (r311785) @@ -123,8 +123,24 @@ static VNET_DEFINE(int, ip4_filtertunnel #define V_ip4_filtertunnel VNET(ip4_filtertunnel) static VNET_DEFINE(int, check_policy_history) = 0; #define V_check_policy_history VNET(check_policy_history) -static VNET_DEFINE(struct secpolicy, def_policy); +static VNET_DEFINE(struct secpolicy *, def_policy) = NULL; #define V_def_policy VNET(def_policy) +static int +sysctl_def_policy(SYSCTL_HANDLER_ARGS) +{ + int error, value; + + value = V_def_policy->policy; + error = sysctl_handle_int(oidp, &value, 0, req); + if (error == 0) { + if (value != IPSEC_POLICY_DISCARD && + value != IPSEC_POLICY_NONE) + return (EINVAL); + V_def_policy->policy = value; + } + return (error); +} + /* * Crypto support requirements: * @@ -148,8 +164,8 @@ FEATURE(ipsec_natt, "UDP Encapsulation o SYSCTL_DECL(_net_inet_ipsec); /* net.inet.ipsec */ -SYSCTL_INT(_net_inet_ipsec, IPSECCTL_DEF_POLICY, def_policy, - CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(def_policy).policy, 0, +SYSCTL_PROC(_net_inet_ipsec, IPSECCTL_DEF_POLICY, def_policy, + CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_RW, 0, 0, sysctl_def_policy, "I", "IPsec default policy."); SYSCTL_INT(_net_inet_ipsec, IPSECCTL_DEF_ESP_TRANSLEV, esp_trans_deflev, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip4_esp_trans_deflev), 0, @@ -229,8 +245,8 @@ static VNET_DEFINE(int, ip6_filtertunnel SYSCTL_DECL(_net_inet6_ipsec6); /* net.inet6.ipsec6 */ -SYSCTL_INT(_net_inet6_ipsec6, IPSECCTL_DEF_POLICY, def_policy, - CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(def_policy).policy, 0, +SYSCTL_PROC(_net_inet6_ipsec6, IPSECCTL_DEF_POLICY, def_policy, + CTLTYPE_INT | CTLFLAG_VNET | CTLFLAG_RW, 0, 0, sysctl_def_policy, "I", "IPsec default policy."); SYSCTL_INT(_net_inet6_ipsec6, IPSECCTL_DEF_ESP_TRANSLEV, esp_trans_deflev, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_esp_trans_deflev), 0, @@ -272,17 +288,9 @@ static void ipsec6_setspidx_ipaddr(const static struct secpolicy * key_allocsp_default(void) { - struct secpolicy *sp; - sp = &V_def_policy; - if (sp->policy != IPSEC_POLICY_DISCARD && - sp->policy != IPSEC_POLICY_NONE) { - ipseclog((LOG_INFO, "fixed system default policy: %d->%d\n", - sp->policy, IPSEC_POLICY_NONE)); - sp->policy = IPSEC_POLICY_NONE; - } - key_addref(sp); - return (sp); + key_addref(V_def_policy); + return (V_def_policy); } static void @@ -1345,16 +1353,38 @@ ipsec_updateid(struct secasvar *sav, uin return (0); } +int +ipsec_initialized(void) +{ + + return (V_def_policy != NULL); +} + static void def_policy_init(const void *unused __unused) { - bzero(&V_def_policy, sizeof(struct secpolicy)); - V_def_policy.policy = IPSEC_POLICY_NONE; - V_def_policy.refcnt = 1; + V_def_policy = key_newsp(); + if (V_def_policy != NULL) { + V_def_policy->policy = IPSEC_POLICY_NONE; + /* Force INPCB SP cache invalidation */ + key_bumpspgen(); + } else + printf("%s: failed to initialize default policy\n", __func__); +} + - /* Force INPCB SP cache invalidation */ - key_bumpspgen(); +static void +def_policy_uninit(const void *unused __unused) +{ + + if (V_def_policy != NULL) { + key_freesp(&V_def_policy); + key_bumpspgen(); + } } + VNET_SYSINIT(def_policy_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, def_policy_init, NULL); +VNET_SYSUNINIT(def_policy_uninit, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, + def_policy_uninit, NULL); Modified: projects/ipsec/sys/netipsec/ipsec.h ============================================================================== --- projects/ipsec/sys/netipsec/ipsec.h Mon Jan 9 11:37:25 2017 (r311784) +++ projects/ipsec/sys/netipsec/ipsec.h Mon Jan 9 13:12:09 2017 (r311785) @@ -319,6 +319,7 @@ int udp_ipsec_pcbctl(struct inpcb *, str int ipsec_chkreplay(uint32_t, struct secasvar *); int ipsec_updatereplay(uint32_t, struct secasvar *); int ipsec_updateid(struct secasvar *, uint64_t *, uint64_t *); +int ipsec_initialized(void); void ipsec_setspidx_inpcb(struct inpcb *, struct secpolicyindex *, u_int); Modified: projects/ipsec/sys/netipsec/ipsec_mod.c ============================================================================== --- projects/ipsec/sys/netipsec/ipsec_mod.c Mon Jan 9 11:37:25 2017 (r311784) +++ projects/ipsec/sys/netipsec/ipsec_mod.c Mon Jan 9 13:12:09 2017 (r311785) @@ -107,6 +107,8 @@ ipsec_modevent(module_t mod, int type, v switch (type) { case MOD_LOAD: /* All xforms are registered via SYSINIT */ + if (!ipsec_initialized()) + return (ENOMEM); #ifdef KLD_MODULE #ifdef INET ipsec_support_enable(ipv4_ipsec_support, &ipv4_methods); From owner-svn-src-projects@freebsd.org Mon Jan 9 18:35:44 2017 Return-Path: Delivered-To: svn-src-projects@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 5F998CA7B34 for ; Mon, 9 Jan 2017 18:35:44 +0000 (UTC) (envelope-from ngie@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 266421C9B; Mon, 9 Jan 2017 18:35:44 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09IZh9B023381; Mon, 9 Jan 2017 18:35:43 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09IZfwL023365; Mon, 9 Jan 2017 18:35:41 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701091835.v09IZfwL023365@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Mon, 9 Jan 2017 18:35:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311805 - in projects/bsnmp-ipv6-mib: contrib/bsnmp/gensnmpdef contrib/bsnmp/snmp_mibII contrib/bsnmp/snmpd lib/libprocstat share/mk sys/arm/ti sys/cam/ctl sys/conf sys/dev/hyperv/inclu... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 18:35:44 -0000 Author: ngie Date: Mon Jan 9 18:35:41 2017 New Revision: 311805 URL: https://svnweb.freebsd.org/changeset/base/311805 Log: MFhead@r311262 Added: projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci_fdt_gpio.c - copied unchanged from r311804, head/sys/dev/sdhci/sdhci_fdt_gpio.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci_fdt_gpio.h - copied unchanged from r311804, head/sys/dev/sdhci/sdhci_fdt_gpio.h Deleted: projects/bsnmp-ipv6-mib/lib/libprocstat/Versions.def Modified: projects/bsnmp-ipv6-mib/contrib/bsnmp/gensnmpdef/gensnmpdef.c projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/mibII.c projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/FOKUS-MIB.txt projects/bsnmp-ipv6-mib/lib/libprocstat/Makefile projects/bsnmp-ipv6-mib/share/mk/bsd.README projects/bsnmp-ipv6-mib/sys/arm/ti/ti_sdhci.c projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl.c projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_backend.h projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.c projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.h projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_ioctl.h projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_private.h projects/bsnmp-ipv6-mib/sys/conf/files projects/bsnmp-ipv6-mib/sys/dev/hyperv/include/hyperv.h projects/bsnmp-ipv6-mib/sys/dev/hyperv/utilities/vmbus_timesync.c projects/bsnmp-ipv6-mib/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c projects/bsnmp-ipv6-mib/sys/dev/hyperv/vmbus/hyperv.c projects/bsnmp-ipv6-mib/sys/dev/hyperv/vmbus/vmbus_et.c projects/bsnmp-ipv6-mib/sys/dev/mmc/mmcsd.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/fsl_sdhci.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci.h projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci_pci.c projects/bsnmp-ipv6-mib/tools/tools/gensnmpdef/Makefile projects/bsnmp-ipv6-mib/usr.bin/ctlstat/ctlstat.8 projects/bsnmp-ipv6-mib/usr.bin/ctlstat/ctlstat.c projects/bsnmp-ipv6-mib/usr.bin/netstat/main.c projects/bsnmp-ipv6-mib/usr.bin/netstat/route.c projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_atm/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_hast/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_hostres/BEGEMOT-HOSTRES-MIB.txt projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_netgraph/BEGEMOT-NETGRAPH.txt projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_target/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_usm/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile Directory Properties: projects/bsnmp-ipv6-mib/ (props changed) Modified: projects/bsnmp-ipv6-mib/contrib/bsnmp/gensnmpdef/gensnmpdef.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/bsnmp/gensnmpdef/gensnmpdef.c Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/contrib/bsnmp/gensnmpdef/gensnmpdef.c Mon Jan 9 18:35:41 2017 (r311805) @@ -126,9 +126,11 @@ open_node(const SmiNode *n, u_int level, while (level < n->oidlen - 1) { if (level >= cut) { + n1 = smiGetNodeByOID(level + 1, n->oid); + if (n1 == NULL) + continue; pindent(level); printf("(%u", n->oid[level]); - n1 = smiGetNodeByOID(level + 1, n->oid); printf(" "); print_name(n1); printf("\n"); @@ -397,12 +399,11 @@ static void save_typdef(char *name) { struct tdef *t; - t = malloc(sizeof(struct tdef)); + t = calloc(1, sizeof(struct tdef)); if (t == NULL) err(1, NULL); - memset(t, 0 , sizeof(struct tdef)); t->name = name; SLIST_INSERT_HEAD(&tdefs, t, link); } @@ -559,7 +560,11 @@ main(int argc, char *argv[]) level = 0; last = NULL; for (opt = 0; opt < argc; opt++) { + if (mods[opt] == NULL) /* smiGetModule failed above */ + continue; n = smiGetFirstNode(mods[opt], SMI_NODEKIND_ANY); + if (n == NULL) + continue; for (;;) { if (do_typedef == 0) { level = open_node(n, level, &last); Modified: projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt Mon Jan 9 18:35:41 2017 (r311805) @@ -54,6 +54,9 @@ begemotIp MODULE-IDENTITY E-mail: harti@freebsd.org" DESCRIPTION "The MIB for IP stuff that is not in the official IP MIBs." + REVISION "200602130000Z" + DESCRIPTION + "Initial revision." ::= { begemot 3 } begemotIpObjects OBJECT IDENTIFIER ::= { begemotIp 1 } Modified: projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/mibII.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/mibII.c Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/contrib/bsnmp/snmp_mibII/mibII.c Mon Jan 9 18:35:41 2017 (r311805) @@ -319,7 +319,7 @@ fetch_generic_mib(struct mibif *ifp, con name[5] = IFDATA_GENERAL; len = sizeof(ifp->mib); - if (sysctl(name, 6, &ifp->mib, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), &ifp->mib, &len, NULL, 0) == -1) { if (errno != ENOENT) syslog(LOG_WARNING, "sysctl(ifmib, %s) failed %m", ifp->name); @@ -480,7 +480,7 @@ mib_fetch_ifmib(struct mibif *ifp) name[3] = IFMIB_IFDATA; name[4] = ifp->sysindex; name[5] = IFDATA_LINKSPECIFIC; - if (sysctl(name, 6, NULL, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), NULL, &len, NULL, 0) == -1) { syslog(LOG_WARNING, "sysctl linkmib estimate (%s): %m", ifp->name); if (ifp->specmib != NULL) { @@ -506,7 +506,7 @@ mib_fetch_ifmib(struct mibif *ifp) ifp->specmib = newmib; ifp->specmiblen = len; } - if (sysctl(name, 6, ifp->specmib, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), ifp->specmib, &len, NULL, 0) == -1) { syslog(LOG_WARNING, "sysctl linkmib (%s): %m", ifp->name); if (ifp->specmib != NULL) { ifp->specmib = NULL; @@ -902,7 +902,7 @@ mib_refresh_iflist(void) for (idx = 1; idx <= count; idx++) { name[4] = idx; len = sizeof(mib); - if (sysctl(name, 6, &mib, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), &mib, &len, NULL, 0) == -1) { if (errno == ENOENT) continue; syslog(LOG_ERR, "ifmib(%u): %m", idx); @@ -1213,7 +1213,7 @@ mib_fetch_rtab(int af, int info, int arg *lenp = 0; /* initial estimate */ - if (sysctl(name, 6, NULL, lenp, NULL, 0) == -1) { + if (sysctl(name, nitems(name), NULL, lenp, NULL, 0) == -1) { syslog(LOG_ERR, "sysctl estimate (%d,%d,%d,%d,%d,%d): %m", name[0], name[1], name[2], name[3], name[4], name[5]); return (NULL); @@ -1230,7 +1230,7 @@ mib_fetch_rtab(int af, int info, int arg } buf = newbuf; - if (sysctl(name, 6, buf, lenp, NULL, 0) == 0) + if (sysctl(name, nitems(name), buf, lenp, NULL, 0) == 0) break; if (errno != ENOMEM) { Modified: projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt Mon Jan 9 18:35:41 2017 (r311805) @@ -54,6 +54,9 @@ begemot MODULE-IDENTITY E-mail: harti@freebsd.org" DESCRIPTION "The root of the Begemot subtree of the fokus tree." + REVISION "200201300000Z" + DESCRIPTION + "Initial revision." ::= { fokus 1 } END Modified: projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/FOKUS-MIB.txt ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/FOKUS-MIB.txt Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/contrib/bsnmp/snmpd/FOKUS-MIB.txt Mon Jan 9 18:35:41 2017 (r311805) @@ -52,6 +52,9 @@ fokus MODULE-IDENTITY E-mail: harti@freebsd.org" DESCRIPTION "The root of the Fokus enterprises tree." + REVISION "200202050000Z" + DESCRIPTION + "Initial revision." ::= { enterprises 12325 } END Modified: projects/bsnmp-ipv6-mib/lib/libprocstat/Makefile ============================================================================== --- projects/bsnmp-ipv6-mib/lib/libprocstat/Makefile Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/lib/libprocstat/Makefile Mon Jan 9 18:35:41 2017 (r311805) @@ -9,11 +9,11 @@ SRCS= cd9660.c \ common_kvm.c \ core.c \ libprocstat.c \ - msdosfs.c \ + msdosfs.c \ smbfs.c \ udf.c -VERSION_DEF= ${.CURDIR}/Versions.def +VERSION_DEF= ${LIBCSRCDIR}/Versions.def SYMBOL_MAPS= ${.CURDIR}/Symbol.map INCS= libprocstat.h Modified: projects/bsnmp-ipv6-mib/share/mk/bsd.README ============================================================================== --- projects/bsnmp-ipv6-mib/share/mk/bsd.README Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/share/mk/bsd.README Mon Jan 9 18:35:41 2017 (r311805) @@ -410,6 +410,63 @@ If foo has multiple source files, add th =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +The include file, , handles building MIB modules for bsnmpd +from one or more source files, along with their manual pages. It has a +limited number of suffixes, consistent with the current needs of the BSD +tree. + +bsd.snmpmod.mk leverages bsd.lib.mk for building MIB modules and +bsd.files.mk for installing MIB description and definition files. + +It has no additional targets. + +It sets/uses the following variables: + +BMIBS The MIB definitions to install. + +BMIBSDIR The directory where the MIB definitions are installed. + This defaults to `${SHAREDIR}/snmp/mibs`. + +DEFS The MIB description files to install. + +DEFSDIR The directory where MIB description files are installed. + This defaults to `${SHAREDIR}/snmp/defs`. + +EXTRAMIBDEFS Extra MIB description files to use as input when + generating ${MOD}_oid.h and ${MOD}_tree.[ch]. + +EXTRAMIBSYMS Extra MIB definition files used only for extracting + symbols. + + EXTRAMIBSYMS are useful when resolving inter-module + dependencies and are useful with files containing only + enum-definitions. + + See ${MOD}_oid.h for more details. + +MOD The bsnmpd module name. + +XSYM MIB names to extract symbols for. See ${MOD}_oid.h for + more details. + +It generates the following files: + +${MOD}_tree.c A source file and header which programmatically describes +${MOD}_tree.h the MIB (type, OID name, ACCESS attributes, etc). + + The files are generated via "gensnmptree -p". + + See gensnmptree(1) for more details. + +${MOD}_oid.h A header which programmatically describes the MIB root and + MIB tables. + + The files are generated via "gensnmptree -e". + + See gensnmptree(1) for more details. + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + The include file contains the default targets for building subdirectories. It has the same seven targets as : all, clean, cleandir, depend, install, lint, and tags. For all of the directories Modified: projects/bsnmp-ipv6-mib/sys/arm/ti/ti_sdhci.c ============================================================================== --- projects/bsnmp-ipv6-mib/sys/arm/ti/ti_sdhci.c Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/arm/ti/ti_sdhci.c Mon Jan 9 18:35:41 2017 (r311805) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "sdhci_if.h" #include @@ -61,7 +62,7 @@ __FBSDID("$FreeBSD$"); struct ti_sdhci_softc { device_t dev; - device_t gpio_dev; + struct sdhci_fdt_gpio * gpio; struct resource * mem_res; struct resource * irq_res; void * intr_cookie; @@ -362,20 +363,24 @@ static int ti_sdhci_get_ro(device_t brdev, device_t reqdev) { struct ti_sdhci_softc *sc = device_get_softc(brdev); - unsigned int readonly = 0; - /* If a gpio pin is configured, read it. */ - if (sc->gpio_dev != NULL) { - GPIO_PIN_GET(sc->gpio_dev, sc->wp_gpio_pin, &readonly); - } + return (sdhci_fdt_gpio_get_readonly(sc->gpio)); +} - return (readonly); +static bool +ti_sdhci_get_card_present(device_t dev, struct sdhci_slot *slot) +{ + struct ti_sdhci_softc *sc = device_get_softc(dev); + + return (sdhci_fdt_gpio_get_present(sc->gpio)); } static int ti_sdhci_detach(device_t dev) { + /* sdhci_fdt_gpio_teardown(sc->gpio); */ + return (EBUSY); } @@ -502,25 +507,6 @@ ti_sdhci_attach(device_t dev) } /* - * See if we've got a GPIO-based write detect pin. This is not the - * standard documented property for this, we added it in freebsd. - */ - if ((OF_getencprop(node, "mmchs-wp-gpio-pin", &prop, sizeof(prop))) <= 0) - sc->wp_gpio_pin = 0xffffffff; - else - sc->wp_gpio_pin = prop; - - if (sc->wp_gpio_pin != 0xffffffff) { - sc->gpio_dev = devclass_get_device(devclass_find("gpio"), 0); - if (sc->gpio_dev == NULL) - device_printf(dev, "Error: No GPIO device, " - "Write Protect pin will not function\n"); - else - GPIO_PIN_SETFLAGS(sc->gpio_dev, sc->wp_gpio_pin, - GPIO_PIN_INPUT); - } - - /* * Set the offset from the device's memory start to the MMCHS registers. * Also for OMAP4 disable high speed mode due to erratum ID i626. */ @@ -572,6 +558,8 @@ ti_sdhci_attach(device_t dev) goto fail; } + sc->gpio = sdhci_fdt_gpio_setup(sc->dev, &sc->slot); + /* Initialise the MMCHS hardware. */ ti_sdhci_hw_init(dev); @@ -706,6 +694,7 @@ static device_method_t ti_sdhci_methods[ DEVMETHOD(sdhci_write_2, ti_sdhci_write_2), DEVMETHOD(sdhci_write_4, ti_sdhci_write_4), DEVMETHOD(sdhci_write_multi_4, ti_sdhci_write_multi_4), + DEVMETHOD(sdhci_get_card_present, ti_sdhci_get_card_present), DEVMETHOD_END }; Modified: projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl.c ============================================================================== --- projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl.c Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl.c Mon Jan 9 18:35:41 2017 (r311805) @@ -1,7 +1,7 @@ /*- * Copyright (c) 2003-2009 Silicon Graphics International Corp. * Copyright (c) 2012 The FreeBSD Foundation - * Copyright (c) 2015 Alexander Motin + * Copyright (c) 2014-2017 Alexander Motin * All rights reserved. * * Portions of this software were developed by Edward Tomasz Napierala @@ -2567,6 +2567,7 @@ ctl_ioctl(struct cdev *dev, u_long cmd, struct thread *td) { struct ctl_softc *softc = dev->si_drv1; + struct ctl_port *port; struct ctl_lun *lun; int retval; @@ -2778,6 +2779,7 @@ ctl_ioctl(struct cdev *dev, u_long cmd, #endif /* CTL_IO_DELAY */ break; } +#ifdef CTL_LEGACY_STATS case CTL_GETSTATS: { struct ctl_stats *stats = (struct ctl_stats *)addr; int i; @@ -2790,26 +2792,26 @@ ctl_ioctl(struct cdev *dev, u_long cmd, stats->status = CTL_SS_OK; stats->fill_len = 0; STAILQ_FOREACH(lun, &softc->lun_list, links) { - if (stats->fill_len + sizeof(lun->stats) > + if (stats->fill_len + sizeof(lun->legacy_stats) > stats->alloc_len) { stats->status = CTL_SS_NEED_MORE_SPACE; break; } - retval = copyout(&lun->stats, &stats->lun_stats[i++], - sizeof(lun->stats)); + retval = copyout(&lun->legacy_stats, &stats->lun_stats[i++], + sizeof(lun->legacy_stats)); if (retval != 0) break; - stats->fill_len += sizeof(lun->stats); + stats->fill_len += sizeof(lun->legacy_stats); } stats->num_luns = softc->num_luns; -#ifdef CTL_TIME_IO - stats->flags = CTL_STATS_FLAG_TIME_VALID; -#else stats->flags = CTL_STATS_FLAG_NONE; +#ifdef CTL_TIME_IO + stats->flags |= CTL_STATS_FLAG_TIME_VALID; #endif getnanouptime(&stats->timestamp); break; } +#endif /* CTL_LEGACY_STATS */ case CTL_ERROR_INJECT: { struct ctl_error_desc *err_desc, *new_err_desc; @@ -3397,6 +3399,72 @@ ctl_ioctl(struct cdev *dev, u_long cmd, ctl_isc_announce_port(port); break; } + case CTL_GET_LUN_STATS: { + struct ctl_get_io_stats *stats = (struct ctl_get_io_stats *)addr; + int i; + + /* + * XXX KDM no locking here. If the LUN list changes, + * things can blow up. + */ + i = 0; + stats->status = CTL_SS_OK; + stats->fill_len = 0; + STAILQ_FOREACH(lun, &softc->lun_list, links) { + if (lun->lun < stats->first_item) + continue; + if (stats->fill_len + sizeof(lun->stats) > + stats->alloc_len) { + stats->status = CTL_SS_NEED_MORE_SPACE; + break; + } + retval = copyout(&lun->stats, &stats->stats[i++], + sizeof(lun->stats)); + if (retval != 0) + break; + stats->fill_len += sizeof(lun->stats); + } + stats->num_items = softc->num_luns; + stats->flags = CTL_STATS_FLAG_NONE; +#ifdef CTL_TIME_IO + stats->flags |= CTL_STATS_FLAG_TIME_VALID; +#endif + getnanouptime(&stats->timestamp); + break; + } + case CTL_GET_PORT_STATS: { + struct ctl_get_io_stats *stats = (struct ctl_get_io_stats *)addr; + int i; + + /* + * XXX KDM no locking here. If the LUN list changes, + * things can blow up. + */ + i = 0; + stats->status = CTL_SS_OK; + stats->fill_len = 0; + STAILQ_FOREACH(port, &softc->port_list, links) { + if (port->targ_port < stats->first_item) + continue; + if (stats->fill_len + sizeof(port->stats) > + stats->alloc_len) { + stats->status = CTL_SS_NEED_MORE_SPACE; + break; + } + retval = copyout(&port->stats, &stats->stats[i++], + sizeof(port->stats)); + if (retval != 0) + break; + stats->fill_len += sizeof(port->stats); + } + stats->num_items = softc->num_ports; + stats->flags = CTL_STATS_FLAG_NONE; +#ifdef CTL_TIME_IO + stats->flags |= CTL_STATS_FLAG_TIME_VALID; +#endif + getnanouptime(&stats->timestamp); + break; + } default: { /* XXX KDM should we fix this? */ #if 0 @@ -4391,7 +4459,7 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft struct scsi_vpd_id_descriptor *desc; struct scsi_vpd_id_t10 *t10id; const char *eui, *naa, *scsiname, *uuid, *vendor, *value; - int lun_number, i, lun_malloced; + int lun_number, lun_malloced; int devidlen, idlen1, idlen2 = 0, len; if (be_lun == NULL) @@ -4585,6 +4653,10 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft lun->ie_reported = 1; callout_init_mtx(&lun->ie_callout, &lun->lun_lock, 0); ctl_tpc_lun_init(lun); + if (lun->flags & CTL_LUN_REMOVABLE) { + lun->prevent = malloc((CTL_MAX_INITIATORS + 31) / 32 * 4, + M_CTL, M_WAITOK); + } /* * Initialize the mode and log page index. @@ -4609,13 +4681,16 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft ctl_softc->num_luns++; /* Setup statistics gathering */ - lun->stats.device_type = be_lun->lun_type; - lun->stats.lun_number = lun_number; - lun->stats.blocksize = be_lun->blocksize; +#ifdef CTL_LEGACY_STATS + lun->legacy_stats.device_type = be_lun->lun_type; + lun->legacy_stats.lun_number = lun_number; + lun->legacy_stats.blocksize = be_lun->blocksize; if (be_lun->blocksize == 0) - lun->stats.flags = CTL_LUN_STATS_NO_BLOCKSIZE; - for (i = 0;i < CTL_MAX_PORTS;i++) - lun->stats.ports[i].targ_port = i; + lun->legacy_stats.flags = CTL_LUN_STATS_NO_BLOCKSIZE; + for (len = 0; len < CTL_MAX_PORTS; len++) + lun->legacy_stats.ports[len].targ_port = len; +#endif /* CTL_LEGACY_STATS */ + lun->stats.item = lun_number; mtx_unlock(&ctl_softc->ctl_lock); @@ -4666,6 +4741,7 @@ ctl_free_lun(struct ctl_lun *lun) for (i = 0; i < CTL_MAX_PORTS; i++) free(lun->pr_keys[i], M_CTL); free(lun->write_buffer, M_CTL); + free(lun->prevent, M_CTL); if (lun->flags & CTL_LUN_MALLOCED) free(lun, M_CTL); @@ -5276,7 +5352,7 @@ ctl_prevent_allow(struct ctl_scsiio *cts cdb = (struct scsi_prevent *)ctsio->cdb; - if ((lun->flags & CTL_LUN_REMOVABLE) == 0) { + if ((lun->flags & CTL_LUN_REMOVABLE) == 0 || lun->prevent == NULL) { ctl_set_invalid_opcode(ctsio); ctl_done((union ctl_io *)ctsio); return (CTL_RETVAL_COMPLETE); @@ -6680,9 +6756,7 @@ ctl_sap_log_sense_handler(struct ctl_scs { struct ctl_lun *lun = CTL_LUN(ctsio); struct stat_page *data; - uint64_t rn, wn, rb, wb; - struct bintime rt, wt; - int i; + struct bintime *t; data = (struct stat_page *)page_index->page_data; @@ -6690,28 +6764,21 @@ ctl_sap_log_sense_handler(struct ctl_scs data->sap.hdr.param_control = SLP_LBIN; data->sap.hdr.param_len = sizeof(struct scsi_log_stat_and_perf) - sizeof(struct scsi_log_param_header); - rn = wn = rb = wb = 0; - bintime_clear(&rt); - bintime_clear(&wt); - for (i = 0; i < CTL_MAX_PORTS; i++) { - rn += lun->stats.ports[i].operations[CTL_STATS_READ]; - wn += lun->stats.ports[i].operations[CTL_STATS_WRITE]; - rb += lun->stats.ports[i].bytes[CTL_STATS_READ]; - wb += lun->stats.ports[i].bytes[CTL_STATS_WRITE]; - bintime_add(&rt, &lun->stats.ports[i].time[CTL_STATS_READ]); - bintime_add(&wt, &lun->stats.ports[i].time[CTL_STATS_WRITE]); - } - scsi_u64to8b(rn, data->sap.read_num); - scsi_u64to8b(wn, data->sap.write_num); - if (lun->stats.blocksize > 0) { - scsi_u64to8b(wb / lun->stats.blocksize, - data->sap.recvieved_lba); - scsi_u64to8b(rb / lun->stats.blocksize, - data->sap.transmitted_lba); + scsi_u64to8b(lun->stats.operations[CTL_STATS_READ], + data->sap.read_num); + scsi_u64to8b(lun->stats.operations[CTL_STATS_WRITE], + data->sap.write_num); + if (lun->be_lun->blocksize > 0) { + scsi_u64to8b(lun->stats.bytes[CTL_STATS_WRITE] / + lun->be_lun->blocksize, data->sap.recvieved_lba); + scsi_u64to8b(lun->stats.bytes[CTL_STATS_READ] / + lun->be_lun->blocksize, data->sap.transmitted_lba); } - scsi_u64to8b((uint64_t)rt.sec * 1000 + rt.frac / (UINT64_MAX / 1000), + t = &lun->stats.time[CTL_STATS_READ]; + scsi_u64to8b((uint64_t)t->sec * 1000 + t->frac / (UINT64_MAX / 1000), data->sap.read_int); - scsi_u64to8b((uint64_t)wt.sec * 1000 + wt.frac / (UINT64_MAX / 1000), + t = &lun->stats.time[CTL_STATS_WRITE]; + scsi_u64to8b((uint64_t)t->sec * 1000 + t->frac / (UINT64_MAX / 1000), data->sap.write_int); scsi_u64to8b(0, data->sap.weighted_num); scsi_u64to8b(0, data->sap.weighted_int); @@ -11872,8 +11939,10 @@ ctl_do_lun_reset(struct ctl_lun *lun, un ctl_clear_mask(lun->have_ca, i); #endif lun->prevent_count = 0; - for (i = 0; i < CTL_MAX_INITIATORS; i++) - ctl_clear_mask(lun->prevent, i); + if (lun->prevent) { + for (i = 0; i < CTL_MAX_INITIATORS; i++) + ctl_clear_mask(lun->prevent, i); + } mtx_unlock(&lun->lun_lock); return (0); @@ -12019,7 +12088,7 @@ ctl_i_t_nexus_reset(union ctl_io *io) #endif if ((lun->flags & CTL_LUN_RESERVED) && (lun->res_idx == initidx)) lun->flags &= ~CTL_LUN_RESERVED; - if (ctl_is_set(lun->prevent, initidx)) { + if (lun->prevent && ctl_is_set(lun->prevent, initidx)) { ctl_clear_mask(lun->prevent, initidx); lun->prevent_count--; } @@ -13046,13 +13115,13 @@ static void ctl_process_done(union ctl_io *io) { struct ctl_softc *softc = CTL_SOFTC(io); + struct ctl_port *port = CTL_PORT(io); struct ctl_lun *lun = CTL_LUN(io); void (*fe_done)(union ctl_io *io); union ctl_ha_msg msg; - uint32_t targ_port = io->io_hdr.nexus.targ_port; CTL_DEBUG_PRINT(("ctl_process_done\n")); - fe_done = softc->ctl_ports[targ_port]->fe_done; + fe_done = port->fe_done; #ifdef CTL_TIME_IO if ((time_uptime - io->io_hdr.start_time) > ctl_time_io_secs) { @@ -13155,11 +13224,13 @@ ctl_process_done(union ctl_io *io) */ if ((io->io_hdr.status & CTL_STATUS_MASK) == CTL_SUCCESS && io->io_hdr.io_type == CTL_IO_SCSI) { -#ifdef CTL_TIME_IO - struct bintime cur_bt; -#endif int type; +#ifdef CTL_TIME_IO + struct bintime bt; + getbinuptime(&bt); + bintime_sub(&bt, &io->io_hdr.start_bt); +#endif if ((io->io_hdr.flags & CTL_FLAG_DATA_MASK) == CTL_FLAG_DATA_IN) type = CTL_STATS_READ; @@ -13169,18 +13240,38 @@ ctl_process_done(union ctl_io *io) else type = CTL_STATS_NO_IO; - lun->stats.ports[targ_port].bytes[type] += +#ifdef CTL_LEGACY_STATS + uint32_t targ_port = port->targ_port; + lun->legacy_stats.ports[targ_port].bytes[type] += io->scsiio.kern_total_len; - lun->stats.ports[targ_port].operations[type]++; + lun->legacy_stats.ports[targ_port].operations[type] ++; + lun->legacy_stats.ports[targ_port].num_dmas[type] += + io->io_hdr.num_dmas; #ifdef CTL_TIME_IO - bintime_add(&lun->stats.ports[targ_port].dma_time[type], + bintime_add(&lun->legacy_stats.ports[targ_port].dma_time[type], &io->io_hdr.dma_bt); - getbinuptime(&cur_bt); - bintime_sub(&cur_bt, &io->io_hdr.start_bt); - bintime_add(&lun->stats.ports[targ_port].time[type], &cur_bt); + bintime_add(&lun->legacy_stats.ports[targ_port].time[type], + &bt); #endif - lun->stats.ports[targ_port].num_dmas[type] += - io->io_hdr.num_dmas; +#endif /* CTL_LEGACY_STATS */ + + lun->stats.bytes[type] += io->scsiio.kern_total_len; + lun->stats.operations[type] ++; + lun->stats.dmas[type] += io->io_hdr.num_dmas; +#ifdef CTL_TIME_IO + bintime_add(&lun->stats.dma_time[type], &io->io_hdr.dma_bt); + bintime_add(&lun->stats.time[type], &bt); +#endif + + mtx_lock(&port->port_lock); + port->stats.bytes[type] += io->scsiio.kern_total_len; + port->stats.operations[type] ++; + port->stats.dmas[type] += io->io_hdr.num_dmas; +#ifdef CTL_TIME_IO + bintime_add(&port->stats.dma_time[type], &io->io_hdr.dma_bt); + bintime_add(&port->stats.time[type], &bt); +#endif + mtx_unlock(&port->port_lock); } /* Modified: projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_backend.h ============================================================================== --- projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_backend.h Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_backend.h Mon Jan 9 18:35:41 2017 (r311805) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2003 Silicon Graphics International Corp. - * Copyright (c) 2014-2015 Alexander Motin + * Copyright (c) 2014-2017 Alexander Motin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,54 +40,7 @@ #ifndef _CTL_BACKEND_H_ #define _CTL_BACKEND_H_ -/* - * XXX KDM move this to another header file? - */ -#define CTL_BE_NAME_LEN 32 - -/* - * The ID_REQ flag is used to say that the caller has requested a - * particular LUN ID in the req_lun_id field. If we cannot allocate that - * LUN ID, the ctl_add_lun() call will fail. - * - * The STOPPED flag tells us that the LUN should default to the powered - * off state. It will return 0x04,0x02 until it is powered up. ("Logical - * unit not ready, initializing command required.") - * - * The NO_MEDIA flag tells us that the LUN has no media inserted. - * - * The PRIMARY flag tells us that this LUN is registered as a Primary LUN - * which is accessible via the Master shelf controller in an HA. This flag - * being set indicates a Primary LUN. This flag being reset represents a - * Secondary LUN controlled by the Secondary controller in an HA - * configuration. Flag is applicable at this time to T_DIRECT types. - * - * The SERIAL_NUM flag tells us that the serial_num field is filled in and - * valid for use in SCSI INQUIRY VPD page 0x80. - * - * The DEVID flag tells us that the device_id field is filled in and - * valid for use in SCSI INQUIRY VPD page 0x83. - * - * The DEV_TYPE flag tells us that the device_type field is filled in. - * - * The EJECTED flag tells us that the removable LUN has tray open. - * - * The UNMAP flag tells us that this LUN supports UNMAP. - * - * The OFFLINE flag tells us that this LUN can not access backing store. - */ -typedef enum { - CTL_LUN_FLAG_ID_REQ = 0x01, - CTL_LUN_FLAG_STOPPED = 0x02, - CTL_LUN_FLAG_NO_MEDIA = 0x04, - CTL_LUN_FLAG_PRIMARY = 0x08, - CTL_LUN_FLAG_SERIAL_NUM = 0x10, - CTL_LUN_FLAG_DEVID = 0x20, - CTL_LUN_FLAG_DEV_TYPE = 0x40, - CTL_LUN_FLAG_UNMAP = 0x80, - CTL_LUN_FLAG_EJECTED = 0x100, - CTL_LUN_FLAG_READONLY = 0x200 -} ctl_backend_lun_flags; +#include typedef enum { CTL_LUN_SERSEQ_OFF, Modified: projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.c ============================================================================== --- projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.c Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.c Mon Jan 9 18:35:41 2017 (r311805) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2003 Silicon Graphics International Corp. + * Copyright (c) 2014-2017 Alexander Motin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -192,13 +193,14 @@ error: mtx_unlock(&softc->ctl_lock); return (retval); } + port->targ_port = port_num; port->ctl_pool_ref = pool; - if (port->options.stqh_first == NULL) STAILQ_INIT(&port->options); + port->stats.item = port_num; + mtx_init(&port->port_lock, "CTL port", NULL, MTX_DEF); mtx_lock(&softc->ctl_lock); - port->targ_port = port_num; STAILQ_INSERT_TAIL(&port->frontend->port_list, port, fe_links); for (tport = NULL, nport = STAILQ_FIRST(&softc->port_list); nport != NULL && nport->targ_port < port_num; @@ -218,17 +220,11 @@ int ctl_port_deregister(struct ctl_port *port) { struct ctl_softc *softc = port->ctl_softc; - struct ctl_io_pool *pool; - int retval, i; - - retval = 0; - - pool = (struct ctl_io_pool *)port->ctl_pool_ref; + struct ctl_io_pool *pool = (struct ctl_io_pool *)port->ctl_pool_ref; + int i; - if (port->targ_port == -1) { - retval = 1; - goto bailout; - } + if (port->targ_port == -1) + return (1); mtx_lock(&softc->ctl_lock); STAILQ_REMOVE(&softc->port_list, port, ctl_port, links); @@ -251,9 +247,9 @@ ctl_port_deregister(struct ctl_port *por for (i = 0; i < port->max_initiators; i++) free(port->wwpn_iid[i].name, M_CTL); free(port->wwpn_iid, M_CTL); + mtx_destroy(&port->port_lock); -bailout: - return (retval); + return (0); } void Modified: projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.h ============================================================================== --- projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.h Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend.h Mon Jan 9 18:35:41 2017 (r311805) @@ -1,5 +1,6 @@ /*- * Copyright (c) 2003 Silicon Graphics International Corp. + * Copyright (c) 2014-2017 Alexander Motin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,6 +40,8 @@ #ifndef _CTL_FRONTEND_H_ #define _CTL_FRONTEND_H_ +#include + typedef enum { CTL_PORT_STATUS_NONE = 0x00, CTL_PORT_STATUS_ONLINE = 0x01, @@ -243,6 +246,8 @@ struct ctl_port { struct ctl_devid *port_devid; /* passed to CTL */ struct ctl_devid *target_devid; /* passed to CTL */ struct ctl_devid *init_devid; /* passed to CTL */ + struct ctl_io_stats stats; /* used by CTL */ + struct mtx port_lock; /* used by CTL */ STAILQ_ENTRY(ctl_port) fe_links; /* used by CTL */ STAILQ_ENTRY(ctl_port) links; /* used by CTL */ }; Modified: projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_ioctl.h ============================================================================== --- projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_ioctl.h Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_ioctl.h Mon Jan 9 18:35:41 2017 (r311805) @@ -1,6 +1,7 @@ /*- * Copyright (c) 2003 Silicon Graphics International Corp. * Copyright (c) 2011 Spectra Logic Corporation + * Copyright (c) 2014-2017 Alexander Motin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -80,6 +81,9 @@ /* Hopefully this won't conflict with new misc devices that pop up */ #define CTL_MINOR 225 +/* Legacy statistics accumulated for every port for every LU. */ +//#define CTL_LEGACY_STATS 1 + typedef enum { CTL_DELAY_TYPE_NONE, CTL_DELAY_TYPE_CONT, @@ -117,6 +121,18 @@ typedef enum { #define CTL_STATS_NUM_TYPES 3 typedef enum { + CTL_SS_OK, + CTL_SS_NEED_MORE_SPACE, + CTL_SS_ERROR +} ctl_stats_status; + +typedef enum { + CTL_STATS_FLAG_NONE = 0x00, + CTL_STATS_FLAG_TIME_VALID = 0x01 +} ctl_stats_flags; + +#ifdef CTL_LEGACY_STATS +typedef enum { CTL_LUN_STATS_NO_BLOCKSIZE = 0x01 } ctl_lun_stats_flags; @@ -137,17 +153,6 @@ struct ctl_lun_io_stats { struct ctl_lun_io_port_stats ports[CTL_MAX_PORTS]; }; -typedef enum { - CTL_SS_OK, - CTL_SS_NEED_MORE_SPACE, - CTL_SS_ERROR -} ctl_stats_status; - -typedef enum { - CTL_STATS_FLAG_NONE = 0x00, - CTL_STATS_FLAG_TIME_VALID = 0x01 -} ctl_stats_flags; - struct ctl_stats { int alloc_len; /* passed to kernel */ struct ctl_lun_io_stats *lun_stats; /* passed to/from kernel */ @@ -157,6 +162,27 @@ struct ctl_stats { ctl_stats_flags flags; /* passed to userland */ struct timespec timestamp; /* passed to userland */ }; +#endif /* CTL_LEGACY_STATS */ + +struct ctl_io_stats { + uint32_t item; + uint64_t bytes[CTL_STATS_NUM_TYPES]; + uint64_t operations[CTL_STATS_NUM_TYPES]; + uint64_t dmas[CTL_STATS_NUM_TYPES]; + struct bintime time[CTL_STATS_NUM_TYPES]; + struct bintime dma_time[CTL_STATS_NUM_TYPES]; +}; + +struct ctl_get_io_stats { + struct ctl_io_stats *stats; /* passed to/from kernel */ + size_t alloc_len; /* passed to kernel */ + size_t fill_len; /* passed to userland */ + int first_item; /* passed to kernel */ + int num_items; /* passed to userland */ + ctl_stats_status status; /* passed to userland */ + ctl_stats_flags flags; /* passed to userland */ + struct timespec timestamp; /* passed to userland */ +}; /* * The types of errors that can be injected: @@ -342,12 +368,54 @@ typedef enum { CTL_LUNREQ_MODIFY, } ctl_lunreq_type; +/* + * The ID_REQ flag is used to say that the caller has requested a + * particular LUN ID in the req_lun_id field. If we cannot allocate that + * LUN ID, the ctl_add_lun() call will fail. + * + * The STOPPED flag tells us that the LUN should default to the powered + * off state. It will return 0x04,0x02 until it is powered up. ("Logical + * unit not ready, initializing command required.") + * + * The NO_MEDIA flag tells us that the LUN has no media inserted. + * + * The PRIMARY flag tells us that this LUN is registered as a Primary LUN + * which is accessible via the Master shelf controller in an HA. This flag + * being set indicates a Primary LUN. This flag being reset represents a + * Secondary LUN controlled by the Secondary controller in an HA + * configuration. Flag is applicable at this time to T_DIRECT types. + * + * The SERIAL_NUM flag tells us that the serial_num field is filled in and + * valid for use in SCSI INQUIRY VPD page 0x80. + * + * The DEVID flag tells us that the device_id field is filled in and + * valid for use in SCSI INQUIRY VPD page 0x83. + * + * The DEV_TYPE flag tells us that the device_type field is filled in. + * + * The EJECTED flag tells us that the removable LUN has tray open. + * + * The UNMAP flag tells us that this LUN supports UNMAP. + * + * The OFFLINE flag tells us that this LUN can not access backing store. + */ +typedef enum { + CTL_LUN_FLAG_ID_REQ = 0x01, + CTL_LUN_FLAG_STOPPED = 0x02, + CTL_LUN_FLAG_NO_MEDIA = 0x04, + CTL_LUN_FLAG_PRIMARY = 0x08, + CTL_LUN_FLAG_SERIAL_NUM = 0x10, + CTL_LUN_FLAG_DEVID = 0x20, + CTL_LUN_FLAG_DEV_TYPE = 0x40, + CTL_LUN_FLAG_UNMAP = 0x80, + CTL_LUN_FLAG_EJECTED = 0x100, + CTL_LUN_FLAG_READONLY = 0x200 +} ctl_backend_lun_flags; /* * LUN creation parameters: * - * flags: Various LUN flags, see ctl_backend.h for a - * description of the flag values and meanings. + * flags: Various LUN flags, see above. * * device_type: The SCSI device type. e.g. 0 for Direct Access, * 3 for Processor, etc. Only certain backends may @@ -465,6 +533,7 @@ union ctl_lunreq_data { * kern_be_args: For kernel use only. */ struct ctl_lun_req { +#define CTL_BE_NAME_LEN 32 char backend[CTL_BE_NAME_LEN]; ctl_lunreq_type reqtype; union ctl_lunreq_data reqdata; @@ -777,6 +846,8 @@ struct ctl_lun_map { #define CTL_PORT_REQ _IOWR(CTL_MINOR, 0x26, struct ctl_req) #define CTL_PORT_LIST _IOWR(CTL_MINOR, 0x27, struct ctl_lun_list) #define CTL_LUN_MAP _IOW(CTL_MINOR, 0x28, struct ctl_lun_map) +#define CTL_GET_LUN_STATS _IOWR(CTL_MINOR, 0x29, struct ctl_get_io_stats) +#define CTL_GET_PORT_STATS _IOWR(CTL_MINOR, 0x2a, struct ctl_get_io_stats) #endif /* _CTL_IOCTL_H_ */ Modified: projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_private.h ============================================================================== --- projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_private.h Mon Jan 9 18:18:15 2017 (r311804) +++ projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_private.h Mon Jan 9 18:35:41 2017 (r311805) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2003, 2004, 2005, 2008 Silicon Graphics International Corp. - * Copyright (c) 2014-2015 Alexander Motin + * Copyright (c) 2014-2017 Alexander Motin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -404,7 +404,10 @@ struct ctl_lun { struct callout ie_callout; /* INTERVAL TIMER */ struct ctl_mode_pages mode_pages; struct ctl_log_pages log_pages; - struct ctl_lun_io_stats stats; +#ifdef CTL_LEGACY_STATS + struct ctl_lun_io_stats legacy_stats; +#endif /* CTL_LEGACY_STATS */ + struct ctl_io_stats stats; uint32_t res_idx; uint32_t pr_generation; uint64_t *pr_keys[CTL_MAX_PORTS]; @@ -412,7 +415,7 @@ struct ctl_lun { uint32_t pr_res_idx; uint8_t pr_res_type; int prevent_count; - uint32_t prevent[(CTL_MAX_INITIATORS+31)/32]; + uint32_t *prevent; uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Jan 9 19:25:52 2017 Return-Path: Delivered-To: svn-src-projects@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 4DB79CA7D1A for ; Mon, 9 Jan 2017 19:25:52 +0000 (UTC) (envelope-from dim@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 0905D159E; Mon, 9 Jan 2017 19:25:51 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09JPp8F045623; Mon, 9 Jan 2017 19:25:51 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09JPn4F045606; Mon, 9 Jan 2017 19:25:49 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701091925.v09JPn4F045606@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 19:25:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311808 - in projects/clang400-import: . contrib/bsnmp/gensnmpdef contrib/bsnmp/snmp_mibII contrib/bsnmp/snmpd lib/libprocstat lib/libutil share/misc share/mk sys/arm/ti sys/cam/ctl sys... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 19:25:52 -0000 Author: dim Date: Mon Jan 9 19:25:49 2017 New Revision: 311808 URL: https://svnweb.freebsd.org/changeset/base/311808 Log: Merge ^/head r311692 through r311807. Added: projects/clang400-import/sys/dev/sdhci/sdhci_fdt_gpio.c - copied unchanged from r311807, head/sys/dev/sdhci/sdhci_fdt_gpio.c projects/clang400-import/sys/dev/sdhci/sdhci_fdt_gpio.h - copied unchanged from r311807, head/sys/dev/sdhci/sdhci_fdt_gpio.h Deleted: projects/clang400-import/lib/libprocstat/Versions.def Modified: projects/clang400-import/ObsoleteFiles.inc projects/clang400-import/contrib/bsnmp/gensnmpdef/gensnmpdef.c projects/clang400-import/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt projects/clang400-import/contrib/bsnmp/snmp_mibII/mibII.c projects/clang400-import/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt projects/clang400-import/contrib/bsnmp/snmpd/FOKUS-MIB.txt projects/clang400-import/lib/libprocstat/Makefile projects/clang400-import/lib/libprocstat/libprocstat.c projects/clang400-import/lib/libutil/kinfo_getallproc.c projects/clang400-import/lib/libutil/kinfo_getfile.c projects/clang400-import/lib/libutil/kinfo_getproc.c projects/clang400-import/lib/libutil/kinfo_getvmmap.c projects/clang400-import/share/misc/pci_vendors projects/clang400-import/share/mk/bsd.README projects/clang400-import/sys/arm/ti/ti_sdhci.c projects/clang400-import/sys/cam/ctl/ctl.c projects/clang400-import/sys/cam/ctl/ctl_backend.h projects/clang400-import/sys/cam/ctl/ctl_frontend.c projects/clang400-import/sys/cam/ctl/ctl_frontend.h projects/clang400-import/sys/cam/ctl/ctl_ioctl.h projects/clang400-import/sys/cam/ctl/ctl_private.h projects/clang400-import/sys/conf/files projects/clang400-import/sys/dev/etherswitch/etherswitch.c projects/clang400-import/sys/dev/gpio/gpioc.c projects/clang400-import/sys/dev/hyperv/include/hyperv.h projects/clang400-import/sys/dev/hyperv/utilities/vmbus_timesync.c projects/clang400-import/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c projects/clang400-import/sys/dev/hyperv/vmbus/hyperv.c projects/clang400-import/sys/dev/hyperv/vmbus/vmbus_et.c projects/clang400-import/sys/dev/mmc/mmcsd.c projects/clang400-import/sys/dev/rtwn/if_rtwnvar.h projects/clang400-import/sys/dev/rtwn/usb/rtwn_usb_attach.c projects/clang400-import/sys/dev/rtwn/usb/rtwn_usb_ep.c projects/clang400-import/sys/dev/rtwn/usb/rtwn_usb_rx.c projects/clang400-import/sys/dev/sdhci/fsl_sdhci.c projects/clang400-import/sys/dev/sdhci/sdhci.c projects/clang400-import/sys/dev/sdhci/sdhci.h projects/clang400-import/sys/dev/sdhci/sdhci_pci.c projects/clang400-import/sys/netinet6/nd6.c projects/clang400-import/sys/powerpc/include/vmparam.h projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang400-import/tools/tools/gensnmpdef/Makefile projects/clang400-import/usr.bin/ctlstat/ctlstat.8 projects/clang400-import/usr.bin/ctlstat/ctlstat.c projects/clang400-import/usr.bin/netstat/main.c projects/clang400-import/usr.bin/netstat/route.c projects/clang400-import/usr.bin/top/machine.c projects/clang400-import/usr.sbin/bhyve/ps2mouse.c (contents, props changed) projects/clang400-import/usr.sbin/bhyve/virtio.h projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_atm/Makefile projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_hast/Makefile projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_hostres/BEGEMOT-HOSTRES-MIB.txt projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_mibII/Makefile projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_netgraph/BEGEMOT-NETGRAPH.txt projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_target/Makefile projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_usm/Makefile projects/clang400-import/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile projects/clang400-import/usr.sbin/route6d/route6d.c projects/clang400-import/usr.sbin/rwhod/rwhod.c Directory Properties: projects/clang400-import/ (props changed) Modified: projects/clang400-import/ObsoleteFiles.inc ============================================================================== --- projects/clang400-import/ObsoleteFiles.inc Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/ObsoleteFiles.inc Mon Jan 9 19:25:49 2017 (r311808) @@ -2370,7 +2370,6 @@ OLD_LIBS+=usr/lib32/private/libyaml.so.1 OLD_FILES+=usr/lib32/private/libyaml_p.a # 20140216: new clang import which bumps version from 3.3 to 3.4. OLD_FILES+=usr/bin/llvm-prof -OLD_FILES+=usr/bin/llvm-ranlib OLD_FILES+=usr/include/clang/3.3/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.3/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.3/altivec.h Modified: projects/clang400-import/contrib/bsnmp/gensnmpdef/gensnmpdef.c ============================================================================== --- projects/clang400-import/contrib/bsnmp/gensnmpdef/gensnmpdef.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/contrib/bsnmp/gensnmpdef/gensnmpdef.c Mon Jan 9 19:25:49 2017 (r311808) @@ -126,9 +126,11 @@ open_node(const SmiNode *n, u_int level, while (level < n->oidlen - 1) { if (level >= cut) { + n1 = smiGetNodeByOID(level + 1, n->oid); + if (n1 == NULL) + continue; pindent(level); printf("(%u", n->oid[level]); - n1 = smiGetNodeByOID(level + 1, n->oid); printf(" "); print_name(n1); printf("\n"); @@ -397,12 +399,11 @@ static void save_typdef(char *name) { struct tdef *t; - t = malloc(sizeof(struct tdef)); + t = calloc(1, sizeof(struct tdef)); if (t == NULL) err(1, NULL); - memset(t, 0 , sizeof(struct tdef)); t->name = name; SLIST_INSERT_HEAD(&tdefs, t, link); } @@ -559,7 +560,11 @@ main(int argc, char *argv[]) level = 0; last = NULL; for (opt = 0; opt < argc; opt++) { + if (mods[opt] == NULL) /* smiGetModule failed above */ + continue; n = smiGetFirstNode(mods[opt], SMI_NODEKIND_ANY); + if (n == NULL) + continue; for (;;) { if (do_typedef == 0) { level = open_node(n, level, &last); Modified: projects/clang400-import/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt ============================================================================== --- projects/clang400-import/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/contrib/bsnmp/snmp_mibII/BEGEMOT-IP-MIB.txt Mon Jan 9 19:25:49 2017 (r311808) @@ -54,6 +54,9 @@ begemotIp MODULE-IDENTITY E-mail: harti@freebsd.org" DESCRIPTION "The MIB for IP stuff that is not in the official IP MIBs." + REVISION "200602130000Z" + DESCRIPTION + "Initial revision." ::= { begemot 3 } begemotIpObjects OBJECT IDENTIFIER ::= { begemotIp 1 } Modified: projects/clang400-import/contrib/bsnmp/snmp_mibII/mibII.c ============================================================================== --- projects/clang400-import/contrib/bsnmp/snmp_mibII/mibII.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/contrib/bsnmp/snmp_mibII/mibII.c Mon Jan 9 19:25:49 2017 (r311808) @@ -319,7 +319,7 @@ fetch_generic_mib(struct mibif *ifp, con name[5] = IFDATA_GENERAL; len = sizeof(ifp->mib); - if (sysctl(name, 6, &ifp->mib, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), &ifp->mib, &len, NULL, 0) == -1) { if (errno != ENOENT) syslog(LOG_WARNING, "sysctl(ifmib, %s) failed %m", ifp->name); @@ -480,7 +480,7 @@ mib_fetch_ifmib(struct mibif *ifp) name[3] = IFMIB_IFDATA; name[4] = ifp->sysindex; name[5] = IFDATA_LINKSPECIFIC; - if (sysctl(name, 6, NULL, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), NULL, &len, NULL, 0) == -1) { syslog(LOG_WARNING, "sysctl linkmib estimate (%s): %m", ifp->name); if (ifp->specmib != NULL) { @@ -506,7 +506,7 @@ mib_fetch_ifmib(struct mibif *ifp) ifp->specmib = newmib; ifp->specmiblen = len; } - if (sysctl(name, 6, ifp->specmib, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), ifp->specmib, &len, NULL, 0) == -1) { syslog(LOG_WARNING, "sysctl linkmib (%s): %m", ifp->name); if (ifp->specmib != NULL) { ifp->specmib = NULL; @@ -902,7 +902,7 @@ mib_refresh_iflist(void) for (idx = 1; idx <= count; idx++) { name[4] = idx; len = sizeof(mib); - if (sysctl(name, 6, &mib, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), &mib, &len, NULL, 0) == -1) { if (errno == ENOENT) continue; syslog(LOG_ERR, "ifmib(%u): %m", idx); @@ -1213,7 +1213,7 @@ mib_fetch_rtab(int af, int info, int arg *lenp = 0; /* initial estimate */ - if (sysctl(name, 6, NULL, lenp, NULL, 0) == -1) { + if (sysctl(name, nitems(name), NULL, lenp, NULL, 0) == -1) { syslog(LOG_ERR, "sysctl estimate (%d,%d,%d,%d,%d,%d): %m", name[0], name[1], name[2], name[3], name[4], name[5]); return (NULL); @@ -1230,7 +1230,7 @@ mib_fetch_rtab(int af, int info, int arg } buf = newbuf; - if (sysctl(name, 6, buf, lenp, NULL, 0) == 0) + if (sysctl(name, nitems(name), buf, lenp, NULL, 0) == 0) break; if (errno != ENOMEM) { Modified: projects/clang400-import/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt ============================================================================== --- projects/clang400-import/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt Mon Jan 9 19:25:49 2017 (r311808) @@ -54,6 +54,9 @@ begemot MODULE-IDENTITY E-mail: harti@freebsd.org" DESCRIPTION "The root of the Begemot subtree of the fokus tree." + REVISION "200201300000Z" + DESCRIPTION + "Initial revision." ::= { fokus 1 } END Modified: projects/clang400-import/contrib/bsnmp/snmpd/FOKUS-MIB.txt ============================================================================== --- projects/clang400-import/contrib/bsnmp/snmpd/FOKUS-MIB.txt Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/contrib/bsnmp/snmpd/FOKUS-MIB.txt Mon Jan 9 19:25:49 2017 (r311808) @@ -52,6 +52,9 @@ fokus MODULE-IDENTITY E-mail: harti@freebsd.org" DESCRIPTION "The root of the Fokus enterprises tree." + REVISION "200202050000Z" + DESCRIPTION + "Initial revision." ::= { enterprises 12325 } END Modified: projects/clang400-import/lib/libprocstat/Makefile ============================================================================== --- projects/clang400-import/lib/libprocstat/Makefile Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/lib/libprocstat/Makefile Mon Jan 9 19:25:49 2017 (r311808) @@ -9,11 +9,11 @@ SRCS= cd9660.c \ common_kvm.c \ core.c \ libprocstat.c \ - msdosfs.c \ + msdosfs.c \ smbfs.c \ udf.c -VERSION_DEF= ${.CURDIR}/Versions.def +VERSION_DEF= ${LIBCSRCDIR}/Versions.def SYMBOL_MAPS= ${.CURDIR}/Symbol.map INCS= libprocstat.h Modified: projects/clang400-import/lib/libprocstat/libprocstat.c ============================================================================== --- projects/clang400-import/lib/libprocstat/libprocstat.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/lib/libprocstat/libprocstat.c Mon Jan 9 19:25:49 2017 (r311808) @@ -282,7 +282,7 @@ procstat_getprocs(struct procstat *procs name[1] = KERN_PROC; name[2] = what; name[3] = arg; - error = sysctl(name, 4, NULL, &len, NULL, 0); + error = sysctl(name, nitems(name), NULL, &len, NULL, 0); if (error < 0 && errno != EPERM) { warn("sysctl(kern.proc)"); goto fail; @@ -299,7 +299,7 @@ procstat_getprocs(struct procstat *procs goto fail; } olen = len; - error = sysctl(name, 4, p, &len, NULL, 0); + error = sysctl(name, nitems(name), p, &len, NULL, 0); } while (error < 0 && errno == ENOMEM && olen == len); if (error < 0 && errno != EPERM) { warn("sysctl(kern.proc)"); @@ -1760,7 +1760,7 @@ getargv(struct procstat *procstat, struc name[2] = env ? KERN_PROC_ENV : KERN_PROC_ARGS; name[3] = kp->ki_pid; len = nchr; - error = sysctl(name, 4, av->buf, &len, NULL, 0); + error = sysctl(name, nitems(name), av->buf, &len, NULL, 0); if (error != 0 && errno != ESRCH && errno != EPERM) warn("sysctl(kern.proc.%s)", env ? "env" : "args"); if (error != 0 || len == 0) @@ -1983,7 +1983,7 @@ procstat_getgroups_sysctl(pid_t pid, uns warn("malloc(%zu)", len); return (NULL); } - if (sysctl(mib, 4, groups, &len, NULL, 0) == -1) { + if (sysctl(mib, nitems(mib), groups, &len, NULL, 0) == -1) { warn("sysctl: kern.proc.groups: %d", pid); free(groups); return (NULL); @@ -2059,7 +2059,7 @@ procstat_getumask_sysctl(pid_t pid, unsi mib[2] = KERN_PROC_UMASK; mib[3] = pid; len = sizeof(*maskp); - error = sysctl(mib, 4, maskp, &len, NULL, 0); + error = sysctl(mib, nitems(mib), maskp, &len, NULL, 0); if (error != 0 && errno != ESRCH && errno != EPERM) warn("sysctl: kern.proc.umask: %d", pid); return (error); @@ -2139,7 +2139,7 @@ procstat_getrlimit_sysctl(pid_t pid, int name[3] = pid; name[4] = which; len = sizeof(struct rlimit); - error = sysctl(name, 5, rlimit, &len, NULL, 0); + error = sysctl(name, nitems(name), rlimit, &len, NULL, 0); if (error < 0 && errno != ESRCH) { warn("sysctl: kern.proc.rlimit: %d", pid); return (-1); @@ -2201,7 +2201,7 @@ procstat_getpathname_sysctl(pid_t pid, c name[2] = KERN_PROC_PATHNAME; name[3] = pid; len = maxlen; - error = sysctl(name, 4, pathname, &len, NULL, 0); + error = sysctl(name, nitems(name), pathname, &len, NULL, 0); if (error != 0 && errno != ESRCH) warn("sysctl: kern.proc.pathname: %d", pid); if (len == 0) @@ -2281,7 +2281,7 @@ procstat_getosrel_sysctl(pid_t pid, int name[2] = KERN_PROC_OSREL; name[3] = pid; len = sizeof(*osrelp); - error = sysctl(name, 4, osrelp, &len, NULL, 0); + error = sysctl(name, nitems(name), osrelp, &len, NULL, 0); if (error != 0 && errno != ESRCH) warn("sysctl: kern.proc.osrel: %d", pid); return (error); @@ -2341,7 +2341,7 @@ is_elf32_sysctl(pid_t pid) name[2] = KERN_PROC_SV_NAME; name[3] = pid; len = sizeof(sv_name); - error = sysctl(name, 4, sv_name, &len, NULL, 0); + error = sysctl(name, nitems(name), sv_name, &len, NULL, 0); if (error != 0 || len == 0) return (0); for (i = 0; i < sizeof(elf32_sv_names) / sizeof(*elf32_sv_names); i++) { @@ -2372,7 +2372,7 @@ procstat_getauxv32_sysctl(pid_t pid, uns warn("malloc(%zu)", len); goto out; } - if (sysctl(name, 4, auxv32, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), auxv32, &len, NULL, 0) == -1) { if (errno != ESRCH && errno != EPERM) warn("sysctl: kern.proc.auxv: %d: %d", pid, errno); goto out; @@ -2421,7 +2421,7 @@ procstat_getauxv_sysctl(pid_t pid, unsig warn("malloc(%zu)", len); return (NULL); } - if (sysctl(name, 4, auxv, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), auxv, &len, NULL, 0) == -1) { if (errno != ESRCH && errno != EPERM) warn("sysctl: kern.proc.auxv: %d: %d", pid, errno); free(auxv); @@ -2482,7 +2482,7 @@ procstat_getkstack_sysctl(pid_t pid, int name[3] = pid; len = 0; - error = sysctl(name, 4, NULL, &len, NULL, 0); + error = sysctl(name, nitems(name), NULL, &len, NULL, 0); if (error < 0 && errno != ESRCH && errno != EPERM && errno != ENOENT) { warn("sysctl: kern.proc.kstack: %d", pid); return (NULL); @@ -2499,7 +2499,7 @@ procstat_getkstack_sysctl(pid_t pid, int warn("malloc(%zu)", len); return (NULL); } - if (sysctl(name, 4, kkstp, &len, NULL, 0) == -1) { + if (sysctl(name, nitems(name), kkstp, &len, NULL, 0) == -1) { warn("sysctl: kern.proc.pid: %d", pid); free(kkstp); return (NULL); Modified: projects/clang400-import/lib/libutil/kinfo_getallproc.c ============================================================================== --- projects/clang400-import/lib/libutil/kinfo_getallproc.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/lib/libutil/kinfo_getallproc.c Mon Jan 9 19:25:49 2017 (r311808) @@ -31,8 +31,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -75,14 +75,14 @@ kinfo_getallproc(int *cntp) mib[2] = KERN_PROC_PROC; len = 0; - if (sysctl(mib, 3, NULL, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) < 0) return (NULL); kipp = malloc(len); if (kipp == NULL) return (NULL); - if (sysctl(mib, 3, kipp, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), kipp, &len, NULL, 0) < 0) goto bad; if (len % sizeof(*kipp) != 0) goto bad; Modified: projects/clang400-import/lib/libutil/kinfo_getfile.c ============================================================================== --- projects/clang400-import/lib/libutil/kinfo_getfile.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/lib/libutil/kinfo_getfile.c Mon Jan 9 19:25:49 2017 (r311808) @@ -2,8 +2,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -26,14 +26,14 @@ kinfo_getfile(pid_t pid, int *cntp) mib[2] = KERN_PROC_FILEDESC; mib[3] = pid; - error = sysctl(mib, 4, NULL, &len, NULL, 0); + error = sysctl(mib, nitems(mib), NULL, &len, NULL, 0); if (error) return (NULL); len = len * 4 / 3; buf = malloc(len); if (buf == NULL) return (NULL); - error = sysctl(mib, 4, buf, &len, NULL, 0); + error = sysctl(mib, nitems(mib), buf, &len, NULL, 0); if (error) { free(buf); return (NULL); Modified: projects/clang400-import/lib/libutil/kinfo_getproc.c ============================================================================== --- projects/clang400-import/lib/libutil/kinfo_getproc.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/lib/libutil/kinfo_getproc.c Mon Jan 9 19:25:49 2017 (r311808) @@ -30,8 +30,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -49,14 +49,14 @@ kinfo_getproc(pid_t pid) mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = pid; - if (sysctl(mib, 4, NULL, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) < 0) return (NULL); kipp = malloc(len); if (kipp == NULL) return (NULL); - if (sysctl(mib, 4, kipp, &len, NULL, 0) < 0) + if (sysctl(mib, nitems(mib), kipp, &len, NULL, 0) < 0) goto bad; if (len != sizeof(*kipp)) goto bad; Modified: projects/clang400-import/lib/libutil/kinfo_getvmmap.c ============================================================================== --- projects/clang400-import/lib/libutil/kinfo_getvmmap.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/lib/libutil/kinfo_getvmmap.c Mon Jan 9 19:25:49 2017 (r311808) @@ -2,8 +2,8 @@ __FBSDID("$FreeBSD$"); #include -#include #include +#include #include #include @@ -26,14 +26,14 @@ kinfo_getvmmap(pid_t pid, int *cntp) mib[2] = KERN_PROC_VMMAP; mib[3] = pid; - error = sysctl(mib, 4, NULL, &len, NULL, 0); + error = sysctl(mib, nitems(mib), NULL, &len, NULL, 0); if (error) return (NULL); len = len * 4 / 3; buf = malloc(len); if (buf == NULL) return (NULL); - error = sysctl(mib, 4, buf, &len, NULL, 0); + error = sysctl(mib, nitems(mib), buf, &len, NULL, 0); if (error) { free(buf); return (NULL); Modified: projects/clang400-import/share/misc/pci_vendors ============================================================================== --- projects/clang400-import/share/misc/pci_vendors Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/share/misc/pci_vendors Mon Jan 9 19:25:49 2017 (r311808) @@ -3,8 +3,8 @@ # # List of PCI ID's # -# Version: 2016.11.21 -# Date: 2016-11-21 03:15:01 +# Version: 2017.01.08 +# Date: 2017-01-08 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at http://pci-ids.ucw.cz/. @@ -249,6 +249,7 @@ 0014 MegaRAID Tri-Mode SAS3516 1028 1fd4 PERC H745P MX 1d49 0602 ThinkSystem RAID 930-16i 4GB Flash PCIe 12Gb Adapter + 0015 MegaRAID Tri-Mode SAS3416 0016 MegaRAID Tri-Mode SAS3508 1028 1fc9 PERC H840 Adapter 1028 1fcb PERC H740P Adapter @@ -548,6 +549,7 @@ 1028 1f53 HBA330 Mini 1028 1fd2 HBA330 MX 1028 1fd3 HBA330 MMZ + 1bd4 0011 Inspur 12Gb 8i-3008 IT SAS HBA 00ab SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC) 00ac SAS3416 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) 1d49 0201 ThinkSystem 430-16i SAS/SATA 12Gb HBA @@ -2201,6 +2203,11 @@ 67b9 Vesuvius [Radeon R9 295X2] 67be Hawaii LE 67c0 Ellesmere [Polaris10] + 67c4 Ellesmere [Radeon Pro WX 7100] + 67c7 Ellesmere [Radeon Pro WX 5100] + 67ca Ellesmere [Polaris10] + 67cc Ellesmere [Polaris10] + 67cf Ellesmere [Polaris10] 67df Ellesmere [Radeon RX 470/480] 1002 0b37 Radeon RX 480 1043 04a8 Radeon RX 480 @@ -2218,6 +2225,7 @@ 1787 a480 Radeon RX 480 67e0 Baffin [Polaris11] 67e1 Baffin [Polaris11] + 67e3 Baffin [Radeon Pro WX 4100] 67e8 Baffin [Polaris11] 67e9 Baffin [Polaris11] 67eb Baffin [Polaris11] @@ -2924,6 +2932,12 @@ 148c 9380 Radeon R9 380 # Make naming scheme consistent 174b e308 Radeon R9 380 Nitro 4G D5 + 6980 Polaris12 + 6981 Polaris12 + 6985 Polaris12 + 6986 Polaris12 + 6987 Polaris12 + 699f Polaris12 700f RS100 AGP Bridge 7010 RS200/RS250 AGP Bridge 7100 R520 [Radeon X1800 XT] @@ -5095,6 +5109,7 @@ 0675 1704 ISDN Adapter (PCI Bus, D, C) 0675 1707 ISDN Adapter (PCI Bus, DV, W) 10cf 105e ISDN Adapter (PCI Bus, DV, W) + 13a0 Transformer Book T101HA-GR030R # Should be 1022:9602 9602 AMD RS780/RS880 PCI to PCI bridge (int gfx) 1043 83a2 M4A785TD Motherboard @@ -10077,6 +10092,7 @@ 10c3 GT218 [GeForce 8400 GS Rev. 3] 10c5 GT218 [GeForce 405] 10d8 GT218 [NVS 300] + 10ef GP102 HDMI Audio Controller 10f0 GP104 High Definition Audio Controller 1140 GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] 1019 0799 GeForce 820M @@ -10620,7 +10636,7 @@ 13f1 GM204GL [Quadro M4000] 13f2 GM204GL [Tesla M60] 13f3 GM204GL [Tesla M6] - 13f8 GM204GLM [Quadro M5000M] + 13f8 GM204GLM [Quadro M5000M / M5000 SE] 13f9 GM204GLM [Quadro M4000M] 13fa GM204GLM [Quadro M3000M] 10de 11c9 Quadro M3000 SE @@ -10634,8 +10650,9 @@ 1431 GM206GL [Tesla M4] 15f0 GP100GL 15f1 GP100GL - 15f8 GP100GL - 15f9 GP100GL + 15f7 GP100GL [Tesla P100 PCIe 12GB] + 15f8 GP100GL [Tesla P100 PCIe 16GB] + 15f9 GP100GL [Tesla P100 SMX2 16GB] 1617 GM204M [GeForce GTX 980M] 1618 GM204M [GeForce GTX 970M] 1619 GM204M [GeForce GTX 965M] @@ -10659,10 +10676,12 @@ 1b81 GP104 [GeForce GTX 1070] 1b82 GP104 1b83 GP104 + 1b84 GP104 [GeForce GTX 1060 3GB] 1ba0 GP104M [GeForce GTX 1080] 1ba1 GP104M [GeForce GTX 1070] 1bb0 GP104GL [Quadro P5000] 1bb1 GP104GL + 1bb3 GP104GL [Tesla P4] 1bb4 GP104GL 1be0 GP104M [GeForce GTX 1080] 1be1 GP104M [GeForce GTX 1070] @@ -10678,6 +10697,9 @@ 1c80 GP107 1c81 GP107 [GeForce GTX 1050] 1c82 GP107 [GeForce GTX 1050 Ti] + 1c8c GP107M [GeForce GTX 1050 Ti] + 1c8d GP107M [GeForce GTX 1050] + 1c8e GP107M 1ca7 GP107GL 1ca8 GP107GL 1caa GP107GL @@ -12103,7 +12125,11 @@ 111f Precision Digital Images 4a47 Precision MX Video engine interface 5243 Frame capture bus interface -1120 EMC Corporation +# formerly EMC Corporation +1120 Dell EMC + 2306 Unity Fibre Channel Controller + 2501 Unity Ethernet Controller + 2505 Unity Fibre Channel Controller 1121 Zilog 1122 Multi-tech Systems, Inc. 1123 Excellent Design, Inc. @@ -15975,7 +16001,7 @@ 5081 T540-5081 Unified Wire Ethernet Controller 5082 T504-5082 Unified Wire Ethernet Controller 5083 T540-5083 Unified Wire Ethernet Controller - 5084 T580-5084 Unified Wire Ethernet Controller + 5084 T540-5084 Unified Wire Ethernet Controller 5085 T580-5085 Unified Wire Ethernet Controller 5086 T580-5086 Unified Wire Ethernet Controller 5087 T580-5087 Unified Wire Ethernet Controller @@ -15994,6 +16020,7 @@ 509a T520-509A Unified Wire Ethernet Controller 509b T540-509B Unified Wire Ethernet Controller 509c T520-509C Unified Wire Ethernet Controller + 509d T540-509D Unified Wire Ethernet Controller 5401 T520-CR Unified Wire Ethernet Controller 5402 T522-CR Unified Wire Ethernet Controller 5403 T540-CR Unified Wire Ethernet Controller @@ -16041,6 +16068,7 @@ 549a T520-509A Unified Wire Ethernet Controller 549b T540-509B Unified Wire Ethernet Controller 549c T520-509C Unified Wire Ethernet Controller + 549d T540-509D Unified Wire Ethernet Controller 5501 T520-CR Unified Wire Storage Controller 5502 T522-CR Unified Wire Storage Controller 5503 T540-CR Unified Wire Storage Controller @@ -16088,6 +16116,7 @@ 559a T520-509A Unified Wire Storage Controller 559b T540-509B Unified Wire Storage Controller 559c T520-509C Unified Wire Storage Controller + 559d T540-509D Unified Wire Storage Controller 5601 T520-CR Unified Wire Storage Controller 5602 T522-CR Unified Wire Storage Controller 5603 T540-CR Unified Wire Storage Controller @@ -16135,6 +16164,7 @@ 569a T520-509A Unified Wire Storage Controller 569b T540-509B Unified Wire Storage Controller 569c T520-509C Unified Wire Storage Controller + 569d T540-509D Unified Wire Storage Controller 5701 T520-CR Unified Wire Ethernet Controller 5702 T522-CR Unified Wire Ethernet Controller 5703 T540-CR Unified Wire Ethernet Controller @@ -16221,6 +16251,7 @@ 589a T520-509A Unified Wire Ethernet Controller [VF] 589b T540-509B Unified Wire Ethernet Controller [VF] 589c T520-509C Unified Wire Ethernet Controller [VF] + 589d T540-509D Unified Wire Ethernet Controller [VF] 6001 T6225-CR Unified Wire Ethernet Controller 6002 T6225-SO-CR Unified Wire Ethernet Controller 6003 T6425-CR Unified Wire Ethernet Controller @@ -16357,7 +16388,8 @@ 144d Samsung Electronics Co Ltd 1600 Apple PCIe SSD a800 XP941 PCIe SSD - a802 NVMe SSD Controller + a802 NVMe SSD Controller SM951/PM951 + a804 NVMe SSD Controller SM961/PM961 a820 NVMe SSD Controller 171X 1028 1f95 Express Flash NVMe XS1715 SSD 400GB 1028 1f96 Express Flash NVMe XS1715 SSD 800GB @@ -17968,11 +18000,13 @@ 15b3 Mellanox Technologies 0191 MT25408 [ConnectX IB Flash Recovery] 01f6 MT27500 Family [ConnectX-3 Flash Recovery] + 01f8 MT27520 Family [ConnectX-3 Pro Flash Recovery] 01ff MT27600 Family [Connect-IB Flash Recovery] 0209 MT27700 Family [ConnectX-4 Flash Recovery] 020b MT27710 Family [ConnectX-4 Lx Flash Recovery] 020d MT28800 Family [ConnectX-5 Flash Recovery] 020f MT28908A0 Family [ConnectX-6 Flash Recovery] + 0211 MT416842 Family [BlueField SoC Flash Recovery] # reserved for RM#105916 024e MT53100 [Spectrum-2, Flash recovery mode] # Actual value to be used @@ -18732,6 +18766,7 @@ 7013 AP440-3: 32-Channel Isolated Digital Input Module 7014 AP445: 32-Channel Isolated Digital Output Module 7016 AP470 48-Channel TTL Level Digital Input/Output Module + 7017 AP323 16-bit, 20 or 40 Channel Analog Input Module 7018 AP408: 32-Channel Digital I/O Module 701a AP220-16 12-Bit, 16-Channel Analog Output Module 701b AP231-16 16-Bit, 16-Channel Analog Output Module @@ -18992,6 +19027,7 @@ 1160 ARC-1160 16-Port PCI-X to SATA RAID Controller 1170 ARC-1170 24-Port PCI-X to SATA RAID Controller 1201 ARC-1200 2-Port PCI-Express to SATA II RAID Controller + 1203 ARC-1203 2/4/8 Port PCIe 2.0 to SATA 6Gb RAID Controller 1210 ARC-1210 4-Port PCI-Express to SATA RAID Controller 1214 ARC-12x4 PCIe 2.0 to SAS/SATA 6Gb RAID Controller 17d3 1214 ARC-1214 4-Port PCIe 2.0 to SAS/SATA 6Gb RAID Controller @@ -19510,7 +19546,7 @@ 1924 5105 SFN4111T-R5 1924 5201 SFN4112F-R1 1924 5202 SFN4112F-R2 - 0803 SFC9020 [Solarstorm] + 0803 SFC9020 10G Ethernet Controller 1014 0478 2-port 10GbE Low-Latency (R7) 1014 0479 2-port 10GbE OpenOnload (R7) 1014 04a7 Solarflare 10Gb Low-latency Dual-port HBA (R7) @@ -19540,7 +19576,7 @@ 1924 7207 SFN5162F-R7 SFP+ Server Adapter 1924 7a06 SFN5152F-R6 SFP+ Server Adapter 1924 7a07 SFN5152F-R7 SFP+ Server Adapter - 0813 SFL9021 [Solarstorm] + 0813 SFL9021 10GBASE-T Ethernet Controller 1924 6100 SFN5121T-R0 10GBASE-T Server Adapter 1924 6102 SFN5121T-R2 10GBASE-T Server Adapter 1924 6103 SFN5121T-R3 10GBASE-T Server Adapter @@ -19549,7 +19585,7 @@ 1924 6904 SFN5111T-R4 10GBASE-T Server Adapter 1924 7104 SFN5161T-R4 10GBASE-T Server Adapter 1924 7904 SFN5151T-R4 10GBASE-T Server Adapter - 0903 SFC9120 + 0903 SFC9120 10G Ethernet Controller 1014 04cc SFN7122F-R2 2x10GbE SFP+ Flareon Ultra 1924 8002 SFN7122F-R1 SFP+ Server Adapter 1924 8003 SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter @@ -19561,11 +19597,11 @@ 1924 800d SFN7x02F-R3 Flareon 7000 Series 10G Adapter 1924 8010 SFA7942Q-R1 QSFP+ AOE Adapter 1924 8015 SFA7942Q-A5-0-R1 QSFP+ AOE Adapter - 0923 SFC9140 + 0923 SFC9140 10/40G Ethernet Controller 1924 800b SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter 1924 800e SFN7x42Q-R2 Flareon Ultra 7000 Series 10/40G Adapter 1924 800f SFN7xx4F-R1 Flareon Ultra 7000 Series 10G Adapter - 0a03 SFC9220 + 0a03 SFC9220 10/40G Ethernet Controller 1924 8011 SFN 8022-R1 Solarflare Flareon 8000 Series 10G Adapter 1924 8012 SFN8522-R1 Flareon Ultra 8000 Series 10G Adapter 1924 8013 SFN8042-R1 Solarflare Flareon 8000 Series 10/40G Adapter @@ -19574,10 +19610,11 @@ 1924 8017 SFN8522-R2 Flareon Ultra 8000 Series 10G Adapter 1924 8018 SFN8042-R2 Flareon 8000 Series 10/40G Adapter 1924 8019 SFN8542-R2 Flareon Ultra 8000 Series 10/40G Adapter - 1803 SFC9020 Virtual Function [Solarstorm] - 1813 SFL9021 Virtual Function [Solarstorm] - 1903 SFC9120 Virtual Function - 1923 SFC9140 Virtual Function + 1803 SFC9020 10G Ethernet Controller (Virtual Function) + 1813 SFL9021 10GBASE-T Ethernet Controller (Virtual Function) + 1903 SFC9120 10G Ethernet Controller (Virtual Function) + 1923 SFC9140 10/40G Ethernet Controller (Virtual Function) + 1a03 SFC9220 10/40G Ethernet Controller (Virtual Function) 6703 SFC4000 rev A iSCSI/Onload [Solarstorm] 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard] 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard] @@ -19864,6 +19901,7 @@ 5801 DDRdrive X1 5808 DDRdrive X8 dd52 DDRdrive X1-30 +19e5 Huawei Technologies Co., Ltd. 19e7 NET (Network Equipment Technologies) 1001 STIX DSP Card 1002 STIX - 1 Port T1/E1 Card @@ -20303,6 +20341,8 @@ 0303 Simulyzer-RT CompactPCI Serial PSI5-SIM-1 card 0304 Simulyzer-RT CompactPCI Serial PWR-ANA-1 card 0305 Simulyzer-RT CompactPCI Serial CAN-1 card +1cd7 Nanjing Magewell Electronics Co., Ltd. + 0010 Pro Capture Endpoint 1cdd secunet Security Networks AG 1ce4 Exablaze 0001 ExaNIC X4 @@ -20310,6 +20350,7 @@ 0003 ExaNIC X10 0004 ExaNIC X10-GM 0005 ExaNIC X40 + 0006 ExaNIC X10-HPT 1cf7 Subspace Dynamics 1d00 Pure Storage 1d1d CNEX Labs @@ -21336,6 +21377,27 @@ 0813 Moorestown SC DMA 0814 Moorestown LPE DMA 0815 Moorestown SSP0 + 0817 Medfield Serial IO I2C Controller #3 + 0818 Medfield Serial IO I2C Controller #4 + 0819 Medfield Serial IO I2C Controller #5 + 081a Medfield GPIO Controller [Core] + 081b Medfield Serial IO HSUART Controller #1 + 081c Medfield Serial IO HSUART Controller #2 + 081d Medfield Serial IO HSUART Controller #3 + 081e Medfield Serial IO HSUART DMA Controller + 081f Medfield GPIO Controller [AON] + 0820 Medfield SD Host Controller + 0821 Medfield SDIO Controller #1 + 0822 Medfield SDIO Controller #2 + 0823 Medfield eMMC Controller #0 + 0824 Medfield eMMC Controller #1 + 0827 Medfield Serial IO DMA Controller + 0828 Medfield Power Management Unit + 0829 Medfield USB Device Controller (OTG) + 082a Medfield SCU IPC + 082c Medfield Serial IO I2C Controller #0 + 082d Medfield Serial IO I2C Controller #1 + 082e Medfield Serial IO I2C Controller #2 0885 Centrino Wireless-N + WiMAX 6150 8086 1305 Centrino Wireless-N + WiMAX 6150 BGN 8086 1307 Centrino Wireless-N + WiMAX 6150 BG @@ -22445,6 +22507,18 @@ 1161 82806AA PCI64 Hub Advanced Programmable Interrupt Controller 8086 1161 82806AA PCI64 Hub APIC 1162 Xscale 80200 Big Endian Companion Chip + 1190 Merrifield SD/SDIO/eMMC Controller + 1191 Merrifield Serial IO HSUART Controller + 1192 Merrifield Serial IO HSUART DMA Controller + 1194 Merrifield Serial IO SPI Controller + 1195 Merrifield Serial IO I2C Controller + 1196 Merrifield Serial IO I2C Controller + 1199 Merrifield GPIO Controller + 119e Merrifield USB Device Controller (OTG) + 11a0 Merrifield SCU IPC + 11a1 Merrifield Power Management Unit + 11a2 Merrifield Serial IO DMA Controller + 11a5 Merrifield Serial IO PWM Controller 1200 IXP1200 Network Processor 172a 0000 AEP SSL Accelerator 1209 8255xER/82551IT Fast Ethernet Controller @@ -22917,8 +22991,8 @@ 103c 0000 HPE Ethernet 10/20Gb 2-port 660FLB Adapter 103c 22fe HPE Ethernet 10/20Gb 2-port 660FLB Adapter 1588 Ethernet Controller XL710 for 20GbE backplane - 103c 0000 HPE Ethernet 10/20Gb 2-port 660M Adapter - 103c 22ff HPE Ethernet 10/20Gb 2-port 660M Adapter + 103c 0000 Ethernet 10/20Gb 2-port 660M Adapter + 103c 22ff Ethernet 10/20Gb 2-port 660M Adapter 1589 Ethernet Controller X710/X557-AT 10GBASE-T 108e 0000 Quad Port 10GBase-T Adapter 108e 7b1c Quad Port 10GBase-T Adapter @@ -22951,12 +23025,17 @@ 15ac Ethernet Connection X552 10 GbE SFP+ 15ad Ethernet Connection X552/X557-AT 10GBASE-T 15ae Ethernet Connection X552 1000BASE-T + 15b0 Ethernet Connection X552 Backplane 15b4 X553 Virtual Function 15b5 DSL6340 USB 3.1 Controller [Alpine Ridge] 15b6 DSL6540 USB 3.1 Controller [Alpine Ridge] 15b7 Ethernet Connection (2) I219-LM 15b8 Ethernet Connection (2) I219-V 15b9 Ethernet Connection (3) I219-LM + 15bb Ethernet Connection (7) I219-LM + 15bc Ethernet Connection (7) I219-V + 15bd Ethernet Connection (6) I219-LM + 15be Ethernet Connection (6) I219-V 15bf JHL6240 Thunderbolt 3 NHI (Low Power) [Alpine Ridge LP 2016] 15c0 JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016] 15c5 X553 Virtual Function @@ -24258,6 +24337,9 @@ 24f4 Wireless 8260 # Snow Field Peak AC 8086 0030 Dual Band Wireless-AC 8260 + 24fd Wireless 8265 / 8275 +# Windstorm Peak + 8086 0010 Dual Band Wireless-AC 8265 2500 82820 820 (Camino) Chipset Host Bridge (MCH) 1028 0095 Precision Workstation 220 Chipset 1043 801c P3C-2000 system chipset @@ -25145,12 +25227,12 @@ 1028 01da OptiPlex 745 1462 7235 P965 Neo MS-7235 mainboard 2826 C600/X79 series chipset SATA RAID Controller - 1d49 0100 ThinkSystem RAID 331 - 1d49 0101 ThinkSystem RAID 331 - 1d49 0102 ThinkSystem RAID 331 - 1d49 0103 ThinkSystem RAID 331 - 1d49 0104 ThinkSystem RAID 331 - 1d49 0105 ThinkSystem RAID 331 + 1d49 0100 Intel RSTe SATA Software RAID + 1d49 0101 Intel RSTe SATA Software RAID + 1d49 0102 Intel RSTe SATA Software RAID + 1d49 0103 Intel RSTe SATA Software RAID + 1d49 0104 Intel RSTe SATA Software RAID + 1d49 0105 Intel RSTe SATA Software RAID 2827 C610/X99 series chipset sSATA Controller [RAID mode] 2828 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] 1028 01f3 Inspiron 1420 @@ -26950,41 +27032,41 @@ 530d 80310 (IOP) IO Processor 5845 QEMU NVM Express Controller 1af4 1100 QEMU Virtual Machine - 5a84 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Integrated Graphics Controller - 5a88 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Imaging Unit - 5a98 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Audio Cluster - 5a9a Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Trusted Execution Engine - 5aa2 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Integrated Sensor Hub - 5aa8 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series USB xHCI - 5aac Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #1 - 5aae Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #2 - 5ab0 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #3 - 5ab2 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #4 - 5ab4 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #5 - 5ab6 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #6 - 5ab8 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #7 - 5aba Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series I2C Controller #8 - 5abc Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series HSUART Controller #1 - 5abe Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series HSUART Controller #2 - 5ac0 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series HSUART Controller #3 - 5ac2 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SPI Controller #1 - 5ac4 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SPI Controller #2 - 5ac6 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SPI Controller #3 - 5ac8 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PWM Pin Controller - 5aca Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SDXC/MMC Host Controller - 5acc Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series eMMC Controller - 5ad0 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SDIO Controller - 5ad4 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SMBus Controller - 5ad6 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PCI Express Port B #1 - 5ad7 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PCI Express Port B #2 - 5ad8 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PCI Express Port A #1 - 5ad9 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PCI Express Port A #2 - 5ada Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PCI Express Port A #3 - 5adb Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series PCI Express Port A #4 - 5ae3 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SATA AHCI Controller - 5ae8 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Low Pin Count Interface - 5aee Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series HSUART Controller #4 - 5af0 Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Host Bridge + 5a84 Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller + 5a88 Celeron N3350/Pentium N4200/Atom E3900 Series Imaging Unit + 5a98 Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster + 5a9a Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine + 5aa2 Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Sensor Hub + 5aa8 Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI + 5aac Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #1 + 5aae Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #2 + 5ab0 Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #3 + 5ab2 Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #4 + 5ab4 Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #5 + 5ab6 Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #6 + 5ab8 Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #7 + 5aba Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #8 + 5abc Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #1 + 5abe Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #2 + 5ac0 Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #3 + 5ac2 Celeron N3350/Pentium N4200/Atom E3900 Series SPI Controller #1 + 5ac4 Celeron N3350/Pentium N4200/Atom E3900 Series SPI Controller #2 + 5ac6 Celeron N3350/Pentium N4200/Atom E3900 Series SPI Controller #3 + 5ac8 Celeron N3350/Pentium N4200/Atom E3900 Series PWM Pin Controller + 5aca Celeron N3350/Pentium N4200/Atom E3900 Series SDXC/MMC Host Controller + 5acc Celeron N3350/Pentium N4200/Atom E3900 Series eMMC Controller + 5ad0 Celeron N3350/Pentium N4200/Atom E3900 Series SDIO Controller + 5ad4 Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller + 5ad6 Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #1 + 5ad7 Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #2 + 5ad8 Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #1 + 5ad9 Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #2 + 5ada Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #3 + 5adb Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #4 + 5ae3 Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller + 5ae8 Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface + 5aee Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #4 + 5af0 Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge 65c0 5100 Chipset Memory Controller Hub 65e2 5100 Chipset PCI Express x4 Port 2 65e3 5100 Chipset PCI Express x4 Port 3 @@ -27826,6 +27908,25 @@ a243 Lewisburg LPC or eSPI Controller a252 Lewisburg SSATA Controller [AHCI mode] a256 Lewisburg SSATA Controller [RAID mode] + a282 200 Series PCH SATA controller [AHCI mode] + a294 200 Series PCH PCI Express Root Port #1 + a2a1 200 Series PCH PMC + a2a3 200 Series PCH SMBus Controller + a2a7 200 Series PCH Serial IO UART Controller #0 + a2a8 200 Series PCH Serial IO UART Controller #1 + a2a9 200 Series PCH Serial IO SPI Controller #0 + a2aa 200 Series PCH Serial IO SPI Controller #1 + a2af 200 Series PCH USB 3.0 xHCI Controller + a2b1 200 Series PCH Thermal Subsystem + a2ba 200 Series PCH CSME HECI #1 + a2bb 200 Series PCH CSME HECI #2 + a2c6 200 Series PCH LPC Controller + a2e0 200 Series PCH Serial IO I2C Controller #0 + a2e1 200 Series PCH Serial IO I2C Controller #1 + a2e2 200 Series PCH Serial IO I2C Controller #2 + a2e3 200 Series PCH Serial IO I2C Controller #3 + a2e6 200 Series PCH Serial IO UART Controller #2 + a2f0 200 Series PCH HD Audio a620 6400/6402 Advanced Memory Buffer (AMB) abc0 Omni-Path Fabric Switch Silicon 100 Series b152 21152 PCI-to-PCI Bridge @@ -28605,6 +28706,7 @@ f1d0 AJA Video cafe Kona SD cfee Xena LS/SD-22-DA/SD-DA daff KONA LHi + db09 Corvid 24 dcaf Kona HD dfee Xena HD-DA efac Xena SD-MM/SD-22-MM Modified: projects/clang400-import/share/mk/bsd.README ============================================================================== --- projects/clang400-import/share/mk/bsd.README Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/share/mk/bsd.README Mon Jan 9 19:25:49 2017 (r311808) @@ -410,6 +410,63 @@ If foo has multiple source files, add th =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +The include file, , handles building MIB modules for bsnmpd +from one or more source files, along with their manual pages. It has a +limited number of suffixes, consistent with the current needs of the BSD +tree. + +bsd.snmpmod.mk leverages bsd.lib.mk for building MIB modules and +bsd.files.mk for installing MIB description and definition files. + +It has no additional targets. + +It sets/uses the following variables: + +BMIBS The MIB definitions to install. + +BMIBSDIR The directory where the MIB definitions are installed. + This defaults to `${SHAREDIR}/snmp/mibs`. + +DEFS The MIB description files to install. + +DEFSDIR The directory where MIB description files are installed. + This defaults to `${SHAREDIR}/snmp/defs`. + +EXTRAMIBDEFS Extra MIB description files to use as input when + generating ${MOD}_oid.h and ${MOD}_tree.[ch]. + +EXTRAMIBSYMS Extra MIB definition files used only for extracting + symbols. + + EXTRAMIBSYMS are useful when resolving inter-module + dependencies and are useful with files containing only + enum-definitions. + + See ${MOD}_oid.h for more details. + +MOD The bsnmpd module name. + +XSYM MIB names to extract symbols for. See ${MOD}_oid.h for + more details. + +It generates the following files: + +${MOD}_tree.c A source file and header which programmatically describes +${MOD}_tree.h the MIB (type, OID name, ACCESS attributes, etc). + + The files are generated via "gensnmptree -p". + + See gensnmptree(1) for more details. + +${MOD}_oid.h A header which programmatically describes the MIB root and + MIB tables. + + The files are generated via "gensnmptree -e". + + See gensnmptree(1) for more details. + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + The include file contains the default targets for building subdirectories. It has the same seven targets as : all, clean, cleandir, depend, install, lint, and tags. For all of the directories Modified: projects/clang400-import/sys/arm/ti/ti_sdhci.c ============================================================================== --- projects/clang400-import/sys/arm/ti/ti_sdhci.c Mon Jan 9 19:22:29 2017 (r311807) +++ projects/clang400-import/sys/arm/ti/ti_sdhci.c Mon Jan 9 19:25:49 2017 (r311808) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "sdhci_if.h" #include @@ -61,7 +62,7 @@ __FBSDID("$FreeBSD$"); struct ti_sdhci_softc { device_t dev; - device_t gpio_dev; + struct sdhci_fdt_gpio * gpio; struct resource * mem_res; struct resource * irq_res; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Jan 9 19:37:18 2017 Return-Path: Delivered-To: svn-src-projects@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 96E94CA610E for ; Mon, 9 Jan 2017 19:37:18 +0000 (UTC) (envelope-from dim@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 597331E34; Mon, 9 Jan 2017 19:37:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09JbHNs050068; Mon, 9 Jan 2017 19:37:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09JbH93050066; Mon, 9 Jan 2017 19:37:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701091937.v09JbH93050066@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 19:37:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311810 - in projects/clang400-import: lib/libc++ tools/build/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 19:37:18 -0000 Author: dim Date: Mon Jan 9 19:37:17 2017 New Revision: 311810 URL: https://svnweb.freebsd.org/changeset/base/311810 Log: Add additional libc++ 4.0.0 headers. Modified: projects/clang400-import/lib/libc++/Makefile projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc Modified: projects/clang400-import/lib/libc++/Makefile ============================================================================== --- projects/clang400-import/lib/libc++/Makefile Mon Jan 9 19:32:57 2017 (r311809) +++ projects/clang400-import/lib/libc++/Makefile Mon Jan 9 19:37:17 2017 (r311810) @@ -80,6 +80,7 @@ STD_HEADERS= __bit_reference\ __functional_base\ __functional_base_03\ __hash_table\ + __libcpp_version\ __locale\ __mutex_base\ __nullptr\ @@ -87,12 +88,14 @@ STD_HEADERS= __bit_reference\ __split_buffer\ __sso_allocator\ __std_stream\ + __string\ __threading_support\ __tree\ __tuple\ __undef___deallocate\ __undef_min_max\ algorithm\ + any\ array\ atomic\ bitset\ @@ -143,14 +146,17 @@ STD_HEADERS= __bit_reference\ istream\ iterator\ limits\ + limits.h\ list\ locale\ + locale.h\ map\ math.h\ memory\ mutex\ new\ numeric\ + optional\ ostream\ queue\ random\ @@ -165,11 +171,13 @@ STD_HEADERS= __bit_reference\ stdbool.h\ stddef.h\ stdexcept\ + stdint.h\ stdio.h\ stdlib.h\ streambuf\ string\ string.h\ + string_view\ strstream\ system_error\ tgmath.h\ @@ -182,6 +190,7 @@ STD_HEADERS= __bit_reference\ unordered_set\ utility\ valarray\ + variant\ vector\ wchar.h\ wctype.h @@ -213,6 +222,7 @@ EXP_HEADERS= __config\ list\ map\ memory_resource\ + numeric\ optional\ propagate_const\ ratio\ Modified: projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc Mon Jan 9 19:32:57 2017 (r311809) +++ projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc Mon Jan 9 19:37:17 2017 (r311810) @@ -4452,6 +4452,7 @@ OLD_FILES+=usr/include/c++/v1/__function OLD_FILES+=usr/include/c++/v1/__functional_base OLD_FILES+=usr/include/c++/v1/__functional_base_03 OLD_FILES+=usr/include/c++/v1/__hash_table +OLD_FILES+=usr/include/c++/v1/__libcpp_version OLD_FILES+=usr/include/c++/v1/__locale OLD_FILES+=usr/include/c++/v1/__mutex_base OLD_FILES+=usr/include/c++/v1/__nullptr @@ -4459,12 +4460,14 @@ OLD_FILES+=usr/include/c++/v1/__refstrin OLD_FILES+=usr/include/c++/v1/__split_buffer OLD_FILES+=usr/include/c++/v1/__sso_allocator OLD_FILES+=usr/include/c++/v1/__std_stream +OLD_FILES+=usr/include/c++/v1/__string OLD_FILES+=usr/include/c++/v1/__threading_support OLD_FILES+=usr/include/c++/v1/__tree OLD_FILES+=usr/include/c++/v1/__tuple OLD_FILES+=usr/include/c++/v1/__undef___deallocate OLD_FILES+=usr/include/c++/v1/__undef_min_max OLD_FILES+=usr/include/c++/v1/algorithm +OLD_FILES+=usr/include/c++/v1/any OLD_FILES+=usr/include/c++/v1/array OLD_FILES+=usr/include/c++/v1/atomic OLD_FILES+=usr/include/c++/v1/bitset @@ -4547,14 +4550,18 @@ OLD_FILES+=usr/include/c++/v1/iostream OLD_FILES+=usr/include/c++/v1/istream OLD_FILES+=usr/include/c++/v1/iterator OLD_FILES+=usr/include/c++/v1/limits +OLD_FILES+=usr/include/c++/v1/limits.h OLD_FILES+=usr/include/c++/v1/list OLD_FILES+=usr/include/c++/v1/locale +OLD_FILES+=usr/include/c++/v1/locale.h OLD_FILES+=usr/include/c++/v1/map OLD_FILES+=usr/include/c++/v1/math.h OLD_FILES+=usr/include/c++/v1/memory OLD_FILES+=usr/include/c++/v1/mutex OLD_FILES+=usr/include/c++/v1/new OLD_FILES+=usr/include/c++/v1/numeric +OLD_FILES+=usr/include/c++/v1/numeric +OLD_FILES+=usr/include/c++/v1/optional OLD_FILES+=usr/include/c++/v1/ostream OLD_FILES+=usr/include/c++/v1/queue OLD_FILES+=usr/include/c++/v1/random @@ -4569,11 +4576,13 @@ OLD_FILES+=usr/include/c++/v1/stack OLD_FILES+=usr/include/c++/v1/stdbool.h OLD_FILES+=usr/include/c++/v1/stddef.h OLD_FILES+=usr/include/c++/v1/stdexcept +OLD_FILES+=usr/include/c++/v1/stdint.h OLD_FILES+=usr/include/c++/v1/stdio.h OLD_FILES+=usr/include/c++/v1/stdlib.h OLD_FILES+=usr/include/c++/v1/streambuf OLD_FILES+=usr/include/c++/v1/string OLD_FILES+=usr/include/c++/v1/string.h +OLD_FILES+=usr/include/c++/v1/string_view OLD_FILES+=usr/include/c++/v1/strstream OLD_FILES+=usr/include/c++/v1/system_error OLD_FILES+=usr/include/c++/v1/tgmath.h @@ -4587,6 +4596,7 @@ OLD_FILES+=usr/include/c++/v1/tr1/__func OLD_FILES+=usr/include/c++/v1/tr1/__functional_base OLD_FILES+=usr/include/c++/v1/tr1/__functional_base_03 OLD_FILES+=usr/include/c++/v1/tr1/__hash_table +OLD_FILES+=usr/include/c++/v1/tr1/__libcpp_version OLD_FILES+=usr/include/c++/v1/tr1/__locale OLD_FILES+=usr/include/c++/v1/tr1/__mutex_base OLD_FILES+=usr/include/c++/v1/tr1/__nullptr @@ -4594,12 +4604,14 @@ OLD_FILES+=usr/include/c++/v1/tr1/__refs OLD_FILES+=usr/include/c++/v1/tr1/__split_buffer OLD_FILES+=usr/include/c++/v1/tr1/__sso_allocator OLD_FILES+=usr/include/c++/v1/tr1/__std_stream +OLD_FILES+=usr/include/c++/v1/tr1/__string OLD_FILES+=usr/include/c++/v1/tr1/__threading_support OLD_FILES+=usr/include/c++/v1/tr1/__tree OLD_FILES+=usr/include/c++/v1/tr1/__tuple OLD_FILES+=usr/include/c++/v1/tr1/__undef___deallocate OLD_FILES+=usr/include/c++/v1/tr1/__undef_min_max OLD_FILES+=usr/include/c++/v1/tr1/algorithm +OLD_FILES+=usr/include/c++/v1/tr1/any OLD_FILES+=usr/include/c++/v1/tr1/array OLD_FILES+=usr/include/c++/v1/tr1/atomic OLD_FILES+=usr/include/c++/v1/tr1/bitset @@ -4650,14 +4662,18 @@ OLD_FILES+=usr/include/c++/v1/tr1/iostre OLD_FILES+=usr/include/c++/v1/tr1/istream OLD_FILES+=usr/include/c++/v1/tr1/iterator OLD_FILES+=usr/include/c++/v1/tr1/limits +OLD_FILES+=usr/include/c++/v1/tr1/limits.h OLD_FILES+=usr/include/c++/v1/tr1/list OLD_FILES+=usr/include/c++/v1/tr1/locale +OLD_FILES+=usr/include/c++/v1/tr1/locale.h OLD_FILES+=usr/include/c++/v1/tr1/map OLD_FILES+=usr/include/c++/v1/tr1/math.h OLD_FILES+=usr/include/c++/v1/tr1/memory OLD_FILES+=usr/include/c++/v1/tr1/mutex OLD_FILES+=usr/include/c++/v1/tr1/new OLD_FILES+=usr/include/c++/v1/tr1/numeric +OLD_FILES+=usr/include/c++/v1/tr1/numeric +OLD_FILES+=usr/include/c++/v1/tr1/optional OLD_FILES+=usr/include/c++/v1/tr1/ostream OLD_FILES+=usr/include/c++/v1/tr1/queue OLD_FILES+=usr/include/c++/v1/tr1/random @@ -4672,11 +4688,13 @@ OLD_FILES+=usr/include/c++/v1/tr1/stack OLD_FILES+=usr/include/c++/v1/tr1/stdbool.h OLD_FILES+=usr/include/c++/v1/tr1/stddef.h OLD_FILES+=usr/include/c++/v1/tr1/stdexcept +OLD_FILES+=usr/include/c++/v1/tr1/stdint.h OLD_FILES+=usr/include/c++/v1/tr1/stdio.h OLD_FILES+=usr/include/c++/v1/tr1/stdlib.h OLD_FILES+=usr/include/c++/v1/tr1/streambuf OLD_FILES+=usr/include/c++/v1/tr1/string OLD_FILES+=usr/include/c++/v1/tr1/string.h +OLD_FILES+=usr/include/c++/v1/tr1/string_view OLD_FILES+=usr/include/c++/v1/tr1/strstream OLD_FILES+=usr/include/c++/v1/tr1/system_error OLD_FILES+=usr/include/c++/v1/tr1/tgmath.h @@ -4689,6 +4707,7 @@ OLD_FILES+=usr/include/c++/v1/tr1/unorde OLD_FILES+=usr/include/c++/v1/tr1/unordered_set OLD_FILES+=usr/include/c++/v1/tr1/utility OLD_FILES+=usr/include/c++/v1/tr1/valarray +OLD_FILES+=usr/include/c++/v1/tr1/variant OLD_FILES+=usr/include/c++/v1/tr1/vector OLD_FILES+=usr/include/c++/v1/tr1/wchar.h OLD_FILES+=usr/include/c++/v1/tr1/wctype.h @@ -4703,6 +4722,7 @@ OLD_FILES+=usr/include/c++/v1/unwind-ita OLD_FILES+=usr/include/c++/v1/unwind.h OLD_FILES+=usr/include/c++/v1/utility OLD_FILES+=usr/include/c++/v1/valarray +OLD_FILES+=usr/include/c++/v1/variant OLD_FILES+=usr/include/c++/v1/vector OLD_FILES+=usr/include/c++/v1/wchar.h OLD_FILES+=usr/include/c++/v1/wctype.h From owner-svn-src-projects@freebsd.org Mon Jan 9 19:42:23 2017 Return-Path: Delivered-To: svn-src-projects@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 A894DCA63CF for ; Mon, 9 Jan 2017 19:42:23 +0000 (UTC) (envelope-from dim@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 7A59F153B; Mon, 9 Jan 2017 19:42:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09JgMcv054144; Mon, 9 Jan 2017 19:42:22 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09JgMDJ054143; Mon, 9 Jan 2017 19:42:22 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701091942.v09JgMDJ054143@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 19:42:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311812 - projects/clang400-import/usr.sbin/mfiutil X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 19:42:23 -0000 Author: dim Date: Mon Jan 9 19:42:22 2017 New Revision: 311812 URL: https://svnweb.freebsd.org/changeset/base/311812 Log: Merge ^/head r311808 through r311811. Modified: projects/clang400-import/usr.sbin/mfiutil/mfi_evt.c Directory Properties: projects/clang400-import/ (props changed) Modified: projects/clang400-import/usr.sbin/mfiutil/mfi_evt.c ============================================================================== --- projects/clang400-import/usr.sbin/mfiutil/mfi_evt.c Mon Jan 9 19:39:35 2017 (r311811) +++ projects/clang400-import/usr.sbin/mfiutil/mfi_evt.c Mon Jan 9 19:42:22 2017 (r311812) @@ -540,6 +540,7 @@ show_events(int ac, char **av) char *cp; ssize_t size; uint32_t seq, start, stop; + uint16_t locale; uint8_t status; int ch, error, fd, num_events, verbose; u_int i; @@ -580,12 +581,13 @@ show_events(int ac, char **av) } break; case 'l': - if (parse_locale(optarg, &filter.members.locale) < 0) { + if (parse_locale(optarg, &locale) < 0) { error = errno; warn("Error parsing event locale"); close(fd); return (error); } + filter.members.locale = locale; break; case 'n': val = strtol(optarg, &cp, 0); From owner-svn-src-projects@freebsd.org Mon Jan 9 22:32:22 2017 Return-Path: Delivered-To: svn-src-projects@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 ADB9FCA7E27 for ; Mon, 9 Jan 2017 22:32:22 +0000 (UTC) (envelope-from dim@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 580CF126D; Mon, 9 Jan 2017 22:32:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09MWLlX024336; Mon, 9 Jan 2017 22:32:21 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09MWKPO024321; Mon, 9 Jan 2017 22:32:20 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701092232.v09MWKPO024321@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 22:32:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311833 - in projects/clang400-import: contrib/llvm/include/llvm/Analysis contrib/llvm/include/llvm/CodeGen contrib/llvm/include/llvm/DebugInfo/MSF contrib/llvm/include/llvm/ExecutionEn... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 22:32:22 -0000 Author: dim Date: Mon Jan 9 22:32:19 2017 New Revision: 311833 URL: https://svnweb.freebsd.org/changeset/base/311833 Log: Merge llvm, clang, lld and lldb trunk r291476. Added: projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp - copied unchanged from r311829, vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorPastEndChecker.cpp - copied unchanged from r311829, vendor/clang/dist/lib/StaticAnalyzer/Checkers/IteratorPastEndChecker.cpp Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/MSF/StreamArray.h projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h projects/clang400-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h projects/clang400-import/contrib/llvm/include/llvm/IR/User.h projects/clang400-import/contrib/llvm/include/llvm/Support/Path.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/IPO.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h projects/clang400-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp projects/clang400-import/contrib/llvm/lib/Analysis/LoopInfo.cpp projects/clang400-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp projects/clang400-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang400-import/contrib/llvm/lib/Analysis/ValueTracking.cpp projects/clang400-import/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp projects/clang400-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp projects/clang400-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h projects/clang400-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp projects/clang400-import/contrib/llvm/lib/Object/MachOObjectFile.cpp projects/clang400-import/contrib/llvm/lib/Object/ModuleSummaryIndexObjectFile.cpp projects/clang400-import/contrib/llvm/lib/Support/CommandLine.cpp projects/clang400-import/contrib/llvm/lib/Support/Path.cpp projects/clang400-import/contrib/llvm/lib/Support/TarWriter.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h projects/clang400-import/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp projects/clang400-import/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/AVR/AVRISelLowering.h projects/clang400-import/contrib/llvm/lib/Target/BPF/BPFInstrInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp projects/clang400-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp projects/clang400-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp projects/clang400-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp projects/clang400-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp projects/clang400-import/contrib/llvm/lib/Target/TargetMachineC.cpp projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/clang400-import/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp projects/clang400-import/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp projects/clang400-import/contrib/llvm/tools/clang/include/clang/AST/Expr.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def projects/clang400-import/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def projects/clang400-import/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Sema/Overload.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.h projects/clang400-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/InputFiles.h projects/clang400-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp projects/clang400-import/contrib/llvm/tools/lld/include/lld/Core/Reproduce.h projects/clang400-import/contrib/llvm/tools/lld/lib/Config/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/lib/Core/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/lib/Core/Reproduce.cpp projects/clang400-import/contrib/llvm/tools/lld/lib/Driver/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/lib/ReaderWriter/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp projects/clang400-import/contrib/llvm/tools/llvm-objdump/MachODump.cpp projects/clang400-import/lib/clang/include/clang/Basic/Version.inc projects/clang400-import/lib/clang/include/lld/Config/Version.inc projects/clang400-import/lib/clang/libclang/Makefile Directory Properties: projects/clang400-import/contrib/llvm/ (props changed) projects/clang400-import/contrib/llvm/tools/clang/ (props changed) projects/clang400-import/contrib/llvm/tools/lld/ (props changed) projects/clang400-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h Mon Jan 9 22:32:19 2017 (r311833) @@ -1491,6 +1491,8 @@ public: void print(raw_ostream &OS) const; void verify() const; + bool invalidate(Function &F, const PreservedAnalyses &PA, + FunctionAnalysisManager::Invalidator &Inv); /// Collect parametric terms occurring in step expressions (first step of /// delinearization). Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h Mon Jan 9 22:32:19 2017 (r311833) @@ -290,7 +290,7 @@ public: } /// Returns extension attribute kind to be used for i32 parameters - /// correpsonding to C-level int or unsigned int. May be zeroext, signext, + /// corresponding to C-level int or unsigned int. May be zeroext, signext, /// or none. Attribute::AttrKind getExtAttrForI32Param(bool Signed = true) const { if (Impl->ShouldExtI32Param) @@ -301,7 +301,7 @@ public: } /// Returns extension attribute kind to be used for i32 return values - /// correpsonding to C-level int or unsigned int. May be zeroext, signext, + /// corresponding to C-level int or unsigned int. May be zeroext, signext, /// or none. Attribute::AttrKind getExtAttrForI32Return(bool Signed = true) const { if (Impl->ShouldExtI32Return) Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h Mon Jan 9 22:32:19 2017 (r311833) @@ -308,6 +308,16 @@ public: // Iteration support for live in sets. These sets are kept in sorted // order by their register number. typedef LiveInVector::const_iterator livein_iterator; +#ifndef NDEBUG + /// Unlike livein_begin, this method does not check that the liveness + /// information is accurate. Still for debug purposes it may be useful + /// to have iterators that won't assert if the liveness information + /// is not current. + livein_iterator livein_begin_dbg() const { return LiveIns.begin(); } + iterator_range liveins_dbg() const { + return make_range(livein_begin_dbg(), livein_end()); + } +#endif livein_iterator livein_begin() const; livein_iterator livein_end() const { return LiveIns.end(); } bool livein_empty() const { return LiveIns.empty(); } Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h Mon Jan 9 22:32:19 2017 (r311833) @@ -148,8 +148,7 @@ class MachineFrameInfo { /// grouping overaligned allocas into a "secondary stack frame" and /// then only use a single alloca to allocate this frame and only a /// single virtual register to access it. Currently, without such an - /// optimization, each such alloca gets it's own dynamic - /// realignment. + /// optimization, each such alloca gets its own dynamic realignment. bool StackRealignable; /// Whether the function has the \c alignstack attribute. Modified: projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/MSF/StreamArray.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/MSF/StreamArray.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/MSF/StreamArray.h Mon Jan 9 22:32:19 2017 (r311833) @@ -11,6 +11,7 @@ #define LLVM_DEBUGINFO_MSF_STREAMARRAY_H #include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/iterator.h" #include "llvm/DebugInfo/MSF/StreamRef.h" #include "llvm/Support/Error.h" #include @@ -107,7 +108,10 @@ private: Extractor E; }; -template class VarStreamArrayIterator { +template +class VarStreamArrayIterator + : public iterator_facade_base, + std::forward_iterator_tag, ValueType> { typedef VarStreamArrayIterator IterType; typedef VarStreamArray ArrayType; @@ -144,41 +148,39 @@ public: return false; } - bool operator!=(const IterType &R) { return !(*this == R); } - const ValueType &operator*() const { assert(Array && !HasError); return ThisValue; } - IterType &operator++() { - // We are done with the current record, discard it so that we are - // positioned at the next record. - IterRef = IterRef.drop_front(ThisLen); - if (IterRef.getLength() == 0) { - // There is nothing after the current record, we must make this an end - // iterator. - moveToEnd(); - } else { - // There is some data after the current record. - auto EC = Extract(IterRef, ThisLen, ThisValue); - if (EC) { - consumeError(std::move(EC)); - markError(); - } else if (ThisLen == 0) { - // An empty record? Make this an end iterator. + IterType &operator+=(std::ptrdiff_t N) { + while (N > 0) { + // We are done with the current record, discard it so that we are + // positioned at the next record. + IterRef = IterRef.drop_front(ThisLen); + if (IterRef.getLength() == 0) { + // There is nothing after the current record, we must make this an end + // iterator. moveToEnd(); + return *this; + } else { + // There is some data after the current record. + auto EC = Extract(IterRef, ThisLen, ThisValue); + if (EC) { + consumeError(std::move(EC)); + markError(); + return *this; + } else if (ThisLen == 0) { + // An empty record? Make this an end iterator. + moveToEnd(); + return *this; + } } + --N; } return *this; } - IterType operator++(int) { - IterType Original = *this; - ++*this; - return Original; - } - private: void moveToEnd() { Array = nullptr; @@ -211,6 +213,16 @@ public: assert(Stream.getLength() % sizeof(T) == 0); } + bool operator==(const FixedStreamArray &Other) const { + return Stream == Other.Stream; + } + + bool operator!=(const FixedStreamArray &Other) const { + return !(*this == Other); + } + + FixedStreamArray &operator=(const FixedStreamArray &) = default; + const T &operator[](uint32_t Index) const { assert(Index < size()); uint32_t Off = Index * sizeof(T); @@ -226,6 +238,8 @@ public: uint32_t size() const { return Stream.getLength() / sizeof(T); } + bool empty() const { return size() == 0; } + FixedStreamArrayIterator begin() const { return FixedStreamArrayIterator(*this, 0); } @@ -240,36 +254,53 @@ private: ReadableStreamRef Stream; }; -template class FixedStreamArrayIterator { +template +class FixedStreamArrayIterator + : public iterator_facade_base, + std::random_access_iterator_tag, T> { + public: FixedStreamArrayIterator(const FixedStreamArray &Array, uint32_t Index) : Array(Array), Index(Index) {} - bool operator==(const FixedStreamArrayIterator &R) { - assert(&Array == &R.Array); - return Index == R.Index; + FixedStreamArrayIterator & + operator=(const FixedStreamArrayIterator &Other) { + Array = Other.Array; + Index = Other.Index; + return *this; } - bool operator!=(const FixedStreamArrayIterator &R) { - return !(*this == R); + const T &operator*() const { return Array[Index]; } + + bool operator==(const FixedStreamArrayIterator &R) const { + assert(Array == R.Array); + return (Index == R.Index) && (Array == R.Array); } - const T &operator*() const { return Array[Index]; } + FixedStreamArrayIterator &operator+=(std::ptrdiff_t N) { + Index += N; + return *this; + } - FixedStreamArrayIterator &operator++() { - assert(Index < Array.size()); - ++Index; + FixedStreamArrayIterator &operator-=(std::ptrdiff_t N) { + assert(Index >= N); + Index -= N; return *this; } - FixedStreamArrayIterator operator++(int) { - FixedStreamArrayIterator Original = *this; - ++*this; - return Original; + std::ptrdiff_t operator-(const FixedStreamArrayIterator &R) const { + assert(Array == R.Array); + assert(Index >= R.Index); + return Index - R.Index; + } + + bool operator<(const FixedStreamArrayIterator &RHS) const { + assert(Array == RHS.Array); + return Index < RHS.Index; } private: - const FixedStreamArray &Array; + FixedStreamArray Array; uint32_t Index; }; Modified: projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h Mon Jan 9 22:32:19 2017 (r311833) @@ -83,7 +83,7 @@ public: namespace remote { class OrcRemoteTargetRPCAPI - : public rpc::SingleThreadedRPC { + : public rpc::SingleThreadedRPCEndpoint { protected: class ResourceIdMgr { public: @@ -108,7 +108,7 @@ protected: public: // FIXME: Remove constructors once MSVC supports synthesizing move-ops. OrcRemoteTargetRPCAPI(rpc::RawByteChannel &C) - : rpc::SingleThreadedRPC(C, true) {} + : rpc::SingleThreadedRPCEndpoint(C, true) {} class CallIntVoid : public rpc::Function { Modified: projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h Mon Jan 9 22:32:19 2017 (r311833) @@ -702,7 +702,7 @@ public: /// sync. template -class RPCBase { +class RPCEndpointBase { protected: class OrcRPCInvalid : public Function { public: @@ -747,7 +747,7 @@ protected: public: /// Construct an RPC instance on a channel. - RPCBase(ChannelT &C, bool LazyAutoNegotiation) + RPCEndpointBase(ChannelT &C, bool LazyAutoNegotiation) : C(C), LazyAutoNegotiation(LazyAutoNegotiation) { // Hold ResponseId in a special variable, since we expect Response to be // called relatively frequently, and want to avoid the map lookup. @@ -788,15 +788,21 @@ public: return FnIdOrErr.takeError(); } - // Allocate a sequence number. - auto SeqNo = SequenceNumberMgr.getSequenceNumber(); - assert(!PendingResponses.count(SeqNo) && - "Sequence number already allocated"); + SequenceNumberT SeqNo; // initialized in locked scope below. + { + // Lock the pending responses map and sequence number manager. + std::lock_guard Lock(ResponsesMutex); + + // Allocate a sequence number. + SeqNo = SequenceNumberMgr.getSequenceNumber(); + assert(!PendingResponses.count(SeqNo) && + "Sequence number already allocated"); - // Install the user handler. - PendingResponses[SeqNo] = + // Install the user handler. + PendingResponses[SeqNo] = detail::createResponseHandler( std::move(Handler)); + } // Open the function call message. if (auto Err = C.startSendMessage(FnId, SeqNo)) { @@ -863,11 +869,33 @@ public: return detail::ReadArgs(Args...); } + /// Abandon all outstanding result handlers. + /// + /// This will call all currently registered result handlers to receive an + /// "abandoned" error as their argument. This is used internally by the RPC + /// in error situations, but can also be called directly by clients who are + /// disconnecting from the remote and don't or can't expect responses to their + /// outstanding calls. (Especially for outstanding blocking calls, calling + /// this function may be necessary to avoid dead threads). + void abandonPendingResponses() { + // Lock the pending responses map and sequence number manager. + std::lock_guard Lock(ResponsesMutex); + + for (auto &KV : PendingResponses) + KV.second->abandon(); + PendingResponses.clear(); + SequenceNumberMgr.reset(); + } + protected: // The LaunchPolicy type allows a launch policy to be specified when adding // a function handler. See addHandlerImpl. using LaunchPolicy = std::function)>; + FunctionIdT getInvalidFunctionId() const { + return FnIdAllocator.getInvalidId(); + } + /// Add the given handler to the handler map and make it available for /// autonegotiation and execution. template @@ -884,28 +912,32 @@ protected: wrapHandler(std::move(Handler), std::move(Launch)); } - // Abandon all outstanding results. - void abandonPendingResponses() { - for (auto &KV : PendingResponses) - KV.second->abandon(); - PendingResponses.clear(); - SequenceNumberMgr.reset(); - } - Error handleResponse(SequenceNumberT SeqNo) { - auto I = PendingResponses.find(SeqNo); - if (I == PendingResponses.end()) { - abandonPendingResponses(); - return orcError(OrcErrorCode::UnexpectedRPCResponse); + using Handler = typename decltype(PendingResponses)::mapped_type; + Handler PRHandler; + + { + // Lock the pending responses map and sequence number manager. + std::unique_lock Lock(ResponsesMutex); + auto I = PendingResponses.find(SeqNo); + + if (I != PendingResponses.end()) { + PRHandler = std::move(I->second); + PendingResponses.erase(I); + SequenceNumberMgr.releaseSequenceNumber(SeqNo); + } else { + // Unlock the pending results map to prevent recursive lock. + Lock.unlock(); + abandonPendingResponses(); + return orcError(OrcErrorCode::UnexpectedRPCResponse); + } } - auto PRHandler = std::move(I->second); - PendingResponses.erase(I); - SequenceNumberMgr.releaseSequenceNumber(SeqNo); + assert(PRHandler && + "If we didn't find a response handler we should have bailed out"); if (auto Err = PRHandler->handleResponse(C)) { abandonPendingResponses(); - SequenceNumberMgr.reset(); return Err; } @@ -915,7 +947,7 @@ protected: FunctionIdT handleNegotiate(const std::string &Name) { auto I = LocalFunctionIds.find(Name); if (I == LocalFunctionIds.end()) - return FnIdAllocator.getInvalidId(); + return getInvalidFunctionId(); return I->second; } @@ -938,7 +970,7 @@ protected: // If autonegotiation indicates that the remote end doesn't support this // function, return an unknown function error. - if (RemoteId == FnIdAllocator.getInvalidId()) + if (RemoteId == getInvalidFunctionId()) return orcError(OrcErrorCode::UnknownRPCFunction); // Autonegotiation succeeded and returned a valid id. Update the map and @@ -1012,6 +1044,7 @@ protected: std::map Handlers; + std::mutex ResponsesMutex; detail::SequenceNumberManager SequenceNumberMgr; std::map>> PendingResponses; @@ -1021,17 +1054,18 @@ protected: template -class MultiThreadedRPC - : public detail::RPCBase< - MultiThreadedRPC, ChannelT, - FunctionIdT, SequenceNumberT> { +class MultiThreadedRPCEndpoint + : public detail::RPCEndpointBase< + MultiThreadedRPCEndpoint, + ChannelT, FunctionIdT, SequenceNumberT> { private: using BaseClass = - detail::RPCBase, - ChannelT, FunctionIdT, SequenceNumberT>; + detail::RPCEndpointBase< + MultiThreadedRPCEndpoint, + ChannelT, FunctionIdT, SequenceNumberT>; public: - MultiThreadedRPC(ChannelT &C, bool LazyAutoNegotiation) + MultiThreadedRPCEndpoint(ChannelT &C, bool LazyAutoNegotiation) : BaseClass(C, LazyAutoNegotiation) {} /// The LaunchPolicy type allows a launch policy to be specified when adding @@ -1061,30 +1095,41 @@ public: std::move(Launch)); } + /// Add a class-method as a handler. + template + void addHandler(ClassT &Object, RetT (ClassT::*Method)(ArgTs...), + LaunchPolicy Launch = LaunchPolicy()) { + addHandler( + detail::MemberFnWrapper(Object, Method), + Launch); + } + /// Negotiate a function id for Func with the other end of the channel. - template Error negotiateFunction() { + template Error negotiateFunction(bool Retry = false) { using OrcRPCNegotiate = typename BaseClass::OrcRPCNegotiate; + // Check if we already have a function id... + auto I = this->RemoteFunctionIds.find(Func::getPrototype()); + if (I != this->RemoteFunctionIds.end()) { + // If it's valid there's nothing left to do. + if (I->second != this->getInvalidFunctionId()) + return Error::success(); + // If it's invalid and we can't re-attempt negotiation, throw an error. + if (!Retry) + return orcError(OrcErrorCode::UnknownRPCFunction); + } + + // We don't have a function id for Func yet, call the remote to try to + // negotiate one. if (auto RemoteIdOrErr = callB(Func::getPrototype())) { this->RemoteFunctionIds[Func::getPrototype()] = *RemoteIdOrErr; + if (*RemoteIdOrErr == this->getInvalidFunctionId()) + return orcError(OrcErrorCode::UnknownRPCFunction); return Error::success(); } else return RemoteIdOrErr.takeError(); } - /// Convenience method for negotiating multiple functions at once. - template Error negotiateFunctions() { - return negotiateFunction(); - } - - /// Convenience method for negotiating multiple functions at once. - template - Error negotiateFunctions() { - if (auto Err = negotiateFunction()) - return Err; - return negotiateFunctions(); - } - /// Return type for non-blocking call primitives. template using NonBlockingCallResult = typename detail::ResultTraits< @@ -1169,19 +1214,20 @@ public: template -class SingleThreadedRPC - : public detail::RPCBase< - SingleThreadedRPC, ChannelT, - FunctionIdT, SequenceNumberT> { +class SingleThreadedRPCEndpoint + : public detail::RPCEndpointBase< + SingleThreadedRPCEndpoint, + ChannelT, FunctionIdT, SequenceNumberT> { private: using BaseClass = - detail::RPCBase, - ChannelT, FunctionIdT, SequenceNumberT>; + detail::RPCEndpointBase< + SingleThreadedRPCEndpoint, + ChannelT, FunctionIdT, SequenceNumberT>; using LaunchPolicy = typename BaseClass::LaunchPolicy; public: - SingleThreadedRPC(ChannelT &C, bool LazyAutoNegotiation) + SingleThreadedRPCEndpoint(ChannelT &C, bool LazyAutoNegotiation) : BaseClass(C, LazyAutoNegotiation) {} template @@ -1197,29 +1243,31 @@ public: } /// Negotiate a function id for Func with the other end of the channel. - template Error negotiateFunction() { + template Error negotiateFunction(bool Retry = false) { using OrcRPCNegotiate = typename BaseClass::OrcRPCNegotiate; + // Check if we already have a function id... + auto I = this->RemoteFunctionIds.find(Func::getPrototype()); + if (I != this->RemoteFunctionIds.end()) { + // If it's valid there's nothing left to do. + if (I->second != this->getInvalidFunctionId()) + return Error::success(); + // If it's invalid and we can't re-attempt negotiation, throw an error. + if (!Retry) + return orcError(OrcErrorCode::UnknownRPCFunction); + } + + // We don't have a function id for Func yet, call the remote to try to + // negotiate one. if (auto RemoteIdOrErr = callB(Func::getPrototype())) { this->RemoteFunctionIds[Func::getPrototype()] = *RemoteIdOrErr; + if (*RemoteIdOrErr == this->getInvalidFunctionId()) + return orcError(OrcErrorCode::UnknownRPCFunction); return Error::success(); } else return RemoteIdOrErr.takeError(); } - /// Convenience method for negotiating multiple functions at once. - template Error negotiateFunctions() { - return negotiateFunction(); - } - - /// Convenience method for negotiating multiple functions at once. - template - Error negotiateFunctions() { - if (auto Err = negotiateFunction()) - return Err; - return negotiateFunctions(); - } - template typename detail::ResultTraits::ErrorReturnType @@ -1332,6 +1380,68 @@ private: uint32_t NumOutstandingCalls; }; +/// @brief Convenience class for grouping RPC Functions into APIs that can be +/// negotiated as a block. +/// +template +class APICalls { +public: + + /// @brief Test whether this API contains Function F. + template + class Contains { + public: + static const bool value = false; + }; + + /// @brief Negotiate all functions in this API. + template + static Error negotiate(RPCEndpoint &R) { + return Error::success(); + } +}; + +template +class APICalls { +public: + + template + class Contains { + public: + static const bool value = std::is_same::value | + APICalls::template Contains::value; + }; + + template + static Error negotiate(RPCEndpoint &R) { + if (auto Err = R.template negotiateFunction()) + return Err; + return APICalls::negotiate(R); + } + +}; + +template +class APICalls, Funcs...> { +public: + + template + class Contains { + public: + static const bool value = + APICalls::template Contains::value | + APICalls::template Contains::value; + }; + + template + static Error negotiate(RPCEndpoint &R) { + if (auto Err = APICalls::negotiate(R)) + return Err; + return APICalls::negotiate(R); + } + +}; + } // end namespace rpc } // end namespace orc } // end namespace llvm Modified: projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h Mon Jan 9 22:32:19 2017 (r311833) @@ -48,9 +48,7 @@ public: template Error startSendMessage(const FunctionIdT &FnId, const SequenceIdT &SeqNo) { writeLock.lock(); - if (auto Err = serializeSeq(*this, FnId, SeqNo)) - return Err; - return Error::success(); + return serializeSeq(*this, FnId, SeqNo); } /// Notify the channel that we're ending a message send. Modified: projects/clang400-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h Mon Jan 9 22:32:19 2017 (r311833) @@ -28,14 +28,14 @@ template <> struct ScalarEnumerationTrai template <> struct MappingTraits { static void mapping(IO &io, TypeTestResolution &res) { - io.mapRequired("Kind", res.TheKind); - io.mapRequired("SizeBitWidth", res.SizeBitWidth); + io.mapOptional("Kind", res.TheKind); + io.mapOptional("SizeBitWidth", res.SizeBitWidth); } }; template <> struct MappingTraits { static void mapping(IO &io, TypeIdSummary& summary) { - io.mapRequired("TTRes", summary.TTRes); + io.mapOptional("TTRes", summary.TTRes); } }; @@ -53,7 +53,7 @@ namespace yaml { template <> struct MappingTraits { static void mapping(IO &io, FunctionSummaryYaml& summary) { - io.mapRequired("TypeTests", summary.TypeTests); + io.mapOptional("TypeTests", summary.TypeTests); } }; @@ -100,8 +100,8 @@ template <> struct CustomMappingTraits struct MappingTraits { static void mapping(IO &io, ModuleSummaryIndex& index) { - io.mapRequired("GlobalValueMap", index.GlobalValueMap); - io.mapRequired("TypeIdMap", index.TypeIdMap); + io.mapOptional("GlobalValueMap", index.GlobalValueMap); + io.mapOptional("TypeIdMap", index.TypeIdMap); } }; Modified: projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/IR/PassManager.h Mon Jan 9 22:32:19 2017 (r311833) @@ -879,18 +879,22 @@ extern template class AnalysisManager FunctionAnalysisManager; -/// \brief A module analysis which acts as a proxy for a function analysis -/// manager. +/// \brief An analysis over an "outer" IR unit that provides access to an +/// analysis manager over an "inner" IR unit. The inner unit must be contained +/// in the outer unit. +/// +/// Fore example, InnerAnalysisManagerProxy is +/// an analysis over Modules (the "outer" unit) that provides access to a +/// Function analysis manager. The FunctionAnalysisManager is the "inner" +/// manager being proxied, and Functions are the "inner" unit. The inner/outer +/// relationship is valid because each Function is contained in one Module. +/// +/// If you're (transitively) within a pass manager for an IR unit U that +/// contains IR unit V, you should never use an analysis manager over V, except +/// via one of these proxies. /// -/// This primarily proxies invalidation information from the module analysis -/// manager and module pass manager to a function analysis manager. You should -/// never use a function analysis manager from within (transitively) a module -/// pass manager unless your parent module pass has received a proxy result -/// object for it. -/// -/// Note that the proxy's result is a move-only object and represents ownership -/// of the validity of the analyses in the \c FunctionAnalysisManager it -/// provides. +/// Note that the proxy's result is a move-only RAII object. The validity of +/// the analyses in the inner analysis manager is tied to its lifetime. template class InnerAnalysisManagerProxy : public AnalysisInfoMixin< @@ -926,23 +930,16 @@ public: /// \brief Accessor for the analysis manager. AnalysisManagerT &getManager() { return *InnerAM; } - /// \brief Handler for invalidation of the outer IR unit. + /// \brief Handler for invalidation of the outer IR unit, \c IRUnitT. /// - /// If this analysis itself is preserved, then we assume that the set of \c - /// IR units that the inner analysis manager controls hasn't changed and - /// thus we don't need to invalidate *all* cached data associated with any - /// \c IRUnitT* in the \c AnalysisManagerT. + /// If the proxy analysis itself is not preserved, we assume that the set of + /// inner IR objects contained in IRUnit may have changed. In this case, + /// we have to call \c clear() on the inner analysis manager, as it may now + /// have stale pointers to its inner IR objects. /// - /// Regardless of whether this analysis is marked as preserved, all of the - /// analyses in the \c AnalysisManagerT are potentially invalidated (for - /// the relevant inner set of their IR units) based on the set of preserved - /// analyses. - /// - /// Because this needs to understand the mapping from one IR unit to an - /// inner IR unit, this method isn't defined in the primary template. - /// Instead, each specialization of this template will need to provide an - /// explicit specialization of this method to handle that particular pair - /// of IR unit and inner AnalysisManagerT. + /// Regardless of whether the proxy analysis is marked as preserved, all of + /// the analyses in the inner analysis manager are potentially invalidated + /// based on the set of preserved analyses. bool invalidate( IRUnitT &IR, const PreservedAnalyses &PA, typename AnalysisManager::Invalidator &Inv); @@ -956,13 +953,9 @@ public: /// \brief Run the analysis pass and create our proxy result object. /// - /// This doesn't do any interesting work, it is primarily used to insert our - /// proxy result object into the module analysis cache so that we can proxy - /// invalidation to the function analysis manager. - /// - /// In debug builds, it will also assert that the analysis manager is empty - /// as no queries should arrive at the function analysis manager prior to - /// this analysis being requested. + /// This doesn't do any interesting work; it is primarily used to insert our + /// proxy result object into the outer analysis cache so that we can proxy + /// invalidation to the inner analysis manager. Result run(IRUnitT &IR, AnalysisManager &AM, ExtraArgTs...) { return Result(*InnerAM); @@ -996,22 +989,24 @@ bool FunctionAnalysisManagerModuleProxy: extern template class InnerAnalysisManagerProxy; -/// \brief A function analysis which acts as a proxy for a module analysis -/// manager. -/// -/// This primarily provides an accessor to a parent module analysis manager to -/// function passes. Only the const interface of the module analysis manager is -/// provided to indicate that once inside of a function analysis pass you -/// cannot request a module analysis to actually run. Instead, the user must -/// rely on the \c getCachedResult API. -/// -/// The invalidation provided by this proxy involves tracking when an -/// invalidation event in the outer analysis manager needs to trigger an -/// invalidation of a particular analysis on this IR unit. -/// -/// Because outer analyses aren't invalidated while these IR units are being -/// precessed, we have to register and handle these as deferred invalidation -/// events. +/// \brief An analysis over an "inner" IR unit that provides access to an +/// analysis manager over a "outer" IR unit. The inner unit must be contained +/// in the outer unit. +/// +/// For example OuterAnalysisManagerProxy is an +/// analysis over Functions (the "inner" unit) which provides access to a Module +/// analysis manager. The ModuleAnalysisManager is the "outer" manager being +/// proxied, and Modules are the "outer" IR unit. The inner/outer relationship +/// is valid because each Function is contained in one Module. +/// +/// This proxy only exposes the const interface of the outer analysis manager, +/// to indicate that you cannot cause an outer analysis to run from within an +/// inner pass. Instead, you must rely on the \c getCachedResult API. +/// +/// This proxy doesn't manage invalidation in any way -- that is handled by the +/// recursive return path of each layer of the pass manager. A consequence of +/// this is the outer analyses may be stale. We invalidate the outer analyses +/// only when we're done running passes over the inner IR units. template class OuterAnalysisManagerProxy : public AnalysisInfoMixin< @@ -1024,7 +1019,7 @@ public: const AnalysisManagerT &getManager() const { return *AM; } - /// \brief Handle invalidation by ignoring it, this pass is immutable. + /// \brief Handle invalidation by ignoring it; this pass is immutable. bool invalidate( IRUnitT &, const PreservedAnalyses &, typename AnalysisManager::Invalidator &) { @@ -1089,18 +1084,15 @@ AnalysisKey extern template class OuterAnalysisManagerProxy; -/// Provide the \c ModuleAnalysisManager to \c Fucntion proxy. +/// Provide the \c ModuleAnalysisManager to \c Function proxy. typedef OuterAnalysisManagerProxy ModuleAnalysisManagerFunctionProxy; /// \brief Trivial adaptor that maps from a module to its functions. /// /// Designed to allow composition of a FunctionPass(Manager) and -/// a ModulePassManager. Note that if this pass is constructed with a pointer -/// to a \c ModuleAnalysisManager it will run the -/// \c FunctionAnalysisManagerModuleProxy analysis prior to running the function -/// pass over the module to enable a \c FunctionAnalysisManager to be used -/// within this run safely. +/// a ModulePassManager, by running the FunctionPass(Manager) over every +/// function in the module. /// /// Function passes run within this adaptor can rely on having exclusive access /// to the function they are run over. They should not read or modify any other @@ -1115,6 +1107,10 @@ typedef OuterAnalysisManagerProxy class ModuleToFunctionPassAdaptor : public PassInfoMixin> { @@ -1124,7 +1120,6 @@ public: /// \brief Runs the function pass across every function in the module. PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM) { - // Setup the function analysis manager from its proxy. FunctionAnalysisManager &FAM = AM.getResult(M).getManager(); @@ -1145,10 +1140,11 @@ public: PA.intersect(std::move(PassPA)); } - // By definition we preserve the proxy. We also preserve all analyses on - // Function units. This precludes *any* invalidation of function analyses - // by the proxy, but that's OK because we've taken care to invalidate - // analyses in the function analysis manager incrementally above. + // The FunctionAnalysisManagerModuleProxy is preserved because (we assume) + // the function passes we ran didn't add or remove any functions. + // + // We also preserve all analyses on Functions, because we did all the + // invalidation we needed to do above. PA.preserveSet>(); PA.preserve(); return PA; @@ -1166,7 +1162,7 @@ createModuleToFunctionPassAdaptor(Functi return ModuleToFunctionPassAdaptor(std::move(Pass)); } -/// \brief A template utility pass to force an analysis result to be available. +/// \brief A utility pass template to force an analysis result to be available. /// /// If there are extra arguments at the pass's run level there may also be /// extra arguments to the analysis manager's \c getResult routine. We can't @@ -1196,17 +1192,14 @@ struct RequireAnalysisPass } }; -/// \brief A template utility pass to force an analysis result to be -/// invalidated. -/// -/// This is a no-op pass which simply forces a specific analysis result to be -/// invalidated when it is run. +/// \brief A no-op pass template which simply forces a specific analysis result +/// to be invalidated. template struct InvalidateAnalysisPass : PassInfoMixin> { /// \brief Run this pass over some unit of IR. /// - /// This pass can be run over any unit of IR and use any analysis manager + /// This pass can be run over any unit of IR and use any analysis manager, /// provided they satisfy the basic API requirements. When this pass is /// created, these methods can be instantiated to satisfy whatever the /// context requires. @@ -1218,10 +1211,10 @@ struct InvalidateAnalysisPass } }; -/// \brief A utility pass that does nothing but preserves no analyses. +/// \brief A utility pass that does nothing, but preserves no analyses. /// -/// As a consequence fo not preserving any analyses, this pass will force all -/// analysis passes to be re-run to produce fresh results if any are needed. +/// Because this preserves no analyses, any analysis passes queried after this +/// pass runs will recompute fresh results. struct InvalidateAllAnalysesPass : PassInfoMixin { /// \brief Run this pass over some unit of IR. template Modified: projects/clang400-import/contrib/llvm/include/llvm/IR/User.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/IR/User.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/IR/User.h Mon Jan 9 22:32:19 2017 (r311833) @@ -238,6 +238,26 @@ public: return make_range(value_op_begin(), value_op_end()); } + struct const_value_op_iterator + : iterator_adaptor_base { + explicit const_value_op_iterator(const Use *U = nullptr) : + iterator_adaptor_base(U) {} + const Value *operator*() const { return *I; } + const Value *operator->() const { return operator*(); } + }; + + const_value_op_iterator value_op_begin() const { + return const_value_op_iterator(op_begin()); + } + const_value_op_iterator value_op_end() const { + return const_value_op_iterator(op_end()); + } + iterator_range operand_values() const { + return make_range(value_op_begin(), value_op_end()); + } + /// \brief Drop all references to operands. /// /// This function is in charge of "letting go" of all objects that this User Modified: projects/clang400-import/contrib/llvm/include/llvm/Support/Path.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Support/Path.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/Support/Path.h Mon Jan 9 22:32:19 2017 (r311833) @@ -207,6 +207,14 @@ void native(const Twine &path, SmallVect /// @param path A path that is transformed to native format. void native(SmallVectorImpl &path); +/// @brief Replaces backslashes with slashes if Windows. +/// +/// @param path processed path +/// @result The result of replacing backslashes with forward slashes if Windows. +/// On Unix, this function is a no-op because backslashes are valid path +/// chracters. +std::string convert_to_slash(StringRef path); + /// @} /// @name Lexical Observers /// @{ Modified: projects/clang400-import/contrib/llvm/include/llvm/Transforms/IPO.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Transforms/IPO.h Mon Jan 9 22:20:09 2017 (r311832) +++ projects/clang400-import/contrib/llvm/include/llvm/Transforms/IPO.h Mon Jan 9 22:32:19 2017 (r311833) @@ -215,9 +215,20 @@ ModulePass *createMetaRenamerPass(); /// manager. ModulePass *createBarrierNoopPass(); +/// What to do with the summary when running the LowerTypeTests pass. +enum class LowerTypeTestsSummaryAction { + None, ///< Do nothing. + Import, ///< Import typeid resolutions from summary and globals. + Export, ///< Export typeid resolutions to summary and globals. +}; + /// \brief This pass lowers type metadata and the llvm.type.test intrinsic to /// bitsets. -ModulePass *createLowerTypeTestsPass(); +/// \param Action What to do with the summary passed as Index. +/// \param Index The summary to use for importing or exporting, this can be null +/// when Action is None. +ModulePass *createLowerTypeTestsPass(LowerTypeTestsSummaryAction Action, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Jan 9 22:41:56 2017 Return-Path: Delivered-To: svn-src-projects@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 570ADCA810D for ; Mon, 9 Jan 2017 22:41:56 +0000 (UTC) (envelope-from dim@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 2000517A8; Mon, 9 Jan 2017 22:41:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09MftIp028434; Mon, 9 Jan 2017 22:41:55 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09MfrZh028418; Mon, 9 Jan 2017 22:41:53 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701092241.v09MfrZh028418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 22:41:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311834 - in projects/clang400-import: . contrib/libc++ contrib/libc++/include contrib/libc++/include/experimental contrib/libc++/src contrib/libc++/src/experimental contrib/libc++/src/... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 22:41:56 -0000 Author: dim Date: Mon Jan 9 22:41:53 2017 New Revision: 311834 URL: https://svnweb.freebsd.org/changeset/base/311834 Log: Merge libc++ trunk r291476, update Makefile, ObsoleteFiles.inc and OptionalObsoleteFiles.inc. Deleted: projects/clang400-import/contrib/libc++/include/__undef___deallocate Modified: projects/clang400-import/ObsoleteFiles.inc projects/clang400-import/contrib/libc++/CREDITS.TXT projects/clang400-import/contrib/libc++/include/__bit_reference projects/clang400-import/contrib/libc++/include/__config projects/clang400-import/contrib/libc++/include/__debug projects/clang400-import/contrib/libc++/include/__functional_base projects/clang400-import/contrib/libc++/include/__hash_table projects/clang400-import/contrib/libc++/include/__sso_allocator projects/clang400-import/contrib/libc++/include/__threading_support projects/clang400-import/contrib/libc++/include/algorithm projects/clang400-import/contrib/libc++/include/atomic projects/clang400-import/contrib/libc++/include/experimental/algorithm projects/clang400-import/contrib/libc++/include/experimental/dynarray projects/clang400-import/contrib/libc++/include/experimental/iterator projects/clang400-import/contrib/libc++/include/istream projects/clang400-import/contrib/libc++/include/memory projects/clang400-import/contrib/libc++/include/module.modulemap projects/clang400-import/contrib/libc++/include/new projects/clang400-import/contrib/libc++/include/ostream projects/clang400-import/contrib/libc++/include/regex projects/clang400-import/contrib/libc++/include/string_view projects/clang400-import/contrib/libc++/include/thread projects/clang400-import/contrib/libc++/include/type_traits projects/clang400-import/contrib/libc++/include/valarray projects/clang400-import/contrib/libc++/src/chrono.cpp projects/clang400-import/contrib/libc++/src/exception.cpp projects/clang400-import/contrib/libc++/src/experimental/memory_resource.cpp projects/clang400-import/contrib/libc++/src/include/config_elast.h projects/clang400-import/contrib/libc++/src/iostream.cpp projects/clang400-import/contrib/libc++/src/locale.cpp projects/clang400-import/contrib/libc++/src/thread.cpp projects/clang400-import/lib/libc++/Makefile projects/clang400-import/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: projects/clang400-import/contrib/libc++/ (props changed) Modified: projects/clang400-import/ObsoleteFiles.inc ============================================================================== --- projects/clang400-import/ObsoleteFiles.inc Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/ObsoleteFiles.inc Mon Jan 9 22:41:53 2017 (r311834) @@ -38,6 +38,9 @@ # xargs -n1 | sort | uniq -d; # done +# 2017mmdd: new libc++ import which bumps version from 3.9.1 to 4.0.0. +OLD_FILES+=usr/include/c++/v1/__undef___deallocate +OLD_FILES+=usr/include/c++/v1/tr1/__undef___deallocate # 2017mmdd: new clang import which bumps version from 3.9.1 to 4.0.0. OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/asan_interface.h Modified: projects/clang400-import/contrib/libc++/CREDITS.TXT ============================================================================== --- projects/clang400-import/contrib/libc++/CREDITS.TXT Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/CREDITS.TXT Mon Jan 9 22:41:53 2017 (r311834) @@ -80,6 +80,10 @@ N: Andrew Morrow E: andrew.c.morrow@gmail.com D: Minor patches and Linux fixes. +N: Michael Park +E: mpark@apache.org +D: Implementation of . + N: Arvid Picciani E: aep at exys dot org D: Minor patches and musl port. Modified: projects/clang400-import/contrib/libc++/include/__bit_reference ============================================================================== --- projects/clang400-import/contrib/libc++/include/__bit_reference Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__bit_reference Mon Jan 9 22:41:53 2017 (r311834) @@ -40,11 +40,8 @@ class __bit_reference __storage_pointer __seg_; __storage_type __mask_; -#if defined(__clang__) || defined(__IBMCPP__) || defined(_LIBCPP_MSVC) friend typename _Cp::__self; -#else - friend class _Cp::__self; -#endif + friend class __bit_const_reference<_Cp>; friend class __bit_iterator<_Cp, false>; public: @@ -130,11 +127,7 @@ class __bit_const_reference __storage_pointer __seg_; __storage_type __mask_; -#if defined(__clang__) || defined(__IBMCPP__) || defined(_LIBCPP_MSVC) friend typename _Cp::__self; -#else - friend class _Cp::__self; -#endif friend class __bit_iterator<_Cp, true>; public: _LIBCPP_INLINE_VISIBILITY @@ -1221,11 +1214,8 @@ private: __bit_iterator(__storage_pointer __s, unsigned __ctz) _NOEXCEPT : __seg_(__s), __ctz_(__ctz) {} -#if defined(__clang__) || defined(__IBMCPP__) || defined(_LIBCPP_MSVC) friend typename _Cp::__self; -#else - friend class _Cp::__self; -#endif + friend class __bit_reference<_Cp>; friend class __bit_const_reference<_Cp>; friend class __bit_iterator<_Cp, true>; Modified: projects/clang400-import/contrib/libc++/include/__config ============================================================================== --- projects/clang400-import/contrib/libc++/include/__config Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__config Mon Jan 9 22:41:53 2017 (r311834) @@ -101,6 +101,25 @@ #define __is_identifier(__x) 1 #endif +#if defined(__clang__) +#define _LIBCPP_COMPILER_CLANG +#elif defined(__GNUC__) +#define _LIBCPP_COMPILER_GCC +#elif defined(_MSC_VER) +#define _LIBCPP_COMPILER_MSVC +#elif defined(__IBMCPP__) +#define _LIBCPP_COMPILER_IBM +#endif + +// FIXME: ABI detection should be done via compiler builtin macros. This +// is just a placeholder until Clang implements such macros. For now assume +// that Windows compilers pretending to be MSVC++ target the microsoft ABI. +#if defined(_WIN32) && defined(_MSC_VER) +# define _LIBCPP_ABI_MICROSOFT +#else +# define _LIBCPP_ABI_ITANIUM +#endif + // Need to detect which libc we're using if we're on Linux. #if defined(__linux__) #include @@ -164,16 +183,7 @@ # define _LIBCPP_LITTLE_ENDIAN 1 # define _LIBCPP_BIG_ENDIAN 0 # define _LIBCPP_SHORT_WCHAR 1 -// Compiler intrinsics (MSVC) -# if defined(_MSC_VER) && _MSC_VER >= 1400 -# define _LIBCPP_HAS_IS_BASE_OF -# endif -# if defined(_MSC_VER) && !defined(__clang__) -# define _LIBCPP_MSVC // Using Microsoft Visual C++ compiler -# define _LIBCPP_TOSTRING2(x) #x -# define _LIBCPP_TOSTRING(x) _LIBCPP_TOSTRING2(x) -# define _LIBCPP_WARNING(x) __pragma(message(__FILE__ "(" _LIBCPP_TOSTRING(__LINE__) ") : warning note: " x)) -# endif + // If mingw not explicitly detected, assume using MS C runtime only. # ifndef __MINGW32__ # define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library @@ -230,7 +240,7 @@ #define _LIBCPP_NO_CFI #endif -#if defined(__clang__) +#if defined(_LIBCPP_COMPILER_CLANG) // _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT left here for backward compatibility. @@ -275,10 +285,6 @@ typedef __char32_t char32_t; # define _LIBCPP_NORETURN __attribute__ ((noreturn)) #endif -#if !(__has_feature(cxx_deleted_functions)) -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS -#endif // !(__has_feature(cxx_deleted_functions)) - #if !(__has_feature(cxx_lambdas)) #define _LIBCPP_HAS_NO_LAMBDAS #endif @@ -390,7 +396,7 @@ namespace std { #define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow"))) #endif -#elif defined(__GNUC__) +#elif defined(_LIBCPP_COMPILER_GCC) #define _ALIGNAS(x) __attribute__((__aligned__(x))) #define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) @@ -431,7 +437,6 @@ namespace std { #ifndef __GXX_EXPERIMENTAL_CXX0X__ #define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #define _LIBCPP_HAS_NO_NULLPTR #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_NO_VARIADICS @@ -448,7 +453,6 @@ namespace std { #if _GNUC_VER < 404 #define _LIBCPP_HAS_NO_DECLTYPE -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_NO_VARIADICS #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS @@ -475,15 +479,23 @@ using namespace _LIBCPP_NAMESPACE __attr #define _LIBCPP_HAS_NO_ASAN #endif -#elif defined(_LIBCPP_MSVC) +#elif defined(_LIBCPP_COMPILER_MSVC) + +#define _LIBCPP_TOSTRING2(x) #x +#define _LIBCPP_TOSTRING(x) _LIBCPP_TOSTRING2(x) +#define _LIBCPP_WARNING(x) __pragma(message(__FILE__ "(" _LIBCPP_TOSTRING(__LINE__) ") : warning note: " x)) +#if _MSC_VER < 1900 +#error "MSVC versions prior to Visual Studio 2015 are not supported" +#endif + +#define _LIBCPP_HAS_IS_BASE_OF #define _LIBCPP_HAS_NO_CONSTEXPR #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES #if _MSC_VER <= 1800 #define _LIBCPP_HAS_NO_UNICODE_CHARS #endif -#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #define _LIBCPP_HAS_NO_NOEXCEPT #define __alignof__ __alignof #define _LIBCPP_NORETURN __declspec(noreturn) @@ -500,7 +512,7 @@ namespace std { #define _LIBCPP_HAS_NO_ASAN -#elif defined(__IBMCPP__) +#elif defined(_LIBCPP_COMPILER_IBM) #define _ALIGNAS(x) __attribute__((__aligned__(x))) #define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x)))) @@ -530,7 +542,7 @@ namespace std { #define _LIBCPP_HAS_NO_ASAN -#endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__ +#endif // _LIBCPP_COMPILER_[CLANG|GCC|MSVC|IBM] #if defined(__ELF__) #define _LIBCPP_OBJECT_FORMAT_ELF 1 @@ -566,7 +578,7 @@ namespace std { #define _LIBCPP_FUNC_VIS_ONLY #define _LIBCPP_ENUM_VIS -#if defined(_LIBCPP_MSVC) +#if defined(_LIBCPP_COMPILER_MSVC) # define _LIBCPP_INLINE_VISIBILITY __forceinline # define _LIBCPP_ALWAYS_INLINE __forceinline # define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __forceinline @@ -739,7 +751,7 @@ template struct __static_asse #define _LIBCPP_DEFAULT = default; #endif -#ifdef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifdef _LIBCPP_CXX03_LANG #define _LIBCPP_EQUAL_DELETE #else #define _LIBCPP_EQUAL_DELETE = delete @@ -892,8 +904,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit // Thread API #if !defined(_LIBCPP_HAS_NO_THREADS) && \ - !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && \ - !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) + !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) # if defined(__FreeBSD__) || \ defined(__Fuchsia__) || \ defined(__NetBSD__) || \ @@ -901,7 +912,9 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit defined(__APPLE__) || \ defined(__CloudABI__) || \ defined(__sun__) -# define _LIBCPP_HAS_THREAD_API_PTHREAD +# define _LIBCPP_HAS_THREAD_API_PTHREAD +# elif defined(_LIBCPP_WIN32API) +# define _LIBCPP_HAS_THREAD_API_WIN32 # else # error "No thread API" # endif // _LIBCPP_HAS_THREAD_API Modified: projects/clang400-import/contrib/libc++/include/__debug ============================================================================== --- projects/clang400-import/contrib/libc++/include/__debug Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__debug Mon Jan 9 22:41:53 2017 (r311834) @@ -122,7 +122,7 @@ struct _LIBCPP_TYPE_VIS __i_node __i_node* __next_; __c_node* __c_; -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifndef _LIBCPP_CXX03_LANG __i_node(const __i_node&) = delete; __i_node& operator=(const __i_node&) = delete; #else @@ -145,7 +145,7 @@ struct _LIBCPP_TYPE_VIS __c_node __i_node** end_; __i_node** cap_; -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifndef _LIBCPP_CXX03_LANG __c_node(const __c_node&) = delete; __c_node& operator=(const __c_node&) = delete; #else @@ -232,7 +232,7 @@ class _LIBCPP_TYPE_VIS __libcpp_db __libcpp_db(); public: -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifndef _LIBCPP_CXX03_LANG __libcpp_db(const __libcpp_db&) = delete; __libcpp_db& operator=(const __libcpp_db&) = delete; #else Modified: projects/clang400-import/contrib/libc++/include/__functional_base ============================================================================== --- projects/clang400-import/contrib/libc++/include/__functional_base Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__functional_base Mon Jan 9 22:41:53 2017 (r311834) @@ -552,23 +552,10 @@ cref(reference_wrapper<_Tp> __t) _NOEXCE return cref(__t.get()); } -#ifndef _LIBCPP_HAS_NO_VARIADICS -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS - +#ifndef _LIBCPP_CXX03_LANG template void ref(const _Tp&&) = delete; template void cref(const _Tp&&) = delete; - -#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS - -template void ref(const _Tp&&);// = delete; -template void cref(const _Tp&&);// = delete; - -#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -#endif // _LIBCPP_HAS_NO_VARIADICS +#endif #if _LIBCPP_STD_VER > 11 template Modified: projects/clang400-import/contrib/libc++/include/__hash_table ============================================================================== --- projects/clang400-import/contrib/libc++/include/__hash_table Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__hash_table Mon Jan 9 22:41:53 2017 (r311834) @@ -20,7 +20,6 @@ #include #include <__undef_min_max> -#include <__undef___deallocate> #include <__debug> @@ -1321,7 +1320,7 @@ private: void __move_assign_alloc(__hash_table&, false_type) _NOEXCEPT {} #endif // _LIBCPP_CXX03_LANG - void __deallocate(__next_pointer __np) _NOEXCEPT; + void __deallocate_node(__next_pointer __np) _NOEXCEPT; __next_pointer __detach() _NOEXCEPT; template friend class _LIBCPP_TEMPLATE_VIS unordered_map; @@ -1454,7 +1453,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> "Predicate must be copy-constructible."); static_assert((is_copy_constructible::value), "Hasher must be copy-constructible."); - __deallocate(__p1_.first().__next_); + __deallocate_node(__p1_.first().__next_); #if _LIBCPP_DEBUG_LEVEL >= 2 __get_db()->__erase_c(this); #endif @@ -1492,7 +1491,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> template void -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate(__next_pointer __np) +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate_node(__next_pointer __np) _NOEXCEPT { __node_allocator& __na = __node_alloc(); @@ -1599,11 +1598,11 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> } catch (...) { - __deallocate(__cache); + __deallocate_node(__cache); throw; } #endif // _LIBCPP_NO_EXCEPTIONS - __deallocate(__cache); + __deallocate_node(__cache); } const_iterator __i = __u.begin(); while (__u.size() != 0) @@ -1661,11 +1660,11 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> } catch (...) { - __deallocate(__cache); + __deallocate_node(__cache); throw; } #endif // _LIBCPP_NO_EXCEPTIONS - __deallocate(__cache); + __deallocate_node(__cache); } for (; __first != __last; ++__first) __insert_unique(*__first); @@ -1701,11 +1700,11 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> } catch (...) { - __deallocate(__cache); + __deallocate_node(__cache); throw; } #endif // _LIBCPP_NO_EXCEPTIONS - __deallocate(__cache); + __deallocate_node(__cache); } for (; __first != __last; ++__first) __insert_multi(_NodeTypes::__get_value(*__first)); @@ -1765,7 +1764,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> { if (size() > 0) { - __deallocate(__p1_.first().__next_); + __deallocate_node(__p1_.first().__next_); __p1_.first().__next_ = nullptr; size_type __bc = bucket_count(); for (size_type __i = 0; __i < __bc; ++__i) Modified: projects/clang400-import/contrib/libc++/include/__sso_allocator ============================================================================== --- projects/clang400-import/contrib/libc++/include/__sso_allocator Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__sso_allocator Mon Jan 9 22:41:53 2017 (r311834) @@ -15,8 +15,6 @@ #include #include -#include <__undef___deallocate> - #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif @@ -64,7 +62,7 @@ public: if (__p == (pointer)&buf_) __allocated_ = false; else - _VSTD::__deallocate(__p); + _VSTD::__libcpp_deallocate(__p); } _LIBCPP_INLINE_VISIBILITY size_type max_size() const throw() {return size_type(~0) / sizeof(_Tp);} Modified: projects/clang400-import/contrib/libc++/include/__threading_support ============================================================================== --- projects/clang400-import/contrib/libc++/include/__threading_support Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/__threading_support Mon Jan 9 22:41:53 2017 (r311834) @@ -17,39 +17,24 @@ #pragma GCC system_header #endif -#ifndef _LIBCPP_HAS_NO_THREADS - -#ifndef __libcpp_has_include - #ifndef __has_include - #define __libcpp_has_include(x) 0 - #else - #define __libcpp_has_include(x) __has_include(x) - #endif -#endif - -#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) && \ - !__libcpp_has_include(<__external_threading>) -// If the <__external_threading> header is absent, build libc++ against a -// pthread-oriented thread api but leave out its implementation. This setup -// allows building+testing of an externally-threaded library variant (on any -// platform that supports pthreads). Here, an 'externally-threaded' library -// variant is one where the implementation of the libc++ thread api is provided -// as a separate library. -#define _LIBCPP_HAS_THREAD_API_EXTERNAL_PTHREAD -#endif +#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) +# include <__external_threading> +#elif !defined(_LIBCPP_HAS_NO_THREADS) -#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) && \ - __libcpp_has_include(<__external_threading>) -#include <__external_threading> -#else +#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) +# include +# include +#elif defined(_LIBCPP_HAS_THREAD_API_WIN32) +#include +#include +#include +#include -#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) || \ - defined(_LIBCPP_HAS_THREAD_API_EXTERNAL_PTHREAD) -#include -#include +#include #endif -#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) +#if defined(_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL) || \ + defined(_LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL) #define _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_FUNC_VIS #else #define _LIBCPP_THREAD_ABI_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY @@ -57,8 +42,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD -#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) || \ - defined(_LIBCPP_HAS_THREAD_API_EXTERNAL_PTHREAD) +#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) // Mutex typedef pthread_mutex_t __libcpp_mutex_t; #define _LIBCPP_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER @@ -81,6 +65,33 @@ typedef pthread_t __libcpp_thread_t; // Thrad Local Storage typedef pthread_key_t __libcpp_tls_key; + +#define _LIBCPP_TLS_DESTRUCTOR_CC +#else +// Mutex +typedef SRWLOCK __libcpp_mutex_t; +#define _LIBCPP_MUTEX_INITIALIZER SRWLOCK_INIT + +typedef CRITICAL_SECTION __libcpp_recursive_mutex_t; + +// Condition Variable +typedef CONDITION_VARIABLE __libcpp_condvar_t; +#define _LIBCPP_CONDVAR_INITIALIZER CONDITION_VARIABLE_INIT + +// Execute Once +typedef INIT_ONCE __libcpp_exec_once_flag; +#define _LIBCPP_EXEC_ONCE_INITIALIZER INIT_ONCE_STATIC_INIT + +// Thread ID +typedef DWORD __libcpp_thread_id; + +// Thread +typedef HANDLE __libcpp_thread_t; + +// Thread Local Storage +typedef DWORD __libcpp_tls_key; + +#define _LIBCPP_TLS_DESTRUCTOR_CC WINAPI #endif // Mutex @@ -167,7 +178,8 @@ void __libcpp_thread_yield(); // Thread local storage _LIBCPP_THREAD_ABI_VISIBILITY -int __libcpp_tls_create(__libcpp_tls_key *__key, void (*__at_exit)(void *)); +int __libcpp_tls_create(__libcpp_tls_key* __key, + void(_LIBCPP_TLS_DESTRUCTOR_CC* __at_exit)(void*)); _LIBCPP_THREAD_ABI_VISIBILITY void *__libcpp_tls_get(__libcpp_tls_key __key); @@ -175,8 +187,10 @@ void *__libcpp_tls_get(__libcpp_tls_key _LIBCPP_THREAD_ABI_VISIBILITY int __libcpp_tls_set(__libcpp_tls_key __key, void *__p); -#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) || \ - defined(_LIBCPP_BUILDING_THREAD_API_EXTERNAL_PTHREAD) +#if !defined(_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL) || \ + defined(_LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL) + +#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD) int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m) { @@ -342,12 +356,230 @@ int __libcpp_tls_set(__libcpp_tls_key __ return pthread_setspecific(__key, __p); } +#elif defined(_LIBCPP_HAS_THREAD_API_WIN32) + +// Mutex +int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m) +{ + InitializeCriticalSection(__m); + return 0; +} + +int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m) +{ + EnterCriticalSection(__m); + return 0; +} + +int __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m) +{ + TryEnterCriticalSection(__m); + return 0; +} + +int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m) +{ + LeaveCriticalSection(__m); + return 0; +} + +int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m) +{ + static_cast(__m); + return 0; +} + +int __libcpp_mutex_lock(__libcpp_mutex_t *__m) +{ + AcquireSRWLockExclusive(__m); + return 0; +} + +int __libcpp_mutex_trylock(__libcpp_mutex_t *__m) +{ + TryAcquireSRWLockExclusive(__m); + return 0; +} + +int __libcpp_mutex_unlock(__libcpp_mutex_t *__m) +{ + ReleaseSRWLockExclusive(__m); + return 0; +} + +int __libcpp_mutex_destroy(__libcpp_mutex_t *__m) +{ + static_cast(__m); + return 0; +} + +// Condition Variable +int __libcpp_condvar_signal(__libcpp_condvar_t *__cv) +{ + WakeConditionVariable(__cv); + return 0; +} + +int __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv) +{ + WakeAllConditionVariable(__cv); + return 0; +} + +int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m) +{ + SleepConditionVariableSRW(__cv, __m, INFINITE, 0); + return 0; +} + +int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, + timespec *__ts) +{ + using namespace _VSTD::chrono; + + auto duration = seconds(__ts->tv_sec) + nanoseconds(__ts->tv_nsec); + auto abstime = + system_clock::time_point(duration_cast(duration)); + auto timeout_ms = duration_cast(abstime - system_clock::now()); + + if (!SleepConditionVariableSRW(__cv, __m, + timeout_ms.count() > 0 ? timeout_ms.count() + : 0, + 0)) + return GetLastError(); + return 0; +} + +int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) +{ + static_cast(__cv); + return 0; +} + +// Execute Once +static inline _LIBCPP_ALWAYS_INLINE BOOL CALLBACK +__libcpp_init_once_execute_once_thunk(PINIT_ONCE __init_once, PVOID __parameter, + PVOID *__context) +{ + static_cast(__init_once); + static_cast(__context); + + void (*init_routine)(void) = reinterpret_cast(__parameter); + init_routine(); + return TRUE; +} + +int __libcpp_execute_once(__libcpp_exec_once_flag *__flag, + void (*__init_routine)(void)) +{ + if (!InitOnceExecuteOnce(__flag, __libcpp_init_once_execute_once_thunk, + reinterpret_cast(__init_routine), NULL)) + return GetLastError(); + return 0; +} + +// Thread ID +bool __libcpp_thread_id_equal(__libcpp_thread_id __lhs, + __libcpp_thread_id __rhs) +{ + return __lhs == __rhs; +} + +bool __libcpp_thread_id_less(__libcpp_thread_id __lhs, __libcpp_thread_id __rhs) +{ + return __lhs < __rhs; +} + +// Thread +struct __libcpp_beginthreadex_thunk_data +{ + void *(*__func)(void *); + void *__arg; +}; + +static inline _LIBCPP_ALWAYS_INLINE unsigned int WINAPI +__libcpp_beginthreadex_thunk(void *__data) +{ + __libcpp_beginthreadex_thunk_data data = + *reinterpret_cast<__libcpp_beginthreadex_thunk_data *>(__data); + delete reinterpret_cast<__libcpp_beginthreadex_thunk_data *>(__data); + return reinterpret_cast(data.__func(data.__arg)); +} + +int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), + void *__arg) +{ + auto *data = new __libcpp_beginthreadex_thunk_data; + data->__func = __func; + data->__arg = __arg; + + *__t = reinterpret_cast(_beginthreadex(NULL, 0, + __libcpp_beginthreadex_thunk, + data, 0, NULL)); + if (*__t) + return 0; + return GetLastError(); +} + +__libcpp_thread_id __libcpp_thread_get_current_id() +{ + return GetCurrentThreadId(); +} + +__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t) +{ + return GetThreadId(*__t); +} + +int __libcpp_thread_join(__libcpp_thread_t *__t) +{ + if (WaitForSingleObjectEx(*__t, INFINITE, FALSE) == WAIT_FAILED) + return GetLastError(); + if (!CloseHandle(*__t)) + return GetLastError(); + return 0; +} + +int __libcpp_thread_detach(__libcpp_thread_t *__t) +{ + if (!CloseHandle(*__t)) + return GetLastError(); + return 0; +} + +void __libcpp_thread_yield() +{ + SwitchToThread(); +} + +// Thread Local Storage +int __libcpp_tls_create(__libcpp_tls_key* __key, + void(_LIBCPP_TLS_DESTRUCTOR_CC* __at_exit)(void*)) +{ + *__key = FlsAlloc(__at_exit); + if (*__key == FLS_OUT_OF_INDEXES) + return GetLastError(); + return 0; +} + +void *__libcpp_tls_get(__libcpp_tls_key __key) +{ + return FlsGetValue(__key); +} + +int __libcpp_tls_set(__libcpp_tls_key __key, void *__p) +{ + if (!FlsSetValue(__key, __p)) + return GetLastError(); + return 0; +} + #endif // _LIBCPP_HAS_THREAD_API_PTHREAD -_LIBCPP_END_NAMESPACE_STD +#endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL -#endif // !_LIBCPP_HAS_THREAD_API_EXTERNAL || !__libcpp_has_include(<__external_threading>) +_LIBCPP_END_NAMESPACE_STD -#endif // _LIBCPP_HAS_NO_THREADS +#endif // !_LIBCPP_HAS_NO_THREADS #endif // _LIBCPP_THREADING_SUPPORT Modified: projects/clang400-import/contrib/libc++/include/algorithm ============================================================================== --- projects/clang400-import/contrib/libc++/include/algorithm Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/algorithm Mon Jan 9 22:41:53 2017 (r311834) @@ -3100,28 +3100,28 @@ template _LIBCPP_INLINE_VISIBILITY _SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator & __g, input_iterator_tag) { _Distance __k = 0; for (; __first != __last && __k < __n; ++__first, (void)++__k) - __out[__k] = *__first; + __output[__k] = *__first; _Distance __sz = __k; for (; __first != __last; ++__first, (void)++__k) { _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, __k)(__g); if (__r < __sz) - __out[__r] = *__first; + __output[__r] = *__first; } - return __out + _VSTD::min(__n, __k); + return __output + _VSTD::min(__n, __k); } template _LIBCPP_INLINE_VISIBILITY _SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator& __g, forward_iterator_tag) { @@ -3130,18 +3130,18 @@ _SampleIterator __sample(_PopulationIter _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g); if (__r < __n) { - *__out++ = *__first; + *__output++ = *__first; --__n; } } - return __out; + return __output; } template _LIBCPP_INLINE_VISIBILITY _SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator& __g) { typedef typename iterator_traits<_PopulationIterator>::iterator_category _PopCategory; @@ -3153,7 +3153,7 @@ _SampleIterator __sample(_PopulationIter typedef typename common_type<_Distance, _Difference>::type _CommonType; _LIBCPP_ASSERT(__n >= 0, "N must be a positive number."); return _VSTD::__sample( - __first, __last, __out, _CommonType(__n), + __first, __last, __output, _CommonType(__n), __g, _PopCategory()); } @@ -3162,9 +3162,9 @@ template inline _LIBCPP_INLINE_VISIBILITY _SampleIterator sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator&& __g) { - return _VSTD::__sample(__first, __last, __out, __n, __g); + return _VSTD::__sample(__first, __last, __output, __n, __g); } #endif // _LIBCPP_STD_VER > 14 Modified: projects/clang400-import/contrib/libc++/include/atomic ============================================================================== --- projects/clang400-import/contrib/libc++/include/atomic Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/atomic Mon Jan 9 22:41:53 2017 (r311834) @@ -943,16 +943,16 @@ struct __atomic_base // false _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {} -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifndef _LIBCPP_CXX03_LANG __atomic_base(const __atomic_base&) = delete; __atomic_base& operator=(const __atomic_base&) = delete; __atomic_base& operator=(const __atomic_base&) volatile = delete; -#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#else private: __atomic_base(const __atomic_base&); __atomic_base& operator=(const __atomic_base&); __atomic_base& operator=(const __atomic_base&) volatile; -#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#endif }; #if defined(__cpp_lib_atomic_is_always_lock_free) @@ -1699,16 +1699,16 @@ typedef struct atomic_flag _LIBCPP_INLINE_VISIBILITY atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {} // EXTENSION -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifndef _LIBCPP_CXX03_LANG atomic_flag(const atomic_flag&) = delete; atomic_flag& operator=(const atomic_flag&) = delete; atomic_flag& operator=(const atomic_flag&) volatile = delete; -#else // _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#else private: atomic_flag(const atomic_flag&); atomic_flag& operator=(const atomic_flag&); atomic_flag& operator=(const atomic_flag&) volatile; -#endif // _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#endif } atomic_flag; inline _LIBCPP_INLINE_VISIBILITY Modified: projects/clang400-import/contrib/libc++/include/experimental/algorithm ============================================================================== --- projects/clang400-import/contrib/libc++/include/experimental/algorithm Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/experimental/algorithm Mon Jan 9 22:41:53 2017 (r311834) @@ -60,9 +60,9 @@ template inline _LIBCPP_INLINE_VISIBILITY _SampleIterator sample(_PopulationIterator __first, _PopulationIterator __last, - _SampleIterator __out, _Distance __n, + _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator &&__g) { - return _VSTD::__sample(__first, __last, __out, __n, __g); + return _VSTD::__sample(__first, __last, __output, __n, __g); } _LIBCPP_END_NAMESPACE_LFTS Modified: projects/clang400-import/contrib/libc++/include/experimental/dynarray ============================================================================== --- projects/clang400-import/contrib/libc++/include/experimental/dynarray Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/experimental/dynarray Mon Jan 9 22:41:53 2017 (r311834) @@ -11,9 +11,6 @@ #ifndef _LIBCPP_DYNARRAY #define _LIBCPP_DYNARRAY -#include <__config> -#if _LIBCPP_STD_VER > 11 - /* dynarray synopsis @@ -96,6 +93,8 @@ public: }} // std::experimental */ +#include <__config> +#if _LIBCPP_STD_VER > 11 #include <__functional_base> #include @@ -104,8 +103,6 @@ public: #include #include -#include <__undef___deallocate> - #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif @@ -143,9 +140,9 @@ private: return static_cast (_VSTD::__allocate (sizeof(value_type) * count)); } - static inline _LIBCPP_INLINE_VISIBILITY void __deallocate ( value_type* __ptr ) noexcept + static inline _LIBCPP_INLINE_VISIBILITY void __deallocate_value( value_type* __ptr ) noexcept { - _VSTD::__deallocate (static_cast (__ptr)); + _VSTD::__libcpp_deallocate (static_cast (__ptr)); } public: @@ -265,7 +262,7 @@ dynarray<_Tp>::~dynarray() value_type *__data = data () + __size_; for ( size_t i = 0; i < __size_; ++i ) (--__data)->value_type::~value_type(); - __deallocate ( __base_ ); + __deallocate_value( __base_ ); } template Modified: projects/clang400-import/contrib/libc++/include/experimental/iterator ============================================================================== --- projects/clang400-import/contrib/libc++/include/experimental/iterator Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/experimental/iterator Mon Jan 9 22:41:53 2017 (r311834) @@ -75,19 +75,19 @@ public: typedef void reference; ostream_joiner(ostream_type& __os, _Delim&& __d) - : __out(_VSTD::addressof(__os)), __delim(_VSTD::move(__d)), __first(true) {} + : __output(_VSTD::addressof(__os)), __delim(_VSTD::move(__d)), __first(true) {} ostream_joiner(ostream_type& __os, const _Delim& __d) - : __out(_VSTD::addressof(__os)), __delim(__d), __first(true) {} + : __output(_VSTD::addressof(__os)), __delim(__d), __first(true) {} template ostream_joiner& operator=(const _Tp& __v) { if (!__first) - *__out << __delim; + *__output << __delim; __first = false; - *__out << __v; + *__output << __v; return *this; } @@ -96,7 +96,7 @@ public: ostream_joiner& operator++(int) _NOEXCEPT { return *this; } private: - ostream_type* __out; + ostream_type* __output; _Delim __delim; bool __first; }; Modified: projects/clang400-import/contrib/libc++/include/istream ============================================================================== --- projects/clang400-import/contrib/libc++/include/istream Mon Jan 9 22:32:19 2017 (r311833) +++ projects/clang400-import/contrib/libc++/include/istream Mon Jan 9 22:41:53 2017 (r311834) @@ -205,14 +205,9 @@ protected: basic_ios::swap(__rhs); } -#if _LIBCPP_STD_VER > 11 -#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS +#ifndef _LIBCPP_CXX03_LANG basic_istream (const basic_istream& __rhs) = delete; basic_istream& operator=(const basic_istream& __rhs) = delete; -#else - basic_istream (const basic_istream& __rhs); // not defined - basic_istream& operator=(const basic_istream& __rhs); // not defined -#endif #endif public: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Jan 9 22:46:48 2017 Return-Path: Delivered-To: svn-src-projects@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 896CACA81B7 for ; Mon, 9 Jan 2017 22:46:48 +0000 (UTC) (envelope-from dim@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 615101A12; Mon, 9 Jan 2017 22:46:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09Mkl0p029400; Mon, 9 Jan 2017 22:46:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09MklVm029399; Mon, 9 Jan 2017 22:46:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701092246.v09MklVm029399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 22:46:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311835 - projects/clang400-import/lib/libc++ X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 22:46:48 -0000 Author: dim Date: Mon Jan 9 22:46:47 2017 New Revision: 311835 URL: https://svnweb.freebsd.org/changeset/base/311835 Log: Update the libc++ Makefile to be more like the other llvm and clang Makefiles. Modified: projects/clang400-import/lib/libc++/Makefile Modified: projects/clang400-import/lib/libc++/Makefile ============================================================================== --- projects/clang400-import/lib/libc++/Makefile Mon Jan 9 22:41:53 2017 (r311834) +++ projects/clang400-import/lib/libc++/Makefile Mon Jan 9 22:46:47 2017 (r311835) @@ -3,9 +3,9 @@ .include PACKAGE= clibs -_LIBCXXRTDIR= ${.CURDIR}/../../contrib/libcxxrt -HDRDIR= ${.CURDIR}/../../contrib/libc++/include -SRCDIR= ${.CURDIR}/../../contrib/libc++/src +_LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt +HDRDIR= ${SRCTOP}/contrib/libc++/include +SRCDIR= ${SRCTOP}/contrib/libc++/src CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} .if ${MACHINE_CPUARCH} == "arm" STATIC_CXXFLAGS+= -mlong-calls @@ -17,43 +17,43 @@ LIB= c++ SHLIB_MAJOR= 1 SHLIB_LDSCRIPT= libc++.ldscript -SRCS+= algorithm.cpp\ - any.cpp\ - bind.cpp\ - chrono.cpp\ - condition_variable.cpp\ - debug.cpp\ - exception.cpp\ - future.cpp\ - hash.cpp\ - ios.cpp\ - iostream.cpp\ - locale.cpp\ - memory.cpp\ - mutex.cpp\ - new.cpp\ - optional.cpp\ - random.cpp\ - regex.cpp\ - shared_mutex.cpp\ - stdexcept.cpp\ - string.cpp\ - strstream.cpp\ - system_error.cpp\ - thread.cpp\ - typeinfo.cpp\ - utility.cpp\ - valarray.cpp - -CXXRT_SRCS+= libelftc_dem_gnu3.c\ - terminate.cc\ - dynamic_cast.cc\ - memory.cc\ - auxhelper.cc\ - exception.cc\ - stdexcept.cc\ - typeinfo.cc\ - guard.cc +SRCS+= algorithm.cpp +SRCS+= any.cpp +SRCS+= bind.cpp +SRCS+= chrono.cpp +SRCS+= condition_variable.cpp +SRCS+= debug.cpp +SRCS+= exception.cpp +SRCS+= future.cpp +SRCS+= hash.cpp +SRCS+= ios.cpp +SRCS+= iostream.cpp +SRCS+= locale.cpp +SRCS+= memory.cpp +SRCS+= mutex.cpp +SRCS+= new.cpp +SRCS+= optional.cpp +SRCS+= random.cpp +SRCS+= regex.cpp +SRCS+= shared_mutex.cpp +SRCS+= stdexcept.cpp +SRCS+= string.cpp +SRCS+= strstream.cpp +SRCS+= system_error.cpp +SRCS+= thread.cpp +SRCS+= typeinfo.cpp +SRCS+= utility.cpp +SRCS+= valarray.cpp + +CXXRT_SRCS+= auxhelper.cc +CXXRT_SRCS+= dynamic_cast.cc +CXXRT_SRCS+= exception.cc +CXXRT_SRCS+= guard.cc +CXXRT_SRCS+= libelftc_dem_gnu3.c +CXXRT_SRCS+= memory.cc +CXXRT_SRCS+= stdexcept.cc +CXXRT_SRCS+= terminate.cc +CXXRT_SRCS+= typeinfo.cc .for _S in ${CXXRT_SRCS} CLEANFILES+= cxxrt_${_S} @@ -71,132 +71,133 @@ CXXFLAGS+= -std=c++11 LIBADD+= cxxrt INCSGROUPS= STD EXP EXT -STD_HEADERS= __bit_reference\ - __bsd_locale_defaults.h\ - __bsd_locale_fallbacks.h\ - __config\ - __debug\ - __functional_03\ - __functional_base\ - __functional_base_03\ - __hash_table\ - __libcpp_version\ - __locale\ - __mutex_base\ - __nullptr\ - __refstring\ - __split_buffer\ - __sso_allocator\ - __std_stream\ - __string\ - __threading_support\ - __tree\ - __tuple\ - __undef_min_max\ - algorithm\ - any\ - array\ - atomic\ - bitset\ - cassert\ - ccomplex\ - cctype\ - cerrno\ - cfenv\ - cfloat\ - chrono\ - cinttypes\ - ciso646\ - climits\ - clocale\ - cmath\ - codecvt\ - complex\ - complex.h\ - condition_variable\ - csetjmp\ - csignal\ - cstdarg\ - cstdbool\ - cstddef\ - cstdint\ - cstdio\ - cstdlib\ - cstring\ - ctgmath\ - ctime\ - ctype.h\ - cwchar\ - cwctype\ - deque\ - errno.h\ - exception\ - float.h\ - forward_list\ - fstream\ - functional\ - future\ - initializer_list\ - inttypes.h\ - iomanip\ - ios\ - iosfwd\ - iostream\ - istream\ - iterator\ - limits\ - limits.h\ - list\ - locale\ - locale.h\ - map\ - math.h\ - memory\ - mutex\ - new\ - numeric\ - optional\ - ostream\ - queue\ - random\ - ratio\ - regex\ - scoped_allocator\ - set\ - setjmp.h\ - shared_mutex\ - sstream\ - stack\ - stdbool.h\ - stddef.h\ - stdexcept\ - stdint.h\ - stdio.h\ - stdlib.h\ - streambuf\ - string\ - string.h\ - string_view\ - strstream\ - system_error\ - tgmath.h\ - thread\ - tuple\ - type_traits\ - typeindex\ - typeinfo\ - unordered_map\ - unordered_set\ - utility\ - valarray\ - variant\ - vector\ - wchar.h\ - wctype.h -RT_HEADERS= cxxabi.h\ - unwind.h\ - unwind-arm.h\ - unwind-itanium.h +STD_HEADERS+= __bit_reference +STD_HEADERS+= __bsd_locale_defaults.h +STD_HEADERS+= __bsd_locale_fallbacks.h +STD_HEADERS+= __config +STD_HEADERS+= __debug +STD_HEADERS+= __functional_03 +STD_HEADERS+= __functional_base +STD_HEADERS+= __functional_base_03 +STD_HEADERS+= __hash_table +STD_HEADERS+= __libcpp_version +STD_HEADERS+= __locale +STD_HEADERS+= __mutex_base +STD_HEADERS+= __nullptr +STD_HEADERS+= __refstring +STD_HEADERS+= __split_buffer +STD_HEADERS+= __sso_allocator +STD_HEADERS+= __std_stream +STD_HEADERS+= __string +STD_HEADERS+= __threading_support +STD_HEADERS+= __tree +STD_HEADERS+= __tuple +STD_HEADERS+= __undef_min_max +STD_HEADERS+= algorithm +STD_HEADERS+= any +STD_HEADERS+= array +STD_HEADERS+= atomic +STD_HEADERS+= bitset +STD_HEADERS+= cassert +STD_HEADERS+= ccomplex +STD_HEADERS+= cctype +STD_HEADERS+= cerrno +STD_HEADERS+= cfenv +STD_HEADERS+= cfloat +STD_HEADERS+= chrono +STD_HEADERS+= cinttypes +STD_HEADERS+= ciso646 +STD_HEADERS+= climits +STD_HEADERS+= clocale +STD_HEADERS+= cmath +STD_HEADERS+= codecvt +STD_HEADERS+= complex +STD_HEADERS+= complex.h +STD_HEADERS+= condition_variable +STD_HEADERS+= csetjmp +STD_HEADERS+= csignal +STD_HEADERS+= cstdarg +STD_HEADERS+= cstdbool +STD_HEADERS+= cstddef +STD_HEADERS+= cstdint +STD_HEADERS+= cstdio +STD_HEADERS+= cstdlib +STD_HEADERS+= cstring +STD_HEADERS+= ctgmath +STD_HEADERS+= ctime +STD_HEADERS+= ctype.h +STD_HEADERS+= cwchar +STD_HEADERS+= cwctype +STD_HEADERS+= deque +STD_HEADERS+= errno.h +STD_HEADERS+= exception +STD_HEADERS+= float.h +STD_HEADERS+= forward_list +STD_HEADERS+= fstream +STD_HEADERS+= functional +STD_HEADERS+= future +STD_HEADERS+= initializer_list +STD_HEADERS+= inttypes.h +STD_HEADERS+= iomanip +STD_HEADERS+= ios +STD_HEADERS+= iosfwd +STD_HEADERS+= iostream +STD_HEADERS+= istream +STD_HEADERS+= iterator +STD_HEADERS+= limits +STD_HEADERS+= limits.h +STD_HEADERS+= list +STD_HEADERS+= locale +STD_HEADERS+= locale.h +STD_HEADERS+= map +STD_HEADERS+= math.h +STD_HEADERS+= memory +STD_HEADERS+= mutex +STD_HEADERS+= new +STD_HEADERS+= numeric +STD_HEADERS+= optional +STD_HEADERS+= ostream +STD_HEADERS+= queue +STD_HEADERS+= random +STD_HEADERS+= ratio +STD_HEADERS+= regex +STD_HEADERS+= scoped_allocator +STD_HEADERS+= set +STD_HEADERS+= setjmp.h +STD_HEADERS+= shared_mutex +STD_HEADERS+= sstream +STD_HEADERS+= stack +STD_HEADERS+= stdbool.h +STD_HEADERS+= stddef.h +STD_HEADERS+= stdexcept +STD_HEADERS+= stdint.h +STD_HEADERS+= stdio.h +STD_HEADERS+= stdlib.h +STD_HEADERS+= streambuf +STD_HEADERS+= string +STD_HEADERS+= string.h +STD_HEADERS+= string_view +STD_HEADERS+= strstream +STD_HEADERS+= system_error +STD_HEADERS+= tgmath.h +STD_HEADERS+= thread +STD_HEADERS+= tuple +STD_HEADERS+= type_traits +STD_HEADERS+= typeindex +STD_HEADERS+= typeinfo +STD_HEADERS+= unordered_map +STD_HEADERS+= unordered_set +STD_HEADERS+= utility +STD_HEADERS+= valarray +STD_HEADERS+= variant +STD_HEADERS+= vector +STD_HEADERS+= wchar.h +STD_HEADERS+= wctype.h + +RT_HEADERS+= cxxabi.h +RT_HEADERS+= unwind-arm.h +RT_HEADERS+= unwind-itanium.h +RT_HEADERS+= unwind.h .for hdr in ${STD_HEADERS} STD+= ${HDRDIR}/${hdr} @@ -207,44 +208,44 @@ STD+= ${_LIBCXXRTDIR}/${hdr} .endfor STDDIR= ${CXXINCLUDEDIR} -EXP_HEADERS= __config\ - __memory\ - algorithm\ - any\ - chrono\ - deque\ - dynarray\ - filesystem\ - forward_list\ - functional\ - iterator\ - list\ - map\ - memory_resource\ - numeric\ - optional\ - propagate_const\ - ratio\ - regex\ - set\ - string\ - string_view\ - system_error\ - tuple\ - type_traits\ - unordered_map\ - unordered_set\ - utility\ - vector +EXP_HEADERS+= __config +EXP_HEADERS+= __memory +EXP_HEADERS+= algorithm +EXP_HEADERS+= any +EXP_HEADERS+= chrono +EXP_HEADERS+= deque +EXP_HEADERS+= dynarray +EXP_HEADERS+= filesystem +EXP_HEADERS+= forward_list +EXP_HEADERS+= functional +EXP_HEADERS+= iterator +EXP_HEADERS+= list +EXP_HEADERS+= map +EXP_HEADERS+= memory_resource +EXP_HEADERS+= numeric +EXP_HEADERS+= optional +EXP_HEADERS+= propagate_const +EXP_HEADERS+= ratio +EXP_HEADERS+= regex +EXP_HEADERS+= set +EXP_HEADERS+= string +EXP_HEADERS+= string_view +EXP_HEADERS+= system_error +EXP_HEADERS+= tuple +EXP_HEADERS+= type_traits +EXP_HEADERS+= unordered_map +EXP_HEADERS+= unordered_set +EXP_HEADERS+= utility +EXP_HEADERS+= vector .for hdr in ${EXP_HEADERS} EXP+= ${HDRDIR}/experimental/${hdr} .endfor EXPDIR= ${CXXINCLUDEDIR}/experimental -EXT_HEADERS= __hash\ - hash_map\ - hash_set +EXT_HEADERS+= __hash +EXT_HEADERS+= hash_map +EXT_HEADERS+= hash_set .for hdr in ${EXT_HEADERS} EXT+= ${HDRDIR}/ext/${hdr} From owner-svn-src-projects@freebsd.org Mon Jan 9 22:49:39 2017 Return-Path: Delivered-To: svn-src-projects@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 AA0B4CA8283 for ; Mon, 9 Jan 2017 22:49:39 +0000 (UTC) (envelope-from dim@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 608761D08; Mon, 9 Jan 2017 22:49:39 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v09MncCm029761; Mon, 9 Jan 2017 22:49:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v09MnZ8b029730; Mon, 9 Jan 2017 22:49:35 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701092249.v09MnZ8b029730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 9 Jan 2017 22:49:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311836 - in projects/clang400-import/contrib/compiler-rt/lib: asan builtins/arm lsan sanitizer_common tsan/rtl ubsan X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 22:49:39 -0000 Author: dim Date: Mon Jan 9 22:49:35 2017 New Revision: 311836 URL: https://svnweb.freebsd.org/changeset/base/311836 Log: Merge compiler-rt trunk r291476. Added: projects/clang400-import/contrib/compiler-rt/lib/asan/weak_symbols.txt - copied unchanged from r311835, vendor/compiler-rt/dist/lib/asan/weak_symbols.txt projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/weak_symbols.txt - copied unchanged from r311835, vendor/compiler-rt/dist/lib/sanitizer_common/weak_symbols.txt projects/clang400-import/contrib/compiler-rt/lib/ubsan/weak_symbols.txt - copied unchanged from r311835, vendor/compiler-rt/dist/lib/ubsan/weak_symbols.txt Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_report.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_rtl.cc projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_common.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan.syms.extra projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc Directory Properties: projects/clang400-import/contrib/compiler-rt/ (props changed) Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_report.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_report.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_report.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -179,6 +179,8 @@ class ScopedInErrorReport { if (common_flags()->print_cmdline) PrintCmdline(); + if (common_flags()->print_module_map == 2) PrintModuleMap(); + // Copy the message buffer so that we could start logging without holding a // lock that gets aquired during printing. InternalScopedBuffer buffer_copy(kErrorMessageBufferSize); Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_rtl.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_rtl.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_rtl.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -46,6 +46,7 @@ static void AsanDie() { // Don't die twice - run a busy loop. while (1) { } } + if (common_flags()->print_module_map >= 1) PrintModuleMap(); if (flags()->sleep_before_dying) { Report("Sleeping for %d second(s)\n", flags()->sleep_before_dying); SleepForSeconds(flags()->sleep_before_dying); Copied: projects/clang400-import/contrib/compiler-rt/lib/asan/weak_symbols.txt (from r311835, vendor/compiler-rt/dist/lib/asan/weak_symbols.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/weak_symbols.txt Mon Jan 9 22:49:35 2017 (r311836, copy of r311835, vendor/compiler-rt/dist/lib/asan/weak_symbols.txt) @@ -0,0 +1,3 @@ +___asan_default_options +___asan_default_suppressions +___asan_on_error Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S Mon Jan 9 22:49:35 2017 (r311836) @@ -26,10 +26,10 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmp bl SYMBOL_NAME(__ ## cond ## sf2) SEPARATOR \ cmp r0, #0 SEPARATOR \ b ## cond 1f SEPARATOR \ - mov r0, #0 SEPARATOR \ + movs r0, #0 SEPARATOR \ pop { r4, pc } SEPARATOR \ 1: SEPARATOR \ - mov r0, #1 SEPARATOR \ + movs r0, #1 SEPARATOR \ pop { r4, pc } SEPARATOR \ END_COMPILERRT_FUNCTION(__aeabi_fcmp ## cond) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S Mon Jan 9 22:49:35 2017 (r311836) @@ -47,27 +47,50 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2) // Make copies of a and b with the sign bit shifted off the top. These will // be used to detect zeros and NaNs. +#if __ARM_ARCH_ISA_THUMB == 1 + push {r6, lr} + lsls r2, r0, #1 + lsls r3, r1, #1 +#else mov r2, r0, lsl #1 mov r3, r1, lsl #1 +#endif // We do the comparison in three stages (ignoring NaN values for the time // being). First, we orr the absolute values of a and b; this sets the Z // flag if both a and b are zero (of either sign). The shift of r3 doesn't // effect this at all, but it *does* make sure that the C flag is clear for // the subsequent operations. +#if __ARM_ARCH_ISA_THUMB == 1 + lsrs r6, r3, #1 + orrs r6, r2, r6 +#else orrs r12, r2, r3, lsr #1 - +#endif // Next, we check if a and b have the same or different signs. If they have // opposite signs, this eor will set the N flag. +#if __ARM_ARCH_ISA_THUMB == 1 + beq 1f + movs r6, r0 + eors r6, r1 +1: +#else it ne eorsne r12, r0, r1 +#endif // If a and b are equal (either both zeros or bit identical; again, we're // ignoring NaNs for now), this subtract will zero out r0. If they have the // same sign, the flags are updated as they would be for a comparison of the // absolute values of a and b. +#if __ARM_ARCH_ISA_THUMB == 1 + bmi 1f + subs r0, r2, r3 +1: +#else it pl subspl r0, r2, r3 +#endif // If a is smaller in magnitude than b and both have the same sign, place // the negation of the sign of b in r0. Thus, if both are negative and @@ -79,30 +102,69 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2) // still clear from the shift argument in orrs; if a is positive and b // negative, this places 0 in r0; if a is negative and b positive, -1 is // placed in r0. +#if __ARM_ARCH_ISA_THUMB == 1 + bhs 1f + // Here if a and b have the same sign and absA < absB, the result is thus + // b < 0 ? 1 : -1. Same if a and b have the opposite sign (ignoring Nan). + movs r0, #1 + lsrs r1, #31 + bne LOCAL_LABEL(CHECK_NAN) + negs r0, r0 + b LOCAL_LABEL(CHECK_NAN) +1: +#else it lo mvnlo r0, r1, asr #31 +#endif // If a is greater in magnitude than b and both have the same sign, place // the sign of b in r0. Thus, if both are negative and a < b, -1 is placed // in r0, which is the desired result. Conversely, if both are positive // and a > b, zero is placed in r0. +#if __ARM_ARCH_ISA_THUMB == 1 + bls 1f + // Here both have the same sign and absA > absB. + movs r0, #1 + lsrs r1, #31 + beq LOCAL_LABEL(CHECK_NAN) + negs r0, r0 +1: +#else it hi movhi r0, r1, asr #31 +#endif // If you've been keeping track, at this point r0 contains -1 if a < b and // 0 if a >= b. All that remains to be done is to set it to 1 if a > b. // If a == b, then the Z flag is set, so we can get the correct final value // into r0 by simply or'ing with 1 if Z is clear. + // For Thumb-1, r0 contains -1 if a < b, 0 if a > b and 0 if a == b. +#if __ARM_ARCH_ISA_THUMB != 1 it ne orrne r0, r0, #1 +#endif // Finally, we need to deal with NaNs. If either argument is NaN, replace // the value in r0 with 1. +#if __ARM_ARCH_ISA_THUMB == 1 +LOCAL_LABEL(CHECK_NAN): + movs r6, #0xff + lsls r6, #24 + cmp r2, r6 + bhi 1f + cmp r3, r6 +1: + bls 2f + movs r0, #1 +2: + pop {r6, pc} +#else cmp r2, #0xff000000 ite ls cmpls r3, #0xff000000 movhi r0, #1 JMP(lr) +#endif END_COMPILERRT_FUNCTION(__eqsf2) DEFINE_COMPILERRT_FUNCTION_ALIAS(__lesf2, __eqsf2) DEFINE_COMPILERRT_FUNCTION_ALIAS(__ltsf2, __eqsf2) @@ -111,11 +173,48 @@ DEFINE_COMPILERRT_FUNCTION_ALIAS(__nesf2 .p2align 2 DEFINE_COMPILERRT_FUNCTION(__gtsf2) // Identical to the preceding except in that we return -1 for NaN values. - // Given that the two paths share so much code, one might be tempted to + // Given that the two paths share so much code, one might be tempted to // unify them; however, the extra code needed to do so makes the code size // to performance tradeoff very hard to justify for such small functions. - mov r2, r0, lsl #1 - mov r3, r1, lsl #1 +#if __ARM_ARCH_ISA_THUMB == 1 + push {r6, lr} + lsls r2, r0, #1 + lsls r3, r1, #1 + lsrs r6, r3, #1 + orrs r6, r2, r6 + beq 1f + movs r6, r0 + eors r6, r1 +1: + bmi 2f + subs r0, r2, r3 +2: + bhs 3f + movs r0, #1 + lsrs r1, #31 + bne LOCAL_LABEL(CHECK_NAN_2) + negs r0, r0 + b LOCAL_LABEL(CHECK_NAN_2) +3: + bls 4f + movs r0, #1 + lsrs r1, #31 + beq LOCAL_LABEL(CHECK_NAN_2) + negs r0, r0 +4: +LOCAL_LABEL(CHECK_NAN_2): + movs r6, #0xff + lsls r6, #24 + cmp r2, r6 + bhi 5f + cmp r3, r6 +5: + bls 6f + movs r0, #1 + negs r0, r0 +6: + pop {r6, pc} +#else orrs r12, r2, r3, lsr #1 it ne eorsne r12, r0, r1 @@ -132,19 +231,32 @@ DEFINE_COMPILERRT_FUNCTION(__gtsf2) cmpls r3, #0xff000000 movhi r0, #-1 JMP(lr) +#endif END_COMPILERRT_FUNCTION(__gtsf2) DEFINE_COMPILERRT_FUNCTION_ALIAS(__gesf2, __gtsf2) .p2align 2 DEFINE_COMPILERRT_FUNCTION(__unordsf2) // Return 1 for NaN values, 0 otherwise. - mov r2, r0, lsl #1 - mov r3, r1, lsl #1 - mov r0, #0 + lsls r2, r0, #1 + lsls r3, r1, #1 + movs r0, #0 +#if __ARM_ARCH_ISA_THUMB == 1 + movs r1, #0xff + lsls r1, #24 + cmp r2, r1 + bhi 1f + cmp r3, r1 +1: + bls 2f + movs r0, #1 +2: +#else cmp r2, #0xff000000 ite ls cmpls r3, #0xff000000 movhi r0, #1 +#endif JMP(lr) END_COMPILERRT_FUNCTION(__unordsf2) Modified: projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -258,4 +258,17 @@ SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_get_allocated_size(const void *p) { return GetMallocUsableSize(p); } + +#if !SANITIZER_SUPPORTS_WEAK_HOOKS +// Provide default (no-op) implementation of malloc hooks. +SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE +void __sanitizer_malloc_hook(void *ptr, uptr size) { + (void)ptr; + (void)size; +} +SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE +void __sanitizer_free_hook(void *ptr) { + (void)ptr; +} +#endif } // extern "C" Modified: projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_common.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -758,5 +758,10 @@ SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_ int __lsan_is_turned_off() { return 0; } + +SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE +const char *__lsan_default_suppressions() { + return ""; +} #endif } // extern "C" Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -270,6 +270,8 @@ void LoadedModule::set(const char *modul void LoadedModule::clear() { InternalFree(full_name_); + base_address_ = 0; + max_executable_address_ = 0; full_name_ = nullptr; arch_ = kModuleArchUnknown; internal_memset(uuid_, 0, kModuleUUIDSize); @@ -285,6 +287,8 @@ void LoadedModule::addAddressRange(uptr void *mem = InternalAlloc(sizeof(AddressRange)); AddressRange *r = new(mem) AddressRange(beg, end, executable); ranges_.push_back(r); + if (executable && end > max_executable_address_) + max_executable_address_ = end; } bool LoadedModule::containsAddress(uptr address) const { Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h Mon Jan 9 22:49:35 2017 (r311836) @@ -283,6 +283,7 @@ void UpdateProcessName(); void CacheBinaryName(); void DisableCoreDumperIfNecessary(); void DumpProcessMap(); +void PrintModuleMap(); bool FileExists(const char *filename); const char *GetEnv(const char *name); bool SetEnv(const char *name, const char *value); @@ -665,6 +666,32 @@ enum ModuleArch { kModuleArchARM64 }; +// When adding a new architecture, don't forget to also update +// script/asan_symbolize.py and sanitizer_symbolizer_libcdep.cc. +inline const char *ModuleArchToString(ModuleArch arch) { + switch (arch) { + case kModuleArchUnknown: + return ""; + case kModuleArchI386: + return "i386"; + case kModuleArchX86_64: + return "x86_64"; + case kModuleArchX86_64H: + return "x86_64h"; + case kModuleArchARMV6: + return "armv6"; + case kModuleArchARMV7: + return "armv7"; + case kModuleArchARMV7S: + return "armv7s"; + case kModuleArchARMV7K: + return "armv7k"; + case kModuleArchARM64: + return "arm64"; + } + CHECK(0 && "Invalid module arch"); +} + const uptr kModuleUUIDSize = 16; // Represents a binary loaded into virtual memory (e.g. this can be an @@ -674,6 +701,7 @@ class LoadedModule { LoadedModule() : full_name_(nullptr), base_address_(0), + max_executable_address_(0), arch_(kModuleArchUnknown), instrumented_(false) { internal_memset(uuid_, 0, kModuleUUIDSize); @@ -688,6 +716,7 @@ class LoadedModule { const char *full_name() const { return full_name_; } uptr base_address() const { return base_address_; } + uptr max_executable_address() const { return max_executable_address_; } ModuleArch arch() const { return arch_; } const u8 *uuid() const { return uuid_; } bool instrumented() const { return instrumented_; } @@ -707,6 +736,7 @@ class LoadedModule { private: char *full_name_; // Owned. uptr base_address_; + uptr max_executable_address_; ModuleArch arch_; u8 uuid_[kModuleUUIDSize]; bool instrumented_; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc Mon Jan 9 22:49:35 2017 (r311836) @@ -74,6 +74,9 @@ COMMON_FLAG(bool, allocator_may_return_n COMMON_FLAG(bool, print_summary, true, "If false, disable printing error summaries in addition to error " "reports.") +COMMON_FLAG(int, print_module_map, 0, + "OS X only. 0 = don't print, 1 = print only once before process " + "exits, 2 = print after each report.") COMMON_FLAG(bool, check_printf, true, "Check printf arguments.") COMMON_FLAG(bool, handle_segv, true, "If set, registers the tool's custom SIGSEGV/SIGBUS handler.") Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h Mon Jan 9 22:49:35 2017 (r311836) @@ -32,7 +32,7 @@ # define SANITIZER_WEAK_ATTRIBUTE __attribute__((weak)) #endif -#if (SANITIZER_LINUX || SANITIZER_WINDOWS) && !SANITIZER_GO +#if (SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_WINDOWS) && !SANITIZER_GO # define SANITIZER_SUPPORTS_WEAK_HOOKS 1 #else # define SANITIZER_SUPPORTS_WEAK_HOOKS 0 Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -1393,6 +1393,8 @@ void MaybeReexec() { // No need to re-exec on Linux. } +void PrintModuleMap() { } + uptr FindAvailableMemoryRange(uptr size, uptr alignment, uptr left_padding) { UNREACHABLE("FindAvailableMemoryRange is not available"); return 0; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -26,10 +26,7 @@ #include "sanitizer_procmaps.h" #include "sanitizer_stacktrace.h" -#if SANITIZER_ANDROID || SANITIZER_FREEBSD #include // for dlsym() -#endif - #include #include #include Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -854,6 +854,36 @@ void SignalContext::DumpAllRegisters(voi # undef DUMPREG } +static inline bool CompareBaseAddress(const LoadedModule &a, + const LoadedModule &b) { + return a.base_address() < b.base_address(); +} + +void FormatUUID(char *out, uptr size, const u8 *uuid) { + internal_snprintf(out, size, + "<%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-" + "%02X%02X%02X%02X%02X%02X>", + uuid[0], uuid[1], uuid[2], uuid[3], uuid[4], uuid[5], + uuid[6], uuid[7], uuid[8], uuid[9], uuid[10], uuid[11], + uuid[12], uuid[13], uuid[14], uuid[15]); +} + +void PrintModuleMap() { + Printf("Process module map:\n"); + MemoryMappingLayout memory_mapping(false); + InternalMmapVector modules(/*initial_capacity*/ 128); + memory_mapping.DumpListOfModules(&modules); + InternalSort(&modules, modules.size(), CompareBaseAddress); + for (uptr i = 0; i < modules.size(); ++i) { + char uuid_str[128]; + FormatUUID(uuid_str, sizeof(uuid_str), modules[i].uuid()); + Printf("0x%zx-0x%zx %s (%s) %s\n", modules[i].base_address(), + modules[i].max_executable_address(), modules[i].full_name(), + ModuleArchToString(modules[i].arch()), uuid_str); + } + Printf("End of module map.\n"); +} + } // namespace __sanitizer #endif // SANITIZER_MAC Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -43,7 +43,7 @@ static int AppendChar(char **buff, const // on the value of |pad_with_zero|. static int AppendNumber(char **buff, const char *buff_end, u64 absolute_value, u8 base, u8 minimal_num_length, bool pad_with_zero, - bool negative) { + bool negative, bool uppercase) { uptr const kMaxLen = 30; RAW_CHECK(base == 10 || base == 16); RAW_CHECK(base == 10 || !negative); @@ -76,23 +76,25 @@ static int AppendNumber(char **buff, con if (negative && !pad_with_zero) result += AppendChar(buff, buff_end, '-'); for (; pos >= 0; pos--) { char digit = static_cast(num_buffer[pos]); - result += AppendChar(buff, buff_end, (digit < 10) ? '0' + digit - : 'a' + digit - 10); + digit = (digit < 10) ? '0' + digit : (uppercase ? 'A' : 'a') + digit - 10; + result += AppendChar(buff, buff_end, digit); } return result; } static int AppendUnsigned(char **buff, const char *buff_end, u64 num, u8 base, - u8 minimal_num_length, bool pad_with_zero) { + u8 minimal_num_length, bool pad_with_zero, + bool uppercase) { return AppendNumber(buff, buff_end, num, base, minimal_num_length, - pad_with_zero, false /* negative */); + pad_with_zero, false /* negative */, uppercase); } static int AppendSignedDecimal(char **buff, const char *buff_end, s64 num, u8 minimal_num_length, bool pad_with_zero) { bool negative = (num < 0); return AppendNumber(buff, buff_end, (u64)(negative ? -num : num), 10, - minimal_num_length, pad_with_zero, negative); + minimal_num_length, pad_with_zero, negative, + false /* uppercase */); } static int AppendString(char **buff, const char *buff_end, int precision, @@ -112,14 +114,16 @@ static int AppendPointer(char **buff, co int result = 0; result += AppendString(buff, buff_end, -1, "0x"); result += AppendUnsigned(buff, buff_end, ptr_value, 16, - SANITIZER_POINTER_FORMAT_LENGTH, true); + SANITIZER_POINTER_FORMAT_LENGTH, + true /* pad_with_zero */, false /* uppercase */); return result; } int VSNPrintf(char *buff, int buff_length, const char *format, va_list args) { static const char *kPrintfFormatsHelp = - "Supported Printf formats: %([0-9]*)?(z|ll)?{d,u,x}; %p; %(\\.\\*)?s; %c\n"; + "Supported Printf formats: %([0-9]*)?(z|ll)?{d,u,x,X}; %p; %(\\.\\*)?s; " + "%c\n"; RAW_CHECK(format); RAW_CHECK(buff_length > 0); const char *buff_end = &buff[buff_length - 1]; @@ -164,12 +168,14 @@ int VSNPrintf(char *buff, int buff_lengt break; } case 'u': - case 'x': { + case 'x': + case 'X': { uval = have_ll ? va_arg(args, u64) : have_z ? va_arg(args, uptr) : va_arg(args, unsigned); - result += AppendUnsigned(&buff, buff_end, uval, - (*cur == 'u') ? 10 : 16, width, pad_with_zero); + bool uppercase = (*cur == 'X'); + result += AppendUnsigned(&buff, buff_end, uval, (*cur == 'u') ? 10 : 16, + width, pad_with_zero, uppercase); break; } case 'p': { Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -93,7 +93,7 @@ void RenderFrame(InternalScopedString *b vs_style, strip_path_prefix); } else if (info.module) { RenderModuleLocation(buffer, info.module, info.module_offset, - strip_path_prefix); + info.module_arch, strip_path_prefix); } else { buffer->append("()"); } @@ -103,8 +103,9 @@ void RenderFrame(InternalScopedString *b if (info.address & kExternalPCBit) {} // There PCs are not meaningful. else if (info.module) - buffer->append("(%s+%p)", StripModuleName(info.module), - (void *)info.module_offset); + // Always strip the module name for %M. + RenderModuleLocation(buffer, StripModuleName(info.module), + info.module_offset, info.module_arch, ""); else buffer->append("(%p)", (void *)info.address); break; @@ -165,9 +166,13 @@ void RenderSourceLocation(InternalScoped } void RenderModuleLocation(InternalScopedString *buffer, const char *module, - uptr offset, const char *strip_path_prefix) { - buffer->append("(%s+0x%zx)", StripPathPrefix(module, strip_path_prefix), - offset); + uptr offset, ModuleArch arch, + const char *strip_path_prefix) { + buffer->append("(%s", StripPathPrefix(module, strip_path_prefix)); + if (arch != kModuleArchUnknown) { + buffer->append(":%s", ModuleArchToString(arch)); + } + buffer->append("+0x%zx)", offset); } } // namespace __sanitizer Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h Mon Jan 9 22:49:35 2017 (r311836) @@ -57,7 +57,8 @@ void RenderSourceLocation(InternalScoped const char *strip_path_prefix); void RenderModuleLocation(InternalScopedString *buffer, const char *module, - uptr offset, const char *strip_path_prefix); + uptr offset, ModuleArch arch, + const char *strip_path_prefix); // Same as RenderFrame, but for data section (global variables). // Accepts %s, %l from above. Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -33,9 +33,11 @@ void AddressInfo::Clear() { function_offset = kUnknown; } -void AddressInfo::FillModuleInfo(const char *mod_name, uptr mod_offset) { +void AddressInfo::FillModuleInfo(const char *mod_name, uptr mod_offset, + ModuleArch mod_arch) { module = internal_strdup(mod_name); module_offset = mod_offset; + module_arch = mod_arch; } SymbolizedStack::SymbolizedStack() : next(nullptr), info() {} Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h Mon Jan 9 22:49:35 2017 (r311836) @@ -31,6 +31,7 @@ struct AddressInfo { char *module; uptr module_offset; + ModuleArch module_arch; static const uptr kUnknown = ~(uptr)0; char *function; @@ -43,7 +44,7 @@ struct AddressInfo { AddressInfo(); // Deletes all strings and resets all fields. void Clear(); - void FillModuleInfo(const char *mod_name, uptr mod_offset); + void FillModuleInfo(const char *mod_name, uptr mod_offset, ModuleArch arch); }; // Linked list of symbolized frames (each frame is described by AddressInfo). @@ -65,6 +66,8 @@ struct DataInfo { // (de)allocated using sanitizer internal allocator. char *module; uptr module_offset; + ModuleArch module_arch; + char *file; uptr line; char *name; @@ -143,7 +146,8 @@ class Symbolizer final { static Symbolizer *PlatformInit(); bool FindModuleNameAndOffsetForAddress(uptr address, const char **module_name, - uptr *module_offset); + uptr *module_offset, + ModuleArch *module_arch); ListOfModules modules_; // If stale, need to reload the modules before looking up addresses. bool modules_fresh_; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h Mon Jan 9 22:49:35 2017 (r311836) @@ -124,8 +124,8 @@ class LLVMSymbolizer : public Symbolizer bool SymbolizeData(uptr addr, DataInfo *info) override; private: - const char *SendCommand(bool is_data, const char *module_name, - uptr module_offset); + const char *FormatAndSendCommand(bool is_data, const char *module_name, + uptr module_offset, ModuleArch arch); LLVMSymbolizerProcess *symbolizer_process_; static const uptr kBufferSize = 16 * 1024; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -64,11 +64,13 @@ SymbolizedStack *Symbolizer::SymbolizePC BlockingMutexLock l(&mu_); const char *module_name; uptr module_offset; + ModuleArch arch; SymbolizedStack *res = SymbolizedStack::New(addr); - if (!FindModuleNameAndOffsetForAddress(addr, &module_name, &module_offset)) + if (!FindModuleNameAndOffsetForAddress(addr, &module_name, &module_offset, + &arch)) return res; // Always fill data about module name and offset. - res->info.FillModuleInfo(module_name, module_offset); + res->info.FillModuleInfo(module_name, module_offset, arch); for (auto &tool : tools_) { SymbolizerScope sym_scope(this); if (tool.SymbolizePC(addr, res)) { @@ -82,11 +84,14 @@ bool Symbolizer::SymbolizeData(uptr addr BlockingMutexLock l(&mu_); const char *module_name; uptr module_offset; - if (!FindModuleNameAndOffsetForAddress(addr, &module_name, &module_offset)) + ModuleArch arch; + if (!FindModuleNameAndOffsetForAddress(addr, &module_name, &module_offset, + &arch)) return false; info->Clear(); info->module = internal_strdup(module_name); info->module_offset = module_offset; + info->module_arch = arch; for (auto &tool : tools_) { SymbolizerScope sym_scope(this); if (tool.SymbolizeData(addr, info)) { @@ -100,8 +105,9 @@ bool Symbolizer::GetModuleNameAndOffsetF uptr *module_address) { BlockingMutexLock l(&mu_); const char *internal_module_name = nullptr; + ModuleArch arch; if (!FindModuleNameAndOffsetForAddress(pc, &internal_module_name, - module_address)) + module_address, &arch)) return false; if (module_name) @@ -134,12 +140,14 @@ void Symbolizer::PrepareForSandboxing() bool Symbolizer::FindModuleNameAndOffsetForAddress(uptr address, const char **module_name, - uptr *module_offset) { + uptr *module_offset, + ModuleArch *module_arch) { const LoadedModule *module = FindModuleForAddress(address); if (module == nullptr) return false; *module_name = module->full_name(); *module_offset = address - module->base_address(); + *module_arch = module->arch(); return true; } @@ -197,6 +205,8 @@ class LLVMSymbolizerProcess : public Sym buffer[length - 2] == '\n'; } + // When adding a new architecture, don't forget to also update + // script/asan_symbolize.py and sanitizer_common.h. void GetArgV(const char *path_to_binary, const char *(&argv)[kArgVMax]) const override { #if defined(__x86_64h__) @@ -284,7 +294,8 @@ void ParseSymbolizePCOutput(const char * top_frame = false; } else { cur = SymbolizedStack::New(res->info.address); - cur->info.FillModuleInfo(res->info.module, res->info.module_offset); + cur->info.FillModuleInfo(res->info.module, res->info.module_offset, + res->info.module_arch); last->next = cur; last = cur; } @@ -317,8 +328,10 @@ void ParseSymbolizeDataOutput(const char } bool LLVMSymbolizer::SymbolizePC(uptr addr, SymbolizedStack *stack) { - if (const char *buf = SendCommand(/*is_data*/ false, stack->info.module, - stack->info.module_offset)) { + AddressInfo *info = &stack->info; + const char *buf = FormatAndSendCommand( + /*is_data*/ false, info->module, info->module_offset, info->module_arch); + if (buf) { ParseSymbolizePCOutput(buf, stack); return true; } @@ -326,8 +339,9 @@ bool LLVMSymbolizer::SymbolizePC(uptr ad } bool LLVMSymbolizer::SymbolizeData(uptr addr, DataInfo *info) { - if (const char *buf = - SendCommand(/*is_data*/ true, info->module, info->module_offset)) { + const char *buf = FormatAndSendCommand( + /*is_data*/ true, info->module, info->module_offset, info->module_arch); + if (buf) { ParseSymbolizeDataOutput(buf, info); info->start += (addr - info->module_offset); // Add the base address. return true; @@ -335,11 +349,19 @@ bool LLVMSymbolizer::SymbolizeData(uptr return false; } -const char *LLVMSymbolizer::SendCommand(bool is_data, const char *module_name, - uptr module_offset) { +const char *LLVMSymbolizer::FormatAndSendCommand(bool is_data, + const char *module_name, + uptr module_offset, + ModuleArch arch) { CHECK(module_name); - internal_snprintf(buffer_, kBufferSize, "%s\"%s\" 0x%zx\n", - is_data ? "DATA " : "", module_name, module_offset); + const char *is_data_str = is_data ? "DATA " : ""; + if (arch == kModuleArchUnknown) { + internal_snprintf(buffer_, kBufferSize, "%s\"%s\" 0x%zx\n", is_data_str, + module_name, module_offset); + } else { + internal_snprintf(buffer_, kBufferSize, "%s\"%s:%s\" 0x%zx\n", is_data_str, + module_name, ModuleArchToString(arch), module_offset); + } return symbolizer_process_->SendCommand(buffer_); } Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -388,6 +388,8 @@ void DumpProcessMap() { } #endif +void PrintModuleMap() { } + void DisableCoreDumperIfNecessary() { // Do nothing. } Copied: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/weak_symbols.txt (from r311835, vendor/compiler-rt/dist/lib/sanitizer_common/weak_symbols.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/weak_symbols.txt Mon Jan 9 22:49:35 2017 (r311836, copy of r311835, vendor/compiler-rt/dist/lib/sanitizer_common/weak_symbols.txt) @@ -0,0 +1,6 @@ +___sanitizer_free_hook +___sanitizer_malloc_hook +___sanitizer_symbolize_code +___sanitizer_symbolize_data +___sanitizer_symbolize_demangle +___sanitizer_symbolize_flush Modified: projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan.syms.extra ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan.syms.extra Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan.syms.extra Mon Jan 9 22:49:35 2017 (r311836) @@ -1,4 +1,5 @@ __tsan_init +__tsan_flush_memory __tsan_read* __tsan_write* __tsan_vptr* Modified: projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -28,6 +28,10 @@ void __tsan_init() { Initialize(cur_thread()); } +void __tsan_flush_memory() { + FlushShadowMemory(); +} + void __tsan_read16(void *addr) { MemoryRead(cur_thread(), CALLERPC, (uptr)addr, kSizeLog8); MemoryRead(cur_thread(), CALLERPC, (uptr)addr + 8, kSizeLog8); Modified: projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h Mon Jan 9 22:49:35 2017 (r311836) @@ -32,6 +32,8 @@ extern "C" { // before any instrumented code is executed and before any call to malloc. SANITIZER_INTERFACE_ATTRIBUTE void __tsan_init(); +SANITIZER_INTERFACE_ATTRIBUTE void __tsan_flush_memory(); + SANITIZER_INTERFACE_ATTRIBUTE void __tsan_read1(void *addr); SANITIZER_INTERFACE_ATTRIBUTE void __tsan_read2(void *addr); SANITIZER_INTERFACE_ATTRIBUTE void __tsan_read4(void *addr); Modified: projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -358,6 +358,8 @@ void PrintReport(const ReportDesc *rep) ReportErrorSummary(rep_typ_str, frame->info); } + if (common_flags()->print_module_map == 2) PrintModuleMap(); + Printf("==================\n"); } Modified: projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -404,6 +404,8 @@ void Initialize(ThreadState *thr) { int Finalize(ThreadState *thr) { bool failed = false; + if (common_flags()->print_module_map == 1) PrintModuleMap(); + if (flags()->atexit_sleep_ms > 0 && ThreadCount(thr) > 1) SleepForMillis(flags()->atexit_sleep_ms); Modified: projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc Mon Jan 9 22:46:47 2017 (r311835) +++ projects/clang400-import/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc Mon Jan 9 22:49:35 2017 (r311836) @@ -157,7 +157,7 @@ static void RenderLocation(InternalScope common_flags()->strip_path_prefix); else if (Info.module) RenderModuleLocation(Buffer, Info.module, Info.module_offset, - common_flags()->strip_path_prefix); + Info.module_arch, common_flags()->strip_path_prefix); else Buffer->append("%p", Info.address); return; Copied: projects/clang400-import/contrib/compiler-rt/lib/ubsan/weak_symbols.txt (from r311835, vendor/compiler-rt/dist/lib/ubsan/weak_symbols.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/compiler-rt/lib/ubsan/weak_symbols.txt Mon Jan 9 22:49:35 2017 (r311836, copy of r311835, vendor/compiler-rt/dist/lib/ubsan/weak_symbols.txt) @@ -0,0 +1 @@ +___ubsan_default_options From owner-svn-src-projects@freebsd.org Tue Jan 10 10:09:13 2017 Return-Path: Delivered-To: svn-src-projects@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 DAC4ACA8D62 for ; Tue, 10 Jan 2017 10:09:13 +0000 (UTC) (envelope-from ngie@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 A96C91978; Tue, 10 Jan 2017 10:09:13 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0AA9Cqp008124; Tue, 10 Jan 2017 10:09:12 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0AA9C3M008123; Tue, 10 Jan 2017 10:09:12 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701101009.v0AA9C3M008123@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Tue, 10 Jan 2017 10:09:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311869 - projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2017 10:09:14 -0000 Author: ngie Date: Tue Jan 10 10:09:12 2017 New Revision: 311869 URL: https://svnweb.freebsd.org/changeset/base/311869 Log: Merge the grammar fix for lib/libc/gen/raise_test:raise_stress MFC after: 3 days Modified: projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_raise.c Directory Properties: projects/bsnmp-ipv6-mib/contrib/netbsd-tests/ (props changed) Modified: projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_raise.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_raise.c Tue Jan 10 10:06:15 2017 (r311868) +++ projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_raise.c Tue Jan 10 10:09:12 2017 (r311869) @@ -1,4 +1,4 @@ -/* $NetBSD: t_raise.c,v 1.5 2011/05/10 12:43:42 jruoho Exp $ */ +/* $NetBSD: t_raise.c,v 1.6 2016/11/03 22:08:31 kamil Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__RCSID("$NetBSD: t_raise.c,v 1.5 2011/05/10 12:43:42 jruoho Exp $"); +__RCSID("$NetBSD: t_raise.c,v 1.6 2016/11/03 22:08:31 kamil Exp $"); #include @@ -180,7 +180,7 @@ ATF_TC_BODY(raise_stress, tc) (void)raise(SIGUSR1); if (count != maxiter) - atf_tc_fail("not all signals were catched"); + atf_tc_fail("not all signals were caught"); } ATF_TP_ADD_TCS(tp) From owner-svn-src-projects@freebsd.org Tue Jan 10 22:13:45 2017 Return-Path: Delivered-To: svn-src-projects@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 8CA4ACAA73F for ; Tue, 10 Jan 2017 22:13:45 +0000 (UTC) (envelope-from dim@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 69CDE1DD7; Tue, 10 Jan 2017 22:13:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0AMDiw9011266; Tue, 10 Jan 2017 22:13:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0AMDiII011261; Tue, 10 Jan 2017 22:13:44 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701102213.v0AMDiII011261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 10 Jan 2017 22:13:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311905 - in projects/clang400-import/lib/libclang_rt: asan asan_dynamic safestack stats ubsan_standalone X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2017 22:13:45 -0000 Author: dim Date: Tue Jan 10 22:13:44 2017 New Revision: 311905 URL: https://svnweb.freebsd.org/changeset/base/311905 Log: Update various libclang_rt Makefiles. Modified: projects/clang400-import/lib/libclang_rt/asan/Makefile projects/clang400-import/lib/libclang_rt/asan_dynamic/Makefile projects/clang400-import/lib/libclang_rt/safestack/Makefile projects/clang400-import/lib/libclang_rt/stats/Makefile projects/clang400-import/lib/libclang_rt/ubsan_standalone/Makefile Modified: projects/clang400-import/lib/libclang_rt/asan/Makefile ============================================================================== --- projects/clang400-import/lib/libclang_rt/asan/Makefile Tue Jan 10 22:01:37 2017 (r311904) +++ projects/clang400-import/lib/libclang_rt/asan/Makefile Tue Jan 10 22:13:44 2017 (r311905) @@ -7,6 +7,8 @@ LIB= clang_rt.asan-${CRTARCH} SRCS+= asan/asan_activation.cc SRCS+= asan/asan_allocator.cc SRCS+= asan/asan_debugging.cc +SRCS+= asan/asan_descriptions.cc +SRCS+= asan/asan_errors.cc SRCS+= asan/asan_fake_stack.cc SRCS+= asan/asan_flags.cc SRCS+= asan/asan_globals.cc @@ -14,8 +16,6 @@ SRCS+= asan/asan_interceptors.cc SRCS+= asan/asan_linux.cc SRCS+= asan/asan_mac.cc SRCS+= asan/asan_malloc_linux.cc -SRCS+= asan/asan_malloc_mac.cc -SRCS+= asan/asan_malloc_win.cc SRCS+= asan/asan_memory_profile.cc SRCS+= asan/asan_poisoning.cc SRCS+= asan/asan_posix.cc @@ -33,10 +33,12 @@ SRCS+= interception/interception_type_t SRCS+= interception/interception_win.cc SRCS+= lsan/lsan_common.cc SRCS+= lsan/lsan_common_linux.cc +SRCS+= sanitizer_common/sancov_flags.cc SRCS+= sanitizer_common/sanitizer_allocator.cc SRCS+= sanitizer_common/sanitizer_common.cc SRCS+= sanitizer_common/sanitizer_common_libcdep.cc SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc +SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc Modified: projects/clang400-import/lib/libclang_rt/asan_dynamic/Makefile ============================================================================== --- projects/clang400-import/lib/libclang_rt/asan_dynamic/Makefile Tue Jan 10 22:01:37 2017 (r311904) +++ projects/clang400-import/lib/libclang_rt/asan_dynamic/Makefile Tue Jan 10 22:13:44 2017 (r311905) @@ -8,6 +8,8 @@ SHLIB_NAME= libclang_rt.asan-${CRTARCH}. SRCS+= asan/asan_activation.cc SRCS+= asan/asan_allocator.cc SRCS+= asan/asan_debugging.cc +SRCS+= asan/asan_descriptions.cc +SRCS+= asan/asan_errors.cc SRCS+= asan/asan_fake_stack.cc SRCS+= asan/asan_flags.cc SRCS+= asan/asan_globals.cc @@ -15,8 +17,6 @@ SRCS+= asan/asan_interceptors.cc SRCS+= asan/asan_linux.cc SRCS+= asan/asan_mac.cc SRCS+= asan/asan_malloc_linux.cc -SRCS+= asan/asan_malloc_mac.cc -SRCS+= asan/asan_malloc_win.cc SRCS+= asan/asan_memory_profile.cc SRCS+= asan/asan_new_delete.cc SRCS+= asan/asan_poisoning.cc @@ -34,10 +34,12 @@ SRCS+= interception/interception_type_t SRCS+= interception/interception_win.cc SRCS+= lsan/lsan_common.cc SRCS+= lsan/lsan_common_linux.cc +SRCS+= sanitizer_common/sancov_flags.cc SRCS+= sanitizer_common/sanitizer_allocator.cc SRCS+= sanitizer_common/sanitizer_common.cc SRCS+= sanitizer_common/sanitizer_common_libcdep.cc SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc +SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc Modified: projects/clang400-import/lib/libclang_rt/safestack/Makefile ============================================================================== --- projects/clang400-import/lib/libclang_rt/safestack/Makefile Tue Jan 10 22:01:37 2017 (r311904) +++ projects/clang400-import/lib/libclang_rt/safestack/Makefile Tue Jan 10 22:13:44 2017 (r311905) @@ -19,7 +19,6 @@ SRCS+= sanitizer_common/sanitizer_flags SRCS+= sanitizer_common/sanitizer_libc.cc SRCS+= sanitizer_common/sanitizer_libignore.cc SRCS+= sanitizer_common/sanitizer_linux.cc -SRCS+= sanitizer_common/sanitizer_linux_s390.cc SRCS+= sanitizer_common/sanitizer_linux_x86_64.S SRCS+= sanitizer_common/sanitizer_mac.cc SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc Modified: projects/clang400-import/lib/libclang_rt/stats/Makefile ============================================================================== --- projects/clang400-import/lib/libclang_rt/stats/Makefile Tue Jan 10 22:01:37 2017 (r311904) +++ projects/clang400-import/lib/libclang_rt/stats/Makefile Tue Jan 10 22:13:44 2017 (r311905) @@ -4,10 +4,12 @@ LIB= clang_rt.stats-${CRTARCH} +SRCS+= sanitizer_common/sancov_flags.cc SRCS+= sanitizer_common/sanitizer_allocator.cc SRCS+= sanitizer_common/sanitizer_common.cc SRCS+= sanitizer_common/sanitizer_common_libcdep.cc SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc +SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc @@ -17,7 +19,6 @@ SRCS+= sanitizer_common/sanitizer_libc. SRCS+= sanitizer_common/sanitizer_libignore.cc SRCS+= sanitizer_common/sanitizer_linux.cc SRCS+= sanitizer_common/sanitizer_linux_libcdep.cc -SRCS+= sanitizer_common/sanitizer_linux_s390.cc SRCS+= sanitizer_common/sanitizer_linux_x86_64.S SRCS+= sanitizer_common/sanitizer_mac.cc SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc Modified: projects/clang400-import/lib/libclang_rt/ubsan_standalone/Makefile ============================================================================== --- projects/clang400-import/lib/libclang_rt/ubsan_standalone/Makefile Tue Jan 10 22:01:37 2017 (r311904) +++ projects/clang400-import/lib/libclang_rt/ubsan_standalone/Makefile Tue Jan 10 22:13:44 2017 (r311905) @@ -4,10 +4,12 @@ LIB= clang_rt.ubsan_standalone-${CRTARCH} +SRCS+= sanitizer_common/sancov_flags.cc SRCS+= sanitizer_common/sanitizer_allocator.cc SRCS+= sanitizer_common/sanitizer_common.cc SRCS+= sanitizer_common/sanitizer_common_libcdep.cc SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc +SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc @@ -17,7 +19,6 @@ SRCS+= sanitizer_common/sanitizer_libc. SRCS+= sanitizer_common/sanitizer_libignore.cc SRCS+= sanitizer_common/sanitizer_linux.cc SRCS+= sanitizer_common/sanitizer_linux_libcdep.cc -SRCS+= sanitizer_common/sanitizer_linux_s390.cc SRCS+= sanitizer_common/sanitizer_linux_x86_64.S SRCS+= sanitizer_common/sanitizer_mac.cc SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc From owner-svn-src-projects@freebsd.org Wed Jan 11 21:05:18 2017 Return-Path: Delivered-To: svn-src-projects@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 9CFAECAA1FB for ; Wed, 11 Jan 2017 21:05:18 +0000 (UTC) (envelope-from dim@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 413971A87; Wed, 11 Jan 2017 21:05:18 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0BL5HKD072217; Wed, 11 Jan 2017 21:05:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0BL5ExS072184; Wed, 11 Jan 2017 21:05:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701112105.v0BL5ExS072184@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 11 Jan 2017 21:05:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311940 - in projects/clang400-import: . contrib/libarchive/libarchive contrib/libarchive/libarchive/test contrib/netbsd-tests/lib/libc contrib/netbsd-tests/lib/libc/c063 contrib/netbsd... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jan 2017 21:05:18 -0000 Author: dim Date: Wed Jan 11 21:05:13 2017 New Revision: 311940 URL: https://svnweb.freebsd.org/changeset/base/311940 Log: Merge ^/head r311812 through r311939. Added: projects/clang400-import/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c - copied unchanged from r311939, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c projects/clang400-import/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.tar.uu - copied unchanged from r311939, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.tar.uu projects/clang400-import/sys/dev/e1000/em_txrx.c - copied unchanged from r311939, head/sys/dev/e1000/em_txrx.c projects/clang400-import/sys/dev/e1000/igb_txrx.c - copied unchanged from r311939, head/sys/dev/e1000/igb_txrx.c projects/clang400-import/sys/dev/sdhci/sdhci_acpi.c - copied unchanged from r311939, head/sys/dev/sdhci/sdhci_acpi.c projects/clang400-import/sys/modules/sdhci_acpi/ - copied from r311939, head/sys/modules/sdhci_acpi/ projects/clang400-import/tests/sys/geom/class/gate/ggate_test.sh - copied unchanged from r311939, head/tests/sys/geom/class/gate/ggate_test.sh projects/clang400-import/usr.bin/tail/tests/ - copied from r311939, head/usr.bin/tail/tests/ Deleted: projects/clang400-import/sys/dev/e1000/if_igb.c projects/clang400-import/sys/dev/e1000/if_igb.h projects/clang400-import/sys/dev/e1000/if_lem.c projects/clang400-import/sys/dev/e1000/if_lem.h projects/clang400-import/sys/modules/igb/ projects/clang400-import/tests/sys/geom/class/gate/1_test.sh projects/clang400-import/tests/sys/geom/class/gate/2_test.sh projects/clang400-import/tests/sys/geom/class/gate/3_test.sh projects/clang400-import/tests/sys/geom/class/gate/conf.sh Modified: projects/clang400-import/ObsoleteFiles.inc projects/clang400-import/UPDATING projects/clang400-import/contrib/libarchive/libarchive/archive_acl.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/clang400-import/contrib/libarchive/libarchive/archive_string.c projects/clang400-import/contrib/libarchive/libarchive/archive_string.h projects/clang400-import/contrib/libarchive/libarchive/archive_string_composition.h projects/clang400-import/contrib/libarchive/libarchive/archive_write.c projects/clang400-import/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/clang400-import/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/clang400-import/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_uudecode.c projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes.c projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes_large.c projects/clang400-import/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/clang400-import/contrib/libarchive/libarchive/xxhash.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_o_search.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_openat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_readlinkat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_unlinkat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_assert.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_dir.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_ftok.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_raise.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_sleep.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_time.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_vis.c projects/clang400-import/contrib/netbsd-tests/lib/libc/regex/debug.c projects/clang400-import/contrib/netbsd-tests/lib/libc/stdio/t_printf.c projects/clang400-import/contrib/netbsd-tests/lib/libc/string/t_strchr.c projects/clang400-import/contrib/netbsd-tests/lib/libc/string/t_strerror.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_access.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_chroot.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_mincore.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_mmap.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_unlink.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_wait.c projects/clang400-import/contrib/netbsd-tests/lib/libc/t_cdb.c projects/clang400-import/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c projects/clang400-import/crypto/openssh/serverloop.c projects/clang400-import/crypto/openssh/ssh-agent.1 projects/clang400-import/crypto/openssh/ssh-agent.c projects/clang400-import/crypto/openssh/ssh_config projects/clang400-import/crypto/openssh/ssh_config.5 projects/clang400-import/crypto/openssh/sshd_config projects/clang400-import/crypto/openssh/sshd_config.5 projects/clang400-import/crypto/openssh/version.h projects/clang400-import/etc/mtree/BSD.tests.dist projects/clang400-import/etc/rc.d/ntpdate projects/clang400-import/lib/libarchive/tests/Makefile projects/clang400-import/libexec/rtld-elf/rtld_lock.c projects/clang400-import/sbin/camcontrol/modeedit.c projects/clang400-import/share/misc/committers-ports.dot projects/clang400-import/sys/amd64/amd64/pmap.c projects/clang400-import/sys/amd64/conf/GENERIC projects/clang400-import/sys/arm64/conf/GENERIC projects/clang400-import/sys/boot/common/reloc_elf.c projects/clang400-import/sys/boot/efi/Makefile.inc projects/clang400-import/sys/boot/efi/boot1/boot_module.h projects/clang400-import/sys/boot/efi/include/efiapi.h projects/clang400-import/sys/boot/efi/loader/arch/arm/ldscript.arm projects/clang400-import/sys/boot/efi/loader/arch/arm/start.S projects/clang400-import/sys/cam/ctl/ctl.c projects/clang400-import/sys/cam/ctl/ctl_ha.c projects/clang400-import/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/clang400-import/sys/conf/NOTES projects/clang400-import/sys/conf/files projects/clang400-import/sys/conf/files.arm64 projects/clang400-import/sys/conf/makeLINT.mk projects/clang400-import/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/clang400-import/sys/contrib/dev/acpica/components/tables/tbxface.c projects/clang400-import/sys/contrib/dev/acpica/include/acpixf.h projects/clang400-import/sys/dev/ahci/ahci_generic.c projects/clang400-import/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c projects/clang400-import/sys/dev/cxgbe/common/t4_msg.h projects/clang400-import/sys/dev/cxgbe/iw_cxgbe/provider.c projects/clang400-import/sys/dev/cxgbe/t4_main.c projects/clang400-import/sys/dev/cxgbe/t4_sge.c projects/clang400-import/sys/dev/e1000/if_em.c projects/clang400-import/sys/dev/e1000/if_em.h projects/clang400-import/sys/dev/ntb/if_ntb/if_ntb.c projects/clang400-import/sys/dev/rtwn/pci/rtwn_pci_attach.c projects/clang400-import/sys/dev/rtwn/usb/rtwn_usb_ep.c projects/clang400-import/sys/dev/sfxge/sfxge_tx.c projects/clang400-import/sys/dev/usb/controller/ehci_imx.c projects/clang400-import/sys/dev/usb/misc/udbp.c projects/clang400-import/sys/dev/usb/usbdevs projects/clang400-import/sys/dev/usb/wlan/if_rsu.c projects/clang400-import/sys/fs/cd9660/cd9660_vfsops.c projects/clang400-import/sys/fs/cd9660/iso.h projects/clang400-import/sys/fs/pseudofs/pseudofs_vncache.c projects/clang400-import/sys/i386/conf/GENERIC projects/clang400-import/sys/i386/i386/pmap.c projects/clang400-import/sys/kern/vfs_bio.c projects/clang400-import/sys/mips/conf/OCTEON1 projects/clang400-import/sys/modules/Makefile projects/clang400-import/sys/modules/ahci/Makefile projects/clang400-import/sys/modules/em/Makefile projects/clang400-import/sys/net/iflib.c projects/clang400-import/sys/net80211/_ieee80211.h projects/clang400-import/sys/net80211/ieee80211.c projects/clang400-import/sys/net80211/ieee80211.h projects/clang400-import/sys/net80211/ieee80211_proto.c projects/clang400-import/sys/net80211/ieee80211_tdma.c projects/clang400-import/sys/net80211/ieee80211_vht.c projects/clang400-import/sys/net80211/ieee80211_vht.h projects/clang400-import/sys/netpfil/ipfw/ip_dummynet.c projects/clang400-import/sys/powerpc/conf/GENERIC64 projects/clang400-import/sys/powerpc/include/asm.h projects/clang400-import/sys/sparc64/include/atomic.h projects/clang400-import/sys/sys/cdefs.h projects/clang400-import/sys/tools/embed_mfs.sh projects/clang400-import/tests/sys/geom/class/gate/Makefile projects/clang400-import/usr.bin/calendar/calendars/calendar.freebsd projects/clang400-import/usr.bin/tail/Makefile projects/clang400-import/usr.bin/tail/reverse.c projects/clang400-import/usr.sbin/crunch/crunchide/exec_elf32.c projects/clang400-import/usr.sbin/syslogd/syslogd.c Directory Properties: projects/clang400-import/ (props changed) projects/clang400-import/contrib/libarchive/ (props changed) projects/clang400-import/contrib/netbsd-tests/ (props changed) projects/clang400-import/crypto/openssh/ (props changed) projects/clang400-import/sys/cddl/contrib/opensolaris/ (props changed) projects/clang400-import/sys/contrib/dev/acpica/ (props changed) Modified: projects/clang400-import/ObsoleteFiles.inc ============================================================================== --- projects/clang400-import/ObsoleteFiles.inc Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/ObsoleteFiles.inc Wed Jan 11 21:05:13 2017 (r311940) @@ -151,6 +151,11 @@ OLD_FILES+=usr/lib/clang/3.9.1/lib/freeb OLD_DIRS+=usr/lib/clang/3.9.1/lib/freebsd OLD_DIRS+=usr/lib/clang/3.9.1/lib OLD_DIRS+=usr/lib/clang/3.9.1 +# 20170110: Four files from ggate tests consolidated into one +OLD_FILES+=usr/tests/sys/geom/class/gate/1_test +OLD_FILES+=usr/tests/sys/geom/class/gate/2_test +OLD_FILES+=usr/tests/sys/geom/class/gate/3_test +OLD_FILES+=usr/tests/sys/geom/class/gate/conf.sh # 20170103: libbsnmptools.so made into an INTERNALLIB OLD_FILES+=usr/lib/libbsnmptools.a OLD_FILES+=usr/lib/libbsnmptools_p.a @@ -161,8 +166,8 @@ OLD_FILES+=usr/share/man/man3/sysdecode_ # 20161230: libarchive ACL pax test renamed to test_acl_pax_posix1e.tar.uu OLD_FILES+=usr/tests/lib/libarchive/test_acl_pax.tar.uu # 20161229: Three files from gnop tests consolidated into one -OLD_FILES+=usr/tests/sys/geom/class/nop/1_test.sh -OLD_FILES+=usr/tests/sys/geom/class/nop/2_test.sh +OLD_FILES+=usr/tests/sys/geom/class/nop/1_test +OLD_FILES+=usr/tests/sys/geom/class/nop/2_test OLD_FILES+=usr/tests/sys/geom/class/nop/conf.sh # 20161217: new clang import which bumps version from 3.9.0 to 3.9.1. OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/allocator_interface.h Modified: projects/clang400-import/UPDATING ============================================================================== --- projects/clang400-import/UPDATING Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/UPDATING Wed Jan 11 21:05:13 2017 (r311940) @@ -56,6 +56,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. +20170109: + The igb(4), em(4) and lem(4) ethernet drivers are now implemented via + IFLIB. If you have a custom kernel configuration that excludes em(4) + but you use igb(4), you need to re-add em(4) to your custom configuration. + 20161217: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. Please see the 20141231 entry below for information about prerequisites Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_acl.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_acl.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_acl.c Wed Jan 11 21:05:13 2017 (r311940) @@ -786,7 +786,8 @@ append_entry_w(wchar_t **wp, const wchar } else if (tag == ARCHIVE_ENTRY_ACL_USER || tag == ARCHIVE_ENTRY_ACL_GROUP) { append_id_w(wp, id); - id = -1; + if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) + id = -1; } /* Solaris style has no second colon after other and mask */ if (((flags & ARCHIVE_ENTRY_ACL_STYLE_SOLARIS) == 0) @@ -1042,7 +1043,8 @@ append_entry(char **p, const char *prefi } else if (tag == ARCHIVE_ENTRY_ACL_USER || tag == ARCHIVE_ENTRY_ACL_GROUP) { append_id(p, id); - id = -1; + if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) + id = -1; } /* Solaris style has no second colon after other and mask */ if (((flags & ARCHIVE_ENTRY_ACL_STYLE_SOLARIS) == 0) @@ -1328,6 +1330,7 @@ archive_acl_from_text_w(struct archive_a tag == ARCHIVE_ENTRY_ACL_GROUP) { n = 1; name = field[1]; + isint_w(name.start, name.end, &id); } else n = 0; @@ -1799,6 +1802,7 @@ archive_acl_from_text_l(struct archive_a tag == ARCHIVE_ENTRY_ACL_GROUP) { n = 1; name = field[1]; + isint(name.start, name.end, &id); } else n = 0; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Wed Jan 11 21:05:13 2017 (r311940) @@ -526,6 +526,11 @@ setup_acls(struct archive_read_disk *a, /* Only directories can have default ACLs. */ if (S_ISDIR(archive_entry_mode(entry))) { +#if HAVE_ACL_GET_FD_NP + if (*fd >= 0) + acl = acl_get_fd_np(*fd, ACL_TYPE_DEFAULT); + else +#endif acl = acl_get_file(accpath, ACL_TYPE_DEFAULT); if (acl != NULL) { r = translate_acl(a, entry, acl, @@ -581,7 +586,10 @@ static struct { {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACL_ENTRY_DIRECTORY_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT}, - {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY} + {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}, + {ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, ACL_ENTRY_SUCCESSFUL_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, ACL_ENTRY_FAILED_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACL_ENTRY_INHERITED} }; #endif static int Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_posix.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_posix.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_disk_posix.c Wed Jan 11 21:05:13 2017 (r311940) @@ -675,7 +675,7 @@ setup_suitable_read_buffer(struct archiv asize = cf->min_xfer_size; /* Increase a buffer size up to 64K bytes in - * a proper incremant size. */ + * a proper increment size. */ while (asize < 1024*64) asize += incr; /* Take a margin to adjust to the filesystem @@ -1656,7 +1656,7 @@ setup_current_filesystem(struct archive_ archive_set_error(&a->archive, errno, "statvfs failed"); return (ARCHIVE_FAILED); } else if (xr == 1) { - /* Usuall come here unless NetBSD supports _PC_REC_XFER_ALIGN + /* Usually come here unless NetBSD supports _PC_REC_XFER_ALIGN * for pathconf() function. */ t->current_filesystem->xfer_align = sfs.f_frsize; t->current_filesystem->max_xfer_size = -1; @@ -1944,7 +1944,7 @@ setup_current_filesystem(struct archive_ if (nm == -1) # endif /* _PC_NAME_MAX */ /* - * Some sysmtes (HP-UX or others?) incorrectly defined + * Some systems (HP-UX or others?) incorrectly defined * NAME_MAX macro to be a smaller value. */ # if defined(NAME_MAX) && NAME_MAX >= 255 Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Wed Jan 11 21:05:13 2017 (r311940) @@ -180,7 +180,7 @@ lz4_reader_bid(struct archive_read_filte return (0); bits_checked += 8; BD = buffer[5]; - /* A block maximum size shuld be more than 3. */ + /* A block maximum size should be more than 3. */ if (((BD & 0x70) >> 4) < 4) return (0); /* Reserved bits must be "0". */ @@ -417,7 +417,7 @@ lz4_filter_read_descriptor(struct archiv /* Reserved bits must be zero. */ if (bd & 0x8f) goto malformed_error; - /* Get a maxinum block size. */ + /* Get a maximum block size. */ switch (read_buf[1] >> 4) { case 4: /* 64 KB */ state->flags.block_maximum_size = 64 * 1024; @@ -627,7 +627,7 @@ lz4_filter_read_default_stream(struct ar if (state->stage == SELECT_STREAM) { state->stage = READ_DEFAULT_STREAM; - /* First, read a desciprtor. */ + /* First, read a descriptor. */ if((ret = lz4_filter_read_descriptor(self)) != ARCHIVE_OK) return (ret); state->stage = READ_DEFAULT_BLOCK; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c Wed Jan 11 21:05:13 2017 (r311940) @@ -436,7 +436,7 @@ lzop_filter_read(struct archive_read_fil } /* - * Drive lzo uncompresison. + * Drive lzo uncompression. */ out_size = (lzo_uint)state->uncompressed_size; r = lzo1x_decompress_safe(b, (lzo_uint)state->compressed_size, Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_7zip.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_7zip.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_7zip.c Wed Jan 11 21:05:13 2017 (r311940) @@ -552,7 +552,7 @@ skip_sfx(struct archive_read *a, ssize_t /* * If bytes_avail > SFX_MIN_ADDR we do not have to call * __archive_read_seek() at this time since we have - * alredy had enough data. + * already had enough data. */ if (bytes_avail > SFX_MIN_ADDR) __archive_read_consume(a, SFX_MIN_ADDR); @@ -760,7 +760,7 @@ archive_read_format_7zip_read_header(str symsize += size; } if (symsize == 0) { - /* If there is no synname, handle it as a regular + /* If there is no symname, handle it as a regular * file. */ zip_entry->mode &= ~AE_IFMT; zip_entry->mode |= AE_IFREG; @@ -3288,7 +3288,7 @@ read_stream(struct archive_read *a, cons return (r); /* - * Skip the bytes we alrady has skipped in skip_stream(). + * Skip the bytes we already has skipped in skip_stream(). */ while (skip_bytes) { ssize_t skipped; @@ -3506,7 +3506,7 @@ setup_decode_folder(struct archive_read return (ARCHIVE_FATAL); } - /* Allocate memory for the decorded data of a sub + /* Allocate memory for the decoded data of a sub * stream. */ b[i] = malloc((size_t)zip->folder_outbytes_remaining); if (b[i] == NULL) { @@ -3591,7 +3591,7 @@ skip_stream(struct archive_read *a, size if (zip->folder_index == 0) { /* * Optimization for a list mode. - * Avoid unncecessary decoding operations. + * Avoid unnecessary decoding operations. */ zip->si.ci.folders[zip->entry->folderIndex].skipped_bytes += skip_bytes; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c Wed Jan 11 21:05:13 2017 (r311940) @@ -322,7 +322,7 @@ struct iso9660 { struct archive_string pathname; char seenRockridge; /* Set true if RR extensions are used. */ - char seenSUSP; /* Set true if SUSP is beging used. */ + char seenSUSP; /* Set true if SUSP is being used. */ char seenJoliet; unsigned char suspOffset; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_lha.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_lha.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_lha.c Wed Jan 11 21:05:13 2017 (r311940) @@ -1711,7 +1711,7 @@ lha_crc16(uint16_t crc, const void *pp, */ for (;len >= 8; len -= 8) { /* This if statement expects compiler optimization will - * remove the stament which will not be executed. */ + * remove the statement which will not be executed. */ #undef bswap16 #if defined(_MSC_VER) && _MSC_VER >= 1400 /* Visual Studio */ # define bswap16(x) _byteswap_ushort(x) Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_rar.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_rar.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_rar.c Wed Jan 11 21:05:13 2017 (r311940) @@ -906,7 +906,7 @@ archive_read_format_rar_read_header(stru sizeof(rar->reserved2)); } - /* Main header is password encrytped, so we cannot read any + /* Main header is password encrypted, so we cannot read any file names or any other info about files from the header. */ if (rar->main_flags & MHD_PASSWORD) { Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_tar.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_tar.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_tar.c Wed Jan 11 21:05:13 2017 (r311940) @@ -204,13 +204,14 @@ static int archive_read_format_tar_read_ struct archive_entry *); static int checksum(struct archive_read *, const void *); static int pax_attribute(struct archive_read *, struct tar *, - struct archive_entry *, const char *key, const char *value); + struct archive_entry *, const char *key, const char *value, + size_t value_length); static int pax_attribute_acl(struct archive_read *, struct tar *, struct archive_entry *, const char *, int); static int pax_attribute_xattr(struct archive_entry *, const char *, const char *); static int pax_header(struct archive_read *, struct tar *, - struct archive_entry *, char *attr); + struct archive_entry *, struct archive_string *); static void pax_time(const char *, int64_t *sec, long *nanos); static ssize_t readline(struct archive_read *, struct tar *, const char **, ssize_t limit, size_t *); @@ -1483,7 +1484,7 @@ header_pax_extensions(struct archive_rea * and then skip any fields in the standard header that were * defined in the pax header. */ - err2 = pax_header(a, tar, entry, tar->pax_header.s); + err2 = pax_header(a, tar, entry, &tar->pax_header); err = err_combine(err, err2); tar->entry_padding = 0x1ff & (-tar->entry_bytes_remaining); return (err); @@ -1564,16 +1565,17 @@ header_ustar(struct archive_read *a, str */ static int pax_header(struct archive_read *a, struct tar *tar, - struct archive_entry *entry, char *attr) + struct archive_entry *entry, struct archive_string *in_as) { - size_t attr_length, l, line_length; + size_t attr_length, l, line_length, value_length; char *p; char *key, *value; struct archive_string *as; struct archive_string_conv *sconv; int err, err2; + char *attr = in_as->s; - attr_length = strlen(attr); + attr_length = in_as->length; tar->pax_hdrcharset_binary = 0; archive_string_empty(&(tar->entry_gname)); archive_string_empty(&(tar->entry_linkpath)); @@ -1638,11 +1640,13 @@ pax_header(struct archive_read *a, struc } *p = '\0'; - /* Identify null-terminated 'value' portion. */ value = p + 1; + /* Some values may be binary data */ + value_length = attr + line_length - 1 - value; + /* Identify this attribute and set it in the entry. */ - err2 = pax_attribute(a, tar, entry, key, value); + err2 = pax_attribute(a, tar, entry, key, value, value_length); if (err2 == ARCHIVE_FATAL) return (err2); err = err_combine(err, err2); @@ -1764,6 +1768,20 @@ pax_attribute_xattr(struct archive_entry } static int +pax_attribute_schily_xattr(struct archive_entry *entry, + const char *name, const char *value, size_t value_length) +{ + if (strlen(name) < 14 || (memcmp(name, "SCHILY.xattr.", 13)) != 0) + return 1; + + name += 13; + + archive_entry_xattr_add_entry(entry, name, value, value_length); + + return 0; +} + +static int pax_attribute_acl(struct archive_read *a, struct tar *tar, struct archive_entry *entry, const char *value, int type) { @@ -1824,7 +1842,7 @@ pax_attribute_acl(struct archive_read *a */ static int pax_attribute(struct archive_read *a, struct tar *tar, - struct archive_entry *entry, const char *key, const char *value) + struct archive_entry *entry, const char *key, const char *value, size_t value_length) { int64_t s; long n; @@ -1961,6 +1979,9 @@ pax_attribute(struct archive_read *a, st } else if (strcmp(key, "SCHILY.realsize") == 0) { tar->realsize = tar_atol10(value, strlen(value)); archive_entry_set_size(entry, tar->realsize); + } else if (strncmp(key, "SCHILY.xattr.", 13) == 0) { + pax_attribute_schily_xattr(entry, key, value, + value_length); } else if (strcmp(key, "SUN.holesdata") == 0) { /* A Solaris extension for sparse. */ r = solaris_sparse_parse(a, tar, entry, value); Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_warc.c Wed Jan 11 21:05:13 2017 (r311940) @@ -88,7 +88,7 @@ typedef enum { WT_RVIS, /* conversion, unsupported */ WT_CONV, - /* continutation, unsupported at the moment */ + /* continuation, unsupported at the moment */ WT_CONT, /* invalid type */ LAST_WT @@ -562,7 +562,7 @@ xstrpisotime(const char *s, char **endpt goto out; } - /* massage TM to fulfill some of POSIX' contraints */ + /* massage TM to fulfill some of POSIX' constraints */ tm.tm_year -= 1900; tm.tm_mon--; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_read_support_format_zip.c Wed Jan 11 21:05:13 2017 (r311940) @@ -199,7 +199,7 @@ struct zip { struct trad_enc_ctx tctx; char tctx_valid; - /* WinZip AES decyption. */ + /* WinZip AES decryption. */ /* Contexts used for AES decryption. */ archive_crypto_ctx cctx; char cctx_valid; @@ -242,7 +242,7 @@ trad_enc_update_keys(struct trad_enc_ctx } static uint8_t -trad_enc_decypt_byte(struct trad_enc_ctx *ctx) +trad_enc_decrypt_byte(struct trad_enc_ctx *ctx) { unsigned temp = ctx->keys[2] | 2; return (uint8_t)((temp * (temp ^ 1)) >> 8) & 0xff; @@ -257,7 +257,7 @@ trad_enc_decrypt_update(struct trad_enc_ max = (unsigned)((in_len < out_len)? in_len: out_len); for (i = 0; i < max; i++) { - uint8_t t = in[i] ^ trad_enc_decypt_byte(ctx); + uint8_t t = in[i] ^ trad_enc_decrypt_byte(ctx); out[i] = t; trad_enc_update_keys(ctx, t); } @@ -710,7 +710,7 @@ process_extra(struct archive_read *a, co break; } case 0x9901: - /* WinZIp AES extra data field. */ + /* WinZip AES extra data field. */ if (p[offset + 2] == 'A' && p[offset + 3] == 'E') { /* Vendor version. */ zip_entry->aes_extra.vendor = @@ -1518,7 +1518,7 @@ read_decryption_header(struct archive_re case 0x6720:/* Blowfish */ case 0x6721:/* Twofish */ case 0x6801:/* RC4 */ - /* Suuported encryption algorithm. */ + /* Supported encryption algorithm. */ break; default: archive_set_error(&a->archive, @@ -1627,7 +1627,7 @@ read_decryption_header(struct archive_re __archive_read_consume(a, 4); /*return (ARCHIVE_OK); - * This is not fully implemnted yet.*/ + * This is not fully implemented yet.*/ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Encrypted file is unsupported"); return (ARCHIVE_FAILED); @@ -1709,7 +1709,7 @@ init_traditional_PKWARE_decryption(struc } /* - * Initialize ctx for Traditional PKWARE Decyption. + * Initialize ctx for Traditional PKWARE Decryption. */ r = trad_enc_init(&zip->tctx, passphrase, strlen(passphrase), p, ENC_HEADER_SIZE, &crcchk); Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_string.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_string.c Wed Jan 11 21:05:13 2017 (r311940) @@ -219,6 +219,12 @@ archive_wstring_append(struct archive_ws return (as); } +struct archive_string * +archive_array_append(struct archive_string *as, const char *p, size_t s) +{ + return archive_string_append(as, p, s); +} + void archive_string_concat(struct archive_string *dest, struct archive_string *src) { @@ -597,7 +603,7 @@ archive_wstring_append_from_mbs(struct a wcs = dest->s + dest->length; /* * We cannot use mbsrtowcs/mbstowcs here because those may convert - * extra MBS when strlen(p) > len and one wide character consis of + * extra MBS when strlen(p) > len and one wide character consists of * multi bytes. */ while (*mbs && mbs_length > 0) { @@ -1248,7 +1254,7 @@ create_sconv_object(const char *fc, cons sc->cd = iconv_open(tc, fc); if (sc->cd == (iconv_t)-1 && (sc->flag & SCONV_BEST_EFFORT)) { /* - * Unfortunaly, all of iconv implements do support + * Unfortunately, all of iconv implements do support * "CP932" character-set, so we should use "SJIS" * instead if iconv_open failed. */ @@ -1261,7 +1267,7 @@ create_sconv_object(const char *fc, cons /* * archive_mstring on Windows directly convert multi-bytes * into archive_wstring in order not to depend on locale - * so that you can do a I18N programing. This will be + * so that you can do a I18N programming. This will be * used only in archive_mstring_copy_mbs_len_l so far. */ if (flag & SCONV_FROM_CHARSET) { @@ -1726,7 +1732,7 @@ archive_string_conversion_from_charset(s * in tar or zip files. But mbstowcs/wcstombs(CRT) usually use CP_ACP * unless you use setlocale(LC_ALL, ".OCP")(specify CP_OEMCP). * So we should make a string conversion between CP_ACP and CP_OEMCP - * for compatibillty. + * for compatibility. */ #if defined(_WIN32) && !defined(__CYGWIN__) struct archive_string_conv * @@ -2220,7 +2226,7 @@ best_effort_strncat_in_locale(struct arc /* * If a character is ASCII, this just copies it. If not, this - * assigns '?' charater instead but in UTF-8 locale this assigns + * assigns '?' character instead but in UTF-8 locale this assigns * byte sequence 0xEF 0xBD 0xBD, which are code point U+FFFD, * a Replacement Character in Unicode. */ @@ -2554,7 +2560,7 @@ utf16_to_unicode(uint32_t *pwc, const ch /* * Surrogate pair values(0xd800 through 0xdfff) are only - * used by UTF-16, so, after above culculation, the code + * used by UTF-16, so, after above calculation, the code * must not be surrogate values, and Unicode has no codes * larger than 0x10ffff. Thus, those are not legal Unicode * values. @@ -2903,7 +2909,7 @@ get_nfc(uint32_t uc, uint32_t uc2) /* * Normalize UTF-8/UTF-16BE characters to Form C and copy the result. * - * TODO: Convert composition exclusions,which are never converted + * TODO: Convert composition exclusions, which are never converted * from NFC,NFD,NFKC and NFKD, to Form C. */ static int @@ -3437,7 +3443,7 @@ strncat_from_utf8_libarchive2(struct arc } /* - * As libarchie 2.x, translates the UTF-8 characters into + * As libarchive 2.x, translates the UTF-8 characters into * wide-characters in the assumption that WCS is Unicode. */ if (n < 0) { @@ -3947,7 +3953,7 @@ archive_mstring_get_mbs_l(struct archive #if defined(_WIN32) && !defined(__CYGWIN__) /* - * Internationalization programing on Windows must use Wide + * Internationalization programming on Windows must use Wide * characters because Windows platform cannot make locale UTF-8. */ if (sc != NULL && (aes->aes_set & AES_SET_WCS) != 0) { @@ -4079,7 +4085,7 @@ archive_mstring_copy_mbs_len_l(struct ar archive_string_empty(&(aes->aes_utf8)); #if defined(_WIN32) && !defined(__CYGWIN__) /* - * Internationalization programing on Windows must use Wide + * Internationalization programming on Windows must use Wide * characters because Windows platform cannot make locale UTF-8. */ if (sc == NULL) { Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_string.h ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_string.h Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_string.h Wed Jan 11 21:05:13 2017 (r311940) @@ -81,6 +81,10 @@ archive_strappend_char(struct archive_st struct archive_wstring * archive_wstrappend_wchar(struct archive_wstring *, wchar_t); +/* Append a raw array to an archive_string, resizing as necessary */ +struct archive_string * +archive_array_append(struct archive_string *, const char *, size_t); + /* Convert a Unicode string to current locale and append the result. */ /* Returns -1 if conversion fails. */ int Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_string_composition.h ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_string_composition.h Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_string_composition.h Wed Jan 11 21:05:13 2017 (r311940) @@ -1009,7 +1009,7 @@ static const char u_decomposable_blocks[ (((uc) > 0x1D244)?0:\ ccc_val[ccc_val_index[ccc_index[(uc)>>8]][((uc)>>4)&0x0F]][(uc)&0x0F]) -/* The table of the value of Canonical Cimbining Class */ +/* The table of the value of Canonical Combining Class */ static const unsigned char ccc_val[][16] = { /* idx=0: XXXX0 - XXXXF */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write.c Wed Jan 11 21:05:13 2017 (r311940) @@ -231,7 +231,7 @@ __archive_write_filter(struct archive_wr if (length == 0) return(ARCHIVE_OK); if (f->write == NULL) - /* If unset, a fatal error has already ocuured, so this filter + /* If unset, a fatal error has already occurred, so this filter * didn't open. We cannot write anything. */ return(ARCHIVE_FATAL); r = (f->write)(f, buff, length); Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write_add_filter_xz.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write_add_filter_xz.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write_add_filter_xz.c Wed Jan 11 21:05:13 2017 (r311940) @@ -233,7 +233,7 @@ archive_compressor_xz_init_stream(struct if (f->code == ARCHIVE_FILTER_XZ) { #ifdef HAVE_LZMA_STREAM_ENCODER_MT if (data->threads != 1) { - bzero(&mt_options, sizeof(mt_options)); + memset(&mt_options, 0, sizeof(mt_options)); mt_options.threads = data->threads; mt_options.timeout = 300; mt_options.filters = data->lzmafilters; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write_disk_acl.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write_disk_acl.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write_disk_acl.c Wed Jan 11 21:05:13 2017 (r311940) @@ -124,7 +124,10 @@ static struct { {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACL_ENTRY_DIRECTORY_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT}, - {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY} + {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}, + {ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, ACL_ENTRY_SUCCESSFUL_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, ACL_ENTRY_FAILED_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACL_ENTRY_INHERITED} }; #endif @@ -292,29 +295,41 @@ set_acl(struct archive *a, int fd, const } /* Try restoring the ACL through 'fd' if we can. */ -#if HAVE_ACL_SET_FD - if (fd >= 0 && acl_type == ACL_TYPE_ACCESS && acl_set_fd(fd, acl) == 0) - ret = ARCHIVE_OK; - else -#else +#if HAVE_ACL_SET_FD_NP || HAVE_ACL_SET_FD #if HAVE_ACL_SET_FD_NP - if (fd >= 0 && acl_set_fd_np(fd, acl, acl_type) == 0) - ret = ARCHIVE_OK; - else -#endif -#endif + if (fd >= 0) { + if (acl_set_fd_np(fd, acl, acl_type) == 0) +#else /* HAVE_ACL_SET_FD */ + if (fd >= 0 && acl_type == ACL_TYPE_ACCESS) { + if (acl_set_fd(fd, acl) == 0) +#endif + ret = ARCHIVE_OK; + else { + if (errno == EOPNOTSUPP) { + /* Filesystem doesn't support ACLs */ + ret = ARCHIVE_OK; + } else { + archive_set_error(a, errno, + "Failed to set %s acl on fd", tname); + } + } + } else +#endif /* HAVE_ACL_SET_FD_NP || HAVE_ACL_SET_FD */ #if HAVE_ACL_SET_LINK_NP - if (acl_set_link_np(name, acl_type, acl) != 0) { - archive_set_error(a, errno, "Failed to set %s acl", tname); - ret = ARCHIVE_WARN; - } + if (acl_set_link_np(name, acl_type, acl) != 0) { #else /* TODO: Skip this if 'name' is a symlink. */ if (acl_set_file(name, acl_type, acl) != 0) { - archive_set_error(a, errno, "Failed to set %s acl", tname); - ret = ARCHIVE_WARN; - } #endif + if (errno == EOPNOTSUPP) { + /* Filesystem doesn't support ACLs */ + ret = ARCHIVE_OK; + } else { + archive_set_error(a, errno, "Failed to set %s acl", + tname); + ret = ARCHIVE_WARN; + } + } exit_free: acl_free(acl); return (ret); Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_7zip.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Wed Jan 11 21:05:13 2017 (r311940) @@ -1358,7 +1358,7 @@ make_header(struct archive_write *a, uin if (r < 0) return (r); - /* Write Nume size. */ + /* Write Name size. */ r = enc_uint64(a, zip->total_bytes_entry_name+1); if (r < 0) return (r); Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_pax.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_pax.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_pax.c Wed Jan 11 21:05:13 2017 (r311940) @@ -62,10 +62,17 @@ struct pax { struct sparse_block *sparse_tail; struct archive_string_conv *sconv_utf8; int opt_binary; + + unsigned flags; +#define WRITE_SCHILY_XATTR (1 << 0) +#define WRITE_LIBARCHIVE_XATTR (1 << 1) }; static void add_pax_attr(struct archive_string *, const char *key, const char *value); +static void add_pax_attr_binary(struct archive_string *, + const char *key, + const char *value, size_t value_len); static void add_pax_attr_int(struct archive_string *, const char *key, int64_t value); static void add_pax_attr_time(struct archive_string *, @@ -136,6 +143,8 @@ archive_write_set_format_pax(struct arch "Can't allocate pax data"); return (ARCHIVE_FATAL); } + pax->flags = WRITE_LIBARCHIVE_XATTR | WRITE_SCHILY_XATTR; + a->format_data = pax; a->format_name = "pax"; a->format_options = archive_write_pax_options; @@ -275,6 +284,17 @@ add_pax_attr_int(struct archive_string * static void add_pax_attr(struct archive_string *as, const char *key, const char *value) { + add_pax_attr_binary(as, key, value, strlen(value)); +} + +/* + * Add a key/value attribute to the pax header. This function handles + * binary values. + */ +static void +add_pax_attr_binary(struct archive_string *as, const char *key, + const char *value, size_t value_len) +{ int digits, i, len, next_ten; char tmp[1 + 3 * sizeof(int)]; /* < 3 base-10 digits per byte */ @@ -282,7 +302,7 @@ add_pax_attr(struct archive_string *as, * PAX attributes have the following layout: * <=> */ - len = 1 + (int)strlen(key) + 1 + (int)strlen(value) + 1; + len = 1 + (int)strlen(key) + 1 + (int)value_len + 1; /* * The field includes the length of the field, so @@ -313,21 +333,47 @@ add_pax_attr(struct archive_string *as, archive_strappend_char(as, ' '); archive_strcat(as, key); archive_strappend_char(as, '='); - archive_strcat(as, value); + archive_array_append(as, value, value_len); archive_strappend_char(as, '\n'); } +static void +archive_write_pax_header_xattr(struct pax *pax, const char *encoded_name, + const void *value, size_t value_len) +{ + struct archive_string s; + char *encoded_value; + + if (pax->flags & WRITE_LIBARCHIVE_XATTR) { + encoded_value = base64_encode((const char *)value, value_len); + + if (encoded_name != NULL && encoded_value != NULL) { + archive_string_init(&s); + archive_strcpy(&s, "LIBARCHIVE.xattr."); + archive_strcat(&s, encoded_name); + add_pax_attr(&(pax->pax_header), s.s, encoded_value); + archive_string_free(&s); + } + free(encoded_value); + } + if (pax->flags & WRITE_SCHILY_XATTR) { + archive_string_init(&s); + archive_strcpy(&s, "SCHILY.xattr."); + archive_strcat(&s, encoded_name); + add_pax_attr_binary(&(pax->pax_header), s.s, value, value_len); + archive_string_free(&s); + } +} + static int archive_write_pax_header_xattrs(struct archive_write *a, struct pax *pax, struct archive_entry *entry) { - struct archive_string s; int i = archive_entry_xattr_reset(entry); while (i--) { const char *name; const void *value; - char *encoded_value; char *url_encoded_name = NULL, *encoded_name = NULL; size_t size; int r; @@ -348,16 +394,9 @@ archive_write_pax_header_xattrs(struct a } } - encoded_value = base64_encode((const char *)value, size); + archive_write_pax_header_xattr(pax, encoded_name, + value, size); - if (encoded_name != NULL && encoded_value != NULL) { - archive_string_init(&s); - archive_strcpy(&s, "LIBARCHIVE.xattr."); - archive_strcat(&s, encoded_name); - add_pax_attr(&(pax->pax_header), s.s, encoded_value); - archive_string_free(&s); - } - free(encoded_value); } return (ARCHIVE_OK); } Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_xar.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_xar.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_xar.c Wed Jan 11 21:05:13 2017 (r311940) @@ -2913,7 +2913,7 @@ compression_init_encoder_xz(struct archi *strm = lzma_init_data; #ifdef HAVE_LZMA_STREAM_ENCODER_MT if (threads > 1) { - bzero(&mt_options, sizeof(mt_options)); + memset(&mt_options, 0, sizeof(mt_options)); mt_options.threads = threads; mt_options.timeout = 300; mt_options.filters = lzmafilters; Modified: projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_zip.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_zip.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/archive_write_set_format_zip.c Wed Jan 11 21:05:13 2017 (r311940) @@ -878,7 +878,7 @@ archive_write_zip_header(struct archive_ || zip->entry_encryption == ENCRYPTION_WINZIP_AES256)) { memcpy(e, "\001\231\007\000\001\000AE", 8); - /* AES vendoer version AE-2 does not store a CRC. + /* AES vendor version AE-2 does not store a CRC. * WinZip 11 uses AE-1, which does store the CRC, * but it does not store the CRC when the file size * is less than 20 bytes. So we simulate what @@ -1013,7 +1013,7 @@ archive_write_zip_data(struct archive_wr if (zip->entry_flags & ZIP_ENTRY_FLAG_ENCRYPTED) { switch (zip->entry_encryption) { case ENCRYPTION_TRADITIONAL: - /* Initialize traditoinal PKWARE encryption context. */ + /* Initialize traditional PKWARE encryption context. */ if (!zip->tctx_valid) { ret = init_traditional_pkware_encryption(a); if (ret != ARCHIVE_OK) @@ -1499,7 +1499,7 @@ trad_enc_update_keys(struct trad_enc_ctx } static uint8_t -trad_enc_decypt_byte(struct trad_enc_ctx *ctx) +trad_enc_decrypt_byte(struct trad_enc_ctx *ctx) { unsigned temp = ctx->keys[2] | 2; return (uint8_t)((temp * (temp ^ 1)) >> 8) & 0xff; @@ -1515,7 +1515,7 @@ trad_enc_encrypt_update(struct trad_enc_ for (i = 0; i < max; i++) { uint8_t t = in[i]; - out[i] = t ^ trad_enc_decypt_byte(ctx); + out[i] = t ^ trad_enc_decrypt_byte(ctx); trad_enc_update_keys(ctx, t); } return i; @@ -1626,7 +1626,7 @@ init_winzip_aes_encryption(struct archiv return (ARCHIVE_FAILED); } - /* Set a passowrd verification value after the 'salt'. */ + /* Set a password verification value after the 'salt'. */ salt[salt_len] = derived_key[key_len * 2]; salt[salt_len + 1] = derived_key[key_len * 2 + 1]; Modified: projects/clang400-import/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c Wed Jan 11 21:05:13 2017 (r311940) @@ -191,7 +191,7 @@ DEFINE_TEST(test_archive_read_add_passph /* Fist call, we should get "passCallBack" as a passphrase. */ assertEqualString("passCallBack", __archive_read_next_passphrase(ar)); __archive_read_reset_passphrase(ar); - /* After reset passphrase, we should get "passCallBack"passphrase. */ + /* After reset passphrase, we should get "passCallBack" passphrase. */ assertEqualString("passCallBack", __archive_read_next_passphrase(ar)); /* Second call, we should get NULL which means all the passphrases * are passed already. */ Modified: projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_uudecode.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_uudecode.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_compat_uudecode.c Wed Jan 11 21:05:13 2017 (r311940) @@ -40,7 +40,7 @@ static char archive_data[] = { }; /* - * Compatibility: uudecode command ignores junk data placed ater the "end" + * Compatibility: uudecode command ignores junk data placed after the "end" * marker. */ DEFINE_TEST(test_compat_uudecode) Modified: projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c Wed Jan 11 21:05:13 2017 (r311940) @@ -27,7 +27,7 @@ __FBSDID("$FreeBSD$"); /* -ecute the following to rebuild the data for this program: +execute the following to rebuild the data for this program: tail -n +33 test_read_format_cpio_afio.c | /bin/sh # How to make a sample data. Modified: projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c Wed Jan 11 21:05:13 2017 (r311940) @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$"); DEFINE_TEST(test_read_format_zip_traditional_encryption_data) { - /* This file is password protected (Traditional PKWARE Enctypted). + /* This file is password protected (Traditional PKWARE Encrypted). The headers are NOT encrypted. Password is "12345678". */ const char *refname = "test_read_format_zip_traditional_encryption_data.zip"; @@ -36,7 +36,7 @@ DEFINE_TEST(test_read_format_zip_traditi struct archive *a; char buff[512]; - /* Check if running system has cryptographic functionarity. */ + /* Check if running system has cryptographic functionality. */ assert((a = archive_write_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); Modified: projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes.c Wed Jan 11 21:05:13 2017 (r311940) @@ -33,7 +33,7 @@ test_winzip_aes(const char *refname, int struct archive *a; char buff[512]; - /* Check if running system has cryptographic functionarity. */ + /* Check if running system has cryptographic functionality. */ assert((a = archive_write_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); Modified: projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes_large.c ============================================================================== --- projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes_large.c Wed Jan 11 21:01:49 2017 (r311939) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes_large.c Wed Jan 11 21:05:13 2017 (r311940) @@ -34,7 +34,7 @@ DEFINE_TEST(test_read_format_zip_winzip_ char buff[512]; - /* Check if running system has cryptographic functionarity. */ + /* Check if running system has cryptographic functionality. */ assert((a = archive_write_new()) != NULL); assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); Copied: projects/clang400-import/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c (from r311939, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c Wed Jan 11 21:05:13 2017 (r311940, copy of r311939, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c) @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2016 IBM Corporation + * Copyright (c) 2003-2007 Tim Kientzle + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This test case's code has been derived from test_entry.c + */ +#include "test.h" + +DEFINE_TEST(test_schily_xattr_pax) +{ + struct archive *a; + struct archive_entry *ae; + const char *refname = "test_read_pax_schily_xattr.tar"; + const char *xname; /* For xattr tests. */ + const void *xval; /* For xattr tests. */ + size_t xsize; /* For xattr tests. */ + const char *string, *array; + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + + extract_reference_file(refname); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, refname, 10240)); + + assertEqualInt(ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualInt(2, archive_entry_xattr_count(ae)); + assertEqualInt(2, archive_entry_xattr_reset(ae)); + + assertEqualInt(0, archive_entry_xattr_next(ae, &xname, &xval, &xsize)); + assertEqualString(xname, "security.selinux"); + string = "system_u:object_r:unlabeled_t:s0"; + assertEqualString(xval, string); + /* the xattr's value also contains the terminating \0 */ + assertEqualInt((int)xsize, strlen(string) + 1); + + assertEqualInt(0, archive_entry_xattr_next(ae, &xname, &xval, &xsize)); + assertEqualString(xname, "security.ima"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Thu Jan 12 09:38:15 2017 Return-Path: Delivered-To: svn-src-projects@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 49680CACB35 for ; Thu, 12 Jan 2017 09:38:15 +0000 (UTC) (envelope-from ae@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 199441D11; Thu, 12 Jan 2017 09:38:15 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0C9cEGm078653; Thu, 12 Jan 2017 09:38:14 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0C9cEfB078652; Thu, 12 Jan 2017 09:38:14 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701120938.v0C9cEfB078652@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Thu, 12 Jan 2017 09:38:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311973 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2017 09:38:15 -0000 Author: ae Date: Thu Jan 12 09:38:14 2017 New Revision: 311973 URL: https://svnweb.freebsd.org/changeset/base/311973 Log: Add kdebug_secnatt() to print NAT-T information for SA. Modified: projects/ipsec/sys/netipsec/key_debug.c Modified: projects/ipsec/sys/netipsec/key_debug.c ============================================================================== --- projects/ipsec/sys/netipsec/key_debug.c Thu Jan 12 09:01:14 2017 (r311972) +++ projects/ipsec/sys/netipsec/key_debug.c Thu Jan 12 09:38:14 2017 (r311973) @@ -696,6 +696,21 @@ kdebug_secreplay(struct secreplay *rpl) printf(" }\n"); } +static void +kdebug_secnatt(struct secnatt *natt) +{ + char buf[IPSEC_ADDRSTRLEN]; + + IPSEC_ASSERT(natt != NULL, ("null natt")); + printf(" natt{ sport=%u dport=%u ", ntohs(natt->sport), + ntohs(natt->dport)); + if (natt->flags & IPSEC_NATT_F_OAI) + printf("oai=%s ", ipsec_address(&natt->oai, buf, sizeof(buf))); + if (natt->flags & IPSEC_NATT_F_OAR) + printf("oar=%s ", ipsec_address(&natt->oar, buf, sizeof(buf))); + printf("}\n"); +} + void kdebug_secasv(struct secasvar *sav) { @@ -729,6 +744,8 @@ kdebug_secasv(struct secasvar *sav) if (sav->key_enc != NULL) KEYDBG(DUMP, kdebug_sadb_key((struct sadb_ext *)sav->key_enc)); + if (sav->natt != NULL) + kdebug_secnatt(sav->natt); if (sav->replay != NULL) { KEYDBG(DUMP, SECASVAR_LOCK(sav); From owner-svn-src-projects@freebsd.org Fri Jan 13 09:32:16 2017 Return-Path: Delivered-To: svn-src-projects@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 40206CAC225 for ; Fri, 13 Jan 2017 09:32:16 +0000 (UTC) (envelope-from ngie@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 D7FC7170A; Fri, 13 Jan 2017 09:32:15 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0D9WF4m077981; Fri, 13 Jan 2017 09:32:15 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0D9WCRH077955; Fri, 13 Jan 2017 09:32:12 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701130932.v0D9WCRH077955@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Fri, 13 Jan 2017 09:32:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312060 - in projects/bsnmp-ipv6-mib: . contrib/elftoolchain/libelftc contrib/libarchive/libarchive contrib/libarchive/libarchive/test contrib/netbsd-tests contrib/netbsd-tests/crypto/l... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2017 09:32:16 -0000 Author: ngie Date: Fri Jan 13 09:32:11 2017 New Revision: 312060 URL: https://svnweb.freebsd.org/changeset/base/312060 Log: MFhead@r312059 Added: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c - copied unchanged from r312059, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.tar.uu - copied unchanged from r312059, head/contrib/libarchive/libarchive/test/test_read_pax_schily_xattr.tar.uu projects/bsnmp-ipv6-mib/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c - copied unchanged from r312059, head/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c - copied unchanged from r312059, head/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c - copied unchanged from r312059, head/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/msg.h - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/msg.h projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_wait.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_wait.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_wait.h - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_wait.h projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_wait3.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_wait3.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_wait4.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_wait4.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_wait6.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_wait6.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_waitid.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_waitid.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c - copied unchanged from r312059, head/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libm/t_casinh.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libm/t_casinh.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libm/t_fe_round.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libm/t_fe_round.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libm/t_ilogb.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libm/t_ilogb.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c - copied unchanged from r312059, head/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_mtudisc.sh - copied unchanged from r312059, head/contrib/netbsd-tests/net/net/t_mtudisc.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_mtudisc6.sh - copied unchanged from r312059, head/contrib/netbsd-tests/net/net/t_mtudisc6.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_ping6_opts.sh - copied unchanged from r312059, head/contrib/netbsd-tests/net/net/t_ping6_opts.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net_common.sh - copied unchanged from r312059, head/contrib/netbsd-tests/net/net_common.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c - copied unchanged from r312059, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c - copied unchanged from r312059, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c projects/bsnmp-ipv6-mib/sys/dev/e1000/em_txrx.c - copied unchanged from r312059, head/sys/dev/e1000/em_txrx.c projects/bsnmp-ipv6-mib/sys/dev/e1000/igb_txrx.c - copied unchanged from r312059, head/sys/dev/e1000/igb_txrx.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci_acpi.c - copied unchanged from r312059, head/sys/dev/sdhci/sdhci_acpi.c projects/bsnmp-ipv6-mib/sys/modules/sdhci_acpi/ - copied from r312059, head/sys/modules/sdhci_acpi/ projects/bsnmp-ipv6-mib/tests/sys/geom/class/gate/ggate_test.sh - copied unchanged from r312059, head/tests/sys/geom/class/gate/ggate_test.sh projects/bsnmp-ipv6-mib/usr.bin/tail/tests/ - copied from r312059, head/usr.bin/tail/tests/ projects/bsnmp-ipv6-mib/usr.sbin/fstyp/exfat.c - copied unchanged from r312059, head/usr.sbin/fstyp/exfat.c projects/bsnmp-ipv6-mib/usr.sbin/fstyp/tests/dfr-01-xfat.img.bz2 - copied unchanged from r312059, head/usr.sbin/fstyp/tests/dfr-01-xfat.img.bz2 Deleted: projects/bsnmp-ipv6-mib/sys/dev/e1000/if_igb.c projects/bsnmp-ipv6-mib/sys/dev/e1000/if_igb.h projects/bsnmp-ipv6-mib/sys/dev/e1000/if_lem.c projects/bsnmp-ipv6-mib/sys/dev/e1000/if_lem.h projects/bsnmp-ipv6-mib/sys/modules/igb/ projects/bsnmp-ipv6-mib/tests/sys/geom/class/gate/1_test.sh projects/bsnmp-ipv6-mib/tests/sys/geom/class/gate/2_test.sh projects/bsnmp-ipv6-mib/tests/sys/geom/class/gate/3_test.sh projects/bsnmp-ipv6-mib/tests/sys/geom/class/gate/conf.sh Modified: projects/bsnmp-ipv6-mib/ObsoleteFiles.inc projects/bsnmp-ipv6-mib/UPDATING projects/bsnmp-ipv6-mib/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_acl.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_posix.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_7zip.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_lha.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_rar.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_tar.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_warc.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_zip.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.h projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string_composition.h projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_add_filter_xz.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_disk_acl.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_7zip.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_pax.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_xar.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_zip.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_archive_read_add_passphrase.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_compat_uudecode.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_read_format_cpio_afio.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_read_format_zip_traditional_encryption_data.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_read_format_zip_winzip_aes_large.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/test/test_sparse_basic.c projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/xxhash.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/dev/audio/h_pad.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue projects/bsnmp-ipv6-mib/contrib/netbsd-tests/fs/ffs/ffs_common.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/fs/fifofs/t_fifo.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/fs/psshfs/t_psshfs.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/fs/puffs/t_basic.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/fs/vfs/t_vnops.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/h_macros.h projects/bsnmp-ipv6-mib/contrib/netbsd-tests/kernel/t_mqueue.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/arch/sparc64/exec_prot_support.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/arch/sparc64/return_one.S projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_faccessat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_fchmodat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_fchownat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_fexecve.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_fstatat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_mkfifoat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_mknodat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_o_search.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_openat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_readlinkat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_unlinkat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/c063/t_utimensat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/db/h_db.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/db/t_db.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_fileactions.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_assert.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_dir.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_ftok.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_setdomainname.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_sleep.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_time.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_ttyname.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/gen/t_vis.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/regex/debug.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/stdio/t_printf.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/string/t_memcpy.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/string/t_memmem.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/string/t_strchr.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/string/t_strerror.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_access.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_chroot.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_mincore.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_mmap.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_unlink.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/sys/t_wait.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/t_cdb.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libc/ttyio/t_ttyio.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libm/t_ldexp.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libm/t_precision.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libpthread/h_common.h projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libpthread/t_mutex.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/librumpclient/h_execthr.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/lib/libusbhid/t_usbhid.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/arp/t_arp.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/arp/t_dad.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/if/t_compat.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/if/t_ifconfig.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/if_bridge/t_bridge.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/if_gif/t_gif.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/if_pppoe/t_pppoe.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/if_tap/t_tap.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/mcast/t_mcast.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/ndp/t_dad.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/ndp/t_ndp.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/ndp/t_ra.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_forwarding.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_ipaddress.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/net/t_ipv6address.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/route/t_change.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/route/t_flags.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/route/t_flags6.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/net/route/t_route.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/rump/modautoload/t_modautoload.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/sys/net/t_print.c projects/bsnmp-ipv6-mib/contrib/netbsd-tests/usr.bin/config/t_config.sh projects/bsnmp-ipv6-mib/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh projects/bsnmp-ipv6-mib/crypto/openssh/serverloop.c projects/bsnmp-ipv6-mib/crypto/openssh/ssh-agent.1 projects/bsnmp-ipv6-mib/crypto/openssh/ssh-agent.c projects/bsnmp-ipv6-mib/crypto/openssh/ssh_config projects/bsnmp-ipv6-mib/crypto/openssh/ssh_config.5 projects/bsnmp-ipv6-mib/crypto/openssh/sshd_config projects/bsnmp-ipv6-mib/crypto/openssh/sshd_config.5 projects/bsnmp-ipv6-mib/crypto/openssh/version.h projects/bsnmp-ipv6-mib/etc/mtree/BSD.tests.dist projects/bsnmp-ipv6-mib/etc/rc.d/ntpdate projects/bsnmp-ipv6-mib/lib/libarchive/tests/Makefile projects/bsnmp-ipv6-mib/lib/libc/gen/tcsendbreak.3 projects/bsnmp-ipv6-mib/lib/libc/tests/db/Makefile projects/bsnmp-ipv6-mib/lib/libc/tests/gen/Makefile projects/bsnmp-ipv6-mib/lib/libc/tests/stdlib/Makefile projects/bsnmp-ipv6-mib/lib/libc/tests/sys/Makefile projects/bsnmp-ipv6-mib/lib/libnetbsd/sys/cdefs.h projects/bsnmp-ipv6-mib/lib/libthr/tests/Makefile projects/bsnmp-ipv6-mib/lib/msun/tests/Makefile projects/bsnmp-ipv6-mib/libexec/rtld-elf/rtld.c projects/bsnmp-ipv6-mib/libexec/rtld-elf/rtld_lock.c projects/bsnmp-ipv6-mib/sbin/camcontrol/modeedit.c projects/bsnmp-ipv6-mib/share/man/man4/em.4 projects/bsnmp-ipv6-mib/share/man/man4/sfxge.4 projects/bsnmp-ipv6-mib/share/man/man4/tty.4 projects/bsnmp-ipv6-mib/share/misc/committers-ports.dot projects/bsnmp-ipv6-mib/sys/amd64/amd64/pmap.c projects/bsnmp-ipv6-mib/sys/amd64/conf/GENERIC projects/bsnmp-ipv6-mib/sys/arm64/conf/GENERIC projects/bsnmp-ipv6-mib/sys/boot/common/reloc_elf.c projects/bsnmp-ipv6-mib/sys/boot/efi/Makefile.inc projects/bsnmp-ipv6-mib/sys/boot/efi/boot1/boot_module.h projects/bsnmp-ipv6-mib/sys/boot/efi/include/efiapi.h projects/bsnmp-ipv6-mib/sys/boot/efi/loader/arch/arm/ldscript.arm projects/bsnmp-ipv6-mib/sys/boot/efi/loader/arch/arm/start.S projects/bsnmp-ipv6-mib/sys/cam/cam_ccb.h projects/bsnmp-ipv6-mib/sys/cam/cam_periph.c projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl.c projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_frontend_cam_sim.c projects/bsnmp-ipv6-mib/sys/cam/ctl/ctl_ha.c projects/bsnmp-ipv6-mib/sys/cam/ctl/scsi_ctl.c projects/bsnmp-ipv6-mib/sys/cam/nvme/nvme_da.c projects/bsnmp-ipv6-mib/sys/cam/scsi/scsi_all.c projects/bsnmp-ipv6-mib/sys/cam/scsi/scsi_xpt.c projects/bsnmp-ipv6-mib/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/bsnmp-ipv6-mib/sys/conf/NOTES projects/bsnmp-ipv6-mib/sys/conf/files projects/bsnmp-ipv6-mib/sys/conf/files.arm64 projects/bsnmp-ipv6-mib/sys/conf/makeLINT.mk projects/bsnmp-ipv6-mib/sys/conf/options projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/components/tables/tbxface.c projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/include/acpixf.h projects/bsnmp-ipv6-mib/sys/contrib/ipfilter/netinet/ip_fil.h projects/bsnmp-ipv6-mib/sys/ddb/db_input.c projects/bsnmp-ipv6-mib/sys/dev/ahci/ahci_generic.c projects/bsnmp-ipv6-mib/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/common/t4_msg.h projects/bsnmp-ipv6-mib/sys/dev/cxgbe/iw_cxgbe/provider.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/t4_main.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/t4_sge.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_connect.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_cpl_io.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_ddp.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_listen.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_tom.c projects/bsnmp-ipv6-mib/sys/dev/cxgbe/tom/t4_tom.h projects/bsnmp-ipv6-mib/sys/dev/e1000/if_em.c projects/bsnmp-ipv6-mib/sys/dev/e1000/if_em.h projects/bsnmp-ipv6-mib/sys/dev/mmc/mmcsd.c projects/bsnmp-ipv6-mib/sys/dev/mpr/mpr_table.c projects/bsnmp-ipv6-mib/sys/dev/mps/mps_table.c projects/bsnmp-ipv6-mib/sys/dev/nand/nand_geom.c projects/bsnmp-ipv6-mib/sys/dev/netmap/netmap_generic.c projects/bsnmp-ipv6-mib/sys/dev/ntb/if_ntb/if_ntb.c projects/bsnmp-ipv6-mib/sys/dev/nvd/nvd.c projects/bsnmp-ipv6-mib/sys/dev/rtwn/pci/rtwn_pci_attach.c projects/bsnmp-ipv6-mib/sys/dev/rtwn/rtl8188e/r88e_fw.c projects/bsnmp-ipv6-mib/sys/dev/rtwn/rtl8192c/r92c_fw.c projects/bsnmp-ipv6-mib/sys/dev/rtwn/rtl8192c/r92c_tx_desc.h projects/bsnmp-ipv6-mib/sys/dev/rtwn/usb/rtwn_usb_ep.c projects/bsnmp-ipv6-mib/sys/dev/sdhci/sdhci_fdt_gpio.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/efx_mcdi.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/common/efx_mcdi.h projects/bsnmp-ipv6-mib/sys/dev/sfxge/sfxge.h projects/bsnmp-ipv6-mib/sys/dev/sfxge/sfxge_port.c projects/bsnmp-ipv6-mib/sys/dev/sfxge/sfxge_tx.c projects/bsnmp-ipv6-mib/sys/dev/uart/uart_bus_pci.c projects/bsnmp-ipv6-mib/sys/dev/uart/uart_core.c projects/bsnmp-ipv6-mib/sys/dev/usb/controller/ehci_imx.c projects/bsnmp-ipv6-mib/sys/dev/usb/misc/udbp.c projects/bsnmp-ipv6-mib/sys/dev/usb/usbdevs projects/bsnmp-ipv6-mib/sys/dev/usb/wlan/if_rsu.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/cd9660_vfsops.c projects/bsnmp-ipv6-mib/sys/fs/cd9660/iso.h projects/bsnmp-ipv6-mib/sys/fs/pseudofs/pseudofs_vncache.c projects/bsnmp-ipv6-mib/sys/geom/geom_disk.c projects/bsnmp-ipv6-mib/sys/geom/geom_disk.h projects/bsnmp-ipv6-mib/sys/geom/raid/md_ddf.c projects/bsnmp-ipv6-mib/sys/geom/raid/md_promise.c projects/bsnmp-ipv6-mib/sys/i386/conf/GENERIC projects/bsnmp-ipv6-mib/sys/i386/i386/pmap.c projects/bsnmp-ipv6-mib/sys/kern/tty.c projects/bsnmp-ipv6-mib/sys/kern/uipc_mbuf2.c projects/bsnmp-ipv6-mib/sys/kern/vfs_bio.c projects/bsnmp-ipv6-mib/sys/libkern/bcmp.c projects/bsnmp-ipv6-mib/sys/libkern/bsearch.c projects/bsnmp-ipv6-mib/sys/libkern/iconv_ucs.c projects/bsnmp-ipv6-mib/sys/libkern/iconv_xlat16.c projects/bsnmp-ipv6-mib/sys/libkern/memmem.c projects/bsnmp-ipv6-mib/sys/libkern/qdivrem.c projects/bsnmp-ipv6-mib/sys/libkern/qsort.c projects/bsnmp-ipv6-mib/sys/libkern/random.c projects/bsnmp-ipv6-mib/sys/libkern/scanc.c projects/bsnmp-ipv6-mib/sys/libkern/strcmp.c projects/bsnmp-ipv6-mib/sys/libkern/strncpy.c projects/bsnmp-ipv6-mib/sys/mips/conf/OCTEON1 projects/bsnmp-ipv6-mib/sys/modules/Makefile projects/bsnmp-ipv6-mib/sys/modules/ahci/Makefile projects/bsnmp-ipv6-mib/sys/modules/em/Makefile projects/bsnmp-ipv6-mib/sys/net/iflib.c projects/bsnmp-ipv6-mib/sys/net80211/_ieee80211.h projects/bsnmp-ipv6-mib/sys/net80211/ieee80211.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211.h projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_adhoc.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_hostap.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_ht.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_ht.h projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_input.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_node.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_output.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_proto.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_scan_sta.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_sta.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_tdma.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_var.h projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_vht.c projects/bsnmp-ipv6-mib/sys/net80211/ieee80211_vht.h projects/bsnmp-ipv6-mib/sys/netinet/tcp_var.h projects/bsnmp-ipv6-mib/sys/netpfil/ipfw/ip_dummynet.c projects/bsnmp-ipv6-mib/sys/powerpc/conf/GENERIC64 projects/bsnmp-ipv6-mib/sys/powerpc/include/asm.h projects/bsnmp-ipv6-mib/sys/sparc64/include/atomic.h projects/bsnmp-ipv6-mib/sys/sys/cdefs.h projects/bsnmp-ipv6-mib/sys/sys/tty.h projects/bsnmp-ipv6-mib/sys/tools/embed_mfs.sh projects/bsnmp-ipv6-mib/sys/vm/vnode_pager.c projects/bsnmp-ipv6-mib/sys/x86/x86/mca.c projects/bsnmp-ipv6-mib/tests/sys/geom/class/gate/Makefile projects/bsnmp-ipv6-mib/tools/build/mk/OptionalObsoleteFiles.inc projects/bsnmp-ipv6-mib/usr.bin/calendar/calendars/calendar.freebsd projects/bsnmp-ipv6-mib/usr.bin/fortune/fortune/fortune.6 projects/bsnmp-ipv6-mib/usr.bin/rpcgen/rpc_cout.c projects/bsnmp-ipv6-mib/usr.bin/rpcgen/rpc_svcout.c projects/bsnmp-ipv6-mib/usr.bin/tail/Makefile projects/bsnmp-ipv6-mib/usr.bin/tail/reverse.c projects/bsnmp-ipv6-mib/usr.sbin/crunch/crunchide/exec_elf32.c projects/bsnmp-ipv6-mib/usr.sbin/fstyp/Makefile projects/bsnmp-ipv6-mib/usr.sbin/fstyp/fstyp.8 projects/bsnmp-ipv6-mib/usr.sbin/fstyp/fstyp.c projects/bsnmp-ipv6-mib/usr.sbin/fstyp/fstyp.h projects/bsnmp-ipv6-mib/usr.sbin/fstyp/tests/Makefile projects/bsnmp-ipv6-mib/usr.sbin/fstyp/tests/fstyp_test.sh projects/bsnmp-ipv6-mib/usr.sbin/mfiutil/mfi_evt.c projects/bsnmp-ipv6-mib/usr.sbin/pciconf/pciconf.c projects/bsnmp-ipv6-mib/usr.sbin/route6d/route6d.c projects/bsnmp-ipv6-mib/usr.sbin/syslogd/syslogd.c Directory Properties: projects/bsnmp-ipv6-mib/ (props changed) projects/bsnmp-ipv6-mib/contrib/elftoolchain/ (props changed) projects/bsnmp-ipv6-mib/contrib/libarchive/ (props changed) projects/bsnmp-ipv6-mib/contrib/netbsd-tests/ (props changed) projects/bsnmp-ipv6-mib/crypto/openssh/ (props changed) projects/bsnmp-ipv6-mib/sys/cddl/contrib/opensolaris/ (props changed) projects/bsnmp-ipv6-mib/sys/contrib/dev/acpica/ (props changed) projects/bsnmp-ipv6-mib/sys/contrib/ipfilter/ (props changed) Modified: projects/bsnmp-ipv6-mib/ObsoleteFiles.inc ============================================================================== --- projects/bsnmp-ipv6-mib/ObsoleteFiles.inc Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/ObsoleteFiles.inc Fri Jan 13 09:32:11 2017 (r312060) @@ -38,6 +38,11 @@ # xargs -n1 | sort | uniq -d; # done +# 20170110: Four files from ggate tests consolidated into one +OLD_FILES+=usr/tests/sys/geom/class/gate/1_test +OLD_FILES+=usr/tests/sys/geom/class/gate/2_test +OLD_FILES+=usr/tests/sys/geom/class/gate/3_test +OLD_FILES+=usr/tests/sys/geom/class/gate/conf.sh # 20170103: libbsnmptools.so made into an INTERNALLIB OLD_FILES+=usr/lib/libbsnmptools.a OLD_FILES+=usr/lib/libbsnmptools_p.a @@ -48,8 +53,8 @@ OLD_FILES+=usr/share/man/man3/sysdecode_ # 20161230: libarchive ACL pax test renamed to test_acl_pax_posix1e.tar.uu OLD_FILES+=usr/tests/lib/libarchive/test_acl_pax.tar.uu # 20161229: Three files from gnop tests consolidated into one -OLD_FILES+=usr/tests/sys/geom/class/nop/1_test.sh -OLD_FILES+=usr/tests/sys/geom/class/nop/2_test.sh +OLD_FILES+=usr/tests/sys/geom/class/nop/1_test +OLD_FILES+=usr/tests/sys/geom/class/nop/2_test OLD_FILES+=usr/tests/sys/geom/class/nop/conf.sh # 20161217: new clang import which bumps version from 3.9.0 to 3.9.1. OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/allocator_interface.h @@ -2260,7 +2265,6 @@ OLD_LIBS+=usr/lib32/private/libyaml.so.1 OLD_FILES+=usr/lib32/private/libyaml_p.a # 20140216: new clang import which bumps version from 3.3 to 3.4. OLD_FILES+=usr/bin/llvm-prof -OLD_FILES+=usr/bin/llvm-ranlib OLD_FILES+=usr/include/clang/3.3/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.3/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.3/altivec.h Modified: projects/bsnmp-ipv6-mib/UPDATING ============================================================================== --- projects/bsnmp-ipv6-mib/UPDATING Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/UPDATING Fri Jan 13 09:32:11 2017 (r312060) @@ -51,6 +51,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 ****************************** SPECIAL WARNING: ****************************** +20170112: + The EM_MULTIQUEUE kernel configuration option is deprecated now that + the em(4) driver conforms to iflib specifications. + +20170109: + The igb(4), em(4) and lem(4) ethernet drivers are now implemented via + IFLIB. If you have a custom kernel configuration that excludes em(4) + but you use igb(4), you need to re-add em(4) to your custom configuration. + 20161217: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. Please see the 20141231 entry below for information about prerequisites Modified: projects/bsnmp-ipv6-mib/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c Fri Jan 13 09:32:11 2017 (r312060) @@ -501,6 +501,120 @@ elftc_reloc_type_str(unsigned int mach, case 116: return "R_PPC_EMB_RELSDA"; } break; + case EM_PPC64: + switch(type) { + case 0: return "R_PPC64_NONE"; + case 1: return "R_PPC64_ADDR32"; + case 2: return "R_PPC64_ADDR24"; + case 3: return "R_PPC64_ADDR16"; + case 4: return "R_PPC64_ADDR16_LO"; + case 5: return "R_PPC64_ADDR16_HI"; + case 6: return "R_PPC64_ADDR16_HA"; + case 7: return "R_PPC64_ADDR14"; + case 8: return "R_PPC64_ADDR14_BRTAKEN"; + case 9: return "R_PPC64_ADDR14_BRNTAKEN"; + case 10: return "R_PPC64_REL24"; + case 11: return "R_PPC64_REL14"; + case 12: return "R_PPC64_REL14_BRTAKEN"; + case 13: return "R_PPC64_REL14_BRNTAKEN"; + case 14: return "R_PPC64_GOT16"; + case 15: return "R_PPC64_GOT16_LO"; + case 16: return "R_PPC64_GOT16_HI"; + case 17: return "R_PPC64_GOT16_HA"; + case 19: return "R_PPC64_COPY"; + case 20: return "R_PPC64_GLOB_DAT"; + case 21: return "R_PPC64_JMP_SLOT"; + case 22: return "R_PPC64_RELATIVE"; + case 24: return "R_PPC64_UADDR32"; + case 25: return "R_PPC64_UADDR16"; + case 26: return "R_PPC64_REL32"; + case 27: return "R_PPC64_PLT32"; + case 28: return "R_PPC64_PLTREL32"; + case 29: return "R_PPC64_PLT16_LO"; + case 30: return "R_PPC64_PLT16_HI"; + case 31: return "R_PPC64_PLT16_HA"; + case 33: return "R_PPC64_SECTOFF"; + case 34: return "R_PPC64_SECTOFF_LO"; + case 35: return "R_PPC64_SECTOFF_HI"; + case 36: return "R_PPC64_SECTOFF_HA"; + case 37: return "R_PPC64_ADDR30"; + case 38: return "R_PPC64_ADDR64"; + case 39: return "R_PPC64_ADDR16_HIGHER"; + case 40: return "R_PPC64_ADDR16_HIGHERA"; + case 41: return "R_PPC64_ADDR16_HIGHEST"; + case 42: return "R_PPC64_ADDR16_HIGHESTA"; + case 43: return "R_PPC64_UADDR64"; + case 44: return "R_PPC64_REL64"; + case 45: return "R_PPC64_PLT64"; + case 46: return "R_PPC64_PLTREL64"; + case 47: return "R_PPC64_TOC16"; + case 48: return "R_PPC64_TOC16_LO"; + case 49: return "R_PPC64_TOC16_HI"; + case 50: return "R_PPC64_TOC16_HA"; + case 51: return "R_PPC64_TOC"; + case 52: return "R_PPC64_PLTGOT16"; + case 53: return "R_PPC64_PLTGOT16_LO"; + case 54: return "R_PPC64_PLTGOT16_HI"; + case 55: return "R_PPC64_PLTGOT16_HA"; + case 56: return "R_PPC64_ADDR16_DS"; + case 57: return "R_PPC64_ADDR16_LO_DS"; + case 58: return "R_PPC64_GOT16_DS"; + case 59: return "R_PPC64_GOT16_LO_DS"; + case 60: return "R_PPC64_PLT16_LO_DS"; + case 61: return "R_PPC64_SECTOFF_DS"; + case 62: return "R_PPC64_SECTOFF_LO_DS"; + case 63: return "R_PPC64_TOC16_DS"; + case 64: return "R_PPC64_TOC16_LO_DS"; + case 65: return "R_PPC64_PLTGOT16_DS"; + case 66: return "R_PPC64_PLTGOT16_LO_DS"; + case 67: return "R_PPC64_TLS"; + case 68: return "R_PPC64_DTPMOD64"; + case 69: return "R_PPC64_TPREL16"; + case 70: return "R_PPC64_TPREL16_LO"; + case 71: return "R_PPC64_TPREL16_HI"; + case 72: return "R_PPC64_TPREL16_HA"; + case 73: return "R_PPC64_TPREL64"; + case 74: return "R_PPC64_DTPREL16"; + case 75: return "R_PPC64_DTPREL16_LO"; + case 76: return "R_PPC64_DTPREL16_HI"; + case 77: return "R_PPC64_DTPREL16_HA"; + case 78: return "R_PPC64_DTPREL64"; + case 79: return "R_PPC64_GOT_TLSGD16"; + case 80: return "R_PPC64_GOT_TLSGD16_LO"; + case 81: return "R_PPC64_GOT_TLSGD16_HI"; + case 82: return "R_PPC64_GOT_TLSGD16_HA"; + case 83: return "R_PPC64_GOT_TLSLD16"; + case 84: return "R_PPC64_GOT_TLSLD16_LO"; + case 85: return "R_PPC64_GOT_TLSLD16_HI"; + case 86: return "R_PPC64_GOT_TLSLD16_HA"; + case 87: return "R_PPC64_GOT_TPREL16_DS"; + case 88: return "R_PPC64_GOT_TPREL16_LO_DS"; + case 89: return "R_PPC64_GOT_TPREL16_HI"; + case 90: return "R_PPC64_GOT_TPREL16_HA"; + case 91: return "R_PPC64_GOT_DTPREL16_DS"; + case 92: return "R_PPC64_GOT_DTPREL16_LO_DS"; + case 93: return "R_PPC64_GOT_DTPREL16_HI"; + case 94: return "R_PPC64_GOT_DTPREL16_HA"; + case 95: return "R_PPC64_TPREL16_DS"; + case 96: return "R_PPC64_TPREL16_LO_DS"; + case 97: return "R_PPC64_TPREL16_HIGHER"; + case 98: return "R_PPC64_TPREL16_HIGHERA"; + case 99: return "R_PPC64_TPREL16_HIGHEST"; + case 100: return "R_PPC64_TPREL16_HIGHESTA"; + case 101: return "R_PPC64_DTPREL16_DS"; + case 102: return "R_PPC64_DTPREL16_LO_DS"; + case 103: return "R_PPC64_DTPREL16_HIGHER"; + case 104: return "R_PPC64_DTPREL16_HIGHERA"; + case 105: return "R_PPC64_DTPREL16_HIGHEST"; + case 106: return "R_PPC64_DTPREL16_HIGHESTA"; + case 107: return "R_PPC64_TLSGD"; + case 108: return "R_PPC64_TLSLD"; + case 249: return "R_PPC64_REL16"; + case 250: return "R_PPC64_REL16_LO"; + case 251: return "R_PPC64_REL16_HI"; + case 252: return "R_PPC64_REL16_HA"; + } + break; case EM_RISCV: switch(type) { case 0: return "R_RISCV_NONE"; @@ -550,6 +664,37 @@ elftc_reloc_type_str(unsigned int mach, case 48: return "R_RISCV_GPREL_S"; } break; + case EM_S390: + switch (type) { + case 0: return "R_390_NONE"; + case 1: return "R_390_8"; + case 2: return "R_390_12"; + case 3: return "R_390_16"; + case 4: return "R_390_32"; + case 5: return "R_390_PC32"; + case 6: return "R_390_GOT12"; + case 7: return "R_390_GOT32"; + case 8: return "R_390_PLT32"; + case 9: return "R_390_COPY"; + case 10: return "R_390_GLOB_DAT"; + case 11: return "R_390_JMP_SLOT"; + case 12: return "R_390_RELATIVE"; + case 13: return "R_390_GOTOFF"; + case 14: return "R_390_GOTPC"; + case 15: return "R_390_GOT16"; + case 16: return "R_390_PC16"; + case 17: return "R_390_PC16DBL"; + case 18: return "R_390_PLT16DBL"; + case 19: return "R_390_PC32DBL"; + case 20: return "R_390_PLT32DBL"; + case 21: return "R_390_GOTPCDBL"; + case 22: return "R_390_64"; + case 23: return "R_390_PC64"; + case 24: return "R_390_GOT64"; + case 25: return "R_390_PLT64"; + case 26: return "R_390_GOTENT"; + } + break; case EM_SPARC: case EM_SPARCV9: switch(type) { Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_acl.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_acl.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_acl.c Fri Jan 13 09:32:11 2017 (r312060) @@ -786,7 +786,8 @@ append_entry_w(wchar_t **wp, const wchar } else if (tag == ARCHIVE_ENTRY_ACL_USER || tag == ARCHIVE_ENTRY_ACL_GROUP) { append_id_w(wp, id); - id = -1; + if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) + id = -1; } /* Solaris style has no second colon after other and mask */ if (((flags & ARCHIVE_ENTRY_ACL_STYLE_SOLARIS) == 0) @@ -1042,7 +1043,8 @@ append_entry(char **p, const char *prefi } else if (tag == ARCHIVE_ENTRY_ACL_USER || tag == ARCHIVE_ENTRY_ACL_GROUP) { append_id(p, id); - id = -1; + if ((type & ARCHIVE_ENTRY_ACL_TYPE_NFS4) == 0) + id = -1; } /* Solaris style has no second colon after other and mask */ if (((flags & ARCHIVE_ENTRY_ACL_STYLE_SOLARIS) == 0) @@ -1328,6 +1330,7 @@ archive_acl_from_text_w(struct archive_a tag == ARCHIVE_ENTRY_ACL_GROUP) { n = 1; name = field[1]; + isint_w(name.start, name.end, &id); } else n = 0; @@ -1799,6 +1802,7 @@ archive_acl_from_text_l(struct archive_a tag == ARCHIVE_ENTRY_ACL_GROUP) { n = 1; name = field[1]; + isint(name.start, name.end, &id); } else n = 0; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Fri Jan 13 09:32:11 2017 (r312060) @@ -526,6 +526,11 @@ setup_acls(struct archive_read_disk *a, /* Only directories can have default ACLs. */ if (S_ISDIR(archive_entry_mode(entry))) { +#if HAVE_ACL_GET_FD_NP + if (*fd >= 0) + acl = acl_get_fd_np(*fd, ACL_TYPE_DEFAULT); + else +#endif acl = acl_get_file(accpath, ACL_TYPE_DEFAULT); if (acl != NULL) { r = translate_acl(a, entry, acl, @@ -581,7 +586,10 @@ static struct { {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACL_ENTRY_DIRECTORY_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT}, - {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY} + {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}, + {ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, ACL_ENTRY_SUCCESSFUL_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, ACL_ENTRY_FAILED_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACL_ENTRY_INHERITED} }; #endif static int Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_posix.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_posix.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_disk_posix.c Fri Jan 13 09:32:11 2017 (r312060) @@ -675,7 +675,7 @@ setup_suitable_read_buffer(struct archiv asize = cf->min_xfer_size; /* Increase a buffer size up to 64K bytes in - * a proper incremant size. */ + * a proper increment size. */ while (asize < 1024*64) asize += incr; /* Take a margin to adjust to the filesystem @@ -1656,7 +1656,7 @@ setup_current_filesystem(struct archive_ archive_set_error(&a->archive, errno, "statvfs failed"); return (ARCHIVE_FAILED); } else if (xr == 1) { - /* Usuall come here unless NetBSD supports _PC_REC_XFER_ALIGN + /* Usually come here unless NetBSD supports _PC_REC_XFER_ALIGN * for pathconf() function. */ t->current_filesystem->xfer_align = sfs.f_frsize; t->current_filesystem->max_xfer_size = -1; @@ -1944,7 +1944,7 @@ setup_current_filesystem(struct archive_ if (nm == -1) # endif /* _PC_NAME_MAX */ /* - * Some sysmtes (HP-UX or others?) incorrectly defined + * Some systems (HP-UX or others?) incorrectly defined * NAME_MAX macro to be a smaller value. */ # if defined(NAME_MAX) && NAME_MAX >= 255 Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lz4.c Fri Jan 13 09:32:11 2017 (r312060) @@ -180,7 +180,7 @@ lz4_reader_bid(struct archive_read_filte return (0); bits_checked += 8; BD = buffer[5]; - /* A block maximum size shuld be more than 3. */ + /* A block maximum size should be more than 3. */ if (((BD & 0x70) >> 4) < 4) return (0); /* Reserved bits must be "0". */ @@ -417,7 +417,7 @@ lz4_filter_read_descriptor(struct archiv /* Reserved bits must be zero. */ if (bd & 0x8f) goto malformed_error; - /* Get a maxinum block size. */ + /* Get a maximum block size. */ switch (read_buf[1] >> 4) { case 4: /* 64 KB */ state->flags.block_maximum_size = 64 * 1024; @@ -627,7 +627,7 @@ lz4_filter_read_default_stream(struct ar if (state->stage == SELECT_STREAM) { state->stage = READ_DEFAULT_STREAM; - /* First, read a desciprtor. */ + /* First, read a descriptor. */ if((ret = lz4_filter_read_descriptor(self)) != ARCHIVE_OK) return (ret); state->stage = READ_DEFAULT_BLOCK; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_filter_lzop.c Fri Jan 13 09:32:11 2017 (r312060) @@ -436,7 +436,7 @@ lzop_filter_read(struct archive_read_fil } /* - * Drive lzo uncompresison. + * Drive lzo uncompression. */ out_size = (lzo_uint)state->uncompressed_size; r = lzo1x_decompress_safe(b, (lzo_uint)state->compressed_size, Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_7zip.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_7zip.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_7zip.c Fri Jan 13 09:32:11 2017 (r312060) @@ -552,7 +552,7 @@ skip_sfx(struct archive_read *a, ssize_t /* * If bytes_avail > SFX_MIN_ADDR we do not have to call * __archive_read_seek() at this time since we have - * alredy had enough data. + * already had enough data. */ if (bytes_avail > SFX_MIN_ADDR) __archive_read_consume(a, SFX_MIN_ADDR); @@ -760,7 +760,7 @@ archive_read_format_7zip_read_header(str symsize += size; } if (symsize == 0) { - /* If there is no synname, handle it as a regular + /* If there is no symname, handle it as a regular * file. */ zip_entry->mode &= ~AE_IFMT; zip_entry->mode |= AE_IFREG; @@ -3288,7 +3288,7 @@ read_stream(struct archive_read *a, cons return (r); /* - * Skip the bytes we alrady has skipped in skip_stream(). + * Skip the bytes we already has skipped in skip_stream(). */ while (skip_bytes) { ssize_t skipped; @@ -3506,7 +3506,7 @@ setup_decode_folder(struct archive_read return (ARCHIVE_FATAL); } - /* Allocate memory for the decorded data of a sub + /* Allocate memory for the decoded data of a sub * stream. */ b[i] = malloc((size_t)zip->folder_outbytes_remaining); if (b[i] == NULL) { @@ -3591,7 +3591,7 @@ skip_stream(struct archive_read *a, size if (zip->folder_index == 0) { /* * Optimization for a list mode. - * Avoid unncecessary decoding operations. + * Avoid unnecessary decoding operations. */ zip->si.ci.folders[zip->entry->folderIndex].skipped_bytes += skip_bytes; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c Fri Jan 13 09:32:11 2017 (r312060) @@ -322,7 +322,7 @@ struct iso9660 { struct archive_string pathname; char seenRockridge; /* Set true if RR extensions are used. */ - char seenSUSP; /* Set true if SUSP is beging used. */ + char seenSUSP; /* Set true if SUSP is being used. */ char seenJoliet; unsigned char suspOffset; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_lha.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_lha.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_lha.c Fri Jan 13 09:32:11 2017 (r312060) @@ -1711,7 +1711,7 @@ lha_crc16(uint16_t crc, const void *pp, */ for (;len >= 8; len -= 8) { /* This if statement expects compiler optimization will - * remove the stament which will not be executed. */ + * remove the statement which will not be executed. */ #undef bswap16 #if defined(_MSC_VER) && _MSC_VER >= 1400 /* Visual Studio */ # define bswap16(x) _byteswap_ushort(x) Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_rar.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_rar.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_rar.c Fri Jan 13 09:32:11 2017 (r312060) @@ -906,7 +906,7 @@ archive_read_format_rar_read_header(stru sizeof(rar->reserved2)); } - /* Main header is password encrytped, so we cannot read any + /* Main header is password encrypted, so we cannot read any file names or any other info about files from the header. */ if (rar->main_flags & MHD_PASSWORD) { Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_tar.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_tar.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_tar.c Fri Jan 13 09:32:11 2017 (r312060) @@ -204,13 +204,14 @@ static int archive_read_format_tar_read_ struct archive_entry *); static int checksum(struct archive_read *, const void *); static int pax_attribute(struct archive_read *, struct tar *, - struct archive_entry *, const char *key, const char *value); + struct archive_entry *, const char *key, const char *value, + size_t value_length); static int pax_attribute_acl(struct archive_read *, struct tar *, struct archive_entry *, const char *, int); static int pax_attribute_xattr(struct archive_entry *, const char *, const char *); static int pax_header(struct archive_read *, struct tar *, - struct archive_entry *, char *attr); + struct archive_entry *, struct archive_string *); static void pax_time(const char *, int64_t *sec, long *nanos); static ssize_t readline(struct archive_read *, struct tar *, const char **, ssize_t limit, size_t *); @@ -1483,7 +1484,7 @@ header_pax_extensions(struct archive_rea * and then skip any fields in the standard header that were * defined in the pax header. */ - err2 = pax_header(a, tar, entry, tar->pax_header.s); + err2 = pax_header(a, tar, entry, &tar->pax_header); err = err_combine(err, err2); tar->entry_padding = 0x1ff & (-tar->entry_bytes_remaining); return (err); @@ -1564,16 +1565,17 @@ header_ustar(struct archive_read *a, str */ static int pax_header(struct archive_read *a, struct tar *tar, - struct archive_entry *entry, char *attr) + struct archive_entry *entry, struct archive_string *in_as) { - size_t attr_length, l, line_length; + size_t attr_length, l, line_length, value_length; char *p; char *key, *value; struct archive_string *as; struct archive_string_conv *sconv; int err, err2; + char *attr = in_as->s; - attr_length = strlen(attr); + attr_length = in_as->length; tar->pax_hdrcharset_binary = 0; archive_string_empty(&(tar->entry_gname)); archive_string_empty(&(tar->entry_linkpath)); @@ -1638,11 +1640,13 @@ pax_header(struct archive_read *a, struc } *p = '\0'; - /* Identify null-terminated 'value' portion. */ value = p + 1; + /* Some values may be binary data */ + value_length = attr + line_length - 1 - value; + /* Identify this attribute and set it in the entry. */ - err2 = pax_attribute(a, tar, entry, key, value); + err2 = pax_attribute(a, tar, entry, key, value, value_length); if (err2 == ARCHIVE_FATAL) return (err2); err = err_combine(err, err2); @@ -1764,6 +1768,20 @@ pax_attribute_xattr(struct archive_entry } static int +pax_attribute_schily_xattr(struct archive_entry *entry, + const char *name, const char *value, size_t value_length) +{ + if (strlen(name) < 14 || (memcmp(name, "SCHILY.xattr.", 13)) != 0) + return 1; + + name += 13; + + archive_entry_xattr_add_entry(entry, name, value, value_length); + + return 0; +} + +static int pax_attribute_acl(struct archive_read *a, struct tar *tar, struct archive_entry *entry, const char *value, int type) { @@ -1824,7 +1842,7 @@ pax_attribute_acl(struct archive_read *a */ static int pax_attribute(struct archive_read *a, struct tar *tar, - struct archive_entry *entry, const char *key, const char *value) + struct archive_entry *entry, const char *key, const char *value, size_t value_length) { int64_t s; long n; @@ -1961,6 +1979,9 @@ pax_attribute(struct archive_read *a, st } else if (strcmp(key, "SCHILY.realsize") == 0) { tar->realsize = tar_atol10(value, strlen(value)); archive_entry_set_size(entry, tar->realsize); + } else if (strncmp(key, "SCHILY.xattr.", 13) == 0) { + pax_attribute_schily_xattr(entry, key, value, + value_length); } else if (strcmp(key, "SUN.holesdata") == 0) { /* A Solaris extension for sparse. */ r = solaris_sparse_parse(a, tar, entry, value); Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_warc.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_warc.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_warc.c Fri Jan 13 09:32:11 2017 (r312060) @@ -88,7 +88,7 @@ typedef enum { WT_RVIS, /* conversion, unsupported */ WT_CONV, - /* continutation, unsupported at the moment */ + /* continuation, unsupported at the moment */ WT_CONT, /* invalid type */ LAST_WT @@ -562,7 +562,7 @@ xstrpisotime(const char *s, char **endpt goto out; } - /* massage TM to fulfill some of POSIX' contraints */ + /* massage TM to fulfill some of POSIX' constraints */ tm.tm_year -= 1900; tm.tm_mon--; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_zip.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_zip.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_read_support_format_zip.c Fri Jan 13 09:32:11 2017 (r312060) @@ -199,7 +199,7 @@ struct zip { struct trad_enc_ctx tctx; char tctx_valid; - /* WinZip AES decyption. */ + /* WinZip AES decryption. */ /* Contexts used for AES decryption. */ archive_crypto_ctx cctx; char cctx_valid; @@ -242,7 +242,7 @@ trad_enc_update_keys(struct trad_enc_ctx } static uint8_t -trad_enc_decypt_byte(struct trad_enc_ctx *ctx) +trad_enc_decrypt_byte(struct trad_enc_ctx *ctx) { unsigned temp = ctx->keys[2] | 2; return (uint8_t)((temp * (temp ^ 1)) >> 8) & 0xff; @@ -257,7 +257,7 @@ trad_enc_decrypt_update(struct trad_enc_ max = (unsigned)((in_len < out_len)? in_len: out_len); for (i = 0; i < max; i++) { - uint8_t t = in[i] ^ trad_enc_decypt_byte(ctx); + uint8_t t = in[i] ^ trad_enc_decrypt_byte(ctx); out[i] = t; trad_enc_update_keys(ctx, t); } @@ -710,7 +710,7 @@ process_extra(struct archive_read *a, co break; } case 0x9901: - /* WinZIp AES extra data field. */ + /* WinZip AES extra data field. */ if (p[offset + 2] == 'A' && p[offset + 3] == 'E') { /* Vendor version. */ zip_entry->aes_extra.vendor = @@ -1518,7 +1518,7 @@ read_decryption_header(struct archive_re case 0x6720:/* Blowfish */ case 0x6721:/* Twofish */ case 0x6801:/* RC4 */ - /* Suuported encryption algorithm. */ + /* Supported encryption algorithm. */ break; default: archive_set_error(&a->archive, @@ -1627,7 +1627,7 @@ read_decryption_header(struct archive_re __archive_read_consume(a, 4); /*return (ARCHIVE_OK); - * This is not fully implemnted yet.*/ + * This is not fully implemented yet.*/ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Encrypted file is unsupported"); return (ARCHIVE_FAILED); @@ -1709,7 +1709,7 @@ init_traditional_PKWARE_decryption(struc } /* - * Initialize ctx for Traditional PKWARE Decyption. + * Initialize ctx for Traditional PKWARE Decryption. */ r = trad_enc_init(&zip->tctx, passphrase, strlen(passphrase), p, ENC_HEADER_SIZE, &crcchk); Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.c Fri Jan 13 09:32:11 2017 (r312060) @@ -219,6 +219,12 @@ archive_wstring_append(struct archive_ws return (as); } +struct archive_string * +archive_array_append(struct archive_string *as, const char *p, size_t s) +{ + return archive_string_append(as, p, s); +} + void archive_string_concat(struct archive_string *dest, struct archive_string *src) { @@ -597,7 +603,7 @@ archive_wstring_append_from_mbs(struct a wcs = dest->s + dest->length; /* * We cannot use mbsrtowcs/mbstowcs here because those may convert - * extra MBS when strlen(p) > len and one wide character consis of + * extra MBS when strlen(p) > len and one wide character consists of * multi bytes. */ while (*mbs && mbs_length > 0) { @@ -1248,7 +1254,7 @@ create_sconv_object(const char *fc, cons sc->cd = iconv_open(tc, fc); if (sc->cd == (iconv_t)-1 && (sc->flag & SCONV_BEST_EFFORT)) { /* - * Unfortunaly, all of iconv implements do support + * Unfortunately, all of iconv implements do support * "CP932" character-set, so we should use "SJIS" * instead if iconv_open failed. */ @@ -1261,7 +1267,7 @@ create_sconv_object(const char *fc, cons /* * archive_mstring on Windows directly convert multi-bytes * into archive_wstring in order not to depend on locale - * so that you can do a I18N programing. This will be + * so that you can do a I18N programming. This will be * used only in archive_mstring_copy_mbs_len_l so far. */ if (flag & SCONV_FROM_CHARSET) { @@ -1726,7 +1732,7 @@ archive_string_conversion_from_charset(s * in tar or zip files. But mbstowcs/wcstombs(CRT) usually use CP_ACP * unless you use setlocale(LC_ALL, ".OCP")(specify CP_OEMCP). * So we should make a string conversion between CP_ACP and CP_OEMCP - * for compatibillty. + * for compatibility. */ #if defined(_WIN32) && !defined(__CYGWIN__) struct archive_string_conv * @@ -2220,7 +2226,7 @@ best_effort_strncat_in_locale(struct arc /* * If a character is ASCII, this just copies it. If not, this - * assigns '?' charater instead but in UTF-8 locale this assigns + * assigns '?' character instead but in UTF-8 locale this assigns * byte sequence 0xEF 0xBD 0xBD, which are code point U+FFFD, * a Replacement Character in Unicode. */ @@ -2554,7 +2560,7 @@ utf16_to_unicode(uint32_t *pwc, const ch /* * Surrogate pair values(0xd800 through 0xdfff) are only - * used by UTF-16, so, after above culculation, the code + * used by UTF-16, so, after above calculation, the code * must not be surrogate values, and Unicode has no codes * larger than 0x10ffff. Thus, those are not legal Unicode * values. @@ -2903,7 +2909,7 @@ get_nfc(uint32_t uc, uint32_t uc2) /* * Normalize UTF-8/UTF-16BE characters to Form C and copy the result. * - * TODO: Convert composition exclusions,which are never converted + * TODO: Convert composition exclusions, which are never converted * from NFC,NFD,NFKC and NFKD, to Form C. */ static int @@ -3437,7 +3443,7 @@ strncat_from_utf8_libarchive2(struct arc } /* - * As libarchie 2.x, translates the UTF-8 characters into + * As libarchive 2.x, translates the UTF-8 characters into * wide-characters in the assumption that WCS is Unicode. */ if (n < 0) { @@ -3947,7 +3953,7 @@ archive_mstring_get_mbs_l(struct archive #if defined(_WIN32) && !defined(__CYGWIN__) /* - * Internationalization programing on Windows must use Wide + * Internationalization programming on Windows must use Wide * characters because Windows platform cannot make locale UTF-8. */ if (sc != NULL && (aes->aes_set & AES_SET_WCS) != 0) { @@ -4079,7 +4085,7 @@ archive_mstring_copy_mbs_len_l(struct ar archive_string_empty(&(aes->aes_utf8)); #if defined(_WIN32) && !defined(__CYGWIN__) /* - * Internationalization programing on Windows must use Wide + * Internationalization programming on Windows must use Wide * characters because Windows platform cannot make locale UTF-8. */ if (sc == NULL) { Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.h ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.h Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string.h Fri Jan 13 09:32:11 2017 (r312060) @@ -81,6 +81,10 @@ archive_strappend_char(struct archive_st struct archive_wstring * archive_wstrappend_wchar(struct archive_wstring *, wchar_t); +/* Append a raw array to an archive_string, resizing as necessary */ +struct archive_string * +archive_array_append(struct archive_string *, const char *, size_t); + /* Convert a Unicode string to current locale and append the result. */ /* Returns -1 if conversion fails. */ int Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string_composition.h ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string_composition.h Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_string_composition.h Fri Jan 13 09:32:11 2017 (r312060) @@ -1009,7 +1009,7 @@ static const char u_decomposable_blocks[ (((uc) > 0x1D244)?0:\ ccc_val[ccc_val_index[ccc_index[(uc)>>8]][((uc)>>4)&0x0F]][(uc)&0x0F]) -/* The table of the value of Canonical Cimbining Class */ +/* The table of the value of Canonical Combining Class */ static const unsigned char ccc_val[][16] = { /* idx=0: XXXX0 - XXXXF */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write.c Fri Jan 13 09:32:11 2017 (r312060) @@ -231,7 +231,7 @@ __archive_write_filter(struct archive_wr if (length == 0) return(ARCHIVE_OK); if (f->write == NULL) - /* If unset, a fatal error has already ocuured, so this filter + /* If unset, a fatal error has already occurred, so this filter * didn't open. We cannot write anything. */ return(ARCHIVE_FATAL); r = (f->write)(f, buff, length); Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_add_filter_xz.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_add_filter_xz.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_add_filter_xz.c Fri Jan 13 09:32:11 2017 (r312060) @@ -233,7 +233,7 @@ archive_compressor_xz_init_stream(struct if (f->code == ARCHIVE_FILTER_XZ) { #ifdef HAVE_LZMA_STREAM_ENCODER_MT if (data->threads != 1) { - bzero(&mt_options, sizeof(mt_options)); + memset(&mt_options, 0, sizeof(mt_options)); mt_options.threads = data->threads; mt_options.timeout = 300; mt_options.filters = data->lzmafilters; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_disk_acl.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_disk_acl.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_disk_acl.c Fri Jan 13 09:32:11 2017 (r312060) @@ -124,7 +124,10 @@ static struct { {ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT, ACL_ENTRY_FILE_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT, ACL_ENTRY_DIRECTORY_INHERIT}, {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT}, - {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY} + {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}, + {ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS, ACL_ENTRY_SUCCESSFUL_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS, ACL_ENTRY_FAILED_ACCESS}, + {ARCHIVE_ENTRY_ACL_ENTRY_INHERITED, ACL_ENTRY_INHERITED} }; #endif @@ -292,29 +295,41 @@ set_acl(struct archive *a, int fd, const } /* Try restoring the ACL through 'fd' if we can. */ -#if HAVE_ACL_SET_FD - if (fd >= 0 && acl_type == ACL_TYPE_ACCESS && acl_set_fd(fd, acl) == 0) - ret = ARCHIVE_OK; - else -#else +#if HAVE_ACL_SET_FD_NP || HAVE_ACL_SET_FD #if HAVE_ACL_SET_FD_NP - if (fd >= 0 && acl_set_fd_np(fd, acl, acl_type) == 0) - ret = ARCHIVE_OK; - else -#endif -#endif + if (fd >= 0) { + if (acl_set_fd_np(fd, acl, acl_type) == 0) +#else /* HAVE_ACL_SET_FD */ + if (fd >= 0 && acl_type == ACL_TYPE_ACCESS) { + if (acl_set_fd(fd, acl) == 0) +#endif + ret = ARCHIVE_OK; + else { + if (errno == EOPNOTSUPP) { + /* Filesystem doesn't support ACLs */ + ret = ARCHIVE_OK; + } else { + archive_set_error(a, errno, + "Failed to set %s acl on fd", tname); + } + } + } else +#endif /* HAVE_ACL_SET_FD_NP || HAVE_ACL_SET_FD */ #if HAVE_ACL_SET_LINK_NP - if (acl_set_link_np(name, acl_type, acl) != 0) { - archive_set_error(a, errno, "Failed to set %s acl", tname); - ret = ARCHIVE_WARN; - } + if (acl_set_link_np(name, acl_type, acl) != 0) { #else /* TODO: Skip this if 'name' is a symlink. */ if (acl_set_file(name, acl_type, acl) != 0) { - archive_set_error(a, errno, "Failed to set %s acl", tname); - ret = ARCHIVE_WARN; - } #endif + if (errno == EOPNOTSUPP) { + /* Filesystem doesn't support ACLs */ + ret = ARCHIVE_OK; + } else { + archive_set_error(a, errno, "Failed to set %s acl", + tname); + ret = ARCHIVE_WARN; + } + } exit_free: acl_free(acl); return (ret); Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_7zip.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_7zip.c Fri Jan 13 09:32:11 2017 (r312060) @@ -1358,7 +1358,7 @@ make_header(struct archive_write *a, uin if (r < 0) return (r); - /* Write Nume size. */ + /* Write Name size. */ r = enc_uint64(a, zip->total_bytes_entry_name+1); if (r < 0) return (r); Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_pax.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_pax.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_pax.c Fri Jan 13 09:32:11 2017 (r312060) @@ -62,10 +62,17 @@ struct pax { struct sparse_block *sparse_tail; struct archive_string_conv *sconv_utf8; int opt_binary; + + unsigned flags; +#define WRITE_SCHILY_XATTR (1 << 0) +#define WRITE_LIBARCHIVE_XATTR (1 << 1) }; static void add_pax_attr(struct archive_string *, const char *key, const char *value); +static void add_pax_attr_binary(struct archive_string *, + const char *key, + const char *value, size_t value_len); static void add_pax_attr_int(struct archive_string *, const char *key, int64_t value); static void add_pax_attr_time(struct archive_string *, @@ -136,6 +143,8 @@ archive_write_set_format_pax(struct arch "Can't allocate pax data"); return (ARCHIVE_FATAL); } + pax->flags = WRITE_LIBARCHIVE_XATTR | WRITE_SCHILY_XATTR; + a->format_data = pax; a->format_name = "pax"; a->format_options = archive_write_pax_options; @@ -275,6 +284,17 @@ add_pax_attr_int(struct archive_string * static void add_pax_attr(struct archive_string *as, const char *key, const char *value) { + add_pax_attr_binary(as, key, value, strlen(value)); +} + +/* + * Add a key/value attribute to the pax header. This function handles + * binary values. + */ +static void +add_pax_attr_binary(struct archive_string *as, const char *key, + const char *value, size_t value_len) +{ int digits, i, len, next_ten; char tmp[1 + 3 * sizeof(int)]; /* < 3 base-10 digits per byte */ @@ -282,7 +302,7 @@ add_pax_attr(struct archive_string *as, * PAX attributes have the following layout: * <=> */ - len = 1 + (int)strlen(key) + 1 + (int)strlen(value) + 1; + len = 1 + (int)strlen(key) + 1 + (int)value_len + 1; /* * The field includes the length of the field, so @@ -313,21 +333,47 @@ add_pax_attr(struct archive_string *as, archive_strappend_char(as, ' '); archive_strcat(as, key); archive_strappend_char(as, '='); - archive_strcat(as, value); + archive_array_append(as, value, value_len); archive_strappend_char(as, '\n'); } +static void +archive_write_pax_header_xattr(struct pax *pax, const char *encoded_name, + const void *value, size_t value_len) +{ + struct archive_string s; + char *encoded_value; + + if (pax->flags & WRITE_LIBARCHIVE_XATTR) { + encoded_value = base64_encode((const char *)value, value_len); + + if (encoded_name != NULL && encoded_value != NULL) { + archive_string_init(&s); + archive_strcpy(&s, "LIBARCHIVE.xattr."); + archive_strcat(&s, encoded_name); + add_pax_attr(&(pax->pax_header), s.s, encoded_value); + archive_string_free(&s); + } + free(encoded_value); + } + if (pax->flags & WRITE_SCHILY_XATTR) { + archive_string_init(&s); + archive_strcpy(&s, "SCHILY.xattr."); + archive_strcat(&s, encoded_name); + add_pax_attr_binary(&(pax->pax_header), s.s, value, value_len); + archive_string_free(&s); + } +} + static int archive_write_pax_header_xattrs(struct archive_write *a, struct pax *pax, struct archive_entry *entry) { - struct archive_string s; int i = archive_entry_xattr_reset(entry); while (i--) { const char *name; const void *value; - char *encoded_value; char *url_encoded_name = NULL, *encoded_name = NULL; size_t size; int r; @@ -348,16 +394,9 @@ archive_write_pax_header_xattrs(struct a } } - encoded_value = base64_encode((const char *)value, size); + archive_write_pax_header_xattr(pax, encoded_name, + value, size); - if (encoded_name != NULL && encoded_value != NULL) { - archive_string_init(&s); - archive_strcpy(&s, "LIBARCHIVE.xattr."); - archive_strcat(&s, encoded_name); - add_pax_attr(&(pax->pax_header), s.s, encoded_value); - archive_string_free(&s); - } - free(encoded_value); } return (ARCHIVE_OK); } Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_xar.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_xar.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_xar.c Fri Jan 13 09:32:11 2017 (r312060) @@ -2913,7 +2913,7 @@ compression_init_encoder_xz(struct archi *strm = lzma_init_data; #ifdef HAVE_LZMA_STREAM_ENCODER_MT if (threads > 1) { - bzero(&mt_options, sizeof(mt_options)); + memset(&mt_options, 0, sizeof(mt_options)); mt_options.threads = threads; mt_options.timeout = 300; mt_options.filters = lzmafilters; Modified: projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_zip.c ============================================================================== --- projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_zip.c Fri Jan 13 09:19:09 2017 (r312059) +++ projects/bsnmp-ipv6-mib/contrib/libarchive/libarchive/archive_write_set_format_zip.c Fri Jan 13 09:32:11 2017 (r312060) @@ -878,7 +878,7 @@ archive_write_zip_header(struct archive_ || zip->entry_encryption == ENCRYPTION_WINZIP_AES256)) { memcpy(e, "\001\231\007\000\001\000AE", 8); - /* AES vendoer version AE-2 does not store a CRC. + /* AES vendor version AE-2 does not store a CRC. * WinZip 11 uses AE-1, which does store the CRC, * but it does not store the CRC when the file size * is less than 20 bytes. So we simulate what @@ -1013,7 +1013,7 @@ archive_write_zip_data(struct archive_wr if (zip->entry_flags & ZIP_ENTRY_FLAG_ENCRYPTED) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Jan 13 12:59:30 2017 Return-Path: Delivered-To: svn-src-projects@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 7829BCAEE76 for ; Fri, 13 Jan 2017 12:59:30 +0000 (UTC) (envelope-from ae@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 293BA12DD; Fri, 13 Jan 2017 12:59:30 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0DCxT7E060007; Fri, 13 Jan 2017 12:59:29 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0DCxT5O060006; Fri, 13 Jan 2017 12:59:29 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701131259.v0DCxT5O060006@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 13 Jan 2017 12:59:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312070 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2017 12:59:30 -0000 Author: ae Date: Fri Jan 13 12:59:29 2017 New Revision: 312070 URL: https://svnweb.freebsd.org/changeset/base/312070 Log: Require the presence of tunnel endpoints addresses for tunnel mode IPsec requets. When we are parsing SADB_X_SPDADD message, check that specified IPsec request contains tunnel endpoints addresses for tunnel mode requests. setkey(8) doesn't allow create policies with empty tunnel specification like 'esp/tunnel//require'. But it is possible to receive such policies from IKE. This leads to the presence of zero filled sockaddr structures in the IPsec request. Almost all the IPsec code assumes that sockaddr structures have correctly filled sa_len and sa_family fields. We use addresses from IPsec request for outbound SA lookup in ipsec[46]_allocsa() functions. Using these addresses key_allocsa_policy() chooses bucket from SAHADDRHASH table when does lookup for outbound SA. Also when check_policy_history is enabled ipsec_check_history() uses destination address to check that packet was handled by correct SA when we do inbound policy check. It appears that racoon sometimes can install such policies. Previously this was not an error due to several reasons. First of, we didn't have any hash tables and did the lookup among all SAs (no need to choose the bucket where lookup will be done). Second, since sa_family is zero, key_sockaddrcmp() has used bcmp() to compare full sockaddr structures, but since sa_len is zero too, it always matches addresses. In some cases this can be considered as feature, because we can use empty tunnel specification like an "any" selector. But for now I think it is a bug, because the lookup results are not predictable and any changes in SADB (new SA added or deleted) may change the lookup result. Note that linux's PF_KEY implementation also considers such policies as invalid. Reported by: Matthew Grooms Modified: projects/ipsec/sys/netipsec/key.c Modified: projects/ipsec/sys/netipsec/key.c ============================================================================== --- projects/ipsec/sys/netipsec/key.c Fri Jan 13 12:47:44 2017 (r312069) +++ projects/ipsec/sys/netipsec/key.c Fri Jan 13 12:59:29 2017 (r312070) @@ -1499,7 +1499,6 @@ key_msg2sp(struct sadb_x_policy *xpl0, s isr->level = xisr->sadb_x_ipsecrequest_level; /* set IP addresses if there */ - /* XXXAE: those are needed only for tunnel mode */ if (xisr->sadb_x_ipsecrequest_len > sizeof(*xisr)) { struct sockaddr *paddr; @@ -1539,6 +1538,18 @@ key_msg2sp(struct sadb_x_policy *xpl0, s return (NULL); } bcopy(paddr, &isr->saidx.dst, paddr->sa_len); + } else { + /* + * Addresses for TUNNEL mode requests are + * mandatory. + */ + if (isr->saidx.mode == IPSEC_MODE_TUNNEL) { + ipseclog((LOG_DEBUG, "%s: missing ", + "request addresses.\n", __func__)); + key_freesp(&newsp); + *error = EINVAL; + return (NULL); + } } tlen -= xisr->sadb_x_ipsecrequest_len; From owner-svn-src-projects@freebsd.org Fri Jan 13 13:03:48 2017 Return-Path: Delivered-To: svn-src-projects@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 E85E7CAEFD7 for ; Fri, 13 Jan 2017 13:03:48 +0000 (UTC) (envelope-from ae@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 A45551742; Fri, 13 Jan 2017 13:03:48 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0DD3lUC064206; Fri, 13 Jan 2017 13:03:47 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0DD3l4b064205; Fri, 13 Jan 2017 13:03:47 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201701131303.v0DD3l4b064205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Fri, 13 Jan 2017 13:03:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312071 - projects/ipsec/sys/netipsec X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2017 13:03:49 -0000 Author: ae Date: Fri Jan 13 13:03:47 2017 New Revision: 312071 URL: https://svnweb.freebsd.org/changeset/base/312071 Log: Remove extra comma. Modified: projects/ipsec/sys/netipsec/key.c Modified: projects/ipsec/sys/netipsec/key.c ============================================================================== --- projects/ipsec/sys/netipsec/key.c Fri Jan 13 12:59:29 2017 (r312070) +++ projects/ipsec/sys/netipsec/key.c Fri Jan 13 13:03:47 2017 (r312071) @@ -1544,7 +1544,7 @@ key_msg2sp(struct sadb_x_policy *xpl0, s * mandatory. */ if (isr->saidx.mode == IPSEC_MODE_TUNNEL) { - ipseclog((LOG_DEBUG, "%s: missing ", + ipseclog((LOG_DEBUG, "%s: missing " "request addresses.\n", __func__)); key_freesp(&newsp); *error = EINVAL; From owner-svn-src-projects@freebsd.org Sat Jan 14 06:46:04 2017 Return-Path: Delivered-To: svn-src-projects@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 2B500CAFD99 for ; Sat, 14 Jan 2017 06:46:04 +0000 (UTC) (envelope-from ngie@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 D877E1831; Sat, 14 Jan 2017 06:46:03 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E6k3Kw008358; Sat, 14 Jan 2017 06:46:03 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E6k3wZ008357; Sat, 14 Jan 2017 06:46:03 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140646.v0E6k3wZ008357@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 06:46:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312125 - projects/netbsd-tests-upstream-01-2017 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 06:46:04 -0000 Author: ngie Date: Sat Jan 14 06:46:02 2017 New Revision: 312125 URL: https://svnweb.freebsd.org/changeset/base/312125 Log: Create project for upstreaming additional content of contrib/netbsd-tests to reduce content thrashing on ^/head Added: - copied from r312124, head/ Directory Properties: projects/netbsd-tests-upstream-01-2017/ (props changed) From owner-svn-src-projects@freebsd.org Sat Jan 14 06:49:24 2017 Return-Path: Delivered-To: svn-src-projects@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 F3BC5CAFDF7 for ; Sat, 14 Jan 2017 06:49:23 +0000 (UTC) (envelope-from ngie@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 83C9E197C; Sat, 14 Jan 2017 06:49:23 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E6nMOx008577; Sat, 14 Jan 2017 06:49:22 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E6nHZI008523; Sat, 14 Jan 2017 06:49:17 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140649.v0E6nHZI008523@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 06:49:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312126 - in projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests: dev/cgd dev/clock_subr dev/scsipi dev/sysmon fs/common fs/ffs fs/hfs fs/kernfs fs/lfs fs/msdosfs fs/nfs fs/null... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 06:49:24 -0000 Author: ngie Date: Sat Jan 14 06:49:17 2017 New Revision: 312126 URL: https://svnweb.freebsd.org/changeset/base/312126 Log: Merge content currently under test from ^/vendor/NetBSD/tests/dist/@r312123 Sponsored by: Dell EMC Isilon Added: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/clock_subr/ - copied from r312123, vendor/NetBSD/tests/dist/dev/clock_subr/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/arch/ - copied from r312123, vendor/NetBSD/tests/dist/kernel/arch/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/exect/ - copied from r312123, vendor/NetBSD/tests/dist/lib/libc/gen/exect/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libpthread_dbg/ - copied from r312123, vendor/NetBSD/tests/dist/lib/libpthread_dbg/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librefuse/ - copied from r312123, vendor/NetBSD/tests/dist/lib/librefuse/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/if_tun/ - copied from r312123, vendor/NetBSD/tests/dist/net/if_tun/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/if_vlan/ - copied from r312123, vendor/NetBSD/tests/dist/net/if_vlan/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/sys/uvm/ - copied from r312123, vendor/NetBSD/tests/dist/sys/uvm/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/usr.bin/mixerctl/ - copied from r312123, vendor/NetBSD/tests/dist/usr.bin/mixerctl/ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/usr.bin/uniq/ - copied from r312123, vendor/NetBSD/tests/dist/usr.bin/uniq/ Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/scsipi/t_cd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/sysmon/t_swwdog.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/common/h_fsmacros.h projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/h_quota2_tests.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_fifos.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_mount.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_1.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_remount.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_log.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_v2.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/hfs/t_pathconvert.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/kernfs/t_basic.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/lfs/t_pr.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/msdosfs/t_snapshot.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nfs/t_mountd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nullfs/t_basic.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_nullpts.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_ptyfs.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_basic.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_fuzz.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_io.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/tmpfs/t_renamerace.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/umapfs/t_basic.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/union/t_pr.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_full.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_io.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_renamerace.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_ro.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_union.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_unpriv.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vfsops.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vnops.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/include/sys/t_socket.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file2.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc1.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_fifo.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_pipe.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_ttypty.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_extent.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_filedesc.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_lock.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_ptrace.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_ptrace_wait.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_pty.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_rnd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_glob.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/regex/debug.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/regex/t_regex_att.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_connect.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_dup.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_link.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_listen.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_mmap.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_nanosleep.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_pipe.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_pipe2.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_posix_fadvise.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_revoke.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_select.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_setrlimit.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_sigaction.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_socketpair.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_stat.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_truncate.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_umask.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_unlink.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_wait.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_write.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_ilogb.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_scalbn.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libposix/t_rename.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librumpclient/t_fd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/semaphore/sem.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/libexec/ld.elf_so/t_dlerror-cleared.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/libexec/ld.elf_so/t_dlerror-false.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/libexec/ld.elf_so/t_dlinfo.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/libexec/ld.elf_so/t_ifunc.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/modules/t_builtin.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpf/t_bpf.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpf/t_mbuf.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpfilter/t_bpfilter.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpfjit/t_bpfjit.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpfjit/t_cop.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpfjit/t_extmem.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/bpfjit/t_mbuf.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/carp/t_basic.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/config/netconfig.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/icmp/t_forward.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/icmp/t_ping.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/if_loop/t_pr.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/ndp/t_ra.sh projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/net/net/t_raw.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/modautoload/t_modautoload.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_kern.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_modcmd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_modlinkset.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_signals.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_threads.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_tsleep.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpkern/t_vm.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpvfs/t_basic.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpvfs/t_etfs.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/rump/rumpvfs/t_p2kifs.c Directory Properties: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/ (props changed) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_cgd_3des.c,v 1.1 2016/11/11 07:39:58 alnsn Exp $ */ +/* $NetBSD: t_cgd_3des.c,v 1.2 2017/01/13 21:30:39 christos Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. * All rights reserved. @@ -48,7 +48,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define SECSIZE 512 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_cgd_aes.c,v 1.5 2016/12/11 00:23:44 alnsn Exp $ */ +/* $NetBSD: t_cgd_aes.c,v 1.6 2017/01/13 21:30:39 christos Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. * Copyright (c) 2007 The Institute of Electrical and Electronics Engineers, Inc @@ -49,7 +49,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define SECSIZE 512 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_cgd_blowfish.c,v 1.1 2016/11/10 23:44:36 alnsn Exp $ */ +/* $NetBSD: t_cgd_blowfish.c,v 1.2 2017/01/13 21:30:39 christos Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. * All rights reserved. @@ -48,7 +48,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define SECSIZE 512 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/scsipi/t_cd.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/scsipi/t_cd.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/scsipi/t_cd.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_cd.c,v 1.7 2014/04/25 00:24:39 pooka Exp $ */ +/* $NetBSD: t_cd.c,v 1.8 2017/01/13 21:30:39 christos Exp $ */ /* * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -39,7 +39,7 @@ #include "scsitest.h" -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(noisyeject); ATF_TC_HEAD(noisyeject, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/sysmon/t_swwdog.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/sysmon/t_swwdog.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/dev/sysmon/t_swwdog.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_swwdog.c,v 1.6 2015/04/23 04:49:37 pgoyette Exp $ */ +/* $NetBSD: t_swwdog.c,v 1.7 2017/01/13 21:30:39 christos Exp $ */ /* * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -43,7 +43,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" static volatile sig_atomic_t tcount; Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/common/h_fsmacros.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/common/h_fsmacros.h Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/common/h_fsmacros.h Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: h_fsmacros.h,v 1.40 2015/08/29 19:19:43 dholland Exp $ */ +/* $NetBSD: h_fsmacros.h,v 1.41 2017/01/13 21:30:39 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -40,7 +40,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" #define FSPROTOS(_fs_) \ int _fs_##_fstest_newfs(const atf_tc_t *, void **, const char *, \ Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/h_quota2_tests.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/h_quota2_tests.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/h_quota2_tests.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: h_quota2_tests.c,v 1.4 2012/09/30 21:26:57 bouyer Exp $ */ +/* $NetBSD: h_quota2_tests.c,v 1.5 2017/01/13 21:30:39 christos Exp $ */ /* * rump server for advanced quota tests @@ -22,7 +22,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" int background = 0; Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_fifos.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_fifos.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_fifos.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_fifos.c,v 1.5 2010/11/07 17:51:17 jmmv Exp $ */ +/* $NetBSD: t_fifos.c,v 1.6 2017/01/13 21:30:39 christos Exp $ */ #include #include @@ -17,7 +17,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC_WITH_CLEANUP(fifos); ATF_TC_HEAD(fifos, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_mount.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_mount.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_mount.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_mount.c,v 1.13 2012/11/27 16:01:49 jakllsch Exp $ */ +/* $NetBSD: t_mount.c,v 1.14 2017/01/13 21:30:39 christos Exp $ */ /* * Basic tests for mounting @@ -25,7 +25,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(48Kimage); ATF_TC_HEAD(48Kimage, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_1.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_1.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_1.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_quota2_1.c,v 1.4 2012/03/15 02:02:22 joerg Exp $ */ +/* $NetBSD: t_quota2_1.c,v 1.5 2017/01/13 21:30:39 christos Exp $ */ /* * Basic tests for quota2 @@ -18,7 +18,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" static void do_quota(const atf_tc_t *tc, int n, const char *newfs_opts, int log) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_remount.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_remount.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_quota2_remount.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_quota2_remount.c,v 1.4 2012/03/15 02:02:22 joerg Exp $ */ +/* $NetBSD: t_quota2_remount.c,v 1.5 2017/01/13 21:30:39 christos Exp $ */ /* * Basic tests for quota2 @@ -19,7 +19,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" static void do_quota(const atf_tc_t *tc, int n, const char *newfs_opts, int log) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_snapshot.c,v 1.6 2013/02/06 09:05:01 hannken Exp $ */ +/* $NetBSD: t_snapshot.c,v 1.7 2017/01/13 21:30:39 christos Exp $ */ #include #include @@ -15,7 +15,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define IMGNAME "ffs.img" #define NEWFS "newfs -F -s 10000 " IMGNAME Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_log.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_log.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_log.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_snapshot_log.c,v 1.2 2013/02/06 09:05:01 hannken Exp $ */ +/* $NetBSD: t_snapshot_log.c,v 1.3 2017/01/13 21:30:39 christos Exp $ */ #include #include @@ -15,7 +15,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define IMGNAME "ffs.img" #define NEWFS "newfs -F -s 10000 " IMGNAME Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_v2.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_v2.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ffs/t_snapshot_v2.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_snapshot_v2.c,v 1.2 2013/02/06 09:05:01 hannken Exp $ */ +/* $NetBSD: t_snapshot_v2.c,v 1.3 2017/01/13 21:30:39 christos Exp $ */ #include #include @@ -15,7 +15,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define IMGNAME "ffs.img" #define NEWFS "newfs -F -s 10000 -O 2 " IMGNAME Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/hfs/t_pathconvert.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/hfs/t_pathconvert.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/hfs/t_pathconvert.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_pathconvert.c,v 1.5 2011/02/25 20:54:18 martin Exp $ */ +/* $NetBSD: t_pathconvert.c,v 1.6 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -18,7 +18,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(colonslash); ATF_TC_HEAD(colonslash, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/kernfs/t_basic.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/kernfs/t_basic.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/kernfs/t_basic.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_basic.c,v 1.3 2010/05/31 23:44:54 pooka Exp $ */ +/* $NetBSD: t_basic.c,v 1.4 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -20,7 +20,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(getdents); ATF_TC_HEAD(getdents, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/lfs/t_pr.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/lfs/t_pr.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/lfs/t_pr.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_pr.c,v 1.6 2011/02/22 18:41:05 pooka Exp $ */ +/* $NetBSD: t_pr.c,v 1.7 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -17,7 +17,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(mknod); ATF_TC_HEAD(mknod, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/msdosfs/t_snapshot.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/msdosfs/t_snapshot.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/msdosfs/t_snapshot.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_snapshot.c,v 1.3 2014/06/10 13:15:18 martin Exp $ */ +/* $NetBSD: t_snapshot.c,v 1.4 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -17,7 +17,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define IMGNAME "msdosfs.img" #define NEWFS "newfs_msdos -C 5M " IMGNAME Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nfs/t_mountd.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nfs/t_mountd.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nfs/t_mountd.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_mountd.c,v 1.5 2012/02/24 13:53:46 joerg Exp $ */ +/* $NetBSD: t_mountd.c,v 1.6 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #include "../common/h_fsmacros.h" ATF_TC(mountdhup); Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nullfs/t_basic.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nullfs/t_basic.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/nullfs/t_basic.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_basic.c,v 1.3 2010/06/09 08:37:16 pooka Exp $ */ +/* $NetBSD: t_basic.c,v 1.4 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -18,7 +18,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(basic); ATF_TC_HEAD(basic, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_nullpts.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_nullpts.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_nullpts.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_nullpts.c,v 1.5 2011/01/10 11:11:04 hannken Exp $ */ +/* $NetBSD: t_nullpts.c,v 1.6 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -19,7 +19,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" static void mountptyfs(const char *mp, int flags) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_ptyfs.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_ptyfs.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/ptyfs/t_ptyfs.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_ptyfs.c,v 1.1 2010/06/11 23:52:38 pooka Exp $ */ +/* $NetBSD: t_ptyfs.c,v 1.2 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -17,7 +17,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" static void mountptyfs(const char *mp, int flags) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_basic.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_basic.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_basic.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_basic.c,v 1.13 2016/12/01 14:49:04 hannken Exp $ */ +/* $NetBSD: t_basic.c,v 1.14 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -20,7 +20,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #include "../common/h_fsmacros.h" /* Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_fuzz.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_fuzz.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_fuzz.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_fuzz.c,v 1.5 2012/04/21 01:03:46 manu Exp $ */ +/* $NetBSD: t_fuzz.c,v 1.6 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -56,7 +56,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #define ITERATIONS 100 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_io.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_io.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/puffs/t_io.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_io.c,v 1.1 2010/11/12 17:33:28 pooka Exp $ */ +/* $NetBSD: t_io.c,v 1.2 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -20,7 +20,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" #include "../common/h_fsmacros.h" #define MAKEOPTS(...) \ Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/tmpfs/t_renamerace.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/tmpfs/t_renamerace.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/tmpfs/t_renamerace.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_renamerace.c,v 1.13 2011/08/18 21:44:55 riastradh Exp $ */ +/* $NetBSD: t_renamerace.c,v 1.14 2017/01/13 21:30:40 christos Exp $ */ /* * Modified for rump and atf from a program supplied @@ -23,7 +23,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(renamerace2); ATF_TC_HEAD(renamerace2, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/umapfs/t_basic.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/umapfs/t_basic.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/umapfs/t_basic.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_basic.c,v 1.4 2010/07/19 15:35:39 pooka Exp $ */ +/* $NetBSD: t_basic.c,v 1.5 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -20,7 +20,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(basic); ATF_TC_HEAD(basic, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/union/t_pr.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/union/t_pr.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/union/t_pr.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_pr.c,v 1.8 2011/08/10 06:27:02 hannken Exp $ */ +/* $NetBSD: t_pr.c,v 1.9 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -17,7 +17,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(multilayer); ATF_TC_HEAD(multilayer, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_full.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_full.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_full.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_full.c,v 1.8 2013/03/16 05:45:37 jmmv Exp $ */ +/* $NetBSD: t_full.c,v 1.9 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" /* * Write this much over the image size. This is to force an NFS commit, Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_io.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_io.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_io.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_io.c,v 1.16 2015/04/04 12:34:44 riastradh Exp $ */ +/* $NetBSD: t_io.c,v 1.17 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" #define TESTSTR "this is a string. collect enough and you'll have Em" #define TESTSZ sizeof(TESTSTR) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_renamerace.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_renamerace.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_renamerace.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_renamerace.c,v 1.33 2016/05/04 08:30:22 dholland Exp $ */ +/* $NetBSD: t_renamerace.c,v 1.34 2017/01/13 21:30:40 christos Exp $ */ /* * Modified for rump and atf from a program supplied @@ -34,7 +34,7 @@ #define FSTEST_IMGSIZE (50000 * 512) #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" static volatile int quittingtime; pid_t wrkpid; Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_ro.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_ro.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_ro.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_ro.c,v 1.5 2011/02/22 21:23:19 yamt Exp $ */ +/* $NetBSD: t_ro.c,v 1.6 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" #define AFILE "testfile" #define ADIR "testdir" Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_union.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_union.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_union.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_union.c,v 1.8 2011/08/07 06:01:51 hannken Exp $ */ +/* $NetBSD: t_union.c,v 1.9 2017/01/13 21:30:40 christos Exp $ */ #include #include @@ -17,7 +17,7 @@ #include -#include "../../h_macros.h" +#include "h_macros.h" #include "../common/h_fsmacros.h" #define MSTR "magic bus" Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_unpriv.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_unpriv.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_unpriv.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_unpriv.c,v 1.12 2015/04/09 19:51:13 riastradh Exp $ */ +/* $NetBSD: t_unpriv.c,v 1.13 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" #define USES_OWNER \ if (FSTYPE_MSDOS(tc)) \ Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vfsops.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vfsops.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vfsops.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_vfsops.c,v 1.11 2011/04/04 19:16:58 hannken Exp $ */ +/* $NetBSD: t_vfsops.c,v 1.12 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" static void tmount(const atf_tc_t *tc, const char *path) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vnops.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vnops.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/fs/vfs/t_vnops.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_vnops.c,v 1.58 2016/08/29 02:31:46 kre Exp $ */ +/* $NetBSD: t_vnops.c,v 1.59 2017/01/13 21:30:40 christos Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -43,7 +43,7 @@ #include #include "../common/h_fsmacros.h" -#include "../../h_macros.h" +#include "h_macros.h" #define TESTFILE "afile" Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/include/sys/t_socket.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/include/sys/t_socket.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/include/sys/t_socket.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_socket.c,v 1.4 2015/02/27 08:30:30 martin Exp $ */ +/* $NetBSD: t_socket.c,v 1.5 2017/01/13 21:30:41 christos Exp $ */ #include #include @@ -18,7 +18,7 @@ #include #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(cmsg_sendfd_bounds); ATF_TC_HEAD(cmsg_sendfd_bounds, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_fifo.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_fifo.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $ */ +/* $NetBSD: t_fifo.c,v 1.4 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_fifo.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $"); +__RCSID("$NetBSD: t_fifo.c,v 1.4 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -46,7 +46,7 @@ __RCSID("$NetBSD: t_fifo.c,v 1.3 2010/11 #include -#include "../../../h_macros.h" +#include "h_macros.h" #define FIFONAME "fifo" Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_file.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $ */ +/* $NetBSD: t_file.c,v 1.4 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_file.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $"); +__RCSID("$NetBSD: t_file.c,v 1.4 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -50,7 +50,7 @@ __RCSID("$NetBSD: t_file.c,v 1.3 2010/11 #include -#include "../../../h_macros.h" +#include "h_macros.h" #define FILENAME "file" #define NLINES 5 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file2.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file2.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_file2.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_file2.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $ */ +/* $NetBSD: t_file2.c,v 1.4 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_file2.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $"); +__RCSID("$NetBSD: t_file2.c,v 1.4 2017/01/13 21:30:41 christos Exp $"); #include @@ -41,7 +41,7 @@ __RCSID("$NetBSD: t_file2.c,v 1.3 2010/1 #include -#include "../../../h_macros.h" +#include "h_macros.h" ATF_TC(file2); ATF_TC_HEAD(file2, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_pipe.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_pipe.c,v 1.1 2009/02/20 21:39:57 jmmv Exp $ */ +/* $NetBSD: t_pipe.c,v 1.2 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_pipe.c,v 1.1 2009/02/20 21:39:57 jmmv Exp $"); +__RCSID("$NetBSD: t_pipe.c,v 1.2 2017/01/13 21:30:41 christos Exp $"); #include @@ -41,7 +41,7 @@ __RCSID("$NetBSD: t_pipe.c,v 1.1 2009/02 #include -#include "../../../h_macros.h" +#include "h_macros.h" ATF_TC(pipe); ATF_TC_HEAD(pipe, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/read/t_ttypty.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_ttypty.c,v 1.1 2009/02/20 21:39:57 jmmv Exp $ */ +/* $NetBSD: t_ttypty.c,v 1.2 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_ttypty.c,v 1.1 2009/02/20 21:39:57 jmmv Exp $"); +__RCSID("$NetBSD: t_ttypty.c,v 1.2 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -45,7 +45,7 @@ __RCSID("$NetBSD: t_ttypty.c,v 1.1 2009/ #include -#include "../../../h_macros.h" +#include "h_macros.h" static void h_check(bool check_master) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_ioctl.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_ioctl.c,v 1.2 2015/01/14 22:22:32 christos Exp $ */ +/* $NetBSD: t_ioctl.c,v 1.3 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_ioctl.c,v 1.2 2015/01/14 22:22:32 christos Exp $"); +__RCSID("$NetBSD: t_ioctl.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -42,7 +42,7 @@ __RCSID("$NetBSD: t_ioctl.c,v 1.2 2015/0 #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(kfilter_byfilter); ATF_TC_HEAD(kfilter_byfilter, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc1.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc1.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc1.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_proc1.c,v 1.2 2015/01/14 22:22:32 christos Exp $ */ +/* $NetBSD: t_proc1.c,v 1.3 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_proc1.c,v 1.2 2015/01/14 22:22:32 christos Exp $"); +__RCSID("$NetBSD: t_proc1.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); /* * this also used to trigger problem fixed in @@ -51,7 +51,7 @@ __RCSID("$NetBSD: t_proc1.c,v 1.2 2015/0 #include -#include "../../h_macros.h" +#include "h_macros.h" static int child(void) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_proc2.c,v 1.2 2015/01/14 22:22:32 christos Exp $ */ +/* $NetBSD: t_proc2.c,v 1.3 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_proc2.c,v 1.2 2015/01/14 22:22:32 christos Exp $"); +__RCSID("$NetBSD: t_proc2.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #ifdef __FreeBSD__ #include @@ -50,7 +50,7 @@ __RCSID("$NetBSD: t_proc2.c,v 1.2 2015/0 #include -#include "../../h_macros.h" +#include "h_macros.h" static void child_two(void) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_proc3.c,v 1.2 2015/01/14 22:22:32 christos Exp $ */ +/* $NetBSD: t_proc3.c,v 1.3 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: t_proc3.c,v 1.2 2015/01/14 22:22:32 christos Exp $"); +__RCSID("$NetBSD: t_proc3.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #ifdef __FreeBSD__ #include @@ -48,7 +48,7 @@ __RCSID("$NetBSD: t_proc3.c,v 1.2 2015/0 #include -#include "../../h_macros.h" +#include "h_macros.h" ATF_TC(proc3); ATF_TC_HEAD(proc3, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_sig.c,v 1.2 2010/11/03 16:10:20 christos Exp $ */ +/* $NetBSD: t_sig.c,v 1.3 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_sig.c,v 1.2 2010/11/03 16:10:20 christos Exp $"); +__RCSID("$NetBSD: t_sig.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #ifdef __FreeBSD__ #include @@ -51,7 +51,7 @@ __RCSID("$NetBSD: t_sig.c,v 1.2 2010/11/ #include -#include "../../h_macros.h" +#include "h_macros.h" #define NSIGNALS 5 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_fifo.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_fifo.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_fifo.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_fifo.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $ */ +/* $NetBSD: t_fifo.c,v 1.4 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_fifo.c,v 1.3 2010/11/07 17:51:20 jmmv Exp $"); +__RCSID("$NetBSD: t_fifo.c,v 1.4 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -46,7 +46,7 @@ __RCSID("$NetBSD: t_fifo.c,v 1.3 2010/11 #include -#include "../../../h_macros.h" +#include "h_macros.h" #define FIFONAME "fifo" Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_pipe.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_pipe.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_pipe.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_pipe.c,v 1.1 2009/02/20 21:39:57 jmmv Exp $ */ +/* $NetBSD: t_pipe.c,v 1.2 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_pipe.c,v 1.1 2009/02/20 21:39:57 jmmv Exp $"); +__RCSID("$NetBSD: t_pipe.c,v 1.2 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -44,7 +44,7 @@ __RCSID("$NetBSD: t_pipe.c,v 1.1 2009/02 #include -#include "../../../h_macros.h" +#include "h_macros.h" ATF_TC(pipe1); ATF_TC_HEAD(pipe1, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_ttypty.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_ttypty.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/write/t_ttypty.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_ttypty.c,v 1.1 2009/02/20 21:39:58 jmmv Exp $ */ +/* $NetBSD: t_ttypty.c,v 1.2 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_ttypty.c,v 1.1 2009/02/20 21:39:58 jmmv Exp $"); +__RCSID("$NetBSD: t_ttypty.c,v 1.2 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -47,7 +47,7 @@ __RCSID("$NetBSD: t_ttypty.c,v 1.1 2009/ #include -#include "../../../h_macros.h" +#include "h_macros.h" static void h_check(bool check_master) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_extent.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_extent.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_extent.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_extent.c,v 1.4 2012/01/27 18:53:10 para Exp $ */ +/* $NetBSD: t_extent.c,v 1.5 2017/01/13 21:30:41 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_extent.c,v 1.4 2012/01/27 18:53:10 para Exp $"); +__RCSID("$NetBSD: t_extent.c,v 1.5 2017/01/13 21:30:41 christos Exp $"); #include #include @@ -41,7 +41,7 @@ __RCSID("$NetBSD: t_extent.c,v 1.4 2012/ #include -#include "../h_macros.h" +#include "h_macros.h" static int ret; static struct extent *ex; Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_filedesc.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_filedesc.c Sat Jan 14 06:46:02 2017 (r312125) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/t_filedesc.c Sat Jan 14 06:49:17 2017 (r312126) @@ -1,4 +1,4 @@ -/* $NetBSD: t_filedesc.c,v 1.5 2012/03/18 09:46:50 jruoho Exp $ */ +/* $NetBSD: t_filedesc.c,v 1.6 2017/01/13 21:30:41 christos Exp $ */ /*- *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Jan 14 06:51:33 2017 Return-Path: Delivered-To: svn-src-projects@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 992D4CAFF2F for ; Sat, 14 Jan 2017 06:51:33 +0000 (UTC) (envelope-from ngie@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 4D1A01C8E; Sat, 14 Jan 2017 06:51:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E6pWJ7010113; Sat, 14 Jan 2017 06:51:32 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E6pWDS010109; Sat, 14 Jan 2017 06:51:32 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140651.v0E6pWDS010109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 06:51:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312127 - in projects/netbsd-tests-upstream-01-2017: etc/mtree usr.bin/uniq usr.bin/uniq/tests X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 06:51:33 -0000 Author: ngie Date: Sat Jan 14 06:51:31 2017 New Revision: 312127 URL: https://svnweb.freebsd.org/changeset/base/312127 Log: Integrate .../contrib/netbsd-tests/usr.bin/uniq into the FreeBSD test suite as .../usr.bin/uniq/tests Sponsored by: Dell EMC Isilon Added: projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/ projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/Makefile (contents, props changed) projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/Makefile.depend (contents, props changed) Modified: projects/netbsd-tests-upstream-01-2017/etc/mtree/BSD.tests.dist projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/Makefile Modified: projects/netbsd-tests-upstream-01-2017/etc/mtree/BSD.tests.dist ============================================================================== --- projects/netbsd-tests-upstream-01-2017/etc/mtree/BSD.tests.dist Sat Jan 14 06:49:17 2017 (r312126) +++ projects/netbsd-tests-upstream-01-2017/etc/mtree/BSD.tests.dist Sat Jan 14 06:51:31 2017 (r312127) @@ -660,6 +660,8 @@ .. uuencode .. + uniq + .. xargs .. xinstall Modified: projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/Makefile ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/Makefile Sat Jan 14 06:49:17 2017 (r312126) +++ projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/Makefile Sat Jan 14 06:51:31 2017 (r312127) @@ -1,6 +1,12 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 # $FreeBSD$ +.include + PROG= uniq +.if ${MK_TESTS} != "no" +SUBDIR+= tests +.endif + .include Added: projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/Makefile Sat Jan 14 06:51:31 2017 (r312127) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +PACKAGE= tests + +NETBSD_ATF_TESTS_SH= uniq_test + +${PACKAGE}FILES+= d_basic.in +${PACKAGE}FILES+= d_basic.out +${PACKAGE}FILES+= d_counts.out +${PACKAGE}FILES+= d_input.in +${PACKAGE}FILES+= d_show_duplicates.out +${PACKAGE}FILES+= d_show_uniques.out + +.include + +.include Added: projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/Makefile.depend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/usr.bin/uniq/tests/Makefile.depend Sat Jan 14 06:51:31 2017 (r312127) @@ -0,0 +1,11 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif From owner-svn-src-projects@freebsd.org Sat Jan 14 07:14:26 2017 Return-Path: Delivered-To: svn-src-projects@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 A68B1CAF460 for ; Sat, 14 Jan 2017 07:14:26 +0000 (UTC) (envelope-from ngie@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 83C93172A; Sat, 14 Jan 2017 07:14:26 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7EPZT020609; Sat, 14 Jan 2017 07:14:25 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7EP10020608; Sat, 14 Jan 2017 07:14:25 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140714.v0E7EP10020608@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:14:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312128 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:14:26 -0000 Author: ngie Date: Sat Jan 14 07:14:25 2017 New Revision: 312128 URL: https://svnweb.freebsd.org/changeset/base/312128 Log: Copy ^/vendor/NetBSD/tests/dist to contrib/netbsd-tests This was missed in r303980 Added: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c - copied unchanged from r312127, vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c Copied: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c (from r312127, vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c Sat Jan 14 07:14:25 2017 (r312128, copy of r312127, vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c) @@ -0,0 +1,127 @@ +/* $NetBSD: t_hmac.c,v 1.1 2016/07/02 14:52:09 christos Exp $ */ + +/*- + * Copyright (c) 2016 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +__RCSID("$NetBSD: t_hmac.c,v 1.1 2016/07/02 14:52:09 christos Exp $"); + +#include +#include +#include +#include +#include + +static void +test(void) +{ + uint8_t tmp1[EVP_MAX_MD_SIZE]; + uint8_t tmp2[EVP_MAX_MD_SIZE]; + uint8_t key[256]; + uint8_t data[4096]; + unsigned int tmp1len; + size_t tmp2len; + int stop; + void *e1; + const void *evps[] = { + EVP_md2(), + EVP_md4(), + EVP_md5(), + EVP_ripemd160(), + EVP_sha1(), + EVP_sha224(), + EVP_sha256(), + EVP_sha384(), + EVP_sha512(), + }; + const char *names[] = { + "md2", + "md4", + "md5", + "rmd160", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + }; + + for (size_t k = 0; k < sizeof(key); k++) + key[k] = k; + for (size_t d = 0; d < sizeof(data); d++) + data[d] = d % 256; + + for (size_t t = 0; t < __arraycount(names); t++) + for (size_t i = 1; i < sizeof(key); i += 9) + for (size_t j = 3; j < sizeof(data); j += 111) { + stop = 0; +#ifdef DEBUG + printf("%s: keysize = %zu datasize = %zu\n", names[t], + i, j); +#endif + memset(tmp1, 0, sizeof(tmp1)); + memset(tmp2, 0, sizeof(tmp2)); + e1 = HMAC(evps[t], key, i, data, j, tmp1, &tmp1len); + ATF_REQUIRE(e1 != NULL); + tmp2len = hmac(names[t], key, i, data, j, tmp2, + sizeof(tmp2)); + ATF_REQUIRE_MSG(tmp1len == tmp2len, "hash %s len %u " + "!= %zu", names[t], tmp1len, tmp2len); + for (size_t k = 0; k < tmp2len; k++) + if (tmp1[k] != tmp2[k]) { +#ifdef DEBUG + printf("%zu %.2x %.2x\n", + k, tmp1[k], tmp2[k]); +#endif + stop = 1; + break; + } + ATF_REQUIRE_MSG(!stop, "hash %s failed for " + "keylen=%zu, datalen=%zu", names[t], i, j); + } +} + +ATF_TC(t_hmac); + +ATF_TC_HEAD(t_hmac, tc) +{ + atf_tc_set_md_var(tc, "descr", + "Test hmac functions for consistent results"); +} + +ATF_TC_BODY(t_hmac, tc) +{ + test(); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, t_hmac); + return atf_no_error(); +} + From owner-svn-src-projects@freebsd.org Sat Jan 14 07:15:15 2017 Return-Path: Delivered-To: svn-src-projects@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 AB083CAF4E4 for ; Sat, 14 Jan 2017 07:15:15 +0000 (UTC) (envelope-from ngie@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 64CBD18E3; Sat, 14 Jan 2017 07:15:15 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7FEfo020709; Sat, 14 Jan 2017 07:15:14 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7FEMo020708; Sat, 14 Jan 2017 07:15:14 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140715.v0E7FEMo020708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:15:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312129 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:15:15 -0000 Author: ngie Date: Sat Jan 14 07:15:14 2017 New Revision: 312129 URL: https://svnweb.freebsd.org/changeset/base/312129 Log: Try again with a better commit message Deleted: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c From owner-svn-src-projects@freebsd.org Sat Jan 14 07:16:16 2017 Return-Path: Delivered-To: svn-src-projects@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 B3A47CAF533 for ; Sat, 14 Jan 2017 07:16:16 +0000 (UTC) (envelope-from ngie@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 908C11A35; Sat, 14 Jan 2017 07:16:16 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7GFbk020810; Sat, 14 Jan 2017 07:16:15 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7GFOm020809; Sat, 14 Jan 2017 07:16:15 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140716.v0E7GFOm020809@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:16:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312130 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:16:16 -0000 Author: ngie Date: Sat Jan 14 07:16:15 2017 New Revision: 312130 URL: https://svnweb.freebsd.org/changeset/base/312130 Log: Copy ^/vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c to contrib/netbsd-tests/lib/libc/hash/t_hmac.c This was missed in r303980 Added: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c - copied unchanged from r312129, vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c Copied: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c (from r312129, vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_hmac.c Sat Jan 14 07:16:15 2017 (r312130, copy of r312129, vendor/NetBSD/tests/dist/lib/libc/hash/t_hmac.c) @@ -0,0 +1,127 @@ +/* $NetBSD: t_hmac.c,v 1.1 2016/07/02 14:52:09 christos Exp $ */ + +/*- + * Copyright (c) 2016 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +__RCSID("$NetBSD: t_hmac.c,v 1.1 2016/07/02 14:52:09 christos Exp $"); + +#include +#include +#include +#include +#include + +static void +test(void) +{ + uint8_t tmp1[EVP_MAX_MD_SIZE]; + uint8_t tmp2[EVP_MAX_MD_SIZE]; + uint8_t key[256]; + uint8_t data[4096]; + unsigned int tmp1len; + size_t tmp2len; + int stop; + void *e1; + const void *evps[] = { + EVP_md2(), + EVP_md4(), + EVP_md5(), + EVP_ripemd160(), + EVP_sha1(), + EVP_sha224(), + EVP_sha256(), + EVP_sha384(), + EVP_sha512(), + }; + const char *names[] = { + "md2", + "md4", + "md5", + "rmd160", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + }; + + for (size_t k = 0; k < sizeof(key); k++) + key[k] = k; + for (size_t d = 0; d < sizeof(data); d++) + data[d] = d % 256; + + for (size_t t = 0; t < __arraycount(names); t++) + for (size_t i = 1; i < sizeof(key); i += 9) + for (size_t j = 3; j < sizeof(data); j += 111) { + stop = 0; +#ifdef DEBUG + printf("%s: keysize = %zu datasize = %zu\n", names[t], + i, j); +#endif + memset(tmp1, 0, sizeof(tmp1)); + memset(tmp2, 0, sizeof(tmp2)); + e1 = HMAC(evps[t], key, i, data, j, tmp1, &tmp1len); + ATF_REQUIRE(e1 != NULL); + tmp2len = hmac(names[t], key, i, data, j, tmp2, + sizeof(tmp2)); + ATF_REQUIRE_MSG(tmp1len == tmp2len, "hash %s len %u " + "!= %zu", names[t], tmp1len, tmp2len); + for (size_t k = 0; k < tmp2len; k++) + if (tmp1[k] != tmp2[k]) { +#ifdef DEBUG + printf("%zu %.2x %.2x\n", + k, tmp1[k], tmp2[k]); +#endif + stop = 1; + break; + } + ATF_REQUIRE_MSG(!stop, "hash %s failed for " + "keylen=%zu, datalen=%zu", names[t], i, j); + } +} + +ATF_TC(t_hmac); + +ATF_TC_HEAD(t_hmac, tc) +{ + atf_tc_set_md_var(tc, "descr", + "Test hmac functions for consistent results"); +} + +ATF_TC_BODY(t_hmac, tc) +{ + test(); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, t_hmac); + return atf_no_error(); +} + From owner-svn-src-projects@freebsd.org Sat Jan 14 07:39:08 2017 Return-Path: Delivered-To: svn-src-projects@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 53C8DCAFA79 for ; Sat, 14 Jan 2017 07:39:08 +0000 (UTC) (envelope-from ngie@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 177C9129B; Sat, 14 Jan 2017 07:39:08 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7d7Hv029121; Sat, 14 Jan 2017 07:39:07 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7d7W0029120; Sat, 14 Jan 2017 07:39:07 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140739.v0E7d7W0029120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:39:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312131 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/db X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:39:08 -0000 Author: ngie Date: Sat Jan 14 07:39:07 2017 New Revision: 312131 URL: https://svnweb.freebsd.org/changeset/base/312131 Log: Diff reduce with upstream Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/db/t_db.sh Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/db/t_db.sh ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/db/t_db.sh Sat Jan 14 07:16:15 2017 (r312130) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/db/t_db.sh Sat Jan 14 07:39:07 2017 (r312131) @@ -42,7 +42,6 @@ dict() elif [ -f /usr/dict/words ]; then echo /usr/dict/words else - echo "" atf_fail "no dictionary found" fi } From owner-svn-src-projects@freebsd.org Sat Jan 14 07:46:04 2017 Return-Path: Delivered-To: svn-src-projects@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 C2589CAFBF4 for ; Sat, 14 Jan 2017 07:46:04 +0000 (UTC) (envelope-from ngie@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 91E501702; Sat, 14 Jan 2017 07:46:04 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7k3UC033222; Sat, 14 Jan 2017 07:46:03 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7k3i8033221; Sat, 14 Jan 2017 07:46:03 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140746.v0E7k3i8033221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:46:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312132 - projects/netbsd-tests-upstream-01-2017/lib/libnetbsd X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:46:04 -0000 Author: ngie Date: Sat Jan 14 07:46:03 2017 New Revision: 312132 URL: https://svnweb.freebsd.org/changeset/base/312132 Log: Add stdio.h #include for fparseln fparseln on FreeBSD requires stdio.h, then libutil.h, whereas NetBSD only requires util.h Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h Sat Jan 14 07:39:07 2017 (r312131) +++ projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/util.h Sat Jan 14 07:46:03 2017 (r312132) @@ -30,9 +30,10 @@ * SUCH DAMAGE. */ -#ifndef _UTIL_H_ -#define _UTIL_H_ +#ifndef _LIBNETBSD_UTIL_H_ +#define _LIBNETBSD_UTIL_H_ +#include /* for fparseln(3) */ #include char *flags_to_string(u_long flags, const char *def); From owner-svn-src-projects@freebsd.org Sat Jan 14 07:48:23 2017 Return-Path: Delivered-To: svn-src-projects@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 9CAC4CAFC5D for ; Sat, 14 Jan 2017 07:48:23 +0000 (UTC) (envelope-from ngie@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 64BAE185B; Sat, 14 Jan 2017 07:48:23 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7mMMd033390; Sat, 14 Jan 2017 07:48:22 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7mMYs033389; Sat, 14 Jan 2017 07:48:22 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140748.v0E7mMYs033389@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:48:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312133 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:48:23 -0000 Author: ngie Date: Sat Jan 14 07:48:22 2017 New Revision: 312133 URL: https://svnweb.freebsd.org/changeset/base/312133 Log: Diff reduce with upstream by using util.h from libnetbsd instead of libutil.h Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Sat Jan 14 07:46:03 2017 (r312132) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Sat Jan 14 07:48:22 2017 (r312133) @@ -34,11 +34,7 @@ #include #include #include -#ifdef __FreeBSD__ #include -#else -#include -#endif const struct hnopts { size_t ho_len; From owner-svn-src-projects@freebsd.org Sat Jan 14 07:50:30 2017 Return-Path: Delivered-To: svn-src-projects@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 6B56DCAFC83 for ; Sat, 14 Jan 2017 07:50:30 +0000 (UTC) (envelope-from ngie@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 3AAF31986; Sat, 14 Jan 2017 07:50:30 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7oT1a033570; Sat, 14 Jan 2017 07:50:29 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7oTRM033569; Sat, 14 Jan 2017 07:50:29 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140750.v0E7oTRM033569@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:50:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312134 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:50:30 -0000 Author: ngie Date: Sat Jan 14 07:50:29 2017 New Revision: 312134 URL: https://svnweb.freebsd.org/changeset/base/312134 Log: r312133 should have used the non-FreeBSD block Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Sat Jan 14 07:48:22 2017 (r312133) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/gen/t_humanize_number.c Sat Jan 14 07:50:29 2017 (r312134) @@ -34,7 +34,7 @@ #include #include #include -#include +#include const struct hnopts { size_t ho_len; From owner-svn-src-projects@freebsd.org Sat Jan 14 07:57:35 2017 Return-Path: Delivered-To: svn-src-projects@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 92B37CAFE57 for ; Sat, 14 Jan 2017 07:57:35 +0000 (UTC) (envelope-from ngie@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 621F71DCC; Sat, 14 Jan 2017 07:57:35 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7vYKS037724; Sat, 14 Jan 2017 07:57:34 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7vYYG037723; Sat, 14 Jan 2017 07:57:34 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140757.v0E7vYYG037723@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:57:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312135 - projects/netbsd-tests-upstream-01-2017/lib/libnetbsd X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:57:35 -0000 Author: ngie Date: Sat Jan 14 07:57:34 2017 New Revision: 312135 URL: https://svnweb.freebsd.org/changeset/base/312135 Log: libnetbsd: improve sha1.h compat with FreeBSD Map SHA1_CTX to SHA_CTX and SHA1Final to SHA1_Final Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha1.h Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha1.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha1.h Sat Jan 14 07:50:29 2017 (r312134) +++ projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha1.h Sat Jan 14 07:57:34 2017 (r312135) @@ -35,8 +35,11 @@ #include +#define SHA1_CTX SHA_CTX + #define SHA1End SHA1_End #define SHA1File SHA1_File +#define SHA1Final SHA1_Final #define SHA1Init SHA1_Init #define SHA1Update SHA1_Update From owner-svn-src-projects@freebsd.org Sat Jan 14 07:58:42 2017 Return-Path: Delivered-To: svn-src-projects@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 58B2FCAFEE8 for ; Sat, 14 Jan 2017 07:58:42 +0000 (UTC) (envelope-from ngie@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 0D2F61FAF; Sat, 14 Jan 2017 07:58:41 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7wftX037969; Sat, 14 Jan 2017 07:58:41 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7wfLW037967; Sat, 14 Jan 2017 07:58:41 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140758.v0E7wfLW037967@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:58:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312136 - in projects/netbsd-tests-upstream-01-2017: contrib/netbsd-tests/lib/libc/hash lib/libc/tests/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:58:42 -0000 Author: ngie Date: Sat Jan 14 07:58:40 2017 New Revision: 312136 URL: https://svnweb.freebsd.org/changeset/base/312136 Log: Diff reduce with upstream using lib/libnetbsd's updated copy of sha1.h Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c Sat Jan 14 07:57:34 2017 (r312135) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c Sat Jan 14 07:58:40 2017 (r312136) @@ -35,13 +35,7 @@ #include #include #include -#ifdef __NetBSD__ #include -#endif - -#ifdef __FreeBSD__ -#include -#endif int mflag, rflag, sflag, tflag; @@ -107,32 +101,17 @@ regress(void) MD5Final(out, &ctx); outlen = 16; } else { -#ifdef __FreeBSD__ - SHA_CTX ctx; - - SHA1_Init(&ctx); - SHA1_Update(&ctx, buf, len); -#else SHA1_CTX ctx; SHA1Init(&ctx); SHA1Update(&ctx, buf, len); -#endif while (!last && fgets((char *)buf, sizeof(buf), stdin) != NULL) { len = strlen((char *)buf); CHOMP(buf, len, last); -#ifdef __FreeBSD__ - SHA1_Update(&ctx, buf, len); -#else SHA1Update(&ctx, buf, len); -#endif } -#ifdef __FreeBSD__ - SHA1_Final(out, &ctx); -#else SHA1Final(out, &ctx); -#endif outlen = 20; } hexdump(out, outlen); Modified: projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile Sat Jan 14 07:57:34 2017 (r312135) +++ projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile Sat Jan 14 07:58:40 2017 (r312136) @@ -32,6 +32,7 @@ ${PACKAGE}DATA_FILES+= data/sha1test2-ou LIBADD+= md LIBADD.sha2_test+= crypto +CFLAGS.h_hash+= -I${SRCTOP}/lib/libnetbsd CFLAGS.sha2_test+= -I${SRCTOP}/crypto/openssh/openbsd-compat CFLAGS.sha2_test+= -I${SRCTOP}/crypto/openssh From owner-svn-src-projects@freebsd.org Sat Jan 14 07:59:34 2017 Return-Path: Delivered-To: svn-src-projects@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 5C0C6CAFF1D for ; Sat, 14 Jan 2017 07:59:34 +0000 (UTC) (envelope-from ngie@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 2BA031166; Sat, 14 Jan 2017 07:59:34 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E7xX3s038048; Sat, 14 Jan 2017 07:59:33 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E7xXl1038047; Sat, 14 Jan 2017 07:59:33 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140759.v0E7xXl1038047@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 07:59:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312137 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 07:59:34 -0000 Author: ngie Date: Sat Jan 14 07:59:33 2017 New Revision: 312137 URL: https://svnweb.freebsd.org/changeset/base/312137 Log: Restore deleted line Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c Sat Jan 14 07:58:40 2017 (r312136) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/h_hash.c Sat Jan 14 07:59:33 2017 (r312137) @@ -37,6 +37,7 @@ #include #include + int mflag, rflag, sflag, tflag; static void From owner-svn-src-projects@freebsd.org Sat Jan 14 08:10:39 2017 Return-Path: Delivered-To: svn-src-projects@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 108F9CAE3DE for ; Sat, 14 Jan 2017 08:10:39 +0000 (UTC) (envelope-from ngie@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 D442716C3; Sat, 14 Jan 2017 08:10:38 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8AcmB042152; Sat, 14 Jan 2017 08:10:38 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8ActE042151; Sat, 14 Jan 2017 08:10:38 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140810.v0E8ActE042151@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:10:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312138 - projects/netbsd-tests-upstream-01-2017/lib/libnetbsd X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:10:39 -0000 Author: ngie Date: Sat Jan 14 08:10:37 2017 New Revision: 312138 URL: https://svnweb.freebsd.org/changeset/base/312138 Log: libnetbsd: improve sha2.h compat with FreeBSD Add sha384 #include to libnetbsd's copy of sha2.h to expose all of the SHA384 support via the header. Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha2.h Modified: projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha2.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha2.h Sat Jan 14 07:59:33 2017 (r312137) +++ projects/netbsd-tests-upstream-01-2017/lib/libnetbsd/sha2.h Sat Jan 14 08:10:37 2017 (r312138) @@ -34,6 +34,7 @@ #define _SHA2_H_ #include +#include #include #endif /* _SHA2_H_ */ From owner-svn-src-projects@freebsd.org Sat Jan 14 08:11:18 2017 Return-Path: Delivered-To: svn-src-projects@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 BB6BECAE53E for ; Sat, 14 Jan 2017 08:11:18 +0000 (UTC) (envelope-from ngie@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 879C41993; Sat, 14 Jan 2017 08:11:18 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8BHTB043851; Sat, 14 Jan 2017 08:11:17 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8BH1r043850; Sat, 14 Jan 2017 08:11:17 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140811.v0E8BH1r043850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:11:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312139 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:11:18 -0000 Author: ngie Date: Sat Jan 14 08:11:17 2017 New Revision: 312139 URL: https://svnweb.freebsd.org/changeset/base/312139 Log: Use copy of sha2.h from libnetbsd Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_sha2.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_sha2.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_sha2.c Sat Jan 14 08:10:37 2017 (r312138) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/hash/t_sha2.c Sat Jan 14 08:11:17 2017 (r312139) @@ -36,23 +36,9 @@ __RCSID("$NetBSD: t_sha2.c,v 1.3 2012/09 #include #include -#ifdef __NetBSD__ #include -#endif #include -#ifdef __FreeBSD__ -#include -typedef SHA512_CTX SHA384_CTX; -/* From /usr/src/crypto/openssh/openbsd-compat/sha2.h */ -#define SHA256_DIGEST_LENGTH 32 -#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1) -#define SHA384_DIGEST_LENGTH 48 -#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1) -#define SHA512_DIGEST_LENGTH 64 -#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) -#endif - ATF_TC(t_sha256); ATF_TC(t_sha384); ATF_TC(t_sha512); From owner-svn-src-projects@freebsd.org Sat Jan 14 08:12:58 2017 Return-Path: Delivered-To: svn-src-projects@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 64091CAE574 for ; Sat, 14 Jan 2017 08:12:58 +0000 (UTC) (envelope-from ngie@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 3452C1BE3; Sat, 14 Jan 2017 08:12:58 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8Cvxf046062; Sat, 14 Jan 2017 08:12:57 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8Cvsd046061; Sat, 14 Jan 2017 08:12:57 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140812.v0E8Cvsd046061@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:12:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312140 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:12:58 -0000 Author: ngie Date: Sat Jan 14 08:12:57 2017 New Revision: 312140 URL: https://svnweb.freebsd.org/changeset/base/312140 Log: Diff reduce with upstream Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c Sat Jan 14 08:11:17 2017 (r312139) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c Sat Jan 14 08:12:57 2017 (r312140) @@ -61,7 +61,6 @@ ATF_TC_BODY(bad_big5_wprintf, tc) /* XXX implementation detail knowledge (wchar_t encoding) */ wchar_t ibuf[] = { 0xcf10, 0 }; setlocale(LC_CTYPE, "zh_TW.Big5"); - ATF_REQUIRE_ERRNO(EILSEQ, wprintf(L"%ls\n", ibuf) < 0); ATF_REQUIRE(ferror(stdout)); } From owner-svn-src-projects@freebsd.org Sat Jan 14 08:35:30 2017 Return-Path: Delivered-To: svn-src-projects@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 409D0CAEAA2 for ; Sat, 14 Jan 2017 08:35:30 +0000 (UTC) (envelope-from ngie@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 10B54144D; Sat, 14 Jan 2017 08:35:29 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8ZTw6055637; Sat, 14 Jan 2017 08:35:29 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8ZToW055636; Sat, 14 Jan 2017 08:35:29 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140835.v0E8ZToW055636@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:35:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312141 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:35:30 -0000 Author: ngie Date: Sat Jan 14 08:35:29 2017 New Revision: 312141 URL: https://svnweb.freebsd.org/changeset/base/312141 Log: :strtold_nan: remove unnecessary strcmp check It gets checked again later on in the testcase Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c Sat Jan 14 08:12:57 2017 (r312140) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c Sat Jan 14 08:35:29 2017 (r312141) @@ -218,9 +218,7 @@ ATF_TC_BODY(strtold_nan, tc) volatile long double ld = strtold(nan_string, &end); ATF_REQUIRE(isnan(ld) != 0); -#ifdef __FreeBSD__ - ATF_REQUIRE(strcmp(end, "y") == 0); -#else +#ifndef __FreeBSD__ ATF_REQUIRE(__isnanl(ld) != 0); #endif ATF_REQUIRE(strcmp(end, "y") == 0); From owner-svn-src-projects@freebsd.org Sat Jan 14 08:36:44 2017 Return-Path: Delivered-To: svn-src-projects@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 99735CAEAF3 for ; Sat, 14 Jan 2017 08:36:44 +0000 (UTC) (envelope-from ngie@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 69B3415B8; Sat, 14 Jan 2017 08:36:44 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8ah6A055745; Sat, 14 Jan 2017 08:36:43 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8ahXG055744; Sat, 14 Jan 2017 08:36:43 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140836.v0E8ahXG055744@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:36:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312142 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:36:44 -0000 Author: ngie Date: Sat Jan 14 08:36:43 2017 New Revision: 312142 URL: https://svnweb.freebsd.org/changeset/base/312142 Log: Diff reduce with upstream Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c Sat Jan 14 08:35:29 2017 (r312141) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_clock_gettime.c Sat Jan 14 08:36:43 2017 (r312142) @@ -63,6 +63,7 @@ __RCSID("$NetBSD: t_clock_gettime.c,v 1. #include #include + #include #include #include From owner-svn-src-projects@freebsd.org Sat Jan 14 08:38:22 2017 Return-Path: Delivered-To: svn-src-projects@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 D6B84CAEB73 for ; Sat, 14 Jan 2017 08:38:22 +0000 (UTC) (envelope-from ngie@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 A64241729; Sat, 14 Jan 2017 08:38:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8cLh4055879; Sat, 14 Jan 2017 08:38:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8cLog055878; Sat, 14 Jan 2017 08:38:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140838.v0E8cLog055878@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:38:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312143 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:38:22 -0000 Author: ngie Date: Sat Jan 14 08:38:21 2017 New Revision: 312143 URL: https://svnweb.freebsd.org/changeset/base/312143 Log: Remove comment no longer true since the test no longer bombs out earlier on Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c Sat Jan 14 08:36:43 2017 (r312142) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_mbtowc.c Sat Jan 14 08:38:21 2017 (r312143) @@ -137,7 +137,6 @@ ATF_TC_BODY(mbtowc, tc) h_mbtowc("ja_JP.ISO2022-JP", "\033$B", "\033$B$\"\033(B"); h_mbtowc("ja_JP.SJIS", "\202", "\202\240"); h_mbtowc("ja_JP.eucJP", "\244", "\244\242"); - /* Moved last as it fails */ h_mbtowc("zh_CN.GB18030", "\241", "\241\241"); h_mbtowc("zh_TW.Big5", "\241", "\241@"); h_mbtowc("zh_TW.eucTW", "\241", "\241\241"); From owner-svn-src-projects@freebsd.org Sat Jan 14 08:39:54 2017 Return-Path: Delivered-To: svn-src-projects@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 B4A52CAEBA2 for ; Sat, 14 Jan 2017 08:39:54 +0000 (UTC) (envelope-from ngie@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 86875186E; Sat, 14 Jan 2017 08:39:54 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8dr36056005; Sat, 14 Jan 2017 08:39:53 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8drp9056004; Sat, 14 Jan 2017 08:39:53 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140839.v0E8drp9056004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:39:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312144 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:39:54 -0000 Author: ngie Date: Sat Jan 14 08:39:53 2017 New Revision: 312144 URL: https://svnweb.freebsd.org/changeset/base/312144 Log: Diff reduce with upstream Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c Sat Jan 14 08:38:21 2017 (r312143) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/locale/t_io.c Sat Jan 14 08:39:53 2017 (r312144) @@ -57,7 +57,6 @@ ATF_TC_BODY(bad_big5_wprintf, tc) atf_tc_skip("does not fail as expected (may be implementation " "specific issue with the test)"); #endif - /* XXX implementation detail knowledge (wchar_t encoding) */ wchar_t ibuf[] = { 0xcf10, 0 }; setlocale(LC_CTYPE, "zh_TW.Big5"); @@ -77,12 +76,10 @@ ATF_TC_BODY(bad_big5_swprintf, tc) atf_tc_skip("does not fail as expected (may be implementation " "specific issue with the test)"); #endif - /* XXX implementation detail knowledge (wchar_t encoding) */ wchar_t ibuf[] = { 0xcf10, 0 }; wchar_t obuf[20]; setlocale(LC_CTYPE, "zh_TW.Big5"); - ATF_REQUIRE_ERRNO(EILSEQ, swprintf(obuf, sizeof(obuf), L"%ls\n", ibuf) < 0); } From owner-svn-src-projects@freebsd.org Sat Jan 14 08:47:01 2017 Return-Path: Delivered-To: svn-src-projects@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 78D5DCAC078 for ; Sat, 14 Jan 2017 08:47:01 +0000 (UTC) (envelope-from ngie@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 20D931E47; Sat, 14 Jan 2017 08:47:01 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E8l0C7060222; Sat, 14 Jan 2017 08:47:00 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E8l004060221; Sat, 14 Jan 2017 08:47:00 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140847.v0E8l004060221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 08:47:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312145 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 08:47:01 -0000 Author: ngie Date: Sat Jan 14 08:47:00 2017 New Revision: 312145 URL: https://svnweb.freebsd.org/changeset/base/312145 Log: Try to consolidate the #ifdef soup into FreeBSD vs non-FreeBSD blocks better Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c Sat Jan 14 08:39:53 2017 (r312144) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c Sat Jan 14 08:47:00 2017 (r312145) @@ -51,12 +51,14 @@ run(int n, ...) ATF_REQUIRE_EQ(n, DEPTH - calls - 1); va_start(va, n); -#if defined(__FreeBSD__) && defined(__amd64__) +#ifdef __FreeBSD__ +#if defined(__amd64__) for (i = 0; i < 5; i++) { -#elif defined(__FreeBSD__) && defined(__aarch64__) +#elif defined(__aarch64__) for (i = 0; i < 7; i++) { -#elif defined(__FreeBSD__) && defined(__mips__) +#elif defined(__mips__) for (i = 0; i < 5; i++) { +#endif #else for (i = 0; i < 9; i++) { #endif @@ -116,18 +118,20 @@ ATF_TC_BODY(setcontext_link, tc) uc[i].uc_stack.ss_size = STACKSZ; uc[i].uc_link = (i > 0) ? &uc[i - 1] : &save; -#if defined(__FreeBSD__) && defined(__amd64__) +#ifdef __FreeBSD__ +#if defined(__amd64__) /* FreeBSD/amd64 only permits up to 6 arguments. */ makecontext(&uc[i], (void *)run, 6, i, 0, 1, 2, 3, 4); -#elif defined(__FreeBSD__) && defined(__aarch64__) +#elif defined(__aarch64__) /* FreeBSD/arm64 only permits up to 8 arguments. */ makecontext(&uc[i], (void *)run, 8, i, 0, 1, 2, 3, 4, 5, 6); -#elif defined(__FreeBSD__) && defined(__mips__) +#elif defined(__mips__) /* FreeBSD/mips only permits up to 6 arguments. */ makecontext(&uc[i], (void *)run, 6, i, 0, 1, 2, 3, 4); +#endif #else makecontext(&uc[i], (void *)run, 10, i, 0, 1, 2, 3, 4, 5, 6, 7, 8); From owner-svn-src-projects@freebsd.org Sat Jan 14 09:20:56 2017 Return-Path: Delivered-To: svn-src-projects@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 00593CACE91 for ; Sat, 14 Jan 2017 09:20:56 +0000 (UTC) (envelope-from ngie@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 AC9ED1E2E; Sat, 14 Jan 2017 09:20:55 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9Ksu8072368; Sat, 14 Jan 2017 09:20:54 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9KsCI072367; Sat, 14 Jan 2017 09:20:54 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140920.v0E9KsCI072367@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:20:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312146 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:20:56 -0000 Author: ngie Date: Sat Jan 14 09:20:54 2017 New Revision: 312146 URL: https://svnweb.freebsd.org/changeset/base/312146 Log: Diff reduce with upstream Use CMSG_FIRSTHDR macro to properly link the kqueue to the socket to get it to now return -1/EBADF with sendmsg per the testcase expectations Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Sat Jan 14 08:47:00 2017 (r312145) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Sat Jan 14 09:20:54 2017 (r312146) @@ -117,15 +117,9 @@ ATF_TC_BODY(kqueue_desc_passing, tc) if (recvmsg(s[1], &m, 0) == -1) err(1, "child: could not recvmsg"); -#ifdef __FreeBSD__ - bcopy(CMSG_DATA(msg), &kq, sizeof(kq)); - printf("child (pid %d): received kq fd %d\n", getpid(), kq); - _exit(0); -#else kq = *(int *)CMSG_DATA(msg); printf("child (pid %d): received kq fd %d\n", getpid(), kq); exit(0); -#endif } close(s[1]); @@ -133,33 +127,21 @@ ATF_TC_BODY(kqueue_desc_passing, tc) iov.iov_base = &storage; iov.iov_len = sizeof(int); +#ifdef __FreeBSD__ + msg = CMSG_FIRSTHDR(&m); +#endif msg->cmsg_level = SOL_SOCKET; msg->cmsg_type = SCM_RIGHTS; msg->cmsg_len = CMSG_LEN(sizeof(int)); -#ifdef __FreeBSD__ - /* - * What is should have been - * bcopy(&s[0], CMSG_DATA(msg), sizeof(kq)); - */ - bcopy(&kq, CMSG_DATA(msg), sizeof(kq)); -#else - *(int *)CMSG_DATA(msg) = kq; -#endif - + EV_SET(&ev, 1, EVFILT_TIMER, EV_ADD|EV_ENABLE, 0, 1, 0); EV_SET(&ev, 1, EVFILT_TIMER, EV_ADD|EV_ENABLE, 0, 1, 0); ATF_CHECK(kevent(kq, &ev, 1, NULL, 0, NULL) != -1); printf("parent (pid %d): sending kq fd %d\n", getpid(), kq); if (sendmsg(s[0], &m, 0) == -1) { -#ifdef __NetBSD__ ATF_REQUIRE_EQ_MSG(errno, EBADF, "errno is %d", errno); atf_tc_skip("PR kern/46523"); -#endif -#ifdef __FreeBSD__ - ATF_REQUIRE_EQ_MSG(errno, EOPNOTSUPP, "errno is %d", errno); - close(s[0]); -#endif } close(kq); From owner-svn-src-projects@freebsd.org Sat Jan 14 09:21:37 2017 Return-Path: Delivered-To: svn-src-projects@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 99C91CACEBF for ; Sat, 14 Jan 2017 09:21:37 +0000 (UTC) (envelope-from ngie@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 5C76F1FDE; Sat, 14 Jan 2017 09:21:37 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9LaqS074520; Sat, 14 Jan 2017 09:21:36 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9Lab9074519; Sat, 14 Jan 2017 09:21:36 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140921.v0E9Lab9074519@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:21:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312147 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:21:37 -0000 Author: ngie Date: Sat Jan 14 09:21:36 2017 New Revision: 312147 URL: https://svnweb.freebsd.org/changeset/base/312147 Log: Remove extra EVSET I added in r312146 by accident Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Sat Jan 14 09:20:54 2017 (r312146) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Sat Jan 14 09:21:36 2017 (r312147) @@ -135,7 +135,6 @@ ATF_TC_BODY(kqueue_desc_passing, tc) msg->cmsg_len = CMSG_LEN(sizeof(int)); EV_SET(&ev, 1, EVFILT_TIMER, EV_ADD|EV_ENABLE, 0, 1, 0); - EV_SET(&ev, 1, EVFILT_TIMER, EV_ADD|EV_ENABLE, 0, 1, 0); ATF_CHECK(kevent(kq, &ev, 1, NULL, 0, NULL) != -1); printf("parent (pid %d): sending kq fd %d\n", getpid(), kq); From owner-svn-src-projects@freebsd.org Sat Jan 14 09:25:10 2017 Return-Path: Delivered-To: svn-src-projects@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 80FA3CACF0F for ; Sat, 14 Jan 2017 09:25:10 +0000 (UTC) (envelope-from ngie@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 5059612F2; Sat, 14 Jan 2017 09:25:10 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9P94d076304; Sat, 14 Jan 2017 09:25:09 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9P9o1076303; Sat, 14 Jan 2017 09:25:09 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140925.v0E9P9o1076303@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:25:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312148 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:25:10 -0000 Author: ngie Date: Sat Jan 14 09:25:09 2017 New Revision: 312148 URL: https://svnweb.freebsd.org/changeset/base/312148 Log: Readd the CMSG_DATA for assigning the kqueue... this testcase isn't officially correct yet, but it's getting closer. Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Sat Jan 14 09:21:36 2017 (r312147) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_kevent.c Sat Jan 14 09:25:09 2017 (r312148) @@ -134,6 +134,10 @@ ATF_TC_BODY(kqueue_desc_passing, tc) msg->cmsg_type = SCM_RIGHTS; msg->cmsg_len = CMSG_LEN(sizeof(int)); +#ifdef __NetBSD__ + *(int *)CMSG_DATA(msg) = kq; +#endif + EV_SET(&ev, 1, EVFILT_TIMER, EV_ADD|EV_ENABLE, 0, 1, 0); ATF_CHECK(kevent(kq, &ev, 1, NULL, 0, NULL) != -1); From owner-svn-src-projects@freebsd.org Sat Jan 14 09:38:42 2017 Return-Path: Delivered-To: svn-src-projects@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 74441CAD18D for ; Sat, 14 Jan 2017 09:38:42 +0000 (UTC) (envelope-from ngie@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 4BD721845; Sat, 14 Jan 2017 09:38:42 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9cfMx080295; Sat, 14 Jan 2017 09:38:41 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9ce22080284; Sat, 14 Jan 2017 09:38:40 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140938.v0E9ce22080284@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:38:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312149 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:38:42 -0000 Author: ngie Date: Sat Jan 14 09:38:40 2017 New Revision: 312149 URL: https://svnweb.freebsd.org/changeset/base/312149 Log: Diff reduce with upstream by taking diff hunks that were contributed back Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_connect.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_dup.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_link.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_listen.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_stat.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_truncate.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_connect.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_connect.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_connect.c Sat Jan 14 09:38:40 2017 (r312149) @@ -37,10 +37,6 @@ #include -#ifdef __FreeBSD__ -#include -#endif - ATF_TC(connect_low_port); ATF_TC_HEAD(connect_low_port, tc) { Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_dup.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_dup.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_dup.c Sat Jan 14 09:38:40 2017 (r312149) @@ -46,10 +46,6 @@ __RCSID("$NetBSD: t_dup.c,v 1.9 2017/01/ #include #include -#ifdef __FreeBSD__ -#include -#endif - static char path[] = "dup"; #ifdef __NetBSD__ static void check_mode(bool, bool, bool); Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_link.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_link.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_link.c Sat Jan 14 09:38:40 2017 (r312149) @@ -42,10 +42,6 @@ __RCSID("$NetBSD: t_link.c,v 1.3 2017/01 #include #include -#ifdef __FreeBSD__ -#include -#endif - static const char *getpath(void); static char path[] = "link"; static const char *pathl; Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_listen.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_listen.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_listen.c Sat Jan 14 09:38:40 2017 (r312149) @@ -37,10 +37,6 @@ #include #include -#ifdef __FreeBSD__ -#include -#endif - static const char *path = "listen"; ATF_TC_WITH_CLEANUP(listen_err); Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgctl.c Sat Jan 14 09:38:40 2017 (r312149) @@ -47,10 +47,6 @@ __RCSID("$NetBSD: t_msgctl.c,v 1.5 2017/ #include #include -#ifdef __FreeBSD__ -#include -#endif - #define MSG_KEY 12345689 #define MSG_MTYPE_1 0x41 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgrcv.c Sat Jan 14 09:38:40 2017 (r312149) @@ -48,10 +48,6 @@ __RCSID("$NetBSD: t_msgrcv.c,v 1.4 2017/ #include #include -#ifdef __FreeBSD__ -#include -#endif - #define MSG_KEY 1234 #define MSG_MTYPE_1 0x41 #define MSG_MTYPE_2 0x42 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msgsnd.c Sat Jan 14 09:38:40 2017 (r312149) @@ -48,10 +48,6 @@ __RCSID("$NetBSD: t_msgsnd.c,v 1.3 2017/ #include #include -#ifdef __FreeBSD__ -#include -#endif - #define MSG_KEY 1234 #define MSG_MTYPE_1 0x41 #define MSG_MTYPE_2 0x42 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c Sat Jan 14 09:38:40 2017 (r312149) @@ -65,22 +65,33 @@ msync_sync(const char *garbage, int flag if (buf == NULL) return NULL; +#ifdef __FreeBSD__ + memset(buf, 'x', page); +#else for (i = 0; i < (size_t)page; i++) buf[i] = 'x'; +#endif fd = open(path, O_RDWR | O_CREAT, 0700); if (fd < 0) { +#ifdef __FreeBSD__ + free(buf); + return "failed to open"; +#else str = "failed to open"; goto out; +#endif } +#if __FreeBSD__ + (void)write(fd, buf, page); +#else tot = 0; while (tot < page) { rv = write(fd, buf, sizeof(buf)); - if (rv < 0) { str = "failed to write"; goto out; @@ -88,6 +99,7 @@ msync_sync(const char *garbage, int flag tot += rv; } +#endif map = mmap(NULL, page, PROT_READ | PROT_WRITE, MAP_FILE|MAP_PRIVATE, fd, 0); Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_sigqueue.c Sat Jan 14 09:38:40 2017 (r312149) @@ -41,11 +41,6 @@ __RCSID("$NetBSD: t_sigqueue.c,v 1.7 201 #include #include -#ifdef __FreeBSD__ -#include -#include -#endif - static void handler(int, siginfo_t *, void *); #define VALUE (int)0xc001dad1 @@ -212,7 +207,6 @@ ATF_TC_BODY(sigqueue_rt, tc) if (sigaddset(&mask, signals[i]) == -1) warn("sigaddset"); - ATF_REQUIRE(sigprocmask(SIG_BLOCK, &mask, &orig) != -1); for (size_t i = 0; i < CNT; i++) @@ -222,7 +216,6 @@ ATF_TC_BODY(sigqueue_rt, tc) sleep(1); ATF_CHECK_MSG((size_t)count == ndelivered, "count %zu != ndelivered %zu", (size_t)count, ndelivered); - for (size_t i = 0; i < ndelivered; i++) ATF_REQUIRE_MSG(ordered[i] == delivered[i], "%zu: ordered %d != delivered %d", Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_stat.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_stat.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_stat.c Sat Jan 14 09:38:40 2017 (r312149) @@ -48,10 +48,6 @@ __RCSID("$NetBSD: t_stat.c,v 1.5 2017/01 #include -#ifdef __FreeBSD__ -#include -#endif - static const char *path = "stat"; ATF_TC_WITH_CLEANUP(stat_chflags); @@ -400,9 +396,6 @@ ATF_TC_BODY(stat_symlink, tc) (void)close(fd); ATF_REQUIRE(unlink(path) == 0); ATF_REQUIRE(unlink(pathlink) == 0); -#ifdef __FreeBSD__ - (void)close(fd); -#endif } ATF_TC_CLEANUP(stat_symlink, tc) Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_truncate.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_truncate.c Sat Jan 14 09:25:09 2017 (r312148) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_truncate.c Sat Jan 14 09:38:40 2017 (r312149) @@ -41,10 +41,6 @@ __RCSID("$NetBSD: t_truncate.c,v 1.3 201 #include #include -#ifdef __FreeBSD__ -#include -#endif - static const char path[] = "truncate"; static const size_t sizes[] = { 8, 16, 512, 1024, 2048, 4094, 3000, 30 }; From owner-svn-src-projects@freebsd.org Sat Jan 14 09:42:08 2017 Return-Path: Delivered-To: svn-src-projects@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 16B35CAD487 for ; Sat, 14 Jan 2017 09:42:08 +0000 (UTC) (envelope-from ngie@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 C177E1DCA; Sat, 14 Jan 2017 09:42:07 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9g6lP084235; Sat, 14 Jan 2017 09:42:06 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9g6w9084234; Sat, 14 Jan 2017 09:42:06 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140942.v0E9g6w9084234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:42:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312150 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librt X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:42:08 -0000 Author: ngie Date: Sat Jan 14 09:42:06 2017 New Revision: 312150 URL: https://svnweb.freebsd.org/changeset/base/312150 Log: Use cleanup routines to remove POSIX semaphores instead of just blindly unlinking them at the beginning of the testcase This is a lot more intelligent in cleaning up the semaphores if the testcase fails before sem_unlink is called. Contributed back as bin/51872 upstream. Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librt/t_sem.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librt/t_sem.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librt/t_sem.c Sat Jan 14 09:38:40 2017 (r312149) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/librt/t_sem.c Sat Jan 14 09:42:06 2017 (r312150) @@ -72,7 +72,7 @@ __RCSID("$NetBSD: t_sem.c,v 1.2 2010/11/ #define NCHILDREN 10 -ATF_TC(basic); +ATF_TC_WITH_CLEANUP(basic); ATF_TC_HEAD(basic, tc) { atf_tc_set_md_var(tc, "descr", "Checks basic functionality of POSIX " @@ -86,9 +86,6 @@ ATF_TC_BODY(basic, tc) if (sysconf(_SC_SEMAPHORES) == -1) atf_tc_skip("POSIX semaphores not supported"); -#ifdef __FreeBSD__ - sem_unlink("/sem_b"); -#endif sem_b = sem_open("/sem_b", O_CREAT | O_EXCL, 0644, 0); ATF_REQUIRE(sem_b != SEM_FAILED); @@ -111,8 +108,12 @@ ATF_TC_BODY(basic, tc) ATF_REQUIRE_EQ(sem_close(sem_b), 0); ATF_REQUIRE_EQ(sem_unlink("/sem_b"), 0); } +ATF_TC_CLEANUP(basic, tc) +{ + (void)sem_unlink("/sem_b"); +} -ATF_TC(child); +ATF_TC_WITH_CLEANUP(child); ATF_TC_HEAD(child, tc) { atf_tc_set_md_var(tc, "descr", "Checks using semaphores to synchronize " @@ -127,12 +128,9 @@ ATF_TC_BODY(child, tc) pid_t pid; - if (sysconf(_SC_SEMAPHORES) == -1) + if (sysconf(_SC_SEMAPHORES) == -1) atf_tc_skip("POSIX semaphores not supported"); -#ifdef __FreeBSD__ - sem_unlink("/sem_a"); -#endif sem_a = sem_open("/sem_a", O_CREAT | O_EXCL, 0644, 0); ATF_REQUIRE(sem_a != SEM_FAILED); @@ -170,6 +168,10 @@ ATF_TC_BODY(child, tc) ATF_REQUIRE_EQ(sem_close(sem_a), 0); ATF_REQUIRE_EQ(sem_unlink("/sem_a"), 0); } +ATF_TC_CLEANUP(child, tc) +{ + (void)sem_unlink("/sem_a"); +} ATF_TP_ADD_TCS(tp) { From owner-svn-src-projects@freebsd.org Sat Jan 14 09:45:47 2017 Return-Path: Delivered-To: svn-src-projects@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 C879FCAD4CF for ; Sat, 14 Jan 2017 09:45:47 +0000 (UTC) (envelope-from ngie@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 7DBE51F4D; Sat, 14 Jan 2017 09:45:47 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9jk2F084421; Sat, 14 Jan 2017 09:45:46 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9jkDB084418; Sat, 14 Jan 2017 09:45:46 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140945.v0E9jkDB084418@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:45:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312151 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:45:47 -0000 Author: ngie Date: Sat Jan 14 09:45:46 2017 New Revision: 312151 URL: https://svnweb.freebsd.org/changeset/base/312151 Log: Clarify why sys/types.h #include is needed on FreeBSD Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c Sat Jan 14 09:42:06 2017 (r312150) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc2.c Sat Jan 14 09:45:46 2017 (r312151) @@ -35,7 +35,7 @@ __COPYRIGHT("@(#) Copyright (c) 2008\ __RCSID("$NetBSD: t_proc2.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #ifdef __FreeBSD__ -#include +#include /* for kqueue(2) */ #endif #include #include Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c Sat Jan 14 09:42:06 2017 (r312150) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_proc3.c Sat Jan 14 09:45:46 2017 (r312151) @@ -33,7 +33,7 @@ __RCSID("$NetBSD: t_proc3.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #ifdef __FreeBSD__ -#include +#include /* for kqueue(2) */ #endif #include #include Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c Sat Jan 14 09:42:06 2017 (r312150) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_sig.c Sat Jan 14 09:45:46 2017 (r312151) @@ -35,7 +35,7 @@ __COPYRIGHT("@(#) Copyright (c) 2008\ __RCSID("$NetBSD: t_sig.c,v 1.3 2017/01/13 21:30:41 christos Exp $"); #ifdef __FreeBSD__ -#include +#include /* for kqueue(2) */ #endif #include #include From owner-svn-src-projects@freebsd.org Sat Jan 14 09:47:08 2017 Return-Path: Delivered-To: svn-src-projects@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 0C9ACCAD4EF for ; Sat, 14 Jan 2017 09:47:08 +0000 (UTC) (envelope-from ngie@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 D2E47106E; Sat, 14 Jan 2017 09:47:07 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0E9l7IR084510; Sat, 14 Jan 2017 09:47:07 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0E9l7sf084509; Sat, 14 Jan 2017 09:47:07 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701140947.v0E9l7sf084509@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 09:47:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312152 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 09:47:08 -0000 Author: ngie Date: Sat Jan 14 09:47:06 2017 New Revision: 312152 URL: https://svnweb.freebsd.org/changeset/base/312152 Log: One more sys/types.h kevent clarification missed in r312151 Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_vnode.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_vnode.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_vnode.c Sat Jan 14 09:45:46 2017 (r312151) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/kernel/kqueue/t_vnode.c Sat Jan 14 09:47:06 2017 (r312152) @@ -1,5 +1,5 @@ #ifdef __FreeBSD__ -#include +#include /* for kqueue(2) */ #endif #include #include From owner-svn-src-projects@freebsd.org Sat Jan 14 10:05:27 2017 Return-Path: Delivered-To: svn-src-projects@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 8E92ECADB1B for ; Sat, 14 Jan 2017 10:05:27 +0000 (UTC) (envelope-from ngie@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 530AE19EF; Sat, 14 Jan 2017 10:05:27 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EA5QH2092439; Sat, 14 Jan 2017 10:05:26 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EA5QiZ092437; Sat, 14 Jan 2017 10:05:26 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701141005.v0EA5QiZ092437@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 10:05:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312154 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 10:05:27 -0000 Author: ngie Date: Sat Jan 14 10:05:26 2017 New Revision: 312154 URL: https://svnweb.freebsd.org/changeset/base/312154 Log: Diff reduce with upstream post-accepted contributions Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_ilogb.c projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_ilogb.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_ilogb.c Sat Jan 14 09:56:01 2017 (r312153) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_ilogb.c Sat Jan 14 10:05:26 2017 (r312154) @@ -31,9 +31,6 @@ #include __RCSID("$NetBSD: t_ilogb.c,v 1.7 2017/01/13 19:23:40 christos Exp $"); -#ifdef __FreeBSD__ -#include -#endif #include #include #include Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c Sat Jan 14 09:56:01 2017 (r312153) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c Sat Jan 14 10:05:26 2017 (r312154) @@ -34,10 +34,6 @@ __RCSID("$NetBSD: t_pow.c,v 1.4 2015/09/ #include #include -#ifdef __FreeBSD__ -#define isinff isinf -#endif - /* * pow(3) */ From owner-svn-src-projects@freebsd.org Sat Jan 14 10:08:23 2017 Return-Path: Delivered-To: svn-src-projects@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 9E9B0CADB4B for ; Sat, 14 Jan 2017 10:08:23 +0000 (UTC) (envelope-from ngie@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 653891B0F; Sat, 14 Jan 2017 10:08:23 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EA8MLC092577; Sat, 14 Jan 2017 10:08:22 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EA8MaG092576; Sat, 14 Jan 2017 10:08:22 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701141008.v0EA8MaG092576@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 10:08:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312155 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 10:08:23 -0000 Author: ngie Date: Sat Jan 14 10:08:22 2017 New Revision: 312155 URL: https://svnweb.freebsd.org/changeset/base/312155 Log: Fix the build using hunks pending upstream contributions Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c Sat Jan 14 10:05:26 2017 (r312154) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libc/sys/t_msync.c Sat Jan 14 10:08:22 2017 (r312155) @@ -52,8 +52,12 @@ msync_sync(const char *garbage, int flag { char *buf, *map = MAP_FAILED; const char *str = NULL; +#ifdef __FreeBSD__ + size_t len; +#else size_t i, len; ssize_t tot; +#endif int fd, rv; /* From owner-svn-src-projects@freebsd.org Sat Jan 14 10:10:50 2017 Return-Path: Delivered-To: svn-src-projects@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 92895CADB9C for ; Sat, 14 Jan 2017 10:10:50 +0000 (UTC) (envelope-from ngie@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 56FAC1C84; Sat, 14 Jan 2017 10:10:50 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EAAnhm092736; Sat, 14 Jan 2017 10:10:49 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EAAnrV092735; Sat, 14 Jan 2017 10:10:49 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701141010.v0EAAnrV092735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 10:10:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312156 - projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 10:10:50 -0000 Author: ngie Date: Sat Jan 14 10:10:49 2017 New Revision: 312156 URL: https://svnweb.freebsd.org/changeset/base/312156 Log: Revert t_pow@r312154 This hunk hasn't been accepted yet Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c Modified: projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c Sat Jan 14 10:08:22 2017 (r312155) +++ projects/netbsd-tests-upstream-01-2017/contrib/netbsd-tests/lib/libm/t_pow.c Sat Jan 14 10:10:49 2017 (r312156) @@ -34,6 +34,10 @@ __RCSID("$NetBSD: t_pow.c,v 1.4 2015/09/ #include #include +#ifdef __FreeBSD__ +#define isinff isinf +#endif + /* * pow(3) */ From owner-svn-src-projects@freebsd.org Sat Jan 14 12:55:33 2017 Return-Path: Delivered-To: svn-src-projects@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 DDDAFCAE834 for ; Sat, 14 Jan 2017 12:55:33 +0000 (UTC) (envelope-from ngie@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 AFAFC1951; Sat, 14 Jan 2017 12:55:33 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0ECtWEu061901; Sat, 14 Jan 2017 12:55:32 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0ECtW7p061900; Sat, 14 Jan 2017 12:55:32 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701141255.v0ECtW7p061900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 12:55:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312172 - projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 12:55:34 -0000 Author: ngie Date: Sat Jan 14 12:55:32 2017 New Revision: 312172 URL: https://svnweb.freebsd.org/changeset/base/312172 Log: Remove CFLAGS for sha2_test The previous code used to grab definitions from these openssl/openssh, but this is no longer needed and is no longer correct. libnetbsd provides all of the needed definitions libnetbsd is added to CFLAGS automatically via netbsd-tests.test.mk -- hence all of CFLAGS can be cleared Modified: projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile Modified: projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile Sat Jan 14 11:27:11 2017 (r312171) +++ projects/netbsd-tests-upstream-01-2017/lib/libc/tests/hash/Makefile Sat Jan 14 12:55:32 2017 (r312172) @@ -33,8 +33,6 @@ LIBADD+= md LIBADD.sha2_test+= crypto CFLAGS.h_hash+= -I${SRCTOP}/lib/libnetbsd -CFLAGS.sha2_test+= -I${SRCTOP}/crypto/openssh/openbsd-compat -CFLAGS.sha2_test+= -I${SRCTOP}/crypto/openssh .include "../Makefile.netbsd-tests" From owner-svn-src-projects@freebsd.org Sat Jan 14 20:21:23 2017 Return-Path: Delivered-To: svn-src-projects@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 1DBA1CAEE16 for ; Sat, 14 Jan 2017 20:21:23 +0000 (UTC) (envelope-from ngie@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 C50E31644; Sat, 14 Jan 2017 20:21:22 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EKLLAm042897; Sat, 14 Jan 2017 20:21:21 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EKLLIP042892; Sat, 14 Jan 2017 20:21:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701142021.v0EKLLIP042892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sat, 14 Jan 2017 20:21:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312193 - in projects/netbsd-tests-upstream-01-2017/tests/sys: fs kern kqueue mac X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 20:21:23 -0000 Author: ngie Date: Sat Jan 14 20:21:21 2017 New Revision: 312193 URL: https://svnweb.freebsd.org/changeset/base/312193 Log: Add include Makefiles for tests/sys/{fs,kern,kqueue,mac}/... The primary goal for doing this is to leverage the work done in r312114 for enabling WARNS to address trivial code quality issues with new tests MFC after: 6 days Tested with: make tinderbox Sponsored by: Dell EMC Isilon Added: projects/netbsd-tests-upstream-01-2017/tests/sys/fs/Makefile.inc (contents, props changed) projects/netbsd-tests-upstream-01-2017/tests/sys/kern/Makefile.inc (contents, props changed) projects/netbsd-tests-upstream-01-2017/tests/sys/kqueue/Makefile.inc (contents, props changed) projects/netbsd-tests-upstream-01-2017/tests/sys/mac/Makefile.inc (contents, props changed) Added: projects/netbsd-tests-upstream-01-2017/tests/sys/fs/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/fs/Makefile.inc Sat Jan 14 20:21:21 2017 (r312193) @@ -0,0 +1,3 @@ +# $FreeBSD$ + +.include "../Makefile.inc" Added: projects/netbsd-tests-upstream-01-2017/tests/sys/kern/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/kern/Makefile.inc Sat Jan 14 20:21:21 2017 (r312193) @@ -0,0 +1,3 @@ +# $FreeBSD$ + +.include "../Makefile.inc" Added: projects/netbsd-tests-upstream-01-2017/tests/sys/kqueue/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/kqueue/Makefile.inc Sat Jan 14 20:21:21 2017 (r312193) @@ -0,0 +1,3 @@ +# $FreeBSD$ + +.include "../Makefile.inc" Added: projects/netbsd-tests-upstream-01-2017/tests/sys/mac/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/mac/Makefile.inc Sat Jan 14 20:21:21 2017 (r312193) @@ -0,0 +1,3 @@ +# $FreeBSD$ + +.include "../Makefile.inc" From owner-svn-src-projects@freebsd.org Sat Jan 14 22:12:17 2017 Return-Path: Delivered-To: svn-src-projects@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 C6D93CAFD28 for ; Sat, 14 Jan 2017 22:12:17 +0000 (UTC) (envelope-from dim@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 607021CAD; Sat, 14 Jan 2017 22:12:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EMCGuY092712; Sat, 14 Jan 2017 22:12:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EMCErj092683; Sat, 14 Jan 2017 22:12:14 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701142212.v0EMCErj092683@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 14 Jan 2017 22:12:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312197 - in projects/clang400-import: contrib/llvm contrib/llvm/include/llvm/ADT contrib/llvm/include/llvm/Analysis contrib/llvm/include/llvm/CodeGen contrib/llvm/include/llvm/CodeGen/... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 22:12:17 -0000 Author: dim Date: Sat Jan 14 22:12:13 2017 New Revision: 312197 URL: https://svnweb.freebsd.org/changeset/base/312197 Log: Merge llvm, clang, lld and lldb release_40 branch r292009. Also update build glue. Added: projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeDumper.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabase.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumperBase.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumperBase.h projects/clang400-import/contrib/llvm/include/llvm/Object/Decompressor.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/Object/Decompressor.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/Transforms/Scalar/IVUsersPrinter.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h - copied unchanged from r312186, vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopPassManager.h projects/clang400-import/contrib/llvm/include/llvm/XRay/ - copied from r312186, vendor/llvm/dist/include/llvm/XRay/ projects/clang400-import/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/Analysis/LoopAnalysisManager.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeDumper.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDatabase.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabase.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDatabaseVisitor.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabaseVisitor.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp projects/clang400-import/contrib/llvm/lib/Object/Decompressor.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/Object/Decompressor.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/IVUsersPrinter.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/Transforms/Scalar/IVUsersPrinter.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp - copied unchanged from r312186, vendor/llvm/dist/lib/Transforms/Scalar/LoopPassManager.cpp projects/clang400-import/contrib/llvm/lib/XRay/ - copied from r312186, vendor/llvm/dist/lib/XRay/ projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyBuiltinDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyBuiltinDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyClassDefinitionDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassDefinitionDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyClassDefinitionDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassDefinitionDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyCompilandDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyCompilandDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyCompilandDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyCompilandDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyEnumDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyEnumDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyEnumDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyEnumDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyExternalSymbolDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyExternalSymbolDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyExternalSymbolDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyExternalSymbolDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyFunctionDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyFunctionDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyFunctionDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyFunctionDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyTypeDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypeDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyTypeDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypeDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyTypedefDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypedefDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyTypedefDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypedefDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyVariableDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/PrettyVariableDumper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-pdbdump/PrettyVariableDumper.h projects/clang400-import/contrib/llvm/tools/llvm-xray/func-id-helper.cc - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/func-id-helper.cc projects/clang400-import/contrib/llvm/tools/llvm-xray/func-id-helper.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/func-id-helper.h projects/clang400-import/contrib/llvm/tools/llvm-xray/xray-account.cc - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/xray-account.cc projects/clang400-import/contrib/llvm/tools/llvm-xray/xray-account.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/xray-account.h projects/clang400-import/contrib/llvm/tools/llvm-xray/xray-converter.cc - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/xray-converter.cc projects/clang400-import/contrib/llvm/tools/llvm-xray/xray-converter.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/xray-converter.h projects/clang400-import/contrib/llvm/tools/llvm-xray/xray-record-yaml.h - copied unchanged from r312186, vendor/llvm/dist/tools/llvm-xray/xray-record-yaml.h Deleted: projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopPassManager.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumper.h projects/clang400-import/contrib/llvm/lib/Analysis/LoopPassManager.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/CodeView/TypeDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/BuiltinDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/CompilandDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/CompilandDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/EnumDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/EnumDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/ExternalSymbolDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/ExternalSymbolDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/FunctionDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/FunctionDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/TypeDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/TypeDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/TypedefDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/TypedefDumper.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/VariableDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/VariableDumper.h Modified: projects/clang400-import/contrib/llvm/LICENSE.TXT projects/clang400-import/contrib/llvm/include/llvm/ADT/PointerSumType.h projects/clang400-import/contrib/llvm/include/llvm/ADT/iterator.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/AssumptionCache.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/IVUsers.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h projects/clang400-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/DIE.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/MSF/StreamArray.h projects/clang400-import/contrib/llvm/include/llvm/IR/DIBuilder.h projects/clang400-import/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h projects/clang400-import/contrib/llvm/include/llvm/IR/GlobalObject.h projects/clang400-import/contrib/llvm/include/llvm/IR/Intrinsics.td projects/clang400-import/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td projects/clang400-import/contrib/llvm/include/llvm/IR/IntrinsicsARM.td projects/clang400-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h projects/clang400-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h projects/clang400-import/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h projects/clang400-import/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h projects/clang400-import/contrib/llvm/include/llvm/Passes/PassBuilder.h projects/clang400-import/contrib/llvm/include/llvm/ProfileData/InstrProf.h projects/clang400-import/contrib/llvm/include/llvm/Support/CommandLine.h projects/clang400-import/contrib/llvm/include/llvm/Support/Dwarf.h projects/clang400-import/contrib/llvm/include/llvm/Support/FileOutputBuffer.h projects/clang400-import/contrib/llvm/include/llvm/Support/GenericDomTree.h projects/clang400-import/contrib/llvm/include/llvm/Target/TargetLowering.h projects/clang400-import/contrib/llvm/include/llvm/Target/TargetMachine.h projects/clang400-import/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td projects/clang400-import/contrib/llvm/include/llvm/Target/TargetSubtargetInfo.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LICM.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopRotation.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h projects/clang400-import/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h projects/clang400-import/contrib/llvm/lib/Analysis/AssumptionCache.cpp projects/clang400-import/contrib/llvm/lib/Analysis/CostModel.cpp projects/clang400-import/contrib/llvm/lib/Analysis/IVUsers.cpp projects/clang400-import/contrib/llvm/lib/Analysis/InlineCost.cpp projects/clang400-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp projects/clang400-import/contrib/llvm/lib/Analysis/LazyValueInfo.cpp projects/clang400-import/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp projects/clang400-import/contrib/llvm/lib/Analysis/LoopInfo.cpp projects/clang400-import/contrib/llvm/lib/Analysis/LoopPass.cpp projects/clang400-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp projects/clang400-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang400-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Analysis/ValueTracking.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/MachineInstr.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp projects/clang400-import/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp projects/clang400-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp projects/clang400-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp projects/clang400-import/contrib/llvm/lib/IR/AutoUpgrade.cpp projects/clang400-import/contrib/llvm/lib/IR/DIBuilder.cpp projects/clang400-import/contrib/llvm/lib/IR/Globals.cpp projects/clang400-import/contrib/llvm/lib/IR/LLVMContextImpl.h projects/clang400-import/contrib/llvm/lib/LTO/LTOBackend.cpp projects/clang400-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp projects/clang400-import/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp projects/clang400-import/contrib/llvm/lib/Passes/PassBuilder.cpp projects/clang400-import/contrib/llvm/lib/ProfileData/InstrProf.cpp projects/clang400-import/contrib/llvm/lib/Support/FileOutputBuffer.cpp projects/clang400-import/contrib/llvm/lib/Support/Host.cpp projects/clang400-import/contrib/llvm/lib/Support/TarWriter.cpp projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td projects/clang400-import/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/NVPTX/ManagedStringPool.h projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXSection.h projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/TargetMachine.cpp projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Target/X86/X86.td projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp projects/clang400-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td projects/clang400-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/clang400-import/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/clang400-import/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp projects/clang400-import/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h projects/clang400-import/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp projects/clang400-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LICM.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp projects/clang400-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp projects/clang400-import/contrib/llvm/tools/clang/include/clang-c/Index.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def projects/clang400-import/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clang400-import/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang400-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Headers/altivec.h projects/clang400-import/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.h projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Parse/Parser.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp projects/clang400-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp projects/clang400-import/contrib/llvm/tools/lld/CMakeLists.txt projects/clang400-import/contrib/llvm/tools/lld/COFF/PDB.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Driver.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Error.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Error.h projects/clang400-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/InputSection.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/InputSection.h projects/clang400-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/OutputSections.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/OutputSections.h projects/clang400-import/contrib/llvm/tools/lld/ELF/Relocations.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Symbols.h projects/clang400-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Target.cpp projects/clang400-import/contrib/llvm/tools/lld/ELF/Writer.cpp projects/clang400-import/contrib/llvm/tools/lldb/include/lldb/Core/Error.h projects/clang400-import/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h projects/clang400-import/contrib/llvm/tools/lldb/source/Core/Module.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Symbol/Type.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp projects/clang400-import/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/LLVMOutputStyle.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/YAMLOutputStyle.h projects/clang400-import/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp projects/clang400-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp projects/clang400-import/contrib/llvm/tools/llvm-xray/xray-extract.cc projects/clang400-import/contrib/llvm/tools/opt/NewPMDriver.cpp projects/clang400-import/lib/clang/include/clang/Basic/Version.inc projects/clang400-import/lib/clang/include/clang/Config/config.h projects/clang400-import/lib/clang/include/lld/Config/Version.inc projects/clang400-import/lib/clang/include/llvm/Config/config.h projects/clang400-import/lib/clang/include/llvm/Config/llvm-config.h projects/clang400-import/lib/clang/libclang/Makefile projects/clang400-import/lib/clang/libllvm/Makefile projects/clang400-import/usr.bin/clang/llvm-pdbdump/Makefile Directory Properties: projects/clang400-import/contrib/llvm/ (props changed) projects/clang400-import/contrib/llvm/tools/clang/ (props changed) projects/clang400-import/contrib/llvm/tools/lld/ (props changed) projects/clang400-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang400-import/contrib/llvm/LICENSE.TXT ============================================================================== --- projects/clang400-import/contrib/llvm/LICENSE.TXT Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/LICENSE.TXT Sat Jan 14 22:12:13 2017 (r312197) @@ -4,7 +4,7 @@ LLVM Release License University of Illinois/NCSA Open Source License -Copyright (c) 2003-2016 University of Illinois at Urbana-Champaign. +Copyright (c) 2003-2017 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: Modified: projects/clang400-import/contrib/llvm/include/llvm/ADT/PointerSumType.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/ADT/PointerSumType.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/ADT/PointerSumType.h Sat Jan 14 22:12:13 2017 (r312197) @@ -94,7 +94,7 @@ public: return HelperT::template Lookup::TraitsT::getFromVoidPointer(getImpl()); } - operator bool() const { return Value & HelperT::PointerMask; } + explicit operator bool() const { return Value & HelperT::PointerMask; } bool operator==(const PointerSumType &R) const { return Value == R.Value; } bool operator!=(const PointerSumType &R) const { return Value != R.Value; } bool operator<(const PointerSumType &R) const { return Value < R.Value; } Modified: projects/clang400-import/contrib/llvm/include/llvm/ADT/iterator.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/ADT/iterator.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/ADT/iterator.h Sat Jan 14 22:12:13 2017 (r312197) @@ -33,6 +33,32 @@ namespace llvm { /// Another abstraction that this doesn't provide is implementing increment in /// terms of addition of one. These aren't equivalent for all iterator /// categories, and respecting that adds a lot of complexity for little gain. +/// +/// Classes wishing to use `iterator_facade_base` should implement the following +/// methods: +/// +/// Forward Iterators: +/// (All of the following methods) +/// - DerivedT &operator=(const DerivedT &R); +/// - bool operator==(const DerivedT &R) const; +/// - const T &operator*() const; +/// - T &operator*(); +/// - DerivedT &operator++(); +/// +/// Bidirectional Iterators: +/// (All methods of forward iterators, plus the following) +/// - DerivedT &operator--(); +/// +/// Random-access Iterators: +/// (All methods of bidirectional iterators excluding the following) +/// - DerivedT &operator++(); +/// - DerivedT &operator--(); +/// (and plus the following) +/// - bool operator<(const DerivedT &RHS) const; +/// - DifferenceTypeT operator-(const DerivedT &R) const; +/// - DerivedT &operator+=(DifferenceTypeT N); +/// - DerivedT &operator-=(DifferenceTypeT N); +/// template Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/AssumptionCache.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/AssumptionCache.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/AssumptionCache.h Sat Jan 14 22:12:13 2017 (r312197) @@ -46,6 +46,30 @@ class AssumptionCache { /// intrinsic. SmallVector AssumeHandles; + class AffectedValueCallbackVH final : public CallbackVH { + AssumptionCache *AC; + void deleted() override; + void allUsesReplacedWith(Value *) override; + + public: + using DMI = DenseMapInfo; + + AffectedValueCallbackVH(Value *V, AssumptionCache *AC = nullptr) + : CallbackVH(V), AC(AC) {} + }; + + friend AffectedValueCallbackVH; + + /// \brief A map of values about which an assumption might be providing + /// information to the relevant set of assumptions. + using AffectedValuesMap = + DenseMap, + AffectedValueCallbackVH::DMI>; + AffectedValuesMap AffectedValues; + + /// Get the vector of assumptions which affect a value from the cache. + SmallVector &getAffectedValues(Value *V); + /// \brief Flag tracking whether we have scanned the function yet. /// /// We want to be as lazy about this as possible, and so we scan the function @@ -66,11 +90,16 @@ public: /// not already be in the cache. void registerAssumption(CallInst *CI); + /// \brief Update the cache of values being affected by this assumption (i.e. + /// the values about which this assumption provides information). + void updateAffectedValues(CallInst *CI); + /// \brief Clear the cache of @llvm.assume intrinsics for a function. /// /// It will be re-scanned the next time it is requested. void clear() { AssumeHandles.clear(); + AffectedValues.clear(); Scanned = false; } @@ -87,6 +116,18 @@ public: scanFunction(); return AssumeHandles; } + + /// \brief Access the list of assumptions which affect this value. + MutableArrayRef assumptionsFor(const Value *V) { + if (!Scanned) + scanFunction(); + + auto AVI = AffectedValues.find_as(const_cast(V)); + if (AVI == AffectedValues.end()) + return MutableArrayRef(); + + return AVI->second; + } }; /// \brief A function analysis which provides an \c AssumptionCache. Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/IVUsers.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/IVUsers.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/IVUsers.h Sat Jan 14 22:12:13 2017 (r312197) @@ -15,8 +15,8 @@ #ifndef LLVM_ANALYSIS_IVUSERS_H #define LLVM_ANALYSIS_IVUSERS_H +#include "llvm/Analysis/LoopAnalysisManager.h" #include "llvm/Analysis/LoopPass.h" -#include "llvm/Analysis/LoopPassManager.h" #include "llvm/Analysis/ScalarEvolutionNormalization.h" #include "llvm/IR/ValueHandle.h" @@ -193,17 +193,10 @@ class IVUsersAnalysis : public AnalysisI public: typedef IVUsers Result; - IVUsers run(Loop &L, LoopAnalysisManager &AM); + IVUsers run(Loop &L, LoopAnalysisManager &AM, + LoopStandardAnalysisResults &AR); }; -/// Printer pass for the \c IVUsers for a loop. -class IVUsersPrinterPass : public PassInfoMixin { - raw_ostream &OS; - -public: - explicit IVUsersPrinterPass(raw_ostream &OS) : OS(OS) {} - PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM); -}; } #endif Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h Sat Jan 14 22:12:13 2017 (r312197) @@ -148,7 +148,7 @@ public: /// /// This happens when an edge has been deleted. We leave the edge objects /// around but clear them. - operator bool() const; + explicit operator bool() const; /// Returnss the \c Kind of the edge. Kind getKind() const; Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h Sat Jan 14 22:12:13 2017 (r312197) @@ -20,7 +20,7 @@ #include "llvm/ADT/SetVector.h" #include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Analysis/AliasSetTracker.h" -#include "llvm/Analysis/LoopPassManager.h" +#include "llvm/Analysis/LoopAnalysisManager.h" #include "llvm/Analysis/ScalarEvolutionExpressions.h" #include "llvm/IR/DiagnosticInfo.h" #include "llvm/IR/ValueHandle.h" @@ -753,18 +753,8 @@ class LoopAccessAnalysis public: typedef LoopAccessInfo Result; - Result run(Loop &, LoopAnalysisManager &); - static StringRef name() { return "LoopAccessAnalysis"; } -}; - -/// \brief Printer pass for the \c LoopAccessInfo results. -class LoopAccessInfoPrinterPass - : public PassInfoMixin { - raw_ostream &OS; -public: - explicit LoopAccessInfoPrinterPass(raw_ostream &OS) : OS(OS) {} - PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM); + Result run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR); }; inline Instruction *MemoryDepChecker::Dependence::getSource( Copied: projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h (from r312186, vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h Sat Jan 14 22:12:13 2017 (r312197, copy of r312186, vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h) @@ -0,0 +1,155 @@ +//===- LoopAnalysisManager.h - Loop analysis management ---------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// \file +/// +/// This header provides classes for managing per-loop analyses. These are +/// typically used as part of a loop pass pipeline over the loop nests of +/// a function. +/// +/// Loop analyses are allowed to make some simplifying assumptions: +/// 1) Loops are, where possible, in simplified form. +/// 2) Loops are *always* in LCSSA form. +/// 3) A collection of analysis results are available: +/// - LoopInfo +/// - DominatorTree +/// - ScalarEvolution +/// - AAManager +/// +/// The primary mechanism to provide these invariants is the loop pass manager, +/// but they can also be manually provided in order to reason about a loop from +/// outside of a dedicated pass manager. +/// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_ANALYSIS_LOOPANALYSISMANAGER_H +#define LLVM_ANALYSIS_LOOPANALYSISMANAGER_H + +#include "llvm/ADT/PostOrderIterator.h" +#include "llvm/ADT/PriorityWorklist.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/Analysis/AliasAnalysis.h" +#include "llvm/Analysis/BasicAliasAnalysis.h" +#include "llvm/Analysis/GlobalsModRef.h" +#include "llvm/Analysis/LoopInfo.h" +#include "llvm/Analysis/ScalarEvolution.h" +#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h" +#include "llvm/Analysis/TargetLibraryInfo.h" +#include "llvm/Analysis/TargetTransformInfo.h" +#include "llvm/IR/Dominators.h" +#include "llvm/IR/PassManager.h" + +namespace llvm { + +/// The adaptor from a function pass to a loop pass computes these analyses and +/// makes them available to the loop passes "for free". Each loop pass is +/// expected expected to update these analyses if necessary to ensure they're +/// valid after it runs. +struct LoopStandardAnalysisResults { + AAResults &AA; + AssumptionCache &AC; + DominatorTree &DT; + LoopInfo &LI; + ScalarEvolution &SE; + TargetLibraryInfo &TLI; + TargetTransformInfo &TTI; +}; + +/// Extern template declaration for the analysis set for this IR unit. +extern template class AllAnalysesOn; + +extern template class AnalysisManager; +/// \brief The loop analysis manager. +/// +/// See the documentation for the AnalysisManager template for detail +/// documentation. This typedef serves as a convenient way to refer to this +/// construct in the adaptors and proxies used to integrate this into the larger +/// pass manager infrastructure. +typedef AnalysisManager + LoopAnalysisManager; + +/// A proxy from a \c LoopAnalysisManager to a \c Function. +typedef InnerAnalysisManagerProxy + LoopAnalysisManagerFunctionProxy; + +/// A specialized result for the \c LoopAnalysisManagerFunctionProxy which +/// retains a \c LoopInfo reference. +/// +/// This allows it to collect loop objects for which analysis results may be +/// cached in the \c LoopAnalysisManager. +template <> class LoopAnalysisManagerFunctionProxy::Result { +public: + explicit Result(LoopAnalysisManager &InnerAM, LoopInfo &LI) + : InnerAM(&InnerAM), LI(&LI) {} + Result(Result &&Arg) : InnerAM(std::move(Arg.InnerAM)), LI(Arg.LI) { + // We have to null out the analysis manager in the moved-from state + // because we are taking ownership of the responsibilty to clear the + // analysis state. + Arg.InnerAM = nullptr; + } + Result &operator=(Result &&RHS) { + InnerAM = RHS.InnerAM; + LI = RHS.LI; + // We have to null out the analysis manager in the moved-from state + // because we are taking ownership of the responsibilty to clear the + // analysis state. + RHS.InnerAM = nullptr; + return *this; + } + ~Result() { + // InnerAM is cleared in a moved from state where there is nothing to do. + if (!InnerAM) + return; + + // Clear out the analysis manager if we're being destroyed -- it means we + // didn't even see an invalidate call when we got invalidated. + InnerAM->clear(); + } + + /// Accessor for the analysis manager. + LoopAnalysisManager &getManager() { return *InnerAM; } + + /// Handler for invalidation of the proxy for a particular function. + /// + /// If the proxy, \c LoopInfo, and associated analyses are preserved, this + /// will merely forward the invalidation event to any cached loop analysis + /// results for loops within this function. + /// + /// If the necessary loop infrastructure is not preserved, this will forcibly + /// clear all of the cached analysis results that are keyed on the \c + /// LoopInfo for this function. + bool invalidate(Function &F, const PreservedAnalyses &PA, + FunctionAnalysisManager::Invalidator &Inv); + +private: + LoopAnalysisManager *InnerAM; + LoopInfo *LI; +}; + +/// Provide a specialized run method for the \c LoopAnalysisManagerFunctionProxy +/// so it can pass the \c LoopInfo to the result. +template <> +LoopAnalysisManagerFunctionProxy::Result +LoopAnalysisManagerFunctionProxy::run(Function &F, FunctionAnalysisManager &AM); + +// Ensure the \c LoopAnalysisManagerFunctionProxy is provided as an extern +// template. +extern template class InnerAnalysisManagerProxy; + +extern template class OuterAnalysisManagerProxy; +/// A proxy from a \c FunctionAnalysisManager to a \c Loop. +typedef OuterAnalysisManagerProxy + FunctionAnalysisManagerLoopProxy; + +/// Returns the minimum set of Analyses that all loop passes must preserve. +PreservedAnalyses getLoopPassPreservedAnalyses(); +} + +#endif // LLVM_ANALYSIS_LOOPANALYSISMANAGER_H Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/LoopInfo.h Sat Jan 14 22:12:13 2017 (r312197) @@ -853,17 +853,8 @@ public: void getAnalysisUsage(AnalysisUsage &AU) const override; }; -/// \brief Pass for printing a loop's contents as LLVM's text IR assembly. -class PrintLoopPass : public PassInfoMixin { - raw_ostream &OS; - std::string Banner; - -public: - PrintLoopPass(); - PrintLoopPass(raw_ostream &OS, const std::string &Banner = ""); - - PreservedAnalyses run(Loop &L, AnalysisManager &); -}; +/// Function to print a loop's contents as LLVM's text IR assembly. +void printLoop(Loop &L, raw_ostream &OS, const std::string &Banner = ""); } // End llvm namespace Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Sat Jan 14 22:12:13 2017 (r312197) @@ -302,6 +302,10 @@ private: NonLocalPointerInfo() : Size(MemoryLocation::UnknownSize) {} }; + /// Cache storing single nonlocal def for the instruction. + /// It is set when nonlocal def would be found in function returning only + /// local dependencies. + DenseMap NonLocalDefsCache; /// This map stores the cached results of doing a pointer lookup at the /// bottom of a block. /// @@ -441,9 +445,9 @@ public: /// This analysis looks for other loads and stores with invariant.group /// metadata and the same pointer operand. Returns Unknown if it does not /// find anything, and Def if it can be assumed that 2 instructions load or - /// store the same value. - /// FIXME: This analysis works only on single block because of restrictions - /// at the call site. + /// store the same value and NonLocal which indicate that non-local Def was + /// found, which can be retrieved by calling getNonLocalPointerDependency + /// with the same queried instruction. MemDepResult getInvariantGroupPointerDependency(LoadInst *LI, BasicBlock *BB); /// Looks at a memory location for a load (specified by MemLocBase, Offs, and Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h Sat Jan 14 22:12:13 2017 (r312197) @@ -55,6 +55,11 @@ struct MemIntrinsicInfo { // Same Id is set by the target for corresponding load/store intrinsics. unsigned short MatchingId; int NumMemRefs; + + /// This is the pointer that the intrinsic is loading from or storing to. + /// If this is non-null, then analysis/optimization passes can assume that + /// this intrinsic is functionally equivalent to a load/store from this + /// pointer. Value *PtrVal; }; @@ -518,11 +523,15 @@ public: unsigned getMaxInterleaveFactor(unsigned VF) const; /// \return The expected cost of arithmetic ops, such as mul, xor, fsub, etc. + /// \p Args is an optional argument which holds the instruction operands + /// values so the TTI can analyize those values searching for special + /// cases\optimizations based on those values. int getArithmeticInstrCost( unsigned Opcode, Type *Ty, OperandValueKind Opd1Info = OK_AnyValue, OperandValueKind Opd2Info = OK_AnyValue, OperandValueProperties Opd1PropInfo = OP_None, - OperandValueProperties Opd2PropInfo = OP_None) const; + OperandValueProperties Opd2PropInfo = OP_None, + ArrayRef Args = ArrayRef()) const; /// \return The cost of a shuffle instruction of kind Kind and of type Tp. /// The index and subtype parameters are used by the subvector insertion and @@ -763,7 +772,8 @@ public: getArithmeticInstrCost(unsigned Opcode, Type *Ty, OperandValueKind Opd1Info, OperandValueKind Opd2Info, OperandValueProperties Opd1PropInfo, - OperandValueProperties Opd2PropInfo) = 0; + OperandValueProperties Opd2PropInfo, + ArrayRef Args) = 0; virtual int getShuffleCost(ShuffleKind Kind, Type *Tp, int Index, Type *SubTp) = 0; virtual int getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src) = 0; @@ -984,9 +994,10 @@ public: getArithmeticInstrCost(unsigned Opcode, Type *Ty, OperandValueKind Opd1Info, OperandValueKind Opd2Info, OperandValueProperties Opd1PropInfo, - OperandValueProperties Opd2PropInfo) override { + OperandValueProperties Opd2PropInfo, + ArrayRef Args) override { return Impl.getArithmeticInstrCost(Opcode, Ty, Opd1Info, Opd2Info, - Opd1PropInfo, Opd2PropInfo); + Opd1PropInfo, Opd2PropInfo, Args); } int getShuffleCost(ShuffleKind Kind, Type *Tp, int Index, Type *SubTp) override { Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Sat Jan 14 22:12:13 2017 (r312197) @@ -306,7 +306,8 @@ public: TTI::OperandValueKind Opd1Info, TTI::OperandValueKind Opd2Info, TTI::OperandValueProperties Opd1PropInfo, - TTI::OperandValueProperties Opd2PropInfo) { + TTI::OperandValueProperties Opd2PropInfo, + ArrayRef Args) { return 1; } @@ -427,6 +428,63 @@ public: return VF; } protected: + // Obtain the minimum required size to hold the value (without the sign) + // In case of a vector it returns the min required size for one element. + unsigned minRequiredElementSize(const Value* Val, bool &isSigned) { + if (isa(Val) || isa(Val)) { + const auto* VectorValue = cast(Val); + + // In case of a vector need to pick the max between the min + // required size for each element + auto *VT = cast(Val->getType()); + + // Assume unsigned elements + isSigned = false; + + // The max required size is the total vector width divided by num + // of elements in the vector + unsigned MaxRequiredSize = VT->getBitWidth() / VT->getNumElements(); + + unsigned MinRequiredSize = 0; + for(unsigned i = 0, e = VT->getNumElements(); i < e; ++i) { + if (auto* IntElement = + dyn_cast(VectorValue->getAggregateElement(i))) { + bool signedElement = IntElement->getValue().isNegative(); + // Get the element min required size. + unsigned ElementMinRequiredSize = + IntElement->getValue().getMinSignedBits() - 1; + // In case one element is signed then all the vector is signed. + isSigned |= signedElement; + // Save the max required bit size between all the elements. + MinRequiredSize = std::max(MinRequiredSize, ElementMinRequiredSize); + } + else { + // not an int constant element + return MaxRequiredSize; + } + } + return MinRequiredSize; + } + + if (const auto* CI = dyn_cast(Val)) { + isSigned = CI->getValue().isNegative(); + return CI->getValue().getMinSignedBits() - 1; + } + + if (const auto* Cast = dyn_cast(Val)) { + isSigned = true; + return Cast->getSrcTy()->getScalarSizeInBits() - 1; + } + + if (const auto* Cast = dyn_cast(Val)) { + isSigned = false; + return Cast->getSrcTy()->getScalarSizeInBits(); + } + + isSigned = false; + return Val->getType()->getScalarSizeInBits(); + } + bool isStridedAccess(const SCEV *Ptr) { return Ptr && isa(Ptr); } Modified: projects/clang400-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h Sat Jan 14 22:12:13 2017 (r312197) @@ -169,8 +169,12 @@ template class ArrayRef; /// Return true if we can prove that the specified FP value is either a NaN or /// never less than 0.0. - bool CannotBeOrderedLessThanZero(const Value *V, const TargetLibraryInfo *TLI, - unsigned Depth = 0); + /// If \p IncludeNeg0 is false, -0.0 is considered less than 0.0. + bool CannotBeOrderedLessThanZero(const Value *V, const TargetLibraryInfo *TLI); + + /// \returns true if we can prove that the specified FP value has a 0 sign + /// bit. + bool SignBitMustBeZero(const Value *V, const TargetLibraryInfo *TLI); /// If the specified value can be set by repeating the same byte in memory, /// return the i8 value that it is represented with. This is true for all i8 Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h Sat Jan 14 22:12:13 2017 (r312197) @@ -308,7 +308,8 @@ public: TTI::OperandValueKind Opd1Info = TTI::OK_AnyValue, TTI::OperandValueKind Opd2Info = TTI::OK_AnyValue, TTI::OperandValueProperties Opd1PropInfo = TTI::OP_None, - TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None) { + TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None, + ArrayRef Args = ArrayRef()) { // Check if any of the operands are vector operands. const TargetLoweringBase *TLI = getTLI(); int ISD = TLI->InstructionOpcodeToISD(Opcode); Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/DIE.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/DIE.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/DIE.h Sat Jan 14 22:12:13 2017 (r312197) @@ -52,13 +52,20 @@ class DIEAbbrevData { /// Dwarf form code. dwarf::Form Form; + /// Dwarf attribute value for DW_FORM_implicit_const + int64_t Value; + public: - DIEAbbrevData(dwarf::Attribute A, dwarf::Form F) : Attribute(A), Form(F) {} + DIEAbbrevData(dwarf::Attribute A, dwarf::Form F) + : Attribute(A), Form(F), Value(0) {} + DIEAbbrevData(dwarf::Attribute A, int64_t V) + : Attribute(A), Form(dwarf::DW_FORM_implicit_const), Value(V) {} /// Accessors. /// @{ dwarf::Attribute getAttribute() const { return Attribute; } dwarf::Form getForm() const { return Form; } + int64_t getValue() const { return Value; } /// @} /// Used to gather unique data for the abbreviation folding set. @@ -102,6 +109,11 @@ public: Data.push_back(DIEAbbrevData(Attribute, Form)); } + /// Adds attribute with DW_FORM_implicit_const value + void AddImplicitConstAttribute(dwarf::Attribute Attribute, int64_t Value) { + Data.push_back(DIEAbbrevData(Attribute, Value)); + } + /// Used to gather unique data for the abbreviation folding set. void Profile(FoldingSetNodeID &ID) const; Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h Sat Jan 14 22:12:13 2017 (r312197) @@ -76,6 +76,7 @@ class MachineBlockFrequencyInfo; class MachineRegisterInfo; class TargetPassConfig; class TargetRegisterInfo; +class raw_ostream; /// This pass implements the reg bank selector pass used in the GlobalISel /// pipeline. At the end of this pass, all register operands have been assigned @@ -450,6 +451,18 @@ private: bool operator>(const MappingCost &Cost) const { return *this != Cost && Cost < *this; } + + /// Print this on dbgs() stream. + void dump() const; + + /// Print this on \p OS; + void print(raw_ostream &OS) const; + + /// Overload the stream operator for easy debug printing. + friend raw_ostream &operator<<(raw_ostream &OS, const MappingCost &Cost) { + Cost.print(OS); + return OS; + } }; /// Interface to the target lowering info related @@ -626,6 +639,7 @@ public: /// \endcode bool runOnMachineFunction(MachineFunction &MF) override; }; + } // End namespace llvm. #endif Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h Sat Jan 14 22:12:13 2017 (r312197) @@ -41,11 +41,8 @@ private: friend RegisterBankInfo; public: - /// The default constructor will leave the object in - /// an invalid state. I.e. isValid() == false. - /// The fields must be updated to fix that and only - /// RegisterBankInfo instances are allowed to do that - RegisterBank(); + RegisterBank(unsigned ID, const char *Name, unsigned Size, + const uint32_t *ContainedRegClasses); /// Get the identifier of this register bank. unsigned getID() const { return ID; } Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h Sat Jan 14 22:12:13 2017 (r312197) @@ -384,10 +384,6 @@ protected: /// Create a RegisterBankInfo that can accomodate up to \p NumRegBanks /// RegisterBank instances. - /// - /// \note For the verify method to succeed all the \p NumRegBanks - /// must be initialized by createRegisterBank and updated with - /// addRegBankCoverage RegisterBank. RegisterBankInfo(RegisterBank **RegBanks, unsigned NumRegBanks); /// This constructor is meaningless. @@ -400,31 +396,6 @@ protected: llvm_unreachable("This constructor should not be executed"); } - /// Create a new register bank with the given parameter and add it - /// to RegBanks. - /// \pre \p ID must not already be used. - /// \pre \p ID < NumRegBanks. - void createRegisterBank(unsigned ID, const char *Name); - - /// Add \p RCId to the set of register class that the register bank, - /// identified \p ID, covers. - /// This method transitively adds all the sub classes and the subreg-classes - /// of \p RCId to the set of covered register classes. - /// It also adjusts the size of the register bank to reflect the maximal - /// size of a value that can be hold into that register bank. - /// - /// \note This method does *not* add the super classes of \p RCId. - /// The rationale is if \p ID covers the registers of \p RCId, that - /// does not necessarily mean that \p ID covers the set of registers - /// of RCId's superclasses. - /// This method does *not* add the superreg classes as well for consistents. - /// The expected use is to add the coverage top-down with respect to the - /// register hierarchy. - /// - /// \todo TableGen should just generate the BitSet vector for us. - void addRegBankCoverage(unsigned ID, unsigned RCId, - const TargetRegisterInfo &TRI); - /// Get the register bank identified by \p ID. RegisterBank &getRegBank(unsigned ID) { assert(ID < getNumRegBanks() && "Accessing an unknown register bank"); Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h Sat Jan 14 22:12:13 2017 (r312197) @@ -503,19 +503,6 @@ namespace ISD { /// address spaces. ADDRSPACECAST, - /// CONVERT_RNDSAT - This operator is used to support various conversions - /// between various types (float, signed, unsigned and vectors of those - /// types) with rounding and saturation. NOTE: Avoid using this operator as - /// most target don't support it and the operator might be removed in the - /// future. It takes the following arguments: - /// 0) value - /// 1) dest type (type to convert to) - /// 2) src type (type to convert from) - /// 3) rounding imm - /// 4) saturation imm - /// 5) ISD::CvtCode indicating the type of conversion to do - CONVERT_RNDSAT, - /// FP16_TO_FP, FP_TO_FP16 - These operators are used to perform promotions /// and truncation for half-precision (16 bit) floating numbers. These nodes /// form a semi-softened interface for dealing with f16 (as an i16), which @@ -927,21 +914,6 @@ namespace ISD { /// SETCC_INVALID if it is not possible to represent the resultant comparison. CondCode getSetCCAndOperation(CondCode Op1, CondCode Op2, bool isInteger); - //===--------------------------------------------------------------------===// - /// This enum defines the various converts CONVERT_RNDSAT supports. - enum CvtCode { - CVT_FF, /// Float from Float - CVT_FS, /// Float from Signed - CVT_FU, /// Float from Unsigned - CVT_SF, /// Signed from Float - CVT_UF, /// Unsigned from Float - CVT_SS, /// Signed from Signed - CVT_SU, /// Signed from Unsigned - CVT_US, /// Unsigned from Signed - CVT_UU, /// Unsigned from Unsigned - CVT_INVALID /// Marker - Invalid opcode - }; - } // end llvm::ISD namespace } // end llvm namespace Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h Sat Jan 14 22:12:13 2017 (r312197) @@ -626,12 +626,6 @@ public: SDValue getCondCode(ISD::CondCode Cond); - /// Returns the ConvertRndSat Note: Avoid using this node because it may - /// disappear in the future and most targets don't support it. - SDValue getConvertRndSat(EVT VT, const SDLoc &dl, SDValue Val, SDValue DTy, - SDValue STy, SDValue Rnd, SDValue Sat, - ISD::CvtCode Code); - /// Return an ISD::VECTOR_SHUFFLE node. The number of elements in VT, /// which must be a vector type, must match the number of mask elements /// NumElts. An integer mask element equal to -1 is treated as undefined. Modified: projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h Sat Jan 14 22:12:13 2017 (r312197) @@ -1860,26 +1860,6 @@ public: } }; -/// NOTE: avoid using this node as this may disappear in the -/// future and most targets don't support it. -class CvtRndSatSDNode : public SDNode { - ISD::CvtCode CvtCode; - - friend class SelectionDAG; - - explicit CvtRndSatSDNode(EVT VT, unsigned Order, const DebugLoc &dl, - ISD::CvtCode Code) - : SDNode(ISD::CONVERT_RNDSAT, Order, dl, getSDVTList(VT)), CvtCode(Code) { - } - -public: - ISD::CvtCode getCvtCode() const { return CvtCode; } - - static bool classof(const SDNode *N) { - return N->getOpcode() == ISD::CONVERT_RNDSAT; - } -}; - /// This class is used to represent EVT's, which are used /// to parameterize some operations. class VTSDNode : public SDNode { @@ -2041,7 +2021,7 @@ public: friend class SelectionDAG; MaskedStoreSDNode(unsigned Order, const DebugLoc &dl, SDVTList VTs, - bool isTrunc, bool isCompressing, EVT MemVT, + bool isTrunc, bool isCompressing, EVT MemVT, MachineMemOperand *MMO) : MaskedLoadStoreSDNode(ISD::MSTORE, Order, dl, VTs, MemVT, MMO) { StoreSDNodeBits.IsTruncating = isTrunc; @@ -2054,8 +2034,8 @@ public: bool isTruncatingStore() const { return StoreSDNodeBits.IsTruncating; } /// Returns true if the op does a compression to the vector before storing. - /// The node contiguously stores the active elements (integers or floats) - /// in src (those with their respective bit set in writemask k) to unaligned + /// The node contiguously stores the active elements (integers or floats) + /// in src (those with their respective bit set in writemask k) to unaligned /// memory at base_addr. bool isCompressingStore() const { return StoreSDNodeBits.IsCompressing; } Copied: projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeDumper.h (from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeDumper.h Sat Jan 14 22:12:13 2017 (r312197, copy of r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h) @@ -0,0 +1,56 @@ +//===-- CVTypeDumper.h - CodeView type info dumper --------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_DEBUGINFO_CODEVIEW_CVTYPEDUMPER_H +#define LLVM_DEBUGINFO_CODEVIEW_CVTYPEDUMPER_H + +#include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/StringSet.h" +#include "llvm/DebugInfo/CodeView/TypeDatabase.h" +#include "llvm/DebugInfo/CodeView/TypeIndex.h" +#include "llvm/DebugInfo/CodeView/TypeRecord.h" +#include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h" +#include "llvm/Support/ScopedPrinter.h" + +namespace llvm { + +namespace codeview { + +/// Dumper for CodeView type streams found in COFF object files and PDB files. +class CVTypeDumper { +public: + explicit CVTypeDumper(TypeDatabase &TypeDB) : TypeDB(TypeDB) {} + + /// Dumps one type record. Returns false if there was a type parsing error, + /// and true otherwise. This should be called in order, since the dumper + /// maintains state about previous records which are necessary for cross + /// type references. + Error dump(const CVType &Record, TypeVisitorCallbacks &Dumper); + + /// Dumps the type records in Types. Returns false if there was a type stream + /// parse error, and true otherwise. + Error dump(const CVTypeArray &Types, TypeVisitorCallbacks &Dumper); + + /// Dumps the type records in Data. Returns false if there was a type stream + /// parse error, and true otherwise. Use this method instead of the + /// CVTypeArray overload when type records are laid out contiguously in + /// memory. + Error dump(ArrayRef Data, TypeVisitorCallbacks &Dumper); + + static void printTypeIndex(ScopedPrinter &Printer, StringRef FieldName, + TypeIndex TI, TypeDatabase &DB); + +private: + TypeDatabase &TypeDB; +}; + +} // end namespace codeview +} // end namespace llvm + +#endif // LLVM_DEBUGINFO_CODEVIEW_TYPEDUMPER_H Modified: projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h ============================================================================== --- projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h Sat Jan 14 22:06:25 2017 (r312196) +++ projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h Sat Jan 14 22:12:13 2017 (r312197) @@ -20,15 +20,15 @@ namespace llvm { class ScopedPrinter; namespace codeview { -class CVTypeDumper; +class TypeDatabase; /// Dumper for CodeView symbol streams found in COFF object files and PDB files. class CVSymbolDumper { public: - CVSymbolDumper(ScopedPrinter &W, CVTypeDumper &CVTD, + CVSymbolDumper(ScopedPrinter &W, TypeDatabase &TypeDB, std::unique_ptr ObjDelegate, bool PrintRecordBytes) - : W(W), CVTD(CVTD), ObjDelegate(std::move(ObjDelegate)), + : W(W), TypeDB(TypeDB), ObjDelegate(std::move(ObjDelegate)), PrintRecordBytes(PrintRecordBytes) {} /// Dumps one type record. Returns false if there was a type parsing error, @@ -43,7 +43,7 @@ public: private: ScopedPrinter &W; - CVTypeDumper &CVTD; + TypeDatabase &TypeDB; std::unique_ptr ObjDelegate; bool PrintRecordBytes; Copied: projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabase.h (from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabase.h Sat Jan 14 22:12:13 2017 (r312197, copy of r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h) @@ -0,0 +1,55 @@ +//===- TypeDatabase.h - A collection of CodeView type records ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPEDATABASE_H +#define LLVM_DEBUGINFO_CODEVIEW_TYPEDATABASE_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/DebugInfo/CodeView/TypeIndex.h" +#include "llvm/DebugInfo/CodeView/TypeRecord.h" +#include "llvm/Support/Allocator.h" +#include "llvm/Support/StringSaver.h" + +namespace llvm { +namespace codeview { +class TypeDatabase { +public: + TypeDatabase() : TypeNameStorage(Allocator) {} + + /// Gets the type index for the next type record. + TypeIndex getNextTypeIndex() const; + + /// Records the name of a type, and reserves its type index. + void recordType(StringRef Name, CVType Data); + + /// Saves the name in a StringSet and creates a stable StringRef. + StringRef saveTypeName(StringRef TypeName); + + StringRef getTypeName(TypeIndex Index) const; + + bool containsTypeIndex(TypeIndex Index) const; + + uint32_t size() const; + +private: + BumpPtrAllocator Allocator; + + /// All user defined type records in .debug$T live in here. Type indices + /// greater than 0x1000 are user defined. Subtract 0x1000 from the index to + /// index into this vector. + SmallVector CVUDTNames; + SmallVector TypeRecords; + + StringSaver TypeNameStorage; +}; +} +} + +#endif \ No newline at end of file Copied: projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h (from r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang400-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h Sat Jan 14 22:12:13 2017 (r312197, copy of r312186, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h) @@ -0,0 +1,53 @@ +//===-- TypeDatabaseVisitor.h -----------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPEDATABASEVISITOR_H +#define LLVM_DEBUGINFO_CODEVIEW_TYPEDATABASEVISITOR_H + +#include "llvm/DebugInfo/CodeView/TypeDatabase.h" +#include "llvm/DebugInfo/CodeView/TypeIndex.h" +#include "llvm/DebugInfo/CodeView/TypeRecord.h" +#include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h" + +namespace llvm { +namespace codeview { + +/// Dumper for CodeView type streams found in COFF object files and PDB files. +class TypeDatabaseVisitor : public TypeVisitorCallbacks { +public: + explicit TypeDatabaseVisitor(TypeDatabase &TypeDB) : TypeDB(TypeDB) {} + + /// Paired begin/end actions for all types. Receives all record data, + /// including the fixed-length record prefix. + Error visitTypeBegin(CVType &Record) override; + Error visitTypeEnd(CVType &Record) override; + Error visitMemberBegin(CVMemberRecord &Record) override; + Error visitMemberEnd(CVMemberRecord &Record) override; + +#define TYPE_RECORD(EnumName, EnumVal, Name) \ + Error visitKnownRecord(CVType &CVR, Name##Record &Record) override; +#define MEMBER_RECORD(EnumName, EnumVal, Name) \ + Error visitKnownMember(CVMemberRecord &CVR, Name##Record &Record) override; +#define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName) +#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName) +#include "TypeRecords.def" + +private: + bool IsInFieldList = false; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Jan 14 22:16:07 2017 Return-Path: Delivered-To: svn-src-projects@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 CAC0ECAFF30 for ; Sat, 14 Jan 2017 22:16:07 +0000 (UTC) (envelope-from dim@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 80D9C1ECF; Sat, 14 Jan 2017 22:16:07 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EMG6l3093114; Sat, 14 Jan 2017 22:16:06 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EMG1JW093019; Sat, 14 Jan 2017 22:16:01 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701142216.v0EMG1JW093019@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 14 Jan 2017 22:16:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312198 - in projects/clang400-import/contrib/compiler-rt/lib: asan builtins/arm sancov sanitizer_common scudo tsan/rtl xray X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 22:16:07 -0000 Author: dim Date: Sat Jan 14 22:16:01 2017 New Revision: 312198 URL: https://svnweb.freebsd.org/changeset/base/312198 Log: Merge compiler-rt release_40 branch r292009. Added: projects/clang400-import/contrib/compiler-rt/lib/sancov/ - copied from r312197, vendor/compiler-rt/dist/lib/sancov/ projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_crc32.cpp - copied unchanged from r312197, vendor/compiler-rt/dist/lib/scudo/scudo_crc32.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_crc32.h - copied unchanged from r312197, vendor/compiler-rt/dist/lib/scudo/scudo_crc32.h Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang400-import/contrib/compiler-rt/lib/asan/asan_flags.cc projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_utils.cpp projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_utils.h projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc projects/clang400-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h projects/clang400-import/contrib/compiler-rt/lib/xray/xray_AArch64.cc Directory Properties: projects/clang400-import/contrib/compiler-rt/ (props changed) Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation.cc Sat Jan 14 22:16:01 2017 (r312198) @@ -77,12 +77,13 @@ static struct AsanDeactivatedFlags { void Print() { Report( - "quarantine_size_mb %d, max_redzone %d, poison_heap %d, " - "malloc_context_size %d, alloc_dealloc_mismatch %d, " - "allocator_may_return_null %d, coverage %d, coverage_dir %s, " - "allocator_release_to_os_interval_ms %d\n", - allocator_options.quarantine_size_mb, allocator_options.max_redzone, - poison_heap, malloc_context_size, + "quarantine_size_mb %d, thread_local_quarantine_size_kb %d, " + "max_redzone %d, poison_heap %d, malloc_context_size %d, " + "alloc_dealloc_mismatch %d, allocator_may_return_null %d, coverage %d, " + "coverage_dir %s, allocator_release_to_os_interval_ms %d\n", + allocator_options.quarantine_size_mb, + allocator_options.thread_local_quarantine_size_kb, + allocator_options.max_redzone, poison_heap, malloc_context_size, allocator_options.alloc_dealloc_mismatch, allocator_options.may_return_null, coverage, coverage_dir, allocator_options.release_to_os_interval_ms); @@ -109,6 +110,7 @@ void AsanDeactivate() { AllocatorOptions disabled = asan_deactivated_flags.allocator_options; disabled.quarantine_size_mb = 0; + disabled.thread_local_quarantine_size_kb = 0; disabled.min_redzone = 16; // Redzone must be at least 16 bytes long. disabled.max_redzone = 16; disabled.alloc_dealloc_mismatch = false; Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_activation_flags.inc Sat Jan 14 22:16:01 2017 (r312198) @@ -24,6 +24,7 @@ ASAN_ACTIVATION_FLAG(int, redzone) ASAN_ACTIVATION_FLAG(int, max_redzone) ASAN_ACTIVATION_FLAG(int, quarantine_size_mb) +ASAN_ACTIVATION_FLAG(int, thread_local_quarantine_size_kb) ASAN_ACTIVATION_FLAG(bool, alloc_dealloc_mismatch) ASAN_ACTIVATION_FLAG(bool, poison_heap) Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sat Jan 14 22:16:01 2017 (r312198) @@ -269,24 +269,24 @@ struct Allocator { } void RePoisonChunk(uptr chunk) { - // This could a user-facing chunk (with redzones), or some internal + // This could be a user-facing chunk (with redzones), or some internal // housekeeping chunk, like TransferBatch. Start by assuming the former. AsanChunk *ac = GetAsanChunk((void *)chunk); uptr allocated_size = allocator.GetActuallyAllocatedSize((void *)ac); uptr beg = ac->Beg(); uptr end = ac->Beg() + ac->UsedSize(true); uptr chunk_end = chunk + allocated_size; - if (chunk < beg && beg < end && end <= chunk_end) { - // Looks like a valid AsanChunk. Or maybe not. Be conservative and only - // poison the redzones. + if (chunk < beg && beg < end && end <= chunk_end && + ac->chunk_state == CHUNK_ALLOCATED) { + // Looks like a valid AsanChunk in use, poison redzones only. PoisonShadow(chunk, beg - chunk, kAsanHeapLeftRedzoneMagic); uptr end_aligned_down = RoundDownTo(end, SHADOW_GRANULARITY); FastPoisonShadowPartialRightRedzone( end_aligned_down, end - end_aligned_down, chunk_end - end_aligned_down, kAsanHeapLeftRedzoneMagic); } else { - // This can not be an AsanChunk. Poison everything. It may be reused as - // AsanChunk later. + // This is either not an AsanChunk or freed or quarantined AsanChunk. + // In either case, poison everything. PoisonShadow(chunk, allocated_size, kAsanHeapLeftRedzoneMagic); } } Modified: projects/clang400-import/contrib/compiler-rt/lib/asan/asan_flags.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/asan/asan_flags.cc Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/asan/asan_flags.cc Sat Jan 14 22:16:01 2017 (r312198) @@ -169,6 +169,11 @@ void InitializeFlags() { (ASAN_LOW_MEMORY) ? 1 << 6 : FIRST_32_SECOND_64(1 << 8, 1 << 10); f->thread_local_quarantine_size_kb = kDefaultThreadLocalQuarantineSizeKb; } + if (f->thread_local_quarantine_size_kb == 0 && f->quarantine_size_mb > 0) { + Report("%s: thread_local_quarantine_size_kb can be set to 0 only when " + "quarantine_size_mb is set to 0\n", SanitizerToolName); + Die(); + } if (!f->replace_str && common_flags()->intercept_strlen) { Report("WARNING: strlen interceptor is enabled even though replace_str=0. " "Use intercept_strlen=0 to disable it."); Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,10 +18,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__adddf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vadd.f64 d0, d0, d1 +#else vmov d6, r0, r1 // move first param from r0/r1 pair into d6 vmov d7, r2, r3 // move second param from r2/r3 pair into d7 vadd.f64 d6, d6, d7 vmov r0, r1, d6 // move result back to r0/r1 pair +#endif bx lr END_COMPILERRT_FUNCTION(__adddf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,10 +18,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__addsf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vadd.f32 s0, s0, s1 +#else vmov s14, r0 // move first param from r0 into float register vmov s15, r1 // move second param from r1 into float register vadd.f32 s14, s14, s15 vmov r0, s14 // move result back to r0 +#endif bx lr END_COMPILERRT_FUNCTION(__addsf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/comparesf2.S Sat Jan 14 22:16:01 2017 (r312198) @@ -43,8 +43,14 @@ .thumb #endif -.p2align 2 +@ int __eqsf2(float a, float b) + + .p2align 2 DEFINE_COMPILERRT_FUNCTION(__eqsf2) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov r0, s0 + vmov r1, s1 +#endif // Make copies of a and b with the sign bit shifted off the top. These will // be used to detect zeros and NaNs. #if __ARM_ARCH_ISA_THUMB == 1 @@ -166,16 +172,23 @@ LOCAL_LABEL(CHECK_NAN): JMP(lr) #endif END_COMPILERRT_FUNCTION(__eqsf2) + DEFINE_COMPILERRT_FUNCTION_ALIAS(__lesf2, __eqsf2) DEFINE_COMPILERRT_FUNCTION_ALIAS(__ltsf2, __eqsf2) DEFINE_COMPILERRT_FUNCTION_ALIAS(__nesf2, __eqsf2) -.p2align 2 +@ int __gtsf2(float a, float b) + + .p2align 2 DEFINE_COMPILERRT_FUNCTION(__gtsf2) // Identical to the preceding except in that we return -1 for NaN values. // Given that the two paths share so much code, one might be tempted to // unify them; however, the extra code needed to do so makes the code size // to performance tradeoff very hard to justify for such small functions. +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov r0, s0 + vmov r1, s1 +#endif #if __ARM_ARCH_ISA_THUMB == 1 push {r6, lr} lsls r2, r0, #1 @@ -215,6 +228,8 @@ LOCAL_LABEL(CHECK_NAN_2): 6: pop {r6, pc} #else + mov r2, r0, lsl #1 + mov r3, r1, lsl #1 orrs r12, r2, r3, lsr #1 it ne eorsne r12, r0, r1 @@ -233,10 +248,17 @@ LOCAL_LABEL(CHECK_NAN_2): JMP(lr) #endif END_COMPILERRT_FUNCTION(__gtsf2) + DEFINE_COMPILERRT_FUNCTION_ALIAS(__gesf2, __gtsf2) -.p2align 2 +@ int __unordsf2(float a, float b) + + .p2align 2 DEFINE_COMPILERRT_FUNCTION(__unordsf2) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov r0, s0 + vmov r1, s1 +#endif // Return 1 for NaN values, 0 otherwise. lsls r2, r0, #1 lsls r3, r1, #1 @@ -260,7 +282,15 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2) JMP(lr) END_COMPILERRT_FUNCTION(__unordsf2) +#if defined(COMPILER_RT_ARMHF_TARGET) +DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmpum): + vmov s0, r0 + vmov s1, r1 + b SYMBOL_NAME(__unordsf2) +END_COMPILERRT_FUNCTION(__aeabi_fcmpum) +#else DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_fcmpun, __unordsf2) +#endif NO_EXEC_STACK_DIRECTIVE Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,10 +18,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__divdf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vdiv.f64 d0, d0, d1 +#else vmov d6, r0, r1 // move first param from r0/r1 pair into d6 vmov d7, r2, r3 // move second param from r2/r3 pair into d7 - vdiv.f64 d5, d6, d7 + vdiv.f64 d5, d6, d7 vmov r0, r1, d5 // move result back to r0/r1 pair +#endif bx lr END_COMPILERRT_FUNCTION(__divdf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,10 +18,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__divsf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vdiv.f32 s0, s0, s1 +#else vmov s14, r0 // move first param from r0 into float register vmov s15, r1 // move second param from r1 into float register vdiv.f32 s13, s14, s15 vmov r0, s13 // move result back to r0 +#endif bx lr END_COMPILERRT_FUNCTION(__divsf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr moveq r0, #1 // set result register to 1 if equal movne r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr moveq r0, #1 // set result register to 1 if equal movne r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__extendsfdf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcvt.f64.f32 d0, s0 +#else vmov s15, r0 // load float register from R0 vcvt.f64.f32 d7, s15 // convert single to double vmov r0, r1, d7 // return result in r0/r1 pair +#endif bx lr END_COMPILERRT_FUNCTION(__extendsfdf2vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcvt.s32.f64 s0, d0 + vmov r0, s0 +#else vmov d7, r0, r1 // load double register from R0/R1 vcvt.s32.f64 s15, d7 // convert double to 32-bit int into s15 vmov r0, s15 // move s15 to result register +#endif bx lr END_COMPILERRT_FUNCTION(__fixdfsivfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcvt.s32.f32 s0, s0 + vmov r0, s0 +#else vmov s15, r0 // load float register from R0 vcvt.s32.f32 s15, s15 // convert single to 32-bit int into s15 vmov r0, s15 // move s15 to result register +#endif bx lr END_COMPILERRT_FUNCTION(__fixsfsivfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -20,9 +20,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcvt.u32.f64 s0, d0 + vmov r0, s0 +#else vmov d7, r0, r1 // load double register from R0/R1 vcvt.u32.f64 s15, d7 // convert double to 32-bit int into s15 vmov r0, s15 // move s15 to result register +#endif bx lr END_COMPILERRT_FUNCTION(__fixunsdfsivfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -20,9 +20,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcvt.u32.f32 s0, s0 + vmov r0, s0 +#else vmov s15, r0 // load float register from R0 vcvt.u32.f32 s15, s15 // convert single to 32-bit unsigned into s15 vmov r0, s15 // move s15 to result register +#endif bx lr END_COMPILERRT_FUNCTION(__fixunssfsivfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__floatsidfvfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov s0, r0 + vcvt.f64.s32 d0, s0 +#else vmov s15, r0 // move int to float register s15 vcvt.f64.s32 d7, s15 // convert 32-bit int in s15 to double in d7 vmov r0, r1, d7 // move d7 to result register pair r0/r1 +#endif bx lr END_COMPILERRT_FUNCTION(__floatsidfvfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov s0, r0 + vcvt.f32.s32 s0, s0 +#else vmov s15, r0 // move int to float register s15 vcvt.f32.s32 s15, s15 // convert 32-bit int in s15 to float in s15 vmov r0, s15 // move s15 to result register +#endif bx lr END_COMPILERRT_FUNCTION(__floatsisfvfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov s0, r0 + vcvt.f64.u32 d0, s0 +#else vmov s15, r0 // move int to float register s15 vcvt.f64.u32 d7, s15 // convert 32-bit int in s15 to double in d7 vmov r0, r1, d7 // move d7 to result register pair r0/r1 +#endif bx lr END_COMPILERRT_FUNCTION(__floatunssidfvfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmov s0, r0 + vcvt.f32.u32 s0, s0 +#else vmov s15, r0 // move int to float register s15 vcvt.f32.u32 s15, s15 // convert 32-bit int in s15 to float in s15 vmov r0, s15 // move s15 to result register +#endif bx lr END_COMPILERRT_FUNCTION(__floatunssisfvfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__gedf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr movge r0, #1 // set result register to 1 if greater than or equal movlt r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__gesf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr movge r0, #1 // set result register to 1 if greater than or equal movlt r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr movgt r0, #1 // set result register to 1 if equal movle r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr movgt r0, #1 // set result register to 1 if equal movle r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__ledf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr movls r0, #1 // set result register to 1 if equal movhi r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__lesf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr movls r0, #1 // set result register to 1 if equal movhi r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr movmi r0, #1 // set result register to 1 if equal movpl r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr movmi r0, #1 // set result register to 1 if equal movpl r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,10 +18,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__muldf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmul.f64 d0, d0, d1 +#else vmov d6, r0, r1 // move first param from r0/r1 pair into d6 vmov d7, r2, r3 // move second param from r2/r3 pair into d7 - vmul.f64 d6, d6, d7 + vmul.f64 d6, d6, d7 vmov r0, r1, d6 // move result back to r0/r1 pair +#endif bx lr END_COMPILERRT_FUNCTION(__muldf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,9 +18,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vmul.f32 s0, s0, s1 +#else vmov s14, r0 // move first param from r0 into float register vmov s15, r1 // move second param from r1 into float register vmul.f32 s13, s14, s15 +#endif vmov r0, s13 // move result back to r0 bx lr END_COMPILERRT_FUNCTION(__mulsf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__nedf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr movne r0, #1 // set result register to 0 if unequal moveq r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,7 +18,11 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__negdf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vneg.f64 d0, d0 +#else eor r1, r1, #-2147483648 // flip sign bit on double in r0/r1 pair +#endif bx lr END_COMPILERRT_FUNCTION(__negdf2vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,7 +18,11 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__negsf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vneg.f32 s0, s0 +#else eor r0, r0, #-2147483648 // flip sign bit on float in r0 +#endif bx lr END_COMPILERRT_FUNCTION(__negsf2vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__nesf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr movne r0, #1 // set result register to 1 if unequal moveq r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -18,10 +18,14 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__subdf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vsub.f64 d0, d0, d1 +#else vmov d6, r0, r1 // move first param from r0/r1 pair into d6 vmov d7, r2, r3 // move second param from r2/r3 pair into d7 vsub.f64 d6, d6, d7 vmov r0, r1, d6 // move result back to r0/r1 pair +#endif bx lr END_COMPILERRT_FUNCTION(__subdf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -12,17 +12,21 @@ // // extern float __subsf3vfp(float a, float b); // -// Returns the difference between two single precision floating point numbers +// Returns the difference between two single precision floating point numbers // using the Darwin calling convention where single arguments are passsed // like 32-bit ints. // .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__subsf3vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vsub.f32 s0, s0, s1 +#elsee vmov s14, r0 // move first param from r0 into float register vmov s15, r1 // move second param from r1 into float register vsub.f32 s14, s14, s15 vmov r0, s14 // move result back to r0 +#endif bx lr END_COMPILERRT_FUNCTION(__subsf3vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__truncdfsf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcvt.f32.f64 s0, d0 +#else vmov d7, r0, r1 // load double from r0/r1 pair vcvt.f32.f64 s15, d7 // convert double to single (trucate precision) vmov r0, s15 // return result in r0 +#endif bx lr END_COMPILERRT_FUNCTION(__truncdfsf2vfp) Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f64 d0, d1 +#else vmov d6, r0, r1 // load r0/r1 pair in double register vmov d7, r2, r3 // load r2/r3 pair in double register - vcmp.f64 d6, d7 + vcmp.f64 d6, d7 +#endif vmrs apsr_nzcv, fpscr movvs r0, #1 // set result register to 1 if "overflow" (any NaNs) movvc r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S Sat Jan 14 22:16:01 2017 (r312198) @@ -19,9 +19,13 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp) +#if defined(COMPILER_RT_ARMHF_TARGET) + vcmp.f32 s0, s1 +#else vmov s14, r0 // move from GPR 0 to float register vmov s15, r1 // move from GPR 1 to float register vcmp.f32 s14, s15 +#endif vmrs apsr_nzcv, fpscr movvs r0, #1 // set result register to 1 if "overflow" (any NaNs) movvc r0, #0 Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h Sat Jan 14 22:16:01 2017 (r312198) @@ -690,6 +690,7 @@ inline const char *ModuleArchToString(Mo return "arm64"; } CHECK(0 && "Invalid module arch"); + return ""; } const uptr kModuleUUIDSize = 16; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc Sat Jan 14 22:16:01 2017 (r312198) @@ -954,7 +954,9 @@ SANITIZER_INTERFACE_ATTRIBUTE void __san } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump() { coverage_data.DumpAll(); +#if SANITIZER_LINUX __sanitizer_dump_trace_pc_guard_coverage(); +#endif } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_module_init(s32 *guards, uptr npcs, u8 *counters, Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc Sat Jan 14 22:16:01 2017 (r312198) @@ -78,10 +78,12 @@ void LibIgnore::OnLibraryLoaded(const ch lib->templ, mod.full_name()); lib->loaded = true; lib->name = internal_strdup(mod.full_name()); - const uptr idx = atomic_load(&loaded_count_, memory_order_relaxed); - code_ranges_[idx].begin = range.beg; - code_ranges_[idx].end = range.end; - atomic_store(&loaded_count_, idx + 1, memory_order_release); + const uptr idx = + atomic_load(&ignored_ranges_count_, memory_order_relaxed); + CHECK_LT(idx, kMaxLibs); + ignored_code_ranges_[idx].begin = range.beg; + ignored_code_ranges_[idx].end = range.end; + atomic_store(&ignored_ranges_count_, idx + 1, memory_order_release); break; } } @@ -92,6 +94,29 @@ void LibIgnore::OnLibraryLoaded(const ch Die(); } } + + // Track instrumented ranges. + if (track_instrumented_libs_) { + for (const auto &mod : modules) { + if (!mod.instrumented()) + continue; + for (const auto &range : mod.ranges()) { + if (!range.executable) + continue; + if (IsPcInstrumented(range.beg) && IsPcInstrumented(range.end - 1)) + continue; + VReport(1, "Adding instrumented range %p-%p from library '%s'\n", + range.beg, range.end, mod.full_name()); + const uptr idx = + atomic_load(&instrumented_ranges_count_, memory_order_relaxed); + CHECK_LT(idx, kMaxLibs); + instrumented_code_ranges_[idx].begin = range.beg; + instrumented_code_ranges_[idx].end = range.end; + atomic_store(&instrumented_ranges_count_, idx + 1, + memory_order_release); + } + } + } } void LibIgnore::OnLibraryUnloaded() { Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h Sat Jan 14 22:16:01 2017 (r312198) @@ -30,6 +30,9 @@ class LibIgnore { // Must be called during initialization. void AddIgnoredLibrary(const char *name_templ); + void IgnoreNoninstrumentedModules(bool enable) { + track_instrumented_libs_ = enable; + } // Must be called after a new dynamic library is loaded. void OnLibraryLoaded(const char *name); @@ -37,8 +40,14 @@ class LibIgnore { // Must be called after a dynamic library is unloaded. void OnLibraryUnloaded(); - // Checks whether the provided PC belongs to one of the ignored libraries. - bool IsIgnored(uptr pc) const; + // Checks whether the provided PC belongs to one of the ignored libraries or + // the PC should be ignored because it belongs to an non-instrumented module + // (when ignore_noninstrumented_modules=1). Also returns true via + // "pc_in_ignored_lib" if the PC is in an ignored library, false otherwise. + bool IsIgnored(uptr pc, bool *pc_in_ignored_lib) const; + + // Checks whether the provided PC belongs to an instrumented module. + bool IsPcInstrumented(uptr pc) const; private: struct Lib { @@ -53,26 +62,48 @@ class LibIgnore { uptr end; }; + inline bool IsInRange(uptr pc, const LibCodeRange &range) const { + return (pc >= range.begin && pc < range.end); + } + static const uptr kMaxLibs = 128; // Hot part: - atomic_uintptr_t loaded_count_; - LibCodeRange code_ranges_[kMaxLibs]; + atomic_uintptr_t ignored_ranges_count_; + LibCodeRange ignored_code_ranges_[kMaxLibs]; + + atomic_uintptr_t instrumented_ranges_count_; + LibCodeRange instrumented_code_ranges_[kMaxLibs]; // Cold part: BlockingMutex mutex_; uptr count_; Lib libs_[kMaxLibs]; + bool track_instrumented_libs_; // Disallow copying of LibIgnore objects. LibIgnore(const LibIgnore&); // not implemented void operator = (const LibIgnore&); // not implemented }; -inline bool LibIgnore::IsIgnored(uptr pc) const { - const uptr n = atomic_load(&loaded_count_, memory_order_acquire); +inline bool LibIgnore::IsIgnored(uptr pc, bool *pc_in_ignored_lib) const { + const uptr n = atomic_load(&ignored_ranges_count_, memory_order_acquire); + for (uptr i = 0; i < n; i++) { + if (IsInRange(pc, ignored_code_ranges_[i])) { + *pc_in_ignored_lib = true; + return true; + } + } + *pc_in_ignored_lib = false; + if (track_instrumented_libs_ && !IsPcInstrumented(pc)) + return true; + return false; +} + +inline bool LibIgnore::IsPcInstrumented(uptr pc) const { + const uptr n = atomic_load(&instrumented_ranges_count_, memory_order_acquire); for (uptr i = 0; i < n; i++) { - if (pc >= code_ranges_[i].begin && pc < code_ranges_[i].end) + if (IsInRange(pc, instrumented_code_ranges_[i])) return true; } return false; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h Sat Jan 14 22:16:01 2017 (r312198) @@ -639,9 +639,12 @@ namespace __sanitizer { #ifndef __mips__ #if defined(__sparc__) #if __GLIBC_PREREQ (2, 20) - // On sparc glibc 2.19 and earlier sa_flags was unsigned long, and - // __glibc_reserved0 didn't exist. + // On sparc glibc 2.19 and earlier sa_flags was unsigned long. +#if defined(__arch64__) + // To maintain ABI compatibility on sparc64 when switching to an int, + // __glibc_reserved0 was added. int __glibc_reserved0; +#endif int sa_flags; #else unsigned long sa_flags; Modified: projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h Sat Jan 14 22:16:01 2017 (r312198) @@ -49,18 +49,31 @@ class Quarantine { } void Init(uptr size, uptr cache_size) { - atomic_store(&max_size_, size, memory_order_release); + // Thread local quarantine size can be zero only when global quarantine size + // is zero (it allows us to perform just one atomic read per Put() call). + CHECK((size == 0 && cache_size == 0) || cache_size != 0); + + atomic_store(&max_size_, size, memory_order_relaxed); atomic_store(&min_size_, size / 10 * 9, - memory_order_release); // 90% of max size. - max_cache_size_ = cache_size; + memory_order_relaxed); // 90% of max size. + atomic_store(&max_cache_size_, cache_size, memory_order_relaxed); } - uptr GetSize() const { return atomic_load(&max_size_, memory_order_acquire); } - uptr GetCacheSize() const { return max_cache_size_; } + uptr GetSize() const { return atomic_load(&max_size_, memory_order_relaxed); } + uptr GetCacheSize() const { + return atomic_load(&max_cache_size_, memory_order_relaxed); + } void Put(Cache *c, Callback cb, Node *ptr, uptr size) { - c->Enqueue(cb, ptr, size); - if (c->Size() > max_cache_size_) + uptr cache_size = GetCacheSize(); + if (cache_size) { + c->Enqueue(cb, ptr, size); + } else { + // cache_size == 0 only when size == 0 (see Init). + cb.Recycle(ptr); + } + // Check cache size anyway to accommodate for runtime cache_size change. + if (c->Size() > cache_size) Drain(c, cb); } @@ -83,7 +96,7 @@ class Quarantine { char pad0_[kCacheLineSize]; atomic_uintptr_t max_size_; atomic_uintptr_t min_size_; - uptr max_cache_size_; + atomic_uintptr_t max_cache_size_; char pad1_[kCacheLineSize]; SpinMutex cache_mutex_; SpinMutex recycle_mutex_; @@ -92,7 +105,7 @@ class Quarantine { void NOINLINE Recycle(Callback cb) { Cache tmp; - uptr min_size = atomic_load(&min_size_, memory_order_acquire); + uptr min_size = atomic_load(&min_size_, memory_order_relaxed); { SpinMutexLock l(&cache_mutex_); while (cache_.Size() > min_size) { @@ -205,6 +218,7 @@ class QuarantineCache { return b; } }; + } // namespace __sanitizer #endif // SANITIZER_QUARANTINE_H Modified: projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp ============================================================================== --- projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp Sat Jan 14 22:12:13 2017 (r312197) +++ projects/clang400-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp Sat Jan 14 22:16:01 2017 (r312198) @@ -15,6 +15,7 @@ //===----------------------------------------------------------------------===// #include "scudo_allocator.h" +#include "scudo_crc32.h" #include "scudo_utils.h" #include "sanitizer_common/sanitizer_allocator_interface.h" @@ -25,22 +26,6 @@ #include -// Hardware CRC32 is supported at compilation via the following: -// - for i386 & x86_64: -msse4.2 -// - for ARM & AArch64: -march=armv8-a+crc -// An additional check must be performed at runtime as well to make sure the -// emitted instructions are valid on the target host. -#if defined(__SSE4_2__) || defined(__ARM_FEATURE_CRC32) -# ifdef __SSE4_2__ -# include *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sat Jan 14 22:17:14 2017 Return-Path: Delivered-To: svn-src-projects@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 50938CB003C for ; Sat, 14 Jan 2017 22:17:14 +0000 (UTC) (envelope-from dim@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 1F0201236; Sat, 14 Jan 2017 22:17:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EMHDVA093246; Sat, 14 Jan 2017 22:17:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EMHC6p093236; Sat, 14 Jan 2017 22:17:12 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701142217.v0EMHC6p093236@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 14 Jan 2017 22:17:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312200 - in projects/clang400-import/contrib/libc++: include include/experimental src X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 22:17:14 -0000 Author: dim Date: Sat Jan 14 22:17:12 2017 New Revision: 312200 URL: https://svnweb.freebsd.org/changeset/base/312200 Log: Merge libc++ release_40 branch r292009. Modified: projects/clang400-import/contrib/libc++/include/__config projects/clang400-import/contrib/libc++/include/__mutex_base projects/clang400-import/contrib/libc++/include/__string projects/clang400-import/contrib/libc++/include/__threading_support projects/clang400-import/contrib/libc++/include/experimental/string_view projects/clang400-import/contrib/libc++/include/ios projects/clang400-import/contrib/libc++/include/memory projects/clang400-import/contrib/libc++/include/mutex projects/clang400-import/contrib/libc++/src/chrono.cpp projects/clang400-import/contrib/libc++/src/new.cpp Directory Properties: projects/clang400-import/contrib/libc++/ (props changed) Modified: projects/clang400-import/contrib/libc++/include/__config ============================================================================== --- projects/clang400-import/contrib/libc++/include/__config Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/__config Sat Jan 14 22:17:12 2017 (r312200) @@ -396,6 +396,15 @@ namespace std { #define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow"))) #endif +// A constexpr version of __builtin_memcmp was added in clang 4.0 +#if __has_builtin(__builtin_memcmp) +# ifdef __apple_build_version__ +// No shipping version of Apple's clang has constexpr __builtin_memcmp +# elif __clang_major__ > 3 +# define _LIBCPP_BUILTIN_MEMCMP_ISCONSTEXPR +# endif +#endif + #elif defined(_LIBCPP_COMPILER_GCC) #define _ALIGNAS(x) __attribute__((__aligned__(x))) @@ -763,7 +772,7 @@ template struct __static_asse #define _NOALIAS #endif -#if __has_extension(cxx_explicit_conversions) || defined(__IBMCPP__) || \ +#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) || \ (!defined(_LIBCPP_CXX03_LANG) && defined(__GNUC__)) // All supported GCC versions # define _LIBCPP_EXPLICIT explicit #else Modified: projects/clang400-import/contrib/libc++/include/__mutex_base ============================================================================== --- projects/clang400-import/contrib/libc++/include/__mutex_base Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/__mutex_base Sat Jan 14 22:17:12 2017 (r312200) @@ -410,8 +410,8 @@ condition_variable::wait_for(unique_lock typedef time_point > __sys_tpf; typedef time_point __sys_tpi; __sys_tpf _Max = __sys_tpi::max(); - system_clock::time_point __s_now = system_clock::now(); steady_clock::time_point __c_now = steady_clock::now(); + system_clock::time_point __s_now = system_clock::now(); if (_Max - __d > __s_now) __do_timed_wait(__lk, __s_now + __ceil(__d)); else Modified: projects/clang400-import/contrib/libc++/include/__string ============================================================================== --- projects/clang400-import/contrib/libc++/include/__string Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/__string Sat Jan 14 22:17:12 2017 (r312200) @@ -26,13 +26,14 @@ struct char_traits typedef streampos pos_type; typedef mbstate_t state_type; - static void assign(char_type& c1, const char_type& c2) noexcept; + static constexpr void assign(char_type& c1, const char_type& c2) noexcept; static constexpr bool eq(char_type c1, char_type c2) noexcept; static constexpr bool lt(char_type c1, char_type c2) noexcept; - static int compare(const char_type* s1, const char_type* s2, size_t n); - static size_t length(const char_type* s); - static const char_type* find(const char_type* s, size_t n, const char_type& a); + static constexpr int compare(const char_type* s1, const char_type* s2, size_t n); + static constexpr size_t length(const char_type* s); + static constexpr const char_type* + find(const char_type* s, size_t n, const char_type& a); static char_type* move(char_type* s1, const char_type* s2, size_t n); static char_type* copy(char_type* s1, const char_type* s2, size_t n); static char_type* assign(char_type* s, size_t n, char_type a); @@ -77,18 +78,19 @@ struct _LIBCPP_TEMPLATE_VIS char_traits typedef streampos pos_type; typedef mbstate_t state_type; - static inline void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT - {__c1 = __c2;} + static inline void _LIBCPP_CONSTEXPR_AFTER_CXX14 + assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 == __c2;} static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 < __c2;} - static int compare(const char_type* __s1, const char_type* __s2, size_t __n); - _LIBCPP_INLINE_VISIBILITY - static size_t length(const char_type* __s); - _LIBCPP_INLINE_VISIBILITY - static const char_type* find(const char_type* __s, size_t __n, const char_type& __a); + static _LIBCPP_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n); + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s); + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a); static char_type* move(char_type* __s1, const char_type* __s2, size_t __n); _LIBCPP_INLINE_VISIBILITY static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n); @@ -108,7 +110,7 @@ struct _LIBCPP_TEMPLATE_VIS char_traits }; template -int +_LIBCPP_CONSTEXPR_AFTER_CXX14 int char_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_t __n) { for (; __n; --__n, ++__s1, ++__s2) @@ -123,7 +125,7 @@ char_traits<_CharT>::compare(const char_ template inline -size_t +_LIBCPP_CONSTEXPR_AFTER_CXX14 size_t char_traits<_CharT>::length(const char_type* __s) { size_t __len = 0; @@ -134,7 +136,7 @@ char_traits<_CharT>::length(const char_t template inline -const _CharT* +_LIBCPP_CONSTEXPR_AFTER_CXX14 const _CharT* char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a) { for (; __n; --__n) @@ -200,18 +202,19 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< typedef streampos pos_type; typedef mbstate_t state_type; - static inline void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT - {__c1 = __c2;} + static inline _LIBCPP_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 == __c2;} static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT {return (unsigned char)__c1 < (unsigned char)__c2;} - static inline int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT - {return __n == 0 ? 0 : memcmp(__s1, __s2, __n);} - static inline size_t length(const char_type* __s) _NOEXCEPT {return strlen(__s);} - static inline const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT - {return __n == 0 ? NULL : (const char_type*) memchr(__s, to_int_type(__a), __n);} + static _LIBCPP_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + static inline size_t _LIBCPP_CONSTEXPR_AFTER_CXX14 + length(const char_type* __s) _NOEXCEPT {return __builtin_strlen(__s);} + static _LIBCPP_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT {return __n == 0 ? __s1 : (char_type*) memmove(__s1, __s2, __n);} static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT @@ -234,6 +237,48 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< {return int_type(EOF);} }; +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + if (__n == 0) + return 0; +#ifdef _LIBCPP_BUILTIN_MEMCMP_ISCONSTEXPR + return __builtin_memcmp(__s1, __s2, __n); +#elif _LIBCPP_STD_VER <= 14 + return memcmp(__s1, __s2, __n); +#else + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +#endif +} + +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 +const char* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + if (__n == 0) + return NULL; +#if _LIBCPP_STD_VER <= 14 + return (const char_type*) memchr(__s, to_int_type(__a), __n); +#else + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return NULL; +#endif +} + + // char_traits template <> @@ -245,19 +290,19 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< typedef streampos pos_type; typedef mbstate_t state_type; - static inline void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT - {__c1 = __c2;} + static inline _LIBCPP_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 == __c2;} static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 < __c2;} - static inline int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT - {return __n == 0 ? 0 : wmemcmp(__s1, __s2, __n);} - static inline size_t length(const char_type* __s) _NOEXCEPT - {return wcslen(__s);} - static inline const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT - {return __n == 0 ? NULL : (const char_type*)wmemchr(__s, __a, __n);} + static _LIBCPP_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + static _LIBCPP_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s) _NOEXCEPT; + static _LIBCPP_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT {return __n == 0 ? __s1 : (char_type*)wmemmove(__s1, __s2, __n);} static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT @@ -280,6 +325,66 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< {return int_type(WEOF);} }; +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + if (__n == 0) + return 0; +#if __has_builtin(__builtin_wmemcmp) + return __builtin_wmemcmp(__s1, __s2, __n); +#elif _LIBCPP_STD_VER <= 14 + return wmemcmp(__s1, __s2, __n); +#else + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +#endif +} + +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 +size_t +char_traits::length(const char_type* __s) _NOEXCEPT +{ +#if __has_builtin(__builtin_wcslen) + return __builtin_wcslen(__s); +#elif _LIBCPP_STD_VER <= 14 + return wcslen(__s); +#else + size_t __len = 0; + for (; !eq(*__s, char_type(0)); ++__s) + ++__len; + return __len; +#endif +} + +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 +const wchar_t* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + if (__n == 0) + return NULL; +#if __has_builtin(__builtin_wmemchr) + return __builtin_wmemchr(__s, __a, __n); +#elif _LIBCPP_STD_VER <= 14 + return wmemchr(__s, __a, __n); +#else + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return NULL; +#endif +} + + #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS template <> @@ -291,19 +396,19 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< typedef u16streampos pos_type; typedef mbstate_t state_type; - static inline void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT - {__c1 = __c2;} + static inline _LIBCPP_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 == __c2;} static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 < __c2;} - _LIBCPP_INLINE_VISIBILITY - static int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - static size_t length(const char_type* __s) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s) _NOEXCEPT; + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; _LIBCPP_INLINE_VISIBILITY static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; _LIBCPP_INLINE_VISIBILITY @@ -323,7 +428,7 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< {return int_type(0xFFFF);} }; -inline +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 int char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT { @@ -337,7 +442,7 @@ char_traits::compare(const cha return 0; } -inline +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 size_t char_traits::length(const char_type* __s) _NOEXCEPT { @@ -347,7 +452,7 @@ char_traits::length(const char return __len; } -inline +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 const char16_t* char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT { @@ -410,19 +515,19 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< typedef u32streampos pos_type; typedef mbstate_t state_type; - static inline void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT - {__c1 = __c2;} + static inline _LIBCPP_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 == __c2;} static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT {return __c1 < __c2;} - _LIBCPP_INLINE_VISIBILITY - static int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - static size_t length(const char_type* __s) _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - static const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s) _NOEXCEPT; + _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; _LIBCPP_INLINE_VISIBILITY static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; _LIBCPP_INLINE_VISIBILITY @@ -442,7 +547,7 @@ struct _LIBCPP_TEMPLATE_VIS char_traits< {return int_type(0xFFFFFFFF);} }; -inline +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 int char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT { @@ -456,7 +561,7 @@ char_traits::compare(const cha return 0; } -inline +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 size_t char_traits::length(const char_type* __s) _NOEXCEPT { @@ -466,7 +571,7 @@ char_traits::length(const char return __len; } -inline +inline _LIBCPP_CONSTEXPR_AFTER_CXX14 const char32_t* char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT { Modified: projects/clang400-import/contrib/libc++/include/__threading_support ============================================================================== --- projects/clang400-import/contrib/libc++/include/__threading_support Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/__threading_support Sat Jan 14 22:17:12 2017 (r312200) @@ -385,7 +385,7 @@ int __libcpp_recursive_mutex_unlock(__li int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m) { - static_cast(__m); + DeleteCriticalSection(__m); return 0; } Modified: projects/clang400-import/contrib/libc++/include/experimental/string_view ============================================================================== --- projects/clang400-import/contrib/libc++/include/experimental/string_view Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/experimental/string_view Sat Jan 14 22:17:12 2017 (r312200) @@ -340,12 +340,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS // [string.view.ops], string operations: template _LIBCPP_INLINE_VISIBILITY - // Clang's extended C++11 explict conversions don't work with - // string_view in C++03. -#ifndef _LIBCPP_CXX03_LANG - _LIBCPP_EXPLICIT -#endif - operator basic_string<_CharT, _Traits, _Allocator>() const + _LIBCPP_EXPLICIT operator basic_string<_CharT, _Traits, _Allocator>() const { return basic_string<_CharT, _Traits, _Allocator>( begin(), end()); } template > Modified: projects/clang400-import/contrib/libc++/include/ios ============================================================================== --- projects/clang400-import/contrib/libc++/include/ios Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/ios Sat Jan 14 22:17:12 2017 (r312200) @@ -572,6 +572,13 @@ ios_base::exceptions(iostate __iostate) clear(__rdstate_); } +#if defined(_LIBCPP_CXX03_LANG) +struct _LIBCPP_TYPE_VIS __cxx03_bool { + typedef void (__cxx03_bool::*__bool_type)(); + void __true_value() {} +}; +#endif + template class _LIBCPP_TEMPLATE_VIS basic_ios : public ios_base @@ -585,8 +592,15 @@ public: typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; +#if defined(_LIBCPP_CXX03_LANG) + _LIBCPP_ALWAYS_INLINE + operator __cxx03_bool::__bool_type() const { + return !fail() ? &__cxx03_bool::__true_value : nullptr; + } +#else _LIBCPP_ALWAYS_INLINE _LIBCPP_EXPLICIT operator bool() const {return !fail();} +#endif _LIBCPP_ALWAYS_INLINE bool operator!() const {return fail();} _LIBCPP_ALWAYS_INLINE iostate rdstate() const {return ios_base::rdstate();} Modified: projects/clang400-import/contrib/libc++/include/memory ============================================================================== --- projects/clang400-import/contrib/libc++/include/memory Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/memory Sat Jan 14 22:17:12 2017 (r312200) @@ -3884,6 +3884,7 @@ class _LIBCPP_TEMPLATE_VIS shared_ptr { public: typedef _Tp element_type; + #if _LIBCPP_STD_VER > 14 typedef weak_ptr<_Tp> weak_type; #endif @@ -3914,17 +3915,17 @@ public: template _LIBCPP_INLINE_VISIBILITY shared_ptr(const shared_ptr<_Yp>& __r, - typename enable_if::value, __nat>::type = __nat()) + typename enable_if::value, __nat>::type = __nat()) _NOEXCEPT; #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES _LIBCPP_INLINE_VISIBILITY shared_ptr(shared_ptr&& __r) _NOEXCEPT; template _LIBCPP_INLINE_VISIBILITY shared_ptr(shared_ptr<_Yp>&& __r, - typename enable_if::value, __nat>::type = __nat()) + typename enable_if::value, __nat>::type = __nat()) _NOEXCEPT; #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES template explicit shared_ptr(const weak_ptr<_Yp>& __r, - typename enable_if::value, __nat>::type= __nat()); + typename enable_if::value, __nat>::type= __nat()); #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES template shared_ptr(auto_ptr<_Yp>&& __r, @@ -4316,7 +4317,7 @@ template template inline shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, - typename enable_if::value, __nat>::type) + typename enable_if::value, __nat>::type) _NOEXCEPT : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) @@ -4341,7 +4342,7 @@ template template inline shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r, - typename enable_if::value, __nat>::type) + typename enable_if::value, __nat>::type) _NOEXCEPT : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) @@ -4639,7 +4640,7 @@ template inline typename enable_if < - is_convertible<_Yp*, _Tp*>::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT @@ -4664,7 +4665,7 @@ template inline typename enable_if < - is_convertible<_Yp*, _Tp*>::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(shared_ptr<_Yp>&& __r) @@ -4679,7 +4680,7 @@ inline typename enable_if < !is_array<_Yp>::value && - is_convertible<_Yp*, _Tp*>::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp> >::type& shared_ptr<_Tp>::operator=(auto_ptr<_Yp>&& __r) @@ -4694,7 +4695,8 @@ inline typename enable_if < !is_array<_Yp>::value && - is_convertible::pointer, _Tp*>::value, + is_convertible::pointer, + typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp>&& __r) @@ -4711,7 +4713,7 @@ inline _LIBCPP_INLINE_VISIBILITY typename enable_if < !is_array<_Yp>::value && - is_convertible<_Yp*, _Tp*>::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(auto_ptr<_Yp> __r) @@ -4726,7 +4728,8 @@ inline _LIBCPP_INLINE_VISIBILITY typename enable_if < !is_array<_Yp>::value && - is_convertible::pointer, _Tp*>::value, + is_convertible::pointer, + typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp> __r) @@ -4759,7 +4762,7 @@ template inline typename enable_if < - is_convertible<_Yp*, _Tp*>::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, void >::type shared_ptr<_Tp>::reset(_Yp* __p) @@ -4772,7 +4775,7 @@ template inline typename enable_if < - is_convertible<_Yp*, _Tp*>::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, void >::type shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d) @@ -4785,7 +4788,7 @@ template::value, + is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, void >::type shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d, _Alloc __a) @@ -5350,7 +5353,7 @@ weak_ptr<_Tp>::reset() _NOEXCEPT template template shared_ptr<_Tp>::shared_ptr(const weak_ptr<_Yp>& __r, - typename enable_if::value, __nat>::type) + typename enable_if::value, __nat>::type) : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_ ? __r.__cntrl_->lock() : __r.__cntrl_) { Modified: projects/clang400-import/contrib/libc++/include/mutex ============================================================================== --- projects/clang400-import/contrib/libc++/include/mutex Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/include/mutex Sat Jan 14 22:17:12 2017 (r312200) @@ -559,6 +559,7 @@ public: #endif template +inline _LIBCPP_INLINE_VISIBILITY void __call_once_proxy(void* __vp) { Modified: projects/clang400-import/contrib/libc++/src/chrono.cpp ============================================================================== --- projects/clang400-import/contrib/libc++/src/chrono.cpp Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/src/chrono.cpp Sat Jan 14 22:17:12 2017 (r312200) @@ -42,7 +42,7 @@ #include #endif #else -#if !defined(CLOCK_REALTIME) +#if !defined(CLOCK_REALTIME) || !defined(_LIBCXX_USE_CLOCK_GETTIME) #include // for gettimeofday and timeval #endif // !defined(CLOCK_REALTIME) #endif // defined(_LIBCPP_WIN32API) Modified: projects/clang400-import/contrib/libc++/src/new.cpp ============================================================================== --- projects/clang400-import/contrib/libc++/src/new.cpp Sat Jan 14 22:16:03 2017 (r312199) +++ projects/clang400-import/contrib/libc++/src/new.cpp Sat Jan 14 22:17:12 2017 (r312200) @@ -198,7 +198,11 @@ void operator delete(void* ptr, std::align_val_t) _NOEXCEPT { if (ptr) +#if defined(_LIBCPP_MSVCRT) + ::_aligned_free(ptr); +#else ::free(ptr); +#endif } _LIBCPP_WEAK From owner-svn-src-projects@freebsd.org Sat Jan 14 22:20:14 2017 Return-Path: Delivered-To: svn-src-projects@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 D811FCB0136 for ; Sat, 14 Jan 2017 22:20:14 +0000 (UTC) (envelope-from dim@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 5279A143C; Sat, 14 Jan 2017 22:20:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0EMKDm3093515; Sat, 14 Jan 2017 22:20:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0EMKDTJ093508; Sat, 14 Jan 2017 22:20:13 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201701142220.v0EMKDTJ093508@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 14 Jan 2017 22:20:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312201 - in projects/clang400-import: . contrib/elftoolchain/libelftc contrib/netbsd-tests contrib/netbsd-tests/crypto/libcrypto contrib/netbsd-tests/dev/audio contrib/netbsd-tests/dev... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Jan 2017 22:20:14 -0000 Author: dim Date: Sat Jan 14 22:20:12 2017 New Revision: 312201 URL: https://svnweb.freebsd.org/changeset/base/312201 Log: Merge ^/head r311940 through r312200. Added: projects/clang400-import/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c - copied unchanged from r312200, head/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c projects/clang400-import/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c - copied unchanged from r312200, head/contrib/netbsd-tests/dev/cgd/t_cgd_aes.c projects/clang400-import/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c - copied unchanged from r312200, head/contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c projects/clang400-import/contrib/netbsd-tests/kernel/msg.h - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/msg.h projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace.c projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_wait.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_wait.c projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_wait.h - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_wait.h projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_wait3.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_wait3.c projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_wait4.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_wait4.c projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_wait6.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_wait6.c projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_waitid.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_waitid.c projects/clang400-import/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c - copied unchanged from r312200, head/contrib/netbsd-tests/kernel/t_ptrace_waitpid.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libc/sys/t_wait_noproc_wnohang.c projects/clang400-import/contrib/netbsd-tests/lib/libm/t_casinh.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libm/t_casinh.c projects/clang400-import/contrib/netbsd-tests/lib/libm/t_fe_round.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libm/t_fe_round.c projects/clang400-import/contrib/netbsd-tests/lib/libm/t_ilogb.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libm/t_ilogb.c projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c - copied unchanged from r312200, head/contrib/netbsd-tests/lib/libpthread/t_timedmutex.c projects/clang400-import/contrib/netbsd-tests/net/net/t_mtudisc.sh - copied unchanged from r312200, head/contrib/netbsd-tests/net/net/t_mtudisc.sh projects/clang400-import/contrib/netbsd-tests/net/net/t_mtudisc6.sh - copied unchanged from r312200, head/contrib/netbsd-tests/net/net/t_mtudisc6.sh projects/clang400-import/contrib/netbsd-tests/net/net/t_ping6_opts.sh - copied unchanged from r312200, head/contrib/netbsd-tests/net/net/t_ping6_opts.sh projects/clang400-import/contrib/netbsd-tests/net/net_common.sh - copied unchanged from r312200, head/contrib/netbsd-tests/net/net_common.sh projects/clang400-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c - copied unchanged from r312200, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_anon_union.c projects/clang400-import/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c - copied unchanged from r312200, head/contrib/netbsd-tests/usr.bin/xlint/lint1/d_c99_union_cast.c projects/clang400-import/tests/sys/Makefile.inc - copied unchanged from r312200, head/tests/sys/Makefile.inc projects/clang400-import/tests/sys/fs/Makefile.inc - copied unchanged from r312200, head/tests/sys/fs/Makefile.inc projects/clang400-import/tests/sys/kern/Makefile.inc - copied unchanged from r312200, head/tests/sys/kern/Makefile.inc projects/clang400-import/tests/sys/kqueue/Makefile.inc - copied unchanged from r312200, head/tests/sys/kqueue/Makefile.inc projects/clang400-import/tests/sys/mac/Makefile.inc - copied unchanged from r312200, head/tests/sys/mac/Makefile.inc projects/clang400-import/usr.sbin/fstyp/exfat.c - copied unchanged from r312200, head/usr.sbin/fstyp/exfat.c projects/clang400-import/usr.sbin/fstyp/tests/dfr-01-xfat.img.bz2 - copied unchanged from r312200, head/usr.sbin/fstyp/tests/dfr-01-xfat.img.bz2 Deleted: projects/clang400-import/contrib/netbsd-tests/fs/nfs/nfsservice/rpcbind/ Modified: projects/clang400-import/UPDATING projects/clang400-import/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh projects/clang400-import/contrib/netbsd-tests/dev/audio/h_pad.c projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue projects/clang400-import/contrib/netbsd-tests/fs/ffs/ffs_common.sh projects/clang400-import/contrib/netbsd-tests/fs/fifofs/t_fifo.c projects/clang400-import/contrib/netbsd-tests/fs/psshfs/t_psshfs.sh projects/clang400-import/contrib/netbsd-tests/fs/puffs/t_basic.c projects/clang400-import/contrib/netbsd-tests/fs/vfs/t_vnops.c projects/clang400-import/contrib/netbsd-tests/h_macros.h projects/clang400-import/contrib/netbsd-tests/kernel/t_mqueue.c projects/clang400-import/contrib/netbsd-tests/lib/libc/arch/sparc64/exec_prot_support.c projects/clang400-import/contrib/netbsd-tests/lib/libc/arch/sparc64/return_one.S projects/clang400-import/contrib/netbsd-tests/lib/libc/db/h_db.c projects/clang400-import/contrib/netbsd-tests/lib/libc/db/t_db.sh projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/posix_spawn/t_spawnattr.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_dir.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_fnmatch.c projects/clang400-import/contrib/netbsd-tests/lib/libc/gen/t_sleep.c projects/clang400-import/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c projects/clang400-import/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c projects/clang400-import/contrib/netbsd-tests/lib/libc/string/t_memcpy.c projects/clang400-import/contrib/netbsd-tests/lib/libc/string/t_memmem.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sync/cpp_atomic_ops_linkable.cc projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_access.c projects/clang400-import/contrib/netbsd-tests/lib/libc/sys/t_getrusage.c projects/clang400-import/contrib/netbsd-tests/lib/libm/t_ldexp.c projects/clang400-import/contrib/netbsd-tests/lib/libm/t_precision.c projects/clang400-import/contrib/netbsd-tests/lib/libpthread/h_common.h projects/clang400-import/contrib/netbsd-tests/lib/libpthread/t_mutex.c projects/clang400-import/contrib/netbsd-tests/lib/librumpclient/h_execthr.c projects/clang400-import/contrib/netbsd-tests/lib/librumphijack/t_tcpip.sh projects/clang400-import/contrib/netbsd-tests/lib/libusbhid/t_usbhid.c projects/clang400-import/contrib/netbsd-tests/net/arp/t_arp.sh projects/clang400-import/contrib/netbsd-tests/net/arp/t_dad.sh projects/clang400-import/contrib/netbsd-tests/net/icmp/t_icmp6_redirect.sh projects/clang400-import/contrib/netbsd-tests/net/icmp/t_icmp_redirect.sh projects/clang400-import/contrib/netbsd-tests/net/if/t_compat.c projects/clang400-import/contrib/netbsd-tests/net/if/t_ifconfig.sh projects/clang400-import/contrib/netbsd-tests/net/if_bridge/t_bridge.sh projects/clang400-import/contrib/netbsd-tests/net/if_gif/t_gif.sh projects/clang400-import/contrib/netbsd-tests/net/if_pppoe/t_pppoe.sh projects/clang400-import/contrib/netbsd-tests/net/if_tap/t_tap.sh projects/clang400-import/contrib/netbsd-tests/net/mcast/t_mcast.sh projects/clang400-import/contrib/netbsd-tests/net/ndp/t_dad.sh projects/clang400-import/contrib/netbsd-tests/net/ndp/t_ndp.sh projects/clang400-import/contrib/netbsd-tests/net/ndp/t_ra.sh projects/clang400-import/contrib/netbsd-tests/net/net/t_forwarding.sh projects/clang400-import/contrib/netbsd-tests/net/net/t_ipaddress.sh projects/clang400-import/contrib/netbsd-tests/net/net/t_ipv6_lifetime.sh projects/clang400-import/contrib/netbsd-tests/net/net/t_ipv6address.sh projects/clang400-import/contrib/netbsd-tests/net/route/t_change.sh projects/clang400-import/contrib/netbsd-tests/net/route/t_flags.sh projects/clang400-import/contrib/netbsd-tests/net/route/t_flags6.sh projects/clang400-import/contrib/netbsd-tests/net/route/t_route.sh projects/clang400-import/contrib/netbsd-tests/rump/modautoload/t_modautoload.c projects/clang400-import/contrib/netbsd-tests/rump/rumpkern/t_lwproc.c projects/clang400-import/contrib/netbsd-tests/sys/net/t_print.c projects/clang400-import/contrib/netbsd-tests/usr.bin/config/t_config.sh projects/clang400-import/contrib/netbsd-tests/usr.bin/netpgpverify/t_netpgpverify.sh projects/clang400-import/lib/libc/gen/tcsendbreak.3 projects/clang400-import/lib/libc/sys/shm_open.2 projects/clang400-import/lib/libc/tests/db/Makefile projects/clang400-import/lib/libc/tests/gen/Makefile projects/clang400-import/lib/libc/tests/stdlib/Makefile projects/clang400-import/lib/libc/tests/sys/Makefile projects/clang400-import/lib/libgcc_s/Makefile projects/clang400-import/lib/libnetbsd/sys/cdefs.h projects/clang400-import/lib/libthr/tests/Makefile projects/clang400-import/lib/msun/tests/Makefile projects/clang400-import/libexec/rtld-elf/rtld.c projects/clang400-import/share/man/man4/em.4 projects/clang400-import/share/man/man4/sfxge.4 projects/clang400-import/share/man/man4/tty.4 projects/clang400-import/sys/cam/cam_ccb.h projects/clang400-import/sys/cam/cam_periph.c projects/clang400-import/sys/cam/ctl/ctl_frontend_cam_sim.c projects/clang400-import/sys/cam/ctl/scsi_ctl.c projects/clang400-import/sys/cam/nvme/nvme_da.c projects/clang400-import/sys/cam/scsi/scsi_all.c projects/clang400-import/sys/cam/scsi/scsi_xpt.c projects/clang400-import/sys/conf/NOTES projects/clang400-import/sys/conf/options projects/clang400-import/sys/contrib/ipfilter/netinet/ip_fil.h projects/clang400-import/sys/dev/cxgbe/tom/t4_connect.c projects/clang400-import/sys/dev/cxgbe/tom/t4_cpl_io.c projects/clang400-import/sys/dev/cxgbe/tom/t4_ddp.c projects/clang400-import/sys/dev/cxgbe/tom/t4_listen.c projects/clang400-import/sys/dev/cxgbe/tom/t4_tom.c projects/clang400-import/sys/dev/cxgbe/tom/t4_tom.h projects/clang400-import/sys/dev/e1000/if_em.c projects/clang400-import/sys/dev/e1000/if_em.h projects/clang400-import/sys/dev/iscsi_initiator/isc_soc.c projects/clang400-import/sys/dev/iscsi_initiator/iscsi.c projects/clang400-import/sys/dev/mmc/mmcsd.c projects/clang400-import/sys/dev/mpr/mpr_table.c projects/clang400-import/sys/dev/mps/mps_table.c projects/clang400-import/sys/dev/nand/nand_geom.c projects/clang400-import/sys/dev/netmap/netmap_generic.c projects/clang400-import/sys/dev/nvd/nvd.c projects/clang400-import/sys/dev/rtwn/rtl8188e/r88e_fw.c projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_fw.c projects/clang400-import/sys/dev/rtwn/rtl8192c/r92c_tx_desc.h projects/clang400-import/sys/dev/sdhci/sdhci_fdt_gpio.c projects/clang400-import/sys/dev/sfxge/common/efx_mcdi.c projects/clang400-import/sys/dev/sfxge/common/efx_mcdi.h projects/clang400-import/sys/dev/sfxge/sfxge.h projects/clang400-import/sys/dev/sfxge/sfxge_port.c projects/clang400-import/sys/dev/uart/uart_bus_pci.c projects/clang400-import/sys/dev/uart/uart_core.c projects/clang400-import/sys/fs/tmpfs/tmpfs.h projects/clang400-import/sys/fs/tmpfs/tmpfs_subr.c projects/clang400-import/sys/fs/tmpfs/tmpfs_vfsops.c projects/clang400-import/sys/geom/geom_disk.c projects/clang400-import/sys/geom/geom_disk.h projects/clang400-import/sys/geom/raid/md_ddf.c projects/clang400-import/sys/geom/raid/md_promise.c projects/clang400-import/sys/i386/i386/pmap.c projects/clang400-import/sys/kern/kern_acct.c projects/clang400-import/sys/kern/kern_descrip.c projects/clang400-import/sys/kern/kern_shutdown.c projects/clang400-import/sys/kern/subr_unit.c projects/clang400-import/sys/kern/tty.c projects/clang400-import/sys/kern/tty_inq.c projects/clang400-import/sys/kern/tty_outq.c projects/clang400-import/sys/kern/uipc_mbuf2.c projects/clang400-import/sys/libkern/bcmp.c projects/clang400-import/sys/libkern/bsearch.c projects/clang400-import/sys/libkern/iconv_ucs.c projects/clang400-import/sys/libkern/iconv_xlat16.c projects/clang400-import/sys/libkern/memmem.c projects/clang400-import/sys/libkern/qdivrem.c projects/clang400-import/sys/libkern/qsort.c projects/clang400-import/sys/libkern/random.c projects/clang400-import/sys/libkern/scanc.c projects/clang400-import/sys/libkern/strcmp.c projects/clang400-import/sys/libkern/strncpy.c projects/clang400-import/sys/mips/mips/mem.c projects/clang400-import/sys/modules/em/Makefile projects/clang400-import/sys/net80211/ieee80211.c projects/clang400-import/sys/net80211/ieee80211_adhoc.c projects/clang400-import/sys/net80211/ieee80211_hostap.c projects/clang400-import/sys/net80211/ieee80211_ht.c projects/clang400-import/sys/net80211/ieee80211_ht.h projects/clang400-import/sys/net80211/ieee80211_input.c projects/clang400-import/sys/net80211/ieee80211_node.c projects/clang400-import/sys/net80211/ieee80211_output.c projects/clang400-import/sys/net80211/ieee80211_scan_sta.c projects/clang400-import/sys/net80211/ieee80211_sta.c projects/clang400-import/sys/net80211/ieee80211_var.h projects/clang400-import/sys/netinet/raw_ip.c projects/clang400-import/sys/netinet/sctp_syscalls.c projects/clang400-import/sys/netinet/tcp_var.h projects/clang400-import/sys/sparc64/sparc64/mem.c projects/clang400-import/sys/sys/file.h projects/clang400-import/sys/sys/param.h projects/clang400-import/sys/sys/tty.h projects/clang400-import/sys/sys/ttyqueue.h projects/clang400-import/sys/vm/vnode_pager.c projects/clang400-import/sys/x86/x86/mca.c projects/clang400-import/tests/sys/file/ftruncate_test.c projects/clang400-import/tests/sys/kern/execve/execve_helper.c projects/clang400-import/tests/sys/mac/bsdextended/ugidfw_test.c projects/clang400-import/tests/sys/vfs/Makefile projects/clang400-import/tests/sys/vfs/lookup_cap_dotdot.c projects/clang400-import/tests/sys/vm/mmap_test.c projects/clang400-import/usr.bin/fortune/fortune/fortune.6 projects/clang400-import/usr.bin/rpcgen/rpc_cout.c projects/clang400-import/usr.bin/rpcgen/rpc_svcout.c projects/clang400-import/usr.sbin/ctld/ctld.c projects/clang400-import/usr.sbin/ctld/ctld.h projects/clang400-import/usr.sbin/ctld/login.c projects/clang400-import/usr.sbin/fstyp/Makefile projects/clang400-import/usr.sbin/fstyp/fstyp.8 projects/clang400-import/usr.sbin/fstyp/fstyp.c projects/clang400-import/usr.sbin/fstyp/fstyp.h projects/clang400-import/usr.sbin/fstyp/tests/Makefile projects/clang400-import/usr.sbin/fstyp/tests/fstyp_test.sh projects/clang400-import/usr.sbin/inetd/Makefile projects/clang400-import/usr.sbin/inetd/inetd.c projects/clang400-import/usr.sbin/iscsid/iscsid.c projects/clang400-import/usr.sbin/iscsid/iscsid.h projects/clang400-import/usr.sbin/iscsid/login.c projects/clang400-import/usr.sbin/pciconf/pciconf.c projects/clang400-import/usr.sbin/route6d/route6d.c Directory Properties: projects/clang400-import/ (props changed) projects/clang400-import/contrib/elftoolchain/ (props changed) projects/clang400-import/contrib/netbsd-tests/ (props changed) projects/clang400-import/sys/contrib/ipfilter/ (props changed) Modified: projects/clang400-import/UPDATING ============================================================================== --- projects/clang400-import/UPDATING Sat Jan 14 22:17:12 2017 (r312200) +++ projects/clang400-import/UPDATING Sat Jan 14 22:20:12 2017 (r312201) @@ -56,6 +56,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. +20170112: + The EM_MULTIQUEUE kernel configuration option is deprecated now that + the em(4) driver conforms to iflib specifications. + 20170109: The igb(4), em(4) and lem(4) ethernet drivers are now implemented via IFLIB. If you have a custom kernel configuration that excludes em(4) Modified: projects/clang400-import/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c ============================================================================== --- projects/clang400-import/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c Sat Jan 14 22:17:12 2017 (r312200) +++ projects/clang400-import/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c Sat Jan 14 22:20:12 2017 (r312201) @@ -501,6 +501,120 @@ elftc_reloc_type_str(unsigned int mach, case 116: return "R_PPC_EMB_RELSDA"; } break; + case EM_PPC64: + switch(type) { + case 0: return "R_PPC64_NONE"; + case 1: return "R_PPC64_ADDR32"; + case 2: return "R_PPC64_ADDR24"; + case 3: return "R_PPC64_ADDR16"; + case 4: return "R_PPC64_ADDR16_LO"; + case 5: return "R_PPC64_ADDR16_HI"; + case 6: return "R_PPC64_ADDR16_HA"; + case 7: return "R_PPC64_ADDR14"; + case 8: return "R_PPC64_ADDR14_BRTAKEN"; + case 9: return "R_PPC64_ADDR14_BRNTAKEN"; + case 10: return "R_PPC64_REL24"; + case 11: return "R_PPC64_REL14"; + case 12: return "R_PPC64_REL14_BRTAKEN"; + case 13: return "R_PPC64_REL14_BRNTAKEN"; + case 14: return "R_PPC64_GOT16"; + case 15: return "R_PPC64_GOT16_LO"; + case 16: return "R_PPC64_GOT16_HI"; + case 17: return "R_PPC64_GOT16_HA"; + case 19: return "R_PPC64_COPY"; + case 20: return "R_PPC64_GLOB_DAT"; + case 21: return "R_PPC64_JMP_SLOT"; + case 22: return "R_PPC64_RELATIVE"; + case 24: return "R_PPC64_UADDR32"; + case 25: return "R_PPC64_UADDR16"; + case 26: return "R_PPC64_REL32"; + case 27: return "R_PPC64_PLT32"; + case 28: return "R_PPC64_PLTREL32"; + case 29: return "R_PPC64_PLT16_LO"; + case 30: return "R_PPC64_PLT16_HI"; + case 31: return "R_PPC64_PLT16_HA"; + case 33: return "R_PPC64_SECTOFF"; + case 34: return "R_PPC64_SECTOFF_LO"; + case 35: return "R_PPC64_SECTOFF_HI"; + case 36: return "R_PPC64_SECTOFF_HA"; + case 37: return "R_PPC64_ADDR30"; + case 38: return "R_PPC64_ADDR64"; + case 39: return "R_PPC64_ADDR16_HIGHER"; + case 40: return "R_PPC64_ADDR16_HIGHERA"; + case 41: return "R_PPC64_ADDR16_HIGHEST"; + case 42: return "R_PPC64_ADDR16_HIGHESTA"; + case 43: return "R_PPC64_UADDR64"; + case 44: return "R_PPC64_REL64"; + case 45: return "R_PPC64_PLT64"; + case 46: return "R_PPC64_PLTREL64"; + case 47: return "R_PPC64_TOC16"; + case 48: return "R_PPC64_TOC16_LO"; + case 49: return "R_PPC64_TOC16_HI"; + case 50: return "R_PPC64_TOC16_HA"; + case 51: return "R_PPC64_TOC"; + case 52: return "R_PPC64_PLTGOT16"; + case 53: return "R_PPC64_PLTGOT16_LO"; + case 54: return "R_PPC64_PLTGOT16_HI"; + case 55: return "R_PPC64_PLTGOT16_HA"; + case 56: return "R_PPC64_ADDR16_DS"; + case 57: return "R_PPC64_ADDR16_LO_DS"; + case 58: return "R_PPC64_GOT16_DS"; + case 59: return "R_PPC64_GOT16_LO_DS"; + case 60: return "R_PPC64_PLT16_LO_DS"; + case 61: return "R_PPC64_SECTOFF_DS"; + case 62: return "R_PPC64_SECTOFF_LO_DS"; + case 63: return "R_PPC64_TOC16_DS"; + case 64: return "R_PPC64_TOC16_LO_DS"; + case 65: return "R_PPC64_PLTGOT16_DS"; + case 66: return "R_PPC64_PLTGOT16_LO_DS"; + case 67: return "R_PPC64_TLS"; + case 68: return "R_PPC64_DTPMOD64"; + case 69: return "R_PPC64_TPREL16"; + case 70: return "R_PPC64_TPREL16_LO"; + case 71: return "R_PPC64_TPREL16_HI"; + case 72: return "R_PPC64_TPREL16_HA"; + case 73: return "R_PPC64_TPREL64"; + case 74: return "R_PPC64_DTPREL16"; + case 75: return "R_PPC64_DTPREL16_LO"; + case 76: return "R_PPC64_DTPREL16_HI"; + case 77: return "R_PPC64_DTPREL16_HA"; + case 78: return "R_PPC64_DTPREL64"; + case 79: return "R_PPC64_GOT_TLSGD16"; + case 80: return "R_PPC64_GOT_TLSGD16_LO"; + case 81: return "R_PPC64_GOT_TLSGD16_HI"; + case 82: return "R_PPC64_GOT_TLSGD16_HA"; + case 83: return "R_PPC64_GOT_TLSLD16"; + case 84: return "R_PPC64_GOT_TLSLD16_LO"; + case 85: return "R_PPC64_GOT_TLSLD16_HI"; + case 86: return "R_PPC64_GOT_TLSLD16_HA"; + case 87: return "R_PPC64_GOT_TPREL16_DS"; + case 88: return "R_PPC64_GOT_TPREL16_LO_DS"; + case 89: return "R_PPC64_GOT_TPREL16_HI"; + case 90: return "R_PPC64_GOT_TPREL16_HA"; + case 91: return "R_PPC64_GOT_DTPREL16_DS"; + case 92: return "R_PPC64_GOT_DTPREL16_LO_DS"; + case 93: return "R_PPC64_GOT_DTPREL16_HI"; + case 94: return "R_PPC64_GOT_DTPREL16_HA"; + case 95: return "R_PPC64_TPREL16_DS"; + case 96: return "R_PPC64_TPREL16_LO_DS"; + case 97: return "R_PPC64_TPREL16_HIGHER"; + case 98: return "R_PPC64_TPREL16_HIGHERA"; + case 99: return "R_PPC64_TPREL16_HIGHEST"; + case 100: return "R_PPC64_TPREL16_HIGHESTA"; + case 101: return "R_PPC64_DTPREL16_DS"; + case 102: return "R_PPC64_DTPREL16_LO_DS"; + case 103: return "R_PPC64_DTPREL16_HIGHER"; + case 104: return "R_PPC64_DTPREL16_HIGHERA"; + case 105: return "R_PPC64_DTPREL16_HIGHEST"; + case 106: return "R_PPC64_DTPREL16_HIGHESTA"; + case 107: return "R_PPC64_TLSGD"; + case 108: return "R_PPC64_TLSLD"; + case 249: return "R_PPC64_REL16"; + case 250: return "R_PPC64_REL16_LO"; + case 251: return "R_PPC64_REL16_HI"; + case 252: return "R_PPC64_REL16_HA"; + } + break; case EM_RISCV: switch(type) { case 0: return "R_RISCV_NONE"; @@ -550,6 +664,37 @@ elftc_reloc_type_str(unsigned int mach, case 48: return "R_RISCV_GPREL_S"; } break; + case EM_S390: + switch (type) { + case 0: return "R_390_NONE"; + case 1: return "R_390_8"; + case 2: return "R_390_12"; + case 3: return "R_390_16"; + case 4: return "R_390_32"; + case 5: return "R_390_PC32"; + case 6: return "R_390_GOT12"; + case 7: return "R_390_GOT32"; + case 8: return "R_390_PLT32"; + case 9: return "R_390_COPY"; + case 10: return "R_390_GLOB_DAT"; + case 11: return "R_390_JMP_SLOT"; + case 12: return "R_390_RELATIVE"; + case 13: return "R_390_GOTOFF"; + case 14: return "R_390_GOTPC"; + case 15: return "R_390_GOT16"; + case 16: return "R_390_PC16"; + case 17: return "R_390_PC16DBL"; + case 18: return "R_390_PLT16DBL"; + case 19: return "R_390_PC32DBL"; + case 20: return "R_390_PLT32DBL"; + case 21: return "R_390_GOTPCDBL"; + case 22: return "R_390_64"; + case 23: return "R_390_PC64"; + case 24: return "R_390_GOT64"; + case 25: return "R_390_PLT64"; + case 26: return "R_390_GOTENT"; + } + break; case EM_SPARC: case EM_SPARCV9: switch(type) { Modified: projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh ============================================================================== --- projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh Sat Jan 14 22:17:12 2017 (r312200) +++ projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_libcrypto.sh Sat Jan 14 22:20:12 2017 (r312201) @@ -1,4 +1,4 @@ -# $NetBSD: t_libcrypto.sh,v 1.3 2010/11/08 19:06:12 pooka Exp $ +# $NetBSD: t_libcrypto.sh,v 1.4 2016/10/13 09:25:37 martin Exp $ # # Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc. # All rights reserved. @@ -49,7 +49,7 @@ atf_test_case bn bn_head() { atf_set "descr" "Checks BIGNUM library" - atf_set "timeout" "300" + atf_set "timeout" "360" } bn_body() { Modified: projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh ============================================================================== --- projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh Sat Jan 14 22:17:12 2017 (r312200) +++ projects/clang400-import/contrib/netbsd-tests/crypto/libcrypto/t_pubkey.sh Sat Jan 14 22:20:12 2017 (r312201) @@ -1,4 +1,4 @@ -# $NetBSD: t_pubkey.sh,v 1.3 2011/06/09 05:25:21 spz Exp $ +# $NetBSD: t_pubkey.sh,v 1.4 2016/10/13 09:25:37 martin Exp $ # # Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc. # All rights reserved. @@ -49,7 +49,7 @@ atf_test_case rsa rsa_head() { atf_set "descr" "Checks RSA" - atf_set "timeout" "300" + atf_set "timeout" "420" } rsa_body() { @@ -60,7 +60,7 @@ atf_test_case ec ec_head() { atf_set "descr" "Checks EC cipher" - atf_set "timeout" "300" + atf_set "timeout" "480" } ec_body() { @@ -81,7 +81,7 @@ atf_test_case ecdsa ecdsa_head() { atf_set "descr" "Checks ECDSA algorithm" - atf_set "timeout" "300" + atf_set "timeout" "480" } ecdsa_body() { Modified: projects/clang400-import/contrib/netbsd-tests/dev/audio/h_pad.c ============================================================================== --- projects/clang400-import/contrib/netbsd-tests/dev/audio/h_pad.c Sat Jan 14 22:17:12 2017 (r312200) +++ projects/clang400-import/contrib/netbsd-tests/dev/audio/h_pad.c Sat Jan 14 22:20:12 2017 (r312201) @@ -1,4 +1,4 @@ -/* $NetBSD: h_pad.c,v 1.1 2010/08/04 13:15:15 pooka Exp $ */ +/* $NetBSD: h_pad.c,v 1.2 2016/10/15 07:08:06 nat Exp $ */ /* * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -56,14 +56,14 @@ main(int argc, char *argv[]) ssize_t n; rump_init(); - audiofd = rump_sys_open("/dev/audio0", O_RDWR); - if (audiofd == -1) - err(1, "open audio"); - padfd = rump_sys_open("/dev/pad0", O_RDONLY); if (padfd == -1) err(1, "open pad"); + audiofd = rump_sys_open("/dev/audio0", O_RDWR); + if (audiofd == -1) + err(1, "open audio"); + if ((n = rump_sys_write(audiofd, musa, sizeof(musa))) != sizeof(musa)) err(1, "write"); Modified: projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue ============================================================================== --- projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue Sat Jan 14 22:17:12 2017 (r312200) +++ projects/clang400-import/contrib/netbsd-tests/dev/audio/t_pad_output.bz2.uue Sat Jan 14 22:20:12 2017 (r312201) @@ -1,1035 +1,1040 @@ begin 644 t_pad_output.bz2 -M0EIH.3%!629369%IQ#X`MT#FU'+1O7<;MT;NYNNYW<[N[OO;K>W7+>^Y[M;[LV]??=M] -MYZ[MMMO>WO;6=W.KIOKNUF:EFEJVK5I"+:J;8:B5K1JJIJVUJV,K6IK5MJJ6 -M--%5FJLS55K158M5K:U5FU4RVMJ(K0BK-6Q0-L+6JVLJ6MK559M5556*M54J -MJMIMFS-"U6LJRUBRJJRV;55::M6U[G=0JI5-4W66J=KVZ]LNW=]W=FW=S;YM -MDO<]LW>Z[WW%E@WUOD-[G!SN<'=W$CD8@[KN<36:PVO=W;*I*E%4SC -MV]XE)5!54*"@*JJMH)J0H*`4&V4`!11(``!4BJI27O>Z(]5()`22)**%4``I -M0`!*B5`D(DB*5@:5``AH`"8F3"8`F0#3(Q,FF@#1H&(&C)H-#3330!ID,C`C -M!-,F)IIA`TQ-,!,33$831@@R9&$T`!,`@TD@FC$``````&@```:-`3`F$P0T -M,$!@`$``#03T!H-`U,`33$TTQJ-,$P$P%/$R8",!-02FDI"!$QJ>S,`0`$!H -M:!#":$Q-,28$V@0-`34]$:;*:>D]1I[0H'HGDRC:AD&@]0&@/4`]0R`R,AH- -M!H`VHS2`:`(4E)*)&R>J-^GBGL!2,:::2;48GI$IO%)Y)Y)[3TE/U1^FFC*C -MQ&H>IZC$T,AIZAZF31H>4``'J!DTTT---```#U```-`9#0T``T!(I((28-)B -M>A3TTF>14]3VT&IJ>R,@F$TQ'DT3&@FU3\4GFDT>J>333&IBFTPF$T]$-,32 -MGM-4]IDTR)ZI^1I3V332;(93-4_5/R>D#":GDU-D:FIZ>IM3U-HTH)-25)%1 -MM3:3]L/-2$FWD4S4U-B:::FB;4V3"4_4R4>H>U0;4]JGJ&33T]4T`#(T-&0] -M0!HT-`_5`!Z@T````9!IH:```````_Q$/Z:,D&8X$&L.'B.D00+!M12TQ2"> -MGH4)$$U776'(,NA5T"`@H&+#%`;<'^;2<4$`CK#I>?6\SY]KTOQX,LDD%=#] -M=K=W[.S5.*PD:9EE+#8V,8RRL@"_3]+%\'Y\OE<[XY25)9,&QL(&#!(B3@T. -MCTYNF5=LVA0D0'QD+"T]J]AX/R0)P"P$\13QX$Q,/GR(O5_U5.R7J.DE`0K( -MEC0PL$_ONQ0)A@@60_";^_OE&;Q_:\_3BPGL8?\=O:KUNG!-MF0A03X9PPMX -MF'WE;&SK)O(N2J"`80_J9Y6*=6(?DZ7*_=I%;(JB,Q$/X5S@P$*M6IZ6$>F. -M&L;Y&C($S\KC'O`Q#')%M:;\FTP-4ET5[;UV7JU<$0D7*H[&KC\]MFO+$`\& -MK%L^,?8,8N-=10VF1`%ZT<0V#-6C#OCSQ<+:D1!\*'M+14@>!P\/!T&+LDA` -MM>S!`Y))"PU-A7RRF1#XLD2TAAXFXPES0HB!="\G,MI5;+<6\:#8!?:^9F[% -ME',L8MFO;T)7.GR!;_`/D0:1+;UF7Y[3=J&V"``O/U.NE!"#*9$.X86#N,8I -M`#2>Y2VR.+WM3?[`$7UIE`R.12-/ADE3=;A$1!:]O_:**7`0NS1[]JFWB&;, -M9H]?3J1$29(D`##!T*ZI]K?Y2?W`!+<"-:V[)FM&)64CY`27=R&1(43Q0:.3 -M57.RL\G5'0B!%DUBC6R2:/8GH36'00V/_3FF$$BHG7;+O%I3X!8&S2LK'/>1 -M8OS=Z#;4Y$43X>>W=G@!;JCZJXZ+CG@"_SV[O7ZI=P8DJ:+_5D',I4)`;G=/ -M'LMX@K6`@UZ4;>CQD0!>G1L^>LPH@:>W<=.CS^7@)?+I``+POTESZ]3/ZA2! -M75?3@*BYG9V,AZN4Q4&IJ@(<=6[N*2:B4T)ITB]VC:@%[*8[4SK5EZR_]5WDD@B*BP]Z -MM&`(P"9NX?<(%_4:IX/(`!5M=`Y*J0ALV/=9UEH,?/)])PN4S.3Q*JX(OE@. -M2:Z?"+C-^RQK#(AH^YZF'"(N4H(.K.`QOV&@=HI"`,-P0@1,W5)#ZE916Z/V -MDMCV8^`4YS\-7R*L!D&Y@OT/@[O\HB+8?+K:EP*>6KQIHI#9&]*\I@AOG`B[ -ME!(1^\3.":TV[8($^"X\PV,D"7'@5IA -M_&HS5?4^K5(@17-'D>"%FJ8^%HE-%-GP07=Y"M@$+JL?O=<_H_;+X"$$)/+$ -M(#&Y%>VSVDIS6@!!PH[W&3U(!SXV;RV<\".VZ\"A!%NDZM&LY*JMTR0+GH5% -M-UD0(OWQ1PM=G=;!V2D>(AEP2@)MH6&EBU77QS:R7B0`5P)?N)=]4'"%!``L -M6>;IEY>3]?^J#F8Y((@VJ'9(3=(Y;EL/U*W3_M""&*6LOPA)`2G2\;XHZ?,1 -MN@9?--I!`7BU)`)6&?V2\RV=GPPO_+AI`13_]&!9NI8WF&D8=EAD>=1@A]-M -M2*,@.#^UP_^]`1,'Y@7\>&O=GPWW86]K`46*"9"107H9R&2FIS4QC(C9?S9E -M0`/+,`K\G03>F3F0D&K]O^I"WC##9]90$6;P/K*\,L":#V^TRY\OGS?!Z.>D -M($R4A>S*K^+BN!7^#D(`!):^.YO0(#Y_7L:3*O#7:[G5>S#2DD#:[ZDW8'GX -M2)284[['@*/]+TCLR$C2\R=8*W5,5CI?!P%6`2B(:+04!>;6K6S6]](_;T]*B(`QH.-:D+F0Y(DOX[O8A^D&ZOMFWV'@4'P8^/`G6' -M4MT7D&'K95`"'TM;8HC'LCRM8)T%MM8^D+N/=;2(V#3NCX`4ISMR_2ZY!(<< -MODMH/*.`-_8\FLT9T`6L6N;B -ML+\].#\V8R;3BE920@#2V1+PA(E.R3ONAYKUN//A^GSGB+*OAX\D`:G4 -M:N6A>'`4Q\%%^V;+*\"K@=4D2`OFKMZ-$0*_[`*>S-)N7WOTB9UK:P8!A_-* -M!#IK6Q(LWF_4F>(UJO>>(9:Z7`0D,+EMF0/N3>?#*1()V)O8Z86&8^!<^ZRS=X!-^V>ZVP;`ZT!\%Z,_M4O]>(!*Q -M%78V.MY[N[_RBAL(JLA?)W_"-+S/ZED0 -M;/3I;2@T6N\'?(;S])2EU,C6-+$@`&SZ+)688"[5QVM98;-GB%YN\`AY&9IE -MW6!=**T2J@+$5]."ANQ]8K\>S;J0'=Q541?&&5H]>H.:O/8H/BC(H+5TL-!% -MC&+N0$H<`3/0LN='R;P@R<.!'<-C*;7FPP#W3-Z"8=_X,P_=A -MXHKO&(2"G=D,QU$C((T6%6GP&!#S"XF5-4V6YAT`'5EB!2_H5R+\+"TB'N$` -M+T%X4&3]-]G#I0>*@2%GIH7 -MSW9O]0D`OIGB+^\1)&P36=Y]RD/%JD1%"5@`[_O_LUM7*JV1\K6;+I3/![/Q -M.#`S2;N_U[:(B>+8XRN,SF.'J%WW8:0"&DUMP7D:"XONX&O-1"LFTT^RG -MR+S^5?!8/;3Y9K[##DDM+1(B+E*B/MD%:Y4H%W4-P>!,]+^'3!:;H\PZRRFC -M,*N]1$`Y3OHLIC/@I?18G7MEW5J04*WZE9NVEJCX]O3A@!"*.^XTQR#K_H+B -MK`_GST-]:GHOXGP6;!7_\>WC/V4[-<>[Y"(A'>SUX`+BNS=W40.$/SF;@#%7 -M/G9ZN`.E)(9E.O"`OX'_/=0TANWS\@%ZGZ"Q`@[-KB[#G4C"?(+B9O2!?3V? -MU(RWC7&#H]VG6T@"3_+P0#-+4"/+:-K195`'/]=0!>5EY/E\%"0EO%WYN;I\ -M,!92L^L[-@(=H^*F`-%2+>M'^T?2W -M'C:U,6=Z7MD- -M!S,3Y&RP>BX!RT^M!(O4_R)^"A]\?+TU4;M'@"5;;:ZIS@]DEP@`GW#)=.K] -MO\7W&3'^J?:TH`>FSXA%M?%/2O67]%.K"6EKOD22)U:K(B^/TNND%OAGR,>$A17>EHS;U89'SEZ,TK*[C@G2H>W_/QJP2&S5GGO -MJE2]X=O]U=K22`\/)G.A*\;1D5Y8TB9-1"S]]V@!)?#_OC6ZNP(-L@?M71N) -MF5SY`+]]\X//8((6RI`6'=Q>`,79HH,_*7BDQ5B$ -MF#C;\$,9E\_=O%KQ8180+*XJ:0$1[TM:]]/]?3>UY$I,\SDOR,#I1E=JFS"! -M)D6KO$6H8D4OU,[!)!$>B\C[>U3$!Z^KJW(<\.5K:U&!G41!!%$5_Y/6QC+5MNVCN4"&]Z]DJO`(9_'6]7?*ZF8/$&+R1H`D$,1>.+._G@W*)DDB;]VG`*5YF7 -MWD]IU[X\&5T,-")):A_]LR"]=;MJN5!LX6;D=]@@KQ`@^-G`>;-=H$6+3?0; -MYG3YLP?<=K)H?)5`"JW_5R6!`Q9OZ8Z#_17/+4<,$0*_:]M -M['1B(#.(QC+-;7CH'N\LREOH(>W0-/OY\=&_S[F9)"7_77XA@06;X>OJ&IOK -M]_"/D$]\6"(#S']/.AK:OAKS"CC7-%WN:`*S+_$Q\,^Z5>:9-EA;.ZD`(GSF -MIQ:L*`\3U-]F](KQ2F<&;.+!Y/Y?&`$JI5%RF94'0/-]9,`:CO;'C<7'S6Y/ -MC(IK?C@3Z*)/UJ'6-^%6!`"074SY(^7^GX$0[^K\-)/;:';#_=4R9TB+O0^G -M[]]7D3#&W$Q$WJ'_>WZV-KK`!WGEP^O)3UHKSY6'>%*ZJN$_$'M>40"Y'4TKT[6!UHFC)`&?/)6ALNE4_=YKB+#=*OU0?%/4DSB6RY5I(*1T -MBS_(D<8`16E0,O"KK9W:_/'P9`7LW2]VZ=L6P&CX1W4GLP1+"_P[R>#N[U"/ -M6WJ(6I\K#MUC,*=$& -M1:KI+^\1_-\P/5`$`\H[779:X^25NX"RC<8`-!NW(+E)7#8<-$0NNC.=8%;Y -M""W5''H1A\USP=7IXRZHLP`5SU[KII-+72^YR&2"Z82`/&[YW!C^'UK5S(MO -MW&B.-PG"G%8BH=8XL2#/=7#/E$X>/AR(5Z^AT]%#>CG.$(E5&]2?[<@D>*0/ -MLZ<&PTK&10ST<\S7A0!X<3B>_3^EJE_\RHP"TFVYCEX^77UK9&C9T20A*]99 -M7K6E``:<-TKEE8"N>WK92J@43N+VH+CGZ#],-YHU(37CX]<0)-RJOCFS%/>< -MAQN%3[ZBT6R(:O24[5N6@(0PW=6K8XBYT._;F*0;7N`AGO:TU&>^N%)?1CJ+ -MGA$!F/HR`O_,-OQ]:S+*EE+7F; -M)8:Y8$Z23!0[=.AU<55;Y+G00EZ:%X+;4.QH1$7K^V(=S>;QJF5!%*(66:M6 -M[]<2>?+NA5:@B'.L/3K#D=IF8CCD"I:=]2]C(V:VB`Z -MOS\_5M\P`2K/>9)C:#G,^D1A32(@7>9.&JW(0D0'@NOJ*)ZVW.3&/)46P09QKXZA5D`53`!D=\)LX*R1 -M!$VM(PTC]$J02F,8P,".;C\K*?9X_7%;MH6>P6<2HYV8U=JFL3)L0P;&-M=6 -MQ"QWM=K46:O@8B=]_\<9C+E\'NRM?3;$*AU\"9&FVFFQH!@"],<7:RQP[:(X -M(.&1#:N&(>`2H-SY3E0:Q```RU<;/1R="%-3!('Y%^`@'U3/^:?U'4DDD^2K -M_QSJ>F@<3(!_5_39XX%+[S0)3Q!$2G$(CR,W5,0ALWVR5@^PNW\Z?G(" -M`E5V)'F?/MYL@H'05?I>U/0;5$JNX(9@PLAMWF/]5Y=G2)KZA/W]\6KGP7TW -M=W;`93G$(W[@47APG.]9PXDV619K+/GQ=Y"H#*8MA2K<.U0:]J -M:[P_S0(`0S@3L$R/6W=-GT;+A'"+='OL8`Z36_XSN)T+M;(@*I\0Q$P[W.QU -M75`U^S3T[*WDD"J.S-BXH)4"-NVA`QPE7A^H`7^G#K^Y#]GW?Z@6;MLN!LH;Y8V[TBAUSY!77`-3DZ).?CA%NN(3U]N[8L)PO7=2[[? -MK?+IP4G)+./7E[L39T%%XY?YT$-0U[8TLY4Z3UDGQ6P.(=`BEAE9/#\#15F/ -M`>_ME9OM"".@E3DR84IGAU)L@Y9W1:M_[OX_)?[G)6:Y=`;!--*(GTMVGOC@ -M"M.:85V$\*TYC78\0T]2+KO*6=_-F75H3!"RI[5E%MF-L:((=8,M2&70#ZW- -M$O9J/0@H[BV!#T_DCO-3-M>J1$32[58X'"UIXHV&4I<18I##UHY6XXEJN&P/ -M[+_)I,DH:BVYVQQZ_O,X=!-]/8)XA,][37V[KG"[%TA.S(Y(\1:.1<'+8>P! -MTC2B]U(SYL#9%1^*\-#T-R]I/8`]M.T2RK3'>,$!HM`\3#=>9@\`-?GY`S\] -M'^7GF;T%I/11:4V6BU8@[1!]C9"PV\A^?P9`WL8!?79D"YCUK:`64G<=<^![ -MM#C.5F/_>8BBW!5>]G?,QPK`MOE8>+$X\S@'%B3EB66;K,\3Q-+A\#K:&\@;TVTVP'I=^: -MY=HX3U'3"E-E/-<7;]7*'2RO(T-)_@5+]/#*EW,7;/R1#'2:/\X@06H4X2+? -M`);^=S>ZPX(A-FAP#!KYMMM\W+;4D_I/>>`'+KI;G\$G;W7IKB3!)@6L?=9B -M8*,D]4:LO-(+-(:$GC_"'/22E/38XZ!EYB]IL#7&,F0SV+_9H#_L$NH_NN$; -M`YY;>`WRW)2(R_EGS0Y>4R/2%0UT!H>XOSJ#,5UEL#1:S819LJ2Y9YXR$;:* -M+2R9H5&H;4'TW\@&]O?C08ZIYG"M.?O$WF_L;$_+KZ/I@,;.8VO8-DAQLE_@ -M*F+&8>S(8K^[BR.2[.:J/%0B[B^IOZ/H"=7ELT(5Z3P-M%;0Y0'"PW0%B^-L -M^CHCB]9>CRF/0VMBJ084\S(]"?`EVGY&D]WJF)<7_849]9\T%NQU1^_WH&,_ -M5^:^K6L2FR(J\PH/W*3)P.C^9',6$)OO0-%D1.;GY>Z%(/[H^5!\IJCTY>TVV!=^XZ] -M/D?;R_(6)'WW?`>S2].TI:(%$?*%L3XD%Z`_[1*CVU3[S"EBV,S3O&V(D7C? -MCX7#((A-/5OOM."4.=)P3%-$'!ZQ;SBG8+&8(;Y]WO/QB!8>_ -M1`09PN#_L;#77^>^Z%CSS_RF*D%4_LM6Y\0W(7R&+SJ10?Z[!0X^R(2VMM<7 -MZ#@QIZ_ML697.F[D/>_WWC^,Z;,J'`[$<)J(QAJ.R^W['JQ@*YSF!LV#'(0G -MINP0WMHSPE6@)+;2#N0I#RQP\XZOY8'[VWX$,"E;-W,?+W,3.!;[=@838['X -MN'5^;;`/^,,G%+:5H+V&^EX>L`)7RZ=4\T.LI[4M4,2"M_G>?%I`_EHW'7=U -M+'\NP(?YXV&)GD&EZ'@@71ZH48<^!BD^E^U2EAOE3@"A4:9C6">_N/?-+AH: -MV$R>6I6S($%7H_C2_"R$&>,CKU`#E3X^\=.6!@_1^I.?=:Q_$04>S+1J?7[P -MOT8K<\G7.YV1#T(@W_3_Y[^,B6: -MEF)6-335TB(-Y'S(@B&TWK?H@"KS3:49A_AC%$T#$SB3$_&C7A%PGX%@U%E# -MH3OAQ,#V+C%%TJMF6WRU[G>I.+H?NE^<7ZO7[4$JNYWJ7W[J"60W_3]NLWF+ -MRZ7*TDY,V)/9C`GOL=[=+.]8$$0`E5TIH!H:),G*`Y\F'SZ6&"/IHYD84M7- -MB@SK9"-\W8^A%&3A-3T0L_8UBV6.(/_'+6Y_4<_W0:X/95G9K[]6,VW;)RW[BL&"4QI*+FQIL3-;]0MTG,P&5];4I-/<#MZ[$G6F\QXH3/S1?6PP?`?+Q$ -M]R*YE='TQ>X[,Z+H34N>&#L0FK==ON$!U>%8>&^_LQ7N:&03DMT_&/"P/5EL4ZUQPD"B_ -M&<%C2OQET?ZHSC`WFH*3S?D6R3B,6V'?[-W>B$Q@W>M,_N;\<`M2)=NG;C07 -M>9]X%OU`=]09"9P(UX,A^TM<,V7&O82A?MG/#`EKFD#9CS(HRZ_O6S(@.2:6 -M92'[SCA]-D@A0XX!P&6[(P'*M+1[4=/><0R]>^8MH)B>5ZXD?R9(8"OG#+]/ -MXU#^`[.XMGMC-!X*,,;J-L\ZJ[9JT&"-'.[P5%`A]1L53J-Z8O^1B&F(?/F? -MEZ6-.7H;)E,M&+ISG+`U?ZT)VCVXY'G]3\C'Y&&]UV(.+R!'\3#[M"',]^NSG/W!-`R+(=B;KN?>=B0!7YM]TGPN?R]6>&E? -M2\]9^5R5!!-?`^QG\F?HCEEH)^F(2RF_6)I0OS;,8,&8'4?ISN> -M4>5)YWW/\][[2T/#PW\^+!DC(RF'_+C\3NG0WN\FGH(:C?6_:G#U_-QO`]/L -MS0O9V;_2/OARD3*]*Q#?(@?>WP$_1TUJX%51#[8U%HU5L747&5+ST6H,!2 -M$X;-DZ;MV/:X!CJ#M-XM6U]D;/`Z@0PP% -MF8::)8Q5B+;K[!7`EGD7FR+Y68,^N&P?O`G.GY'PAY'?!EACMOFL9%XRW$LB -M2'AGMOZ+&XPU;+URN9\?W'D-6+ZHR5Y\[7_/)CNNL@J\UM&A5Q%+NN]]&.=% -M$U4\8`_>`>'`,HH/SN[`*'XE]#\?44AD&_N:@Q(@E("%]S%59Y!(SB/1:].4 -MW5K]Z+_CFN-\O"ZRF5<<61,*,QBBQXIKL0[ZB\?,S(&W)JZN4#'B-$WN"P)EZU%:7!\\_ -MG(CG+4Z09+L97)['"&1WNL:^#0DW7G*"RRF!3,OP,:)>2;LNA)RV"3ZU,^R* -M4.IG6(!CK#(+B8.'T2_W^NROX2A*1LH=*[VT&VU\\HRN/SG/#=KGH['/O<.# -M:MD,GO^/']`S!X]Q"]Y&MNP8FX^)U,5ME6[+T>)FM#Q2_S3_%VXB)5LUEX -M>+7;'D@[U-(:=6'&SD-&)[Z=DZAX<8/0;,9:/#^/J'9@J"U5#Z%&CSR(T0)V -MS.Y84,1>/W<3VO2T.].F:1;VG!XQH@Z)_,\(KV&\\PX%;;=Y/2.8S_ZS4_/=LX2 -MVN:NW,>H7RAPLCFW?KW"Q0#G0^A/!= -MP<([\FPL?J-D>"ZJB[,K_26\6@VQVD7L_`CR2IQ76S4JX\.6S6#&)2VE,7G+ -M3%:>?-AUK$ZV[*N&],3ZW.J+FV#:*#KV,^YD]6>2I*C$JJL2\7L&MZ:5Y\?> -MFZC=+!FI!PQTM68V@V7$888RN<*)`:TP=[R\]U$&_C;4F:,-':'75;7BZ?)[ -M:->K&P^#J_ZP.M(R$//!/IKX:D:#WJ/O*#T_!J)VF3#.,JZ\9GIRTY"\23IL -M[7GQWV+W#DZXJ?S*:M^Z^94<4.IJO:%]CN=[Q=&N1;J5O3Q6`BS@%]",K!&? -M;D]5YWW9KDY8FPV5)@E1M^=X="Z=95@N+B?B8A2[V.&;T3V!F^:R\7J"K&^5 -M>B4GI=!W*.@Q0$I:WC\K%/[R=-92FE"N;C72E0_U$DRCA%.MAXU7G#%G=*5W -MI'''Q@<"!KUFH=&EX?'G-2+BX\H72GD2#6;J3 -M[M!IO)0^%X\.1R"A\;JB^=/["Q?9"(*5_A_;RO;D:8MIG2$S]>8SN=@NGQZ!RY9'U7`WG;M>";K1[:9B$VB\<#)XCYV; -M=D8C`ZWY0NRS5^#$]6^RGZ#%!X6[A\IPI9-IA:KV)FG'(/%)6F0^4=H#ORE_ -M*0>K[,L;Z_OVL8YXT+^_I!BDS)"A]8R=)C$#HPW9[!%AT8K$*`W/?%^($=7/ -M/-ZT&8!)T'',A*Z_B'#V'B]3DQ^DB%LP^Q@P=[K[VNN&\-&V'3QK#)OQF7R\ -MFB_T=B?K>K6-_0.T;6*KK4E4X#0C.>C4:EL'),%X?6]^.;BY*,:3(RVI;K0V -MI[FDQ7J;,?GN#^M[3F%'KBU\L#)1LG0X1[*W:)RE3#6CW,.?@//J)#2\"S.7 -M\V1XS`6JQ\L>$'K==I'+F\KS.N7_RHPC6R$*9!3;CI.^%Q=1UM%9F-Q?P-S> -M(&DQZ8'4\=.>PAJ9Y&'[81 -MBU!XS]NLQK6PEH;8R@A[%F-;+C15JNUH\4:WSVWW3D58ZQC'T*'*;JUU&XJ] -M#N=&QG:27'&21/0F)\3F"IFV').61IE7[!M*A;^'0B$[B$\*?;3:B4PT!,MM -MV]HA%3>-R?[A1Y@YT&.I$4SEF+:OI;\2-Z= -ML]CLQ!48G=#\+[HFA=8$Z`M'\!.(#Y[H%J!SPR$VV6OSF^<;N#%^;%&+/.9X -M<1/#3.YW.`TMZ^`)[L%G??@EE0P*+I1[JR1HX-+>6VK/.YF!JF1=*7EX2< -M&\7:DPEVSXTW??#PV/G7),\&,=;;=K]5#?].'AT6,RM<:`P/@U)IC%WH198Q -MC8S]Z`=Z<\:7=5](-56M?`RKAS^Z6_U>.S9=BA> -M)FZ)9&HQ^$]0W`M`C@`MH[9.[]RRC`@'1U3UI.T)PQ?1`T>:%K'RVC:S61OF -M96XXV.DU^PY,-S60)MG3"YC3OQ1/0^5!`.$YAEIHL@@R(=G'A:'QT<;8&&6B0)61_[4IJ!K'%5).TB*[WJ(['O&K_"$ -MP$-C#YE/FZP?AHLWGK#.ZO)7=WF;NSUC]+%,.U^W9IENONCJG0L,UFK*QS+I -M%S&LUI;]C3FAE2]T<$T!A,?%YRAGK\H[/*_Q)?;TJN)Q11Z^0ZXM@CO`,Q7B1->Q(S2S3NE6Q,$\^N-[]M -M1#Z^YM_X?!J&J"7*?,7LP:X$1;"MH6LVCJPR95[HKIT&G2N8VCU_J>[:,:=I -MJ#/6K>VTNSHABWO(Z7/Y-";,/35L^NXO69)D49Q#L]CE5QHC(,4+Q,T.9E6@ -M:5,#D!PM!]1[$]'\A\OH^![X>_)[X(P_1H3YA^>2:6T0BP#\<`OX=I&,1(?2 -ML7WQ4]NC\&D])_,[`,]4^F]_R_(,!I-!(`.QYJ5Y<\^:0[1&>5F:=3<86763 -M!N/,2PEV>JAC'AO9<=`8_-=]Z#%(C&5/W9CQ+BE0`- -M.9S0/H5)3M.4S:$9%/._OL]QH;?'^,3RS')<,<\?MF9[#C7.+@:5Z]ZEO,KR -ME&C4<'I%0M]O&,0GL[;V9P,XS?P2[@;&REA!(_8PSB01DFHU7")L([$DQ&<\`-5A(EH'/YZ& -M=,[$\]=\SCN#4*CN^;=T#K3V883?\TMN,R.2\4'>;]@ZS_72Y[?)_"W>'L7< -M6S9N9LKFPQX5>+Q[H."G=U6,'0O>D]RQTDUN/$"'[M9/W[T+`N8A!'?APTSB -MUX-PK>+,MGQ&37<+7?8)Z6O:AA4LBV5&3&998%K7DR'LO32L%#.]P:9?V-WN -M5F"FOXC?#\V_(()7\#XSU)[\7J,M%BE,%9#(/;5&H!5ML6(*M/+*UHXU]<#U(GFTE* -MIAIAV7%BBJF6EJ'QU#M"4C4X343C7D\K6(DS]"^KIX/PIJ;[N]&0_;AO"[MW -M1YGT_YZW*_/\5:_R -M@.?#1+X.-.[U4RU-((0^J_)?%17?S*GO@H5/`-LFI3L]0&&\"&M>> -MK3+DQ&F*>4+\=]-4F,H*JJJBEFR,^VJH-*J&VQ55U?=10H7!N*"'0$E,@8?D -M0<]8&>G6D=/Z?+9K_1DT?J-A(F!@1WXT)R4QD1AT^U7G946<)I]*P]2=QG[4 -M?J*3?,"%^*QR;#>]SV6%A?:S4VEMRJA.W1CV!+^`G?']ZBKBM1MXM7@4U,X7 -M^:-=#C%L<>8VH1\Y*&+2%M12J_`ALFD'S9_^S,=]FY3N?\74R_+_6+D#0K`- -MT996(1ZC!"&>_NE(M;>W#?"*WR<\F;P<:,$==RB8?65C6S-",BY")BF^G<*: -M^01=&:?=^"];C^^CO_V)=K"JHI^[6K87'QF7-<+]9E -MCXU-JIP89K=QN6ZV+HZJ_%\\^ZQ7M^RFI@CRYG!])\`F+C>`TK]HQSK*WYW_ -M>S(4V@?L.P5IF"2+BJF^D/-8"SE.1BXW,+[-XL."9%:OKI%"RDF>VR>>GEH; -MJ-?AXUC\+B)TS7N7IZ#^P-1^*8PYL\([&0QD6L0FR7W80IY-&(ZM/`O,#(,4 -M6$\C/6FHI[\5ZAU=1J\#V.K?;26[DZ>H3IZAJEA3*FI@(S%>X"@T/W6W\/55 -M`'U`*B3[R1_OYH+QC?'/MQM2M -MQ]E>Y&()C1, -M\JZ-O^KYF1&Y,L$N+Z-X3L\`PK+H\0ZT.LH>'D]K/._PL&MQ<:^N;K`\:%B# -MTD?I(+1L#TB/'3T_.P$4R3L[AY8GZWWZ50??!-3]]JQ`@BB;PX*,5L-A_:I(TIALLN=V?KPE63I3Z#68#WDT#*0 -M""I&=IDJE4$?6:_-4$-UWUDY -M*LR^RI'^7TO'-RPH'381J9M:5V>Z9<8O,$<U!QB!YP79`\>/!3-*Q(*#Z09/T@DE/A&J@HD#Z26L< -MOI9`2@,:;2Y+2P6<1@FE7QM7:*,N'"&"P:9@Y8N_>Y[!6`,1X6X5Z>`?TE3R -MY1ZJN(Y7N3UKJF)57>OWMAGD^E4O_?+VRJ+/(,4H!@;)1&PSZRR(6S4(/UPV -M;NN+-;=)77]FW -M85FS>;!F.S)_5")LW'2CW'RZ+IT="*+5:Z.N.'/D1=]'H;B2'AN<37AXKL+T*Z_9KOR7,/I=-+1_+?NCBO&6NVI^-ITR6QVBZC:97@K&2^6_JV -MF(2A@,"Q3<7%_SXJ]:P2%4H0:7CG#')";RDM,^?+9U3#21D':*7=*RJD5"M# -MDON*3<,;#HE^;A9%@<$+2BA7Q_=E_-IH9B+CM%)'22X<(N=-F[]F?L[WOYX^ -MO?%_!^NE$>+PX_@TQ)T?7#W1=_=&I%:&,*DV$-(EQ.[TY7,RU-I&A+".'68<*R6U[G4 -M:5"4/:5=4B@_RNQWM>EV[4%*:3QRUOC+JW@I=MUU#N,:Q'I/Q/FNY@-'+Q_8 -MR6*,8YE^C@U[.O5SL)H='FT^/@HDZ,USGWLF+\^GYGM-#M&W)Y/:@;7M)W/) -M\EH6.PR'"TEJ\TE>8J,\T6"*(0L`QD/,0Q@8XX1YB!HX""!C0XCK0TJ\ON9Y -M\5(R-SU;YR3\Q]Y$JLKBM(_QAL[!@JXPGA2V[E=JERN_#Q'E;N+I]?/:]@6% -MAA1K*L;7+:TJ/M^##4LS[3&8#C4S\$V'J/!ZMGJLQO%\LE/<^6:M2?+JHHA/ -M?6UBQM&TG,"'$F`@EJ)MH;$_K-Y9]34,[\_V#^#G9M7H$N;ZVK=M6JKM3YJO -M!K?P@3RYE3#I+LIJ?3:K9]?8+;UL&UG%32(SZRQ'VE7_&3LJO -M]_Q^4\@4UA'UVW>L;TP*ZNKJR\KZC3+J1_7%PT^@K>'[+8F1;+%/4TVS'*LPR@H4,,L,PQCU0 -M/[63`H)YB@X!.SR@X!/3S+F=\.DWUABBNIU7.WE`4%W[QV(N_'T>2R*0?+4Q -M7AB5@(3UN?\ND$VJ3-H[MZS.LJ_^_[P#2N+JU[UI>>.N%5@A&1?782V0H>K\ -M[?:VO.OZS7J>I.KO+/30Z83I#NT5"=,!G2T+(`J`&(Q`!`1\!Z3!,8)CB/GP -M>ERR"9^?CGUN?*E\M#JG.R/YK_^4Y6WWV[5I+[QQF6NE&L07E;V/:A-($MF3 -M9[U)?V,DI+">K(3JDLIZB;Z0;YC&2-\$D)54AWP[]5$12!1$8I#OC&3X0=^3UCUL4UC;:C\Y,UE'G^ -MKGAV>S_PO?Q#-AO2[I3XQ__(=FP6?24:T(+8Y8(?"E)E:J*2@E*6=HR<[Z]C -M@]B/I0EK2Q19]?G:7RMI;7WAKMKLMA/OU>)K<>WYZD26[Z5M"]ZLHGC[_'QA -MY7:SZEFD_7S'S/BHNK*)5\?HYVAT>?XGC^1T?'[?17R-3'[O%6R`^3"-A,1B -M<@[LR=,[IQ5(^<"AH0\X$D>>!\^M:)="><^[/J8.=0Z#OL[N-4'2UY7;2)_: -MXWALJV0D`I0N^IUIW;-EI104$;71QVZ.34/"R'/J]-R.!94"2UYVVQ:'*;-,?2HT"5(>+SNAT/%Y_/. -MAT?]W.^?^J1]UZM[%B/44&QH$D8PY^/$C$F!\9WZQ#2$,5$@;!G9:T9"'H39 -MKOQ&0F,`F0B#)GF6XS^?]^^^59,<^4OO!UJ+GN_??DI,1+/0$:84$A`C.(D1 -M])26$[,^I]H^]>UR>;S3FY:.:C<:>8.8YN8G-(C!!('(![D&665K,E#220ON -M20_(`]S,Q/<`Z.X=CHX6P?%YX#OPLAJZ;.JM\?K*C3FU3W90Z58.0*7O4S*Z -M155T:O9/+-$/7D:GH6,.,,=]\)BAB/$Q0$V)H`03H8Q,"$(3,W>!)44#WMY\ -MPS%\^N]-FR'8?,_6?XV?Q9];Y!YOK<>LX$LX,YI#3_JX_^6)E.0AADV+C"-QT$ -M%OWF[P_3;0AL^+S. -M=[:MM[;<\+(K+6K*+53L[0$DDF"TP)`-@!B1233`1DS(LTG!14X(:=(L:SD( -M?@UOHG!'#1X":+-3?:_.8/5R>NIH3FM`CZB0R)--34;-"M#8X'!P;VV:R*A>@297S%1F!T4'F^"[C#R7W67;^\U\' -M^[_&=_]I^A_Y_V]G\WYW,SL^'@^=X;_VY:*BAKEEV03E0E2G3.#4C"$0E>0, -M30/,:/;UH-49*'B6CQ2E4F20;0]DL[:VW>VK1R6_?W-S[#_/K?@^1G?1T/MS -M0S_QO4S]@RJK+GZ)G,UK-3,BS@EJRM*'882TFTE(@R`[,A,%10AT/2FJI"F?9,_R_V!^Z-#SNU;^#[K*^)]E(N7B_X\"\7AKI -M>82&+PD-:S**:$.T*I8A3M&[;"(UCBA$AMQX`-%K+87$T/4R=]RCY-9A8W-( -MV^C..RYZNN43Z_P9HFJ+V?9B/@.SCG)X\.08E!R62-2,+,%`'GS_*R<]J(99 -M5*A0+D(SQ9AXU/5]5/6/'W_F?+_*_TN?]OKD/Q>E9SXWKBYL'9@O(/UG[ -MWJZS:-JYH.%LR6[0K;F>]M"4>.@]H?'X]:-9B&EO'K0&#!-`'Q%/#!P:VQ;: -MU;!%NVXY;A;A`M'@J%U;]^^7;PK8@5ZZG -M"\$"XBXAQKS`D$$Y6IZ+9L$(`BI4\H>5HI/+W';YO;_5GZWU]SXGW3IM6BV. -MA+X7,+JEAM>S%,+T#>J\ZJ(6`&"(K)#8DET*5D*EJHN@)@S%6'@LB<=Q-CV< -M9O[_\C?^M_@]A_DD(;W^'EX/3+=NWAJZ:LEE#52R+F9JHB!D!F(1@,51DF89 -ML*4$"@6`YE.:"0H0,O7,O7];OGP^Q8AN]3\DG.665-)DER23*"":#"&F=W:6 -M9IG=,.S$%E)MQ'@B:@RUC@!P'4AA4+A/#.@PY,3.+'!G,A`X:)Z.W1_:R?6^ -M/A^B.\.YAZ6&S245550/%G+'Q&.O$\XYQ)XEU?'UB!H#Q892FQ!*HA:#25(9 -M994J;^4XS)JIQYZ.[I/-JU>;L>F&3\;\3?7YKKQ/+U![MXNW++%PMW&>Y`0D -M)!<&=!:@SS41IV+0#L`+%).I(,0FD>P2LLV.>71:6I^AJB_![$F:+J]7:CDC -MD(H1R00.!([C.,))),&Y&J:!W`[H##+%<-UE,IC[EFM0$VI+"P:DPIG1@^T^ -MJ\=R.WL7$;"'!Y%$.I"*1VDGA_`?SFLUFSPKM3T-FD*@H;(4RA(;,#9 -M84BR%2,8I#9BJ39V:H*ZLX=DV=7PML>]_*YO1[1MF_A-S?Q*)B"K,8.+02B& -M+`&&*2HPE28I!I#%PQ5%](ZVBX7T3W#7WT^O^G^57L:].E*HY]O/ESNWFC'GS(RH<1H38!0$U`:8$I@FD<&=F+A5A,@8K1,AV+1%0AP:`Z%,#S -M7Y^ILH2HZB]QP^'\CR^]DEEDRS#K*G>>>=W=)IB8.`L,+P%FS,%X)$02/!R$ -MWE,PDTS2J9H;%81BG6OS=[?HW_.ZVK_6_\^O^5N^'=N]E];=WGV%>O":[2CR -M%>[=N)VAVE4O:">50F![4.-0:UA2NA[2(\C)'E[=9VGSK+#R'D\??]#P]_A] -M<0JB;8[=1FW!2;<@]5H#;(BC(;9%),=)CVZ`6>[MTNDZQ:*-%\0ZV3!?KOL' -MA[511Q6)&D,W1N#<;@I-U!1&W`=R153,4)B,SMC)3"D[-V9MUV'I]C[;[GN[ -M>GU_#AY'1FM:RCIZ;,/7Z8]>RI.D=`TA$"=*!0$2'3`DI3EC"=(=,Y4A@69E -M#;-S*80X(0ROV,]T@I0%F>8A\4^/['C\?UWQOOA\TX3J^=[GFR\<1XR]JS/' -MX\#Q^,\9XPU/V?C1R#QK3*2%B2S(:IJ2A)0"PU!JRF@\/9[>YMG5V?0*.J=4 -M39LU):+$9U06*;+5JD+2'50*!"&R0LBQHJ`5#9#9.(VN'A-.K5Y/KNYZ_Q#B -M_2?*]ST]I],XG&X''3@8\`<4XV;,30IQ6XXG&<4I]_,B!T''#%X\L -MG8-%#, -M:@?M$*-XN\"MX5O-V_?1ORW-JC[>'CO?28:=GOTWRNGVCZ6'T/5_#'R#L]CU?-/0:=QXG=F9NL@S=E@1 -MNS*#!;=@;A"J0P'=A@.)MW;C=J/B;MQN\7Z'T;SD-LW-L]_[C-@))YLF/+A$ -M*IREZ2D8B9A)(&I9AY`PD>:ERQ.99''2<9V!SN9AT'/P5R-\S9I9M2_$2)F% -MK(&1?4HI94AB6M(]\FDFA`F8UF.Q`B.!(PL0)P#=..L`X-$H::99XXTPE*3% -MZ_1J4G7U*L'=>UP8.N<%JBIBJ:A4.J'4/%"8#D)L@,I@I`Y#J=1J$*`2H"BA -MWH>!0034$RG)YY\M&KAK82(B%$6[DD,PW1%!NC]%%$=QV=D9G9J.S69V)V02G -ML&8)V`'7&0.)%I`-B7T6M*L+IOIT\^[W<,*VC:-J;2S:-H-DE#0GA$I\,F$# -M@>&$PDJE?CU[.SQ:K_3W^K\7)9[^SLFRK(6=NFI% -M44,I,D!@9-"LA1!9,F%,A02DPE\04AS&(.>S6/,\3WYZ.'?]C^5ZNF/>ZNH[ -MO27P1=YV=C2=G9F8TT=@/7AB!@!V9@&(TP10GL#[$=CAWSE[!EHVY>?WN_M\ -MW[?HHI34SO0]`4!0[NT[!0AJ&9D@*&`2!J&)T,)4.BB>=(WM -MC"074X>#'P1UU%%%?C:-1D<84FU`B#9`[5:VP$@;8)R"MI''?@)G:33:27@E -M,V*PF':/:[7F'5-_?V+$S[CS\.!Y_B5QQN/"XV&5)Q7A. -MR'B)PCC:8#H1JD8B,P324)QJ@Z*'C<>.LM;?Z'K'9[_/HT:+F*7:I#$PPHQM -M:J7"JA6%J,4(=63B/7!Z\]$;"I=B4]<&69@F`QG)TP5S2KK2R"LY2)6MK(?5 -M_`^%>EEM)I`DM(BE4JU!@&\[)#?&R'!**!6(7>"1B<8K`)DS2!+*[I,X26I2 -M5\`1YD2/U+>\<9=TWS;XLP-#H=`:`T(H"30P*40E%TFBIT2!@FNC,M5`8!9A -MG98Y=F7EA@THPCC2+I<-N]-BFVR;S_!W35*2B_1?TPI*54D.U"(XWB?$63B> -M*;,4P79(85`&(9#5!4BM!V(#4U.R9W03U4E)=IH[L_8KV+$5?%&8B!M#;Z^W -M&-N&+B-#M!:3:!6V*`(0D@SW42(V=KHDT1BED5V]!Y9I;LO%K<&_RX<.'-BS -M7;A=OJO-Z#ROC\KY4P"E\H^2!\MJ!Q/+)080F+,)L"O+EF$'EC3E'E\KY#T= -MN9XO%\O^/EC[IEUY"6/3FU-6,9HV&2`C9@2",8C3,($(-4&@N8'$>7L[7QO@ -M_!,WT,PS.JKF%06/H5*51(;,$8L1`L0ALDV4A20J.=0&;5JA0YT[66YGT8_> -M>UOF]OX8"WQ,;8VCB@ABLK9B'6E!U%UFL`-*Z)"=1T]4#MO"?O]S-KZNOB>FJFI%105"35`5#,Z!U0,B3*JIA%("`LG`JAP91][FYRW+N]PJ&R/W?N7?ZURY[OO79['RH._;M-M-=^6$;B(W.Z('=F#@!NS!,$HW5& -M29FW6C=`6XV?)WWHST7HS@=]&7.0YR'?W?#^IWO1M'+M7,=TLU6K>\D0$BV[ -MN6RVG3.>.D]KQZT&*Y!H#4^.1E/'!E11@!;3""TK:<=EC+@0>FYM4[NWL<(D -M19(H\.31EHPW&49CB[LQ<4H=PKN1R-VL!V2$FD2"0C"/$^.52CUL9R -M[\K\,_6V?8_A>7O;V"S9JWH6L].DJ.FDTR:4C!RHI-(&ED$!=A"4,"@AI0I) -M41%)IFEJJB+F<>>FDK/O>KZ?XO9YSW._.PW[]V[:;C=6Z"MSNB$-UNLD)"W8 -M@Z&D<2C<5N*=V;MV[N+=N[[W#O\_VWU?>UM8GIN[\**A5((D544,E0P]#IFH -M3"$:"!V8H#("S$<4Y60YPUF$$5'(Y&XWW:M^4XNL;'6S38,2DCEDDP2X1Y@4 -MT$TR$,3`),PTJE`G`:2DWA54[^&_/: -MM6IRW&_VN'M7O9GO\MG+T_8^GS\F_LH[#KZNO'*,&"NO,#$ZX**`E.N,D<%R -M7J'KDEZ]=.!U7P&CKT;5O9ZZ-$]/U]?P]8O2<1=DT[UYDB<=VG@B<0F2)F%) -MQAD*WYB&"4<;(,`B.)7;QCB4+65+TE_4LC\'A]SI7C(\=C1B'B,Z#Q$0T2<0 -M:#,R3J"%>P"D*0[$J@["*@[-=G1I"KZ)?1QUTFHTXZ#&[>U2K4 -M5+X5)0*"DPD610+`7O04142I=ED*+E8E#A=J] -M%WM%5O*&\19L4J@:0W4FV+,B1P3LW80&62XD1HD'=/&\CH)&DP/>O]G?J]?3 -M.#M12J5WE4I(T$ -MO+9Q=_:DX)!0;HJ<7/B=Z7SJ$J!S$4I@1R`.8%`IEX*;$:45@PQ1HVL]EAM%ITE+MC)'$*:-LA(I! -M&$8J[@\<5:Q'A>0>&O'N'F:NJ2;UV]J6DIQ5^J9(M..,C:.*-1NXY&$8Q2;5VSDY#`4+0F -MU`VP$!V"2C:VA*,MRJ.0P+=VL1W.6V1S3#S2RRJ4E4J3L*44YF.^2#?8VZ34 -M4++0IO"ET--.\WY8;H,WQ&ZV:]K*+A=![A[GCW?H.X][?>7K+MRXL,2XQ27( -MI%"%X"S%"Y%`4H0$)A>(+-P,>IJV^+7PGNGI]WDT7Y#DU<0\1Y3><.#OUAPW -M[*.`.`7#!]B5P%RR0Q8F3,E,X"9Y(3#JZ.IT(U\E*>Q`""`0,ZL/7.EB1?.EPYN+E+N_?[=Z]=)&E=Y -M;LG!X!PF#?OA#A++5)9B2IOA.`-2;\ZRQ0X3A/2[7A[S[>[X^4W>7><9BF+4 -M*Q#:MA:K$ZHZNO#0FO!K2NA"ET]5UR%`0U#&6F-<5!Q:#I$Z=WR^#OZL,W3A -M>Y>]ZHPJ@L799DHEV2#)%4;T>YR=RO/K0:S;ZVX< -M/%A2XTN.*8T&&-+#B=<9+@-'39`/6!J,@ZR$^U,S!:$H92D-0TLE'L!Z -MQ>MAJU)H(GUHD*%]8;9A\>U(&"GK#]F'K7K?:>MF9LQS#CQFPDEB.SAQ=KN; -MG%:M;F6Y;MA;II*6HH=J0$F'8I=V'&&*6!T,%*I!TU%-%-%#VF@$*JLK(JX> -MWR=B68FPSF&4$)*4G@Y,$PD$KIQD!,[H09`P$0+P1VPO`'@[,,.#T.\X%;22 -M7J[F%^0V_*E+$A'(6[DI+,TR221+,FE0$PR3$TP!2;YV0ZAQ#A-#&RM_#,R# -MR<=W#P[W6Y.R8F[C>L+LNWBW-QN1$EV,(WJ`A%D-@A>&+3>FE"]38*B51@'! -MCP8+PZ/#V.]YVOU>3DQ;>9[-ZBFJF#JH2*G14DJL^`[-4[L5)F@TR01L,819 -M"DC)E5`B!9(6)E64&$!`J80@NWK5IK0M;6N'%FB]MHM?B?I5])AW=QM&8>KI -MP<0H0^R"BCJ"Z>AUU9!J;/7^3TFP[AXCU.][7LNG2XUS&6C/&KV-CIS:O'[7'R<$\'!6OO^IISSZAQ -M]=R3(TLV(4AF&8"A,LZC+KV<0-@&0%`0>S,>SD'H[\##9KQZPU.KTLWIU:N] -MO[VO=Q*;IHN8J"PN!BA+)+DLP62)%-BJEF2\4QO+U11>]ZKJ8%SBUE^V>CV^ -MO?%QV\<>O2I4O30,<;V$)/.)"S")%DNQ:8%03:HC%+MS%P/1-M];GU\_N?=O -MI?)[?+]N.GEZ3@/!EGEV3,SS0SI,Z0I4S'IRST^]/5R\WAZ?2WC#6G5O,;I,1;-K0HA=NEF%D$A9DB!YU4I* -M%A<,871V+6O>[YV/%K^&?/_'[^G/+`PF$<4*(F-1),80Q0$`PM03%DL%("D2 -M8CAMEDW*J8XY<"Y2]]'9[7E^Y]S@WNX]SSAY_E<3E%RM-N\/3Y>I8-+1TC2$C11I#LD-I)+IM2FE>HLE3`(NDFD -MDHI.ANDH3!:VZW-O2,CM7<[?O=WE\L\E^SK;INO4561:]H. -M--.K5*SU1-0B:5`U*$4U)$FG502U.,(&@F$R06W1;M,ZP-KW,2(/6850&20<6RY'+9OX% -MW\.[._O*39R]/(9.UYOKU&GO;.S/+.\Z<<@E.)A,$Z9(81"R'&$9#C+D&)OB -M/?LGB\BX]%=V'9 -MDA)IYT(E,I)+,^7?Y>2[VXRN:1L5_=S6:?-GL9V-LS9&P'LF0NLUFA.Q#80& -M1*`NAH2%$4-"6==]!KW9T;V]T6X^@[AXGA-/3;3=V/7M=VLPW6X#H1W9C0%! -MB[BS=FY=34ZG4-4LX5EGIJLC-3,, -MZI2I)FD9#-(1A'@SL2E#.G'=#50(/!D69Z<.&K!O:I:Y)Y8XT16(E@>.-HU# -MMU@8.W;CJ-2]$CB)L@90VPP;5&F<3)\`21R.\F"(\/L6-B+>NO%92C(FC0B- -M((FZMNI=ILP3%-L(2!2&V!A?!F68B8TG=HV2(V49''H&1HZM:6S[SYE_!EQ9 -MB\KVQ*TJ!22N6(;Y,C!-X1OEP`S,6AR&@88)20)22,5C8BZ]:O>KV+%LM -MW'N$5B)E!X*P,Q8$ZO8]CLV"FAU(RQ;'LUFK3V9KQ^38;KQ^2.'!>[W_-\KI -MW[F.Z,N7#07`T--:**)*A-"+`$#&J4"F1DO12E!L-F:#`QNZ+%%]C1K5L^!B -M.38WEZ_ON]Z/GO/ZG:S;FYL[ES*9+H[O=+MVZ@97+KH,'QR0ODO+(4LIY81A -MU&&8$4>5"9U=:RPKCJU;M]-]DW;TDLFL9IL>:AZTY.MBB`XZH;D\GE$W)Y1` -M3R6!*Y%;7I=3KWJY=(BS:%(6;1-*TS5G9PD4Q -M!5H,X;))3?(4,!NM^8#(4#2&+OG$2J`SDC8732P@^&3"_%-Q=[W$]<.D:)HM -MHH0:+,:)*R'3(9#B'3"$O2GM)TDW5F=/KGAZ?:T'PZ6[BR9-6HJ:J-Q$1%&X -M[$97K0:`"591IDS1K*@<1VUF/L2AH#XL?%@,#;09S#=""NTBYKJ-Z:V"MPQ& -M]O6]0L11#Q(2NMHM$D$:9$8&ZD4!@*!NDEV$$#=9NL*8D-TW1&;NDOEUST=> -MX;2FV[4V6SM(J6VD&*;0&T)3(5`#902;(@A6U0L-FIM*;4KK:LY]&A$M[M9. -MQU/6Z??\GP>AEWZ>79M6K]J^)%M[5M-2BV-;9.G":8A%!A-40+,*"=29I$>I -M1J.!S-1J-<=8-A;'?-3NYI8S(5Y(FBC=AVC0FC`KI(83,[9R3HDU#"[0S$`P -M=GD)C?/`<)WQB/ -M`E"`T30,!P(,G@F:#.[RIB#30K.#LE-=N2%R@GVJ?7W\9TM)%P\?2'0=2'5& -MR-0Z'J"&1V0E)#U&8N2P@TDYI#FD8:XA>/O^Z]YV>3O[&S@X2XKUV%X=%UY& -MEEK6H-6\B"MY$AO@LUOV!L##AT7ICM?-K -MJ0()SBPWRK"C?/`4%_S-2FE3$LSN[*4F@F:-3(0VL*-D;5=Q`=&L4-">`LER -M$@=\P*5#(E2$I3`387=R,DCDPMYO&W7.P98R3+>DD16XRK<;G=MQU.D-T&2X -MH4[(6`(02$2DA)6@[OW)'7"OI.]<"#U=>)#C-($-' -MQH!A>N:2E)-%)W*Z"%=W:"1!(M6[<Y#DG.'+6LUNN4ZU02"ZXBJ"CY@FC+S0Z$,)-0Y+`'FD)\V92FLUJ<.OL' -MGZ\O;W>,\7:[FY?$QQQIF`LQIH2&*,2#)Z#%BA$)3),8&*.PF)CA,3`R6!TG -M?6T\AC@NW,Y>2X\^9AF6%+R -M8"$YSSD.4II71%`LO.B6'EG1HV0;-5S/0'EO0>^?H^]N]OHY./T=\IPQ2Z71 -M,=BB\ED278%"2B1$)C)<8L(R&-5+B4R47"_43CJY3=8'OZV;'P][T?4]3V-[ -M?T\<^/&U.)Z1ZG!-4#U.PBH"IE(P,A@)#)%)3(5"9"(U14C,N"IE:THR%4[O -M@^%VL=''HQ,3%QQQG->K72T+K5AL4+:`WIH:`2%UC)&!=A%(D+HI!`NA25+H -MP2]`\VM->LX=?I^GX?:Z.CWO[V;OT]+;-G%CVML@/=K.[7;;%UU=>Z7;HURZ -M"2'=V+KXX!Y925\L'VLC`%+28/EK,*P+B=0NU@NM=%L[5O3O*Z=;COKDS=VXAQJI@>)-`P(;UXYB&+Q>)QH]^"8G((U#9U#'U>M%BCQ0>*.,2L!%$XXS. -MS$43.DDPR8&<&$$-`D2*:$B;DT=GLF'P^/#V/,?<##`<,\7$QF>/4L6ES8D+ -ME502ZL(D"XJ0$A+@6$R$]F%@B51&T:(JI.KK]O\[S?>[GO:V;=TZJ=RBEJ6I -MH#EPUSV#L4YP%+*=%1$#('T^Q[ -M[T3;-AF*N:JD#/1`R`RF2Y5*A41F0Q@*"PR@+UTDR(4,4`23@.YG0AT63,TN -M?K<_1US]__O?7[5KXW/2-$T:)?1!00#0*D$DT(BB`P*ZB2(.SH9!$-62KQ.A -M%@Y%CBWCN8ML_E%KM]HY/T7RS/5YO5SN8#F_.W<):X:SVNYQ']XYEOO]4[-K8M54U,J2@*$U+` -M[)W&*44ZS"@)3G$0)"SQ\9Q>E^/II>3'&-DCTW1 -M*2A*DTJ$U9$H[EWQ2$`6_'(`P4W5OL6MELM!6R.XY#'D%,1[6/3VIINM\'M5 -M_PSSO<9#U=,T[74JM<\M-:69T)O&'M>T.>UEK,B!,CVB$H2!*4>:%I#(!U:+ -M6FF?4+E8S0<@)75;3U/4X>=UBH\&>?!DY=O/(>O#@!F3*`,F#"<" -M*!P6HI(%B!DL6,A$DL'`!E5%&67`=O-[QWN?7Z=[P_;'^MUR>?J4ST\F["BR -MZJ*K)G)&JK3LK36F23)K0!>T>UFM0L)HD-D!@'M&S$P/:G),]I&:1TG`?\B_ -M#?AG?^)NUO&]NM;SO;"7EZ2]Z2E%Q"7&"D$DO54R*`P+F#0*1DJ#N5Q)J]^Q -M=MG>][H'9Y9HIGZQ8W(BU%;MRRC2LTHA,2DDANB(20W;\I&`RI"6\>'`Q-I? -M%G)X(2XTA(*6_N;9M'5ZF_A]+V7O7Y9>;(T1&A$9&-'$XSC1IEE#1$04%*0O8 -M42$.V2VE$3*)U&W34FOP%92S;$^*CZ7USR.O\/L[7?T-G0VGWQ<4,HFI%@D.(03B8AQ4TJ'$CPTG8.QPZ?C?E3Z -M_ZDNSY_NFT]W;V.LVEM3LVA=ED&MJ[&0A=I020#M*)2E@=M[$N;8C069M#Y& -M2>.+36,\SX7F:_K=7R]AZ_JUO>OW.(ZGJ\5;X6Y#F&VC*9S(ZDT,H4F_O`-]V11)-$9`9"XBA$DT#'0,.6"P6$E8;>-D7)ZLG!*?5 -M^ELEGW?Z8K?[\_ZG#!<4%]QMYOX/1[//Q>0UTZYQ=R+PZ]8:Y#7$@L!8)#7$ -M#4&*^:(BD(1\R^;Y.:\&!I-AGF\W=LSY/G7'R6S!/*R]48IY8@A(3R20'ELC@9L;FX- -MP@QBH."A#CA!P2@1<)"RASENG2ON,!Q^AC(3W8&4A)^C//5EF,7M?:O/[LA\'@X.PFE2)=^932\V8'9E,Z9/F$?'D@#@Q10[)3%=Q&0F -M(%!,)G0.$Q,!O%A1R2%.WV.WER_47+!Q,BB>1WGH>>M8<]G/[CT'V_MF?/_4_OOW -M-]?/IY;MWR'>;]YO@S`WVYH#%=VLP8)`MV4TY(&#^/.ZU#O#1OMYM=>_PK>3 -M9%V3WZJF/M38F1(&9F/(PT6K9 -M)B&^Z(AY&N,4)$*U:?L^8N9O]R[Q=?M<>UMP16(GW6>/64 -MD<4@%4RNZAIDD:-U5&Z,7"6`D@FL($TC.[B3<+1+6#64%8DUMZ7XWRN/ZAC_ -M$K<_P_4^SSGYO.SNO]-?`Y_0_2^S[[P:]YB_>:^=&Z%Y)7B\RO.DF9KB$DDP -M23AMQ!9CR4=2T*).H(`S64AQ37SO/SEG`N=WSVOP_R?E_,A?SOZ?TK3\S.K5 -MN9S.IZONKO`6^FBU::S9W!QVM%2;2V&B66`78(Y,"I`J(Q",CG0B9`64BET6 -M0LJH[9NEE[6;=?=6X=KZ'T^]_M\D]SUU6K>A>YF;WOK=IWYS>)\;>P>,K^ZV -M&_@;!A@-?AA0L,`%A3NS&%DWF@<0\]LUK12,)L)/^F<3O)([I[PPG*`!@XF< -MS1Z>;9,S80K*?Y?)8UO+]U$RJ:+E(3(>8J-34IAI2DT,QYI/-#2"9)#H@,L0 -M/$5XLR3KG$#X\)L_#L`$,%E`BR9\'++.GLAN)6FS=Z7TZJH?SOW'X7S?Q=WY -MSZ&A^9\W._7_CZ-;@YU;0S_O?D^)H>=P8/.;"8,`L`Q@#!:08`>"9BZ24A`U -MTRLAY6"?)%Y/+!Y?T?J^Z/5W9]S_&][DY?]O=M7.'YGC^+^)E)20T:)#MCUO -MD9*T<3I%Q<0XPH1N0C*3T2![:VHQ3VX38&;,]NT)D21('MQ1[>&4TDJY,FJ/->7D7W>;F^B\BOE>`<[A7LU:R[O3-Z-%FD!O#F#3?N4DWL -M0JZ`^J,SUO&)79@XJKDY*SC%!R<`Y.0/'9#C(=6"*,`XT4C).L"*?BF%=#25 -MMB+=S30?'OM3BO?&;,H21HTG? -M$1G,@XF%HZ1I^-,Z!U/68=XP^[!V,:9I*W[I17!U1X9;3JN9'Y+:%\/\R_HO -M6V(0SNAT.9G\_Q.=@PX7\3R/6.)L38C2383$R98G0"1B=#RG?+1DAB!WQ7?+ -MDC"&40R.9@1@H/@]3ZC[2E]54!ZE]50DC[_JS/PMFE1(48;;30PGE%%"=?@PM -MU%@L!DIJQ3WL457XVUUGV:DI])L.PU&12:I2OU)R>OT8WI4YZ1=G=X?9LDO: -MWJXXS#_;.O,:18>$*LMKB:##2S,:RLLZ$*3>R;?HYGMT:O[+;^!_$?@?.!@SLME -ME:CC/#<\M9AQXQAYCX7:BS?J7/[1,R^P0"7P3.74$F&AU.\M<_P/=&PX\V%` -MYY56;R<0JMXU;+X)%QH94;'PCA4ZRJ:V2P5]$RQ+`IL3E`LS9L7K'E,KM/E`XYY"\H\IOA -MI^$'X:\D`9.14$2A\,I(_>990,0$H86IP.,>YZCSRJ@E!E"A1M%#GH,P^<]- -M]^NQN\BMKF>GUEI]YOD86)25S9RJK%S]]QZ^\8/S(SZ;%)?18KRVTJ21A4V+ -MJ3/#.64OG;6!D9T3FW,AP\(L/3.FJNF -MQT_&882=#.R$;SM@)JU/XF.+LAP&^<&?5C']/!]`Q]5F/S_G^%;U2"//6FI= -M#TBXF\S%[9UTQCN>U*0A;_R9^71"DS$SD(<(DJ53_YF7O6*VNVWO64NMAL!X -M[:+60#:TH#[7UD>;K'@-RZLKRVA95MR:E^+S+,X$KM=,&=SQXV3'#Q#-MIG7$GW'@F@NLF<8WD&RX/!SK\IJ'WWP.8+S>P9G'0[LLWQ<]GA"YO)2,B@T5E";(XDXC@^W\"ZA4= -M_*FR5:S3UC)*'N@U5%T6]*Y/H#%Z,:I+C`SKBVRJ3$P\)5R4Y`[-Y;&40[&2 -M`Y>18#,NMB6,=V)9:&IN;$BRP!I6&`^=GE\?C/5\1X8=92'B62>PB,1!).YX -M*+,I4D80\]@@HA$D\#3*$9X/!/D8>'U_#ZGK^`G]MFI/PH]O1J*!E8>]MY7< -M^;?2L5JM%M$` -MUIEBVI5O;M'1<5M*DADH\GW+-6Q)65H:EL-+HE=FI?6`Y+OSQ[';Z_/S^][W -MO>3+M^,^K[)PP\3Y)-;Y!&/DZA`5&**+!)/(J)^QK]8DM`\"##V5#V3OD\IY -M?9]XXS9IBCHB/]AFKP>(]T-C#(>-V=_#^R6#U0QGO,XY7L:NK\>A2[;]5]LY -MK'%L-3RJD,OVP]$N+0/SYS)F6C[+_<;F)F56U)--:PZ34&O-:^WN#>QI,TNH -MW=68'!J:41\,+EQ=GR>3C\?C\6Z3PU7AW=@GL69&54HD\"(BD8$?G8?/B8*$ -MA;,^59#`8_//G:_WOH?0=G#Y_Y7SC]KF%:V!J#N#%!M6^I$,=U-[MJP_ZS)S -M;=M'2=Z(^+3P$_<&ZNP/4&\5F^)F<5]TY9Y\;!*(4T*9*F^O1,OO01REU(M; -MGD$-I4@P?"BC3T*HJ(QDE==T*6GF4_@+[&TL"H_Z9NG"=CD4S?1)Y0QWQ?$:2NUZA0+'[Q -M2WE,5H[QJ-SV#H0KK1I(_!U>5\PC6JA;Z:NONJ@HCNL31S5E.VK//!>S43^^ -MR:G/V=^_ENZ.YXVV48/&K_>GP^B&AKU=?L[:#L]ANR;-9,=E*6^['Q`!3SWS -M*/FJI!`*9OI0L(OF&#-@^<>[)W]R*"%.-(VF@DS6!X'OZ:_W%KHAB:OA969S -M43C,9<4%@/VOPR9?>0.73_BPZJ<*RU'6/5:.F6N`O^-2-5.QYYEKO0*M\U):WF"?[[.^=I&L+ZP)EMG? -MLWAK<7Q7#4M1#$_C^$CLMGO,T%^!SOL]Z3I_4WL._N^-9D-?>U]K`W[?ZQT] -MDN7/(/Y/N3TDN%JU@(>@_F'H+5@?-^L?5UAB'WTS40A]68AOWN9!3(E2-T1` -M1!"I!HN\!%(-D&,\/$&(C^O$&MD/M\4'X3XG_16SOGH`=);1T?75?BY]_:6& -M+FT%^Z7W?9-_TK0D!];^AB(/R$=CHKZG26/T]%JW+P:6,Y;4V!Z9H".;EJ:?'Z((@VO%,U>X;6FAG:!56R'M;Z-1.7$=[KMNMM?QEYO]G -M.23COHYBZ8K$`\0'9#&B?I%>6P.^/OR^;@&6D7/T631$10L+]]'U/O=:#IC! -M?D=&!F&5[MEY(Q-@_4_A,^'9L#'\/9GT#][F4@2E(Q^+B#_N+0>),Y^3&RNR -MTEOQ!36APMM+HG37+@P^']\4WP-Q\M3*\%<:K60_' -MX&92+LOS&'>.-V;AT>LW.$9O,.=#??D*RGB_/JMQLG+2YH[&A,/>+7Y1,[M9\0-6^1R -M=\<18SVQ_.37F&$E#9OEL-/`!-=-9Y@^,BLSX6C4\8*6:F5]6+LNCM*+4O5+ -M-!1;X2L+,S([83MX-/ORULE>KRMN+@'R;*MM*JM2LK,B%H1B,=K-(D".BJJ" -MA`2D2E"*D%D9"(A&)`60(L)!@?+3\:C_%6+*[-!@2?&)#(^/!$9!A^0_^-_+ -M)^0EM+4\/&_6S!O;;[7!WNN!>*/;%10]_#V'\1AW2D5J,2S/.;^=,.1A"W2E/8#J -MU<+M<9^A7F3E:$+HXG7J9#2=3J0LK^'$6[*5[%\W_37+S4\TGP7=4;)Q2G!4 -M[H:@D;6!MZYW)/:/N.CKS'X^3<0OU/H=FT.E(=!X[36&2D71[KW@7KJ!/U,/ -MH%%!+43UF'D/=5]8QF:7PH%;RM<'V#K5RA:>6RZ&MBF"J/QNAT-7CIJN.@+8 -MP=DP8+AH8QF@,[57.7F?R/@6)BSPX?I/TVCX:0^]:H_.0/Y=4444"?EIA9?# -M!0$>(R(;J?H[?SS5'0VKOH-CZ$=;4H^*? -M"[MQL#Y9)--Y>*2_R6J21P'OI\#!W_AUJ;7-<5<'2A -M'99R]BXQ^PX;JA;M@*[+''S>!!B('((BA"E*-OZ4`/"X>AI(>M@8]3^9B(3[-?IA(ILD?>:: -MBTU0QTOE3ACA<3-X]WG,T5@84>:!41KR]1H:A"[/B65Y]) -MYA?BS'ZZ!*JD_6R!@CRB#]=GZ_64C/QHJE_SIUX,\%&K']I^PPT'V1)?"QHS -M#6\-%HC11X$-"RLRD7S?.M(?;XF)Q?`@J0L[?4H)>P4FM]7.)WW$*03=!N;& -MH.\SF62KS\5R.\L&6GG1U2KT2?6A-EFIS>HXVO@KWIM+?5&1G;MA.3_ -MKK%.P8PT^S^^"U[O&\.`D@WRQS]Y.Y_3UPXZY"JV1HU+Z;XL/K%_K81C&^KM -M\(-\_\W[Y[A->IF?X*G[C>^P;B(`D\?#86,8L_49PPR4+W<.:RTM!Y"0W;^Z -MKJH?`TSS%NUNX[G$G8@9]G%^K5&4?Y*&PJZ>EQ-9.:JIZ).3QYJ1\^6+2BI6 -MR8A1O)[5D`J)QBK":D8BB&;;H497&3G-9!2MVQFLA<:ZRD9Z/#[9/F.NUAI= -M89JD73,B4>S6E>H%***JG9%]R,!&9-J,=6Y'-`N4G,9P;GNT,5EE!H9$\6=! -M@8OHY^,+^4U1NE#\H*D)$_*JJ_)S*OU__5FF)R[;$3;2&CVW.UE97,#'JXX0 -M:D!6!PV9,;SR]F,&1WFK[,5,Q!C*.JEX1\BQ-W%K2XV5%2^+"]UE\5?Q@.1R -M7AMH?+G?LX#[#Z'RTG\Y0?6>!L?/1S:AJVAK[W^Q_W8&8:AU#:1JD;&=U6=C -M]^8.L[WM?U=@^VZVWMVF9?[([7+#0RR&(-.A'PY/B1LUK?C'+O]+\MS;UC$\ -MC"P9J'55NY$"%/R:-]XIA6)N+#[E\H9VKW/6S,YXQ_YC29"^>*,X:5N1)R?H.=D99V8:*BQ -M&1X$BSEJSC08#0^O&/7UFON42L(?^ESRY6[E)<; -MQ`\22F?CL?53^ZCZ@4VF8EL-DG.+=:F[8A1FIMB?=9J:CJ948&DL5H:."K'9 -MA?"TKWG8@*98\D%\HV?6ZT@%=RLFC/,<5;F9+7.G:CU"KM6>7+(+6.+J--FN -M@:'6[%W`7TT'LV>XUX!XXM9>2Z8I\^"&R5MG;H#^S*"E/Y_\S]9\0V3$`?&C -M]A\M-F@P1TWGD<$]:/RZB*G_LP,@_-_8I^QUAL_5;#7[+#_/VPPX1NCM;^O. -M./FQFA`\C#(/L[G<'I1^WV>P.U?--D5VQYJ!.G_:CNPOP9QHQ?Z!O[+S<%@W -MSR_\K>C>BD21,8<73+]&G9[W>>H+OXPP6'5H,!XQ.TEVW68%@LB9N.`*G'/7 -M',''2,O[HH]LOF3>YUE+>,4SG$!C!M@`J3*TP>F,WZU@5HT2UX#`7+OD%%1S -MGM&G3OJP4F[?#(MN]=GU#"V37 -M>@Y^KD/)A\V6ZC/;7N3@5FZY+/UQ]9M$D1>Z!/`HACQH),ZXT.GQE?`%M&)6*Q -MGB[K)O(/[7^B/1+>'\ORT(FI(X15F$)FJ&7ETPM:O`3(F[C7',=(OA4TU7O5 -M3A9E46C7^0UM%K\P+^V>[!MG*II`;MC^28+)M&_[LU[G+C);'%*-/N-?48%\ -MZ@+$,[T^PNE]K"^G#]27F;OHO1,>,#X6=XV5GS7^U.4M)HQ1A1E8N_M-F'?: -M'#`FF.DO`4:@"&U-96>9`BO^NAJ,^UV;"0Z]_#;K;N4@+SXQ!H"CB4&."_K( -MP4_;0.?W@8T_J8<5*#P2?N>N\A:UW$B/%HGX']HQZ^:8@!I'^8_"U:$A^NK?^FH3;_B$@',-)T7HUOJ -MR'OHLBT-NOL?QBZ* -M2\K*O]D?*2NH\EG+J_VO\,8N>SJMIQ7ZQ$L<*#W,E<<,:_]N?CCY`4SU@;]AZN!@#8 -MST"]\>`6B[#B1_&GND-DZEK[G?FIUOHH_,Y,P1#8>@4RKE7^RD*VPF^"(D^7 -MS2C(K#ZN7:X'D-!I@=ZVG/"X`6:K$^!M*,Z<2-9TJW#@'SA)Y\E;:U1HF`H^?J!4]X'N5?YPS@2Z:\&47!)R -M;`O'Q@BOUO"VV@%U]3LW$3PRK5K^\$!2$FO]U6QO#7#+X^\\:DN*R=\^0SF^K]!&)CR* -MJ9:0"%H8S"ES>QI*V.L'8K%<$@!(K^5?,CO_/@KJT1I7T/C/9]!5N98:,>O@&8L,K$% -MT;,6P14,DMM-#&!/YZ$^2SB?):D2?C$J'SS%A/YWLT?U7^'>H'VQA?H7R*.I -M5DD'O6?PB-NU@E&",KSPR)J,8>ZFO-D^*V]0@IA!R#L: -M=/2Q)OU,.<=Q)[3ES\%G\I00Y<'`O14"#2IKA1IPWLK^:2_O>KJ6,ZQPZN;A -M>\8L[8X[M]@>WDR5X-;MG74S_3FY\94&,;)R5S2Y%%1^[M;@6ERKAVJ3-=S8$MJDF!!N79% -MY;)^J\4OQ^_TU:TFFG/?6/UOU&-QE^-^0]K73^@ACQ&4S -M;U5T\D`Y(\(I4^??LG"[V(?O!:,]?=&@]^MI!- -M<5;CW_8;$X"`@!J#?W5P\N<'&N\PA?-FK+S6WWQ/0FOUL_%]RWOF9KC?39=C -M\4[VEL)C#P.9DEP,'?'UNI>.@6S=],^GF954%[U-%P]YE,KRS`Z;6F$DP+'[ -M]:]'DT?%&JG2:9#99+;O_JOMM9TN9WI\"G432$RQ^',Q+3LF`YR_]]J5#*M* -MCYIOXMDEZRX=.+ENC30F-'OI%BZV6G3(S`$F8BAH>AU6XLDD;;SA%V<&XYXJ -MG[CX\V,FM5N@#'J_W?2&D,.5/1&$W47ENY8^\#DU* -MW^7!6WE=H9KI;VRU>&TT,O0'"[>SQ*C[;T?H9+A9'L5@(]857IY"E -ME!+ZZ[L6P<+G%,F'R:]@=X=7I-Q*&1T^W(F';ZNA)A@+FY&A"Z8G:J6)MZER -M>6667-Y[#9#7=,[BE`:],6]^APSV;K17V8XQNT*!1$;0M2:-V1?J'Y5"Z;*1 -MW)Z*G)G%85!"-,/VYG`*22+'*W_Z9B-56GBC,*BU?EJG,5/17G,K%D.$I4NL -M'B]:5_BNA%-1SK&I>E_#KI!G(("'^^WZF2V=X!U%4Y/6%N37P%'AI*RA+CU1 -MSI7%F^O/G'233ENB&KG=[@TVDF$_Z=AE8YXHJSY&*?BE\@=TM"5`M_QQ*S97 -M)>O+:FMPE[SR52T'!:";XB\^1L?5W^2MWG\#E3VL#?O*YLQN=*'W.)V"[FPB -M"";-H\>8()>Y)$)4\!S,67%8P[WM5;]]?,5M>LGKBF,&9PR&%^A#!%%+3/<* -M+X0XX>.UL3=\6`HL7P06+OOIQ+K0'IX4W50$>0PV1-4#]6']SJP@G[V#/CM2 -M_JF/S?Q<#;L3N4#A98H\*TQ0_WN^>::P?R>Z)Y.ZXF$F[@":SV/;2B#M0\1G -M^S.$[LW1Z:`"AU#\?V_Y0@8[!/J4SF'YJ7M^KSVJM;_]T,,;`X?&M*6A(*.Z -M8_>S&2SWAL^:N[X\)#`J&8?8-(]G@R22Q&=Z-AF"-T<7$=MUENMN;%QX[3#Q!1X.;X?\CI_.SUND2BB2MH&VOM;Q!4MA$D&>E%S;?+"<+A4_H&H.6Y@L_6VO]T&AH?HE:3M$_QV.I -M7CD&A&FY09.`6:_CI!I&W9G@MC<_X@_HO\AKSYF\W85]A'&'\36-&)U -MN\.;4'`<"%XOX\C27J^^/-*^& -M1C9ZP>S(S57HHXR.W7Y%X4M;F2B/Z^ONZ.%)SOH_#]2UBT8$Q4P1AML^*(`P -M3?1#"T^C&/'OSK3_9Y1VRM>9XS>S_W]D-9C,^R]TPJ -MJ_U]_:'P\0@_77#*89PU,(.M^75TGODAXWKTL6( -M43O0)-!Q.UJ/8P6($A8#P&KUA,"XQ4Z(R8,EYJ^;'P2;#W?,_#V=O(@:OR;8 -MT(8?OA&>J%#)F1IG>Y&&ZF=-TKVG,6]I+X>R?!?I$?F:&&!XP(*%IMMUSSE> -M6:08]B85"[?]'_KU)->WH'(,"!I[[O.X++S$$Z(CA4.!Z!=?;TP'7?3*N%)_O!V-O2RY9OTYD]H(&8+B4.'[>/;$/(WR9XMG8"<,2B77@ -MNIH6E_BZ)7<#LR!6=&<@3?`Q-#H,?J2#E&.IKU=I6QY0600$A(=#!G+P=M.S *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***